Short answer

Stripe does not publish a test card called "v10." Stripe test cards are identified by card number, not by a version tag. On any Stripe test card, the CVC field accepts any three digits, and American Express test cards accept any four digits. A "v10" label in most search results points to a client library major version or an API version string, not to a card number. If you need a working test payment, pick a standard test number and type any 3 digits in the CVC box.

Stripe Test Card CVV V9: A Comprehensive Guide

How the test CVC rule works

In test mode, Stripe bypasses real issuer checks. The card number decides the outcome of the charge. The CVC, expiry, and postal code only need to be well formed, so the values you enter are not validated against a bank. This is why a test card with the CVC 123, 000, or 999 all produce the same result.

more on this topic

  1. Open the Stripe Dashboard and confirm the toggle in the top right reads Test mode.
  2. Retrieve a test secret key from the Developers section and load it into your test environment.
  3. Enter a standard test card number, such as the Visa test number that approves every charge.
  4. Type any 3 digits into the CVC field, or 4 digits if you selected an Amex test number.
  5. Enter any future expiry date, for example 12/34.
  6. Submit the payment and confirm the response object returns a succeeded status.

Why "v10" appears in searches

Stripe API versions use date strings, such as 2024-06-20, and they are pinned per request or per account. Client libraries carry separate semantic versions. A project on stripe-node v10, for example, sends a dated API version header behind the scenes. That mismatch is what sends people looking for a "v10 test card." The fix is version pinning, not a different card.

Stripe Test Card CVV V7 Guide: Everything You Need to Know

Common errors and fixes

  • Card declined in test mode: you are likely using a live key or a card number reserved for decline simulations.
  • CVC invalid error: your test card number is malformed, or you typed letters instead of digits.
  • Expired card error: the test expiry date is in the past, so use a future year.
  • Authentication required error: the test number triggers 3D Secure, so use the corresponding challenge flow.
  • Charge succeeds but no webhook fires: your endpoint is not registered for test events.

Verification checklist

  1. Confirm the publishable and secret keys both carry the test prefix.
  2. Run one approving test card and one declining test card to prove both paths work.
  3. Log the returned charge ID and status code in your test logs.
  4. Replay a test webhook from the Dashboard to confirm your handler responds with a 2xx code.
  5. Remember that real cardholder data must never be stored after authorization.