## TL;DR
The stored card needs its CVC re-entered; Stripe will not let you charge without it. Send the customer a payment link or a SetupIntent session to re-enter card details (CVC at minimum), then retry the invoice once the method updates. Do not guess CVC values.

```text
incorrect_cvc
```

## Use this when
- An invoice payment fails with decline code incorrect_cvc on a saved card.
- The card worked before but now the issuer demands a fresh CVC.
- You need a customer-facing flow to collect corrected card details.

## Not for this skill when
- The decline is incorrect_number or invalid_expiry. The whole card is wrong, not just the CVC.
- You are collecting card details for the first time. That is a normal checkout, not a correction.

## Steps
1. ('Confirm the decline code is incorrect_cvc on the latest invoice attempt. Verify: the card itself is still valid and not expired.', 'Generate a way for the customer to update the card: a Stripe-hosted invoice payment page or a SetupIntent collection form. Verify: the page requests card details, not just confirmation.', 'Have the customer re-enter the card number plus CVC (issuers often require the full re-entry). Verify: the payment method object updates on the customer.', 'Retry the invoice payment once the new details are attached. Verify: the invoice moves to paid, not failed.', 'Remove or replace the old stored method if it is stale. Verify: future invoices default to the working method.')

## Variant phrasings
### stripe incorrect_cvc saved card
The common search.

### update cvc stripe invoice failed
Action phrasing.

### stripe cvc check failed subscription renewal
Renewal-context phrasing.


Compatibility: Stripe Payments and Billing APIs. CVC re-collection flows use Checkout, Payment Links, or Elements with a SetupIntent.

## Why it happens
Card networks and some issuers periodically demand the CVC again even on stored cards, especially after fraud flags, account changes, or CVC-check rule changes in your Stripe Radar settings. Stripe stores the card number and expiry but never stores the CVC, so nobody can charge without the customer typing it. incorrect_cvc on a saved card almost always means the issuer is now requiring a fresh CVC, not that the stored number is wrong.

## Edge cases / pitfalls
- Never retry with guessed CVC values. Repeated wrong CVC attempts can lock the card.
- incorrect_cvc after a customer re-entered the card points at a real mismatch; ask them to check the card.
- If CVC checks are failing account-wide, review Radar rules: an overly strict CVC rule turns good customers into support tickets.
- Customers hate re-entering full card details. Say plainly "your bank is asking us to re-verify the security code."

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_rTYa5BjJu5RzBC31SLCc8A
