Test Cards
Use these card numbers in test mode to simulate payment outcomes through the Flowlix sandbox. All test cards work with any future expiration date and any 3-digit CVC (4-digit for Amex).Test cards only work with test mode API keys (
fl_test_sk_). Using them
with a live key will be rejected by the upstream provider.Decline outcomes in sandbox are determined by the upstream sandbox
processor, not by Flowlix client-side PAN matching. The cards below are
the ones currently mapped in the sandbox configuration. Other PANs may
succeed, fall through to
generic_decline, or behave unpredictably — only
rely on the cards listed here for deterministic test outcomes.Successful payments
| Card number | Brand | Description |
|---|---|---|
4111111111111111 | Visa | Standard successful payment |
Declined payments
| Card number | Decline code | Description |
|---|---|---|
4000000000000002 | do_not_honor | The issuer declines without a specific reason. |
4000000000009995 | insufficient_funds | The card has insufficient funds. |
expired_card,
invalid_number, lost_card, stolen_card, card_velocity_exceeded,
generic_decline) end-to-end, file a request to add them to the sandbox —
they are produced by the upstream provider’s mock environment, not by a
Flowlix-side PAN lookup.
Using test cards
All test cards accept:- Any future expiration date (e.g.
12/2027) - Any CVC (e.g.
123for Visa/MC,1234for Amex) - Any cardholder name
Example: successful payment
201 Created with "status": "pending". Poll
GET /v1/payments/{id} until succeeded.
Example: declined payment
201 Created with "status": "pending". After processing, a
subsequent GET /v1/payments/{id} returns the failed Payment object with
the decline reason populated:
Testing the HPP flow
Test cards also work on the Hosted Payment Page. Create an HPP session with a test key, open theredirect_url in your browser, and enter any test card
number.
Tips
- Test every decline scenario your integration might encounter in production.
- Verify your error messages — make sure you show helpful, customer-friendly messages for each decline code.
- Always poll
GET /v1/payments/{id}for the terminal status —201 Createdis not a success signal. - Test edge cases like expired cards and rate-limit responses, not just the happy path.
