Chargeback Reason Codes Explained (for Shopify Merchants)
Every chargeback arrives with a reason code. It's the single most important thing on the dispute.
And most merchants never look at it.
They open the dispute email, see the amount, get angry, and start writing a response about how unfair this is. The reason code sits right there at the top, telling them exactly what evidence would win. Ignored.
So this post is the breakdown I wish existed when I started reading merchant chargeback responses. What each code means, what the bank actually checks for it, and what to send.
What a reason code actually is
When a customer disputes a charge, their bank has to file the dispute under a category. Visa, Mastercard, Amex and Discover each have their own numbering systems for this. Visa 10.4 is card-absent fraud. Mastercard 4853 is a cardholder dispute. There are dozens of them.
You don't need to memorize any of that.
Shopify Payments translates the network codes into plain-English reasons before you see them. So instead of "Visa 13.1" you see "Product not received." Same dispute, readable label.
The part that matters: the reason code decides your evidence checklist. A bank reviewer picks up your case, looks at the code, and checks whether your evidence answers that specific claim. Not whether you sound right. Whether the checklist is satisfied.
Different code, different checklist. Here's each one.
Fraudulent
This is the most common code on Shopify โ and the one most likely to be friendly fraud: a real customer who forgot the purchase, didn't recognize your billing descriptor, or wants the item free.
The reviewer is checking one thing: is there a credible link between the cardholder and this order?
Evidence that wins
If shipping and billing addresses match and AVS passed, say so in the first line. That combination alone wins a large share of friendly-fraud disputes.
Product not received
The reviewer wants proof of delivery โ not proof of shipment. A label scan means nothing; a delivery scan to the right address means everything.
Evidence that wins
Product unacceptable / not as described
This is the code where your product page from the purchase date decides the outcome. The reviewer compares what you promised with what the customer says they got.
Evidence that wins
Key argument: most networks expect the customer to attempt a return first. If they skipped straight to the bank, say so.
Subscription canceled
Evidence that wins
Credit not processed
If the refund genuinely wasn't issued and should have been, refund it โ don't fight it. Fight when the claim doesn't match your records:
Evidence that wins
Duplicate / unrecognized
For duplicates: show the two charges are for two separate orders โ different order numbers, items, or timestamps. If it genuinely was a double charge, refund one immediately.
"Unrecognized" is usually a billing-descriptor problem. Respond like a fraud dispute (link the cardholder to the order), and fix your descriptor so it matches your store name.
The takeaway
Winning a chargeback isn't about writing a passionate defense. It's about reading one field โ the reason code โ and answering its checklist, line by line, before the deadline.
That's mechanical work. Which is exactly why it should be automated.
Fight every reason code automatically
ChargebackWiz reads the code, assembles the matching evidence packet, and submits it before your deadline. You only pay when we win.
Install free on Shopify