The verdict in three sentences
To sell across Nigeria, Ghana and Kenya, one codebase with a per-country operator matrix beats three separate integrations to maintain. The real decision is commercial, not technical: a multi-country aggregator (live in 3 to 5 days per market) versus stacking direct APIs (2 to 3 weeks per market). The aggregator costs a 1.5 to 3% FX spread but saves you months of dev and one contract instead of many.
The per-country operator matrix
Each market has its own mobile money mix. A single checkout must show the right buttons based on the detected country without duplicating business logic.
| Country | Mobile money operators 2026 | Currency | Direct integration time |
|---|---|---|---|
| Nigeria | Paystack, Flutterwave (cards + bank + USSD) | NGN | 2 to 3 weeks |
| Ghana | MTN MoMo, Telecel Cash, AirtelTigo | GHS | 2 to 3 weeks |
| Kenya | M-Pesa (Daraja) | KES | 3 to 6 weeks |
Unlike the UEMOA zone, these three markets use three different currencies (NGN, GHS, KES), so FX handling is unavoidable the moment you consolidate revenue in one settlement currency.
Aggregator vs stacked direct APIs
| Criterion | Multi-country aggregator | Stacked direct APIs |
|---|---|---|
| Time-to-live per market | 3 to 5 days | 2 to 3 weeks |
| Contracts to sign | 1 | Several (operator x country) |
| Marginal cost | 1.5 to 3% spread | Raw operator fee 1 to 1.5% |
| Maintenance | Centralized | Multiplied per operator |
| Reconciliation | 1 consolidated feed | N feeds to match |
| Best for | Fast launch, mid volume | High volume, margin-critical |
At low to mid volume the aggregator wins on speed and simplicity. Above a certain GMV, direct integration becomes profitable again, a threshold trade-off we size case by case.
9-step go-live checklist
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
- Detect the country and pre-select available operators.
- Show prices in the local currency (NGN, GHS or KES).
- Wire confirmation webhooks for each operator.
- Implement a unique external reference per transaction.
- Handle STK/USSD timeouts (60 to 120s) with a status poll.
- Test a real payment per operator and per country.
- Configure consolidated settlement reconciliation.
- Plan a fallback if an operator is unavailable.
- Turn on monitoring and failure alerts.
Mini case study
Ama sells accessories from Accra and wants to open Nigeria and Kenya. Direct integration would have meant 6 to 9 weeks of dev plus Safaricom Daraja onboarding for Kenya. Via an aggregator she goes live in both markets in 8 cumulative days. On an added GMV of the equivalent of NGN 12M/month, the 2% spread costs her about NGN 240,000/month, easily absorbed by the unlocked revenue and the dev weeks saved.
FAQ
Do I need different code per country? No, that is the whole point: one codebase, one per-country config matrix that enables the right operators. Adding a country is a config line, not a new project.
How fast can I launch a new market? Via aggregator, 3 to 5 business days to test and go live. Direct, 2 to 3 weeks per market, longer for Kenya with Safaricom onboarding.
Is FX expensive across these markets? Yes, unlike the CFA zone, Nigeria, Ghana and Kenya use three currencies. Expect a 1.5 to 3% spread when consolidating into one settlement currency.
When should I move to direct integration? When your volume makes the aggregator spread cost more than direct dev and maintenance. We compute that threshold on your real GMV before deciding.
What if an operator goes down? The checkout offers a fallback to another available operator in the same market so you don't lose the sale.
Let's talk about your project. We map your target markets and price aggregator vs direct on your volume. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.
