Wallets & Conversion

Multi-currency professional accounts (wallet_mode=multiwallet) hold one balance per currency simultaneously, managed from the dashboard's dedicated Business portal.

Multi-currency accounts

A professional account can be configured in multiwallet mode. On creation, a zero-balance wallet is pre-provisioned for every active currency — no lazy provisioning. A standard (uniwallet) account keeps a single balance directly on the account, exactly as before; this is an opt-in account type, not a breaking change to existing accounts.

Payin, payout and conversion fees

Collection (payin) and payout fees are configured independently for the same country corridor. A multiwallet account pays only the payin at collection; it pays the payout when it withdraws by mobile money. A standard (uniwallet) account pays at collection the payin, the payout of its own account country and, when the currency paid differs from the account's, the conversion; its mobile-money withdrawal is free. A bank-transfer withdrawal has its own fee, for both account types. Converting between two wallets of the same account applies its own fee, configured per currency pair (the same ones as the conversion at collection) — see the Pricing page for the exact rules and formulas.

Authentication

The endpoints below use your dashboard session (a logged-in user), not the pk_/sk_ public API keys used elsewhere in this documentation — they are not reachable with public/secret key headers.

Dashboard endpoints

GET
/accounts/{account_id}/wallets

Returns one entry per active currency wallet for the account.

Response Body
currencyRequired
object

The wallet's currency (code, symbol, exchange rate).

balance_totalRequired
number

Total balance held in this wallet.

balance_availableRequired
number

Balance available for withdrawal.

balance_withdrawnRequired
number

Cumulative amount already withdrawn from this wallet.

POST
/accounts/{account_id}/wallets/convert

Converts funds from one wallet to another wallet of the same account. Rejected if no conversion fee rule is configured for the currency pair — there is no implicit free conversion.

Request Body
source_currency_idRequired
numeric

The currency ID of the wallet to debit.

destination_currency_idRequired
numeric

The currency ID of the wallet to credit.

amountRequired
numeric

The amount to convert, in the source currency.

Response Body
source_amountRequired
number

Amount debited from the source wallet.

fee_amountRequired
number

Conversion fee deducted before the exchange.

destination_amountRequired
number

Amount credited to the destination wallet.

exchange_rateRequired
number

Exchange rate applied for this conversion.

GET
/accounts/{account_id}/wallets/conversions

Paginated conversion history for the account.

Dashboard-only feature

The public API does not expose wallets: viewing per-currency balances or converting funds between wallets is only available through the dashboard's Business portal. On the credit side, /collections and the hosted checkout credit the wallet of the currency the customer pays with; /payouts always debits the account's primary-currency wallet.