Countries And Currencies
Where you can collect, how you can be settled, and how amounts are interpreted.
Kyshi separates the currency your customer pays in from the currency you are paid in. Collection currencies are local; settlement currencies are what lands in your account.
Which currencies are enabled for your business is part of your configuration. The lists below are what the platform supports, not what your account has turned on.
Collection Currencies
The currency the customer pays in.
| Currency | Code |
|---|---|
| Nigerian Naira | NGN |
| Kenyan Shilling | KES |
| Ghanaian Cedi | GHS |
| South African Rand | ZAR |
| West African CFA Franc | XOF |
| US Dollar | USD |
Settlement Currencies
The currency Kyshi settles to you in.
| Currency | Code |
|---|---|
| US Dollar | USD |
| Pound Sterling | GBP |
| Euro | EUR |
| Canadian Dollar | CAD |
| Chinese Yuan | CNY |
| USD Coin | USDC |
| Tether | USDT |
USDC and USDT settle on-chain rather than through a bank. If you are settling to stablecoin, confirm the network and wallet details with Kyshi during onboarding — those are account configuration, not API parameters.
How Amounts Are Interpreted
Every amount you send is read against a currency basis. Get this wrong and you will charge the wrong amount, so it is worth being deliberate.
amountCurrency | amount means | Use when |
|---|---|---|
settlement | An amount in your settlement currency. Kyshi converts to the customer's local currency at collection time. | You price once, globally. A $10 product stays $10 everywhere. |
local | An amount in localCurrency, exactly. No conversion. | You already know the precise local price the customer must pay. |
{
"email": "[email protected]",
"amount": 10,
"amountCurrency": "settlement",
"localCurrency": "NGN"
}The customer is charged the NGN equivalent of 10 units of your settlement currency, at the rate applied when the transaction is created.
{
"email": "[email protected]",
"amount": 15000,
"amountCurrency": "local",
"localCurrency": "NGN"
}The customer is charged exactly 15000 NGN.
Amounts Are In Major Units
Send 1000 to mean one thousand Naira, not one hundred thousand kobo. Kyshi does not use minor units on the public API.
This differs from several other payment APIs, so it is a common source of amounts that are wrong by a factor of 100. Test one real amount in test mode before going live.
Rounding On Virtual Accounts
When a settlement-priced amount is converted to a local amount for a virtual account, the result rarely lands on a round number. A customer typing an awkward figure into their banking app is a source of underpayment.
Virtual accounts therefore apply a rounding strategy — either rounding up, or to the nearest unit — so the amount you display is one the customer can plausibly transfer. The strategy is part of your virtual account configuration.
Rounding does not eliminate underpayment or overpayment. The customer still controls what they actually send, so handle PARTIAL and OVERPAID regardless. See Statuses And Lifecycles.
Which Currencies Apply To A Given Call
Collection currency is set per transaction, through localCurrency. Settlement currency is set on your business configuration, not per transaction — you do not choose it per call.
A currency that is not enabled for your business returns 422 Unprocessable Entity with a message naming the unsupported currency. That is a configuration issue, not a request issue; retrying will not help.
Next
- Fees And Who Pays Them — what is deducted, and by whom
- FX And Rates — how conversion rates are determined
- Settlements — how collected money reaches you
Updated about 20 hours ago
