The verdict in three sentences
A "pending" payment is neither a success nor a failure: it's a temporary state between the attempted charge and confirmation. The 2026 best practice is an expiry window (typically 2 to 15 min) with automatic polling, never a blind manual decision. Statistically, around 92% of pendings resolve to success — the key is to release or cancel nothing before the final outcome.
Why a payment stays pending
Causes are almost always network- or customer-side, rarely a bug in your code. A slow USSD, a late PIN entry, a saturated provider: the payment floats for a few minutes.
| Cause | Relative frequency | Typical window | Likely outcome |
|---|---|---|---|
| Slow USSD network | high | 2-5 min | success |
| PIN not entered in time | medium | 3-10 min | failure (timeout) |
| Saturated provider (peak) | variable | 5-15 min | delayed success |
| Insufficient balance | low | immediate | failure |
| Customer abandons | medium | 15 min max | expiry |
Rule: never show "failure" before the window expires. A customer who sees "failure" while their payment is about to succeed will often pay again — and now you have a double charge.
The three-state status policy
An order moves through three clear states. The transition happens via webhook OR getStatus polling, never by hand.
| Status | Meaning | System action | Customer message |
|---|---|---|---|
| pending | Payment in progress | Hold stock, ship nothing | "Payment in progress, please wait…" |
| success | Confirmed | Validate order, release prep | "Payment confirmed ✓" |
| failed | Failed/expired | Release stock, offer retry | "Failed, please retry" |
The safety window: after 15 minutes without confirmation, mark failed, release reserved stock, and invite a retry. Treat the rare late confirmations as orphans to reconcile.
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 sells fabrics online in Thiès: 900 orders/month. About 7% pass through a pending state, i.e. 63 orders/month. At first she cancelled every pending after 3 min: she lost ≈ 40% of sales that would have succeeded, i.e. 25 orders × 15,000 FCFA = 375,000 FCFA/month evaporated. By extending the window to 12 min with getStatus polling every 30 s, 92% of pendings confirmed. Recovered sales: ~350,000 FCFA/month, with not a single double charge.
FAQ
How long should I leave an order pending? In 2026, a 2-to-15-minute window covers nearly all cases. Beyond 15 min, mark it failed and release stock; later confirmations are handled in reconciliation.
Should I ship a pending order? Never. Pending means the money isn't confirmed. Wait for success; shipping a pending order means giving away goods if the payment fails.
What message should I show the customer? A reassuring, active message: "Payment being validated, don't close this page…". Avoid a premature "failure," which pushes re-payment and thus double charges.
What share of pendings ends in success? 2026 order of magnitude: around 90 to 92% with a proper window and polling. The remaining 8-10% are genuine failures (PIN timeout, insufficient balance, abandonment).
How do I handle confirmations that arrive too late? Treat them as orphans: match them to unfulfilled sales, contact the customer, and fulfill or refund. A good transaction log makes this trivial.
Let's talk about your project. We implement clean pending handling: window, polling and clear customer messages. 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.

