The verdict in three sentences
The MTN MoMo Open API covers 6+ countries in 2026 (Cameroon, Ghana, Uganda, Côte d'Ivoire...) with a unified but demanding architecture. The RequestToPay flow is asynchronous: you initiate the request, then poll the status because the callback is optional and sometimes unreliable. The real integration work is managing subscription keys, sandbox/production environments and the distinct XAF and GHS currencies.
Fees, KYC and MTN MoMo currencies 2026
MTN MoMo Collection lets you collect from MTN wallets. Setup runs through a developer portal with subscription keys and a generated API user.
| Item | 2026 value (estimate) |
|---|---|
| Collection fee per transaction | ~1.5 % |
| Merchant KYC delay | 3 to 7 business days |
| Countries covered (Open API) | 6+ (CM, GH, UG, CI...) |
| Currencies | XAF (Cameroon), GHS (Ghana) |
| Standard wallet limit | Varies by country and KYC |
| Settlement to account | T+1 to T+2 |
| Environments | Sandbox + Production |
| Callback | Optional (polling recommended) |
Each country has its own limits and KYC rules. Cameroon uses XAF, Ghana uses GHS: your amount logic must be configurable per country, never hard-coded.
Endpoint table and retry best practices
A MoMo Collection payment follows a clear lifecycle. The critical point is polling the status with a controlled retry strategy.
| Endpoint / Step | Role | Best practice |
|---|---|---|
| POST /token | Get the bearer token | Cache until expiry |
| POST /requesttopay | Initiate the payment request | Generate a UUID X-Reference-Id |
| GET /requesttopay/{id} | Fetch the status | Poll every 5-10 s |
| Status PENDING | Awaiting customer PIN | Retry with exponential backoff |
| Status SUCCESSFUL | Payment confirmed | Validate then fulfill order |
| Status FAILED | Failure or refusal | Log the reason code |
| Idempotency | Avoid duplicates | Unique stored X-Reference-Id |
A common pitfall: treating a PENDING status as a failure. The customer may take 30 to 60 seconds to enter their PIN, so allow a 90-second polling window before declaring failure.
Mini case study
Ibrahim runs an auto-parts shop in Douala with an average basket of XAF 25,000 and 200 orders a month, i.e. XAF 5,000,000 in revenue. At 1.5 % MoMo fees he pays XAF 75,000 per month. Adding Ghana (GHS) to his catalogue via the same Open API opens a second market without re-integrating a gateway: only currency and limit settings change. His T+1 settlement lets him restock weekly without cash-flow strain.
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
FAQ
Is the MTN MoMo callback reliable in 2026?
The callback exists but is optional and sometimes delayed. The recommended practice is polling GET /requesttopay/{id} every 5 to 10 seconds until SUCCESSFUL or FAILED.
What does MTN MoMo Collection cost?
Expect around 1.5 % per transaction in 2026. On XAF 5,000,000 collected, that is roughly XAF 75,000 in fees.
Can one integration serve both Cameroon and Ghana?
Yes, the Open API is unified, but currencies (XAF vs GHS), limits and KYC differ. Keep these parameters configurable per country.
How long is merchant KYC?
Expect 3 to 7 business days depending on the country and how complete your file is. Plan for this before any launch.
How do I avoid duplicate payments?
Generate a unique UUID X-Reference-Id per transaction, store it, and make your handler idempotent to absorb retries without double-counting.
Let's talk about your project. We integrate multi-country MTN MoMo Collection with robust polling and XAF/GHS handling. 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.


