When integrating with Waffo, merchants need to choose a pricing currency strategy that fits their business model. Waffo supports three approaches.
Three pricing strategies
Use case: SaaS products, digital content, and similar offerings where a single currency (typically USD) is used worldwide.
Parameters:
orderCurrency: The merchant’s settlement currency (e.g. "USD")
orderAmount: The unified price (e.g. "9.99")
userCurrency: Omit this field — Waffo automatically converts to the user’s local currency
Advantage: Simple price management. Only one price list to maintain; Waffo handles exchange rates.
Note: The local-currency amount shown to users at checkout will fluctuate with exchange rates.
{
"orderCurrency": "USD",
"orderAmount": "9.99",
"orderDescription": "Pro Plan - Monthly"
}
Per-country pricing
Use case: E-commerce, gaming, and similar businesses where each country has its own local-currency price.
Parameters:
orderCurrency: The local currency of the user’s country (e.g. "IDR" for Indonesia, "PHP" for the Philippines)
orderAmount: The local price for that country
userCurrency: Omit this field — orderCurrency is already the local currency, so this is a same-currency order
Advantage: Users see a fixed amount with no exchange-rate fluctuation, providing a more predictable experience.
Note: You need to maintain a per-country price list and must follow the decimal rules for each currency. See Currency and amount.
Indonesia (IDR, 0 decimal places):
{
"orderCurrency": "IDR",
"orderAmount": "149000",
"orderDescription": "Product description"
}
Philippines (PHP, 2 decimal places):
{
"orderCurrency": "PHP",
"orderAmount": "499.00",
"orderDescription": "Product description"
}
Regional pricing
Use case: Businesses that group markets into regions (e.g. Southeast Asia, Latin America, Europe) and apply a single pricing currency per region.
Parameters:
orderCurrency: The pricing currency for the region (e.g. "USD" for Southeast Asia, "EUR" for Europe)
orderAmount: The unified price for the region
userCurrency: Omit this field — Waffo automatically converts
Advantage: Balances pricing complexity against localization. Fewer price lists to maintain compared to per-country pricing.
Note: Users in different countries within the same region will still see different local amounts due to exchange-rate fluctuation.
{
"orderCurrency": "EUR",
"orderAmount": "8.99",
"orderDescription": "Pro Plan - Monthly (Europe)"
}
Parameter comparison
| Strategy | orderCurrency | userCurrency | orderAmount | Amount shown to user |
|---|
| Global uniform pricing | Single currency (e.g. USD) | Omit (auto-converted) | Unified price | Local-currency equivalent (fluctuates with exchange rates) |
| Per-country pricing | Local currency | Omit | Local price | Fixed amount |
| Regional pricing | Regional currency | Omit (auto-converted) | Regional price | Local-currency equivalent (fluctuates with exchange rates) |
All amounts must be passed as String type. Number, float, and double are not accepted.
Different currencies use different decimal place rules:
| Type | Currencies | Format |
|---|
| 2 decimal places | USD, PHP, HKD, SGD, EUR, etc. | "9.99" |
| 0 decimal places | JPY, KRW, VND, CLP | "1000" |
| Special (0 decimal for same-currency, 2 for cross-currency) | IDR, COP, KES, TWD | Same-currency: "50000", cross-currency: "50000.50" |
If the decimal places are incorrect, the API returns error code A0003.
For the full currency list and rules, see Currency and amount.