How to choose a collections API for Africa.Test how the money arrives.

A demo shows a payment that worked. Your payers will cancel prompts, mistype references and pay twice.

Collections guideUpdated 19 Oct 20268 min read

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.

MethodHow the payer paysCheck before you sign
Mobile money promptYour 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 paybillThe payer starts the payment and types an account number you gave themWhether you can validate the account number before the payment completes
Bank transfer to an account numberThe payer sends a transfer to an account number issued for them or for one paymentWhether the number is fixed per payer or created per payment, and how mismatched amounts are handled
CardThe payer enters card details at checkoutWhich 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.

TestHow to trigger itA good result
Cancelled promptCancel a mobile money prompt on the phoneA final failed or cancelled status, with a clear reason
Ignored promptLet a prompt go unansweredThe payment ends as failed or expired, never pending for good
Missed callbackTake your callback endpoint offline for one paymentA status query returns the final result
Duplicate requestSend the same request twice with one referenceOne payment, and a duplicate error on the second
Wrong referencePay a paybill with a mistyped account numberRejected by your validation, or flagged for manual matching
Wrong amountSend too much, then too little, to an account numberThe provider's rule applies, and you see the original amount
Double paymentPay the same order twiceA reversal or refund you can trigger and track
ReconciliationExport one day of collections and settlementsEvery 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.

For PSPs, fintechs and platformsthat collect across Africa.

Talk to our team about collections across Africa.