So the switch from testing to going live is: change the key. Nothing else.
What test mode gives you
- Simulated providers — transfers, collections and card calls resolve against simulators, so nothing leaves your account.
- An isolated test wallet — separate from your live balance. Your live money is never read or moved in test mode.
- Mode-aware webhooks — test events are delivered only to webhook subscriptions registered as test, and carry
livemode: false.
The sandbox endpoints below require a
test_key_. Calling them with a live key returns a clear rejection — they can never touch live balances.Test data
Test mode is deterministic: the input you send decides the outcome. No special headers, no dashboard toggles — send one of the values below and you get that result, every time. For a simulated operation, any input value not listed here takes the happy path, so the success case needs no magic values.That applies to the values you send, not to every endpoint. An operation Numero does not yet simulate returns
HTTP 501 naming the gap, rather than a fabricated success — so a green test run means the call was actually
exercised, not merely that nothing objected. If you hit a 501, tell us; it is a missing simulation, not your bug.
Verification & credit — the BVN decides
11111111111 is the one worth testing against. The fields are present and null — a bureau returning “we hold
no score for this person” is an answer, not an error, and your code has to survive it. See
Reading normalizedResult.
What you get back. These are the real responses, not illustrations — POST /business/verification/credit-score:
Note the middle row: a thin file is a successful, billable verification whose answer happens to be “no score”.
Branch on the field being
null, not on success. Full bodies for all three are on the
Credit page.
Test mode mirrors what each product really returns — including that
credit-first-central returns no score.
If you need a number to derive a lending band, use credit-score or credit-summary. We’d rather the sandbox
tell you that now than have you discover it in production.Transfers & payouts — the amount decides
Account validation (name enquiry)
Bills & airtime
Fund your test wallet
Top up your test balance with simulated money.Reset your sandbox
Wipe your test transactions and virtual accounts and reset the test balance to its default.Test transactions are capped at 30 per merchant — the oldest are pruned automatically. Reset whenever you want a clean slate.
Fire a test webhook
Send a sample event to your registered test webhook endpoint(s) to exercise your handler without waiting for a real payment.livemode: false.
Going live
- Build and verify everything with your
test_key_. - Swap in your
live_key_— same base URL, same endpoints. - Register your live webhook URL and confirm you’re handling
livemode: truedeliveries.