Two checkout modes
Waffo supports two checkout integration modes. Choose the one that fits your needs:- Waffo-hosted checkout: Waffo provides the complete payment page. Users select a payment method and complete payment on the Waffo side.
- Merchant-built checkout (direct API): The merchant builds their own payment page. Users select a payment method on the merchant side, and the merchant specifies the payment channel via API parameters.
Comparison
| Dimension | Waffo Checkout | Merchant-built checkout |
|---|---|---|
| Payment method selection | User selects on the Waffo checkout page | User selects on the merchant page |
| Integration complexity | Low (redirect only) | High (custom UI + specify payment method parameters) |
| Payment method coverage | Automatic full coverage; new methods require no code changes | Must maintain the supported list manually |
| PCI DSS compliance | Handled by Waffo | Merchant is responsible (card payment scenarios) |
| UI customization | Supports theme color, logo, language, etc. | Fully custom |
| Suitable for | Most merchants | Large merchants with their own checkout |
Waffo Checkout: request parameters
When users select a payment method on the Waffo side, the merchant does not need to passpayMethodType or payMethodName. The Waffo checkout automatically displays all available payment methods.
For the full payment method parameter rules and examples, see Cashier integration - Customization options.
Merchant-built checkout: request parameters
The user has already selected a specific payment method on the merchant page. Pass parameters to tell Waffo which channel to use.Card payment: Do not pass
payMethodName; pass payMethodType only. Waffo automatically identifies Visa / Mastercard / JCB / AMEX via the card BIN.VA: Pass only payMethodType: "VA". The user selects the specific bank on the Waffo side.E-wallet: Pass payMethodName to specify the wallet (e.g., DANA, GCash). This bypasses the Waffo checkout page and sends the user directly to the specified wallet’s payment flow. The Waffo checkout itself supports all payment methods; passing payMethodName is specifically for routing users straight to a given wallet without showing the checkout selection screen.Embedding options
After receivingorderAction, you can direct the user to the payment page via redirect, iframe embed, or App WebView. For each option’s suitable scenarios and requirements, see Checkout integration steps and Payment method integration notes.