> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> O objeto Dispute

Um `dispute` representa uma contestação aberta sobre uma `charge`. Ele aponta
para a charge original e acompanha o prazo de evidência, o envio da defesa e a
decisão final.

O status público permanece `under_review` enquanto a análise final está em
andamento. A decisão final muda o objeto para `won` ou `lost`.

## Data Object

Este é o formato completo retornado em `get`, itens de `list`, `update`,
`close` e em `data.object` dos webhooks `charge.dispute.*`.

```json theme={}
{
  "id": "dp_123",
  "object": "dispute",
  "amount": 15000,
  "charge": "ch_123",
  "closed_at": null,
  "created_at": "2026-05-22T03:00:00Z",
  "currency": "brl",
  "customer": "cus_123",
  "evidence": {
    "file": "file_123"
  },
  "evidence_details": {
    "due_by": "2026-05-29T03:00:00Z",
    "has_evidence": true,
    "past_due": false,
    "submission_count": 1
  },
  "is_charge_refundable": true,
  "livemode": true,
  "metadata": {},
  "payment_intent": "pi_123",
  "reason": "fraudulent",
  "status": "under_review",
  "updated_at": "2026-05-22T18:10:00Z"
}
```

<ResponseField name="id" type="string">
  Identificador do dispute. Usa o prefixo `dp_*`.
</ResponseField>

<ResponseField name="object" type="string">
  Sempre `"dispute"`.
</ResponseField>

<ResponseField name="amount" type="integer">
  Valor contestado, em centavos.
</ResponseField>

<ResponseField name="charge" type="string">
  ID da charge contestada (`ch_*`).
</ResponseField>

<ResponseField name="evidence" type="object">
  Evidências associadas à defesa. Quando houver arquivo, `file` aponta para o
  arquivo registrado na Chargefy.
</ResponseField>

<ResponseField name="evidence_details" type="object">
  Estado da evidência: prazo, presença de arquivo, atraso e quantidade de
  envios.
</ResponseField>

<ResponseField name="is_charge_refundable" type="boolean">
  Indica se a charge ainda pode receber refund.
</ResponseField>

<ResponseField name="metadata" type="object">
  Pares chave-valor livres. Quando vazio, retorna `{}`.
</ResponseField>

<ResponseField name="reason" type="string | null">
  Motivo normalizado quando disponível: `fraudulent`, `product_not_received`,
  `product_unacceptable`, `duplicate`, `credit_not_processed`,
  `subscription_canceled`, `unrecognized` ou `general`.
</ResponseField>

<ResponseField name="status" type="string">
  Estado do dispute: `warning_needs_response`, `warning_under_review`,
  `warning_closed`, `needs_response`, `under_review`, `won` ou `lost`.
</ResponseField>
