Skip to main content
Dispute webhooks notify your endpoint about disputes raised on your payments — when a customer opens a dispute, when you challenge it, and when it is resolved. This lets you react to disputes without polling the Disputes API.
Dispute webhooks cannot be managed through the API. Unlike payment webhooks, they are not registered via the Register a webhook endpoint. To start receiving them, ask the Integrations Team to enable them for your merchant_code and provide your endpoint URL.
Disputes have no test mode: dispute webhooks are sent for live payments only (the same as the Disputes API).

Payload

A dispute webhook is a POST request with a JSON body that links the dispute to the affected payment:

Dispute statuses

The status field tells you what happened to the dispute:

Delivery

Dispute webhooks use the same delivery mechanism as payment webhooks — the same endpoint(s), optional authentication header, retry policy, and server IPs. In particular:
  • Acknowledge each delivery with 200 and process it asynchronously — see Best Practices.
  • Delivery order is not guaranteed and a notification may occasionally be delivered twice — deduplicate by dispute_id + status.
  • Failed deliveries are retried — see Retry Attempts.