Skip to main content
Never use binary floating-point numbers for money. Keep API values as strings and use integer or decimal libraries for arithmetic.

Request amounts

Transfer and FX request amounts are positive integer strings in minor units. Supported fiat currency codes in the current validation contract are NGN, USD, GBP, EUR, GHS, ZAR, UGX, CAD, MXN, and AED. Account creation also accepts BTC, ETH, USDT, and USDC; crypto balances use eight decimal places.
Validation support does not guarantee that every currency, country, account type, or transfer route is commercially available. Confirm enabled corridors before launch.

Response amounts

The current API has two representations:
  • Accounts and transactions expose raw minor-unit strings such as "2500000" and a separate display field such as "25000.00".
  • Transfers, previews, and FX quotes return decimal amount strings such as "25000.00".
Use raw account and transaction values for calculations. For transfer responses, parse the decimal string using a decimal library and the accompanying currency. Do not remove the decimal point and assume two places because UGX has no minor unit.

IDs and timestamps

Resource IDs are 26-character ULIDs. Treat them as opaque, case-sensitive strings. Timestamps are ISO 8601 UTC values such as 2026-08-14T09:00:00.000Z.