Wallets · for businesses
Hold five currencies.
One ledger.
A wallet for each currency you trade in. Available and on-hold balances shown apart. Every figure is the sum of ledger entries you can download.
Illustrative balances. Total = available + on hold; in flight is already out of available.
1GET /v1/wallets2200 OK34{5 "data": [{6 "currency": "NGN",7 "balance": "189255000",8 "lienBalance": "0",9 "availableBalance": "189255000",10 "inflightBalance": "5005000",11 "status": "active",12 "hasVirtualAccount": true,13 "virtualAccountNumber": "9012…",14 "virtualAccountBank": "Wema Bank"15 }, …]16}
Amounts in minor units, as strings. Illustrative values.
What a wallet promises
Three mechanics make a balance you can trust. All three are in the ledger.
Two numbers, not one.
Available is what you can spend now. Money a hold or an in-flight payout has claimed is shown apart — lienBalance and inflightBalance in the same response. A balance never hides money in motion.
Every balance is the sum of its entries.
A wallet is a ledger account. Each movement posts as a debit and a matching credit, or the ledger refuses the whole entry. Nobody edits a balance field.
Download the entries, not a screenshot.
Request a CSV statement for any date range — all activity, or just payouts, payins or conversions. Reconcile against rows, in minor units, with the reference on each line.
How money enters and leaves a wallet
Four doors. Each one posts a balanced entry on the way through.
- Collections inA customer pays by bank transfer, card or mobile money (POST /v1/payins). When the channel confirms, the net amount credits the wallet in that currency. NGN wallets also get a permanent account number; transfers to it credit the wallet directly.Live
- Payouts outPOST /v1/payouts moves amount plus fee out of available balance the moment you send. It settles when the rail confirms, and the hold clears with its own entry.Live
- Conversions betweenPOST /v1/conversions debits one wallet and credits another at the rate you quoted. Two balanced legs, one in each currency, and the FX margin booked on its own line.Live
- Refunds backRefund a payin from the dashboard or POST /v1/refunds. The money leaves your wallet as a payout to the person who paid you, tracked to its own terminal status.Live
As your finance team sees it
Every entry, its reference, and the running balance after it — the same rows your CSV holds.
Illustrative rows.
The entries behind it
What the ledger records when you send ₦50,000 with a ₦50 fee on top, and again when the rail confirms.
| Account | Debit | Credit |
|---|---|---|
| merchant_wallet | ₦50,050.00 | |
| channel_pending_asset | ₦50,000.00 | |
| merchant_wallet_lien | ₦50.00 |
Debits equal credits — or the ledger refuses the entry.
Available drops here. The recipient's ₦50,000 is on its way; the ₦50 fee is held, not yet earned.
| Account | Debit | Credit |
|---|---|---|
| channel_pending_asset | ₦50,000.00 | |
| channel_settled_asset | ₦50,000.00 | |
| merchant_wallet_lien | ₦50.00 | |
| revenue_fees | ₦50.00 |
Debits equal credits — or the ledger refuses the entry.
The fee becomes ours only once the money lands. Account names are the real ledger families.
Also on the road
The rest of what ships with wallets today.
- StatementsPOST /v1/statements with a type and a fromDate–toDate range. We build the CSV in the background; GET /v1/statements/{id}/download fetches it. Exports of payins, payouts and conversions filter by status and search text too.Live
- AlertsAn in-app and push notification the moment a payout reaches its final status. A low-balance threshold you set per wallet is on our side of the desk today, not yet yours — tell us if you need it first.Partly live
- Multi-currencyOne wallet per currency. POST /v1/wallets with { "currency": "GHS" } creates it, or returns the one you already have. Pay out from any wallet; convert between them when you choose.Live
- APIGET /v1/wallets lists every wallet with balance, lienBalance, availableBalance and inflightBalance as minor-unit strings. GET /v1/wallets/{currency} returns one. Same key as the rest of the API.Live
Live wallet currencies: NGN, GHS, KES · ZAR and USD coming soon · as of 25 Sep 2026. Full coverage →
Sending as one person? The Payve app gives you the same wallets. Payve for you →
Your first wallet is one call away.
No setup fee. Sandbox keys on signup. A balanced entry for every kobo.