Test mode
Every account starts in test mode. Test keys (sk_test_…, pk_test_…) go through the same API, the same validation and the same webhooks as live keys, but no provider is called and no money moves. Test payments, balances and payouts are kept apart from live ones.
Test phone numbers
The last four digits of the phone number decide what happens. Use any valid number for the country, for example 670000000 in Cameroon.
| Number ends with | Result | Failure code |
|---|---|---|
anything else (e.g. 670000000) |
succeeded after about 5 seconds |
— |
1111 (e.g. 670001111) |
failed: not enough money |
INSUFFICIENT_BALANCE |
2222 (e.g. 670002222) |
failed: the customer declined |
PAYMENT_NOT_APPROVED |
3333 (e.g. 670003333) |
stays pending, then failed after 2 minutes |
EXPIRED |
The same rules apply to payout destinations.
Redirect operators
Operators that use a payment page (wave_ci, wave_sn, orange_ci, moov_ci, orange_bf, moov_bf, card, wallet) return next_action.type = "redirect". In test mode the url opens a test operator page with Approve and Decline buttons, then sends the customer back to your return_url.
Fees in test mode
Test payments show the real fees you would pay in live mode, so you can check your numbers. Test money is available for payouts straight away (live money waits 24 hours).
Going from test to live
Change the key from sk_test_ to sk_live_. Nothing else changes. See Going live.