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 numberBrandWhat happens
4111 1111 1111 1111VisaApproved: payment.capture.completed
4000 0000 0000 0002VisaDeclined 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.