# Test Payments

Simulate payments to test your integration.

\
To confirm that your integration works correctly, simulate transactions without moving any money using special values in test mode.

Test cards let you simulate several scenarios:

* Successful payments by card brand or country
* Card errors due to declines, fraud, or invalid data
* Disputes and refunds
* Authentication with 3D Secure and PINs

Testing non-card payments works similarly. Each payment method has its own special values. Because of rate limits, we don’t recommend using test mode to load-test your integration. Instead, see our documentation on load testing.

### How to use test cards![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#use-test-cards" id="use-test-cards"></a>

Any time you work with a test card - it has to be used in Test Mode / Sandbox Mode. This is true whether you’re serving a payment form to test interactively or writing test code.

**Common mistake**

Don’t use real card details. Use your test API keys and the card numbers below.

#### Testing interactively![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#testing-interactively" id="testing-interactively"></a>

When testing interactively, use a card number, such as 4242 4242 4242 4242. Enter the card number in the Dashboard or in any payment form.

* Use a valid future date, such as **12/34**.
* Use any three-digit CVC (four digits for American Express cards).
* Use any value you like for other form fields.

<figure><img src="https://3798839229-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtTjX1Zr5bWzjMleIZro2%2Fuploads%2FAa0ZXLA45WkNBlEcWBsX%2Ftest-card.c3f9b3d1a3e8caca3c9f4c9c481fd49c.jpg?alt=media&#x26;token=1c989ec6-473e-464b-b284-d1611419cb02" alt=""><figcaption><p>Testing a form interactively with the test card number 4242 4242 4242 4242</p></figcaption></figure>

**Test code**

When writing test code, use a `PaymentMethod` such as [pm\_card\_visa](https://docs.stripe.com/testing?testing-method=payment-methods#visa) instead of a card number. We don’t recommend using card numbers directly in API calls or server-side code, even in test mode. If you do use them, your code might not be PCI-compliant when you go live. By default, a `PaymentMethod` isn’t attached to a [Customer](https://docs.stripe.com/api/customers).

Most integrations don’t use Tokens any more, but we make test Tokens such as [tok\_visa](https://docs.stripe.com/testing?testing-method=tokens#visa) available if you need them.

When you’re ready to take your integration live, replace your test publishable and secret [API keys](https://docs.stripe.com/keys) with live ones. You can’t process live payments if your integration is still using your test API keys.

### Cards by brand![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#cards" id="cards"></a>

To simulate a successful payment for a specific card brand, use test cards from the following list.

**Caution**

Cross-border fees are assessed based on the country of the card issuer. Cards where the issuer country isn’t the US (such as JCB and UnionPay) might be subject to a cross-border fee, even in test mode.

\
Card Numbers

{% tabs %}
{% tab title="Card numbers" %}

<table><thead><tr><th>BRAND</th><th width="284">NUMBER</th><th>CVC</th><th>DATE</th></tr></thead><tbody><tr><td>Visa</td><td>4242 4242 4242 4242</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Visa (debit)</td><td>4000 0566 5566 5556</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Mastercard</td><td>5555 5555 5555 4444</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Mastercard (2-series)</td><td>2223 0031 2200 3222</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Mastercard (debit)</td><td>5200 8282 8282 8210</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Mastercard (prepaid)</td><td>5105 1051 0510 5100</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>American Express</td><td>3782 822463 10005</td><td>Any 4 digits</td><td>Any future date</td></tr><tr><td>American Express</td><td>3714 496353 98431</td><td>Any 4 digits</td><td>Any future date</td></tr><tr><td>Discover</td><td>6011 1111 1111 1117</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Discover</td><td>6011 0009 9013 9424</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Discover (debit)</td><td>6011 9811 1111 1113</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Diners Club</td><td>3056 9300 0902 0004</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Diners Club (14-digit card)</td><td>3622 720627 1667</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>BCcard and DinaCard</td><td>6555 9000 0060 4105</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>JCB</td><td>3566 0020 2036 0505</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>UnionPay</td><td>6200 0000 0000 0005</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>UnionPay (debit)</td><td>6200 0000 0000 0047</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>UnionPay (19-digit card)</td><td>6205 5000 0000 0000 004</td><td>Any 3 digits</td><td>Any future date</td></tr></tbody></table>
{% endtab %}

{% tab title="PaymentMethods" %}

| BRAND                | PAYMENTMETHOD                 |
| -------------------- | ----------------------------- |
| Visa                 | pm\_card\_visa                |
| Visa (debit)         | pm\_card\_visa\_debit         |
| Mastercard           | pm\_card\_mastercard          |
| Mastercard (debit)   | pm\_card\_mastercard\_debit   |
| Mastercard (prepaid) | pm\_card\_mastercard\_prepaid |
| American Express     | pm\_card\_amex                |
| Discover             | pm\_card\_discover            |
| Diners Club          | pm\_card\_diners              |
| JCB                  | pm\_card\_jcb                 |
| UnionPay             | pm\_card\_unionpay            |

{% endtab %}

{% tab title="Tokens" %}

| BRAND                | TOKEN                    |
| -------------------- | ------------------------ |
| Visa                 | tok\_visa                |
| Visa (debit)         | tok\_visa\_debit         |
| Mastercard           | tok\_mastercard          |
| Mastercard (debit)   | tok\_mastercard\_debit   |
| Mastercard (prepaid) | tok\_mastercard\_prepaid |
| American Express     | tok\_amex                |
| Discover             | tok\_discover            |
| Diners Club          | tok\_diners              |
| JCB                  | tok\_jcb                 |
| UnionPay             | tok\_unionpay            |
| {% endtab %}         |                          |
| {% endtabs %}        |                          |

Most Cartes Bancaires and eftpos cards are co-branded with either Visa or Mastercard. The test cards in the following table simulate successful payments with co-branded cards.

{% tabs %}
{% tab title="Card numbers" %}

<table><thead><tr><th width="218">BRAND/CO-BRAND</th><th width="215">NUMBER</th><th>CVC</th><th>DATE</th></tr></thead><tbody><tr><td>Cartes Bancaires/Visa</td><td>4000 0025 0000 1001</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>Cartes Bancaires/Mastercard</td><td>5555 5525 0000 1001</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>eftpos Australia/Visa</td><td>4000 0503 6000 0001</td><td>Any 3 digits</td><td>Any future date</td></tr><tr><td>eftpos Australia/Mastercard</td><td>5555 0503 6000 0080</td><td>Any 3 digits</td><td>Any future date</td></tr></tbody></table>
{% endtab %}

{% tab title="PaymentMethods" %}

| BRAND                       | PAYMENTMETHOD                                  |
| --------------------------- | ---------------------------------------------- |
| Cartes Bancaires/Visa       | pm\_card\_visa\_cartesBancaires                |
| Cartes Bancaires/Mastercard | pm\_card\_mastercard\_cartesBancaires          |
| eftpos Australia/Visa       | pm\_card\_visa\_debit\_eftposAuCoBranded       |
| eftpos Australia/Mastercard | pm\_card\_mastercard\_debit\_eftposAuCoBranded |

{% endtab %}

{% tab title="Tokens" %}

| BRAND                       | TOKEN                                     |
| --------------------------- | ----------------------------------------- |
| Cartes Bancaires/Visa       | tok\_visa\_cartesBancaires                |
| Cartes Bancaires/Mastercard | tok\_mastercard\_cartesBancaires          |
| eftpos Australia/Visa       | tok\_visa\_debit\_eftposAuCoBranded       |
| eftpos Australia/Mastercard | tok\_mastercard\_debit\_eftposAuCoBranded |

{% endtab %}
{% endtabs %}

### Cards by Country

To simulate successful payments from specific countries, use test cards from the following sections.

{% tabs %}
{% tab title="Card numbers" %}
**AMERICAS**

| COUNTRY            | NUMBER              | BRAND  |
| ------------------ | ------------------- | ------ |
| United States (US) | 4242 4242 4242 4242 | Visa   |
| Argentina (AR)     | 4000 0003 2000 0021 | Visa   |
| Brazil (BR)        | 4000 0007 6000 0002 | Visa   |
| Canada (CA)        | 4000 0012 4000 0000 | Visa   |
| Chile (CL)         | 4000 0015 2000 0001 | Visa   |
| Colombia (CO)      | 4000 0017 0000 0003 | Visa   |
| Costa Rica (CR)    | 4000 0018 8000 0005 | Visa   |
| Ecuador (EC)       | 4000 0021 8000 0000 | Visa   |
| Mexico (MX)        | 4000 0048 4000 8001 | Visa   |
| Mexico (MX)        | 5062 2100 0000 0009 | Carnet |
| Panama (PA)        | 4000 0059 1000 0000 | Visa   |
| Paraguay (PY)      | 4000 0060 0000 0066 | Visa   |
| Peru (PE)          | 4000 0060 4000 0068 | Visa   |
| Uruguay (UY)       | 4000 0085 8000 0003 | Visa   |
| {% endtab %}       |                     |        |

{% tab title="PaymentMethods" %}
**AMERICAS**

<table data-full-width="false"><thead><tr><th>COUNTRY</th><th>PAYMENTMETHOD</th><th>BRAND</th></tr></thead><tbody><tr><td>United States (US)</td><td>pm_card_us</td><td>Visa</td></tr><tr><td>Argentina (AR)</td><td>pm_card_ar</td><td>Visa</td></tr><tr><td>Brazil (BR)</td><td>pm_card_br</td><td>Visa</td></tr><tr><td>Canada (CA)</td><td>pm_card_ca</td><td>Visa</td></tr><tr><td>Chile (CL)</td><td>pm_card_cl</td><td>Visa</td></tr><tr><td>Colombia (CO)</td><td>pm_card_co</td><td>Visa</td></tr><tr><td>Costa Rica (CR)</td><td>pm_card_cr</td><td>Visa</td></tr><tr><td>Ecuador (EC)</td><td>pm_card_ec</td><td>Visa</td></tr><tr><td>Mexico (MX)</td><td>pm_card_mx</td><td>Visa</td></tr><tr><td>Panama (PA)</td><td>pm_card_pa</td><td>Visa</td></tr><tr><td>Paraguay (PY)</td><td>pm_card_py</td><td>Visa</td></tr><tr><td>Peru (PE)</td><td>pm_card_pe</td><td>Visa</td></tr><tr><td>Uruguay (UY)</td><td>pm_card_uy</td><td>Visa</td></tr></tbody></table>

{% endtab %}

{% tab title="Tokens" %}
**AMERICAS**

| COUNTRY            | TOKEN   | BRAND |
| ------------------ | ------- | ----- |
| United States (US) | tok\_us | Visa  |
| Argentina (AR)     | tok\_ar | Visa  |
| Brazil (BR)        | tok\_br | Visa  |
| Canada (CA)        | tok\_ca | Visa  |
| Chile (CL)         | tok\_cl | Visa  |
| Colombia (CO)      | tok\_co | Visa  |
| Costa Rica (CR)    | tok\_cr | Visa  |
| Ecuador (EC)       | tok\_ec | Visa  |
| Mexico (MX)        | tok\_mx | Visa  |
| Panama (PA)        | tok\_pa | Visa  |
| Paraguay (PY)      | tok\_py | Visa  |
| Peru (PE)          | tok\_pe | Visa  |
| Uruguay (UY)       | tok\_uy | Visa  |
| {% endtab %}       |         |       |
| {% endtabs %}      |         |       |

{% tabs %}
{% tab title="Card numbers" %}
**EUROPE and MIDDLE EAST**

**Security tip**

Strong Customer Authentication regulations require 3D Secure authentication for online payments within the European Economic Area. The test cards in this section simulate a payment that succeeds without authentication. We recommend also testing scenarios that involve authentication, using 3D Secure test cards.

| United Arab Emirates (AE) | 4000 0078 4000 0001 | Visa         |
| ------------------------- | ------------------- | ------------ |
| United Arab Emirates (AE) | 5200 0078 4000 0022 | Mastercard   |
| Austria (AT)              | 4000 0004 0000 0008 | Visa         |
| Belgium (BE)              | 4000 0005 6000 0004 | Visa         |
| Bulgaria (BG)             | 4000 0010 0000 0000 | Visa         |
| Belarus (BY)              | 4000 0011 2000 0005 | Visa         |
| Croatia (HR)              | 4000 0019 1000 0009 | Visa         |
| Cyprus (CY)               | 4000 0019 6000 0008 | Visa         |
| Czech Republic (CZ)       | 4000 0020 3000 0002 | Visa         |
| Denmark (DK)              | 4000 0020 8000 0001 | Visa         |
| Estonia (EE)              | 4000 0023 3000 0009 | Visa         |
| Finland (FI)              | 4000 0024 6000 0001 | Visa         |
| France (FR)               | 4000 0025 0000 0003 | Visa         |
| Germany (DE)              | 4000 0027 6000 0016 | Visa         |
| Gibraltar (GI)            | 4000 0029 2000 0005 | Visa         |
| Greece (GR)               | 4000 0030 0000 0030 | Visa         |
| Hungary (HU)              | 4000 0034 8000 0005 | Visa         |
| Ireland (IE)              | 4000 0037 2000 0005 | Visa         |
| Italy (IT)                | 4000 0038 0000 0008 | Visa         |
| Latvia (LV)               | 4000 0042 8000 0005 | Visa         |
| Liechtenstein (LI)        | 4000 0043 8000 0004 | Visa         |
| Lithuania (LT)            | 4000 0044 0000 0000 | Visa         |
| Luxembourg (LU)           | 4000 0044 2000 0006 | Visa         |
| Malta (MT)                | 4000 0047 0000 0007 | Visa         |
| Netherlands (NL)          | 4000 0052 8000 0002 | Visa         |
| Norway (NO)               | 4000 0057 8000 0007 | Visa         |
| Poland (PL)               | 4000 0061 6000 0005 | Visa         |
| Portugal (PT)             | 4000 0062 0000 0007 | Visa         |
| Romania (RO)              | 4000 0064 2000 0001 | Visa         |
| Saudi Arabia (SA)         | 4000 0068 2000 0007 | Visa         |
| Slovenia (SI)             | 4000 0070 5000 0006 | Visa         |
| Slovakia (SK)             | 4000 0070 3000 0001 | Visa         |
| Spain (ES)                | 4000 0072 4000 0007 | Visa         |
| Sweden (SE)               | 4000 0075 2000 0008 | Visa         |
| Switzerland (CH)          | 4000 0075 6000 0009 | Visa         |
| United Kingdom (GB)       | 4000 0082 6000 0000 | Visa         |
| United Kingdom (GB)       | 4000 0582 6000 0005 | Visa (debit) |
| United Kingdom (GB)       | 5555 5582 6555 4449 | Mastercard   |
| {% endtab %}              |                     |              |

{% tab title="PaymentMethods" %}
**EUROPE and MIDDLE EAST**

**Security tip**

[Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) regulations require [3D Secure](https://docs.stripe.com/payments/3d-secure) authentication for online payments within the [European Economic Area](https://en.wikipedia.org/wiki/European_Economic_Area). The test cards in this section simulate a payment that succeeds without authentication. We recommend also testing scenarios that involve authentication, using [3D Secure test cards](https://docs.stripe.com/testing#regulatory-cards).

| United Arab Emirates (AE) | pm\_card\_ae             | Visa         |
| ------------------------- | ------------------------ | ------------ |
| United Arab Emirates (AE) | pm\_card\_ae\_mastercard | Mastercard   |
| Austria (AT)              | pm\_card\_at             | Visa         |
| Belgium (BE)              | pm\_card\_be             | Visa         |
| Bulgaria (BG)             | pm\_card\_bg             | Visa         |
| Belarus (BY)              | pm\_card\_by             | Visa         |
| Croatia (HR)              | pm\_card\_hr             | Visa         |
| Cyprus (CY)               | pm\_card\_cy             | Visa         |
| Czech Republic (CZ)       | pm\_card\_cz             | Visa         |
| Denmark (DK)              | pm\_card\_dk             | Visa         |
| Estonia (EE)              | pm\_card\_ee             | Visa         |
| Finland (FI)              | pm\_card\_fi             | Visa         |
| France (FR)               | pm\_card\_fr             | Visa         |
| Germany (DE)              | pm\_card\_de             | Visa         |
| Gibraltar (GI)            | pm\_card\_gi             | Visa         |
| Greece (GR)               | pm\_card\_gr             | Visa         |
| Hungary (HU)              | pm\_card\_hu             | Visa         |
| Ireland (IE)              | pm\_card\_ie             | Visa         |
| Italy (IT)                | pm\_card\_it             | Visa         |
| Latvia (LV)               | pm\_card\_lv             | Visa         |
| Liechtenstein (LI)        | pm\_card\_li             | Visa         |
| Lithuania (LT)            | pm\_card\_lt             | Visa         |
| Luxembourg (LU)           | pm\_card\_lu             | Visa         |
| Malta (MT)                | pm\_card\_mt             | Visa         |
| Netherlands (NL)          | pm\_card\_nl             | Visa         |
| Norway (NO)               | pm\_card\_no             | Visa         |
| Poland (PL)               | pm\_card\_pl             | Visa         |
| Portugal (PT)             | pm\_card\_pt             | Visa         |
| Romania (RO)              | pm\_card\_ro             | Visa         |
| Slovenia (SI)             | pm\_card\_si             | Visa         |
| Slovakia (SK)             | pm\_card\_sk             | Visa         |
| Spain (ES)                | pm\_card\_es             | Visa         |
| Sweden (SE)               | pm\_card\_se             | Visa         |
| Switzerland (CH)          | pm\_card\_ch             | Visa         |
| United Kingdom (GB)       | pm\_card\_gb             | Visa         |
| United Kingdom (GB)       | pm\_card\_gb\_debit      | Visa (debit) |
| United Kingdom (GB)       | pm\_card\_gb\_mastercard | Mastercard   |
| {% endtab %}              |                          |              |

{% tab title="Tokens" %}
**EUROPE and MIDDLE EAST**

**Security tip**

[Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) regulations require [3D Secure](https://docs.stripe.com/payments/3d-secure) authentication for online payments within the [European Economic Area](https://en.wikipedia.org/wiki/European_Economic_Area). The test cards in this section simulate a payment that succeeds without authentication. We recommend also testing scenarios that involve authentication, using [3D Secure test cards](https://docs.stripe.com/testing#regulatory-cards).

| United Arab Emirates (AE) | tok\_ae             | Visa         |
| ------------------------- | ------------------- | ------------ |
| United Arab Emirates (AE) | tok\_ae\_mastercard | Mastercard   |
| Austria (AT)              | tok\_at             | Visa         |
| Belgium (BE)              | tok\_be             | Visa         |
| Bulgaria (BG)             | tok\_bg             | Visa         |
| Belarus (BY)              | tok\_by             | Visa         |
| Croatia (HR)              | tok\_hr             | Visa         |
| Cyprus (CY)               | tok\_cy             | Visa         |
| Czech Republic (CZ)       | tok\_cz             | Visa         |
| Denmark (DK)              | tok\_dk             | Visa         |
| Estonia (EE)              | tok\_ee             | Visa         |
| Finland (FI)              | tok\_fi             | Visa         |
| France (FR)               | tok\_fr             | Visa         |
| Germany (DE)              | tok\_de             | Visa         |
| Gibraltar (GI)            | tok\_gi             | Visa         |
| Greece (GR)               | tok\_gr             | Visa         |
| Hungary (HU)              | tok\_hu             | Visa         |
| Ireland (IE)              | tok\_ie             | Visa         |
| Italy (IT)                | tok\_it             | Visa         |
| Latvia (LV)               | tok\_lv             | Visa         |
| Liechtenstein (LI)        | tok\_li             | Visa         |
| Lithuania (LT)            | tok\_lt             | Visa         |
| Luxembourg (LU)           | tok\_lu             | Visa         |
| Malta (MT)                | tok\_mt             | Visa         |
| Netherlands (NL)          | tok\_nl             | Visa         |
| Norway (NO)               | tok\_no             | Visa         |
| Poland (PL)               | tok\_pl             | Visa         |
| Portugal (PT)             | tok\_pt             | Visa         |
| Romania (RO)              | tok\_ro             | Visa         |
| Slovenia (SI)             | tok\_si             | Visa         |
| Slovakia (SK)             | tok\_sk             | Visa         |
| Spain (ES)                | tok\_es             | Visa         |
| Sweden (SE)               | tok\_se             | Visa         |
| Switzerland (CH)          | tok\_ch             | Visa         |
| United Kingdom (GB)       | tok\_gb             | Visa         |
| United Kingdom (GB)       | tok\_gb\_debit      | Visa (debit) |
| United Kingdom (GB)       | tok\_gb\_mastercard | Mastercard   |
| {% endtab %}              |                     |              |
| {% endtabs %}             |                     |              |

{% tabs %}
{% tab title="Card numbers" %}
**ASIA PACIFIC** ²

**Regional considerations | India**

To test subscriptions that require mandates and pre-debit notifications, see India recurring payments.

| Australia (AU)   | 4000 0003 6000 0006 | Visa          |
| ---------------- | ------------------- | ------------- |
| China (CN)       | 4000 0015 6000 0002 | Visa          |
| Hong Kong (HK)   | 4000 0034 4000 0004 | Visa          |
| India (IN)       | 4000 0035 6000 0008 | Visa          |
| Japan (JP)       | 4000 0039 2000 0003 | Visa          |
| Japan (JP)       | 3530 1113 3330 0000 | JCB           |
| Malaysia (my)    | 4000 0045 8000 0002 | Visa          |
| New Zealand (NZ) | 4000 0055 4000 0008 | Visa          |
| Singapore (SG)   | 4000 0070 2000 0003 | Visa          |
| Taiwan (TW)      | 4000 0015 8000 0008 | Visa          |
| Thailand (TH)    | 4000 0076 4000 0003 | Visa (credit) |
| Thailand (TH)    | 4000 0576 4000 0008 | Visa (debit)  |
| {% endtab %}     |                     |               |

{% tab title="PaymentMethods" %}
**ASIA PACIFIC** ²

**Regional considerations | India**

To test subscriptions that require mandates and pre-debit notifications, see [India recurring payments](https://docs.stripe.com/india-recurring-payments?integration=paymentIntents-setupIntents#testing).

| Australia (AU)   | pm\_card\_au         | Visa          |
| ---------------- | -------------------- | ------------- |
| China (CN)       | pm\_card\_cn         | Visa          |
| Hong Kong (HK)   | pm\_card\_hk         | Visa          |
| India (IN)       | pm\_card\_in         | Visa          |
| Japan (JP)       | pm\_card\_jp         | Visa          |
| Japan (JP)       | pm\_card\_jcb        | JCB           |
| Malaysia (my)    | pm\_card\_my         | Visa          |
| New Zealand (NZ) | pm\_card\_nz         | Visa          |
| Singapore (SG)   | pm\_card\_sg         | Visa          |
| Taiwan (TW)      | pm\_card\_tw         | Visa          |
| Thailand (TH)    | pm\_card\_th\_credit | Visa (credit) |
| Thailand (TH)    | pm\_card\_th\_debit  | Visa (debit)  |
| {% endtab %}     |                      |               |

{% tab title="Tokens" %}
**ASIA PACIFIC** ²

**Regional considerations | India**

To test subscriptions that require mandates and pre-debit notifications, see [India recurring payments](https://docs.stripe.com/india-recurring-payments?integration=paymentIntents-setupIntents#testing).

| Australia (AU)   | tok\_au         | Visa          |
| ---------------- | --------------- | ------------- |
| China (CN)       | tok\_cn         | Visa          |
| Hong Kong (HK)   | tok\_hk         | Visa          |
| India (IN)       | tok\_in         | Visa          |
| Japan (JP)       | tok\_jp         | Visa          |
| Japan (JP)       | tok\_jcb        | JCB           |
| Malaysia (my)    | tok\_my         | Visa          |
| New Zealand (NZ) | tok\_nz         | Visa          |
| Singapore (SG)   | tok\_sg         | Visa          |
| Taiwan (TW)      | tok\_tw         | Visa          |
| Thailand (TH)    | tok\_th\_credit | Visa (credit) |
| Thailand (TH)    | tok\_th\_debit  | Visa (debit)  |
| {% endtab %}     |                 |               |
| {% endtabs %}    |                 |               |

### Declined payments![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#declined-payments" id="declined-payments"></a>

To test your integration’s error-handling logic by simulating payments that the issuer declines for various reasons, use test cards from this section. Using one of these cards results in a [card error](https://docs.stripe.com/error-handling#payment-errors) with the given error code and decline code.

**Common mistake**

To simulate an incorrect CVC, you must provide one using any three-digit number. If you don’t provide a CVC, Stripe doesn’t perform the CVC check, so the check can’t fail.

{% tabs %}
{% tab title="Card numbers" %}

| DESCRIPTION                      | NUMBER              | ERROR CODE        | DECLINE CODE             |
| -------------------------------- | ------------------- | ----------------- | ------------------------ |
| Generic decline                  | 4000 0000 0000 0002 | card\_declined    | generic\_decline         |
| Insufficient funds decline       | 4000 0000 0000 9995 | card\_declined    | insufficient\_funds      |
| Lost card decline                | 4000 0000 0000 9987 | card\_declined    | lost\_card               |
| Stolen card decline              | 4000 0000 0000 9979 | card\_declined    | stolen\_card             |
| Expired card decline             | 4000 0000 0000 0069 | expired\_card     | n/a                      |
| Incorrect CVC decline            | 4000 0000 0000 0127 | incorrect\_cvc    | n/a                      |
| Processing error decline         | 4000 0000 0000 0119 | processing\_error | n/a                      |
| Incorrect number decline         | 4242 4242 4242 4241 | incorrect\_number | n/a                      |
| Exceeding velocity limit decline | 4000 0000 0000 6975 | card\_declined    | card\_velocity\_exceeded |

The cards in the previous table can’t be attached to a Customer object. To simulate a declined payment with a successfully attached card, use the next one.

| DESCRIPTION             | PAYMENTMETHOD       | DETAILS                                                                                                                               |
| ----------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Decline after attaching | 4000 0000 0000 0341 | Attaching this card to a [Customer](https://docs.stripe.com/api/customers) object succeeds, but attempts to charge the customer fail. |
| {% endtab %}            |                     |                                                                                                                                       |

{% tab title="Payment Method" %}

<table data-full-width="false"><thead><tr><th>DESCRIPTION</th><th width="316">NUMBER</th><th width="148">ERROR CODE</th><th>DECLINE CODE</th></tr></thead><tbody><tr><td>Generic decline</td><td>pm_card_visa_chargeDeclined</td><td>card_declined</td><td>generic_decline</td></tr><tr><td>Insufficient funds decline</td><td><p>pm_card_visa_</p><p>chargeDeclinedInsufficientFunds</p></td><td>card_declined</td><td>insufficient_funds</td></tr><tr><td>Lost card decline</td><td>pm_card_visa_chargeDeclinedLostCard</td><td>card_declined</td><td>lost_card</td></tr><tr><td>Stolen card decline</td><td>pm_card_visa_chargeDeclinedStolenCard</td><td>card_declined</td><td>stolen_card</td></tr><tr><td>Expired card decline</td><td>pm_card_chargeDeclinedExpiredCard</td><td>expired_card</td><td>n/a</td></tr><tr><td>Incorrect CVC decline</td><td>pm_card_chargeDeclinedIncorrectCvc</td><td>incorrect_cvc</td><td>n/a</td></tr><tr><td>Processing error decline</td><td>pm_card_chargeDeclinedProcessingError</td><td>processing_error</td><td>n/a</td></tr><tr><td>Exceeding velocity limit decline</td><td>pm_card_visa_chargeDeclinedVelocityLimitExceeded</td><td>card_declined</td><td>card_velocity_exceeded</td></tr></tbody></table>

The cards in the previous table can’t be attached to a Customer object. To simulate a declined payment with a successfully attached card, use the next one.

| DESCRIPTION             | NUMBER                                     | DETAILS                                                                                                                               |
| ----------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| Decline after attaching | <p>pm\_card\_</p><p>chargeCustomerFail</p> | Attaching this card to a [Customer](https://docs.stripe.com/api/customers) object succeeds, but attempts to charge the customer fail. |
| {% endtab %}            |                                            |                                                                                                                                       |

{% tab title="Tokens" %}

| DESCRIPTION                      | NUMBER                                                       | ERROR CODE        | DECLINE CODE             |
| -------------------------------- | ------------------------------------------------------------ | ----------------- | ------------------------ |
| Generic decline                  | tok\_visa\_chargeDeclined                                    | card\_declined    | generic\_decline         |
| Insufficient funds decline       | <p>tok\_visa\_</p><p>chargeDeclinedInsufficientFunds</p>     | card\_declined    | insufficient\_funds      |
| Lost card decline                | tok\_visa\_chargeDeclinedLostCard                            | card\_declined    | lost\_card               |
| Stolen card decline              | tok\_visa\_chargeDeclinedStolenCard                          | card\_declined    | stolen\_card             |
| Expired card decline             | tok\_chargeDeclinedExpiredCard                               | expired\_card     | n/a                      |
| Incorrect CVC decline            | tok\_chargeDeclinedIncorrectCvc                              | incorrect\_cvc    | n/a                      |
| Processing error decline         | tok\_chargeDeclinedProcessingError                           | processing\_error | n/a                      |
| Exceeding velocity limit decline | <p>tok\_visa\_</p><p>chargeDeclinedVelocityLimitExceeded</p> | card\_declined    | card\_velocity\_exceeded |

The cards in the previous table can’t be attached to a Customer object. To simulate a declined payment with a successfully attached card, use the next one.

| DESCRIPTION             | TOKEN                                 | DETAILS                                                                                                                               |
| ----------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Decline after attaching | <p>tok\_</p><p>chargeCustomerFail</p> | Attaching this card to a [Customer](https://docs.stripe.com/api/customers) object succeeds, but attempts to charge the customer fail. |
| {% endtab %}            |                                       |                                                                                                                                       |
| {% endtabs %}           |                                       |                                                                                                                                       |

### Fraud prevention![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#fraud-prevention" id="fraud-prevention"></a>

Stripe’s fraud prevention system, Radar, can block payments when they have a high risk level or fail verification checks. You can use the cards in this section to test your Radar settings. You can also use them to test how your integration responds to blocked payments.

Each card simulates specific risk factors. Your Radar settings determine which risk factors cause it to block a payment. Blocked payments result in card errors with an error code of fraud.

**Common mistake**

To simulate a failed CVC check, you must provide a CVC using any three-digit number. To simulate a failed postal code check, you must provide any valid postal code. If you don’t provide those values, Radar doesn’t perform the corresponding checks, so the checks can’t fail.

{% tabs %}
{% tab title="Card numbers" %}

| DESCRIPTION             | NUMBER              | DETAILS                                                                                                                                                |
| ----------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Always blocked          | 4100 0000 0000 0019 | <p>The charge has a risk level of “highest”</p><p>Our Antifraud System always blocks it.</p>                                                           |
| Highest risk            | 4000 0000 0000 4954 | <p>The charge has a risk level of “highest”</p><p>Our Antifraud Systemmight block it depending on your settings.</p>                                   |
| Elevated risk           | 4000 0000 0000 9235 | The charge has a risk level of “elevated”                                                                                                              |
| CVC check fails         | 4000 0000 0000 0101 | <p>If you provide a CVC number, the CVC check fails.</p><p>Our Antifraud System might block it depending on your settings.</p>                         |
| Postal code check fails | 4000 0000 0000 0036 | <p>If you provide a postal code, the postal code check fails.</p><p>Our Antifraud System might block it depending on your settings.</p>                |
| Line1 check fails       | 4000 0000 0000 0028 | <p>The address line 1 check fails.</p><p>The payment succeeds unless you block it with a custom Antifraud System rule.</p>                             |
| Address checks fail     | 4000 0000 0000 0010 | <p>The address postal code check and address line 1 check both fail.</p><p>Our Antifraud System might block it depending on your settings.</p>         |
| Address unavailable     | 40000 0000 0000044  | <p>The address postal code check and address line 1 check are both unavailable.</p><p>The payment succeeds unless you block it with a custom rule.</p> |

{% endtab %}

{% tab title="PaymentMethods" %}

| DESCRIPTION             | PAYMENTMETHOD               | DETAILS                                                                                                                                                                                                                                                 |
| ----------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Always blocked          | pm\_card\_radarBlock        | <p>The charge has a <a href="https://docs.stripe.com/radar/risk-evaluation#high-risk">risk level of “highest”</a></p><p>Radar always blocks it.</p>                                                                                                     |
| Highest risk            | pm\_card\_riskLevelHighest  | <p>The charge has a <a href="https://docs.stripe.com/radar/risk-evaluation#high-risk">risk level of “highest”</a></p><p>Radar might block it depending on your settings.</p>                                                                            |
| Elevated risk           | pm\_card\_riskLevelElevated | <p>The charge has a <a href="https://docs.stripe.com/radar/risk-evaluation#elevated-risk">risk level of “elevated”</a></p><p>If you use Radar for Fraud Teams, Radar might <a href="https://docs.stripe.com/radar/reviews">queue it for review</a>.</p> |
| CVC check fails         | pm\_card\_cvcCheckFail      | <p>If you provide a CVC number, the CVC check fails.</p><p>Radar might block it <a href="https://docs.stripe.com/radar/rules#traditional-bank-checks">depending on your settings.</a></p>                                                               |
| Postal code check fails | pm\_card\_avsZipFail        | <p>If you provide a postal code, the postal code check fails.</p><p>Radar might block it <a href="https://docs.stripe.com/radar/rules#traditional-bank-checks">depending on your settings.</a></p>                                                      |
| Line1 check fails       | pm\_card\_avsLine1Fail      | <p>The address line 1 check fails.</p><p>The payment succeeds unless you <a href="https://docs.stripe.com/radar/rules/reference#post-authorization-attributes">block it with a custom Radar rule</a>.</p>                                               |
| Address checks fail     | pm\_card\_avsFail           | <p>The address postal code check and address line 1 check both fail.</p><p>Radar might block it <a href="https://docs.stripe.com/radar/rules#traditional-bank-checks">depending on your settings.</a></p>                                               |
| Address unavailable     | pm\_card\_avsUnchecked      | <p>The address postal code check and address line 1 check are both unavailable.</p><p>The payment succeeds unless you <a href="https://docs.stripe.com/radar/rules/reference#post-authorization-attributes">block it with a custom Radar rule</a>.</p>  |

{% endtab %}

{% tab title="Tokens" %}

| DESCRIPTION             | TOKEN                  | DETAILS                                                                                                                                                                                                                                                 |
| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Always blocked          | tok\_radarBlock        | <p>The charge has a <a href="https://docs.stripe.com/radar/risk-evaluation#high-risk">risk level of “highest”</a></p><p>Radar always blocks it.</p>                                                                                                     |
| Highest risk            | tok\_riskLevelHighest  | <p>The charge has a <a href="https://docs.stripe.com/radar/risk-evaluation#high-risk">risk level of “highest”</a></p><p>Radar might block it depending on your settings.</p>                                                                            |
| Elevated risk           | tok\_riskLevelElevated | <p>The charge has a <a href="https://docs.stripe.com/radar/risk-evaluation#elevated-risk">risk level of “elevated”</a></p><p>If you use Radar for Fraud Teams, Radar might <a href="https://docs.stripe.com/radar/reviews">queue it for review</a>.</p> |
| CVC check fails         | tok\_cvcCheckFail      | <p>If you provide a CVC number, the CVC check fails.</p><p>Radar might block it <a href="https://docs.stripe.com/radar/rules#traditional-bank-checks">depending on your settings.</a></p>                                                               |
| Postal code check fails | tok\_avsZipFail        | <p>If you provide a postal code, the postal code check fails.</p><p>Radar might block it <a href="https://docs.stripe.com/radar/rules#traditional-bank-checks">depending on your settings.</a></p>                                                      |
| Line1 check fails       | tok\_avsLine1Fail      | <p>The address line 1 check fails.</p><p>The payment succeeds unless you <a href="https://docs.stripe.com/radar/rules/reference#post-authorization-attributes">block it with a custom Radar rule</a>.</p>                                               |
| Address checks fail     | tok\_avsFail           | <p>The address postal code check and address line 1 check both fail.</p><p>Radar might block it <a href="https://docs.stripe.com/radar/rules#traditional-bank-checks">depending on your settings.</a></p>                                               |
| Address unavailable     | tok\_avsUnchecked      | <p>The address postal code check and address line 1 check are both unavailable.</p><p>The payment succeeds unless you <a href="https://docs.stripe.com/radar/rules/reference#post-authorization-attributes">block it with a custom Radar rule</a>.</p>  |
| {% endtab %}            |                        |                                                                                                                                                                                                                                                         |
| {% endtabs %}           |                        |                                                                                                                                                                                                                                                         |

### Invalid data![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#invalid-data" id="invalid-data"></a>

To test errors resulting from invalid data, provide invalid details. You don’t need a special test card for this. Any invalid value works. For instance:

* invalid\_expiry\_month: Use an invalid month, such as **13**.
* invalid\_expiry\_year: Use a year up to 50 years in the past, such as **95**.
* invalid\_cvc: Use a two-digit number, such as **99**.
* incorrect\_number: Use a card number that fails the Luhn check, such as 4242424242424241.

### Disputes![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#disputes" id="disputes"></a>

To simulate a disputed transaction, use the test cards in this section. Then, to simulate winning or losing the dispute, provide winning or losing evidence.

{% tabs %}
{% tab title="Card numbers" %}

| DESCRIPTION                  | NUMBER              | DETAILS                                                                                                                                                           |
| ---------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Fraudulent                   | 4000 0000 0000 0259 | With default account settings, charge succeeds, only to be disputed as fraudulent. This type of dispute is protected after 3D Secure authentication.              |
| Not received                 | 4000 0000 0000 2685 | With default account settings, charge succeeds, only to be disputed as product not received. This type of dispute isn’t protected after 3D Secure authentication. |
| Inquiry                      | 4000 0000 0000 1976 | With default account settings, charge succeeds, only to be disputed as an enquiry.                                                                                |
| Warning                      | 4000 0000 0000 5423 | With default account settings, charge succeeds, only to receive an early fraud warning.                                                                           |
| Multiple disputes            | 4000 0004 0400 0079 | With default account settings, charge succeeds, only to be disputed multiple times.                                                                               |
| Visa Compelling Evidence 3.0 | 4000 0004 0400 0038 | With default account settings, charge succeeds, only to be disputed as a Visa Compelling Evidence 3.0 eligible dispute.                                           |

{% endtab %}

{% tab title="PaymentMethods" %}

| DESCRIPTION                  | PAYMENTMETHOD                                           | DETAILS                                                                                                                                                                                                                                                                                              |
| ---------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Fraudulent                   | pm\_card\_createDispute                                 | With default account settings, charge succeeds, only to be disputed as [fraudulent](https://docs.stripe.com/disputes/categories). This type of dispute is [protected](https://docs.stripe.com/payments/3d-secure/authentication-flow#disputed-payments) after 3D Secure authentication.              |
| Not received                 | <p>pm\_card\_</p><p>createDisputeProductNotReceived</p> | With default account settings, charge succeeds, only to be disputed as [product not received](https://docs.stripe.com/disputes/categories). This type of dispute [isn’t protected](https://docs.stripe.com/payments/3d-secure/authentication-flow#disputed-payments) after 3D Secure authentication. |
| Inquiry                      | pm\_card\_createDisputeInquiry                          | With default account settings, charge succeeds, only to be disputed as [an enquiry](https://docs.stripe.com/disputes/how-disputes-work#inquiries).                                                                                                                                                   |
| Warning                      | pm\_card\_createIssuerFraudRecord                       | With default account settings, charge succeeds, only to receive [an early fraud warning](https://docs.stripe.com/disputes/how-disputes-work#early-fraud-warnings).                                                                                                                                   |
| Multiple disputes            | pm\_card\_createMultipleDisputes                        | With default account settings, charge succeeds, only to be disputed [multiple times](https://docs.stripe.com/disputes/how-disputes-work#multiple-disputes).                                                                                                                                          |
| Visa Compelling Evidence 3.0 | pm\_card\_createCe3EligibleDispute                      | With default account settings, charge succeeds, only to be disputed as a [Visa Compelling Evidence 3.0 eligible dispute](https://docs.stripe.com/disputes/api/visa-ce3#testing).                                                                                                                     |
| {% endtab %}                 |                                                         |                                                                                                                                                                                                                                                                                                      |

{% tab title="Tokens" %}

<table><thead><tr><th width="156">DESCRIPTION</th><th>TOKEN</th><th>DETAILS</th></tr></thead><tbody><tr><td>Fraudulent</td><td>tok_createDispute</td><td>With default account settings, charge succeeds, only to be disputed as <a href="https://docs.stripe.com/disputes/categories">fraudulent</a>. This type of dispute is <a href="https://docs.stripe.com/payments/3d-secure/authentication-flow#disputed-payments">protected</a> after 3D Secure authentication.</td></tr><tr><td>Not received</td><td>tok_createDisputeProductNotReceived</td><td>With default account settings, charge succeeds, only to be disputed as <a href="https://docs.stripe.com/disputes/categories">product not received</a>. This type of dispute <a href="https://docs.stripe.com/payments/3d-secure/authentication-flow#disputed-payments">isn’t protected</a> after 3D Secure authentication.</td></tr><tr><td>Inquiry</td><td>tok_createDisputeInquiry</td><td>With default account settings, charge succeeds, only to be disputed as <a href="https://docs.stripe.com/disputes/how-disputes-work#inquiries">an enquiry</a>.</td></tr><tr><td>Warning</td><td>tok_createIssuerFraudRecord</td><td>With default account settings, charge succeeds, only to receive <a href="https://docs.stripe.com/disputes/how-disputes-work#early-fraud-warnings">an early fraud warning</a>.</td></tr><tr><td>Multiple disputes</td><td>tok_createMultipleDisputes</td><td>With default account settings, charge succeeds, only to be disputed <a href="https://docs.stripe.com/disputes/how-disputes-work#multiple-disputes">multiple times</a>.</td></tr><tr><td>Visa Compelling Evidence 3.0</td><td>tok_createCe3EligibleDispute</td><td>With default account settings, charge succeeds, only to be disputed as a <a href="https://docs.stripe.com/disputes/api/visa-ce3#testing">Visa Compelling Evidence 3.0 eligible dispute</a>.</td></tr></tbody></table>

{% endtab %}
{% endtabs %}

### Evidence

To simulate winning or losing the dispute, respond with one of the evidence values from the table below.

* If you respond using the API, pass the value from the table as uncategorized\_text.
* If you respond in the Dashboard, enter the value from the table in the **Additional information** field. Then, click **Submit evidence**.

<table><thead><tr><th width="203">EVIDENCE</th><th>DESCRIPTION</th></tr></thead><tbody><tr><td>winning_evidence</td><td>The dispute is closed and marked as won. Your account is credited the amount of the charge and related fees.</td></tr><tr><td>losing_evidence</td><td>The dispute is closed and marked as lost. Your account isn’t credited.</td></tr></tbody></table>

### Refunds![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#refunds" id="refunds"></a>

In live mode, refunds are asynchronous: a refund can appear to succeed and later fail, or can appear as `pending` at first and later succeed. To simulate refunds with those behaviors, use the test cards in this section. (With all other test cards, refunds succeed immediately and don’t change status after that.)

{% tabs %}
{% tab title="Card numbers" %}

| DESCRIPTION          | NUMBER              | DETAILS                                                                                                                                                                   |
| -------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Asynchronous success | 4000 0000 0000 7726 | The charge succeeds. If you initiate a refund, its status begins as `pending`. Some time later, its status transitions to `succeeded` and sends a `refund.updated` event. |
| Asynchronous failure | 4000 0000 0000 5126 | The charge succeeds. If you initiate a refund, its status begins as `succeeded`. Some time later, its status transitions to `failed` and sends a `refund.failed` event.   |
| {% endtab %}         |                     |                                                                                                                                                                           |

{% tab title="PaymentMethods" %}

| DESCRIPTION          | PAYMENTMETHOD           | DETAILS                                                                                                                                                                                                                                                                                          |
| -------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Asynchronous success | pm\_card\_pendingRefund | The charge succeeds. If you initiate a refund, its status begins as `pending`. Some time later, its status transitions to `succeeded` and sends a `refund.updated` [event](https://docs.stripe.com/api/events/types#event_types-refund.updated).ailable balance, bypassing your pending balance. |
| Asynchronous failure | pm\_card\_refundFaill   | The charge succeeds. If you initiate a refund, its status begins as `succeeded`. Some time later, its status transitions to `failed` and sends a `refund.failed` [event](https://docs.stripe.com/api/events/types#event_types-refund.failed).                                                    |
| {% endtab %}         |                         |                                                                                                                                                                                                                                                                                                  |

{% tab title="Tokens" %}

| DESCRIPTION          | TOKEN              | DETAILS                                                                                                                                                                                                                                          |
| -------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Asynchronous success | tok\_pendingRefund | The charge succeeds. If you initiate a refund, its status begins as `pending`. Some time later, its status transitions to `succeeded` and sends a `refund.updated` [event](https://docs.stripe.com/api/events/types#event_types-refund.updated). |
| Asynchronous failure | tok\_refundFail    | The charge succeeds. If you initiate a refund, its status begins as `succeeded`. Some time later, its status transitions to `failed` and sends a `refund.failed` [event](https://docs.stripe.com/api/events/types#event_types-refund.failed).    |
| {% endtab %}         |                    |                                                                                                                                                                                                                                                  |
| {% endtabs %}        |                    |                                                                                                                                                                                                                                                  |

You can cancel a card refund only by using the Dashboard. In live mode, you can cancel a card refund within a short but nonspecific period of time. Test mode simulates that period by allowing you to cancel a card refund within 30 minutes.

### Available balance![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#available-balance" id="available-balance"></a>

To send the funds from a test transaction directly to your available balance, use the test cards in this section. Other test cards send funds from a successful payment to your pending balance.

{% tabs %}
{% tab title="Card Numbers" %}

| DESCRIPTION            | NUMBER              | DETAILS                                                                                                                |
| ---------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Bypass pending balance | 4000 0000 0000 0077 | The US charge succeeds. Funds are added directly to your available balance, bypassing your pending balance.            |
| Bypass pending balance | 4000 0037 2000 0278 | The international charge succeeds. Funds are added directly to your available balance, bypassing your pending balance. |
| {% endtab %}           |                     |                                                                                                                        |

{% tab title="PaymentMethods" %}

| DESCRIPTION            | PAYMENTMETHOD                        | DETAILS                                                                                                                |
| ---------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Bypass pending balance | pm\_card\_bypassPending              | The US charge succeeds. Funds are added directly to your available balance, bypassing your pending balance.            |
| Bypass pending balance | pm\_card\_bypassPendingInternational | The international charge succeeds. Funds are added directly to your available balance, bypassing your pending balance. |
| {% endtab %}           |                                      |                                                                                                                        |

{% tab title="Tokens" %}

| DESCRIPTION            | TOKEN                           | DETAILS                                                                                                                |
| ---------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Bypass pending balance | tok\_bypassPending              | The US charge succeeds. Funds are added directly to your available balance, bypassing your pending balance.            |
| Bypass pending balance | tok\_bypassPendingInternational | The international charge succeeds. Funds are added directly to your available balance, bypassing your pending balance. |
| {% endtab %}           |                                 |                                                                                                                        |
| {% endtabs %}          |                                 |                                                                                                                        |

### 3D Secure authentication![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#regulatory-cards" id="regulatory-cards"></a>

3D Secure requires an additional layer of authentication for credit card transactions. The test cards in this section allow you to simulate triggering authentication in different payment flows.

Only cards in this section effectively test your 3D Secure integration by simulating defined 3DS behaviour, such as a challenge flow or an unsupported card. Other Stripe testing cards might still trigger 3DS, but we return `attempt_acknowledged` to bypass the additional steps since 3DS testing isn’t the objective for those cards.

**Dashboard not supported**

3D Secure redirects won’t occur for payments created directly in the Stripe Dashboard. Instead, use your integration’s own frontend or an API call.

**Authentication and setup**![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)

To simulate payment flows that include authentication, use the test cards in this section. Some of these cards can also be set up for future payments, or have already been.

{% tabs %}
{% tab title="Card numbers" %}

| DESCRIPTION                | NUMBER              | DETAILS                                                                                                                                                                                                                                                     |
| -------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authenticate unless set up | 4000 0025 0000 3155 | This card requires authentication for off-session payments unless you set it up for future payments. After you set it up, off-session payments no longer require authentication. However, on-session payments with this card always require authentication. |
| Always authenticate        | 4000 0027 6000 3184 | This card requires authentication on all transactions, regardless of how the card is set up.                                                                                                                                                                |
| Already set up             | 4000 0038 0000 0446 | This card is already set up for off-session use. It requires authentication for one-off and other on-session payments. However, all off-session payments succeed as if the card has been previously set up.                                                 |
| Insufficient funds         | 4000 0082 6000 3178 | This card requires authentication for one-off payments. All payments are declined with an `insufficient_funds` failure code even after being successfully authenticated or previously set up.                                                               |
| {% endtab %}               |                     |                                                                                                                                                                                                                                                             |

{% tab title="PaymentMethods" %}

<table><thead><tr><th>DESCRIPTION</th><th width="279">PAYMENTMETHOD</th><th>DETAILS</th></tr></thead><tbody><tr><td>Authenticate unless set up</td><td>pm_card_authenticationRequiredOnSetup</td><td>This card requires authentication for every payment unless you <a href="https://docs.stripe.com/payments/save-and-reuse">set it up</a> for future payments. After you set it up, it no longer requires authentication.</td></tr><tr><td>Always authenticate</td><td>pm_card_authenticationRequired</td><td>This card requires authentication on all transactions, regardless of how the card is set up.</td></tr><tr><td>Already set up</td><td>pm_card_authenticationRequiredSetupForOffSession</td><td>This card is already set up for off-session use. It requires authentication for <a href="https://docs.stripe.com/payments/accept-a-payment?platform=web">one-off</a> and other <a href="https://docs.stripe.com/payments/save-during-payment#web-submit-payment">on-session</a> payments. However, all off-session payments succeed as if the card has been previously <a href="https://docs.stripe.com/payments/save-and-reuse">set up</a>.</td></tr><tr><td>Insufficient funds</td><td>pm_card_authenticationRequiredChargeDeclinedInsufficientFunds</td><td>This card requires authentication for <a href="https://docs.stripe.com/payments/accept-a-payment?platform=web">one-off payments</a>. All payments are declined with an <code>insufficient_funds</code> failure code even after being successfully authenticated or previously <a href="https://docs.stripe.com/payments/save-and-reuse">set up</a>.</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

#### Support and availability![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#three-ds-cards" id="three-ds-cards"></a>

We request authentication when required by regulation or when triggered by your Antifraud System rules or custom code. Even if authentication is requested, it can’t always be performed – for instance, the customer’s card might not be enrolled, or an error might occur. Use the test cards in this section to simulate various combinations of these factors.

**Note**

All 3DS references indicate 3D Secure 2.

{% tabs %}
{% tab title="Card numbers" %}

<table><thead><tr><th width="206">3D SECURE USAGE</th><th>OUTCOME</th><th>NUMBER</th><th>DETAILS</th></tr></thead><tbody><tr><td>3DS Required</td><td>OK</td><td>4000 0000 0000 3220</td><td>3D Secure authentication must be completed for the payment to be successful. By default, Our Antifraud System rules request 3D Secure authentication for this card.</td></tr><tr><td>3DS Required</td><td>Declined</td><td>4000 0084 0000 1629</td><td>3D Secure authentication is required, but payments are declined with a <code>card_declined</code> failure code after authentication. By default, Our Antifraud System rules request 3D Secure authentication for this card.</td></tr><tr><td>3DS Required</td><td>Error</td><td>4000 0084 0000 1280</td><td>3D Secure authentication is required, but the 3D Secure lookup request fails with a processing error. Payments are declined with a <code>card_declined</code> failure code. By default, Our Antifraud System rules request 3D Secure authentication for this card.</td></tr><tr><td>3DS Supported</td><td>OK</td><td>4000 0000 0000 3055</td><td>3D Secure authentication might still be performed, but isn’t required. By default, Our Antifraud System rules don’t request 3D Secure authentication for this card.</td></tr><tr><td>3DS Supported</td><td>Error</td><td>4000 0000 0000 3097</td><td>3D Secure authentication might still be performed, but isn’t required. However, attempts to perform 3D Secure result in a processing error. By default, Our Antifraud System rules don’t request 3D Secure authentication for this card.</td></tr><tr><td>3DS Supported</td><td>Unenrolled</td><td>4242 4242 4242 4242</td><td>3D Secure is supported for this card, but this card isn’t enrolled in 3D Secure. Even if Our Antifraud System  rules request 3D Secure, the customer won’t be prompted to authenticate. By default, Our Antifraud System rules don’t request 3D Secure authentication for this card.</td></tr><tr><td>3DS Not supported</td><td></td><td>3782 822463 10005</td><td>3D Secure isn’t supported on this card and can’t be invoked. The PaymentIntent or SetupIntent proceeds without performing authentication.</td></tr></tbody></table>
{% endtab %}

{% tab title="PaymentMethods" %}

<table><thead><tr><th width="194">3D SECURE USAGE</th><th>OUTCOME</th><th>PAYMENTMETHOD</th><th>DETAILS</th></tr></thead><tbody><tr><td>Required</td><td>OK</td><td>pm_card_threeDSecure2Required</td><td>3D Secure authentication must be completed for the payment to be successful. By default, your Radar rules request 3D Secure authentication for this card.</td></tr><tr><td>Required</td><td>Declined</td><td>pm_card_threeDSecureRequiredChargeDeclined</td><td>3D Secure authentication is required, but payments are declined with a <code>card_declined</code> failure code after authentication. By default, your Radar rules request 3D Secure authentication for this card.</td></tr><tr><td>Required</td><td>Error</td><td>pm_card_threeDSecureRequiredProcessingError</td><td>3D Secure authentication is required, but the 3D Secure lookup request fails with a processing error. Payments are declined with a <code>card_declined</code> failure code. By default, your Radar rules request 3D Secure authentication for this card.</td></tr><tr><td>Supported</td><td>OK</td><td>pm_card_threeDSecureOptional</td><td>3D Secure authentication might still be performed, but isn’t required. By default, your Radar rules don’t request 3D Secure authentication for this card.</td></tr><tr><td>Supported</td><td>Error</td><td>pm_card_threeDSecureOptionalProcessingError</td><td>3D Secure authentication might still be performed, but isn’t required. However, attempts to perform 3D Secure result in a processing error. By default, your Radar rules don’t request 3D Secure authentication for this card.</td></tr><tr><td>Supported</td><td>Unenrolled</td><td>pm_card_visa</td><td>3D Secure is supported for this card, but this card isn’t enrolled in 3D Secure. Even if your Radar rules request 3D Secure, the customer won’t be prompted to authenticate. By default, your Radar rules don’t request 3D Secure authentication for this card.</td></tr><tr><td>Not supported</td><td></td><td>pm_card_amex_threeDSecureNotSupported</td><td>3D Secure isn’t supported on this card and can’t be invoked. The PaymentIntent or SetupIntent proceeds without performing authentication.</td></tr></tbody></table>

{% endtab %}

{% tab title="Tokens" %}

| 3D SECURE USAGE | OUTCOME    | TOKEN                                    | DETAILS                                                                                                                                                                                                                                                         |
| --------------- | ---------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Required        | OK         | tok\_threeDSecure2Required               | 3D Secure authentication must be completed for the payment to be successful. By default, your Radar rules request 3D Secure authentication for this card.                                                                                                       |
| Required        | Declined   | tok\_threeDSecureRequiredChargeDeclined  | 3D Secure authentication is required, but payments are declined with a `card_declined` failure code after authentication. By default, your Radar rules request 3D Secure authentication for this card.                                                          |
| Required        | Error      | tok\_threeDSecureRequiredProcessingError | 3D Secure authentication is required, but the 3D Secure lookup request fails with a processing error. Payments are declined with a `card_declined` failure code. By default, your Radar rules request 3D Secure authentication for this card.                   |
| Supported       | OK         | tok\_threeDSecureOptional                | 3D Secure authentication might still be performed, but isn’t required. By default, your Radar rules don’t request 3D Secure authentication for this card.                                                                                                       |
| Supported       | Error      | tok\_threeDSecureOptionalProcessingError | 3D Secure authentication might still be performed, but isn’t required. However, attempts to perform 3D Secure result in a processing error. By default, your Radar rules don’t request 3D Secure authentication for this card.                                  |
| Supported       | Unenrolled | tok\_visa                                | 3D Secure is supported for this card, but this card isn’t enrolled in 3D Secure. Even if your Radar rules request 3D Secure, the customer won’t be prompted to authenticate. By default, your Radar rules don’t request 3D Secure authentication for this card. |
| Not supported   |            | tok\_amex\_threeDSecureNotSupported      | 3D Secure isn’t supported on this card and can’t be invoked. The PaymentIntent proceeds without performing authentication.                                                                                                                                      |

{% endtab %}
{% endtabs %}

#### 3D Secure mobile challenge flows![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#id-3d-secure-mobile-challenge-flows" id="id-3d-secure-mobile-challenge-flows"></a>

In a mobile payment, several challenge flows for authentication—where the customer has to interact with prompts in the UI—are available. Use the test cards in this section to trigger a specific challenge flow for test purposes. These cards aren’t useful in browser-based payment forms or in API calls. In those environments, they work but don’t trigger any special behavior. Because they’re not useful in API calls, we don’t provide any `PaymentMethod` or `Token` values to test with.

| CHALLENGE FLOW    | NUMBER              | DETAILS                                                                                                                  |
| ----------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Out of band       | 4000 5826 0000 0094 | 3D Secure 2 authentication must be completed on all transactions. Triggers the challenge flow with Out of Band UI.       |
| One time passcode | 4000 5826 0000 0045 | 3D Secure 2 authentication must be completed on all transactions. Triggers the challenge flow with One Time Passcode UI. |
| Single select     | 4000 5826 0000 0102 | 3D Secure 2 authentication must be completed on all transactions. Triggers the challenge flow with single-select U       |
| Multi select      | 4000 5826 0000 0110 | D Secure 2 authentication must be completed on all transactions. Triggers the challenge flow with multi-select UI.       |

### Captcha challenge![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#captcha" id="captcha"></a>

To prevent fraud, Our Antifraud System  might display a captcha challenge to the user on the payment page. Use the test cards below to simulate this flow.

| DESCRIPTION       | NUMBER              | DETAILS                                                                  |
| ----------------- | ------------------- | ------------------------------------------------------------------------ |
| Captcha challenge | 4000 0000 0000 1208 | The charge succeeds if the user correctly answers the captcha challenge. |
| Captcha challenge | 4000 0000 0000 3725 | The charge succeeds if the user correctly answers the captcha challenge. |

### Rate limits![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#rate-limits" id="rate-limits"></a>

If your requests in test mode begin to receive `429` HTTP errors, make them less frequently. These errors come from our rate limiter, which is stricter in test mode than in live mode.

We don’t recommend load testing your integration using the API in test mode. Because the load limiter is stricter in test mode, you might see errors that you wouldn’t see in production. See load testing for an alternative approach.

### Non-card payments![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#non-card-payments" id="non-card-payments"></a>

Any time you use a test non-card payment method, use test API keys in all API calls. This is true whether you’re serving a payment form you can test interactively or writing test code.

Different payment methods have different test procedures:

{% tabs %}
{% tab title="ACH Direct Debit" %}

#### Send transaction emails in test mode![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#send-transaction-emails-in-test-mode" id="send-transaction-emails-in-test-mode"></a>

After you collect the bank account details and accept a mandate, send the mandate confirmation and microdeposit verification emails in test mode. To do this, provide an email in the `payment_method_data.billing_details[email]` field in the form of `{any-prefix}+test_email@{any_domain}` when you collect the payment method details.

#### Test account numbers![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#test-account-numbers" id="test-account-numbers"></a>

Stripe provides several test account numbers and corresponding tokens you can use to make sure your integration for manually-entered bank accounts is ready for production.

| ACCOUNT NUMBER | TOKEN                                  | ROUTING NUMBER | BEHAVIOR                                                                                               |
| -------------- | -------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| 000123456789   | pm\_usBankAccount\_success             | 110000000      | The payment succeeds.                                                                                  |
| 000111111113   | pm\_usBankAccount\_accountClosed       | 110000000      | The payment fails because the account is closed.                                                       |
| 000111111116   | pm\_usBankAccount\_noAccount           | 110000000      | The payment fails because no account is found.                                                         |
| 000222222227   | pm\_usBankAccount\_insufficientFunds   | 110000000      | The payment fails due to insufficient funds.                                                           |
| 000333333335   | pm\_usBankAccount\_debitNotAuthorized  | 110000000      | The payment fails because debits aren’t authorized.                                                    |
| 000444444440   | pm\_usBankAccount\_invalidCurrency     | 110000000      | The payment fails due to invalid currency.                                                             |
| 000666666661   | pm\_usBankAccount\_failMicrodeposits   | 110000000      | The payment fails to send microdeposits.                                                               |
| 000555555559   | pm\_usBankAccount\_dispute             | 110000000      | The payment triggers a dispute.                                                                        |
| 000000000009   | pm\_usBankAccount\_processing          | 110000000      | The payment stays in processing indefinitely. Useful for testing PaymentIntent cancellation.           |
| 000777777771   | pm\_usBankAccount\_weeklyLimitExceeded | 110000000      | The payment fails due to payment amount causing the account to exceed its weekly payment volume limit. |

Before test transactions can complete, you need to verify all test accounts that automatically succeed or fail the payment. To do so, use the test microdeposit amounts or descriptor codes below.

#### Test microdeposit amounts and descriptor codes![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#test-microdeposit-amounts-and-descriptor-codes" id="test-microdeposit-amounts-and-descriptor-codes"></a>

To mimic different scenarios, use these microdeposit amounts *or* 0.01 descriptor code values.

| MICRODEPOSIT VALUES | 0.01 DESCRIPTOR CODE VALUES | SCENARIO                                                         |
| ------------------- | --------------------------- | ---------------------------------------------------------------- |
| 32 and 45           | SM11AA                      | Simulates verifying the account.                                 |
| 10 and 11           | SM33CC                      | Simulates exceeding the number of allowed verification attempts. |
| 40 and 41           | SM44DD                      | Simulates a microdeposit timeout.                                |
| {% endtab %}        |                             |                                                                  |

{% tab title="SEPA debit" %}
Create a test `PaymentIntent` that either succeeds or fails by doing the following:

1. Create a test [PaymentMethod](https://docs.stripe.com/api/payment_methods) with a test account number.
2. Use the resulting `PaymentMethod` in a `confirmSepaDebitPayment` request to create the test charge.

**Austria**

| Account Number       | Description                                                                                                                                          |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| AT611904300234573201 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| AT321904300235473204 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| AT861904300235473202 | The PaymentIntent status transitions from `processing` to `requires_payment_method`                                                                  |
| AT051904300235473205 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| AT591904300235473203 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| AT981904300000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| AT601904300000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Belgium**

| Account Number   | Description                                                                                                                                          |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| BE62510007547061 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| BE78510007547064 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| BE68539007547034 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| BE51510007547065 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| BE08510007547063 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| BE90510000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| BE52510000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Croatia**

| Account Number        | Description                                                                                                                                          |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| HR7624020064583467589 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| HR6323600002337876649 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| HR2725000096983499248 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| HR6723600004878117427 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| HR8724840081455523553 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| HR7424020060000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| HR3624020060000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Estonia**

| Account Number       | Description                                                                                                                                          |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| EE382200221020145685 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| EE222200221020145682 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| EE762200221020145680 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| EE922200221020145683 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| EE492200221020145681 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| EE672200000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| EE292200000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Finland**

| Account Number     | Description                                                                                                                                          |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| FI2112345600000785 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| FI3712345600000788 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| FI9112345600000786 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| FI1012345600000789 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| FI6412345600000787 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| FI6712345600343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| FI2912345600121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**France**

| Account Number              | Description                                                                                                                                          |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| FR1420041010050500013M02606 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| FR3020041010050500013M02609 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| FR8420041010050500013M02607 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| FR7920041010050500013M02600 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| FR5720041010050500013M02608 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| FR9720041010050000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| FR5920041010050000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Germany**

| Account Number         | Description                                                                                                                                          |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| DE89370400440532013000 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| DE08370400440532013003 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| DE62370400440532013001 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| DE78370400440532013004 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| DE35370400440532013002 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| DE65370400440000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| DE27370400440000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Gibraltar**

| Account Number          | Description                                                                                                                                          |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| GI60MPFS599327643783385 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| GI08RRNW626436291644533 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| GI41SAFA461293238477751 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| GI50LROG772261344693297 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| GI26KJBC361883934534696 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| GI14NWBK000000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| GI73NWBK000000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Ireland**

| Account Number         | Description                                                                                                                                          |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| IE29AIBK93115212345678 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| IE24AIBK93115212345671 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| IE02AIBK93115212345679 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| IE94AIBK93115212345672 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| IE51AIBK93115212345670 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| IE10AIBK93115200343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| IE69AIBK93115200121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

Liechtenstein

| Account Number        | Description                                                                                                                                          |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| LI0508800636123378777 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| LI4408800387787111369 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| LI1208800143823175626 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| LI4908800356441975566 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| LI7708800125525347723 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| LI2408800000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| LI8308800000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

Lithania

| Account Number       | Description                                                                                                                                          |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| LT121000011101001000 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| LT281000011101001003 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| LT821000011101001001 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| LT981000011101001004 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| LT551000011101001002 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| LT591000000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| LT211000000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Luxembourg**

| Account Number       | Description                                                                                                                                          |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| LU280019400644750000 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| LU440019400644750003 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| LU980019400644750001 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| LU170019400644750004 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| LU710019400644750002 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| LU900010000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| LU520010000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Netherlands**

| Account Number     | Description                                                                                                                                          |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| NL39RABO0300065264 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| NL55RABO0300065267 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| NL91ABNA0417164300 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| NL28RABO0300065268 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| NL82RABO0300065266 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| NL27RABO0000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| NL86RABO0000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Norway**

| Account Number  |                                                                                                                                                      |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| NO9386011117947 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| NO8886011117940 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| NO6686011117948 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| NO6186011117941 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| NO3986011117949 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| NO0586010343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| NO0586010343434 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Portugal**

| Account Number            | Description                                                                                                                                          |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| PT50000201231234567890154 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| PT66000201231234567890157 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| PT23000201231234567890155 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| PT39000201231234567890158 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| PT93000201231234567890156 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| PT05000201230000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| PT64000201230000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Spain**

| Account Number           | Description                                                                                                                                          |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| ES0700120345030000067890 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| ES2300120345030000067893 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| ES9121000418450200051332 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| ES9300120345030000067894 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| ES5000120345030000067892 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| ES1700120345000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| ES7600120345000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Sweden**

| Account Number           | Description                                                                                                                                          |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| SE3550000000054910000003 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| SE5150000000054910000006 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| SE0850000000054910000004 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| SE2450000000054910000007 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| SE7850000000054910000005 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| SE2850000000000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| SE8750000000000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**Switzerland**

| Account Number        | Description                                                                                                                                          |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| CH9300762011623852957 | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| CH8656663438253651553 | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| CH5362200119938136497 | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| CH1843597160341964438 | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| CH1260378413965193069 | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| CH1800762000000343434 | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| CH7700762000000121212 | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |

**United Kingdom**

| Account Number          | Description                                                                                                                                          |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| GB82WEST12345698765432  | The PaymentIntent status transitions from `processing` to `succeeded`.                                                                               |
| GB98WEST12345698765435  | The PaymentIntent status transitions from `processing` to `succeeded` after at least three minutes.                                                  |
| GB55WEST12345698765433  | The PaymentIntent status transitions from `processing` to `requires_payment_method`.                                                                 |
| GB71WEST12345698765436  | The PaymentIntent status transitions from `processing` to `requires_payment_method` after at least three minutes.                                    |
| GB28WEST12345698765434  | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                         |
| GB70WEST12345600343434G | The payment fails with a `charge_exceeds_source_limit` failure code due to payment amount causing account to exceed its weekly payment volume limit. |
| GB32WEST12345600121212  | The payment fails with a `charge_exceeds_weekly_limit` failure code due to payment amount exceeding account's transaction volume limit.              |
| {% endtab %}            |                                                                                                                                                      |

{% tab title="Bacs debit" %}
There are several test bank account numbers you can use in [test mode](https://docs.stripe.com/keys#test-live-modes) to make sure this integration is ready.

| SORT CODE | ACCOUNT NUMBER | DESCRIPTION                                                                                                                                                                                                                                                 |
| --------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 108800    | 00012345       | The payment succeeds and the PaymentIntent transitions from `processing` to `succeeded`.                                                                                                                                                                    |
| 108800    | 90012345       | The payment succeeds after three minutes and the PaymentIntent transitions from `processing` to `succeeded`.                                                                                                                                                |
| 108800    | 33333335       | The payment is accepted but then immediately fails with a `debit_not_authorized` failure code and the PaymentIntent transitions from `processing` to `requires_payment_method`. The Mandate becomes `inactive` and the PaymentMethod can not be used again. |
| 108800    | 93333335       | The payment fails after three minutes with a `debit_not_authorized` failure code and the PaymentIntent transitions from `processing` to `requires_payment_method`. The Mandate becomes `inactive` and the PaymentMethod can not be used again.              |
| 108800    | 22222227       | The payment fails with an `insufficient_funds` failure code and the PaymentIntent transitions from `processing` to `requires_payment_method`. The Mandate remains `active` and the PaymentMethod can be used again.                                         |
| 108800    | 92222227       | The payment fails after three minutes with an `insufficient_funds` failure code and the PaymentIntent transitions from `processing` to `requires_payment_method`. The Mandate remains `active` and the PaymentMethod can be used again.                     |
| 108800    | 55555559       | The payment succeeds after three minutes and the PaymentIntent transitions from `processing` to `succeeded`, but a dispute is immediately created.                                                                                                          |
| 108800    | 00033333       | Payment Method creation succeeds, but the Mandate is refused by the customer’s bank and immediately transitions to inactive.                                                                                                                                |
| 108800    | 00044444       | The request to set up Bacs Direct Debit fails immediately due to an invalid account number and the customer is prompted to update their information before submitting. Payment details are not collected.                                                   |
| 108800    | 34343434       | The payment fails with a `charge_exceeds_source_limit` failure code due to the payment amount causing the account to exceed its weekly payment volume limit.                                                                                                |
| 108800    | 12121212       | The payment fails with a `charge_exceeds_weekly_limit` failure code due to the payment amount exceeding the account’s transaction volume limit.                                                                                                             |

You can test using any of the account numbers provided above. However, because Bacs Direct Debit payments take several days to process, use the test account numbers that operate on a three-minute delay to better simulate the behavior of live payments.

**Note**

By default, Stripe automatically sends [emails](https://docs.stripe.com/payments/payment-methods/bacs-debit#debit-notifications) to the customer when payment details are initially collected and each time a debit will be made on their account. These notifications aren’t sent in test mode.
{% endtab %}

{% tab title="BECS" %}
You can create a test `PaymentIntent` that either succeeds or fails by doing the following:

Create a test [PaymentMethod](https://docs.stripe.com/api/payment_methods) with the test `BSB 000-000` and a test account number from the list below. Use the resulting `PaymentMethod` in a `confirmAuBecsDebitPayment` request to create the test charge.

**Test account numbers**

| BSB NUMBER   | ACCOUNT NUMBER | DESCRIPTION                                                                                                                                                                                   |
| ------------ | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 000-000      | 000123456      | The PaymentIntent status transitions from `processing` to `succeeded`. The mandate status remains `active`.                                                                                   |
| 000-000      | 900123456      | The PaymentIntent status transitions from `processing` to `succeeded` (with a three-minute delay). The mandate status remains `active`.                                                       |
| 000-000      | 111111113      | The PaymentIntent status transitions from `processing` to `requires_payment_method` with an `account_closed` failure code. The mandate status becomes `inactive`.                             |
| 000-000      | 111111116      | The PaymentIntent status transitions from `processing` to `requires_payment_method` with a `no_account` failure code. The mandate status becomes `inactive`.                                  |
| 000-000      | 222222227      | The PaymentIntent status transitions from `processing` to `requires_payment_method` with a `refer_to_customer` failure code. The mandate status remains `active`.                             |
| 000-000      | 922222227      | The PaymentIntent status transitions from `processing` to `requires_payment_method` with a `refer_to_customer` failure code (with a three-minute delay). The mandate status remains `active`. |
| 000-000      | 333333335      | The PaymentIntent status transitions from `processing` to `requires_payment_method` with a `debit_not_authorized` failure code. The mandate status becomes `inactive`.                        |
| 000-000      | 666666660      | The PaymentIntent status transitions from `processing` to `succeeded`, but a dispute is immediately created.                                                                                  |
| 000-000      | 343434343      | The PaymentIntent fails with a `charge_exceeds_source_limit` error due to the payment amount causing the account to exceed its weekly payment volume limit.                                   |
| 000-000      | 121212121      | The PaymentIntent fails with a `charge_exceeds_transaction_limit` error due to the payment amount exceeding the account’s transaction volume limit.                                           |
| {% endtab %} |                |                                                                                                                                                                                               |

{% tab title="Others" %}
With other payment methods, testing information is included with the documentation. [Find your payment method](https://docs.stripe.com/payments/payment-methods/overview) and read the associated guide to accept and test payments
{% endtab %}
{% endtabs %}

### Link![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#link" id="link"></a>

**Caution**

Don’t store real user data in test mode Link accounts. Treat them as if they’re publicly available, because these test accounts are associated with your publishable key.

Currently, Link only works with credit cards, debit cards, and qualified US bank account purchases. Link requires domain registration.

You can create test mode accounts for Link using any valid email address. The following table shows the fixed one-time passcode values that we accept for authenticating test mode accounts:

| VALUE                               | OUTCOME                      |
| ----------------------------------- | ---------------------------- |
| Any other 6 digits not listed below | Success                      |
| 000001                              | Error, code invalid          |
| 000002                              | Error, code expired          |
| 000003                              | Error, max attempts exceeded |

#### Multiple funding sources![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg) <a href="#multiple-funding-sources" id="multiple-funding-sources"></a>

As we add additional funding source support, you don’t need to update your integration. We automatically support them with the same transaction settlement time and guarantees as card and bank account payments.
