A chargeback dispute happens when a customer contacts their bank to reverse a charge. This guide explains the dispute lifecycle and how Fidro helps you handle them.
The dispute lifecycle
- Customer contacts their bank — They claim the charge is fraudulent, not as described, or unauthorized
- Bank creates a dispute — The charge amount is immediately deducted from your Stripe balance
- Stripe notifies you — You get a
charge.dispute.createdwebhook event - Fidro processes the event — The transaction is marked as "Disputed" in your dashboard
- You respond (or Fidro auto-refunds) — You have a limited window to submit evidence or accept the dispute
- Bank decides — The bank reviews evidence and rules in your favour or the customer's
How Fidro handles disputes
When Fidro receives a charge.dispute.created event:
- It finds the matching transaction in your dashboard (by charge ID)
- It marks the transaction as Disputed with the reason, status, and timestamp
- If you have auto-refund on dispute enabled, it issues a refund via the Stripe API
- If you have dispute notifications enabled, it emails you immediately
Dispute reasons
Stripe categorises disputes by reason. Common ones:
| Reason | What it means |
|---|---|
fraudulent |
Customer claims they didn't make the purchase (most common) |
duplicate |
Customer claims they were charged twice |
product_not_received |
Customer claims they didn't receive what they paid for |
product_unacceptable |
Customer received the product but claims it's defective |
subscription_canceled |
Customer claims they cancelled but were still charged |
unrecognized |
Customer doesn't recognise the charge on their statement |
Why early detection matters
The best way to handle disputes is to prevent them. Fidro's risk scoring catches high-risk transactions at payment time, before the customer has a chance to dispute.
If a transaction scores 85/100 at payment time and you auto-refund it, that's a $0 loss. If you let it through and the customer disputes it 30 days later, you lose the transaction amount plus the $15–$25 dispute fee.
Viewing disputes in your dashboard
The Transactions page shows dispute status for every transaction:
- Purple "Disputed" badge — A dispute has been filed
- Grey "Refunded" badge — The transaction was refunded (manually or automatically)
Click any disputed transaction to see the full details: dispute ID, reason, status, and timestamp, along with the original risk score and checks.
Protecting your chargeback ratio
Stripe monitors your chargeback ratio (disputes / total transactions). If it exceeds 0.75–1%, you risk:
- Higher processing fees
- Mandatory holds on your balance
- Account review or termination
Fidro helps keep your ratio low by:
- Scoring transactions at payment time to catch fraud early
- Auto-refunding high-risk payments before disputes are filed
- Alerting you to disputes so you can respond quickly