Skip to main content

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.

The sandbox environment does not connect to real payment channels. Instead, it provides a simulator that lets you directly control payment outcomes and quickly verify your integration logic.

One-time payment simulation

1

Create an order

Call POST /api/v1/order/create to create an order.
2

Get the checkout URL

Retrieve the checkout URL from orderAction in the response.
3

Open the checkout page

Open the checkout page in your browser. Simulation buttons will be displayed on the page.
4

Select a payment result

Click the corresponding button to simulate a payment result:
  • Payment succeeded — Simulates the user completing payment. The order status changes to PAY_SUCCESS.
  • Payment failed — Simulates a declined payment. The order status changes to ORDER_CLOSE.
After clicking, Waffo automatically sends a PAYMENT_NOTIFICATION webhook to your notifyUrl.
Sandbox payment simulator interface
The sandbox checkout is a simulator interface — there is no real payment method selection or card number entry. The simulation flow is the same for all payment methods.
If you need to simulate a real card number entry flow (for example, to test 3DS), you can use the test card numbers in the Test card numbers section below. For most scenarios, the simulation buttons are sufficient.

Subscription simulation

First payment

The first payment follows the same flow as a one-time payment:
1

Create a subscription

Call POST /api/v1/subscription/create to create a subscription.
2

Open the checkout page

Retrieve the checkout URL from the response and open it in your browser.
3

Simulate the first payment

Click Payment succeeded or Payment failed. After a successful first payment, the subscription status changes to ACTIVE and a SUBSCRIPTION_STATUS_NOTIFICATION is triggered.

Simulate a renewal payment

After a subscription is activated, you can quickly test renewal without waiting for the real billing cycle to expire:
1

Get the management page URL

Call POST /api/v1/subscription/manage to retrieve the management page URL.
{
  "subscriptionId": "SUB20260325000001"
}
2

Open the management page

Open the managementUrl in your browser.
3

Simulate a renewal result

The management page displays two simulation buttons:
  • Simulate next payment succeeded — Triggers a successful renewal. Sends a PAYMENT_NOTIFICATION and a SUBSCRIPTION_PERIOD_CHANGED_NOTIFICATION.
  • Simulate next payment failed — Triggers a failed renewal. Sends a PAYMENT_NOTIFICATION (failed).
Each button click simulates one renewal period. You can click multiple times to test multi-period scenarios (for example, period 2 succeeds, period 3 fails).
Example subscription renewal management page:
Subscription renewal simulator management page example

Simulate subscription cancellation

The management page also supports user-initiated cancellation, which triggers a SUBSCRIPTION_STATUS_NOTIFICATION with the status changed to USER_CANCELLED.

Test card numbers

Credit cards

payMethodNameSuccess card numberFailure card number
CC_VISA45767500000001104576750000000220
CC_MASTERCARD22269000000001102226900000000220
CC_JCB35280000000002143528000000120006
CC_AMEX3400000000000216340000000200027

Debit cards

payMethodNameSuccess card numberFailure card number
DC_VISA40017000000001104001700000000220
DC_MASTERCARD22269300000001102226930000000220
DC_JCB30888500000001163088850000200004
DC_AMEX340034000100009340034000400003

General information

  • Expiry date: any future date
  • CVV: any 3-digit number (4 digits for AMEX)

Sandbox environment information

ItemValue
Base URLhttps://api-sandbox.waffo.com
SDK configurationEnvironment.SANDBOX
The sandbox environment uses different API keys and RSA key pairs from the production environment. Do not mix them.