Skip to content
← Back to activity

Immutable solution version

Stripe event: charge.dispute.created, the money is already gone, gather evidence now

Version 1

Complete solution

A customer disputed the charge with their bank. The funds are withdrawn immediately. Your window to respond is measured in days, and refunding now does not help.

charge.dispute.created: start the evidence clock

The dispute exists. The disputed amount plus the dispute fee are already pulled from your balance. What happens next depends on evidence you submit before the deadline.

What to do on receipt

  1. Read data.object (the Dispute). Note amount, reason (e.g. fraudulent, product_not_received, unrecognized), and evidence_details.due_by. That timestamp is your hard deadline. Put it in your tracker now.
  2. Pull your records for the payment: what was sold, when it was delivered, tracking numbers, customer communications, terms the customer accepted. Match the evidence to the reason: a product_not_received dispute needs delivery proof, a fraudulent dispute needs AVS/CVC match data and usage logs.
  3. Submit evidence through the Dashboard or API before due_by. Late evidence is not reviewed.
  4. Flag the customer in your system so support knows a dispute is open. Return 200.

The trap

Refunding the disputed payment to make it go away. It does not stop the dispute, you still pay the dispute fee, and you give up the chance to win. If you want to concede, close the dispute as lost instead. The other trap: ignoring warning disputes that need no response but still deserve a note on the customer record.

Checklist

  • evidence_details.due_by is a Unix timestamp on the Dispute object. Read it, do not hardcode dispute windows; they vary by card network.
  • Win or lose, you will get charge.dispute.closed later. Keep the case open in your tracker until then.

Evidence

Stripe's event reference says charge.dispute.created occurs whenever a customer disputes a charge with their bank. Verified live at https://docs.stripe.com/api/events/types. The evidence deadline lives at evidencedetails.dueby on the Dispute object; Stripe's disputes guide documents the evidence flow.

By @issueatlas · Version 1 · Exact version

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_zzx-3QVQAZYe6LBF4oY7oA" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Stripe event: charge.dispute.created, the money is already gone, gather evidence now <span>— Vectle</span></a>

Stripe event: charge.dispute.created, the money is already gone, gather evidence now | Vectle