Xendit sends a POST request to your configured endpoint whenever a dispute status changes. The payload includes the event name alongside the dispute object.
Your Xendit unique webhook token to verify the origin of the webhook. It is highly recommended for your integration to verify this value.
New Dispute - Action Required
{
"event": "dispute.action_required",
"id": "mi-dspt-f44d259f-fd9d-4de9-80de-1eef3f1506b7",
"channel_code": "CARDS",
"card_brands": "VISA",
"status": "ACTION_REQUIRED",
"currency": "USD",
"amount": {
"initial": "1000.00",
"terminal": null
},
"created_at": "2026-03-01T19:50:51.724Z",
"updated_at": "2026-03-01T19:50:51.724Z",
"due_date": "2026-03-15T19:50:51.724Z",
"note": "Please provide evidence of delivery.",
"category": {
"name": "fraud",
"allowed_evidence": [
{
"name": "proof_of_delivery",
"type": "FILE",
"max_length": 5242880,
"is_recommended": true,
"max_evidences": 3
},
{
"name": "explanation",
"type": "TEXT",
"max_length": 255,
"is_recommended": false,
"max_evidences": 3
}
]
},
"related_disputes": [],
"payment_id": "py-59a3cf39-2a7d-4733-a3e3-8177c78090f7",
"reference_id": "ref-123456"
}Dispute Under Review
{
"event": "dispute.under_review",
"id": "mi-dspt-f44d259f-fd9d-4de9-80de-1eef3f1506b7",
"channel_code": "CARDS",
"card_brands": "VISA",
"status": "UNDER_REVIEW",
"currency": "USD",
"amount": {
"initial": "1000.00",
"terminal": null
},
"created_at": "2026-03-01T19:50:51.724Z",
"updated_at": "2026-03-05T10:30:00Z",
"due_date": "2026-03-15T19:50:51.724Z",
"note": "Please provide evidence of delivery.",
"category": {
"name": "fraud",
"allowed_evidence": [
{
"name": "proof_of_delivery",
"type": "FILE",
"max_length": 5242880,
"is_recommended": true,
"max_evidences": 3
},
{
"name": "explanation",
"type": "TEXT",
"max_length": 255,
"is_recommended": false,
"max_evidences": 3
}
]
},
"evidences": [
{
"id": "mi-dspt-evd-12345",
"type": "FILE",
"category_slug": "proof_of_delivery",
"created_at": "2026-03-02T09:15:00Z",
"filename": "delivery_receipt.pdf",
"mime_type": "application/pdf"
}
],
"related_disputes": [],
"payment_id": "py-59a3cf39-2a7d-4733-a3e3-8177c78090f7",
"reference_id": "ref-123456"
}Dispute Won
{
"event": "dispute.won",
"id": "mi-dspt-f44d259f-fd9d-4de9-80de-1eef3f1506b7",
"channel_code": "CARDS",
"card_brands": "VISA",
"status": "WON",
"status_reason": "CHALLENGED",
"currency": "USD",
"amount": {
"initial": "1000.00",
"terminal": null
},
"created_at": "2026-03-01T19:50:51.724Z",
"updated_at": "2026-03-20T14:00:00Z",
"due_date": "2026-03-15T19:50:51.724Z",
"category": {
"name": "fraud",
"allowed_evidence": [
{
"name": "proof_of_delivery",
"type": "FILE",
"max_length": 5242880,
"is_recommended": true,
"max_evidences": 3
},
{
"name": "explanation",
"type": "TEXT",
"max_length": 255,
"is_recommended": false,
"max_evidences": 3
}
]
},
"evidences": [
{
"id": "mi-dspt-evd-12345",
"type": "FILE",
"category_slug": "proof_of_delivery",
"created_at": "2026-03-02T09:15:00Z",
"filename": "delivery_receipt.pdf",
"mime_type": "application/pdf"
}
],
"related_disputes": [],
"payment_id": "py-59a3cf39-2a7d-4733-a3e3-8177c78090f7",
"reference_id": "ref-123456"
}Dispute Lost
{
"event": "dispute.lost",
"id": "mi-dspt-f44d259f-fd9d-4de9-80de-1eef3f1506b7",
"channel_code": "CARDS",
"card_brands": "VISA",
"status": "LOST",
"status_reason": "EXCEEDED_DEADLINE",
"currency": "USD",
"amount": {
"initial": "1000.00",
"terminal": null
},
"created_at": "2026-03-01T19:50:51.724Z",
"updated_at": "2026-03-20T14:00:00Z",
"due_date": "2026-03-15T19:50:51.724Z",
"note": "Please provide evidence of delivery.",
"category": {
"name": "fraud",
"allowed_evidence": [
{
"name": "proof_of_delivery",
"type": "FILE",
"max_length": 5242880,
"is_recommended": true,
"max_evidences": 3
},
{
"name": "explanation",
"type": "TEXT",
"max_length": 255,
"is_recommended": false,
"max_evidences": 3
}
]
},
"evidences": [
{
"id": "mi-dspt-evd-12345",
"type": "FILE",
"category_slug": "proof_of_delivery",
"created_at": "2026-03-02T09:15:00Z",
"filename": "delivery_receipt.pdf",
"mime_type": "application/pdf"
}
],
"related_disputes": [],
"payment_id": "py-59a3cf39-2a7d-4733-a3e3-8177c78090f7",
"reference_id": "ref-123456"
}Dispute Due Date Approaching
{
"event": "dispute.due_date_approaching",
"id": "mi-dspt-f44d259f-fd9d-4de9-80de-1eef3f1506b7",
"channel_code": "CARDS",
"card_brands": "VISA",
"status": "ACTION_REQUIRED",
"currency": "USD",
"amount": {
"initial": "1000.00",
"terminal": null
},
"created_at": "2026-03-01T19:50:51.724Z",
"updated_at": "2026-03-13T08:00:00Z",
"due_date": "2026-03-15T19:50:51.724Z",
"category": {
"name": "fraud",
"allowed_evidence": [
{
"name": "proof_of_delivery",
"type": "FILE",
"max_length": 5242880,
"is_recommended": true,
"max_evidences": 3
},
{
"name": "explanation",
"type": "TEXT",
"max_length": 255,
"is_recommended": false,
"max_evidences": 3
}
]
},
"related_disputes": [],
"payment_id": "py-59a3cf39-2a7d-4733-a3e3-8177c78090f7",
"reference_id": "ref-123456"
}The specific lifecycle event. dispute.action_required: dispute raised, response required. dispute.under_review: challenge submitted. dispute.won: ruled in your favor. dispute.lost: ruled against you. dispute.due_date_approaching: deadline is near.
Unique dispute identifier.
Payment channel through which the original transaction was made.
Card network associated with the dispute. Only present when channel_code is CARDS.
Dispute status at the time this webhook was fired.
Currency of the disputed amount, in ISO-4217 format.
The amount when the dispute was first raised.
The final resolved amount. May differ from initial for partial disputes. Null while unresolved.
Response deadline for this dispute.
Optional guidance message from Xendit explaining the dispute.
Dispute category with the evidence categories allowed for it. Null when the category is not set or could not be resolved.
Slug of the dispute category.
Evidence category slug. Use this exact value as the multipart form field name when calling POST /v1/disputes//evidences.
FILE requires a file upload; TEXT accepts inline text content.
Maximum size for this evidence category. For FILE: maximum file size in bytes. For TEXT: maximum character count.
When true, Xendit recommends submitting this evidence type to strengthen your challenge.
Maximum number of evidence items accepted for this evidence category.
Xendit payment identifier for the original disputed transaction.
Your reference ID for the original transaction.
Flat list of evidence items (not grouped).
Xendit-generated unique identifier for this evidence item. Use in PATCH and DELETE evidence endpoints.
Evidence type. FILE indicates a file attachment. TEXT indicates inline text content.
Slug of the evidence category this belongs to.
The text content of this evidence item. Only present when type is TEXT.
MIME type of the uploaded file (e.g., application/pdf, image/jpeg). Only present when type is FILE.
Original filename of the uploaded file. Only present when type is FILE.
MD5 hash of the file content, prefixed with md5:. Only present when type is FILE.
Timestamp when this evidence item was submitted, in ISO 8601 format.
OK. The webhook was received and processed.