Customization capabilities overview
Priority: API parameter > Merchant Portal > SDK initialization
When the same capability is configured through multiple methods, the higher-priority setting takes effect.
Payment method filtering
UsepayMethodType and payMethodName to control which payment methods are displayed in the cashier.
For payment method exceptions and App WebView / iframe limitations, see Payment method integration notes.
Recommended parameter combinations
Examples
When to pass payMethodCountry
Pass this field when you want the cashier to show payment methods for a specific country only.- Omitted: The cashier shows all payment methods available under the merchant contract across all countries.
- Passed: The cashier shows only the payment methods for that country.
Multi-currency support
When the merchant pricing currency differs from the user payment currency (cross-currency order):userCurrency can be omitted — Waffo automatically handles FX conversion. The user sees the amount in their local currency in the cashier.
Language settings
UsepaymentInfo.cashierLanguage to set the cashier display language (IETF BCP 47 format):
Auto-selection logic
WhencashierLanguage is not specified, Waffo selects the language automatically using the following priority:
- Match by user country (e.g. user country is IDN →
id-ID) - Match by order currency (e.g. currency is BRL →
pt-BR) - No match found → fall back to
en
Notes
- The language must match the currency/country. For example, an order with
IDRcurrency can only useid-IDoren; specifyingpt-BRreturns error codeA0026. enis the universal language and works with all currencies and countries.- Currencies not listed in the table above (e.g.
USD,EUR,SGD) are only supported withen.
Unsupported languages return error code
A0026.Theme customization
Customize the cashier’s colors, fonts, and styles to match your brand.Three configuration methods
Priority order: API parameter > Merchant Portal > SDK initialization. When
cashierAppearance is passed via API it overrides all other settings.
Theme variables
These variables are injected into the cashier UI rendering layer and override the default theme. They affect the payment method selection page, card form page, transition page, and payment result page.
API parameter method
Supported endpoints:POST /api/v1/order/createPOST /api/v1/subscription/create
The
cashierAppearance field must be a JSON string (not a JSON object), with the structure {"variables": { ... }}. Escape the inner quotes accordingly.Merchant Portal configuration
Log in to Merchant Portal → Checkout → Cashier Customization to set a global default cashier style. Use this option when all transactions should share a unified brand style. Portal supports merchant Logo, preset themes, theme colors, base font size, and corner radius. You can preview the cashier on the right side of the page. After you click Save & Publish, the configuration applies to newly created orders.
SDK initialization
Pass theme configuration when initializing the frontend SDK (@waffo/payment-sdk). This has the lowest priority and takes effect only when neither the API nor the Merchant Portal has a theme configured.
Merchant logo
Pass the merchant logo viabrandInfo.cashierLogoUrl to display your brand identity on the checkout page.
Two formats are supported:
API parameter examples
Using an external URL:Order expiration time
UseorderExpiredAt to set the order expiration time (ISO 8601, UTC+0).
Redirect URLs
Both HTTPS URLs and deeplinks (e.g. for in-app scenarios) are supported.