ArticlesChargebacksChargeback reason codes, and the Shopify evidence that answers each one

Chargeback reason codes, and the Shopify evidence that answers each one

Ben Woodward

GM, Redo

Chargeback reason codes, and the Shopify evidence that answers each one

Two disputes land in the same week. One is coded 13.1. The other is coded 4837. A merchant who does not know the difference sends the same packet to both: order confirmation, invoice, a product photo. Both lose.

They lose for the same reason. Neither packet answers what was actually alleged, and the two codes were not alleging the same thing.

A reason code is not a filing category. It is the specific claim the cardholder made to their bank, and underneath the network-specific numbering there are only six claims in real circulation: never authorized, never arrived, not what was listed, cancelled and still billed, owed a credit that never came, or charged twice. Visa numbers these 10.x through 13.x. Mastercard numbers the same six claims 4837, 4855, 4853, 4841, 4860, and 4834. Shopify collapses both into the labels you actually see on a dispute in your admin. The number matters less than which of the six claims it maps to, because that claim is the only thing your evidence has to disprove.

What a reason code is actually asking you to prove

Every network runs its own rulebook, and the numbers differ because the rulebooks were written independently, not because the underlying disputes differ. Stripe's own dispute documentation, which maps reason codes across Visa, Mastercard, American Express, and Discover into shared categories, groups the bulk of consumer disputes into the same handful of allegations regardless of network: fraud, product not received, product unacceptable, subscription cancelled, credit not processed, and duplicate.

That grouping matters more than the digits. Evidence that answers "the cardholder never authorized this" (AVS results, an IP address, a device ID) does nothing for "the cardholder authorized it but never received it" (carrier tracking, a delivery scan, a matched address). Filing the wrong kind of proof is the single most common reason a winnable case loses, and it is the same argument behind chargeback representment explained without the vendor spin: evidence has to contradict the specific accusation, not describe the order.

The evidence matrix, Visa and Mastercard codes mapped to Shopify

Read the row for the label on your actual dispute, not the one you assume it is. Reason codes get revised and renumbered by both networks, so treat the numbers below as current as of this check and confirm against the live dispute record before you build a packet from them.

Shopify calls itReason code (Visa / Mastercard)What the cardholder is allegingShopify-native evidence that answers itCounts toward VAMP?
Fraudulent10.4 / 4837Someone other than the cardholder made this chargeAVS and CVV match results, the purchase IP address, device ID, and for repeat customers, two prior undisputed transactions on the same card dated 120 to 364 days earlier (Compelling Evidence 3.0)Only the TC40 fraud report is excluded, and only if it separately qualifies for CE 3.0, contingent on timing. The chargeback itself is still a TC15 count
Product not received13.1 / 4855Nothing arrivedCarrier tracking showing a delivery scan, the delivery address matched to the order's shipping address, a signature or delivery photo where the carrier captured oneYes, no exclusion
Product unacceptable13.3 / 4853What arrived was wrong, damaged, or not what was listedThe product page copy and images as of the purchase date, the variant and spec actually ordered, the support thread or its absenceYes, no exclusion
Subscription canceled13.2 / 4841Billed after cancelling, or never agreed to the recurring chargeThe terms accepted at signup, the cancellation log showing nothing filed before the renewal, the renewal notice, account activity after the renewal dateYes, no exclusion
Credit not processed13.6, 13.7 / 4860Returned the item or was promised a refund that never postedThe refund and return policy, the actual refund transaction and its timestamp, the message that promised itYes, no exclusion, and check your own ledger before you argue the refund went out
Duplicate12.6.1, 12.6.2 / 4834Charged twice for the same purchaseTransaction records for both charges showing two distinct orders or services, or an explanation of why one charge legitimately covers bothYes, no exclusion

Shopify's own reason list has two more labels this matrix leaves out on purpose. Unrecognized is functionally the fraud claim under a different name (the cardholder does not recognize the descriptor, not the goods), and General is Shopify's catch-all for a dispute that has not yet declared which of the six it actually is, so the first job on a general dispute is finding out.

The same six claims, numbered differently by network

Visa spreads the fraud allegation across 10.1 through 10.5 depending on the specific fraud circumstance, with 10.4 (other cardholder-not-present fraud) the one that comes up most for ecommerce. Mastercard folds a comparable set of claims into 4837 plus a few adjacent codes it uses for closely related circumstances. Neither network's split changes what you have to prove: that the cardholder, not a stranger, was behind the purchase.

The same pattern holds for the other five rows. Visa treats a missed refund and a cancelled order as two flavors of one complaint, 13.6 and 13.7, where Mastercard uses a single 4860. American Express and Discover run their own numbering again, though Stripe's mapping lands them in the same six buckets. Six correct evidence packets beat memorizing thirty codes across four networks, which is the case for a Shopify-native matrix over a per-network cheat sheet. When your volume sits mostly on one network, the per-network references go code by code: the Visa reason codes and Mastercard reason codes breakdowns.

Assembling any one of these packets by hand runs 20 to 45 minutes once you count pulling the carrier record, the support thread, and the order data into one place. Reclaim reads the reason code off the dispute and assembles the matching evidence automatically, without an install fee or a cut of what comes back. The lookup above is the same mapping it runs against.

Which of these actually count against your VAMP ratio

This is the part most reason-code roundups skip, and it is the reason the table above has a VAMP column at all.

Visa's Acquirer Monitoring Program fact sheet defines the VAMP ratio as the count of fraud (TC40) plus disputes (TC15), divided by the count of settled transactions (TC05). Its stated exclusions are narrow: disputes resolved through pre-dispute solutions, and TC40 fraud that qualifies for Compelling Evidence 3.0, both contingent on the timing of the data extract.

That is why five of the six rows above show a flat yes. Product not received, product unacceptable, subscription cancelled, credit not processed, and duplicate carry no reason-code exclusion in Visa's framework. They count the day the chargeback lands, and winning the representment recovers the money without touching the count. Only the fraud row has anything resembling an out, and it is conditional, not automatic.

This piece uses Visa's numbers because Visa publishes a current, public fact sheet stating the ratio formula and thresholds plainly. Mastercard runs a comparable monitoring framework with different mechanics and thresholds of its own. If most of your dispute volume sits on one network, that network's own monitoring program is worth reading separately from this cross-network matrix.

The honest part

Matching the right evidence to the right code improves your odds. It does not guarantee a ruling. The issuer decides, and no vendor, including one quoting this matrix, can promise an outcome for a specific case.

The numbers above will drift. Both networks revise reason codes over time, and Shopify's labels can shift with them. Pull the current dispute rules for the network on your case before building a packet from a saved list, this one included. This matrix also does not cover American Express or Discover in the same depth. If your processor mix leans on either, confirm their codes directly rather than assuming the mapping above transfers exactly.

One more limit worth stating. This matrix assumes you can build the evidence packet once you know which allegation you are answering; if you have not read the reason code on the actual dispute record yet, start there before the matrix above does you any good.

Frequently asked questions

Do Visa and Mastercard use the same reason code numbers?

No. The digits differ by network, for example Visa 13.1 versus Mastercard 4855 for product not received, but both are alleging the same thing. Match the allegation, not the number, when you decide what evidence to attach.

Does winning a dispute remove it from my VAMP ratio?

No, with one narrow exception. Visa's Acquirer Monitoring Program fact sheet excludes only a TC40 fraud report that separately qualifies for Compelling Evidence 3.0, contingent on timing. Every other reason code, including ones you fight and win, counts as a dispute the day it is filed.

What does Shopify call reason code 13.1 or 4855?

Product not received. Shopify sorts every dispute into one of eight labels: Fraudulent, Unrecognized, Duplicate, Subscription canceled, Product not received, Product unacceptable, Credit not processed, or General, each mapping to network-specific codes behind the scenes.

Which evidence answers a product unacceptable claim?

The product page copy and images exactly as they stood on the purchase date, the variant and specification the customer actually ordered, and the support thread, or the fact that none exists. A current product page proves nothing about what was listed when the order was placed.

The check to run against your own disputes

Pull last quarter's chargebacks and sort them by the actual reason code on the record, not by a label someone typed into a spreadsheet. For each one, find its row in the matrix above and ask whether what you submitted matches that row's evidence column or just proves the order was real. The gap between those two answers is usually where a recoverable case turned into a loss.