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 number | Brand | What happens |
|---|---|---|
4111 1111 1111 1111 | Visa | Approved: payment.capture.completed |
4012 0000 3333 0026 | Visa | Approved: payment.capture.completed |
5200 0000 0000 0007 | Mastercard | Approved: payment.capture.completed |
4000 0000 0000 0002 | Visa | Declined by the issuer (do not retry): payment.capture.declined |
5200 0000 0000 0114 | Mastercard | Declined by the issuer (do not retry): payment.capture.declined |
4000 0000 0000 0069 | Visa | Declined by the issuer (do not retry): payment.capture.declined |
4000 0000 0000 0127 | Visa | Declined by the issuer (do not retry): payment.capture.declined |
4000 0000 0000 9995 | Visa | Declined, insufficient funds (the buyer may retry) |
4000 0000 0000 0119 | Visa | Provider 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
| Number | International | What happens |
|---|---|---|
0771111111 | +263771111111 | Approved at once: payment.capture.completed |
0772222222 | +263772222222 | Pending for about 30 seconds (onPending), then approved |
0773333333 | +263773333333 | The buyer refuses the prompt (onCancel): payment.capture.cancelled |
0774444444 | +263774444444 | Insufficient 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.