Test mode and test cards

Test mode is a full copy of Pay that moves no money: real checkout pages, real 3-D Secure screens, real refunds and signed webhooks, all against the processors' sandboxes. Build the whole integration here before you take a live payment.

How test mode works

  • A test key (bk_test_, or an older sk_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 numberWhat happensHow to use it
4562 5437 5547 4674Succeeds after 3-D SecureExpiry 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 numberWhat happensHow to use it
4000 0027 6000 3184Asks for 3-D SecureOn the test bank page, Complete makes it succeed and Fail makes it decline.
4000 0025 0000 31553-D Secure requiredMay pass without a challenge or show one. Either way it succeeds.
4000 0000 0000 0002DeclinedA generic decline from the card issuer.
4000 0000 0000 9995Declined: insufficient fundsShows the buyer the insufficient-funds message.
4000 0000 0000 0259Succeeds, then disputedThe 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.

BankAccount numberName the bank returnsWhat happens
Access Bank Nigeria1234567890Ahamad MusaVerified, if the test business is registered under a name with Ahamad Musa in it, such as Ahamad Musa Enterprises.
United Bank for Africa0000000000Test Bank Account - SuccessSaved 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

  1. Take a payment with each card above in the currencies the shop sells, and see the server confirm each one from the API.
  2. Decline one and cancel one, and check that your order page shows the right state and offers a way to try again.
  3. Refund a payment in full and another in part, and follow both to succeeded (see Refunds).
  4. Receive each event you subscribe to, check its signature, and send one with a wrong signature to see your server refuse it (see Webhooks).
  5. Repeat a create request with the same idempotency key and confirm you get the first result back, not a second payment.
Live payments open when Authvio has verified the owner and the business, and payouts once a bank account in the business's name is verified. The Activation tab in Pay shows what is left. Then make a live key and swap it in; nothing else in your code changes.

Every endpoint with its parameters: the Bolrach Pay API reference. Machine-readable: https://api.bolrachpay.com/v1/openapi.json.