The Ultimate Stripe Test Card Guide for Your Mobile App
The complete Stripe test card reference for 2026. Get numbers, CVCs, and examples for successful payments, declines, 3D Secure, and fraud testing.
By Rishav
29th Mar 2026

Before you can confidently launch your app, you need to be absolutely sure your checkout process is bulletproof. That’s where a Stripe test card comes in. Think of it as a special, dummy card number you can use to run transactions in Stripe’s test mode.
Using a test card, like the go-to Visa number 4242 4242 4242 4242, lets you and your team safely simulate real payment scenarios. You can hammer away at your mobile checkout flows, test for edge cases, and validate every step without a single dollar ever changing hands.
Your Quick Reference for Stripe Test Cards

When you’re deep in development on your app, the last thing you want is a clunky testing process. Stripe gets this, which is why their test cards are so essential for verifying your integration. They provide a risk-free way to mimic how real customers will interact with your mobile checkout, making sure everything from payment success to error handling works just right.
To keep things simple, Stripe also created a universal rule for nearly all its test cards. This means you don't have to memorize a bunch of different expiration dates or security codes while testing.
The Universal Rule for Test Payments
For almost any test card you use, just follow these simple guidelines. It allows you to focus on the logic of the transaction itself, not the trivial details.
- Any future expiration date: Just pick a valid month and any year in the future.
12/2030is a common choice. - Any CVC: Any three-digit number will work, like
123. - Any postal code: Any string of numbers is valid.
This developer-friendly approach has been baked into the platform since the beginning. Stripe introduced test cards with its first API back in 2011, giving teams a safe sandbox to build reliable payment systems without financial risk. If you're curious about the broader payments landscape, you can get more context from these payment statistics from PayCompass.com.
Think of this guide as your go-to cheat sheet. We'll start with the basics you'll need for everyday testing.
Essential Stripe Test Card Numbers
Here is a quick-lookup table with the most common test cards you'll need to simulate standard, successful payments for major brands.
| Card Brand | Card Number | Expiry Date | CVC |
|---|---|---|---|
| Visa | 4242 4242 4242 4242 | Any future date | Any |
| Mastercard | 5555 5555 5555 5555 | Any future date | Any |
| American Express | 3782 8224 6310 005 | Any future date | Any |
| Discover | 6011 0000 0000 0000 | Any future date | Any |
Keep these handy, as they will cover the vast majority of your successful payment flow testing. Now, let's dive into more specific scenarios you'll inevitably encounter while building your app.
Activating Stripe Test Mode and API Keys

Before you can use any Stripe test card, you need to flip your account into Test Mode. It’s a crucial safety net that creates a complete sandbox for your payment integration, totally separate from your live data and actual money. Think of it as a development playground where you can try anything without worrying about real-world consequences.
Getting there is simple. Just log into your Stripe Dashboard and find the "Test mode" toggle in the top-right corner. When it’s active, the toggle turns orange, and everything you see—from payments to customers—is part of this isolated test environment. This is always the first step.
Finding Your Test API Keys
Once you’re in Test Mode, your mobile application needs a specific set of API keys to communicate with Stripe: a Publishable Key and a Secret Key. These are different from your live keys.
Here’s how to find them:
- Head to the Developers section in the main navigation of your Stripe Dashboard.
- Click on the API keys tab from the menu that appears.
- You’ll see your Publishable key and Secret key listed. You might need to click "Reveal test key" to view the full Secret Key.
Crucial Tip: The Publishable Key (which usually starts with
pk_test_) is meant for the client-side of your app—the part your users interact with. The Secret Key (sk_test_) is for your server-side logic only. Never, ever expose your Secret Key in your app's frontend code or commit it to a public repository.
As a best practice, you should always store these keys as environment variables. If you're building a mobile app with subscriptions, it's worth learning how to set up and manage a subscription API with Stripe to see how to handle these credentials securely in a real-world stack. This practice saves you from the headache of accidentally shipping test keys to production.
Simulating Declines and Payment Errors
Getting a successful payment to go through is only half the battle. To build an app that doesn't frustrate users, you absolutely have to plan for what happens when a payment doesn't work. Simulating payment declines isn't just a good idea—it's a crucial step for building a resilient checkout flow that helps people fix problems without giving up.
When a card is declined, your app needs to give clear, helpful feedback. A generic "Payment Failed" message is a dead end. Instead, you should aim to tell the user why it failed. Was it insufficient funds? An incorrect CVC? A block from their bank? Giving them that specific detail turns a moment of frustration into a solvable problem.
How to Trigger Specific Errors
This is where Stripe's special set of Stripe test card numbers comes in handy. These aren't just random numbers; they're designed to trigger specific error responses from the API when you're in Test Mode. Using them lets you see the exact API codes and error messages your real users would encounter, which is essential for mapping out every possible scenario in your mobile app.
For example, if you're building a feature like tutoring billing software, you need to be sure the system can handle every outcome. Testing these declines ensures that whether a payment succeeds or fails, your platform responds correctly and communicates clearly to the user and your own backend.
Here is a list of card numbers you can use to simulate common decline reasons. For any of these, just use a future expiry date (like 12/2030) and any 3-digit CVC (like 123), unless specified otherwise.
| Decline Scenario | Card Number to Use |
|---|---|
| Generic Card Decline | ... 4242 4242 4242 4040 |
| Insufficient Funds | ... 4242 4242 4242 0002 |
| Lost Card | ... 4242 4242 4242 0010 |
| Stolen Card | ... 4242 4242 4242 0028 |
| Expired Card | ... 4242 4242 4242 4241 |
| Incorrect CVC | ... 4242 4242 4242 4242 (Use CVC 234) |
| Processing Error | ... 4242 4242 4242 3030 |
By deliberately testing these failures, you can build smarter, more helpful error handling in your app. For instance, if you get an "insufficient funds" error, you can prompt the user to try a different payment method. If it's an "incorrect CVC" error, you can simply ask them to re-enter the code.
Getting this right builds user trust and can dramatically lower your checkout abandonment rate. To make sure you're covering all your bases, it helps to organize these potential failures systematically. You might find a tool like this mobile app test case generator useful for structuring your test plan and ensuring no critical payment path is overlooked.
Testing International and Alternative Payments
Your app’s reach shouldn't stop at the US border. To succeed globally, you need to support the payment methods your international customers already use and trust. This means getting comfortable with testing alternative payment methods (APMs), and thankfully, Stripe's Test Mode makes this pretty painless.
First things first: you have to enable these payment methods in your Stripe account. Head over to your Stripe Dashboard, go to Settings > Payment methods, and simply flip the switch for the ones you plan to support, like iDEAL, SEPA Direct Debit, or Klarna. Once they're active, you're ready to start simulating real-world payment flows.
Simulating Redirect and Bank Account Flows
Many international payment methods work by redirecting the customer away from your app to their bank's website or app to approve the charge. Your most important job here is to make sure your app can gracefully handle that redirect loop, from departure to a successful return.
For example, to test iDEAL (which is huge in the Netherlands), you'll trigger the checkout and select it as the payment option. Stripe will then show you a test page that mimics the bank's portal, giving you buttons to either authorize or fail the payment. This lets you confirm that your app correctly handles both a successful payment and a failed one, landing the user on the right confirmation or error screen.
For teams using a framework like RapidNative to build mobile apps with in-app purchases, nailing these APM flows with a Stripe test card can slash integration work from weeks down to just minutes. It's a massive advantage, ensuring your iOS, Android, and web payments are solid before you launch. Getting this right is critical, especially as global cross-border volume is projected to hit $58B by 2025. You can dig into more trends like this in these Stripe statistics from PayCompass.com.
Other methods have their own specific test data you'll need to use:
- SEPA Direct Debit: Use the test IBAN
DE89370400440532013000and pair it with any email address to simulate a bank debit. - Klarna: Any test email ending in
@klarna.com(liketest@klarna.com) will trigger the Klarna test flow. - International Cards: To check how your system handles cards from different countries, just use the standard Visa test card
4242 4242 4242 4242. The key is to specify the currency you want to test (e.g., EUR, GBP) in your payment request.
Looking ahead, it's also smart to keep an eye on what's next. Familiarizing yourself with a new payment protocol like X402 can help you build more robust and future-proof international payment systems.
Testing 3D Secure and SCA Workflows
If you're building an app that takes payments, especially for customers in Europe, you'll inevitably run into Strong Customer Authentication (SCA). It's a security standard designed to make online payments safer, and for developers, it means implementing 3D Secure—that extra authentication step where a user has to verify a purchase with their bank.
Getting this flow right is absolutely critical. A clunky or broken 3D Secure experience can lead to frustrated users and abandoned carts. Basically, the flow often redirects a user to their bank's page to approve the payment, usually with a code sent to their phone. You have to be sure your app can handle that redirect, show the authentication screen properly, and guide the user back, whether the payment succeeds or fails.
This is where a Stripe test card becomes your best friend. It lets you walk through the entire 3D Secure process in a test environment, so you can perfect the user experience without touching a dime of real money.
The process often involves redirecting the user, which can be a tricky part of the integration. Your app needs to smoothly manage this hand-off and the return journey.

As you can see, the redirect is a core part of the payment sequence. Ensuring this step is seamless is key to a high-quality checkout experience.
Simulating 3D Secure Scenarios
The great thing about Stripe is that it provides specific test card numbers that are designed to trigger every possible 3D Secure outcome. When you use one of these cards during development, Stripe’s test environment pops up a mock authentication page. From there, you can manually choose whether the authentication should pass or fail.
Testing isn't just about ticking a compliance box. It’s about building a trustworthy product. When a user sees a smooth authentication flow—even when it requires an extra step—it reassures them that their financial details are safe. That confidence is often the deciding factor in completing a purchase.
Here are the test cards you'll want to have on hand to cover all your bases:
- Authentication Required: Use this card to simulate the most common scenario where the user's bank requires them to complete the 3D Secure challenge. The test modal will let you simulate both a successful verification and a failure.
- Frictionless Authentication: Some transactions are considered low-risk by the bank and are approved without requiring the user to do anything. This card lets you test that "frictionless" flow where authentication happens behind the scenes.
- Authentication Fails: This card is for testing the unhappy path. It simulates a scenario where the bank can't authenticate the payment at all, forcing an immediate failure that your app needs to handle gracefully.
For a more in-depth guide on implementing payment flows, especially on mobile, be sure to check out our complete tutorial on integrating Stripe with React Native.
Simulating Fraud with Stripe Radar Test Cards
Handling a declined card is one thing, but what about actual fraud attempts? For that, you need to see how your app stands up to malicious activity. This is exactly what Stripe Radar, their machine learning-based fraud prevention tool, is built for. Using specific test cards, you can trigger Radar’s fraud rules on command and see precisely how your integration handles suspicious payments.
This isn't just a theoretical exercise. Fraudsters are always finding new ways to attack, with one of the most common being card testing—using small, automated transactions to see if stolen card numbers are active. During the first year of the pandemic alone, these attacks jumped by a staggering 40%. Simulating these scenarios is crucial, and it lets you work with a system that has a proven track record. In fact, Stripe's machine learning models have helped cut card-testing attacks by 80% and reduce disputes by 40% in recent years. You can read more about Stripe's impact on fraud prevention to see the full picture.
Testing Radar's Default Rules
The easiest way to get started is by testing Radar's default rules. You don’t need any custom configuration for this, which makes it perfect for a quick sanity check to see how your app responds to high-risk payments out of the box.
All you have to do is run a transaction with one of these card numbers in your test environment.
-
Elevated Risk Score: Use the card ending in
...3184. This will create a successful payment but flag it with an "elevated risk" score in your Stripe Dashboard. It's a great way to test any internal workflows you might have, like sending these payments to a manual review queue. -
High Risk and Blocked: Use the card ending in
...3176. This simulates a payment that Radar immediately identifies as high-risk and blocks completely. This is key for confirming that your app correctly handles a blocked payment and gives the user a clear, helpful message.
A really common next step is to test your own custom rules. For instance, let's say you've set up a rule in Radar to block all payments from a specific country. You can simply use a test card with a billing address in that country to confirm your rule is firing correctly. This helps your team build and validate a layered defense strategy with real confidence.
Common Questions About Stripe Test Cards
When you're getting started with a Stripe test card, you're bound to have a few questions. I've seen these pop up time and again from developers and even non-technical team members, so here are the quick answers to the most common ones.
First things first: you can never use a real credit card in Test Mode. Stripe’s testing environment is a completely separate sandbox, so it’s designed to reject actual card numbers. If you try, the transaction will simply fail.
Is a test card not working? The first thing I always check is that I’m actually in Test Mode on my Stripe Dashboard—it's an easy mistake to make. Also, make sure you're using a valid expiration date set in the future and any three-digit CVC.
One question that often comes from the finance team is whether test charges will show up on a bank statement. The answer is a definitive no. Since no real money ever changes hands, all your test activity is safely contained within your Stripe Dashboard's test data.
This kind of robust testing infrastructure is exactly why over 100 companies are able to process more than $1B each year using Stripe. You can find more stats about Stripe's massive impact over on Paycompass.com.
Go from an idea to a working React Native app in minutes. With RapidNative, you can generate clean, production-ready code from prompts, sketches, or PRDs to build and share your mobile app instantly. Start building for free.
Ready to Build Your App?
Turn your idea into a production-ready React Native app in minutes.