Stripe incorrect_cvc — recovery guide

The CVC saved with the card doesn't match. Retrying won't help — the customer needs to re-enter card details. Simple fix, if you email quickly.

TL;DR

Don't retry. Send a Billing Portal link and ask the customer to re-enter card details (takes 20 seconds). Usually recovers same-day if you email within the first hour.

What incorrect_cvc means

incorrect_cvc means the CVC (the 3-digit code on the back of most cards, or 4-digit on Amex) that was saved alongside the card number does not match what the issuing bank expects. The bank refuses the charge on the assumption that whoever provided the CVC doesn't physically have the card — which is exactly what the CVC is supposed to prove.

Because the CVC is stored with the saved payment method, retrying the charge uses the same wrong CVC and fails the same way. The customer has to re-collect their card.

Why it happens

Recovery playbook

  1. Email within 1 hour — the customer usually remembers adding the card and can fix it quickly.
  2. Use a friendly tone — this is a typo, not a dispute. Keep it light.
  3. Billing Portal link is the whole fix — they re-enter card details, CVC gets overwritten, problem solved.
  4. Don't auto-retry — disable Stripe Smart Retries for incorrect_cvc, it just wastes attempts.
  5. Second email at +48h, SMS at +4d if no response.

What to tell the customer

Hi [name], it looks like there might be a typo with your saved card — the security code didn't match when we tried to charge. Takes 20 seconds to fix: click below, re-enter your card, done.

[Update payment method →]

Notice the framing: "might be a typo" rather than "your CVC is wrong." Softer phrasing, faster response rate.

Related decline codes

Auto-recover CVC typos with one email

RecoverKit sends the right email within an hour of each decline type. $19/mo, 7-day free trial.

Start Free Trial →