Digital Africa11 min read

MTN MoMo Timeout and Retry: Cutting Failed Collections in Accra

Mohamed Bah·Fondateur, Kolonell
August 20, 2026
Share:
MTN MoMo Timeout and Retry: Cutting Failed Collections in Accra

MTN MoMo Timeout and Retry: Cutting Failed Collections in Accra

Digital Africa

The verdict in three sentences

Between 15 and 30% of MTN MoMo collection failures are not real declines: they are USSD or network timeouts that are recoverable. A well-tuned retry + status-poll loop (poll every 5s up to 90s, exponential backoff over 3 attempts) converts 8 to 14 points of pending collections into successful ones. The key is idempotency: a unique external reference per transaction so you never charge the customer twice.

Anatomy of a transient failure

When a customer approves an MTN MoMo payment, the operator opens a USSD prompt window of 60 to 120 seconds. If the network hiccups or the customer types slowly, the transaction stays pending, neither failed nor confirmed. Without a status poll, your system wrongly marks it failed and loses the sale, even though the money may already have moved.

ParameterRecommended 2026 value
MoMo USSD prompt window60 to 120s
Poll intervalEvery 5s
Max poll duration90s
Retry attempts3 (exponential backoff)
Backoff between attempts5s, 15s, 45s
Idempotency keyUnique external reference

Taxonomy of the 6 failure codes

CodeTypeRecoverable?Action
USSD timeoutTransientYesPoll status then retry
Network errorTransientYesRetry with backoff
Insufficient balanceTerminalNoNudge customer (SMS)
Wrong PINTerminalNoNew customer attempt
Customer cancelledTerminalNoOffer another method
Blocked accountTerminalNoRedirect to operator

The rule: transient codes go into the automatic retry loop, terminal codes go to a customer nudge. On the MTN MoMo Collections API this same mechanism lifts pending-to-successful conversion by 8 to 14 points.

Mini case study

Need a professional website?

Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.

Kwame sells event tickets in Accra, 2,000 transactions/month at GHS 60 each. His raw failure rate is 22%, of which he estimates 60% are transient. Without retry he loses 440 transactions/month. Adding the retry + poll loop, he recovers ~12 points, saving 240 transactions, roughly GHS 14,400/month of added revenue, without a single extra cedi of ad spend.

FAQ

How do I avoid charging the customer twice? With an idempotency key: every attempt reuses the same unique external reference. The operator recognizes the transaction and never doubles the charge.

What poll cadence is optimal? Polling every 5 seconds up to 90 seconds covers the USSD window (60 to 120s) without hammering the API. Beyond that, switch to retry with backoff.

How many retry attempts? Three, with exponential backoff (5s, 15s, 45s). Beyond that the failure is likely terminal and a customer nudge via SMS or WhatsApp works better.

Does it also work for Orange Money? Yes, the same mechanism on the Orange Money API improves conversion by 8 to 14 points. The code taxonomy is adapted per operator.

What realistic gain should I expect? As an order of magnitude, recovering 8 to 14 points of pending collections. On a 22% failure rate at meaningful volume, that is often thousands of cedis a month.

Let's talk about your project. We audit your MoMo failure rate and wire an idempotent retry loop. WhatsApp +221 77 596 93 33.

Tags:#Orange Money#MTN MoMo#retry#timeout#failed payment#Abidjan#Accra#collections API
Share:

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.