The verdict in three sentences
In 2026, 2 to 5 % of mobile money payment webhooks are not delivered on the first try, producing orders that are paid but never confirmed. The fix is two words: idempotency (never process the same event twice) and an exponential retry queue. With a fallback poll every 15 minutes, the phantom-order rate falls below 0.1 %.
Anatomy of a lost webhook
| Cause | 2026 frequency | Fix |
|---|---|---|
| Server down 2-3 s | 1-2 % | exponential retry |
| Network timeout | 0.5-1.5 % | retry + polling |
| Non-200 response | 0.5-1 % | replay the event |
| Duplicate event | 3-6 % | idempotency key |
| Out-of-order (paid before created) | 1-2 % | buffered queue |
A webhook is never guaranteed: treat it as a best-effort signal. The truth stays the provider-side status, verified by fallback polling.
Retry and idempotency strategy
| Parameter | Recommended 2026 value |
|---|---|
| Retry sequence | 1 s / 5 s / 30 s / 300 s |
| Attempts | 4-6 |
| Idempotency window | 24 h |
| Fallback polling | every 15 min |
| Delay before manual alert | 72 h |
| Cost of an unreconciled order | 5,000-50,000 FCFA in support |
The idempotency key is usually the provider's transaction ID. If the same ID arrives twice, the second is ignored. This simple rule eliminates most duplicates and double credits.
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Mini case study
Moussa runs a store in Lagos, 1,200 orders/month. Without idempotency or retry, he suffered 3 % phantom orders, i.e. 36/month, each averaging 20,000 FCFA in support cost (time, refund, reputation): 720,000 FCFA/month of damage. After adding the retry queue (1/5/30/300 s) + 15-min polling, the rate falls to 0.08 %, roughly 1 order/month. Saving: ~700,000 FCFA/month and a support team that can breathe.
FAQ
Why not rely on the webhook alone? Because 2 to 5 % never arrive on the first try. The webhook speeds confirmation, but the source of truth is the status polled on the provider side.
What is an idempotency key concretely? A unique identifier (often the provider transaction ID) your system remembers for 24 h. If the same event returns, it is ignored, preventing double-crediting an order.
Doesn't polling overload the API? No, if you only poll pending transactions every 15 minutes and stop as soon as a final status lands. It is a safety net, not the main mechanism.
How much does a phantom order cost? Between 5,000 and 50,000 FCFA depending on whether you refund, re-ship or handle a dispute. Across dozens of cases per month, the bill quickly passes 500,000 FCFA.
Let's talk about your project. We harden your Flutterwave, Wave and Orange Money webhooks with idempotency and retry to eliminate phantom orders. 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.


