To choose a collections API for Africa, start from how your payers pay in each country. Mobile money prompts, bank transfers and cards each behave differently. Then check how each payment is matched to an order, and when and in which currency it settles. Last, test the failures before you sign.
General information, not legal advice. Check current rules with your regulator and your providers.
What does a collections API for Africa do?
A collections API lets your system ask payers for money and confirm it arrived. It reaches payers on local methods, such as mobile money wallets and bank transfers. It tells your system when each payment succeeds or fails. Then it settles the money to you, in local currency or after conversion.
Many providers list the same countries. The differences show up per method, per country, once real payers start paying.
Which payment methods does it support in each country?
Ask for live methods per country, not a country count. Ask which operators and banks it reaches itself, and which go through another firm. Ask which licence covers you in each market.
| Method | How the payer pays | Check before you sign |
|---|---|---|
| Mobile money prompt | Your system sends a request. The payer approves it on their phone with a PIN. | Which operators it reaches, what happens when the payer cancels or ignores the prompt |
| Mobile money paybill | The payer starts the payment and types an account number you gave them | Whether you can validate the account number before the payment completes |
| Bank transfer to an account number | The payer sends a transfer to an account number issued for them or for one payment | Whether the number is fixed per payer or created per payment, and how mismatched amounts are handled |
| Card | The payer enters card details at checkout | Which local and international cards it accepts, and how disputes reach you |
In Kenya, M-Pesa Express sends a payment prompt to the payer's phone. The payer confirms with their M-Pesa PIN. On a paybill, the payer enters the account number.
In Nigeria, bank transfers can run over NIP, the NIBSS Instant Payment service. NIBSS lists a name enquiry that checks the account holder's details from the account number. It also lists a status query for transfers sent earlier.
How does it tell you a payment arrived?
A request accepted is not a payment received. The two mobile money APIs below are asynchronous. The final result arrives later, by callback or by a status query.
- M-Pesa Express. Safaricom documents the API as asynchronous. The result goes to your callback URL. Result code 1032 means the payer cancelled the request.
- MTN MoMo. A request to pay starts as PENDING. It then moves to SUCCESSFUL or FAILED. MTN says the callback is sent once, with no retry. If it never arrives, you check the status with a query.
- Bank transfers. The payer pays when they choose, from their own account. Your provider must notice the credit and tell you, with the account number it landed on.
Ask for one webhook per final status, signed so you can verify the sender. Ask whether it retries failed webhooks and lets you replay missed ones. Your system must ignore a duplicate. Credit your customer only on a final success, never on the first response. Then confirm the payment with a status query before you release goods or balance.
How does it match each payment to an order?
Reconciliation decides how many payments your team must match by hand. Ask how the provider ties each payment to your reference.
- Prompt references. On M-Pesa Express, your account reference shows in the payer's prompt. Safaricom caps it at 12 characters, so plan short references.
- Typed references. On a paybill, the payer enters the account number. Typos happen. Safaricom offers optional validation, activated on request. Your system must reply in about 8 seconds. If M-Pesa cannot reach your system, a default you set applies: completed or cancelled.
- Account numbers. Some providers issue a fixed account number per payer. Others create one per payment. A fixed number suits repeat payers. A per-payment number matches one invoice. See how virtual accounts work in Africa.
- Wrong amounts. Ask what happens when a payer sends too much or too little. One provider's docs say it reverses overpayments into Nigerian virtual accounts automatically. Ask each provider for its rule.
Ask for one export with your reference, the provider's reference, amount, fees and settlement batch on every line. Then match a full day against your ledger.
Which local limits cap what a payer can send?
Wallet limits apply to your payers' wallets. A payment above a payer's limit can fail on that wallet. Ask how the API reports it.
- Kenya. Since 15 August 2023, the mobile money transaction limit is a maximum of KES 250,000. A wallet can hold up to KES 500,000. The CBK press release says the limit applies across mobile money rails, including transactions with banks. A provider may set lower limits.
- WAEMU. BCEAO Instruction n°020 was signed on 8 October 2026. From 2 November 2026, one identified client can hold up to FCFA 4 million in e-money per issuer. One client's monthly top-ups per issuer are capped at FCFA 15 million. The caps do not apply to merchants accepting e-money in their business. Until then, Instruction n°008-05-2015 sets the caps.
WAEMU is the West African Economic and Monetary Union. Its eight countries, including Senegal and Côte d'Ivoire, use the XOF. Its central bank is the BCEAO.
Kenya's Treasury and central bank published a draft National Payment System Bill on 21 September 2026. It is still a draft. Check whether it changes these limits before you rely on them.
When and in which currency does it settle?
The money must reach you, in the currency you need.
- Settlement currency. Ask whether you can hold the local currency, convert to USD, EUR or GBP, or both. For XOF and XAF, see XOF and XAF conversions.
- Timing. Ask for settlement timing per method and country, with cut-offs, weekends and public holidays.
- One balance or two. Ask whether collected money can fund your payouts directly, without a transfer out and back in. If you also pay out, read how to choose a payout API for Africa.
- Holdbacks. Ask whether the provider keeps a reserve from your collections, and for how long.
Compare the full cost of a collected payment. Count the method charge, settlement fees and the FX spread on conversion.
What happens with refunds and reversals?
Ask how refunds and reversals work for each method.
Safaricom's Reversal API reverses customer-to-business M-Pesa payments. Its examples include double payments and services not delivered. M-Pesa then refunds the payer and sends an SMS. MTN's MoMo documentation lists refund calls with a refund status query.
Ask who starts a reversal, how long it takes, and how it shows in your reports. A reversal should arrive as its own status, linked to the original payment.
How do you test a collections API before you sign?
Give each shortlisted provider two weeks. In week one, integrate the sandbox and read every status and error code. In week two, collect small live payments where your payers are hardest to reach. A sandbox shows the shape of the API. Live payers show how it fails.
| Test | How to trigger it | A good result |
|---|---|---|
| Cancelled prompt | Cancel a mobile money prompt on the phone | A final failed or cancelled status, with a clear reason |
| Ignored prompt | Let a prompt go unanswered | The payment ends as failed or expired, never pending for good |
| Missed callback | Take your callback endpoint offline for one payment | A status query returns the final result |
| Duplicate request | Send the same request twice with one reference | One payment, and a duplicate error on the second |
| Wrong reference | Pay a paybill with a mistyped account number | Rejected by your validation, or flagged for manual matching |
| Wrong amount | Send too much, then too little, to an account number | The provider's rule applies, and you see the original amount |
| Double payment | Pay the same order twice | A reversal or refund you can trigger and track |
| Reconciliation | Export one day of collections and settlements | Every line matches your ledger by your own reference |
Log the time from payment to final status for every live test. Keep the results per method, for every provider on the shortlist.
FAQ
Is a callback enough to confirm a mobile money payment?
No. MTN says its platform sends the callback once, with no retry. If no callback arrives, query the payment status yourself.
Can a mobile money collection be reversed?
Yes, on M-Pesa. Safaricom's Reversal API reverses customer-to-business M-Pesa payments, such as double payments. Ask each provider how it handles reversals per operator.
Do the new WAEMU e-money caps apply to merchants?
No. From 2 November 2026, the caps apply to clients holding e-money. Merchants accepting e-money in their business are exempt.
How long should a collections API test take?
About two weeks. Use the sandbox in week one. Then collect small live payments where your payers are hardest to reach.
For PSPs, fintechs and platforms
Nilos reaches 80+ currencies on local rails. Accounts in your client's name are available in USD, EUR, GBP, AED, KES and XOF. Go live in about six weeks: a two-week integration, with compliance in parallel. See pay-ins and virtual accounts, or talk to our team about collections across Africa.