incorrect_cvc on Stripe: what it means and what actually fixes it | RecoverFlow

Guide

incorrect_cvc on Stripe: what it means and what actually fixes it

Last updated 12 August 2026 · written by Bruce McGinley, who builds RecoverFlow

Short answer

The security code did not match. Stripe's decline codes reference: the CVC number is incorrect, and the customer needs to try again using the correct CVC.

That makes this one of the few decline codes where the fix is entirely in the customer's hands. A retry resubmits the same stored details, and the same wrong CVC gets the same answer.

At checkout versus on a renewal

At checkout this code is almost good news. The card is real enough for the issuer to check the code against it; the customer mistyped three or four digits. Stripe's Checkout surfaces the error and lets them try again on the spot, and most do.

On a subscription renewal it is stranger, because renewals charge a saved payment method and nobody is typing anything. If a stored card starts failing this way, the stored details and the issuer's records no longer agree, and the practical remedy is the same one Stripe documents: the customer enters their card again, correctly. That is a dunning email's job, not a retry schedule's.

Will Stripe retry it?

Yes. incorrect_cvc is not one of the nine codes that stop Stripe executing retries, so scheduled retries continue. Just be clear about what a retry can and cannot do here: it resubmits what is on file. If what is on file is the problem, the schedule is not the tool that fixes it.

incorrect_cvc versus invalid_cvc

Stripe's reference lists both codes with the same description, the CVC number is incorrect, and the same next step, try again with the correct CVC. For your handling logic they are the same situation: the customer has to re-enter the code, and nothing on your side can do it for them.

Questions people actually ask

Is incorrect_cvc a hard decline?

It is not on Stripe's list of nine codes that stop retries, so Stripe will keep retrying it on schedule. But the condition does not fix itself with time: the stored security code is wrong, and only the customer can supply the right one.

What is the difference between incorrect_cvc and invalid_cvc?

Stripe's decline codes reference gives both the same description, the CVC number is incorrect, and the same next step, the customer tries again with the correct CVC. Treat them identically.

Why did a subscription renewal fail with incorrect_cvc?

Renewals charge the saved payment method, so a CVC mismatch on a renewal means the stored details and the issuer's records disagree. The fix Stripe documents is the customer re-entering the correct card details, which for a subscription means a dunning email with an update link.

What should I ask the customer to do?

Exactly what Stripe's docs say: try again using the correct CVC. In practice, send them a link to re-enter their card rather than asking them to reply with anything.

Where this came from

Checked against primary sources on 12 August 2026. If Stripe changes something and this page has not caught up, tell us and it gets fixed.

If you would rather not build this yourself

RecoverFlow watches your Stripe account for failed subscription payments, stops retrying the ones that cannot succeed, and emails the customers whose card simply needs replacing. It charges 25% of what it can attribute to a specific action it took, with a $29 monthly floor and a $299 monthly ceiling, and the floor is waived for the first 30 days.

It is early. It is run by one person. If Stripe's own free retry settings are enough for you, use those instead, and there is a page on this site that says exactly when that is the right call.

See how the pricing works