Automate the evidence pack for Shopify Payments chargebacks and inquiries
Updated · By Ecomsellertool editorial team
To automate Shopify chargeback evidence, start a workflow from Shopify Flow's Dispute created trigger or the disputes/create webhook. Read the dispute's reason and due date, then pull the order, fulfillment and carrier tracking, delivery proof, customer messages and refund history into the evidence Shopify asks for that reason. A person checks the draft, decides whether to fight or accept, and submits before the deadline.
- Shopify Payments evidence is due 7 to 21 days after a chargeback or inquiry is filed, in your store's timezone, and cannot be edited after it is submitted (checked October 13, 2026).
- Shopify's help center names eight dispute reasons, from Fraudulent to General, and lists different evidence for each.
- Shopify Flow has a Dispute created trigger for stores on Shopify Payments; it maps to the disputes/create webhook.
- Evidence files must be PDF, JPEG or PNG, each up to 2 MB and 4 MB combined, one file per evidence type.
- If you do nothing, Shopify submits the data it collected on the due date; the bank, not Shopify, decides the outcome.
The step map: who runs each step
Trigger: Shopify Payments opens a chargeback or inquiry on an order, which fires Shopify Flow's Dispute created trigger and the disputes/create webhook.
| Step | What happens | Who runs it |
|---|---|---|
| 1 | When a dispute opens, rules read its type (inquiry or chargeback), reason, amount and evidence due date, and post it to the dispute queue with a countdown. | Rule |
| 2 | Rules gather the record for that reason: order and billing details, fulfillments and tracking numbers, the carrier's delivery scan, refunds and returns on the order, and the customer's helpdesk thread. | Rule |
| 3 | Rules map each item to the evidence Shopify asks for that reason and build the files: one PDF per evidence type, within Shopify's size and format limits. | Rule |
| 4 | An AI model drafts the short rebuttal text from the gathered facts only, and flags gaps, such as no delivery scan or a refund already issued. It never submits. | AI model |
| 5 | A person reads the pack, decides to fight, accept or refund an inquiry, corrects the draft and submits it in the Shopify admin. | Person |
| 6 | A daily check lists open disputes by due date, packs not reviewed three days before the deadline, and disputes that closed as won or lost. | Rule |
4 rule steps · 1 AI model step · 1 person step. A rule follows fixed logic you approve; an AI model handles messy input and its output is checked by rules; a person makes the calls listed below.
What stays with a person
- Whether to fight, accept, or refund an inquiry in full
- Every word of the rebuttal and every file before it is submitted, since submitted evidence cannot be changed
- Contacting the customer, and asking for a withdrawal letter if they drop the dispute
- Disputes where the merchant made the error, such as a double charge, which Shopify says must be accepted
Which tools can run it
- Shopify Flow's Dispute created trigger with tags, a Slack alert and a manual pack, for a few disputes a month
- Shopify Flow or the disputes/create webhook plus Zapier, Make or n8n, to collect tracking and the helpdesk thread into a draft
- Custom code on your accounts, for carrier APIs, PDF building within Shopify's limits, the evidence fields and the due-date queue
Systems it connects
- Shopify Payments disputes
- Shopify Flow
- Shopify orders and fulfillments
- Carrier tracking APIs
- 3PL warehouse system
- Helpdesk or email
- Slack or email for the dispute queue
Build size: Medium
Shopify exposes the dispute and its evidence fields; the work is carrier proof, the helpdesk export and files that fit the limits.
A chargeback arrives with a deadline and a reason code, and the proof that answers it is scattered. The order and billing details sit in Shopify. The delivery scan sits with the carrier, or with the 3PL that shipped it. The customer's emails sit in the helpdesk, and any refund sits on the order's payment history. Most brands assemble that by hand, late, for each dispute. This recipe gathers the evidence the moment a dispute opens, sorts it by what the reason needs, and hands a person a ready pack to check and submit. It is one page of our automation library.
What evidence does each Shopify dispute reason need?
Start from the reason, because the evidence changes with it. The table below uses the eight reasons Shopify's help center names on its page of reasons for a chargeback or inquiry, with the evidence Shopify suggests for each (checked October 13, 2026). The third column is where an automation finds that proof, with the field in the dispute evidence object it fills. The last column is the call that stays with a person.
| Shopify reason | Evidence Shopify suggests | Where the automation pulls it from | What a person decides before submitting |
|---|---|---|---|
| Fraudulent | Fulfillment date and time, billing information, IP address and country, shipping and tracking | Shopify order (billing address, purchase IP), fulfillments and tracking numbers, the carrier's delivery scan; Shopify's fraud analysis on the order | Whether the order looked risky before it shipped; if it was truly unauthorized, accept rather than argue |
| Unrecognized | The same four items as Fraudulent | Shopify order and fulfillment; the store name the customer sees on the card statement, written into the rebuttal | Whether to email the customer first, since a customer who recognizes the store may drop the dispute |
| Duplicate | Why there were two charges, receipts showing different products, messages telling the customer about both | Shopify transactions on both orders, both receipts, the helpdesk thread | Whether it really was charged twice; if so, Shopify says the chargeback must be accepted |
| Subscription canceled | Your cancellation policy, cancellation emails, when and where the customer saw the policy; for digital products, an access log after the cancellation date | Subscription app records, policy pages, helpdesk thread, app or login activity | Whether the cancellation reached you in time under your own policy |
| Product not received | Fulfillment date and time, billing information, shipping and tracking; for digital products, an access log | Shopify fulfillments, the carrier's tracking events and delivery scan, signature or photo proof where the carrier has it, the 3PL's ship confirmation | Whether the scan really shows delivery to the customer's address; a lost parcel is a refund or a carrier claim, not a fight |
| Product unacceptable | Fulfillment date and time, billing information, shipping and tracking, product descriptions or pictures showing it was as described; proof of any return attempt or replacement | Product page text and images as they were at the time of order, fulfillment and tracking, the returns record and helpdesk thread | Whether the complaint has merit; check the return the customer tried to start before arguing |
| Credit not processed | Refund and return policies, when the customer saw them, refund emails, why no refund was due; proof of any refund already made | Policy pages, refunds and returns on the order, the 3PL's inspection grade, helpdesk thread | Whether the customer was owed a refund under your policy; if a refund already went out, prove it |
| General | Products ordered, fulfillment date, billing information, IP address and country, customer messages, carrier tracking, prior refunds or replacements | Everything above, because the reason does not say what the complaint is | What the customer actually objects to, usually by contacting them |
Two more groups do not appear on that help page. The Admin API's ShopifyPaymentsDisputeReason list has fourteen values, adding bank-side reasons such as insufficient funds, bank cannot process, debit not authorized, incorrect account details and noncompliant, plus customer initiated (checked October 13, 2026). Shopify publishes no evidence list for those, so the automation routes them straight to a person with the order attached. And if the customer drops the dispute, Shopify asks for the bank's withdrawal letter in the Chargeback response form; the pack has a slot for it. Subscription canceled disputes are easier to answer when every failed renewal and dunning email is already logged, which our failed subscription payment follow-up recipe does.
How fast do you have to respond, and what does Shopify do on its own?
Fast. Shopify's page on chargebacks in the admin says due dates range from 7 to 21 days after the chargeback or inquiry is filed, shown in your store's timezone, and that a date with no time means 11:59 PM that day (checked October 13, 2026). Evidence cannot be sent after the deadline. Open disputes appear under Orders with the Chargeback and inquiry status filter, and notices go to the store contact email, which is why a dispute can sit unseen in an inbox nobody reads.
The same page sets the file rules the pack must fit: PDF, JPEG or PNG only, PDFs in PDF/A format under 50 pages, each file up to 2 MB and all files together up to 4 MB, one file per evidence type, and no audio, video or links. Progress saves as you work and can be edited until the due date. Shopify's page on resolving a chargeback adds that once evidence is submitted, you cannot change it or add more (checked October 13, 2026).
If nobody acts, Shopify still responds. The resolving page says Shopify fills in available data, such as product details, addresses and tracking, and sends a response on the due date. For Product not received disputes, the admin page says AI-generated insights are added to the evidence unless you opt out, and the reasons page says Shopify uploads a PDF of all fulfillment events. That default is a floor, not a defense: it cannot add the customer's messages, a carrier's delivery photo or your policy history.
The money moves before you answer. Shopify's chargeback process page says a chargeback takes the disputed amount and a fee at once, lists the US fee as $15, says review can take up to 75 days after you submit, and that the decision is final (checked October 13, 2026). Its chargebacks overview says the fee might be refunded after a win depending on your country or region. An inquiry takes no money while the bank looks at it, but it can escalate.
Can Shopify Flow start the workflow?
Yes. Shopify Flow's Dispute created trigger starts a workflow when a chargeback or inquiry is created on an order, and only for stores that use Shopify Payments (checked October 13, 2026). It passes one variable, the dispute, which is the Admin API's ShopifyPaymentsDispute object: the amount, the evidence due date, the reason details, the status, the order and whether it is an inquiry or a chargeback. Shopify says the trigger corresponds to the disputes/create webhook.
| Job | In Shopify Flow | Where custom code or a workflow tool takes over |
|---|---|---|
| Notice the dispute | Dispute created trigger | The disputes/create and disputes/update webhooks, which need the read_shopify_payments_disputes scope |
| Tag the order and customer, hold related orders | Add order tags, Add customer tags, Hold fulfillment order | Nothing more needed |
| Alert the team with the due date | A Slack or email action using the dispute's fields | A queue that sorts every open dispute by due date |
| Fetch carrier proof and helpdesk messages | No built-in way | Carrier and helpdesk APIs |
| Build the evidence files | No built-in way | PDF building within Shopify's limits |
| Write evidence into the dispute | No built-in action | The disputeEvidenceUpdate mutation |
Two Flow actions bridge the gap. Send HTTP request can hand the dispute to your own service, and Shopify lists it for the Shopify Plus, Advanced and Grow plans. Send Admin API request runs most Admin API mutations but excludes deprecated, asynchronous and some app-specific ones, and the page does not say whether disputeEvidenceUpdate is offered (both checked October 13, 2026). Check the action's mutation list in your store before you design around it. For the wider picture, see our guide to what Shopify Flow automates.
What does the automated evidence pack contain?
One folder per dispute, built by rules in the order the table needs. The order record gives billing and shipping addresses, the purchase IP, line items and the payment history. The fulfillments give ship dates and tracking numbers; the carrier's API gives each tracking event and the delivery scan, with signature or photo proof where the service level includes it. If a 3PL shipped the order, its ship confirmation and pick record join the folder, which is easier when orders already flow to it through a recipe like Shopify orders to a 3PL.
The customer side comes from the helpdesk: every message on that order, exported as one dated PDF, plus refunds, returns and replacements from Shopify. Policy pages are captured as they read on the order date, because the bank asks what the customer saw then. The rules then fill the matching fields of the evidence update input: customerCommunicationFile, shippingDocumentationFile, refundPolicyFile and its disclosure text, and uncategorizedText for the rebuttal. That input also has a submitEvidence flag, false by default (checked October 13, 2026). Our build never sets it.
The AI model has one narrow job: write the rebuttal in plain sentences from the facts the rules gathered, and list what is missing. For example, "tracking shows delivered on the 4th to the shipping address; the customer emailed on the 9th asking about a return; no refund was issued" is a draft a person can check in a minute. It does not invent facts, guess at intent or decide to fight. If the folder has no delivery scan for a Product not received dispute, the draft says so at the top.
What stays with a person?
The decision, and the submit button. The disputeEvidenceUpdate mutation needs the write_shopify_payments_dispute_evidences scope and a staff member with the manage disputes permission (checked October 13, 2026), and submitted evidence is final. So the automation drafts, and a named person reads the pack, fixes the rebuttal and submits it in the admin. A daily list shows every open dispute by due date, and any pack not reviewed three days before its deadline goes to a second person.
Some disputes should not be fought. If you charged twice or charged after a cancellation, Shopify's reasons page says to accept the chargeback. For an inquiry, the resolving page says a full refund can end it, while a partial refund does not prevent a full chargeback. And stores enrolled in a network dispute resolution program have some disputes refunded automatically with no evidence window at all (checked October 13, 2026). The rules mark those cases; a person makes the call. Customer contact goes through your support-ticket triage flow.
None of this changes who decides the outcome. Shopify says the bank decides and Shopify cannot overturn it, so this recipe promises a complete, on-time pack, not a win rate. What you can measure is your own process: packs ready before the due date, disputes that went out with only Shopify's default data, and which reasons you lose most often. Those numbers belong in your weekly review, next to payouts reconciled in your marketplace payouts to QuickBooks or Xero flow.
Who builds chargeback evidence automation for Shopify brands?
Ecomsellertool builds workflow automation on your own Shopify store, carrier accounts and helpdesk. We have built software on Amazon's seller APIs since 2017 and shipped 50+ tools for 100+ teams. For disputes we map your reasons and evidence with you first, then build the trigger, the carrier and helpdesk pulls, the evidence files, the draft and the due-date queue. Send a project brief or read how our workflow automation service works.
The building blocks are work we have shipped:
- Alerts on account events that need a response. For AccountDr we built rule-based automation that notifies Amazon sellers about performance metrics, negative seller comments, hijackers, listing faults and stranded inventory, by push and email, so a person acts before it costs them.
- Carrier connections in one place. Ecom Global was built for 100M+ products, 20+ marketplaces and 13+ carriers, with carrier types, coverage and routing rules held in one shipping master.
The workflow can run on Ecomsellertool Growth OS beside your order and returns flows.
Get your dispute evidence flow built
Send us your dispute reasons and your carriers
Describe the workflow you want automated. We reply with a written plan: scope, timeline and a fixed price.
Frequently asked questions
Can I automate Shopify chargeback responses?
You can automate the gathering and the draft, not the judgment. Shopify Flow's Dispute created trigger or the disputes/create webhook starts the run, and rules pull the order, tracking, delivery scan, customer messages and refunds into the evidence Shopify asks for. A person reads the pack, decides whether to fight and submits it, because submitted evidence cannot be changed.
Does Shopify Flow have a chargeback trigger?
Yes. Shopify Flow's Dispute created trigger starts a workflow when a chargeback or inquiry is created on an order, for stores that use Shopify Payments. It passes the dispute object, so a workflow can tag the order and customer, hold fulfillment of related orders and alert your team. Flow has no built-in action that writes evidence.
How long do I have to respond to a Shopify chargeback?
Shopify says evidence is due 7 to 21 days after the chargeback or inquiry is filed. The due date shows on the order in your store's timezone; with no time shown, it is 11:59 PM on that date. Evidence cannot be sent after the deadline, and Shopify sends what it collected on the due date if you have not submitted.
What evidence wins a Shopify chargeback?
No evidence wins every time, because the cardholder's bank decides. Shopify lists evidence per reason: for Product not received, fulfillment dates, billing details and tracking; for Fraudulent, also the IP address and country; for Credit not processed, your refund policy and when the customer saw it. Send what answers the reason the customer gave.
Should I refund the customer instead of fighting?
For an inquiry, a full refund can end it; Shopify notes a partial refund does not prevent a full chargeback. Once a chargeback is made you cannot refund the customer, because the bank already took the money. If you made the mistake, such as a double charge, Shopify says to accept the chargeback.
Can the automation submit evidence through the API?
The disputeEvidenceUpdate mutation can write the evidence fields and has a submitEvidence flag, with the write_shopify_payments_dispute_evidences scope and a staff member with the manage disputes permission. We leave that flag off and let a person submit, because nothing can be added or changed after submission.
