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