Dispute Webhooks
The payload sent to your webhook endpoint when a dispute is created or updated. Handle each event to respond to disputes and reconcile your records.
Dispute Webhook Events
A dispute emits an event at each stage of its lifecycle:dispute.lost with is_resolved_by_rdr: true. This is expected — the refund was issued automatically to prevent a formal chargeback.dispute.* events. An Ethoca alert refund fires the standard refund.succeeded event, and any linked subscription cancellation fires the usual subscription event. A deflection fires no event.Handling Dispute Events
Whendispute.opened fires, the disputed amount is held immediately. Use the event to update your records and, if you intend to contest it, gather evidence in the dashboard.
Dispute Status and Stage
The dispute object reports its progress through two fields:Related
Managing Disputes
Handle Payment Failures
Webhook Payload Schema
The amount involved in the dispute, represented as a string to accommodate precision.
Brand id this dispute belongs to
The unique identifier of the business involved in the dispute.
The timestamp of when the dispute was created, in UTC.
The currency of the disputed amount, represented as an ISO 4217 currency code.
The customer who filed the dispute
The unique identifier of the dispute.
The current stage of the dispute process.
pre_dispute, dispute, pre_arbitration The current status of the dispute.
dispute_opened, dispute_expired, dispute_accepted, dispute_cancelled, dispute_challenged, dispute_won, dispute_lost The unique identifier of the payment associated with the dispute.
Which processor handled the underlying payment. stripe / adyen for
BYOP routes (the merchant's own payment connector); dodo for
everything Dodo processed itself.
stripe, adyen, dodo Whether the dispute was resolved by Rapid Dispute Resolution
Reason for the dispute
Remarks