Node.js SDK (@waffo/waffo-node)
v3.0.1 (2026-08-04) — Latest
- Updated the
X-SDK-VERSIONrequest header towaffo-node/3.0.1 merchantConfig().inquiry()andpayMethodConfig().inquiry()now accept an omittedmerchantId; the SDK uses themerchantIdconfigured on the Waffo client
v3.0.0 (2026-07-29)
- Breaking change:
CreateOrderParams.paymentTokenDataandInquiryMerchantConfigData.totalDailyLimit/remainingDailyLimit/transactionLimitare nowstring, matching API JSON-string fields. Parse the JSON string in your app when you need a structured value - Removed the unusable
PaymentTokenDatainterface that only typed the old object form - Schema validation now checks OpenAPI field types, not just field names
v2.7.0 (2026-07-28)
PayMethodDetailnow exposespayMethodType,currency,orderAmountMin,orderAmountMax, andrefundAllowedcurrentStatusis optional when real-time availability is unavailable
v2.6.0 (2026-07-17)
- Added wallet address inquiry, x402 order data, promotion fields, and typed x402 payment Webhook data
- Kept deprecated legacy order and subscription fields/types available while aligning the active wire contract with the latest OpenAPI specification
- Release validation now fails when the shared schema field vector is stale
v2.5.1 (2026-07-06)
- Fixed compatibility so
subscription().create()remains backward compatible whensubscriptionManagementUrlis omitted - Keeps
subscriptionManagementUrlsupported, but no longer rejects existing payloads before sending the API call
v2.5.0 (2026-05-13)
- Added
subscription().update()to update subscription amounts, trial amounts, and scheduled amounts - Added
scheduledAmountstoProductInfofor subscription create, change, update, and inquiry flows - Added typed fields for subscription extension info, token card data, card BIN data, and product details
- Automatically injects the current time when
Order().Capture()omitscaptureRequestedAt
v2.4.0 (2026-03-14)
- Type alignment: all SDK type fields are consistent with the openapi.json definitions
- Fixed endpoint paths for
merchantConfigandpayMethodConfig - Added the
captureRequestedAtfield toCaptureOrderParams - Added the
captureModefield toPaymentInfo - Added Capture E2E tests and Schema field validation tests
v2.3.4 (2026-03-10)
- Made
RefundOrderParams.requestedAtoptional; the SDK will automatically inject the current UTC time
v2.3.3 (2026-03-03)
- Fixed
RefundOrderParamsfield names and types to align with openapi.json - Renamed
notifyUrltorefundNotifyUrl - Added refund Webhook E2E tests
v2.3.2 (2026-03-02)
- Added handling for the
SUBSCRIPTION_CHANGE_NOTIFICATIONWebhook event
v2.3.1 (2026-03-01)
- Important fix:
buildSuccessResponse()returns{"message":"success"}instead of{"status":"success"}
v2.3.0 (2026-02-24)
- Automatically inject timestamps: when not provided,
orderRequestedAtandrequestedAtwill be set automatically
Java SDK (waffo-java)
v3.0.0 (2026-07-29) — Latest
- Breaking change:
CreateOrderParams.paymentTokenData,PaymentInfo.payMethodProperties,PaymentInfo.cashierAppearance, andInquiryMerchantConfigData.totalDailyLimit/remainingDailyLimit/transactionLimitare nowString, matching API JSON-string fields - Removed the unusable
PaymentTokenData,PayMethodProperties, andCashierAppearanceclasses that only typed the old object forms;SubscriptionPaymentInfoalready usedStringfor the matching fields - Schema validation now checks OpenAPI field types. Enums count as strings, and failure-reason fields with custom Jackson deserialization are explicit exemptions
v2.0.0 (2026-07-28)
SubscriptionPaymentInfo.cashierLanguageandSubscriptionPaymentInfoResponse.cashierLanguagenow useStringand support API-supported IETF BCP 47 language tagsPayMethodDetailnow exposespayMethodType,currency,orderAmountMin,orderAmountMax, andrefundAllowed;currentStatuscan be null- Retained and expanded
CashierLanguageconvenience constants to the current 22 language codes; they are a convenience snapshot, not a local SDK input allowlist - When upgrading, convert enum arguments to strings or
.getValue(); if you only replace the JAR, remove old cached or shaded copies and run a clean rebuild
v1.5.0 (2026-07-17)
- Added wallet address inquiry, x402 order data, promotion fields, and typed x402 payment Webhook data
- Kept deprecated legacy order and subscription fields/types available while aligning the active wire contract with the latest OpenAPI specification
- Release validation now fails when the shared schema field vector is stale
v1.4.1 (2026-07-06)
- Compatibility release that keeps
subscriptionManagementUrloptional - Aligns SDK schema and E2E gates for
payMethodDetails
v1.4.0 (2026-06-02)
- Parses
orderFailedReason,refundFailedReason, and subscriptionfailedReasonwhen callbacks send objects or JSON strings - Preserves existing failure reason access and keeps plain-string failure descriptions
v1.3.0 (2026-05-13)
- Added
subscription().update()to update subscription amounts, trial amounts, and scheduled amounts - Added
SubscriptionScheduledAmount,SubscriptionUpdateProductInfo,UpdateSubscriptionParams, andUpdateSubscriptionData - Added typed fields for subscription extension info, token card data, card BIN data, and product details
v1.2.0 (2026-03-14)
- Type alignment: all SDK type fields are consistent with the openapi.json definitions
- Fixed Java 8 compatibility issues
- Added Capture E2E tests and Schema field validation tests
v1.1.2 (2026-03-10)
- Automatically inject
RefundOrderParams.requestedAt - Added
SUBSCRIPTION_CHANGE_NOTIFICATIONWebhook handling - Fixed
RefundOrderParamsfield alignment issues
v1.1.1 (2026-03-01)
- Important fix:
buildSuccessResponse()returns{"message":"success"}instead of{"status":"SUCCESS"}
v1.1.0 (2026-02-24)
- Automatically inject timestamps
- Changed
CancelOrderParams.orderRequestedAttype from String to Instant
Go SDK (waffo-go)
v2.0.1 (2026-07-29) — Latest
- Corrected the Go v2 module path to
github.com/waffo-com/waffo-go/v2, as required by Go modules for v2 and later - The
v2.0.0tag used the v1 module path and cannot resolve through the Go proxy. Usev2.0.1
v2.0.0 (2026-07-29)
- Breaking change:
order.CreateOrderParams.PaymentTokenDataandmerchant.InquiryMerchantConfigData.TotalDailyLimit/RemainingDailyLimit/TransactionLimitare nowstring, matching API JSON-string fields - Removed the unusable
order.PaymentTokenDatastruct that only typed the old object form - Schema validation now checks OpenAPI field types, not just JSON tag names
v1.6.0 (2026-07-28)
PayMethodDetailnow exposesPayMethodType,Currency,OrderAmountMin,OrderAmountMax, and optionalRefundAllowedCurrentStatuscan be empty when real-time availability is unavailable
v1.5.0 (2026-07-17)
- Added wallet address inquiry, x402 order data, promotion fields, and typed x402 payment Webhook data
- Kept deprecated legacy order and subscription fields/types available while aligning the active wire contract with the latest OpenAPI specification
- Release validation now fails when the shared schema field vector is stale
v1.4.1 (2026-07-06)
- Compatibility release that keeps
SubscriptionManagementURLoptional - Aligns SDK schema and E2E gates for
payMethodDetails
v1.4.0 (2026-05-13)
- Added
Subscription().Update()to update subscription amounts, trial amounts, and scheduled amounts - Added
ScheduledAmountsupport for subscription create, change, update, and inquiry flows - Added typed fields for subscription extension info, token card data, card BIN data, and product details
- Automatically injects the current time when
Order().Capture()omitsCaptureRequestedAt - Expanded schema field validation for required fields and nested subscription/order structures
v1.3.2 (2026-05-12)
- Parses JSON-string
orderFailedReason,refundFailedReason, and subscriptionfailedReasoncallback payloads - Added failed callback tests for payment, refund, and subscription Webhook handling
- Refund E2E flows now use DANA, and sandbox prerequisites now fail or skip explicitly
v1.3.1 (2026-03-16)
- Fixed Go module proxy cache issues
v1.3.0 (2026-03-14)
- Type alignment: all SDK type fields are consistent with the openapi.json definitions
- Fixed endpoint paths for
merchantConfigandpayMethodConfig - Added
RefundStatus,OrderStatus, andSubscriptionStatusconstants - Added Capture E2E tests and Schema field validation tests
v1.2.2 (2026-03-03)
- Fixed
RefundOrderParamsfields to align with openapi.json - Added refund Webhook E2E tests
v1.2.1 (2026-03-01)
- Important fix:
BuildSuccessResponse()returns{"message":"success"}instead of{"status":"success"}
v1.2.0 (2026-02-24)
- Automatically inject timestamps
Python SDK (waffo)
v0.4.0b0 (2026-07-28) — Latest
PayMethodDetailnow exposespay_method_type,currency,order_amount_min,order_amount_max, andrefund_allowedcurrent_statusis optional when real-time availability is unavailable
v0.3.0b0 (2026-07-17)
- Added wallet address inquiry, x402 order data, promotion fields, and x402 Webhook payload coverage
- Wallet inquiry parameters now allow
merchantInfoto be omitted when the SDK injects it from configuration - Deprecated generated model names and legacy order/subscription fields remain available for source compatibility
- Schema drift validation now detects a stale shared schema field vector
v0.2.0b1 (2026-07-06)
- Compatibility release that keeps
subscriptionManagementUrloptional - Aligns SDK schema and E2E gates for
payMethodDetails
v0.2.0b0 (2026-05-13)
- Added
subscription.update()to update subscription amounts, trial amounts, and scheduled amounts - Added scheduled amount models across subscription create, change, update, and inquiry fields
- Expanded order capture timestamp auto-injection and schema field validation coverage
v0.1.0b0 (2026-05-09)
- Published the first Python beta release
- Added support for payments, refunds, subscriptions, merchant configuration, payment method configuration, and Webhook signature verification