Store Security

How to Respond to a WooCommerce Chargeback: Evidence and Rebuttal

How to Respond to a WooCommerce Chargeback: Evidence and Rebuttal


WooCommerce Evidence-Response Workflow

Match the Claim, Build the Evidence, Submit Once

A tactical workflow for reading the reason code, assembling relevant documents, writing a concise rebuttal, and completing the one-shot Stripe or WooPayments submission.

The broad overview of WooCommerce chargebacks — what they are, why customers file them, how the timeline works, and when to accept versus contest — is covered in the companion WooCommerce chargebacks process and prevention guide. If you are new to chargebacks, start there.

This post goes deeper on the part most guides skim: what you actually do once you’ve decided to contest. Reading the reason code correctly. Knowing exactly which evidence to pull for that specific code. Writing a rebuttal letter that a case reviewer will read and understand in under two minutes. Submitting through Stripe and WooPayments without missing a field. And what TrustLens Pro’s Dispute Evidence Report does — verified against the current plugin code — and where it genuinely fits into the workflow.

Think of this as the field manual. The decision to contest happened before you opened this page. No evidence package guarantees a win because the issuing bank decides the outcome; the objective is to submit the clearest relevant case before the exact portal deadline.

The response sequence

  1. Record the exact processor deadline and dispute reason.
  2. Gather only evidence that answers that reason code.
  3. Write a brief factual narrative that points to each attachment.
  4. Review the complete package before submission.
  5. Submit once, save confirmation, and monitor the issuer’s decision.

Reading the reason code first

A dispute reason code is the cardholder’s stated basis for the claim — and it determines everything about your response strategy. Every card network assigns its own code format, but Stripe and WooPayments group them into a handful of reason categories, and the dispute notification always tells you which one applies. What it often doesn’t include is a clear explanation of what that code means in practice.

That explanation lives in the companion reference, WooCommerce Chargeback Reason Codes Explained. It covers every Stripe category from fraudulent to subscription_canceled, how the underlying card-network codes relate to them, and the evidence each one calls for. Keep it open while you work; this guide summarizes only what you need to pick a direction.

The one distinction to absorb first: fraud-coded disputes, where the cardholder says they never made the purchase, are the hardest to win, because the claim is about identity rather than about your service. Non-delivery claims are usually the most winnable, because carrier tracking either proves delivery or explains a legitimate exception. Everything else — not as described, credit not processed, subscription billing — turns on what your product page, policies, and records said at the time. Credit-not-processed disputes are also the most avoidable: a faster refund would usually have prevented them.


Processor reason code lookups

Stripe’s dispute documentation at stripe.com/docs/disputes/categories maps every code to a plain-English explanation and lists what evidence helps for each. WooPayments uses the same Stripe dispute infrastructure under the hood, so the same mapping applies. Mastercard publishes the Chargeback Guide (available through your acquiring bank or merchant account representative). Visa’s Dispute Resolution Rules document is available through similar channels. When in doubt, look up the exact code before building your evidence package — the category summary in this guide is a starting point, not a substitute for the specific code definition.

Fight or accept — how to decide in under five minutes

Contesting a dispute is not always the right call. The store owner’s process and prevention guide covers the full logic, but for quick reference when you’re looking at a live notification:

  • Accept immediately if: the dispute is accurately described (you did ship to the wrong address, the item was broken, or the customer legitimately didn’t receive it and you have no tracking to prove otherwise).
  • Accept if: the order value is below your internal threshold and the evidence you have is weak. Fighting a $15 dispute with 45 minutes of work is rarely sensible.
  • Contest if: you have carrier tracking showing delivery, meaningful customer communication, and at minimum a billing address match. That combination wins most non-fraud disputes.
  • Think carefully before contesting a fraud-coded dispute unless you have device fingerprint data, a long account history, or prior successful orders from the same email and card. Without that, the card network tends to side with the issuing bank.

If you decide to accept, do it explicitly through your processor portal — don’t simply let the deadline expire without any response. An explicit acceptance is cleaner for your records and avoids an unnecessary win-by-default on the cardholder’s record.

Evidence by reason code category

The most common mistake in dispute responses is submitting the same evidence package for every dispute regardless of the reason code. Card network reviewers evaluate evidence against the specific claim. The table below is the short version — the evidence to lead with for each main category. The full evidence list for every Stripe reason, including duplicate, unrecognized, and general, is in the reason codes guide.

Category What the cardholder claims Lead with
Fraud / unauthorized They didn’t make the purchase Data tying the cardholder to the order: AVS and CVV match results, billing details matching the card, and prior undisputed orders from the same customer
Item not received The order never arrived The full carrier tracking history (not just the number) showing the delivery event, date, and address — plus signed proof of delivery if you have it
Not as described What arrived doesn’t match what was sold The product page as it appeared at purchase (use the Wayback Machine if it has changed), alongside your return policy
Credit not processed A refund they’re owed never arrived The refund transaction record with date and amount — or, if you declined it, the policy terms that explain why
Subscription / recurring billing They cancelled, or never agreed to recurring charges The signup record showing recurring billing was clearly disclosed and accepted, and how any cancellation request was handled

Friendly fraud: what the issuer is actually weighing

The disputes worth fighting are usually not stolen-card fraud. They’re friendly fraud: the real cardholder placed the order, received it, and disputed the charge anyway — because they didn’t recognize the statement descriptor, forgot a family member’s purchase, changed their mind, or found the bank’s dispute button quicker than your refund process. Some of it is honest confusion; some of it is deliberate.

That matters because of where the case starts. A cardholder can choose almost any reason when they contact their bank, and “unrecognized” or “fraudulent” get used even when the order was legitimate. The dispute system exists to protect cardholders, so the issuer begins from the cardholder’s account of events. Your evidence has to give the reviewer a specific, documented reason to reach a different conclusion.

Delivery proof only answers part of that. Tracking shows a parcel reached an address; it doesn’t show that the person disputing the charge is the person who placed the order. In a friendly-fraud case, the reviewer is effectively asking a second question: does this customer have a real, documented relationship with this store? Earlier undisputed orders, the same email and address across them, and contact through your own support channel answer it.

Visa has formalized this for fraud-coded disputes. Under its Compelling Evidence 3.0 rules for reason code 10.4 (card-absent fraud), at least two earlier undisputed transactions from the same customer — placed 120 to 365 days before the disputed one and sharing identifying data with it, such as IP address, device, or shipping address — can shift liability back to the issuer. The FAQ at the end of this guide covers using it in Stripe. Where CE3.0 doesn’t apply, the principle still carries: a documented pattern of legitimate history is the most persuasive thing you can put in front of a reviewer.

Why behavioral history is the differentiating factor

Most merchants treat each dispute as an isolated event: this order, this claim, this evidence. But a habitual disputer doesn’t look unusual in any single order — the order looks normal, the delivery looks normal, and the pattern only shows across orders. The same is true in reverse: a loyal customer’s one dispute only looks out of character if you can show the character.

Behavioral history changes what your response says. Instead of “this order was legitimate,” it says “this customer has bought from us before, received goods before, and their current claim is inconsistent with their own history with our store.” Beyond the order count covered in the evidence package below, the signals worth documenting are:

  • Prior undisputed orders that share identifiers with the disputed one. The same email, billing and shipping address, IP, or device across orders is what ties the cardholder to the purchase — and it’s what CE3.0 looks for.
  • Refund and return history. A customer who has asked you for refunds before knew how to reach you, which undercuts the idea that the bank was their only option.
  • Prior disputes. A first dispute after years of clean orders reads very differently from a third. Record every dispute against the customer, whichever gateway it came through, so the history exists next time.
  • Linked accounts. If the same person runs several accounts on your store and those accounts carry their own disputes or refund abuse, that’s relevant context.
  • The timeline. An order delivered, no contact with your support team, and a dispute filed days later doesn’t fit a claim of genuine confusion. Note when — and whether — the customer contacted you before going to their bank.


The data exists — but it’s scattered

Almost all of this lives in your WooCommerce orders, refund records, and inbox. The hard part is consolidating it inside the response window, which is why most merchants skip this layer. Know where each piece lives before a dispute arrives. TrustLens keeps it per customer — its Historical Sync builds profiles from orders placed before the plugin was installed — and the Pro Dispute Evidence Report, covered below, turns it into a print-ready document.

Building your evidence package

An evidence package is a set of documents you attach to your rebuttal submission. How you prepare it matters as much as what you include — reviewers process many cases, and disorganized submissions with unlabeled attachments are harder to evaluate.

What to gather, and from where

  1. Order record from WooCommerce

    Pull the full order detail from WooCommerce admin: order date, billing name, billing address, shipping address, email, products ordered, and order total. If the billing and shipping addresses match — and they match the cardholder’s registered card address — note that explicitly. Take a clean screenshot of the WooCommerce order detail page with all fields visible.

  2. Shipping and delivery confirmation

    Go to your carrier’s tracking page and load the full tracking history for this shipment. You want a document — screenshot or PDF — that shows: when the package was picked up, the transit events, the final delivery event with date and time, and the delivery address or ZIP code. If your carrier provides delivery photos, include those. If you require signature confirmation, include the signature record. Print to PDF if the carrier doesn’t provide a direct download. If you sell digital products — downloads, licenses, courses, or memberships — this step looks different: your evidence is download logs, email delivery receipts, license activation records, and access timestamps. See Fighting Chargebacks on Digital Products in WooCommerce for the full evidence workflow specific to digital goods.

  3. Customer communication history

    Search your email system for every message from this customer’s email address — going back to before the order if possible. You’re looking for: the order confirmation you sent, any queries or complaints they raised, any responses you sent, and especially any messages after the disputed shipment date. A message asking about a different issue after the claimed non-delivery date is relevant. Export the email thread as PDF or screenshot each message with the date visible.

  4. Order history for this customer

    In WooCommerce, pull all previous orders associated with this customer’s email address. A customer with six successful prior transactions who is now claiming “I never made this purchase” is a very different profile from a first-time buyer with no history. Screenshot the order list filtered by their email. If they’ve purchased before using this same card, note that specifically in your rebuttal.

  5. Product page and policy screenshots

    For “not as described” or “not as expected” disputes, take a screenshot of the product page as it appeared at time of purchase — use the Wayback Machine at archive.org if the page has changed. Also screenshot your published return policy and terms of sale. If the product listing clearly described what was being sold and how returns work, that’s your defence.

  6. Organize and label your documents

    Name your files clearly: 01-order-detail.pdf, 02-tracking-confirmation.pdf, 03-customer-emails.pdf. Stripe currently allows one supporting file per evidence type and a 4.5 MB combined maximum; Mastercard submissions also have a 19-page combined limit. Merge related pages into one concise file per evidence category and check the limits displayed in your own portal before uploading.


Make a reusable evidence checklist

If you contest disputes with any regularity, build a simple internal checklist — one for each reason code category — that tells you exactly which files to pull and from which system. The first time you respond to a dispute, you’ll figure this out from scratch. The second time, a checklist cuts the preparation time in half. The fifth time, the whole package comes together in 20 minutes instead of an hour.

Writing the rebuttal narrative

The rebuttal letter — sometimes called the “representment narrative” — is the most important single element of your submission. Documents support it; the letter carries the argument. Most merchants get this wrong in two opposite directions: they either write nothing (“I’m attaching the tracking information”) or they write a lengthy emotional account of why the customer is dishonest. Neither approach works well.

What the rebuttal letter needs to do

The person reading your response is a card network reviewer or a processor analyst. They’re evaluating a factual question: does the merchant’s evidence support their case under the applicable card network rules? Your letter should answer that question directly and briefly. They do not need to know how frustrated you are, how much effort you put into packing the order, or that this customer has been difficult before. They need to see the facts that are relevant to the reason code.

The structure that works

A good rebuttal letter has four parts, typically fitting in three to five short paragraphs:

  1. Opening sentence — state the basis of your response. One sentence that names the reason code and states your position clearly: “This chargeback was filed under [reason code] (Item Not Received). The order was delivered to the cardholder’s billing address on [date], as confirmed by the attached carrier tracking record.”
  2. The key facts — address each element of the claim. What did the customer order, when was it shipped, when was it delivered, and to what address? Was there any customer contact after delivery? Does the order history support or undercut the cardholder’s claim? Keep this factual and specific. Dates, tracking numbers, addresses — not “we always ship quickly” or “this customer knew what they were buying.”
  3. Map your evidence to the claim. Tell the reviewer exactly what each attached document shows: “Attachment 1 is a PDF of the carrier tracking history showing delivery to [ZIP code] on [date]. Attachment 2 is an email thread showing the customer contacted us on [date] — after the claimed non-delivery date — about an unrelated product question, which confirms receipt.” This saves the reviewer from having to puzzle out what each document means.
  4. Closing statement. One sentence asking for the dispute to be resolved in your favor. No emotional appeals. “Based on the enclosed documentation, we respectfully request that this dispute be resolved in our favor.” That’s all this needs to be.

Tone and length

Calm, factual, and brief. Aim for 150 to 250 words. A wall of text gets skimmed. Bullet points within the letter are fine for listing the key facts. Avoid any language that implies you’re accusing the cardholder of fraud — even if you believe it — because that framing tends to antagonize reviewers rather than persuade them. Stick to what the evidence shows.


A rebuttal that lost a winnable case

One merchant showed me a dispute they’d lost despite having solid tracking evidence. Their rebuttal letter ran to four paragraphs about how “this customer has been nothing but trouble,” how the store “bends over backwards for customers,” and how “it’s obvious this person is trying to scam us.” The tracking confirmation was attached but never referenced in the letter. The reviewer saw an emotional merchant and a document they couldn’t easily connect to the claim. The merchant with clean tracking and a two-paragraph letter that pointed directly to the tracking record would have won that case.

A sample rebuttal for an “item not received” dispute

This is a template. Fill in the actual details from your records. Remove any sentence that doesn’t apply to your specific case.

We are responding to the chargeback filed under [reason code] — Item Not Received — for order [order number], dated [order date], in the amount of [order total].

This order was shipped to the cardholder’s billing address on [ship date] via [carrier] and was delivered on [delivery date] to [delivery address / ZIP code]. The carrier tracking number is [tracking number]. The full tracking history is included as Attachment 1, showing the delivery event with date and address.

The customer has placed [N] previous orders with our store using this email address and has not previously raised a delivery concern. On [date], after the claimed non-delivery date, the customer contacted us regarding [topic of email] — confirming they were in receipt of correspondence from our store. A copy of that email thread is included as Attachment 2.

Based on the carrier confirmation of delivery to the billing address and the customer’s subsequent contact with our store, we respectfully request that this dispute be resolved in our favor.

Submitting through Stripe

Stripe’s dispute management is handled at dashboard.stripe.com/disputes. When a dispute is opened, Stripe creates a dispute record linked to the payment, and a summary email is sent to your registered email address.

Finding the dispute in Stripe

Log into your Stripe dashboard and navigate to Disputes in the left sidebar. The disputed payment will appear with a status of “Needs response” and a deadline date. Click through to the dispute detail page. You’ll see the reason code, the cardholder’s stated reason (when provided), and the submission deadline displayed prominently.

What Stripe collects from you

Stripe’s dispute response form presents a structured set of fields grouped by the dispute category. Not all fields are required, but completing the relevant ones — rather than just uploading documents — gives your response the best chance of being evaluated clearly. The main sections you’ll work through:

  • Product description: A brief description of what was sold and its category.
  • Customer communication: Text summary and, optionally, an uploaded PDF of the email thread.
  • Shipping documentation: The tracking number and carrier, plus an uploaded document showing the full tracking history.
  • Additional information: Use the narrative field to connect the claim to the evidence. Keep it concise because reviewers process many cases; Stripe does not prescribe the universal 250-word cutoff previously stated here.
  • Supporting files: Upload one file per evidence type, combining related pages where needed. Stripe documents a 4.5 MB combined maximum and a 19-page combined maximum for Mastercard evidence.

Deadlines in Stripe

Stripe says the response window is usually 7–21 days depending on the card network. The case-specific deadline appears on the dispute list and detail page; that displayed date is authoritative. Submitting on the last day is risky if you encounter an upload or review issue, so finish earlier when possible.

Once submitted, Stripe displays a confirmation status (“Evidence submitted”) and you’ll receive a confirmation email. The dispute moves into a review phase, typically taking two to three months to resolve at the first level.


You can only submit evidence once

In Stripe, once you click “Submit evidence,” the submission is final for that round. You cannot add a document you forgot or amend the rebuttal text. Have everything assembled, reviewed, and ready before you open the submission form. Prepare offline first — draft your letter in a document, gather all files into a folder, then go through Stripe’s form and fill it in from your prepared materials rather than assembling on the fly in the browser.

Submitting through WooPayments

WooPayments dispute management is accessible directly within your WooCommerce admin. Its response flow shares Stripe-connected infrastructure, but merchants should follow the fields, deadline, fee treatment, and status shown by WooPayments rather than assuming every Stripe Dashboard detail is identical.

Finding the dispute in WooPayments

In WooCommerce admin, navigate to Payments → Disputes. Disputes are listed with status, amount, deadline, and the associated order. Click a dispute to open its detail view. WooPayments also adds a dispute notice directly on the affected order edit page — so if you’re reviewing orders and see a dispute badge, you can click through from there without going to the Disputes list first.

The WooPayments submission form

WooPayments presents a similar structured form to Stripe’s, with fields for customer information, product details, shipping evidence, and a free-text evidence field for your narrative. The fields available depend on the dispute reason code — an “item not received” dispute shows shipping-related fields that a “subscription cancelled” dispute doesn’t. Fill in the fields that apply and leave the inapplicable ones blank rather than putting placeholder text in them.

Use the file types and limits displayed in the WooPayments challenge form. The same preparation principle applies: merge related pages, label documents clearly, and have the full package ready before final submission.

Deadlines in WooPayments

WooPayments shows the dispute deadline on both the Disputes list and the detail page. Its documentation describes a usual 7–21-day response window for card disputes. You can save evidence for later; if saved evidence remains unsubmitted, WooPayments says it automatically sends that saved package on the deadline date. Because you still receive only one final submission, review the saved package well before that automatic cutoff.


Other gateways (PayPal, Square, and others)

PayPal’s dispute resolution is handled through the Resolution Center in your PayPal Business account. Square disputes are managed through the Square Dashboard under Activity → Disputes. The evidence logic and rebuttal principles in this guide apply to both — the specific fields and upload interfaces differ. Check your gateway’s documentation for the exact submission mechanics. What won’t change is the need for carrier tracking as your primary weapon on “not received” disputes and a clear, brief rebuttal narrative that explicitly maps to your evidence.

What happens after you submit

Once your evidence is submitted, the dispute enters a review phase run by the card network. This is not a fast process. At the first-round level, a decision typically takes two to three months from when you submitted, sometimes longer. During this time, the disputed funds remain reversed — they’re not in your account.

Monitoring the status

Your processor’s dispute dashboard shows the current status: “Evidence submitted,” “Under review,” “Won,” or “Lost” (or equivalent labeling in your gateway). Check it periodically rather than waiting for an email — processor email notifications aren’t always reliable for status updates.

If you win

The disputed funds are reinstated according to your processor’s settlement flow. WooPayments currently states that both the disputed amount and dispute fee are credited back when you win. Stripe’s current pricing distinguishes a dispute-received fee from a dispute-countered fee and says the countered fee is returned on a win; contract and regional terms can differ, so confirm the actual adjustments in your balance activity.

If you lose

The funds remain with the cardholder. You’ve absorbed both the order amount and the dispute fee. In some cases — depending on the card network, the amount, and your processor’s terms — you can escalate to pre-arbitration or arbitration. This extends the process by weeks or months and adds additional fees (arbitration fees can run $500 or more, paid by the losing party). Pre-arbitration and arbitration are generally only worth pursuing for large disputes where you have strong evidence and believe the first ruling was clearly wrong.

For most disputes under a few hundred dollars, accepting a loss and moving forward is more economical than escalating. The exception is a pattern — if you’re losing disputes consistently due to a process gap in your evidence collection, fixing the process is worth far more than chasing any individual escalation.

Escalation isn’t always available

Not every dispute outcome can be escalated, and the rules for when escalation is available are set by the card network, not by you. Your processor will note whether escalation is possible in the dispute outcome notification. If it isn’t offered, it isn’t available for that case regardless of how you feel about the ruling.

Using TrustLens Pro’s Dispute Evidence Report

TrustLens is a WooCommerce fraud prevention plugin that tracks trust scores, behavioral signals, and chargeback data per customer. The core chargeback tracking — ingesting disputes automatically from Stripe and WooPayments, tracking dispute counts per customer, and flagging the dashboard when your chargeback ratio crosses a card-network threshold — is included in the free version.

TrustLens Pro adds a Dispute Evidence Report: a one-click, print-ready behavioral risk report generated from each customer’s profile, specifically designed to be submitted alongside a processor dispute response. This is a verified Pro-only feature. In current TrustLens 1.3.16, the report matches the disputed order against prior order history for Visa CE3.0 indicators and can register a non-personal SHA-256 fingerprint with the optional verification service, producing a public URL and QR code that let a reviewer check whether the report is genuine and unaltered. It strengthens the behavioral-history portion of a case; it does not guarantee CE3.0 eligibility or replace reason-specific processor evidence. For the full implementation details, see the TrustLens Dispute Evidence Report guide.

What the report includes

The report is generated from the customer’s TrustLens data. Based on the gather_report_data() method in the current plugin code, it pulls:

  • The customer’s 0–100 trust score and current risk segment
  • All scoring signals with their individual impact (returns, coupon patterns, linked accounts, dispute history, shipping anomalies)
  • Full order history — order count, completion rate, refund rate, refund ratio compared to the store average
  • Return analysis benchmarked against the store average, so a reviewer can see whether this customer’s return behavior is unusual relative to your customer base
  • Linked accounts data — other customer accounts sharing the same address, phone, IP, payment method, or device fingerprint
  • The event timeline: everything TrustLens recorded about this customer’s activity over their lifetime in your store

The report is formatted as professional print-ready HTML. You can print it to PDF from your browser and attach it to your evidence package in the processor portal.

When it’s most useful

The Dispute Evidence Report is most valuable in friendly fraud cases — where the cardholder received their order but is disputing it anyway. In those cases, the behavioral context is often the strongest thing you have: this customer has ordered from you eight times using this card, their return rate is well below your store average, and there are no linked accounts suggesting a fraud ring. That context doesn’t fit neatly into a carrier tracking PDF, but it does fit into a behavioral report that a reviewer can read alongside your tracking evidence.

For true fraud disputes — where the cardholder’s card was stolen and used by someone else — the report is less central, because the behavioral data relates to the fraudster’s session rather than the real cardholder’s history.


Generate the report before reviewing the customer profile

TrustLens generates the Dispute Evidence Report from the customer’s profile and from the order detail page — there’s a “Dispute Evidence Report” button on both. If you’re already looking at the disputed order in WooCommerce, you can generate the report from there and it will automatically include that specific order as the disputed order context. Generate the report as one of your first steps when assembling the evidence package, not as an afterthought — it takes a few seconds and may surface information (linked accounts, prior dispute history) that changes how you frame the rebuttal.

TrustLens Pro also adds the dispute deadline worklist on the dedicated Chargeback Monitor page — every open dispute with its response deadline and a live countdown. For stores managing more than two or three simultaneous disputes, this is meaningfully less error-prone than tracking deadlines across processor email notifications. The free version shows your blended chargeback ratio on the dashboard; the deadline worklist and the Dispute Evidence Report are both Pro.

When a long-time customer disputes

Everything above is about whether and how to contest. When the dispute comes from a customer with years of clean orders, there’s a second decision — what happens to the relationship. Treating a confused regular like a fraudster can cost you more in future orders than the chargeback itself.

Why customers with clean histories file chargebacks

Most disputes from established customers aren’t schemes. The usual causes:

  • A statement descriptor that doesn’t match your store name, so the customer didn’t recognize the charge and queried it with their bank, which opened a dispute.
  • A family member or colleague used the card without the account holder knowing.
  • A refund that was slow to appear, so the customer assumed it had failed.
  • A genuine delivery or product problem they took to the bank instead of to you.

None of these make the dispute costless, but they change the right response. Check the descriptor first: if the charge would look unfamiliar on a card statement, that’s probably your answer — and something to fix, as the process and prevention guide explains.

One incident or the start of a pattern?

Read the customer’s full record before you react. A one-off usually looks like this: no prior disputes, a normal refund history, a long run of orders against this single problem, and a plausible innocent explanation for this charge. Look harder when:

  • the customer has disputed before, even if those cases were resolved;
  • a high return rate sits alongside the dispute — serial returners sometimes escalate to the bank when a return is refused;
  • “long-time” turns out to mean a handful of orders in a short window;
  • the account shares an address, phone, IP, or payment method with other accounts that have their own disputes or refund abuse.

In TrustLens, the dispute count on the customer profile builds up automatically from Stripe and WooPayments, and from the manual chargeback form on the order screen for other gateways, so a dispute from two years ago is still there when the next one lands. Expect the trust score to move. Once a customer has reached the minimum order threshold (three orders by default), an open dispute costs 20 points, and a customer with ten or more orders also loses the 10-point bonus for having no dispute history. When the case closes, a win leaves a 5-point mark and a loss costs 30. One dispute can therefore drop a trusted customer a segment — treat that as information, not a verdict.

The relationship decision: contact, silence, or allowlist

Contact the customer when the dispute looks accidental — descriptor confusion, a family member’s purchase, a refund they missed. A short, service-toned email from your support address works best: you’ve seen a dispute on order #XXXX, and if something went wrong you’d like to put it right directly. Frame it as “let us fix this,” not “please withdraw.” Only the cardholder can withdraw a dispute, through their bank, so keep your evidence on track for the deadline either way, and if they confirm they’ve withdrawn it, include that message in your submission.

Stay quiet when it’s a genuine product or quality complaint and you have nothing to offer. A conversation that goes nowhere doesn’t help, and the processor’s review runs regardless. If the complaint is fair, accepting the dispute already returns the money — don’t also refund the same charge through WooCommerce.

Leave the allowlist alone as a response to a fresh dispute. TrustLens’s allowlist pins a customer’s score at 100 and stops every signal from counting, future disputes included. That suits long-standing VIPs or business accounts where you’ve made a deliberate call; used as a reset button after a dispute, it hides exactly the data point you’ll want if a second one arrives.

Then watch. A customer who files one dispute and goes on ordering normally is almost certainly not a threat. A second dispute, or returns that escalate after the first, is the point where a one-off has become a pattern. If you’d rather not catch that by hand, TrustLens Pro can auto-block a customer after a set number of lost disputes — off by default — as covered in the TrustLens chargeback tracking guide.

Common mistakes that cost merchants winnable disputes

After going through this process with a number of stores, certain errors come up repeatedly. These are the ones that turn winnable disputes into lost ones:

Waiting until two days before the deadline

Carrier tracking pages go down. Email systems are slow. PDFs don’t convert properly on the first try. Processor portals have upload limits that require reorganizing your files. Every step in the evidence-gathering process takes longer than expected, and two days is often not enough. The stores that win most consistently treat the deadline as an absolute cap and start evidence collection the same day the notification arrives. Customer-level records — full order history, refunds, prior disputes, old messages — take the longest to pull, so know where they live before any dispute lands.

Submitting evidence that doesn’t match the reason code

Sending your return policy in response to a fraud-coded dispute doesn’t help. Sending device fingerprint data in response to a “not as described” claim is irrelevant. Match your evidence to the specific claim. The most frequent version of this mistake is answering an “unrecognized” or fraud claim with a tracking number: the cardholder isn’t saying the parcel didn’t arrive, they’re saying they don’t know the charge. Answer that instead — the order confirmation sent to their email, the details they entered at checkout, their earlier orders. If you’re not sure what evidence is relevant, look up the exact reason code in your processor’s documentation before assembling anything.

Proving the order but not the customer

Every document should relate to the disputed order, but the strongest supporting material — prior undisputed orders, consistent identifiers across them, account age, earlier contact with your support team — is about the customer’s relationship with your store, not the order itself. Leave that out and you’ve dropped the layer that does the most work in a friendly-fraud case. See why behavioral history is the differentiating factor above.

Writing a rebuttal that argues rather than demonstrates

A rebuttal that says “this customer is clearly lying” without documenting why the evidence contradicts the claim is an argument, not a demonstration. Reviewers are not here to hear your opinion of the cardholder. They need evidence-backed facts. Replace “I know the customer received this” with “the attached carrier tracking record shows delivery to [address] on [date].” Length works against you too: a long case against the cardholder gets skimmed, while four factual sentences — prior orders without disputes, confirmation sent to the email on file, the delivery date, no support contact before the dispute — get read.

Forgetting to label documents

Uploading files named IMG_4712.jpg and screenshot.png forces the reviewer to open each one and figure out what it shows. A file named 02-carrier-tracking-delivered-june-14.pdf tells the reviewer what they’re about to see before they open it. Labeling takes 30 seconds and makes a difference.

Including irrelevant evidence to “make the package look stronger”

More documents do not mean a stronger case. A reviewer presented with 12 files when three are relevant may not identify the three relevant ones efficiently. Include what directly supports your position for this specific dispute; leave everything else out. Quality over volume.

Not keeping a record after submission

Take a screenshot of the confirmation screen in your processor portal after submitting. Save a copy of the rebuttal letter and the evidence files. If the dispute escalates or recurs with the same customer, you need a record of what you submitted last time. Without it, you’re rebuilding from scratch.

Key takeaways

Winning individual disputes matters — but managing your overall chargeback ratio matters more. Every dispute, whether won or lost, affects the ratio that processors and card networks use to assess your account health. If you want to understand how ratio thresholds, fraud signals, and volume spikes lead to account freezes, rolling reserves, and terminations — and how to prevent them — see How to Avoid Getting Banned by Stripe, PayPal & Payment Processors.

What to take from this guide

  • Read the reason code before you do anything else — it determines what evidence you need and whether the case is worth contesting.
  • Match your evidence to the specific claim. Sending a return policy in response to a fraud dispute doesn’t help; carrier tracking does. Build the package around the code, not around what’s easiest to pull.
  • The rebuttal letter carries the argument. Keep it to 150–250 words, stick to facts, and explicitly tell the reviewer what each attachment shows. Emotional accounts and accusations don’t move reviewers; evidence does.
  • In Stripe and WooPayments, evidence submission is final once submitted. Prepare everything offline first, then fill in the portal form from your prepared materials.
  • Response windows are short — usually 7–21 days, with the exact date shown in your portal. Start gathering evidence the day the notification arrives — don’t wait for a convenient window.
  • In friendly-fraud cases, delivery proof shows a parcel arrived; behavioral history — prior undisputed orders, matching identifiers, the timeline — shows who ordered it. Submit both.
  • When a long-time customer disputes, read the full record before reacting. A one-off usually has an innocent cause: reach out to fix it, keep the dispute on record, and save the allowlist for deliberate VIP decisions.
  • TrustLens Pro’s Dispute Evidence Report generates a print-ready behavioral risk report from the customer’s profile in one click. It’s most useful in friendly fraud cases where the behavioral context is your strongest evidence.
  • If you lose a dispute, don’t escalate automatically. Escalation adds fees and time, and is rarely worth it under a few hundred dollars unless the first ruling was clearly wrong and you have strong new evidence to add.
  • Keep a record of every submission — what you sent, when, and what the outcome was. Over time, that log tells you where your evidence gaps are.

Common questions

How is responding to a dispute different from issuing a refund?

Issuing a refund is something you initiate through WooCommerce or your gateway — you send the money back, you control the timing, and there’s no dispute fee. Responding to a dispute (chargeback) is you contesting a forced reversal that the cardholder initiated through their bank. The two processes are completely independent. A customer can file a dispute even after you’ve refunded them, though it’s rare because there’s no financial gain for them once the refund has cleared. If you’ve already issued a refund and you receive a dispute, your evidence submission should include documentation of the refund so the reviewer can see it was already processed — most processors will close the dispute in your favor in that case.

Do I need to submit evidence for every dispute, or just the ones I want to win?

You only need to submit evidence for disputes you’re contesting. If you decide to accept a dispute — because the claim is accurate, the amount is too small, or your evidence is weak — you can accept it explicitly through your processor portal without submitting anything. What you should avoid is simply doing nothing and letting the deadline expire. Explicit acceptance is cleaner than non-response and gives you a record of your reasoning.

What’s the difference between a pre-arbitration and a representment?

A representment is your initial response to a dispute — you’re “re-presenting” the transaction with evidence. If the card network rules against you at the representment stage, the losing party can sometimes escalate to pre-arbitration, which is a second-round review still handled by the card network but under a more formal process. Pre-arbitration is distinct from full arbitration, which is a binding third-party ruling. Full arbitration is rare and expensive and is generally only used for large amounts where both parties are deeply committed to escalating. Most merchants never need to think about pre-arbitration or arbitration.

What is “compelling evidence” in a Visa dispute?

Visa introduced a specific Compelling Evidence framework (CE3.0, expanded in 2023) for disputes in the “fraudulent transaction” category. Under this framework, a merchant can provide “compelling evidence” that the current transaction was made by the same person who completed prior undisputed transactions — using matching data points like device fingerprint, IP address, and physical address — which shifts the liability back to the issuing bank. This is Visa’s attempt to give merchants a structured path to winning some fraud disputes that were historically almost impossible to contest. Stripe has built a dedicated Compelling Evidence tool into their dispute response for Visa fraud disputes. If you’re responding to a Visa fraud dispute in Stripe and have prior undisputed orders from the same customer, check whether the Compelling Evidence flow is available for your case.

Can I prevent disputes rather than just responding to them?

Yes — and prevention is worth far more than the best response workflow. The companion WooCommerce chargebacks process and prevention guide covers recognizable statement descriptors, accurate shipping timelines, proactive refunds when you’re in the wrong, and signature confirmation on high-value orders. For stores dealing with repeat disputers or card-testing attacks, TrustLens adds behavioral context — surfacing customers who’ve disputed before and protecting checkout against stolen-card bots that generate downstream chargebacks.

Does the reason code tell me whether I’ll win?

The reason code tells you what evidence is relevant, not whether you’ll win. Win rates vary significantly by reason code category, evidence quality, and card network. “Item not received” with strong carrier tracking is genuinely winnable. Fraud-coded disputes without device fingerprint data or prior transaction history are harder — the cardholder’s bank has already decided the transaction was unauthorized, and you’re working against that initial finding. “Not as described” disputes are highly variable depending on how clearly your product was described. Use the reason code to set a realistic expectation about your odds before spending significant time on evidence gathering.

Know which customers to trust

TrustLens scores every WooCommerce customer for refund abuse, coupon misuse, and chargeback risk — with eight detection modules and card-testing defense built in. Free on WordPress.org.