Currencies & amount format
Supported currencies, minor units, zero-decimal rules, min/max.
Currencies & amount format
All amount fields in the spuke API are integers in the smallest currency unit (minor units), following the ISO 4217 exponent for that currency.
Amount format
| Currency type | Example | 10.00 → integer |
|---|---|---|
| 2-decimal (most currencies) | EUR, USD, GBP, CHF, CAD, AUD, SEK, NOK, DKK, PLN, CZK, RON, HUF, BGN | 1000 |
| 0-decimal (zero-decimal) | JPY, KRW, VND, CLP, ISK, HUF (as 0-dec via spuke) | 10 |
| 3-decimal | not currently supported | — |
Send integers only. 10.5 or "10.00" are rejected with invalid_request.
Supported currencies
Currencies accepted on POST /v1/checkout/sessions:
eur, usd, gbp, chf, sek, nok, dkk, pln, czk, ron, bgn, huf, cad, aud, nzd, jpy, sgd, hkd.
Always lowercase 3-letter ISO. Currencies outside this list return 400 invalid_request (currency_unsupported).
Payment method coverage
Not every method supports every currency. spuke automatically hides methods at checkout that the currency does not support (e.g. Klarna is EU-only, iDEAL is EUR-only, Bancontact is EUR-only).
Minimum and maximum
- Minimum: 2.50 EUR equivalent (e.g.
250in EUR/USD/CHF,300in JPY). Below this:400 amount_too_small. - Maximum per charge: 999,999.99 in the transaction currency. Above this:
400 amount_too_large.
See Fees, currency & minimum amounts for the reasoning behind the minimum.
Payout currency
Merchants are paid out in their onboarding currency (usually EUR or CHF). Charges in other currencies are converted at the daily FX rate with a +2.00% FX surcharge.