Account & Security

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.

7 min read

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

  1. Customer contacts bank - They say "I didn't make this charge"
  2. Bank takes money back - The charge amount is removed from your account
  3. You get notified - ClapPay sends you a webhook and email
  4. You submit evidence - Prove the charge was valid
  5. Bank decides - They review everything and pick a winner
  6. 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

ReasonWhat It MeansWin Rate
FraudulentCustomer says they didn't make the purchaseMedium - depends on evidence
Product not receivedCustomer says they never got itHigh - if you have shipping proof
Product not as describedCustomer says it wasn't what they expectedLow - hard to prove
DuplicateCustomer was charged twiceLow - refund before responding
Subscription canceledCustomer says they canceled but got chargedMedium - 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:

  1. Go to Payments → Disputes
  2. Click on the dispute
  3. Upload your evidence
  4. Write a clear explanation of what happened
  5. 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.

Related Articles