Skip to main content

Test Cards

Use these card numbers in test mode to simulate different payment outcomes. All test cards work with any future expiration date and any 3-digit CVC (or 4-digit for Amex).
Test cards only work with test mode API keys (fl_test_sk_). Using them with a live key will return an error.

Successful payments

These cards always result in a successful payment.
Card numberBrandDescription
4242424242424242VisaStandard successful payment
4000056655665556Visa (debit)Successful debit card payment
5555555555554444MastercardStandard successful payment
5200828282828210Mastercard (debit)Successful debit card payment
378282246310005American ExpressSuccessful Amex payment (4-digit CVC)

Declined payments

These cards always result in a decline with the specified decline_code.
Card numberDecline codeDescription
4000000000000002generic_declineThe card is declined with no specific reason.
4000000000009995insufficient_fundsThe card has insufficient funds.
4000000000000069expired_cardThe card has expired.
4000000000000127incorrect_cvcThe CVC is incorrect.
4000000000000119processing_errorA processing error occurs (simulate a transient failure).
4000000000000101do_not_honorThe issuer declines without a specific reason.

Using test cards

All test cards accept:
  • Any future expiration date (e.g., 12/2027)
  • Any CVC (e.g., 314 for Visa/MC, 1234 for Amex)
  • Any cardholder name

Example: successful payment

curl -X POST https://api.flowlix.eu/v1/payments \
  -H "Authorization: Bearer fl_test_sk_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 2000,
    "currency": "eur",
    "card": {
      "number": "4242424242424242",
      "exp_month": 12,
      "exp_year": 2027,
      "cvc": "314"
    }
  }'
Response: 201 Created with "status": "succeeded".

Example: declined payment

curl -X POST https://api.flowlix.eu/v1/payments \
  -H "Authorization: Bearer fl_test_sk_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 2000,
    "currency": "eur",
    "card": {
      "number": "4000000000009995",
      "exp_month": 12,
      "exp_year": 2027,
      "cvc": "314"
    }
  }'
Response: 402 Payment Required with:
{
  "error": {
    "type": "card_error",
    "code": "card_declined",
    "message": "Your card has insufficient funds.",
    "param": null,
    "decline_code": "insufficient_funds",
    "doc_url": "https://docs.flowlix.eu/declines/insufficient-funds",
    "request_id": "req_abc123def456"
  }
}

Testing the HPP flow

Test cards also work on the Hosted Payment Page. Create an HPP session with a test key, open the hpp_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.
  • Test edge cases like expired cards and CVC mismatches, not just the happy path.
  • Use different card brands to ensure your UI handles Visa, Mastercard, and Amex correctly.