The verdict in three sentences
A sandbox (test environment) lets you replay every payment scenario with no real money moving, using test keys and test cards. Never go live without validating at least the five cases success, failure, timeout, duplicate and refund. A payment bug in production means an abandoned cart and a lost customer, while a 2-hour QA pass prevents it.
Test mode with Paystack and Flutterwave
On the anglophone side, you configure test keys separate from production keys, then call the API with test cards that trigger controlled responses. The test mode lets you force a failure or timeout without waiting on chance.
| Scenario | Paystack / Flutterwave test mode (2026) | Wave / OM sandbox (2026) |
|---|---|---|
| Keys | test secret/public keys | dedicated test keys |
| Success | test card 408... | test number OK |
| PIN / OTP | PIN 0000, OTP 123456 | provided test code |
| Forced failure | dedicated declined card | dedicated failure number |
| Timeout | specific amount / card | timeout number |
| Refund | simulable in test | simulable |
The exact identifiers (cards, numbers) are provided in each operator's documentation and change over time; verify them before every 2026 QA pass.
QA checklist before go-live
Structured QA covers every path, including the unhappy paths often forgotten: what does the customer see on failure? Is the webhook idempotent against a duplicate?
| Test | Expected | Go-live blocker? |
|---|---|---|
| Successful payment | order confirmed + webhook received | yes |
| Failed payment | clear message, order not validated | yes |
| Operator timeout | "pending" status, no double charge | yes |
| Duplicate webhook | processed once (idempotent) | yes |
| Partial refund | correct refund, status updated | yes |
| Wrong amount | clean rejection | no |
| Slow 3G network | no double submission | yes |
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
David launches an online store in Lagos. In the sandbox, he replays 12 scenarios in 90 minutes. He finds two bugs: on timeout, his site wrongly validated the order; and a webhook sent twice created two orders. He fixes it, adds an idempotency key on the transaction reference, and re-tests. On launch day, across 80 real orders, zero double charges and zero ghost orders. Estimated cost avoided: several carts at an average of 15,000 NGN, plus reputation.
FAQ
Does the sandbox cost money? No, no real money moves in test mode. You only spend your QA time, on the order of 2 hours for a simple store.
How do I force a failure or timeout? By using the dedicated declined test cards (Paystack/Flutterwave) or the dedicated failure numbers (Wave/OM). Test mode triggers the desired response on demand.
What is webhook idempotency? It is the guarantee that the same event received twice creates only one order. You get it by storing the transaction reference and ignoring duplicates.
Which test cards and OTPs should I use? Historically card 408..., PIN 0000, OTP 123456 in Paystack test, but check the up-to-date 2026 docs as these values can change.
Can I test a refund? Yes, refunds are simulable in the test environment. Confirm that the order status changes to "refunded" and the customer is notified.
Let's talk about your project. We ship your payments with a full sandbox QA pass and idempotent webhooks before go-live. 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.
