Disputes & Chargebacks
When a customer tells their bank they didn't make a purchase, you get a dispute. Learn how to respond and how to prevent them.
What is a Dispute?
A dispute (also called a chargeback) happens when a customer contacts their bank and says they didn't authorize a charge. The bank takes the money back while they investigate.
Customers might dispute a charge because:
- They don't recognize the charge on their statement
- They didn't receive what they ordered
- The product wasn't as described
- Someone stole their card and used it
- They forgot they made the purchase
Important: Disputes cost money even if you win. There's a $15-25 fee per dispute, plus the hassle of gathering evidence.
How Disputes Work
- Customer contacts bank - They say "I didn't make this charge"
- Bank takes money back - The charge amount is removed from your account
- You get notified - ClapPay sends you a webhook and email
- You submit evidence - Prove the charge was valid
- Bank decides - They review everything and pick a winner
- Case closes - If you win, the money comes back. If not, it's gone
The whole process takes 60-90 days. During that time, the money is "on hold."
Types of Disputes
| Reason | What It Means | Win Rate |
|---|---|---|
| Fraudulent | Customer says they didn't make the purchase | Medium - depends on evidence |
| Product not received | Customer says they never got it | High - if you have shipping proof |
| Product not as described | Customer says it wasn't what they expected | Low - hard to prove |
| Duplicate | Customer was charged twice | Low - refund before responding |
| Subscription canceled | Customer says they canceled but got charged | Medium - need cancellation records |
How to Respond to a Dispute
When you get a dispute, you have a limited time to respond (usually 7-21 days). Here's what to do:
Step 1: Gather Evidence
Collect everything that proves the charge was valid:
- Order confirmation or receipt
- Shipping tracking and delivery confirmation
- Customer communication (emails, chat logs)
- Proof the customer received and used the product
- Your refund and cancellation policies
- Previous successful orders from this customer
Step 2: Submit Your Response
In the Dashboard:
- Go to Payments → Disputes
- Click on the dispute
- Upload your evidence
- Write a clear explanation of what happened
- Submit before the deadline
Tip: Be factual, not emotional. Banks respond to evidence, not complaints. Stick to the facts.
Best Evidence by Dispute Type
For "Fraudulent" disputes
- • Proof the customer logged in to their account
- • Matching billing and shipping addresses
- • Previous orders from the same customer
- • IP address and device fingerprint
- • 3D Secure authentication result
For "Product not received"
- • Shipping carrier tracking number
- • Delivery confirmation with signature
- • Photo of delivered package (if available)
- • Proof customer provided the shipping address
For "Subscription canceled"
- • Record of when they actually canceled
- • Your terms of service showing billing policy
- • Evidence they continued using the service
- • Confirmation email of the charge
How to Prevent Disputes
The best dispute is one that never happens. Here's how to reduce them:
Use a Clear Billing Name
Your billing descriptor is what shows on the customer's credit card statement. Make it recognizable. "ACME STORE" is better than "PYMNT*X39SKL".
Send Receipts and Confirmations
Email customers right after purchase. Include what they bought, when, and how much. This reminds them they made the purchase.
Respond to Customer Questions Fast
Many disputes happen because customers couldn't reach you. Make it easy to contact support and respond quickly.
Refund Before They Dispute
If a customer is unhappy, give them a refund before they go to their bank. Refunds are free. Disputes cost money.
Use Fraud Prevention
- Enable 3D Secure for high-risk transactions
- Use address verification (AVS)
- Check CVV on all transactions
- Be extra careful with international orders
Dispute Webhooks
Set up webhooks to know immediately when disputes happen:
app.post('/webhooks/clappay', async (req, res) => {
const event = req.body;
switch (event.type) {
case 'charge.dispute.created':
// New dispute - respond quickly!
const dispute = event.data.object;
console.log('New dispute:', dispute.id);
console.log('Amount:', dispute.amount);
console.log('Reason:', dispute.reason);
// Alert your team
await sendDisputeAlert(dispute);
break;
case 'charge.dispute.closed':
// Dispute resolved
const result = event.data.object;
if (result.status === 'won') {
console.log('We won the dispute!');
} else {
console.log('Dispute lost:', result.id);
}
break;
}
res.status(200).send('OK');
});Keep Your Dispute Rate Low
Card networks (Visa, Mastercard) monitor dispute rates. If you have too many:
- You may face higher fees
- Your account could be flagged
- In extreme cases, you could lose the ability to accept cards
Target: Keep disputes under 0.9% of transactions. Under 0.5% is good. Under 0.1% is excellent.
Check your dispute rate in Dashboard → Analytics → Disputes.