WooCommerce chargebacks belong to the gateway


TL;DR
WooCommerce has no dispute process of its own. Whichever gateway processed the payment owns the chargeback: Stripe if you use WooPayments or Stripe directly, PayPal if the customer paid that way. That determines your response deadline, your fee, and where the evidence gets submitted. The practical consequence is that WooCommerce store data and the dispute live in two different systems, so the evidence a gateway needs has to be pulled out of WordPress by hand unless something connects them.
There is no WooCommerce dispute process. WooCommerce records the order; it does not take the payment, so it is not a party to the chargeback.
That sounds pedantic until you go looking for the dispute in your WordPress admin and cannot find it, because it was never there.
Your gateway owns the dispute
Whoever processed the payment sets every term that matters.
| If you process through | The dispute lives in | Deadline set by |
|---|---|---|
| WooPayments | Stripe's infrastructure | Stripe, 7 to 21 days by network |
| Stripe directly | Stripe | Stripe |
| PayPal | PayPal, in four stages | PayPal, 10 days on a claim |
| Another gateway | That gateway | That gateway |
WooPayments is built on Stripe, so its dispute mechanics follow Stripe's: a dispute received fee charged on arrival and never returned, a counter fee charged if you submit evidence and returned if you win, and the same response windows. I go through that structure in Stripe chargeback fees, and the one that comes back if you win.
If the customer paid with PayPal, you are in a different system entirely, with a dispute stage, a claim stage and a hard 10-day response window on claims. Those four stages behave very differently from each other.
Note
A WooCommerce store running both Stripe and PayPal has two dispute processes with different deadlines, different fees and different evidence formats. Neither of them appears in WooCommerce.The split that costs you cases
Here is the operational problem specific to this stack.
The evidence lives in WordPress: the order record, the customer's account history, the fulfilment status, the shipping details, whatever your plugins recorded about the session. The dispute lives in the gateway dashboard, on a clock.
Nothing connects them by default. So responding means opening WordPress, finding the order, exporting or screenshotting what you need, and pasting it into the gateway's evidence form. That is the 20 to 45 minutes the whole category talks about, and on WooCommerce it is toward the upper end because of the system switching.
The consequence is predictable. Small disputes do not get answered, because the effort is fixed regardless of the amount and it is not worth 40 minutes for a $60 order. That is a decision most WooCommerce merchants are making by default rather than deliberately.
Where the evidence actually is
Worth knowing before a dispute arrives, because the clock is short.
The order record has the line items, the billing and shipping addresses, and the totals. This is the baseline.
Customer account history matters more than merchants think. A customer with six previous undisputed orders at the same address is strong evidence against an unauthorised-use claim.
Fulfilment and tracking usually sit in a shipping plugin rather than in the core order, so know which one and how to export from it.
Session and device data may exist depending on your analytics and fraud plugins. IP at checkout matching IP at previous orders is useful and frequently unrecorded.
The confirmation email and its send record, which is often in a transactional email plugin or an external provider.
Five systems, potentially, for one dispute. Establish where each lives before you are inside a 7-day window.
What actually reduces the work
Standardise the descriptor first. WooCommerce stores frequently bill under a hosting or legal entity name that has nothing to do with the storefront. That single mismatch generates disputes from customers who did nothing wrong, and it is a gateway setting rather than a WooCommerce one.
Decide a threshold and apply it. If you are going to write off disputes under a certain value, do it explicitly and stop half-fighting them. The worst outcome is spending 30 minutes on a weak submission.
Connect the evidence to the dispute. Reclaim handles representment for Stripe, PayPal and Shopify Payments, builds the evidence from order and payment data, and files before the deadline. It is free with no success fee. On a WooCommerce store the value is specifically in removing the system-switching, which is what makes small disputes uneconomic to answer manually.
Self-hosting changes your retention obligations
One consequence of running your own store that hosted platforms absorb for you.
Disputes can arrive months after the order. Under the Fair Credit Billing Act a consumer has 60 days from the first statement showing the charge to notify their issuer, and the issuer then has up to 90 days to resolve, so a case can legitimately surface well over four months after the sale. Card network rules frequently allow longer still.
On a self-hosted store, whether that evidence still exists is your decision rather than your platform's. Order records persist, but session data, fraud-plugin logs and transactional email records are often pruned aggressively by plugins with their own retention defaults, and those defaults are usually set for database size rather than for dispute defence.
Check the retention setting on every plugin that holds something you would want to submit. A log that was deleted at 30 days is the same as a log that was never recorded, and you will find out at the worst moment. I go through the legal timeline in the Fair Credit Billing Act is why chargebacks exist.
The honest part
I have written this around Stripe and PayPal because those cover most WooCommerce volume and they are the gateways Reclaim supports. If you process through something else, the framework holds but the specifics do not, and you should read your gateway's own dispute documentation rather than this.
WooPayments being built on Stripe is well established, but Automattic can change how much of Stripe's behaviour it exposes. Check your actual dashboard for your actual fee and deadline rather than assuming Stripe's published figures pass through unchanged.
And the plugin-dependence point cuts both ways. A WooCommerce store with a well-chosen stack can have better evidence available than a hosted platform allows, because you control what gets recorded. The problem is retrieval speed under a deadline, not availability.
Frequently asked questions
How do I handle a chargeback on WooCommerce?
Through your payment gateway rather than through WooCommerce, which has no dispute process of its own. If you use WooPayments or Stripe the dispute lives in Stripe with its deadlines and fees; if the customer paid by PayPal it follows PayPal's dispute, claim and chargeback stages. The evidence has to be pulled from WordPress and submitted in the gateway.
Does WooCommerce charge a chargeback fee?
No. WooCommerce does not process payments, so any fee comes from your gateway. On WooPayments and Stripe that means a dispute received fee charged when the dispute arrives and never returned, plus a counter fee if you submit evidence which is returned if you win.
Where is the chargeback evidence on a WooCommerce store?
Spread across several systems. The order record and customer history are in WordPress, fulfilment and tracking are usually in a shipping plugin, session and device data depend on your analytics or fraud plugins, and the confirmation email may sit with an external provider. Map these before a dispute arrives, since response windows can be as short as seven days.
Why do WooCommerce chargebacks take longer to respond to?
Because the dispute and the evidence live in different systems. The gateway holds the dispute and the clock, WordPress holds the order data, and nothing connects them by default, so responding means exporting from one and pasting into the other. That fixed effort is why small disputes often go unanswered.
The thing to establish before your next dispute, not during it: open your gateway dashboard and find where evidence gets submitted, then open a recent order in WordPress and time how long it takes to assemble what that form asks for. Whatever that number is, it is the real reason your small disputes go unfought.