> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK changelog

> Changelog for Waffo Node.js, Java, Go, Python, and PHP SDK releases.

> [!NOTE]
>
> This page tracks releases of the **Waffo SDK packages** (Node.js / Java / Go / Python / PHP). For the **Waffo API** version history, see [API version history](/docs/en/developer-docs/tools-and-references/references/changelog).

## Node.js SDK (@waffo/waffo-node)

**1. v3.1.0 (2026-09-04) — Latest**

* Added typed `topupInfo` request and response fields to `subscription().update()` for charging a current-period add-on while preserving the subscription billing schedule

**2. v3.0.1 (2026-08-04)**

* Updated the `X-SDK-VERSION` request header to `waffo-node/3.0.1`
* `merchantConfig().inquiry()` and `payMethodConfig().inquiry()` now accept an omitted `merchantId`; the SDK uses the `merchantId` configured on the Waffo client

**3. v3.0.0 (2026-07-29)**

* **Breaking change**: `CreateOrderParams.paymentTokenData` and `InquiryMerchantConfigData.totalDailyLimit` / `remainingDailyLimit` / `transactionLimit` are now `string`, matching API JSON-string fields. Parse the JSON string in your app when you need a structured value
* Removed the unusable `PaymentTokenData` interface that only typed the old object form
* Schema validation now checks OpenAPI field types, not just field names

**4. v2.7.0 (2026-07-28)**

* `PayMethodDetail` now exposes `payMethodType`, `currency`, `orderAmountMin`, `orderAmountMax`, and `refundAllowed`
* `currentStatus` is optional when real-time availability is unavailable

**5. 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

**6. v2.5.1 (2026-07-06)**

* Fixed compatibility so `subscription().create()` remains backward compatible when `subscriptionManagementUrl` is omitted
* Keeps `subscriptionManagementUrl` supported, but no longer rejects existing payloads before sending the API call

**7. v2.5.0 (2026-05-13)**

* Added `subscription().update()` to update subscription amounts, trial amounts, and scheduled amounts
* Added `scheduledAmounts` to `ProductInfo` 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()` omits `captureRequestedAt`

**8. v2.4.0 (2026-03-14)**

* Type alignment: all SDK type fields are consistent with the openapi.json definitions
* Fixed endpoint paths for `merchantConfig` and `payMethodConfig`
* Added the `captureRequestedAt` field to `CaptureOrderParams`
* Added the `captureMode` field to `PaymentInfo`
* Added Capture E2E tests and Schema field validation tests

**9. v2.3.4 (2026-03-10)**

* Made `RefundOrderParams.requestedAt` optional; the SDK will automatically inject the current UTC time

**10. v2.3.3 (2026-03-03)**

* Fixed `RefundOrderParams` field names and types to align with openapi.json
* Renamed `notifyUrl` to `refundNotifyUrl`
* Added refund Webhook E2E tests

**11. v2.3.2 (2026-03-02)**

* Added handling for the `SUBSCRIPTION_CHANGE_NOTIFICATION` Webhook event

**12. v2.3.1 (2026-03-01)**

* **Important fix**: `buildSuccessResponse()` returns `{"message":"success"}` instead of `{"status":"success"}`

**13. v2.3.0 (2026-02-24)**

* Automatically inject timestamps: when not provided, `orderRequestedAt` and `requestedAt` will be set automatically

***

## Java SDK (waffo-java)

**1. v3.1.0 (2026-09-04) — Latest**

* Added typed `topupInfo` request and response fields to `subscription().update()` for charging a current-period add-on while preserving the subscription billing schedule

**2. v3.0.0 (2026-07-29)**

* **Breaking change**: `CreateOrderParams.paymentTokenData`, `PaymentInfo.payMethodProperties`, `PaymentInfo.cashierAppearance`, and `InquiryMerchantConfigData.totalDailyLimit` / `remainingDailyLimit` / `transactionLimit` are now `String`, matching API JSON-string fields
* Removed the unusable `PaymentTokenData`, `PayMethodProperties`, and `CashierAppearance` classes that only typed the old object forms; `SubscriptionPaymentInfo` already used `String` for 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

**3. v2.0.0 (2026-07-28)**

* `SubscriptionPaymentInfo.cashierLanguage` and `SubscriptionPaymentInfoResponse.cashierLanguage` now use `String` and support API-supported IETF BCP 47 language tags
* `PayMethodDetail` now exposes `payMethodType`, `currency`, `orderAmountMin`, `orderAmountMax`, and `refundAllowed`; `currentStatus` can be null
* Retained and expanded `CashierLanguage` convenience 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

**4. 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

**5. v1.4.1 (2026-07-06)**

* Compatibility release that keeps `subscriptionManagementUrl` optional
* Aligns SDK schema and E2E gates for `payMethodDetails`

**6. v1.4.0 (2026-06-02)**

* Parses `orderFailedReason`, `refundFailedReason`, and subscription `failedReason` when callbacks send objects or JSON strings
* Preserves existing failure reason access and keeps plain-string failure descriptions

**7. v1.3.0 (2026-05-13)**

* Added `subscription().update()` to update subscription amounts, trial amounts, and scheduled amounts
* Added `SubscriptionScheduledAmount`, `SubscriptionUpdateProductInfo`, `UpdateSubscriptionParams`, and `UpdateSubscriptionData`
* Added typed fields for subscription extension info, token card data, card BIN data, and product details

**8. 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

**9. v1.1.2 (2026-03-10)**

* Automatically inject `RefundOrderParams.requestedAt`
* Added `SUBSCRIPTION_CHANGE_NOTIFICATION` Webhook handling
* Fixed `RefundOrderParams` field alignment issues

**10. v1.1.1 (2026-03-01)**

* **Important fix**: `buildSuccessResponse()` returns `{"message":"success"}` instead of `{"status":"SUCCESS"}`

**11. v1.1.0 (2026-02-24)**

* Automatically inject timestamps
* Changed `CancelOrderParams.orderRequestedAt` type from String to Instant

***

## Go SDK (waffo-go)

**1. v2.1.0 (2026-09-04) — Latest**

* Added typed `TopupInfo` request and response fields to `Subscription().Update()` for charging a current-period add-on while preserving the subscription billing schedule

**2. v2.0.1 (2026-07-29)**

* 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.0` tag used the v1 module path and cannot resolve through the Go proxy. Use `v2.0.1`

**3. v2.0.0 (2026-07-29)**

* **Breaking change**: `order.CreateOrderParams.PaymentTokenData` and `merchant.InquiryMerchantConfigData.TotalDailyLimit` / `RemainingDailyLimit` / `TransactionLimit` are now `string`, matching API JSON-string fields
* Removed the unusable `order.PaymentTokenData` struct that only typed the old object form
* Schema validation now checks OpenAPI field types, not just JSON tag names

**4. v1.6.0 (2026-07-28)**

* `PayMethodDetail` now exposes `PayMethodType`, `Currency`, `OrderAmountMin`, `OrderAmountMax`, and optional `RefundAllowed`
* `CurrentStatus` can be empty when real-time availability is unavailable

**5. 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

**6. v1.4.1 (2026-07-06)**

* Compatibility release that keeps `SubscriptionManagementURL` optional
* Aligns SDK schema and E2E gates for `payMethodDetails`

**7. v1.4.0 (2026-05-13)**

* Added `Subscription().Update()` to update subscription amounts, trial amounts, and scheduled amounts
* Added `ScheduledAmount` support 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()` omits `CaptureRequestedAt`
* Expanded schema field validation for required fields and nested subscription/order structures

**8. v1.3.2 (2026-05-12)**

* Parses JSON-string `orderFailedReason`, `refundFailedReason`, and subscription `failedReason` callback 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

**9. v1.3.1 (2026-03-16)**

* Fixed Go module proxy cache issues

**10. v1.3.0 (2026-03-14)**

* Type alignment: all SDK type fields are consistent with the openapi.json definitions
* Fixed endpoint paths for `merchantConfig` and `payMethodConfig`
* Added `RefundStatus`, `OrderStatus`, and `SubscriptionStatus` constants
* Added Capture E2E tests and Schema field validation tests

**11. v1.2.2 (2026-03-03)**

* Fixed `RefundOrderParams` fields to align with openapi.json
* Added refund Webhook E2E tests

**12. v1.2.1 (2026-03-01)**

* **Important fix**: `BuildSuccessResponse()` returns `{"message":"success"}` instead of `{"status":"success"}`

**13. v1.2.0 (2026-02-24)**

* Automatically inject timestamps

***

## Python SDK (waffo)

**1. v0.5.0b0 (2026-09-04) — Latest**

* Added typed `topup_info` request and response fields to `subscription().update()` for charging a current-period add-on while preserving the subscription billing schedule
* Schema drift validation now compares OpenAPI field types, not just field names; generated models already matched the contract, so no model changes were needed

**2. v0.4.0b0 (2026-07-28)**

* `PayMethodDetail` now exposes `pay_method_type`, `currency`, `order_amount_min`, `order_amount_max`, and `refund_allowed`
* `current_status` is optional when real-time availability is unavailable

**3. 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 `merchantInfo` to 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

**4. v0.2.0b1 (2026-07-06)**

* Compatibility release that keeps `subscriptionManagementUrl` optional
* Aligns SDK schema and E2E gates for `payMethodDetails`

**5. 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

**6. 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

***

## PHP SDK (waffo/waffo-php)

**1. v0.3.0 (2026-09-04) — Latest**

* Added typed `topupInfo` request and response models to `subscription()->update()` for charging a current-period add-on while preserving the subscription billing schedule

**2. v0.2.0 (2026-08-27)**

* Added support for PHP 8.0+

**3. v0.1.0 (2026-08-22)**

* Published the initial PHP SDK beta with order, refund, subscription, merchant configuration, payment method configuration, Wallet, and Webhook capabilities
* Added OpenAPI-generated DTOs, shared vector tests, executable README examples, package validation, and real sandbox E2E archive support


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.