Testing
Use a test publishable key (pk_test_…) in the iOS Simulator or Android Emulator, with a checkout session your server created with its test secret key. The sheet shows a Test badge.
Test cards
| Card number | Brand | What happens |
|---|---|---|
4111 1111 1111 1111 | Visa | Approved: payment.capture.completed |
4000 0000 0000 0002 | 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.