The verdict in three sentences
In Accra, collecting across MTN, Telecel and AirtelTigo MoMo should not mean three integrations that look nothing alike. A single abstraction layer exposes a common PaymentProvider interface (checkout, webhook, status, refund) and each provider is just an implementation behind that contract. The result: adding a fourth channel becomes a file, not a project, and an automatic fallback routes the buyer to another channel if one times out.
Single aggregator or direct integrations: the 2026 trade-off
Two paths exist: go through an aggregator (Flutterwave, for example) that exposes one API for several channels, or integrate each provider directly behind your own abstraction. The choice depends on volume and fee margin.
| Criterion | Single aggregator | Direct integrations |
|---|---|---|
| Time to launch | 3 to 5 days | 3 to 6 weeks |
| Fee per transaction | ballpark 1.4 % | Negotiated per provider |
| Routing control | Limited | Full |
| Merchant contracts | 1 | 1 per provider |
| Adding a provider | Included | One implementation |
| Recommended for | Fast launch | High volume, thin margin |
For a Ghanaian store starting out, the aggregator speeds launch; at high volume, direct integrations behind a home-grown abstraction protect the margin.
The PaymentProvider interface and supported channels
The core of the architecture is a single contract. Each provider implements the same four methods, making the calling code provider-independent.
| Method | Role | Return | |
|---|---|---|---|
| checkout(order) | Creates the session | URL + reference | |
| webhook(payload) | Handles the notification | Normalized status | |
| status(ref) | Queries a payment | pending/succeeded/failed | |
| refund(ref) | Refunds | ok/error | |
| Provider | Market | 2026 fee | Coverage |
| Flutterwave (aggregator) | Ghana, pan-Africa | ballpark 1.4 % local | MoMo + cards + bank |
| MTN MoMo | Ghana, region | ballpark 1.5 % | USSD + API |
| Wave | Senegal, CI, Benin | ballpark 1 % | Mobile + QR |
| Orange Money | Francophone region | ballpark 1.5 % | Web redirect + USSD |
A simple fallback: if one channel returns a timeout beyond 30 seconds, immediately offer another without the buyer re-entering their cart.
Coverage comparison with a home-grown layer (Cotonou)
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
In Cotonou, a home-grown abstraction integrates Wave, Orange Money and Moov directly, giving full routing control at the cost of three merchant contracts.
| Channel | Flutterwave Accra | Home-grown layer Cotonou |
|---|---|---|
| Mobile money | MTN, Telecel, AirtelTigo | Wave, OM, Moov |
| Cards | Included | To add (Stripe) |
| Bank transfer | Included | No |
| Contracts to sign | 1 | 3 |
| Indicative fees | ballpark 1.4 % | 1 to 1.5 % |
Mini case study
Kwame runs an online grocery in Accra, processing 600 orders per month (average basket 90 GHS), i.e. 54,000 GHS. Before the abstraction, 8 % of payments failed because a single channel was offered and sometimes unavailable, about 4,320 GHS lost. With the Flutterwave multi-channel fallback, the failure rate drops to 2 %, recovering over 3,200 GHS of sales per month for a negligible extra fee cost.
FAQ
Why an abstraction layer rather than three separate integrations? Because the calling code stays identical regardless of the channel: adding a provider becomes an implementation of the same contract, not a checkout rewrite. You halve the technical debt.
Should I prefer an aggregator like Flutterwave? For a fast launch, yes: one contract, several channels. At high volume, direct integrations behind your abstraction better protect your fee margin.
How does the fallback work on timeout? Beyond 30 seconds without a response, your layer automatically offers another channel, without the buyer re-entering their cart or details.
How many merchant contracts are needed? With direct integrations, one per provider. With an aggregator, a single contract covers them all.
Is refund handled the same way everywhere? Yes, that is the point of the common contract: refund(ref) is called identically, each provider handling its internal mechanics.
Let's talk about your project. We build a multi-provider checkout layer in Accra with Flutterwave, plus fallback and unified refunds. 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.

