Skip to main content
When integrating with Waffo, merchants need to choose a pricing currency strategy that fits their business model. Waffo supports three approaches.

Three pricing strategies

Global uniform pricing

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

StrategyorderCurrencyuserCurrencyorderAmountAmount shown to user
Global uniform pricingSingle currency (e.g. USD)Omit (auto-converted)Unified priceLocal-currency equivalent (fluctuates with exchange rates)
Per-country pricingLocal currencyOmitLocal priceFixed amount
Regional pricingRegional currencyOmit (auto-converted)Regional priceLocal-currency equivalent (fluctuates with exchange rates)

Amount format and decimal places

All amounts must be passed as String type (not Number/float/double), and decimal place rules vary by currency (an incorrect value returns A0003). For the full format spec, decimal rules, and currency list, see Currency and amount.