Official Payment Test Card Numbers (Stripe and Razorpay)

These are the test card numbers Stripe and Razorpay publish for their sandboxes. They only work in each provider's test mode, and this page does not generate card numbers.

Live demo · real result from this tool
Provider

These numbers are published by Stripe and Razorpay and work only in those providers' test modes. They cannot buy anything, and this page does not generate card numbers.

Table

ProviderBrandNumberScenarioCVCExpiryLuhn valid
StripeVisa4242 4242 4242 4242Successful paymentAny 3 digitsAny future dateYes
StripeVisa (debit)4000 0566 5566 5556Successful paymentAny 3 digitsAny future dateYes
StripeMastercard5555 5555 5555 4444Successful paymentAny 3 digitsAny future dateYes
StripeMastercard (2-series)2223 0031 2200 3222Successful paymentAny 3 digitsAny future dateYes
StripeMastercard (debit)5200 8282 8282 8210Successful paymentAny 3 digitsAny future dateYes
StripeMastercard (prepaid)5105 1051 0510 5100Successful paymentAny 3 digitsAny future dateYes
StripeAmerican Express3782 822463 10005Successful paymentAny 4 digitsAny future dateYes
StripeAmerican Express3714 496353 98431Successful paymentAny 4 digitsAny future dateYes
StripeDiscover6011 1111 1111 1117Successful paymentAny 3 digitsAny future dateYes
StripeDiscover6011 0009 9013 9424Successful paymentAny 3 digitsAny future dateYes
StripeDiscover (debit)6011 9811 1111 1113Successful paymentAny 3 digitsAny future dateYes
StripeDiners Club3056 9300 0902 0004Successful paymentAny 3 digitsAny future dateYes
StripeDiners Club (14-digit)3622 720627 1667Successful paymentAny 3 digitsAny future dateYes
StripeBCcard and DinaCard6555 9000 0060 4105Successful paymentAny 3 digitsAny future dateYes
StripeJCB3566 0020 2036 0505Successful paymentAny 3 digitsAny future dateYes
StripeUnionPay6200 0000 0000 0005Successful paymentAny 3 digitsAny future dateYes
StripeUnionPay (debit)6200 0000 0000 0047Successful paymentAny 3 digitsAny future dateYes
StripeUnionPay (19-digit)6205 5000 0000 0000 004Successful paymentAny 3 digitsAny future dateYes
StripeVisa4000 0000 0000 0002Declined: generic declineAny 3 digitsAny future dateYes
StripeVisa4000 0000 0000 9995Declined: insufficient fundsAny 3 digitsAny future dateYes
StripeVisa4000 0000 0000 9987Declined: lost cardAny 3 digitsAny future dateYes
StripeVisa4000 0000 0000 9979Declined: stolen cardAny 3 digitsAny future dateYes
StripeVisa4000 0000 0000 0069Declined: expired cardAny 3 digitsAny future dateYes
StripeVisa4000 0000 0000 0127Declined: incorrect CVCAny 3 digitsAny future dateYes
StripeVisa4000 0000 0000 0119Declined: processing errorAny 3 digitsAny future dateYes
StripeVisa4000 0000 0000 32203D Secure authentication requiredAny 3 digitsAny future dateYes
RazorpayVisa (debit)4100 2800 0000 1007Indian paymentsAny (random) CVVAny future dateYes
RazorpayMastercard (credit)5555 5100 0008 1006Indian paymentsAny (random) CVVAny future dateYes
RazorpayMastercard (prepaid)5180 2872 0009 1001Indian paymentsAny (random) CVVAny future dateYes
RazorpayRuPay (credit)6527 6589 0000 1005Indian paymentsAny (random) CVVAny future dateYes
RazorpayDiners (credit)3608 280009 1007Indian paymentsAny (random) CVVAny future dateYes
RazorpayAmerican Express (credit)3402 560004 01007Indian paymentsAny (random) CVVAny future dateYes
RazorpayMastercard5555 5555 5555 4444International paymentsAny (random) CVVAny future dateYes
RazorpayMastercard5105 1051 0510 5100International paymentsAny (random) CVVAny future dateYes
RazorpayMastercard5104 0600 0000 0008International paymentsAny (random) CVVAny future dateYes
RazorpayVisa4012 8888 8888 1881International paymentsAny (random) CVVAny future dateYes

36 rows — scroll inside the table, or download the CSV.

Sources (checked 2026-10-02): Stripe — https://docs.stripe.com/testing · Razorpay — https://razorpay.com/docs/payments/payments/test-card-details/

Processed on your device — nothing is uploaded.

How to use this list

  1. Choose a Provider: All, Stripe or Razorpay.
  2. Tick or untick Group digits to show numbers in blocks of four or as one string.
  3. Copy a number from the table, or download the whole table as a CSV file.
  4. Paste it into your app’s checkout while your Stripe or Razorpay account is in test mode.

What this page is for

When you build a checkout, you need card numbers that behave in a predictable way: one that always succeeds, one that always declines, one that asks for 3D Secure. Stripe and Razorpay publish exactly these numbers for their sandboxes. This page gathers them in one table, with the scenario each one triggers, so you don’t have to dig through two sets of docs.

The page used to be a “test card generator”. It no longer makes up numbers. A number that only passes the Luhn checksum is not a test card: a payment provider’s test mode recognises its own published numbers and nothing else. Random numbers are also easy to misuse, so we removed that feature.

How it works

The table comes from a fixed list copied from the providers’ documentation, with the date we last checked it. Nothing is calculated except the Luhn valid column, which runs the standard checksum on each number so you can see that every listed card is well formed. You can check any number yourself with the Luhn Validator.

Everything runs in your browser. Nothing you type or copy here is sent anywhere.

Worked examples

  • Stripe only, digits not grouped: the first row is Stripe’s standard Visa test card, 4242424242424242, for a successful payment with any 3-digit CVC and any future date.
  • Razorpay only, digits not grouped: the first row is Razorpay’s Visa debit card for Indian payments, 4100280000001007.

Testing tips

  • Keep separate API keys for test and live mode. Test cards only work with test keys.
  • Test failures as well as successes. Stripe’s decline cards (generic decline, insufficient funds, lost or stolen card, expired card, wrong CVC, processing error) show how your app handles each error message.
  • Test 3D Secure. Stripe’s 4000000000003220 asks for authentication, so you can check the extra step on mobile.
  • To compare what a real payment would cost in fees, try the Stripe Fee Calculator.
  • For order references in your test data, the Order Number Generator and Invoice Number Generator make realistic IDs.

Limits

  • Only Stripe and Razorpay are listed. Other providers (PayPal, Adyen, Braintree and others) publish their own test numbers in their developer docs.
  • Providers add and retire test cards. The list was checked on 2 October 2026; the provider’s page is always the final word.
  • These numbers never work for real purchases, and this page does not create new numbers.

Frequently asked questions

Can these numbers buy anything?
No. They are reserved by Stripe and Razorpay for their test modes. A live payment page rejects them, and no real account or money sits behind them.
Why doesn't this page generate card numbers any more?
A random number that passes the Luhn check is not a test card. Payment providers only accept the specific numbers they publish, and generated numbers can be misused. This page lists the official numbers instead.
What CVC and expiry date should I use?
For Stripe, any 3 digits (4 for American Express) and any future date. For Razorpay, any CVV and any future expiry date. The table shows this for each card.
How do I test a declined payment?
Stripe publishes numbers that always decline with a specific reason, such as insufficient funds or an expired card. Choose Stripe in the provider filter and look at the Scenario column.
Where do these numbers come from?
They are copied from Stripe's testing documentation and Razorpay's test card page, linked under Sources. Providers change their lists, so check those pages before you rely on a number.

Sources

  1. Testing — test card numbers — Stripe, accessed 2026-10-02
  2. Test card details — Razorpay, accessed 2026-10-02

Written by the ToolsRift team · Last updated · Figures last verified

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close