Skip to main content

Amounts are always in minor units

Every amount field on the API — in requests and responses — is an integer in the currency’s smallest unit: A fractional amount is rejected with 400 amount must be a whole number of smallest currency units (e.g. cents), and anything below 1 with 400 amount must be at least 1 in the smallest currency unit. This keeps money arithmetic exact — no floating point.
A handful of currencies have no minor unit at all — JPY, KRW, XAF, and XOF among them. For those, the “smallest unit” is just the currency unit itself: 1000 XAF is 1,000 francs, not 10.
Double-check unit conversion before going live. Sending 1000 intending ₦1,000 actually sends ₦10 — and sending 100000 intending $100 sends $1,000.
Changed 9 September 2026. Some responses previously reported amounts in major units (12.50 for $12.50) while the webhooks reported the same amount as 1250. Every response now uses minor units, so the two agree. The affected responses were the transaction listings and export, the statement lines, loans, broker commissions and referral stats, and the withdraw and swap responses. GET /wallet/transaction/{id} and POST /wallet/transfer were already correct but returned their amounts as JSON strings ("4400"); they now return numbers (4400).If your integration multiplied any of these by 100, or parsed them as strings, remove that handling. Request bodies, wallet balances, fee quotes, statement totals and every webhook payload are unchanged.

Currencies you can collect and hold in

Your wallets can hold a balance in, and be funded via virtual accounts or deposit instructions in: USD · NGN · BRL · USDC · USDT This is the set of currencies you can receive deposits in and carry a balance for. It’s served by the API itself — treat Get Supported Currencies as the source of truth rather than hard-coding it, since it grows over time.

Currencies you can pay out in

Payouts reach far beyond your wallet currencies. Fund a payout from any wallet balance you hold, and Rolla converts and delivers it to the beneficiary in their local currency — across local rails, SWIFT, and mobile money, worldwide. Currently supported destination currencies include: USD · EUR · GBP · CAD · AUD · NGN · GHS · XAF · XOF · JPY · CNY · KRW · THB · IDR — and more are added regularly. Which currencies and rails are available to a given beneficiary depends on their country and bank — see Payout rails below, Create Beneficiary for the exact fields per method, and the SWIFT payouts guide for USD-over-SWIFT country coverage specifically. Not sure a corridor is supported? Ask us — we’re adding new ones all the time.

Payout rails

A payout’s rail is chosen by the beneficiary’s withdrawal_method: The exact required fields per currency and method are listed on Create Beneficiary and Withdraw Funds. To know what a payout will cost before sending it, quote it with Get Transaction Fee.

FX

Cross-currency rates come from Get Exchange Rates, which returns a rateToken you can pass into Swap Currency to execute at the quoted rate. See Convert currencies.