Evento `DISPUTE_STATUS_CHANGE`
Webhook disparado a cada mudança de uma disputa de pós-venda (Care): quando abre, muda de status/sub-status, é acionada/respondida pela transportadora, ou é resolvida/rejeitada.
Evento enviado ao seller sempre que uma disputa de pós-venda (Care) muda de estado — abertura, mudança de status/sub-status, acionamento ou resposta da transportadora, e resolução. Use-o para refletir o pós-venda no seu próprio sistema (ERP, CRM, planilha).
Para assinar, crie um webhook em Configurações → Webhooks apontando para o seu endpoint e selecione o evento DISPUTE_STATUS_CHANGE.
Estrutura base
A cada disparo, a Abbiamo faz um POST no seu endpoint com este corpo:
{
"event_type": "DISPUTE_STATUS_CHANGE",
"dispute_public_id": "A7ELSB88",
"invoice_id": "a1b2c3d4-0000-0000-0000-000000000000",
"status": "pending",
"sub_status": "with_carrier",
"carrier_type": "CORREIOS",
"carrier_status": "pending",
"carrier_sub_status": "awaiting_response",
"outcome": null,
"resolution": null,
"compensation_amount": null,
"compensation_currency": null,
"rejection_reason_code": null,
"closure_reason": null,
"event_at": "2026-06-08T18:32:10.494Z"
}Glossário de campos
| Campo | Tipo | Notas |
|---|---|---|
event_type | string | sempre "DISPUTE_STATUS_CHANGE" |
dispute_public_id | string | ID curto da disputa, igual ao exibido no painel |
invoice_id | string (uuid) | pedido a que a disputa pertence |
status | "pending" | "resolved" | situação geral |
sub_status | string | null | de quem é a vez (with_brand, with_carrier, with_customer…); null quando resolvida |
carrier_type | string | null | slug da transportadora responsável, ou null se não atribuída |
carrier_status | "pending" | "resolved" | null | situação da trilha com a transportadora |
carrier_sub_status | string | null | not_engaged, awaiting_response, paid, denied… |
outcome | string | null | desfecho: delivered, returned, lost, false_claim, undecided — só quando resolved |
resolution | string | null | compensação: none, refund, voucher, replacement, denied |
compensation_amount | string | null | valor decimal (ex.: "49.90") |
compensation_currency | string | null | ex.: "BRL" |
rejection_reason_code | string | null | código do motivo da recusa (quando resolution = "denied") |
closure_reason | string | null | cancelled_by_customer, cancelled_by_brand, auto_closed |
event_at | ISO datetime | data/hora do evento |
Os campos de desfecho (outcome, resolution, compensation_*) só vêm preenchidos quando a disputa é resolvida (status = "resolved"). Enquanto pending, eles ficam null.
Exemplos
{
"status": "pending",
"sub_status": "with_brand",
"carrier_type": null,
"carrier_status": null,
"outcome": null,
"resolution": null
}{
"status": "pending",
"sub_status": "with_carrier",
"carrier_type": "CORREIOS",
"carrier_status": "pending",
"carrier_sub_status": "awaiting_response"
}{
"status": "resolved",
"sub_status": null,
"outcome": "lost",
"resolution": "refund",
"compensation_amount": "49.90",
"compensation_currency": "BRL"
}{
"status": "resolved",
"sub_status": null,
"outcome": "false_claim",
"resolution": "denied",
"rejection_reason_code": "no_evidence"
}