Skip to main content
Quando a FastPay recebe um chargeback ou um MED (Medida Cautelar/alerta do BACEN), a transação correspondente é bloqueada preventivamente enquanto a disputa é analisada.

O que acontece no bloqueio

Ao receber o chargeback ou MED, o campo is_blocked da cobrança passa a true. Isso é imediatamente notificado via webhook charge.updated ao postbackUrl configurado na cobrança, com o charge completo em camelCase incluindo "isBlocked": true. Consulte Webhooks de Cobrança — charge.updated para o formato completo do payload.

Apresentação de defesa

Durante o período de bloqueio, o merchant pode apresentar a defesa do MED ou chargeback. A documentação de defesa é encaminhada pela FastPay à bandeira do cartão ou ao BACEN, conforme o tipo de disputa.

Resultado da disputa

Após o julgamento, há dois desfechos possíveis:

Disputa ganha pelo merchant

O bloqueio é revertido: is_blocked volta a false. Um novo evento charge.updated é entregue ao postbackUrl, sinalizando que a transação está desbloqueada e o valor não será estornado.

Disputa perdida pelo merchant

O status da cobrança muda para chargeback ou refunded (estornado), conforme o caso. O evento correspondente é notificado via webhook.

Fluxo completo

Resumo dos estados

Implementação recomendada

Ao receber um charge.updated com isBlocked: true, sua aplicação deve:
  1. Identificar a cobrança pelo data.id.
  2. Marcar o pedido correspondente como “em disputa” no seu sistema.
  3. Aguardar o próximo webhook para saber o desfecho.
  4. Quando isBlocked: false — restaurar o pedido ao estado normal.
  5. Quando status: "chargeback" ou "refunded" — registrar a perda e acionar seu fluxo de cancelamento/reembolso ao cliente.
O charge.updated é entregue exclusivamente ao postbackUrl da cobrança (canal legado, camelCase, sem envelope id/livemode). Os demais eventos (charge.refunded) seguem o envelope padrão e são entregues também aos webhook endpoints cadastrados no painel.

Referências

  • Webhooks de Cobrança — formato completo dos payloads e diferenças entre charge.updated e os demais eventos