Test cards for Playwright
Drive a payment form in Playwright with a deterministic test card. Use a decline number to assert your error-handling path.
Example
Playwright · ts
// tests/checkout.spec.ts
import { test, expect } from "@playwright/test";
const SUCCESS = "4242424242424242"; // Visa, succeeds
const DECLINE = "4000000000000002"; // generic decline
test("checkout succeeds", async ({ page }) => {
await page.goto("/checkout");
const frame = page.frameLocator("iframe").first();
await frame.getByPlaceholder("Card number").fill(SUCCESS);
await frame.getByPlaceholder("MM / YY").fill("12/34");
await frame.getByPlaceholder("CVC").fill("123");
await page.getByRole("button", { name: "Pay" }).click();
await expect(page.getByText("Payment succeeded")).toBeVisible();
});Test card numbers
The standard Stripe test numbers — successes and declines you can wire into your Playwright suite.
Successful payments
Cards that complete a charge in test mode.
| Number | Brand | CVC | Behavior (test mode) |
|---|---|---|---|
4242 4242 4242 4242 | Visa | any 3 digits | Succeeds and immediately processes the payment. |
4000 0566 5566 5556 | Visa (debit) | any 3 digits | Succeeds; card type is debit. |
5555 5555 5555 4444 | Mastercard | any 3 digits | Succeeds and immediately processes the payment. |
2223 0031 2200 3222 | Mastercard (2-series) | any 3 digits | Succeeds; tests the 2221–2720 range. |
5200 8282 8282 8210 | Mastercard (debit) | any 3 digits | Succeeds; card type is debit. |
5105 1051 0510 5100 | Mastercard (prepaid) | any 3 digits | Succeeds; card type is prepaid. |
3782 822463 10005 | American Express | any 4 digits | Succeeds; 15-digit PAN, 4-digit CID. |
3714 496353 98431 | American Express | any 4 digits | Succeeds; alternate Amex test number. |
6011 1111 1111 1117 | Discover | any 3 digits | Succeeds and immediately processes the payment. |
3056 9300 0902 0004 | Diners Club | any 3 digits | Succeeds; 14-digit Diners Club. |
3566 0020 2036 0505 | JCB | any 3 digits | Succeeds and immediately processes the payment. |
6200 0000 0000 0005 | UnionPay | any 3 digits | Succeeds and immediately processes the payment. |
Declines & errors
Trigger specific decline codes to test your error handling.
| Number | Brand | CVC | Behavior (test mode) |
|---|---|---|---|
4000 0000 0000 0002 | Visa | any 3 digits | Charge is declined with a generic decline code. |
4000 0000 0000 9995 | Visa | any 3 digits | Declined: insufficient_funds. |
4000 0000 0000 9987 | Visa | any 3 digits | Declined: lost_card. |
4000 0000 0000 9979 | Visa | any 3 digits | Declined: stolen_card. |
4000 0000 0000 0069 | Visa | any 3 digits | Declined: expired_card. |
4000 0000 0000 0127 | Visa | any 3 digits | Declined: incorrect_cvc. |
4000 0000 0000 0119 | Visa | any 3 digits | Declined: processing_error. |
4100 0000 0000 0019 | Visa | any 3 digits | Declined: flagged as fraudulent (Radar). |
Use any future expiry date (e.g. 12 / 34) and any postal code. Behaviors shown are for Stripe’s test mode; other processors publish their own test numbers. These cards are non-functional fixtures — they will be declined in production.