Test cards
Download the complete public OpenAPI schema
Test cards
In test mode, use these cards to simulate the full enrollment and payment lifecycle without moving real money. Use any valid future date for expiration and any 3-digit CVC. Currently, only Visa and Mastercard cards are eligible for Agentic enrollment. Agentic credentials allow agents to use one-time credentials with spending limits. For ineligible cards, the user must re-enter their CVC code for every purchase.
Test Cards
The Identifier column doubles as a backend-only shortcut for scripted sandboxes: in test mode you may send a value from that column as vault_token_id on POST /v1/profiles/{profile_id}/payment_methods instead of running the Elements iframe. The server resolves the identifier to the registered PAN, mints a real card vault token (expiry 01/30, CVC 111), and threads it through the rest of the flow. Live-mode requests that send a test-card identifier are rejected with 400 test_card_identifier_not_allowed_in_live_mode.
| Brand | Identifier | Number | Enrollment | OTP / Verification |
|---|---|---|---|---|
| Visa | visa_auto_approved |
<code data-card>4242 4242 4242 4242</code> | Auto-approved | Not required |
| Visa | visa_otp_passkey |
<code data-card>4000 0000 0000 0002</code> | Succeeds | OTP required — triggers passkey creation |
| Visa | visa_otp_passkey_alt |
<code data-card>4000 0200 0000 0000</code> | Succeeds | OTP required — triggers passkey creation |
| Visa | visa_otp_no_passkey |
<code data-card>4000 0566 5566 5556</code> | Succeeds | OTP completes without passkey creation |
| Visa | visa_otp_required |
<code data-card>4711 3588 9278 5746</code> | Succeeds | OTP required |
| Visa | visa_otp_invalid |
<code data-card>4929 9803 9556 7582</code> | Succeeds | OTP always returns INVALID_OTP error |
| Visa | visa_otp_max_attempts |
<code data-card>4916 7252 9792 5395</code> | Succeeds | OTP returns MAX_ATTEMPTS_EXCEEDED error |
| Visa | visa_provider_failure |
<code data-card>4000 0000 0000 3063</code> | Provider step fails (retryable) | — |
| Visa | visa_token_failure |
<code data-card>4000 0000 0000 3071</code> | Token provisioning fails (retryable) | — |
| Visa | visa_rejected |
<code data-card>4330 2512 0750 6660</code> | Rejected — network verification failure | — |
| Visa | visa_ineligible |
<code data-card>4539 0978 8716 3333</code> | Ineligible | — |
| Visa | visa_issuer_declined |
<code data-card>4929 5442 4031 8920</code> | Declined by issuer | — |
| Mastercard | mastercard_popup |
<code data-card>5555 5555 5555 4444</code> | Succeeds | Popup challenge required |
| Mastercard | mastercard_auto_approved |
<code data-card>5200 8282 8282 8210</code> | Auto-approved | Not required |
| Mastercard (2-series) | mastercard_2_series_popup |
<code data-card>2223 0031 2200 3222</code> | Succeeds | Popup challenge required |
| Mastercard | mastercard_popup_alt |
<code data-card>5425 2334 3010 9903</code> | Succeeds | Popup challenge required |
| Mastercard | mastercard_ineligible |
<code data-card>5105 1051 0510 5100</code> | Ineligible | — |
| American Express | amex_ineligible |
<code data-card>3700 000000 00002</code> | Ineligible | — |
| Discover | discover_ineligible |
<code data-card>6011 0000 0000 0004</code> | Ineligible | — |
Test CVCs
Use these identifiers on temporary_cvc_token_id (purchase-intent approval) when you also drove the saved card from the test-card shortcut above. The identifier carries the CVC length so 3-digit and 4-digit (Amex) flows stay distinct. Live-mode requests that send a test-CVC identifier are rejected with the same test_card_identifier_not_allowed_in_live_mode error.
| Identifier | CVC | Use with |
|---|---|---|
cvc_3_digit |
111 |
Visa / Mastercard / Discover test cards |
cvc_4_digit |
1111 |
Amex test cards |