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.

Environment information

EnvironmentBase URLDescription
Sandboxhttps://api-sandbox.waffo.comTest environment; no real charges will be made
Productionhttps://api.waffo.comProduction environment
The SDK switches via Environment.SANDBOX / Environment.PRODUCTION; there is no need to manually modify the URL.

Test card numbers

Credit Card

CC_VISA

Card numberResult
4576750000000110Payment succeeds
4576750000000220Payment fails

CC_MASTERCARD

Card numberResult
2226900000000110Payment succeeds
2226900000000220Payment fails

CC_JCB

Card numberResult
3528000000000214Payment succeeds
3528000000120006Payment fails

CC_AMEX

Card numberResult
3400000000000216Payment succeeds
340000000200027Payment fails

Debit Card

DC_VISA

Card numberResult
4001700000000110Payment succeeds
4001700000000220Payment fails

DC_MASTERCARD

Card numberResult
2226930000000110Payment succeeds
2226930000000220Payment fails

DC_JCB

Card numberResult
3088850000000116Payment succeeds
3088850000200004Payment fails

DC_AMEX

Card numberResult
340034000100009Payment succeeds
340034000400003Payment fails

General card information

Expiration date: any future date

CVV: any 3 digits (AMEX uses 4 digits)

Sandbox simulator

The sandbox does not connect to real payment channels. Use the simulator to control payment outcomes directly:
  • One-time payment: After creating an order, open the checkout page. The page provides “Payment Success” and “Payment Failed” buttons — click either to trigger the corresponding result and Webhook.
  • Subscription first payment: Same as one-time payment; operate on the checkout page.
  • Subscription renewal simulation: Call POST /api/v1/subscription/manage to get the management page URL → open the management page → the page provides “Simulate Next Payment Success” and “Simulate Next Payment Failed” buttons; each click simulates one renewal cycle.
Example subscription renewal management page:
Subscription renewal simulator management page example

Apple Pay and Google Pay testing

If your integration needs Apple Pay or Google Pay on Checkout or your own frontend, complete these checks in addition to regular sandbox payment testing.

Google Pay

  1. Sign in with a Google Pay test account.
  2. Add the account to the Google Pay test mode stub data group.
  3. Confirm that the target country or region is in the Google Pay supported countries list.
  4. If you load the payment page inside an Android App WebView, apply the Google Pay Android WebView configuration.
  5. Before production launch, Android Apps must request Google Pay API access through the Google Pay publish guide.
  6. If production access is not approved, users may see OR_BIBED_11 or a similar error.
When applying for production access, select Gateway as the gateway type. After submitting the materials, provide the Google account merchant MID and app name to the Waffo technical support group if you need Waffo to help accelerate review.

Apple Pay

  1. We recommend testing with the merchant’s own Apple Pay account.
  2. The test account must have a valid Visa, Mastercard, or Amex card.
  3. UnionPay cards are not supported for Apple Pay testing.
  4. If you see Service unavailable, check the device or account region settings.
  5. Web testing may require a global proxy. Mobile payment-link testing can usually work with partial proxy coverage when the Apple Pay sheet is launched from the link.
  6. Before launch, confirm that the target country or region is in the Apple Pay supported countries list.

Testing Webhooks

The sandbox environment supports Webhook callbacks. Make sure your notifyUrl is publicly accessible. For local development, it is recommended to use an intranet tunneling tool (such as ngrok or cloudflared).
Sandbox and production use different API Keys and RSA keys. Apple Pay and Google Pay have additional country, WebView, and production permission requirements.