Reference

Test card numbers

Use 4242 4242 4242 4242 with any future expiry and any CVC for a successful test payment on Stripe, and on Flint. Every processor documents its own test values, and they differ more than most developers expect: only Stripe has a per-scenario card-number matrix; the rest trigger failures with magic CVVs, cardholder names, amounts, or ZIP codes.

Verified against official documentation · last reviewed 2026-07-09 · corrections: support@withflintpay.com

Test cards on Flint

Flint processes cards on Stripe, so Stripe's standard test cards work in every Flint sandbox with no Stripe account needed. These are the nine worth knowing, from the testing guide. Any future expiry, any 3-digit CVC, and any ZIP work. A decline never ends a Flint checkout session: the order stays open and the buyer can retry.

CardScenarioWhat happens
SuccessPayment succeeds immediately; the order becomes paid.
Requires authenticationA 3D Secure challenge opens; complete it and the payment succeeds.
3D Secure challengeSame challenge flow; complete it to succeed, fail it to decline.
Decline: insufficient fundsCheckout shows a payment-failed message; the order stays open.
Decline: genericSame, simulating a generic issuer decline.
Decline: expired cardSame, simulating an expired card.
Decline: incorrect CVCSame, simulating a bad security code.
Decline: processing errorSame, simulating a processor-side failure.
Saves, then failsAttaches to a customer, but every charge fails. Use it to rehearse renewal failures and dunning.

Find a card by scenario

What you actually enter, per processor. Where a cell names a trigger instead of a card, use any of that processor's success cards and apply the trigger.

Successful payment

Stripe
Square4111111111111111 with CVV 111
Adyen4111111111111111, 03/2030, CVC 737
Braintree4111111111111111, amount under 2000.00
PayPal (cards)371449635398431 (Amex) or generator card
Authorize.net

Generic decline

Stripe
Square
Adyencardholder name DECLINED
Braintreeamount 2000.00 (Do Not Honor)
PayPal (cards)cardholder name CCREJECT-REFUSED
Authorize.netZIP code 46282

Insufficient funds

Stripe
Squarenot documented for cards
Adyencardholder name NOT_ENOUGH_BALANCE
Braintreeamount 2001.00
PayPal (cards)not documented
Authorize.netnot documented

3D Secure challenge

Stripe
Square4310000000201019, code 123456
Adyen4917610000000000, password 'password'
Braintree4000000000002503, expiry 01/(year+3)
PayPal (cards)4868719166101368, expiry 01/(year+3)
Authorize.netnot documented

Authentication fails

Stripeclick Fail in the test challenge dialog
Square
Adyenenter any wrong challenge password
Braintree
PayPal (cards)
Authorize.netnot documented

Expired card

Stripe
Squareexpiry 01/40 (validation error)
Adyencardholder name CARD_EXPIRED
Braintreeamount 2004.00
PayPal (cards)cardholder name CCREJECT-EC
Authorize.netnot documented

Incorrect CVC

Stripe
SquareCVV 911
Adyencardholder name CVC_DECLINED
Braintreeamount 2010.00
PayPal (cards)cardholder name CCREJECT-CVV_F
Authorize.netCVV 901

Dispute / chargeback

Stripe
Squareamount 8801 to 8809 (minor units)
Adyennot documented
Braintree
PayPal (cards)not documented
Authorize.netnot documented

Every processor's test values

Stripe

Card-number-driven: nearly every scenario has a dedicated card number, which is why Stripe's matrix is the one most developers memorize. Official testing docs.

  • Any future expiry, any CVC (4 digits for Amex), any postal code.
  • If you omit the CVC or postal code, Stripe skips that check entirely, so omission can never fail.
  • Real card numbers are prohibited in test mode by the Stripe Services Agreement.
CardBrandScenarioBehavior
VisaSuccessSucceeds immediately.
MastercardSuccessSucceeds immediately.
Mastercard (2-series)SuccessSucceeds; exercises the 2-series BIN.
AmexSuccessSucceeds immediately. Requires: 4-digit CVC.
DiscoverSuccessSucceeds immediately.
Diners ClubSuccessSucceeds immediately.
JCBSuccessSucceeds immediately.
UnionPaySuccessSucceeds immediately.
Visa (debit)SuccessSucceeds as a debit card.
Mastercard (prepaid)SuccessSucceeds as a prepaid card.
VisaGeneric declineDeclined with card_declined / generic_decline.
VisaInsufficient fundsDeclined with insufficient_funds.
VisaLost cardDeclined with lost_card.
VisaStolen cardDeclined with stolen_card.
VisaExpired cardDeclined with expired_card.
VisaIncorrect CVCDeclined with incorrect_cvc. Requires: provide a CVC.
VisaProcessing errorDeclined with processing_error.
VisaIncorrect numberRejected with incorrect_number; deliberately fails the Luhn check.
VisaVelocity exceededDeclined with card_velocity_exceeded.
Visa3DS: required for setupRequires authentication; on-session it challenges, then off-session use succeeds.
Visa3DS: alwaysRequires authentication on every transaction.
Visa3DS: challenge3D Secure required; complete the challenge to succeed.
Visa3DS: frictionlessAuthentication required but completes without a challenge UI.
Visa3DS: authenticate, then declineChallenge succeeds, then the charge is declined.
Visa3DS: then insufficient fundsChallenge succeeds, then declines with insufficient_funds.
VisaDispute: fraudulentCharge succeeds, then is immediately disputed as fraudulent.
VisaDispute: not receivedCharge succeeds, then disputed as product not received.
VisaDispute: inquiryCharge succeeds, then disputed as an inquiry.
VisaEarly fraud warningCharge succeeds, then receives an early fraud warning.
VisaRefund: async successRefund starts pending, then transitions to succeeded.
VisaRefund: fails laterRefund initially succeeds, then transitions to failed.
VisaAttach, then charge failsSaves to a customer but every charge fails; the renewal-failure rehearsal card.
VisaCVC check failsCVC check fails if a CVC is provided; the charge itself may still succeed. Requires: provide a CVC.
VisaPostal check failsPostal code check fails if one is provided. Requires: provide a postal code.

Trigger values

FieldValueEffect
Challenge dialogComplete / Fail buttonsAuthentication failure is a UI mechanism, not a card: the test-mode 3DS dialog offers explicit Complete and Fail buttons.

Square

Hybrid: fixed success numbers per brand, then magic values (CVV, postal code, expiry, amount) for failures. There is no per-scenario decline card matrix. Official testing docs.

  • The CVV is semantically significant: 111 succeeds (1111 for Amex), 911 fails.
  • Postal code is required for USD, CAD, and GBP; 99999 specifically fails verification.
  • Sandbox environment only, with separate sandbox credentials.
CardBrandScenarioBehavior
VisaSuccessApproved. Requires: CVV 111.
MastercardSuccessApproved. Requires: CVV 111.
AmexSuccessApproved. Requires: CVV 1111.
DiscoverSuccessApproved. Requires: CVV 111.
JCBSuccessApproved. Requires: CVV 111.
UnionPaySuccessApproved. Requires: CVV 123.
VisaGeneric declineDeclined with GENERIC_DECLINE.
VisaCard-on-file declinedCard-on-file authorization declined; the save-card failure path.
VisaSCA: frictionlessStrong customer authentication succeeds without a challenge. Requires: CVV 111.
Visa (EU)SCA: challengeOpens a challenge modal; enter code 123456 to succeed. Requires: CVV 111.
MastercardSCA: challengeChallenge modal; code 123456 to succeed. Requires: CVV 111.
VisaSCA: failsVerification fails without showing a challenge. Requires: CVV 111.

Trigger values

FieldValueEffect
CVV911Incorrect CVV (CVV_FAILURE).
Postal code99999Postal code verification fails (AVS failure).
Expiry01/40Expiration error; a validation-style failure rather than an issuer expired-card decline.
Charge amount8801 to 8809 (minor units)Triggers a sandbox dispute; the reason maps per amount (8806 is NOT_RECEIVED). Sandbox disputes are API-only.

Not officially documented for Square: Insufficient funds for card payments (documented for ACH only). Lost or stolen card declines.

Adyen

Trigger-driven: brand test cards authorise by default, and you force specific refusals by setting the cardholder name to a trigger string. Declines are not dedicated card numbers. Official testing docs.

  • Standard test expiry is 03/2030; CVC 737 (7373 for Amex).
  • The 3DS2 challenge completes with the password 'password' on web or '1234' in native apps; any other value fails authentication.
  • Test platform only.
CardBrandScenarioBehavior
VisaSuccessAuthorised. Requires: 03/2030, CVC 737.
MastercardSuccessAuthorised. Requires: 03/2030, CVC 737.
AmexSuccessAuthorised. Requires: 03/2030, CID 7373.
DiscoverSuccessAuthorised. Requires: 03/2030, CVC 737.
Visa3DS2: enrolledRuns the 3DS2 flow; challenge password completes it.
Mastercard3DS2: frictionlessDevice fingerprint only; no shopper interaction.
Mastercard3DS2: timeoutProduces a 3DS timeout error.

Trigger values

FieldValueEffect
Cardholder nameDECLINEDRefused (acquirer code 2).
Cardholder nameNOT_ENOUGH_BALANCERefused: Not enough balance (code 12).
Cardholder nameCARD_EXPIREDRefused: Expired Card (code 6).
Cardholder nameBLOCK_CARDRefused: Blocked Card (code 5).
Cardholder nameCVC_DECLINEDRefused: CVC Declined (code 24).
Cardholder nameFRAUDRefused: FRAUD (code 20).
Cardholder nameISSUER_UNAVAILABLERefused: Issuer Unavailable (code 9).
Cardholder namerefund failedSimulates a failed refund.

Not officially documented for Adyen: Lost or stolen card triggers. Dispute simulation cards.

Braintree

Amount-driven declines: any valid test card charged an amount between 2000.00 and 2999.99 declines with the processor code equal to the amount. Dedicated cards exist for verification failures, 3DS, and disputes. Official testing docs.

  • Amounts 0.01 to 1999.99 authorize; 2000.00 to 2999.99 decline with the code equal to the amount.
  • 3DS test cards require expiry month 01 and year equal to the current year plus three.
  • AVS and CVV responses come from magic values (postal 20000 fails; CVV 200 fails).
CardBrandScenarioBehavior
VisaSuccessApproved. Requires: amount under 2000.00.
MastercardSuccessApproved. Requires: amount under 2000.00.
AmexSuccessApproved. Requires: amount under 2000.00.
VisaVerification failsCard verification declines; cannot be vaulted with verification on.
VisaDisputeAny sale is instantly disputed; respond with the documented evidence strings to win or lose.
Visa3DS: frictionless successAuthenticates with no challenge. Requires: expiry 01/(year+3).
Visa3DS: challenge successComplete the challenge to authenticate. Requires: expiry 01/(year+3).
Visa3DS: challenge failsChallenge is presented and authentication fails. Requires: expiry 01/(year+3).
Visa3DS: frictionless failsFails authentication with no challenge. Requires: expiry 01/(year+3).

Trigger values

FieldValueEffect
Amount2000.00Processor decline 2000: Do Not Honor.
Amount2001.00Processor decline 2001: Insufficient Funds.
Amount2004.00Processor decline 2004: Expired Card.
Amount2010.00Processor decline 2010: Card Issuer Declined CVV.
Amount2044.00Processor decline 2044: Declined, Call Issuer.
CVV200CVV response N (does not match).
Postal code20000AVS response N (no match).

PayPal (cards)

Name-field-driven declines: success numbers come mostly from the sandbox card generator, and declines are triggered by case-sensitive CCREJECT strings in the cardholder name. Official testing docs.

  • Any future expiry; 3DS test cards require month 01 and year equal to the current year plus three.
  • Visa and Mastercard success numbers come from the sandbox credit card generator.
CardBrandScenarioBehavior
AmexSuccessApproved. Requires: 4-digit CVV.
Visa3DS: frictionless successAuthenticates without a challenge; liability shift possible. Requires: expiry 01/(year+3).
Visa3DS: challenge successComplete the step-up challenge to authenticate. Requires: expiry 01/(year+3).
Visa3DS: challenge failsStep-up authentication fails; no liability shift. Requires: expiry 01/(year+3).
Visa3DS: frictionless failsFrictionless authentication fails; no liability shift. Requires: expiry 01/(year+3).

Trigger values

FieldValueEffect
Cardholder nameCCREJECT-REFUSEDDecline 0500: DO_NOT_HONOR. Case-sensitive.
Cardholder nameCCREJECT-SFDecline 9500: SUSPECTED_FRAUD.
Cardholder nameCCREJECT-ECDecline 5400: EXPIRED_CARD.
Cardholder nameCCREJECT-CVV_FDecline 00N7: CVV failure, retry possible with CVV.

Not officially documented for PayPal (cards): Insufficient funds trigger. Dispute-trigger cards.

Authorize.net

ZIP-code-driven declines: fixed success numbers per brand, and the general decline trigger is ZIP code 46282 rather than a card number. Amount-based triggers were retired in 2011. Official testing docs.

  • Any expiry after today.
  • The ZIP code is semantically significant: specific ZIPs trigger declines and AVS responses.
CardBrandScenarioBehavior
VisaSuccessApproved.
MastercardSuccessApproved.
AmexSuccessApproved.
DiscoverSuccessApproved.

Trigger values

FieldValueEffect
ZIP code46282Response code 2: transaction declined (general bank decline) with any test card.
CVV901CVV response N (does not match).
ZIP code46205AVS response N (no match).

Not officially documented for Authorize.net: 3DS test cards. Insufficient funds, expired, lost, or stolen scenarios. Dispute triggers.

Pitfalls

  • Expiry and CVC conventions differ per processor and are a real gotcha: Stripe accepts any future expiry and any CVC, Square's CVV is semantically significant (111 succeeds, 911 fails), Adyen expects 03/2030 with CVC 737, and Braintree and PayPal 3DS cards demand month 01 with the year three years out.
  • Test values only work in that processor's test or sandbox environment, and real card numbers are prohibited in Stripe test mode by the Stripe Services Agreement.
  • 4242 4242 4242 4242 and 4111 1111 1111 1111 both pass the Luhn check; Stripe also documents 4242 4242 4242 4241 as a deliberately Luhn-invalid card for testing your own validation.
  • Failure scenarios that a processor does not document cannot be simulated there; the per-processor notes above say what is missing rather than guessing.