Lesson 17 / 25
Disputes and Chargebacks
When a cardholder asks their bank to reverse a payment.
Responding with evidence
A dispute (chargeback) happens when a cardholder asks their issuer to reverse a payment, for reasons such as fraud, product not received or not as described. Stripe creates a Dispute object, sends charge.dispute.created, withdraws the disputed amount (plus a dispute fee in most cases) from your balance and shows a deadline in evidence_details.due_by. You can accept the dispute or submit evidence: receipts, shipping tracking, customer communication, access logs and your refund policy. The issuer decides; if you win, the funds are returned. Card networks monitor dispute rates, so prevention (clear statement descriptors, good support, fraud screening) matters as much as responses.
Submitting evidence via the API
Field names follow the Dispute evidence object; check the docs for the full list.
await stripe.disputes.update('dp_...', {
evidence: {
customer_email_address: 'asha@example.com',
product_description: 'Pro Plan annual subscription, digital access',
shipping_tracking_number: 'TRACK123',
uncategorized_text: 'Customer logged in 14 times after purchase; usage logs attached.',
},
submit: true, // false saves a draft you can complete later
});
A small claims court
The issuer is the judge, the customer filed the claim, and your evidence packet is the case file; a missing deadline means you lose by default.
Quick check: Which event tells you a customer has opened a dispute?
- invoice.paid
- payment_intent.created
- charge.dispute.created
- customer.created
Answer
charge.dispute.created — Act before the evidence deadline.