E-commerce11 min read

Pending and Timed-Out Transactions: Reconciling With Polling and Webhooks (2026)

Mohamed Bah·Fondateur, Kolonell
August 11, 2026
Share:
Pending and Timed-Out Transactions: Reconciling With Polling and Webhooks (2026)

Pending and Timed-Out Transactions: Reconciling With Polling and Webhooks (2026)

E-commerce

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.

MechanismRoleReliability aloneLatency
WebhookPushed notificationMedium (can be lost)Near real-time
Status pollingActive queryHigh15-30 s
Nightly reconciliationSafety netVery highD+1
IdempotencyAvoid duplicatesCross-cuttingN/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.

StatusRecommended actionDelay
InitiatedStart pollingImmediate
PendingPoll every 15-30 sUp to 3 min
Confirmed (webhook OR poll)Mark paid, shipImmediate
Still pending after 3 minMove to "to reconcile"3 min
No confirmationAuto-cancel (TTL)15 min
D+1 reconciliationReplay real PSP statusOvernight

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.

Tags:#pending transaction#payment timeout#reconciliation#status polling#webhook#idempotency#USSD#ambiguous order
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.