Businessmen in a modern office setting, sealing a deal with a handshake against a city backdrop.
Article

How to Fight Chargebacks: Step-by-Step

A merchant-executable playbook: read the reason code, build the right evidence, write a rebuttal that answers the actual claim, and submit through Shopify Admin before the deadline disappears.

DE

DisputeDesk Editorial

Jun 11, 2026
10 min read
English

Before you open the order, open the dispute record

A chargeback appears in Shopify Admin → Orders → Disputes. The instinct is to go straight to the order — pull tracking, screenshot the confirmation, start building a file. That sequence is backwards. The order tells you what happened. The dispute record tells you what you have to prove, and those are not the same question.

Open the dispute first. Read the reason code. Read the cardholder's stated reason if your processor surfaces it. Only then does the order become useful, because now you know which facts in that order are actually relevant to the claim being made against you.

Everything in this playbook follows that sequence: diagnose the claim, then build the response.

Step 1: Map the reason code to the actual assertion

Reason codes sort into a small number of claim families, and each family requires a different evidence strategy. Conflating them is one of the most common reasons merchants lose disputes they should win.

  • Unauthorized transaction (Visa 10.4, Mastercard 4837, Amex FR2): The cardholder is asserting they did not make the purchase. Your job is to prove the transaction was authorized — not that the item was delivered, not that your policy is clear, but that the person who placed the order had authority to use that card.
  • Item not received (Visa 13.1, Mastercard 4855): The cardholder is asserting non-delivery. Proof of shipment is not proof of delivery. You need carrier confirmation of delivery to the address on the order, and ideally a timestamp.
  • Not as described / significantly not as described (Visa 13.3, Mastercard 4853): The cardholder is asserting the product differed materially from what was represented. Your evidence has to address the specific discrepancy claimed — not just show the product exists.
  • Credit not processed (Visa 13.7, Mastercard 4860): The cardholder is asserting a refund was promised or owed and never issued. If you issued it, show the transaction record. If you didn't, explain why under your policy.
  • Subscription / recurring billing (Visa 13.2, Mastercard 4854): The cardholder is asserting they cancelled or were charged without consent. Your evidence needs to show the authorization chain — original signup, recurring consent language, and cancellation (or absence of it) in your system.

Misreading the code at this step means every subsequent hour of work is spent answering the wrong question. If the reason code is ambiguous or your processor's description is vague, check the network's published dispute resolution guide — Visa's is the Visa Core Rules and Visa Product and Service Rules; Mastercard's is the Chargeback Guide. Both are publicly available.

Step 2: Check the deadline before you do anything else

Shopify Admin → Orders → Disputes shows a response deadline. That date is not a suggestion. Card networks set hard response windows — typically somewhere between 7 and 30 calendar days from the dispute date, depending on the network, your acquirer, and in some cases the reason code. Confirm the exact window with your processor; Shopify surfaces what your acquirer reports, and there can be a lag of a day or two between when the dispute was filed and when it appears in your dashboard.

Build in a two-day buffer from whatever deadline is displayed. Carrier signature delays, file upload failures, and internal approval loops have killed otherwise strong cases by pushing submission to the last possible hour. If you are within 48 hours of the deadline and your evidence is incomplete, you face a real decision.

Decision point: Submit now with partial evidence, or concede?

If the deadline is imminent and your evidence package is thin, you have two paths — and neither is obviously correct.

Path A: Submit what you have. A partial submission preserves your right to respond. Some issuers will rule on incomplete evidence if what you do submit is compelling. The risk: a weak submission can actively hurt you in pre-arbitration or arbitration if the case escalates, because you've already shown your hand and the issuer has already ruled against you once.

Path B: Concede deliberately. If the transaction amount is below your processor's chargeback fee threshold — confirm this figure with your processor, as it varies — and your evidence is genuinely insufficient, accepting the loss costs less than fighting and losing, then paying arbitration fees if the cardholder escalates. Conceding is not the same as ignoring; log the decision and the reason code so the pattern is visible if the same cardholder or BIN disputes again.

The factor that usually tips the decision: whether you have delivery confirmation or a clear authorization signal. Without at least one of those, fighting an unauthorized or non-delivery claim is rarely worth the operational cost.

Step 3: Pull the evidence — structure over volume

Once you've confirmed you're fighting, assemble the evidence before you write anything. You need to know what you actually have before you can write a rebuttal that doesn't overstate it.

For most dispute types, the core evidence set is five signals or fewer:

  • Order confirmation with billing address, IP address, and timestamp
  • AVS and CVV match result (pull from your payment gateway's transaction detail — Shopify Payments surfaces this under the order's payment section)
  • Shipping confirmation with carrier tracking number
  • Delivery confirmation — carrier scan showing delivered status, ideally with GPS coordinates or signature if available
  • Customer communication — any email, chat, or support ticket thread showing the cardholder interacted with the order post-purchase

For unauthorized transaction claims specifically, behavioral signals carry more weight than most merchants expect: device fingerprint match between the browsing session and prior authenticated sessions, the customer's email address having been used on previous non-disputed orders, or a delivery address that matches the cardholder's billing address on file. None of these individually wins a case, but together they shift the probability assessment an issuer analyst makes in the roughly 90 seconds they spend on a dispute.

Past a certain point — call it seven or eight documents — additional files stop helping and start obscuring. Analysts are not reading every page. A focused, sequenced packet beats a comprehensive dump almost every time.

One file format note: most acquirers accept PDF. Some have size limits around 5MB per submission; confirm with your processor. Shopify Payments' dispute interface accepts PDF and image files directly through the Admin dispute screen.

Step 4: Write the rebuttal letter — this is the actual case

The evidence files are exhibits. The rebuttal letter is the argument. An issuer analyst who receives a stack of screenshots with no narrative has to construct the story themselves — and they won't, or they'll construct the wrong one.

The rebuttal letter needs to do three things in order: state what the cardholder is claiming, state what your evidence shows, and state the conclusion you're asking the issuer to reach. It should be readable in under two minutes. That is not a stylistic preference; it is a practical constraint on how dispute analysts actually work.

Structure it this way:

  1. One sentence identifying the dispute. Reason code, transaction date, amount.
  2. One to two sentences stating the cardholder's claim. Don't editorialize — just state what they're asserting.
  3. Three to five sentences walking through your evidence, in the order the analyst should read it. Reference each exhibit by name or number.
  4. One sentence stating your conclusion. Ask for the dispute to be resolved in your favor.

Here is a sample narrative for an item-not-received dispute where delivery is confirmed:

"The cardholder asserts the order was not received. Exhibit 1 shows the order was placed on [date] with delivery address [address], matching the billing address on file. Exhibit 2 is the carrier tracking record showing the shipment was delivered to that address on [date] at [time], with a GPS-confirmed delivery scan. Exhibit 3 is the post-purchase email thread in which the cardholder contacted support on [date] — after the delivery scan — asking about the item's contents, indicating receipt. The delivery record and subsequent customer communication directly contradict the non-delivery claim. We respectfully request this dispute be resolved in our favor."

That letter is roughly 120 words. It references three exhibits. It answers the specific claim. It does not include your return policy, your company history, or a description of your product line — none of which are relevant to a non-delivery claim and all of which dilute the argument.

For an unauthorized transaction claim, the narrative shifts to authorization signals:

"The cardholder asserts this transaction was unauthorized. Exhibit 1 shows the transaction was processed with AVS full match and CVV match on [date]. Exhibit 2 shows the order was placed from an IP address geolocating to [city, state], consistent with the billing address. Exhibit 3 shows the cardholder's email address was used on two prior non-disputed orders in the preceding 90 days. The authorization signals and account history are inconsistent with an unauthorized transaction. We request this dispute be resolved in our favor."

Step 5: Submit through Shopify Admin and confirm receipt

In Shopify Admin → Orders → Disputes, open the dispute and use the response interface to upload your evidence files and enter your rebuttal text. If you're on Shopify Payments, the interface pre-populates some order data — review it before submission, because pre-populated fields occasionally pull the wrong fulfillment record if an order had multiple shipments or a partial refund.

After submission, do two things immediately:

  • Screenshot or export the submission confirmation screen. Shopify's interface shows a submitted status, but that confirmation is your record that the response went through before the deadline.
  • Log the submission in whatever internal system you use — order number, reason code, submission date, deadline date, and a one-line summary of the evidence submitted. This log becomes essential if the case escalates to pre-arbitration or if you're auditing win rates by reason code later.

If you're using a third-party payment processor rather than Shopify Payments, the submission path is through your processor's portal, not Shopify Admin. The evidence assembly and rebuttal writing process is identical; only the submission interface changes. Some processors — confirm this with yours — require evidence to be submitted as a single merged PDF rather than individual files. Uploading five separate images when the processor expects one document is a formatting failure that can result in the submission being rejected or the evidence being partially read.

Step 6: Track the outcome and close the loop internally

Dispute outcomes typically take two to eight weeks after submission, depending on the network and issuer. Shopify Admin → Orders → Disputes will update the status when a decision is issued. Check it; don't wait for an email notification that may or may not arrive.

When the outcome posts, log it against the submission record: won, lost, or escalated. If you lost, note why — issuer's stated reason if available, or your own assessment of which evidence gap likely drove the decision. That data is worth more than any single dispute outcome. Merchants who track reason-code-level win rates over 90-day rolling windows can identify whether they have a systemic evidence gap (e.g., consistently losing Visa 13.1 because carrier delivery confirmation is missing) versus a fraud pattern (e.g., a cluster of 10.4 disputes from a specific BIN range that warrants a fraud review).

If the dispute escalates to pre-arbitration — the cardholder's bank rejects your representment and pushes back — you face another decision point. Pre-arbitration carries network filing fees that can reach several hundred dollars depending on the network and outcome; confirm current fee schedules with your processor. At that stage, the calculus shifts: the strength of your original evidence, the transaction amount, and the fee exposure all factor into whether escalating further makes financial sense.

The failure modes worth knowing before you start

Most lost disputes trace back to one of four operational failures, not evidence failures:

Wrong evidence for the reason code. Submitting a detailed refund policy for an unauthorized transaction claim. Submitting delivery confirmation for a not-as-described claim without addressing the specific discrepancy. The evidence is real; it just doesn't answer the question being asked.

Deadline miscalculation. The dispute date and the date it appears in Shopify Admin are not always the same. If your processor has a 20-day response window and the dispute sat unnoticed for five days before appearing in the dashboard, you have 15 days, not 20. Check the dispute date in the record, not the date you noticed it.

Rebuttal letter that describes evidence instead of arguing from it. "Attached please find our tracking information" is a description. "The carrier record shows delivery to the billing address on [date], three days before the dispute was filed" is an argument. The second version gives the analyst something to rule on.

Internal note never written. When a dispute is closed — won, lost, or conceded — and no internal record exists, the same mistake repeats. An internal note takes two minutes:

"Dispute [order #] — Visa 13.1 — submitted [date] — delivery confirmation + post-purchase email thread — outcome: [won/lost] — note: carrier scan was 4 days post-ship, no signature. Consider requiring signature confirmation for orders over $[threshold] in this category."

That note is operational memory. Without it, the next Visa 13.1 on a similar order starts from zero.

Key Takeaways

Read the reason code before touching the order — it determines which evidence actually matters.
The rebuttal letter is the case; evidence files are exhibits, not the argument.
Deadlines are hard stops — missing by one day forfeits the dispute regardless of evidence quality.
Targeted three-to-five signal submissions consistently outperform twenty-document dumps.
Conceding a weak dispute is a deliberate decision, not a failure — fighting costs time and fees regardless of outcome.

FAQ

How long do I have to respond to a chargeback on Shopify?
Shopify surfaces the deadline in Admin → Orders → Disputes, but the underlying window is set by the card network and your acquirer — typically 7 to 30 days from the dispute date. Confirm the exact window with your processor, and treat the Shopify-displayed deadline as the hard cutoff.
What evidence do I need to fight a chargeback?
It depends on the reason code. Unauthorized transaction claims require authorization signals and behavioral evidence. Not-as-described claims require product documentation and communication records. Submitting the wrong evidence type — even in volume — rarely wins.
Can I fight a chargeback after the deadline?
No. Once the response window closes, the dispute is decided in the cardholder's favor by default. There is no late-submission path at the network level.
Does Shopify Payments handle the submission for me?
Shopify Payments surfaces the dispute interface and pre-populates some order data, but the rebuttal letter and evidence narrative are your responsibility. The platform does not write your case.

Disclaimer

This content is for informational purposes only and does not constitute legal advice.

Automate Your Chargeback Responses

DisputeDesk automatically tracks deadlines, collects evidence, and generates winning responses so you never miss a deadline again.

How to Fight Chargebacks: Step-by-Step