The verdict in three sentences
In mobile money, 8 to 14 % of payment attempts end in an ambiguous "pending" status due to USSD timeouts or lost webhooks, and 2 to 4 % of transactions marked "failed" were actually paid. A webhook alone is therefore never enough: complete it with active status polling then a nightly reconciliation. Without this triptych, you either ship unpaid orders or lose sales you actually collected.
Why the webhook alone fails
The webhook is a notification the aggregator pushes to your server. It can be lost (network, endpoint timeout, redeploy, load spike). If all your logic depends on it, a paid order stays "pending" forever. The right architecture combines three complementary mechanisms.
| Mechanism | Role | Reliability alone | Latency |
|---|---|---|---|
| Webhook | Pushed notification | Medium (can be lost) | Near real-time |
| Status polling | Active query | High | 15-30 s |
| Nightly reconciliation | Safety net | Very high | D+1 |
| Idempotency | Avoid duplicates | Cross-cutting | N/A |
The time windows to know in 2026
The 2026 orders of magnitude observed in West Africa guide the settings. The Orange Money confirmation window can reach 5 minutes (the customer validates on their phone). Hence a patient poll before concluding failure.
| Status | Recommended action | Delay |
|---|---|---|
| Initiated | Start polling | Immediate |
| Pending | Poll every 15-30 s | Up to 3 min |
| Confirmed (webhook OR poll) | Mark paid, ship | Immediate |
| Still pending after 3 min | Move to "to reconcile" | 3 min |
| No confirmation | Auto-cancel (TTL) | 15 min |
| D+1 reconciliation | Replay real PSP status | Overnight |
Rule: never definitively cancel an order before cross-checking the real status on the aggregator side, or you risk cancelling a collected payment.
Idempotency, the backbone
Since webhook and polling can confirm the same transaction, each event must be idempotent: an order flips to "paid" only once, whatever the source or the number of notifications received. Use a unique key (transaction reference) and a lock to prevent double shipping or double accounting.
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
Fatou runs an online grocery in Thiès: 2,000 payment attempts/month, average basket 9,000 FCFA. Previously she relied on the webhook alone. Result: about 11 % of orders stuck "pending" (220/month) and 3 % of "false failures" actually paid (60/month) she never shipped.
By adding polling + nightly reconciliation, she recovers those 60 paid-but-unshipped orders: 60 × 9,000 = 540,000 FCFA/month of saved sales, i.e. 6.48 M FCFA/year. And the 220 ambiguous orders resolve automatically (paid or cleanly cancelled) with no manual work, saving several support hours per week.
FAQ
Is a "pending" order paid? Not necessarily — that is exactly the ambiguity. In 2026, 8-14 % of attempts stay pending due to timeouts or lost webhooks. You must query the real status on the aggregator side before concluding.
What polling interval should you use? A safe order of magnitude: every 15-30 seconds for 3 minutes, since Orange Money confirmation can take up to 5 minutes. Beyond that, move to "to reconcile" rather than a hard failure.
How many "false failures" are actually paid? About 2-4 % of transactions marked failed. Without nightly reconciliation, these are collected but unshipped sales — money left on the table.
After how long should you cancel an order? A 15-minute TTL is a reasonable marker, but only after checking the real PSP-side status. Never cancel blindly: you could void a collected payment.
What is idempotency for here? Webhook and polling may confirm the same transaction: idempotency guarantees an order flips to "paid" only once, with no double shipping or double accounting.
Let's talk about your project. We set up webhook + polling + nightly reconciliation for zero ambiguous 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.
