Paystack Test Cards and Test Scenarios
Use these Paystack test card numbers in test mode: Success: 4084084084084081 (CVV: 408, Expiry: any future date). Decline (Do Not Honor): 4084080000000409. Insufficient Funds: 4084080000000005. 3DS challenge required: 507850785078507812. For test bank transfers, use the Paystack test bank codes. For M-Pesa test, use phone 0708993090 with PIN 1234.
Paystack Test Card Numbers
| Scenario | Card Number | CVV | Expiry | PIN |
|---|---|---|---|---|
| Successful charge | 4084084084084081 |
408 | Any future date | 0000 |
| Decline — Do Not Honor | 4084080000000409 |
408 | Any future date | — |
| Insufficient Funds | 4084080000000005 |
408 | Any future date | — |
| 3D Secure challenge | 507850785078507812 |
081 | Any future date | 1234 |
| International Visa success | 4187427415564246 |
828 | Any future date | — |
All test cards work only with your Paystack test secret key (sk_test_...). No real money moves.
Test Bank Transfer Accounts
To test bank transfer payments in Paystack test mode, use these details when prompted for bank account verification:
- Bank: Any bank with code
057(Zenith Bank) or058(GTBank) in test mode - Account Number: Any 10-digit numeric string (e.g.,
0000000000) — test mode does not validate real accounts - Account Name: Will be returned as a dummy name
For subaccount creation in test mode, use the same approach — fake account numbers pass validation.
M-Pesa Test Credentials (Kenya)
To test M-Pesa payments in Paystack test mode (Kenya):
- Phone number:
0708993090 - M-Pesa PIN:
1234
The M-Pesa test flow simulates the STK push and confirmation. In test mode, the payment is auto-confirmed without a real Safaricom prompt.
Learn More
This guide is part of the Paystack testing guide.
Key Takeaways
- ✓Paystack test cards only work in test mode — switch to test keys before using them.
- ✓The success test card is 4084084084084081 with any future expiry and CVV 408.
- ✓To simulate a decline, use 4084080000000409 — this returns "Do Not Honor".
- ✓To simulate insufficient funds, use 4084080000000005.
- ✓To simulate a 3D Secure challenge, use card 507850785078507812.
- ✓Test bank transfer accounts use any numeric string as account number with Paystack test bank codes — no real bank validation in test mode.
Frequently Asked Questions
- Why does my test card charge fail even in test mode?
- Check that you are using the test secret key (sk_test_...) not the live key. Also verify you are calling the Paystack API with the test key in the Authorization header — using the live key will treat it as a real charge attempt with a fake card, which will fail differently.
- Can I use these test cards in the Paystack Inline popup?
- Yes. In test mode, the Paystack Inline popup accepts these test card numbers just as a real checkout would accept a real card. Enter the card number, any future expiry, the CVV listed, and the PIN where prompted.
- Are there test cards for specific bank types (Verve, Mastercard)?
- Yes. The 4084... series is Visa. The 5078... series is Verve (common in Nigeria). Paystack may add more test cards — check the Paystack documentation for the latest list as new card types and scenarios are occasionally added.
- How do I test USSD payments in Paystack test mode?
- USSD test mode in Paystack auto-completes the USSD flow without actually dialing a USSD code. Initiate a transaction with a Nigerian test phone number and select USSD as the channel. The test mode will simulate a successful completion.
Ready to build real-world apps?
Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.
Apply to the McTaba Marathon