Test cards
Use these with a key beginning
sk_test_. Nothing here moves real money.| Number | Expiry | CVC | What happens |
|---|---|---|---|
4000001111111118 | 12/30 | 123 | Succeeds |
4111111111111111 | 12/24 | 123 | Succeeds |
4444444411111111 | 12/24 | 123 | Declined |
5555555555555599 | 12/24 | 123 | Asks the cardholder to authenticate (3-D Secure) |
What a decline looks like
The payment goes back to requires_payment_method and carries a last_payment_error with a decline_code you can show the customer. The checkout session stays open, so they can try another card without you creating anything new.
What authentication looks like
The payment sits at requires_action while the cardholder’s bank asks them to confirm. It is not a failure and it is not finished — wait for the webhook rather than reading the status once and deciding.
Test and live are separate sets of books. A test payment can never appear in your live totals, and a test key cannot read live data.