Currencies & Minor Units
Every monetary value in the API — amount, subtotal, tax_amount, setup_fee, refund amounts — is an integer in the currency's minor unit.
For most currencies that means cents ($10.00 USD → 1000). A handful of currencies use 0 or 3 decimals — the table below lists every supported currency and its minor-unit factor.
Don't hardcode × 100
A $10.00 JPY charge is 10, not 1000. A KD 10.000 KWD charge is 10000, not 1000. The storefront integrations all read the minor-unit factor from this table (the platform's CurrencyService is the source of truth) — your code should too.
How to convert
amount_minor = round(amount_display * 10^minor_unit)
amount_display = amount_minor / 10^minor_unitExamples:
| Display | Currency | Minor unit | API amount |
|---|---|---|---|
| $25.00 | USD | 2 | 2500 |
| J$1,500.00 | JMD | 2 | 150000 |
| ¥1,200 | JPY | 0 | 1200 |
| KD 12.500 | KWD | 3 | 12500 |
Supported currencies
Codes follow ISO 4217 (alpha-3). The numeric column is the ISO 4217 numeric code (useful for gateway integrations that prefer it).
2-decimal (cents)
| Code | Numeric | Name |
|---|---|---|
| USD | 840 | US Dollar |
| EUR | 978 | Euro |
| GBP | 826 | Pound Sterling |
| CAD | 124 | Canadian Dollar |
| AUD | 036 | Australian Dollar |
| NZD | 554 | New Zealand Dollar |
| SGD | 702 | Singapore Dollar |
| HKD | 344 | Hong Kong Dollar |
| CHF | 756 | Swiss Franc |
| MXN | 484 | Mexican Peso |
| BRL | 986 | Brazilian Real |
| COP | 170 | Colombian Peso |
| ARS | 032 | Argentine Peso |
| PEN | 604 | Peruvian Sol |
| HUF | 348 | Hungarian Forint |
| TWD | 901 | New Taiwan Dollar |
| INR | 356 | Indian Rupee |
| SEK | 752 | Swedish Krona |
| NOK | 578 | Norwegian Krone |
| DKK | 208 | Danish Krone |
| ZAR | 710 | South African Rand |
| AED | 784 | UAE Dirham |
| SAR | 682 | Saudi Riyal |
| PLN | 985 | Polish Zloty |
| CZK | 203 | Czech Koruna |
| ILS | 376 | Israeli New Shekel |
| THB | 764 | Thai Baht |
| MYR | 458 | Malaysian Ringgit |
| PHP | 608 | Philippine Peso |
| IDR | 360 | Indonesian Rupiah |
| NGN | 566 | Nigerian Naira |
| KES | 404 | Kenyan Shilling |
| GHS | 936 | Ghanaian Cedi |
Caribbean (2-decimal)
| Code | Numeric | Name |
|---|---|---|
| JMD | 388 | Jamaican Dollar |
| TTD | 780 | Trinidad and Tobago Dollar |
| BBD | 052 | Barbados Dollar |
| BSD | 044 | Bahamian Dollar |
| GYD | 328 | Guyana Dollar |
| BZD | 084 | Belize Dollar |
| XCD | 951 | East Caribbean Dollar |
| HTG | 332 | Haitian Gourde |
| ANG | 532 | Netherlands Antillean Guilder |
| AWG | 533 | Aruban Florin |
| KYD | 136 | Cayman Islands Dollar |
| BMD | 060 | Bermudian Dollar |
Zero-decimal
These currencies have no fractional unit. amount is the whole-currency value as an integer.
| Code | Numeric | Name |
|---|---|---|
| JPY | 392 | Japanese Yen |
| KRW | 410 | South Korean Won |
| VND | 704 | Vietnamese Dong |
| CLP | 152 | Chilean Peso |
Three-decimal
These currencies have a thousandth-unit subdivision. Multiply the display amount by 1,000 (not 100) to get the API value.
| Code | Numeric | Name |
|---|---|---|
| BHD | 048 | Bahraini Dinar |
| KWD | 414 | Kuwaiti Dinar |
| OMR | 512 | Omani Rial |
Picking the right code
- Pass the alpha code in
currencyfields ("USD","JMD"). Both upper- and lower-case are accepted. - A request with an unsupported currency returns
422 { "error": "Currency 'XYZ' is not supported." }. - Whether your merchant account can actually settle in a given currency depends on the connected gateway — supported here means "the platform knows the currency"; the underlying gateway (PowerTranz / FAC / MPGS) determines what you can settle.
Need a currency that's not on the list?
Email support with the ISO 4217 code and your use case. Adding a new currency is a 1-line change in CurrencyService once we confirm a downstream gateway will accept it.
Next
- Checkout Sessions —
amountandcurrencyon session create - Line Items, Tax & Order Details —
subtotal,tax_amountare also in minor units
