ACCEPT PAYMENTS
Test Cards
In test mode, use the cards below to simulate payments. No real money moves. Any future expiry date and any 3-digit CVV will work unless stated otherwise.
Test cards only work when your
public_key starts with flw_pub_test_.
Attempting to use them with a live key will fail.Successful Payments
| Card Number | Brand | CVV | Expiry | Result |
|---|---|---|---|---|
4084 0841 1881 8818 | Visa | Any 3 digits | Any future date | ✅ Success |
4111 1111 1111 1111 | Visa | Any 3 digits | Any future date | ✅ Success |
5531 8866 5214 2950 | Mastercard | Any 3 digits | Any future date | ✅ Success |
5061 4600 0000 0000 | Verve | Any 3 digits | Any future date | ✅ Success |
3782 822463 10005 | Amex | Any 4 digits | Any future date | ✅ Success |
Test Values
| Field | What to use |
|---|---|
| Card Number | Any number from the table above |
| Expiry Month | Any valid month (01–12) |
| Expiry Year | Any year in the future (e.g. 2028) |
| CVV | Any 3 digits (e.g. 123). Amex: any 4 digits. |
| Name on card | Any name |
What Happens in Test Mode
- The card form accepts the submission and immediately returns
status: "successful" - A
Transactionrecord is created in the database withprovider: "test" - Your configured webhook URL receives a
charge.successevent asynchronously - The
GET /v1/transaction/verify/{ref}endpoint returnsstatus: "successful"
Test mode always succeeds regardless of which card number you use.
In live mode, the card number, expiry, and CVV are validated against the actual card issuer.
Switching to Live Mode
When you're ready to accept real payments:
- Complete KYC verification in the Flowwithlit dashboard
- Replace
flw_pub_test_withflw_pub_live_in your frontend - Replace
flw_sec_test_withflw_sec_live_in your server environment variables - Test with a real card at a small amount (e.g. ₦100) to confirm end-to-end