Pular para o conteúdo principal

Eventos de disputa (dispute.*)

Contestações abertas pelo devedor (ou registradas pelo operador). Abrir uma disputa pausa a régua da cobrança na hora. Em todos os eventos, data é a disputa completa.

Valores de type: already_paid · not_recognized · wrong_amount · service_not_provided · incorrect_invoice · wrong_recipient · other. Valores de status: open · under_review · resolved_valid · resolved_invalid · canceled. Valores de resolutionEffect: resume_rule · adjust_amount · cancel_charge · write_off.

dispute.created

Dispara na abertura da contestação (uma cobrança só pode ter uma disputa aberta por vez).

{
"event": "dispute.created",
"timestamp": "2026-07-23T12:00:00.000Z",
"organizationId": "0f7a3c1e-2b4d-4e6f-8a9b-1c2d3e4f5a6b",
"data": {
"id": "2c4e6a8b-1d3f-4a5c-8e7f-9b1d3f5a7c9e",
"publicId": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8091",
"organizationId": "0f7a3c1e-2b4d-4e6f-8a9b-1c2d3e4f5a6b",
"workspaceId": null,
"companyId": null,
"businessUnitId": null,
"chargeId": "4a2b6c8d-1e3f-4a5b-9c7d-2e4f6a8b0c1d",
"personId": "7c1e9f2a-3b4d-4c5e-8f6a-1b2c3d4e5f60",
"type": "wrong_amount",
"reason": "Valor divergente da proposta comercial",
"disputedAmount": "350.00",
"isFullDispute": false,
"documents": null,
"status": "open",
"assignedToId": null,
"slaDueAt": "2026-07-30T12:00:00.000Z",
"resolution": null,
"resolutionEffect": null,
"resolvedById": null,
"openedAt": "2026-07-23T12:00:00.000Z",
"resolvedAt": null,
"deletedAt": null,
"customMetadata": null,
"metadata": {},
"externalId": null,
"createdAt": "2026-07-23T12:00:00.000Z",
"updatedAt": "2026-07-23T12:00:00.000Z"
}
}

dispute.updated

Dispara quando a disputa entra em análise (status: "under_review", opcionalmente com assignedToId). Mesmo shape do dispute.created.

dispute.resolved

Dispara na decisão. Mesmo shape, com status resolved_valid (procedente) ou resolved_invalid (improcedente), resolution (texto), resolutionEffect, resolvedById e resolvedAt preenchidos. O efeito (retomar régua, ajustar valor, cancelar cobrança, dar baixa) já foi aplicado quando o evento chega.

dispute.cancelled

Dispara no cancelamento da disputa. Mesmo shape, com status: "canceled", resolution (motivo) e resolvedAt preenchidos.