Looking for sandbox scenarios? See the Testing & Sandbox guide →

Sandbox

Test integrations without moving real money. Use base URL https://api.watenga.africa with sk_test_* and pk_test_* keys from a Sandbox app in the Developer Console.

How to get sandbox keys

Open the Developer Console → Apps & credentials. Click New App and select the Sandbox environment. Your sandbox Client ID and Secret Key are shown after creation.

Sandbox and Live are separate apps with separate keys. Never mix them.

Test cards

Card numberBrandWhat happens
4111 1111 1111 1111VisaApproved: payment.capture.completed
4012 0000 3333 0026VisaApproved: payment.capture.completed
5200 0000 0000 0007MastercardApproved: payment.capture.completed
4000 0000 0000 0002VisaDeclined by the issuer (do not retry): payment.capture.declined
5200 0000 0000 0114MastercardDeclined by the issuer (do not retry): payment.capture.declined
4000 0000 0000 0069VisaDeclined by the issuer (do not retry): payment.capture.declined
4000 0000 0000 0127VisaDeclined by the issuer (do not retry): payment.capture.declined
4000 0000 0000 9995VisaDeclined, insufficient funds (the buyer may retry)
4000 0000 0000 0119VisaProvider timeout: stays pending, then fails

Expiry: any future month, e.g. 12/34. CVC: any 3 digits. Any name and address. Test keys only: these numbers never reach a card network.

Test mobile-money numbers

NumberInternationalWhat happens
0771111111+263771111111Approved at once: payment.capture.completed
0772222222+263772222222Pending for about 30 seconds (onPending), then approved
0773333333+263773333333The buyer refuses the prompt (onCancel): payment.capture.cancelled
0774444444+263774444444Insufficient balance, fails at once: payment.capture.declined

Any mobile wallet in test mode; no real phone is prompted.

Try the payment simulator in the developer console to send test API requests without Postman.
Sandbox data resets every 24 hours at midnight UTC.