How test mode works
- A test key (
bk_test_, or an oldersk_test_) makes test payments, test refunds and test payouts. The key decides; nothing in a request can change it. - A test checkout page says TEST MODE · no real money moves at the top, and its address has
/t/where a live one has/l/. - Test payments land in a test balance that live figures never include. In the dashboard, the Live and Test switch on Pay chooses which one the dashboard shows.
- Webhook endpoints are made for one mode. A test endpoint hears test events only.
Naira payments
A business registered in Nigeria takes naira through the processor's sandbox. After you choose card on our checkout, the card form opens on the processor's test page, which also lists ready-made scenarios you can click.
| Card number | What happens | How to use it |
|---|---|---|
4562 5437 5547 4674 | Succeeds after 3-D Secure | Expiry 09/30, CVV 123. When the bank page asks for a code, enter 1234. |
Canadian and US dollar payments
Card payments in Canadian and US dollars use these numbers, with any future expiry date and any three-digit CVV. The card form starts with Canada as the country, so give a Canadian postal code such as K1A 0B1.
| Card number | What happens | How to use it |
|---|---|---|
4000 0027 6000 3184 | Asks for 3-D Secure | On the test bank page, Complete makes it succeed and Fail makes it decline. |
4000 0025 0000 3155 | 3-D Secure required | May pass without a challenge or show one. Either way it succeeds. |
4000 0000 0000 0002 | Declined | A generic decline from the card issuer. |
4000 0000 0000 9995 | Declined: insufficient funds | Shows the buyer the insufficient-funds message. |
4000 0000 0000 0259 | Succeeds, then disputed | The payment settles and a dispute opens shortly after, with a dispute.opened event. |
If your checkout offers PayPal, test mode opens PayPal's sandbox. Sign in there with a sandbox personal account from your own PayPal developer dashboard; no real PayPal account is charged.
Payout bank accounts
A payout account must be in the business's own name: we ask the bank for the account holder's name and compare it with the registered business name. In test mode, two Nigerian accounts show both outcomes.
| Bank | Account number | Name the bank returns | What happens |
|---|---|---|---|
| Access Bank Nigeria | 1234567890 | Ahamad Musa | Verified, if the test business is registered under a name with Ahamad Musa in it, such as Ahamad Musa Enterprises. |
| United Bank for Africa | 0000000000 | Test Bank Account - Success | Saved but not verified: the name does not match, and the page says so. |
A test payout is recorded as pending against the verified account and stays that way, because no money leaves in test mode. It still produces a payout.created event. The smallest naira payout is ₦1,000, sent as "100000", and a payout cannot be larger than the available balance.
Before you go live
- Take a payment with each card above in the currencies the shop sells, and see the server confirm each one from the API.
- Decline one and cancel one, and check that your order page shows the right state and offers a way to try again.
- Refund a payment in full and another in part, and follow both to
succeeded(see Refunds). - Receive each event you subscribe to, check its signature, and send one with a wrong signature to see your server refuse it (see Webhooks).
- Repeat a create request with the same idempotency key and confirm you get the first result back, not a second payment.