How we charge
No plans.
Just the fee, first.
You pay per movement, never by the month. Request a quote and the fee, the rate and the margin come back as numbers before anything moves. You pay only for what arrives.
1POST /v1/quotes2x-api-key: sk_live_…34{5 "sourceCurrency": "NGN",6 "destinationCurrency": "KES",7 "amount": 5000000,8 "transactionType": "payout"9}
1201 Created23{4 "id": "qte_8xk2…",5 "sourceCurrency": "NGN",6 "sourceAmount": "5000000",7 "destinationCurrency": "KES",8 "destinationAmount": "412871",9 "rate": "0.0836000000",10 "marginAmount": "2090",11 "fee": {12 "amount": "3039",13 "currency": "KES",14 "structure": {15 "type": "mixed",16 "percent": "0.25",17 "fixed": "2000",18 "cap": "15000"19 }20 },21 "expiresAt": "…T10:05:00Z"22}
Amounts in minor units. Illustrative values — your rule and margin are set for your account.
How the fee works
Three facts cover the whole model. All three are in the engine.
Per movement. Never a monthly bill.
You pay a fee when a payout, collection or conversion happens, taken from that movement. No setup fee, no minimum, nothing on the first of the month. An account that sends nothing pays nothing.
Fixed, a percentage, or both — with a cap.
Every fee is one rule: a fixed amount, a percentage of the amount, or the two together, with an optional maximum. Rules are set per currency, method, direction and amount band. The maths runs in whole minor units and rounds down, in your favour.
FX is mid-market plus a margin you can see.
A cross-currency quote takes the mid-market rate, applies our margin once, then the fee. The margin comes back as its own field, marginAmount, so the spread is never folded into the rate.
What is charged, and when
Five things that can happen to your money, and what each one costs.
- PayoutOne fee, fixed in the quote. It is set aside with the amount when you send and earned only when the channel confirms delivery.When it arrives
- CollectionOne fee on the deposit, taken as the money credits your wallet. An underpaid payment is returned whole and carries no fee. On an overpayment we charge only on the amount you keep; the excess goes back.On credit
- ConversionThe margin, applied once to the mid-market rate and shown as marginAmount, plus any conversion fee set for the pair. Both are in the quote before you accept it.In the quote
- Wallet holdNothing. While a payout is in flight, the amount and its fee sit in a hold on your wallet. A hold is your money set aside until the channel answers, not a charge.Free
- Arrivals onlyYou pay the fee on payments that arrive. Anything else costs nothing, and the hold — amount plus fee — returns to your wallet in one balanced ledger entry.Nothing charged
For people
Sending from the app? The Review screen shows the fee and the total that leaves your account before you confirm. Two rows, no small print.
Same rule shape, same rounding, same promise: the number you review is the number you pay. Payve for people →
- Recipient gets
- ₦20,000.00
- Fee
- ₦25.00
- Total debit
- ₦20,025.00
Illustrative values.
How to see your exact fee
Three places the exact number lives. None of them is a sales call.
- QuotePOST /v1/quotes with the currencies, the amount and the direction. The response carries fee.amount, fee.structure (the percent, fixed part and cap that produced it) and marginAmount. It is held for five minutes by default.
- ResponseEvery payout and collection response, and every webhook, carries feeAmount and feeCurrency. What you were quoted is what posts to the ledger.
- ExportIn the dashboard, filter payouts, collections or conversions and export the list. Each row drills to the ledger entry behind it, where the fee is its own line.
See your number before anything moves.
Sandbox keys on signup. Fee and margin in every quote. Nothing charged until money moves.