# Disputas

> Los contracargos abiertos contra tu comercio: cómo listarlos, filtrar los que necesitan respuesta y hasta cuándo tienes para responder.

Un comprador desconoció un cobro. Hay un plazo para responder y perderlo es perder la plata.

### GET /v1/disputes

Las disputas del entorno.

**Query**

| Campo | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `needs_response` | booleano | no | `true` deja solo las que están esperando algo de tu parte. |
| `status` | texto | no | Filtra por estado. |
| `payment_id` | UUID | no | Las disputas de un cobro. |
| `limit` | entero | no | Por defecto 25, máximo 100. |

### GET /v1/disputes/{id}

Una disputa, con su historial, comentarios y adjuntos.

**El objeto**

| Campo | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `needs_response` | booleano | no | El campo que decide si el caso se gana o se pierde. |
| `evidence_due_at` | fecha | no | Hasta cuándo se admite evidencia. |
| `reason_code` | texto | no | El código de la red. |
| `reason_description` | texto | no | Qué alega el comprador. |
| `amount` | entero | no | En centavos. |
| `payment_id` | UUID | no | El cobro disputado. |

**Las que esperan respuesta**

```bash
curl "https://gxxazsplhgyezwxghrnn.supabase.co/functions/v1/blink-api/v1/disputes?needs_response=true" \
  -H "Authorization: Bearer sk_test_…"
```

_Respuesta 200_

```json
{
  "object": "list",
  "has_more": false,
  "next_cursor": null,
  "data": [
    {
      "object": "dispute",
      "id": "e77c…",
      "status": "needs_response",
      "needs_response": true,
      "evidence_due_at": "2026-09-20T23:59:59.000Z",
      "amount": 11900000,
      "currency": "COP",
      "reason_code": "…",
      "payment_id": "a02e5b19-…"
    }
  ]
}
```

> **Cuidado: La evidencia se sube desde el panel.** Hoy la API deja consultar disputas, no responderlas. Para adjuntar la evidencia entra a **Disputas** en el panel. El listado paginado devuelve 25 por página.
