Pular para o conteúdo principal
Quando um pagamento PIX recebe uma MED (Mecanismo Especial de Devolução) ou quando o caso termina, a Safefy envia um evento dispute.* para os webhooks da sua organização que assinam esse evento. O campo type diz em que etapa o caso está e o objeto data traz o retrato do caso naquele momento.

Como receber

Os eventos de MED saem pelos webhooks cadastrados no painel, não pelo callbackUrl do pagamento:
  1. No painel da Safefy, abra Webhooks e clique em Novo webhook.
  2. Informe a URL que vai receber os eventos.
  3. No grupo Dispute, marque os eventos dispute.* que você quer receber.
  4. Salve e guarde o segredo que aparece na tela. Ele assina os eventos desse webhook e só é mostrado uma vez.

Eventos

A MED pode ter uma taxa, conforme as condições da sua organização. O valor cobrado no caso vem em data.medFee.
Um caso que já chega com desfecho (por exemplo, uma MED aberta e perdida no mesmo aviso da processadora) gera os dois eventos, nesta ordem: dispute.opened e depois o do desfecho.

Headers

A assinatura é validada do mesmo jeito descrito em Webhooks → Assinatura, usando o segredo do webhook cadastrado (e não o segredo dos callbacks de pagamento e saque).

Payload

Valores em centavos. Datas em UTC (ISO 8601).
dispute.opened
dispute.lost

Campos

holdAmount pode ser menor que amount quando parte do pagamento já tinha sido estornada ao pagador antes da MED: a Safefy só bloqueia o que ainda está com você.

Categorias (data.reason)

Entrega

  • Responda com 2xx para confirmar. Sem confirmação, a Safefy tenta de novo: são até 3 tentativas, ou o número configurado no webhook.
  • Todas as entregas (com corpo enviado e resposta recebida) aparecem no painel, em Webhooks.

Boas práticas

  • Idempotência: guarde o id do evento e ignore um evento que você já processou. Não conte com a ordem de chegada: o data.status é a fonte da verdade do caso.
  • dispute.opened: marque a venda como contestada e segure a entrega do produto ou serviço. Envie a defesa e as evidências antes de data.responseDeadline, pelas rotas Enviar resposta e Adicionar evidência.
  • dispute.won e dispute.cancelled: a venda volta ao fluxo normal. O valor continua com você.
  • dispute.lost: registre a devolução ao pagador e, se fizer sentido, revogue o acesso ao produto.
  • data.reason: use a categoria para automatizar regras internas, como revisar vendas de categorias que se repetem.
  • Para ver o caso completo (defesa enviada, evidências e linha do tempo), use Buscar disputa com o data.id.