> ## 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.

# Pricing currency strategy

> An overview of the three pricing currency strategies supported by Waffo: global uniform pricing, per-country pricing, and regional pricing, including how to pass the correct parameters.

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.

```json theme={null}
{
  "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](/en/developer-docs/core-concepts/currency).

Indonesia (IDR, 0 decimal places):

```json theme={null}
{
  "orderCurrency": "IDR",
  "orderAmount": "149000",
  "orderDescription": "Product description"
}
```

Philippines (PHP, 2 decimal places):

```json theme={null}
{
  "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.

```json theme={null}
{
  "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) |

## Amount format and decimal places

<Note>
  All amounts must be passed as **String** type. Number, float, and double are not accepted.
</Note>

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"` |

<Warning>
  If the decimal places are incorrect, the API returns error code `A0003`.
</Warning>

For the full currency list and rules, see [Currency and amount](/en/developer-docs/core-concepts/currency).
