Skip to main content
Como seu Merchant of Record, a Dodo Payments gerencia o processo de disputa e chargeback com as redes de cartões em seu nome. Esses webhooks mantêm seus sistemas sincronizados à medida que uma disputa avança em seu ciclo de vida para que você possa revogar acesso, reunir evidências e reconciliar seus registros.

Eventos de Webhook de Disputa

Uma disputa emite um evento em cada estágio do seu ciclo de vida:
Disputas auto-resolvidas através do Visa Rapid Dispute Resolution (RDR) aparecem como dispute.lost com is_resolved_by_rdr: true. Isso é esperado — o reembolso foi emitido automaticamente para evitar um chargeback formal.
Ethoca alerts e deflections nunca criam uma disputa, portanto não emitem eventos dispute.*. Um reembolso de um alerta da Ethoca dispara o evento padrão refund.succeeded, e qualquer cancelamento de assinatura vinculado dispara o evento usual de assinatura. Uma deflection não dispara nenhum evento.

Tratamento de eventos de disputa

Quando dispute.opened é disparado, o valor contestado é retido imediatamente. Use o evento para atualizar seus registros e, se pretende contestá-lo, reúna evidências no painel.
Handling dispute events
Sempre verifique a assinatura do webhook antes de processar — consulte o guia de Webhooks para configurar. O handler acima omite a verificação por brevidade.
Você tem 10 dias para responder a uma disputa após sua criação. Consulte as Boas práticas para responder a disputas para saber quais evidências reunir e como formatá-las.

Status e etapa da disputa

O objeto de disputa informa seu progresso por meio de dois campos:

Relacionado

Managing Disputes

Como responder a disputas, enviar evidências e como o RDR protege sua taxa de disputas.

Handle Payment Failures

Detecte e recupere pagamentos malsucedidos antes que se tornem disputas.

Schema do payload do Webhook

amount
string
obrigatório

The amount involved in the dispute, represented as a string to accommodate precision.

brand_id
string
obrigatório

Brand id this dispute belongs to

business_id
string
obrigatório

The unique identifier of the business involved in the dispute.

created_at
string<date-time>
obrigatório

The timestamp of when the dispute was created, in UTC.

currency
string
obrigatório

The currency of the disputed amount, represented as an ISO 4217 currency code.

customer
object
obrigatório

The customer who filed the dispute

dispute_id
string
obrigatório

The unique identifier of the dispute.

dispute_stage
enum<string>
obrigatório

The current stage of the dispute process.

Opções disponíveis:
pre_dispute,
dispute,
pre_arbitration
dispute_status
enum<string>
obrigatório

The current status of the dispute.

Opções disponíveis:
dispute_opened,
dispute_expired,
dispute_accepted,
dispute_cancelled,
dispute_challenged,
dispute_won,
dispute_lost
payment_id
string
obrigatório

The unique identifier of the payment associated with the dispute.

payment_provider
enum<string>
obrigatório

Which processor handled the underlying payment. stripe / adyen for BYOP routes (the merchant's own payment connector); dodo for everything Dodo processed itself.

Opções disponíveis:
stripe,
adyen,
dodo
is_resolved_by_rdr
boolean | null

Whether the dispute was resolved by Rapid Dispute Resolution

reason
string | null

Reason for the dispute

remarks
string | null

Remarks

Última modificação em 26 de setembro de 2026