> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionicfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Test cards

> Card numbers and behaviors for test mode.

Use these values with any test-mode checkout — hosted, embedded, or payment
links. Test payments never move money and never touch the card networks.

## Card numbers that approve

| Brand            | Number                | CVC          |
| ---------------- | --------------------- | ------------ |
| Visa             | `4111 1111 1111 1111` | Any 3 digits |
| Mastercard       | `5431 1111 1111 1111` | Any 3 digits |
| American Express | `3411 1111 1111 1111` | Any 4 digits |
| Discover         | `6011 0009 9130 0009` | Any 3 digits |

Use any future expiration date and any billing postal code.

## Simulating declines

| Do this                                             | Result                       |
| --------------------------------------------------- | ---------------------------- |
| Charge any amount under \$1.00                      | Declined (`generic_decline`) |
| Repeat the same card and amount within \~20 minutes | Declined as a duplicate      |

The duplicate rule exists to catch accidental double-submits, and it applies
in test mode too. If your test payment unexpectedly declines right after a
successful one, vary the amount and try again.

A declined test payment behaves exactly like a real decline: the checkout
session stays `open`, the buyer can retry in place, and the decline reason is
readable at `GET /v1/payment_intents/{id}` under `charges[0].decline_code`.

## What test mode does not simulate

* **3-D Secure challenges** — Ionic does not currently run 3DS flows, so
  there are no 3DS test cards. `payment_intent.requires_action` is defined in the
  webhook catalog but is not emitted.
* **Settlement timing** — test payments complete immediately.

## Going live

Test cards only work with test-mode keys (`sk_v1_test_...`). When you switch
to live keys, real cards are charged — see [Going live](/guides/going-live)
for the full checklist.
