dispute é uma contestação (chargeback) aberta pelo comprador sobre uma
charge — geralmente porque ele não reconhece a cobrança, alega fraude ou diz
que não recebeu o produto. O objeto acompanha o ciclo inteiro dessa
contestação: desde o alerta inicial, passando pelo prazo pra você enviar a
defesa, até a decisão final. Ele sempre aponta de volta pra charge original
através do campo charge.
Ciclo de vida
- O caso começa em
needs_responseou, quando chega como alerta antecipado, emwarning_needs_response. Nesse momento, a organização precisa decidir se vai enviar defesa. - Enquanto o caso espera resposta,
evidence_details.due_byindica o prazo para anexar evidência e enviar a contestação. - Depois que a evidência é enviada com sucesso, o dispute passa para
under_review. Esse status indica que a defesa foi recebida e a decisão final ainda está sendo avaliada. - O desfecho muda o
statusparawonquando a contestação é decidida a favor da sua organização, ou paralostquando é decidida contra. wonelostsão estados finais. Depois de um desses status, o dispute não muda mais.
lost: a decisão pode vir de
fora, através de um evento informando o resultado da análise, ou pode vir de
uma ação sua, chamando close pra encerrar o caso sem enviar defesa (mais
detalhes na página de close). Fora isso, vale reforçar desde já: não existe
um fechamento automático quando o prazo de evidência vence — se você deixar o
prazo passar sem enviar nada nem chamar close, o dispute simplesmente
continua parado no mesmo status até que a decisão chegue por fora ou você
encerre manualmente. Isso é explicado com mais detalhe no campo
evidence_details abaixo.
Data Object
Este é o formato completo retornado emget, itens de list, update,
close e em data.object dos webhooks charge.dispute.*.
string
Identificador do dispute. Usa o prefixo
dp_*.string
Sempre
"dispute".integer
Valor contestado, em centavos.
string
ID da charge contestada (
ch_*).object
Conteúdo da defesa: texto livre que você mandou explicando o caso (por
exemplo, histórico de conversa com o cliente) mais a referência ao arquivo
anexado. Quando existe um arquivo de evidência,
file aponta pro ID do
arquivo (file_*) — o objeto completo do arquivo, incluindo caminho de
armazenamento, fica interno e não aparece aqui. Só existe um arquivo “vivo”
por dispute: anexar um novo substitui o anterior.object
Resumo do estado da evidência: o prazo pra envio (
due_by), se já existe
algo anexado (has_evidence), se esse prazo já passou (past_due) e quantas
vezes você já enviou a defesa pra análise (submission_count). Veja o
detalhe de cada subcampo abaixo.boolean
Indica se a charge ainda pode receber refund.
object
Pares chave-valor livres. Quando vazio, retorna
{}.string | null
Motivo normalizado quando disponível.
string
Estado do dispute.

