dispute.createddispute.closeddispute.createddispute.closeddispute.closed is:data.id as the unique identifier for each individual dispute, rather than assuming that there can only be one dispute for an order based solely on merchant_order_id or payment_intent_id.dispute.createddispute.closedapi_version Restrictionapi_version only supports the following version:2026-04{
"id": "Event ID",
"name": "Event type",
"data": {
"id": "Dispute order ID",
"status": "Dispute status",
"retrieval": false,
"amount": 500.23,
"currency": "USD",
"reason": "Dispute reason",
"merchant_no": "500000000008901",
"app_id": "www.pay.com",
"create_at": "2026-04-14T04:22:25Z",
"payment_intent_id": "1012604141216938827",
"merchant_order_id": "19d82600-e9d1-4f43-934d-18090d6db098",
"payment_method_details": {
"type": "card",
"brand": "visa"
}
}
}| Field | Type | Description |
|---|---|---|
id | string | Webhook event ID, uniquely identifies one notification |
name | string | Event type. Possible values are dispute.created or dispute.closed |
data | object | Dispute business data |
data Field Description| Field | Type | Description |
|---|---|---|
id | string | Dispute order ID, uniquely identifies the current dispute |
status | string | Current dispute status |
retrieval | boolean | Whether this is a retrieval. true indicates retrieval, false indicates a formal chargeback |
amount | number | Original disputed amount of this dispute |
amount_won | number | Amount actually won back in this dispute. Not returned if the merchant loses |
currency | string | Currency |
reason | string | Dispute reason |
reason_code | string | Dispute reason code |
merchant_no | string | Merchant number |
app_id | string | Application ID |
create_at | string | Dispute creation time, in UTC time and ISO 8601 format |
payment_intent_id | string | Corresponding payment order ID |
merchant_order_id | string | Merchant order ID |
payment_method_details | object | Payment method details |
payment_method_details Field Description| Field | Type | Description |
|---|---|---|
type | string | Payment method type, such as card, klarna |
brand | string | Card brand: visa, master, dc, jcb, ae |
| Status Value | Description |
|---|---|
need_response | The current dispute/retrieval still requires merchant action |
won | The merchant won or partially won. The specific won amount is determined by amount_won |
lost | The merchant lost |
warning_closed | The retrieval process has been closed |
retrieval = true indicates that the current event is a retrieval process.retrieval = false indicates that the current event is a formal chargeback process.dispute.closed only indicates that the current dispute has been closed. The final result is reflected by status.status is won or lost.status is warning_closed.status remains won, and the specific won amount is determined by amount_won.dispute.created is pushedneed_responsedispute.closed is pushedwonlostwarning_closedmerchant_order_id or payment_intent_id may correspond to multiple different disputes.closeddata.id as the primary key of the disputemerchant_order_id / payment_intent_id as association dimensionsdispute.closed eventdispute.created Example{
"id": "evt_768654c9e6fe48c3a73e48108c5a9e0f",
"name": "dispute.created",
"data": {
"id": "2012604141222938830",
"status": "need_response",
"retrieval": false,
"amount": 100,
"currency": "USD",
"reason": "Goods/ services ordered but not received",
"reason_code": "unauthorized_purchase",
"merchant_no": "500000000008901",
"app_id": "www.pay.com",
"create_at": "2026-04-14T04:22:25Z",
"payment_intent_id": "1012604141216938827",
"merchant_order_id": "19d82600-e9d1-4f43-934d-18090d6db098",
"payment_method_details": {
"type": "card",
"brand": "visa"
}
}
}
dispute.closed Example{
"id": "evt_45322c063a9f47bb89fc0204a406dc8b",
"name": "dispute.closed",
"data": {
"id": "2012604141356938847",
"status": "lost",
"retrieval": false,
"amount": 100,
"currency": "USD",
"reason": "Goods/ services ordered but not received",
"reason_code":"unauthorized_purchase",
"merchant_no": "500000000008901",
"app_id": "www.pay.com",
"create_at": "2026-04-14T05:56:11Z",
"payment_intent_id": "1012604141355938845",
"merchant_order_id": "889219a2-e50d-4cc5-b34f-0a5851b5be78",
"payment_method_details": {
"type": "klarna"
}
}
}{
"id": "evt_45322c063a9f47bb89fc0204a406dc8b",
"name": "dispute.closed",
"data": {
"id": "2012604141356938847",
"status": "won",
"retrieval": false,
"amount": 100,
"amount_won": 100,
"currency": "USD",
"reason": "Goods/ services ordered but not received",
"reason_code":"unauthorized_purchase",
"merchant_no": "500000000008901",
"app_id": "www.pay.com",
"create_at": "2026-04-14T05:56:11Z",
"payment_intent_id": "1012604141355938845",
"merchant_order_id": "889219a2-e50d-4cc5-b34f-0a5851b5be78",
"payment_method_details": {
"type": "klarna"
}
}
}{
"id": "evt_45322c063a9f47bb89fc0204a406dc8b",
"name": "dispute.closed",
"data": {
"id": "2012604141356938847",
"status": "won",
"retrieval": false,
"amount": 100,
"amount_won": 50,
"currency": "USD",
"reason": "Goods/ services ordered but not received",
"reason_code":"unauthorized_purchase",
"merchant_no": "500000000008901",
"app_id": "www.pay.com",
"create_at": "2026-04-14T05:56:11Z",
"payment_intent_id": "1012604141355938845",
"merchant_order_id": "889219a2-e50d-4cc5-b34f-0a5851b5be78",
"payment_method_details": {
"type": "klarna"
}
}
}{
"id": "evt_45322c063a9f47bb89fc0204a406dc8b",
"name": "dispute.closed",
"data": {
"id": "2012604141356938847",
"status": "warning_closed",
"retrieval": true,
"amount": 100,
"currency": "USD",
"reason": "Goods/ services ordered but not received",
"reason_code":"unauthorized_purchase",
"merchant_no": "500000000008901",
"app_id": "www.pay.com",
"create_at": "2026-04-14T05:56:11Z",
"payment_intent_id": "1012604141355938845",
"merchant_order_id": "889219a2-e50d-4cc5-b34f-0a5851b5be78",
"payment_method_details": {
"type": "klarna"
}
}
}application/json request bodies.dispute.closed means the current dispute has been closed. It does not mean that no further disputes can occur for the order.