How to Win a Stripe Dispute: Evidence Guide by Reason Code
The right evidence for each dispute type. Estimated win rates included.
Not all disputes are created equal. Each one comes with a reason code that tells you why the cardholder's bank initiated the chargeback. The evidence you submit should match the reason code exactly. Submitting generic evidence wastes your time and loses cases you could have won.
Here's what to submit for each reason code, and your realistic chances of winning.
fraudulent Estimated win rate: ~20%
The cardholder claims they didn't authorize the transaction. This is the most common reason code and the hardest to win.
Evidence to submit:
- AVS (Address Verification System) match confirmation
- CVV verification result
- IP address of the purchaser and geolocation data
- Device fingerprint or browser information
- 3D Secure authentication record (if used)
- Customer's purchase history on your platform (repeat buyer = stronger case)
- Any communication with the customer before or after purchase
Why the win rate is low: Card-issuing banks heavily favor the cardholder in fraud disputes. Without 3D Secure authentication, the liability sits with you. If you do have 3D Secure, submit that evidence first because it shifts liability to the issuer.
Prevention tip: Enable 3D Secure for all transactions above your average order value. The small conversion hit is worth the fraud liability protection.
product_not_received Estimated win rate: ~70% with tracking
The cardholder says they never got the product. This is one of the most winnable dispute types if you have shipping proof.
Evidence to submit:
- Shipping carrier name and tracking number
- Delivery confirmation showing the delivery date
- Signed proof of delivery (if available)
- The shipping address used (must match the billing address or the address the customer provided)
- Estimated delivery date communicated to the customer at checkout
Without tracking:Your win rate drops to about 20%. If you can't prove delivery, the bank sides with the cardholder.
Prevention tip: Always use tracked shipping. For high-value orders, require signature confirmation. Keep shipping confirmation emails as evidence.
duplicate Estimated win rate: ~60%
The cardholder says they were charged twice for the same thing.
Evidence to submit:
- Proof that the charges are for separate transactions (different order IDs, different dates, different products)
- Itemized receipts for each charge
- If the charges are genuinely different, show the distinct product descriptions and delivery dates
- If one charge was a refund that hasn't processed yet, show the refund receipt and expected processing date
Common cause:Subscription billing that overlaps with a one-time purchase. The customer sees two charges from the same merchant and assumes it's a duplicate.
Prevention tip: Use clear billing descriptors that differentiate between subscription charges and one-time purchases. Include the product name or order number in the descriptor.
subscription_canceled Estimated win rate: ~50%
The cardholder says they canceled their subscription but were still charged.
Evidence to submit:
- Your cancellation policy (as shown during signup)
- Evidence the customer agreed to your terms (checkbox, click-through agreement)
- Proof that the cancellation request was received after the charge date
- Record of when the customer actually requested cancellation
- Communication history showing the cancellation policy was explained
Common cause: Customer cancels mid-billing cycle and expects an immediate refund. Your policy charges through the end of the period.
Prevention tip:Send a cancellation confirmation email that clearly states the end date of their access. Make cancellation easy. A customer who can't find the cancel button files a dispute instead.
product_unacceptable Estimated win rate: ~40%
The cardholder received the product but says it doesn't match what was advertised.
Evidence to submit:
- Product description as shown on your website at the time of purchase
- Photos of the actual product shipped
- Proof of delivery matching the description
- Any customer communication about the issue (did they contact you before disputing?)
- Your return/refund policy
- Evidence that you offered a resolution (replacement, partial refund)
Key argument: If the customer never contacted you before filing the dispute, point that out. Banks look more favorably on merchants who offered to resolve the issue.
Prevention tip:Accurate product descriptions and photos. Respond to customer complaints within 24 hours. Offer easy returns. Customers who feel heard don't file disputes.
credit_not_processed Estimated win rate: ~55%
The cardholder says they returned the product or canceled the service but never received their refund.
Evidence to submit:
- Your refund policy
- Evidence that the refund was already issued (show the refund receipt and date)
- If the refund is still processing, show the expected timeline
- If the return was outside your policy window, provide your policy and the dates
Common cause:Refunds can take 5-10 business days to appear on the cardholder's statement. The customer files a dispute before the refund posts.
Prevention tip: When you issue a refund, email the customer with the refund amount, date, and expected processing time. This reduces disputes from impatient customers.
unrecognized Estimated win rate: ~35%
The cardholder doesn't recognize the charge on their statement.
Evidence to submit:
- Transaction receipt showing your business name and the product purchased
- Explanation of your billing descriptor (the name that appears on statements)
- Customer communication confirming the purchase
- Delivery confirmation
Common cause:Your billing descriptor doesn't match your brand name. If your company is “Acme LLC” but your website is “CoolGadgets.com”, the customer sees “ACME LLC” on their statement and doesn't recognize it.
Prevention tip:Set your Stripe billing descriptor to match the name customers know you by. Check it in Stripe Dashboard > Settings > Public details > Statement descriptor.
general Estimated win rate: ~30%
A catch-all code when the specific reason doesn't fit other categories.
Submit everything you have:
- Transaction receipt
- Delivery proof
- Customer communication
- Product description
- Terms of service
- Refund policy
- Any 3D Secure or AVS verification data
Prevention tip: Since the reason is vague, strong documentation across the board is your best defense.
General tips for all dispute types
Respond quickly.You typically have 7-21 days to submit evidence. Don't wait until the last day.
Be factual, not emotional.Banks review hundreds of disputes daily. Clear evidence wins. Lengthy explanations about how unfair the dispute is don't help.
Include screenshots. Show your checkout page, terms of service, shipping confirmation emails, and customer communication as screenshots. Visual evidence is easier for reviewers to process.
Keep records proactively.By the time you get a dispute, it's too late to create evidence. Log everything from day one: customer emails, delivery confirmations, signed agreements.
Know when to accept the loss.If the dispute is under $20 and you have weak evidence, accepting the dispute is cheaper than spending an hour compiling evidence you'll probably lose anyway. Focus your time on the disputes you can win.
ShieldScoreshows you each dispute's reason code, estimated win rate, and the specific evidence fields to fill in Stripe. Free on the Stripe App Marketplace.