Stripe Chargeback Reason Codes: Complete Guide
Every Stripe dispute comes with a reason code that tells you what the cardholder claimed. The reason code determines what evidence you need. Here is every major code and what wins.
Contents
Every Stripe dispute arrives with a reason code. The reason code tells you exactly what the cardholder claimed when they filed the dispute with their bank. The evidence you need to win is determined almost entirely by that reason code.
Submitting the wrong evidence for the wrong reason code is the most common reason merchants lose winnable disputes. This guide covers every major reason code on Stripe, what it means, and what wins.
How reason codes work on Stripe
Stripe translates card network reason codes (which vary between Visa, Mastercard, and Amex) into a standardized set of dispute reason labels visible in your dashboard. The underlying network code determines the specific evidence requirements, but Stripe's labels map closely enough that you can use them to guide your response.
Fraudulent (unauthorized transaction)
The most common reason code for subscription businesses. The cardholder claims they did not authorize the charge.
This covers both genuine fraud (the card was stolen and someone else made the charge) and friendly fraud (the legitimate cardholder is disputing a charge they actually made).
What wins:
- AVS and CVV match on the original transaction
- IP address and device fingerprint from the original signup and subsequent logins
- Prior undisputed charges on the same card
- Customer login activity during the disputed billing period
- Visa Compelling Evidence 3.0: What It Is and How to Use It evidence if two prior undisputed transactions exist in the 120 to 365 day window
Subscription cancelled
The cardholder claims they cancelled before the disputed charge.
What wins:
- Your cancellation policy shown clearly at signup
- System logs showing no cancellation request was received before the billing date
- Login activity showing the customer used the product after the date they claim to have cancelled
- Cancellation confirmation email records (or the absence of one being sent, proving no cancellation was processed)
- Terms of service with the cancellation process highlighted
Product not received / service not provided
The cardholder claims they did not receive what they paid for.
For SaaS, this usually means the customer is claiming the service was unavailable or not delivered.
What wins:
- Access logs showing the customer logged in and used the product during the disputed period
- Uptime records showing service availability
- Feature usage data
- Any support tickets filed (or the absence of complaints before filing the dispute)
Not as described
The cardholder claims the product or service was materially different from what was advertised.
What wins:
- Screenshots of your product description at the time of purchase
- Your terms of service
- Usage logs showing the customer had access to what was described
- Any communication where the customer acknowledged receiving the service
Credit not processed
The cardholder claims a refund was promised but never issued.
What wins:
- Documentation showing no refund was promised, or
- If a refund was promised, evidence it was processed: Stripe refund ID, date, amount
- Customer communication records showing the refund conversation and outcome
For disputes where a refund was genuinely owed and not processed, accepting the dispute is usually the right call.
Duplicate transaction
The cardholder claims they were charged twice for the same purchase.
What wins:
- Evidence that two separate transactions represent two separate events (two different billing periods, two separate subscriptions, or two separate products)
- If it was a genuine duplicate, accepting the dispute and issuing the refund is the correct response
General / other
A catch-all for disputes that do not fit other categories.
What wins:
- A clear rebuttal letter explaining why the charge was valid
- Documentation specific to the customer's actual complaint, which you may need to determine by reviewing any prior communication
How to find your dispute reason code on Stripe
When a dispute comes in, open it in your Stripe dashboard. The reason label is displayed prominently at the top of the dispute detail page. The specific network reason code is also available for merchants who want to reference the underlying Visa or Mastercard code directly.
The deadline for response is also displayed at the top. Check the deadline first. What to submit depends entirely on the reason code, and submitting evidence for the wrong code almost always loses.
- Where do I find the reason code for a Stripe dispute?
- In the Stripe dashboard under the dispute detail page. The reason label is displayed at the top, with the response deadline.
- What is the most common dispute reason code for SaaS?
- Subscription cancelled and fraudulent (unauthorized transaction) are the most common for subscription businesses.
- Does the reason code determine what evidence I need to submit?
- Yes. The evidence requirements vary significantly by reason code. Submitting evidence designed for a fraudulent dispute when the reason code is subscription cancelled will likely result in a loss.
- What happens if I submit the wrong evidence?
- The issuer will likely rule in the cardholder's favor. Reason code mismatch is the most common cause of merchants losing winnable disputes.
- Can I win a dispute without submitting evidence?
- No. An uncontested dispute is an automatic loss.