# Enviar defesa

**Área:** Chargebacks

Envia a defesa do chargeback: o texto em `description` e os anexos já enviados por `POST /v1/disputes/{caseId}/evidence/files`. O envio é único — depois dele a defesa não aceita mais anexos nem alterações.

`POST /v1/disputes/:caseId/evidence`

**Base URL Produção:** `https://api.validapay.com.br`  
**Base URL Sandbox:** `https://sandbox.validapay.com.br`

**Scopes necessários:** `charges/write`

- Sem `attachmentIds`, vão todos os anexos do caso. Com a lista, só os escolhidos; os demais saem da defesa. IDs que não são anexos do caso são ignorados.
- É preciso ao menos um anexo.

A resposta traz `evidence.status: SUBMITTED` e `evidence.submission.status: PENDING`. Acompanhe o andamento em `GET /v1/disputes/{caseId}` e o desfecho em `status` do chargeback.

Case de uso:
_Como lojista, quero enviar a defesa com os comprovantes, para contestar um chargeback de um pedido entregue._

### Path parameters

| Campo | Obrigatório | Descrição |
|---|---|---|
| `caseId` | **sim** | Identificador do chargeback (`caseId`), devolvido na listagem |

### Query parameters

| Campo | Obrigatório | Descrição |
|---|---|---|
| `type` | **sim** | sempre CHARGEBACK nesta seção |

### Request body

```json
{
  "description": "Produto entregue em 02/10/2026, conforme comprovante assinado pelo comprador.",
  "attachmentIds": [
    "evd_1790598765432_r7t2n5vbc"
  ]
}
```

### Campos do body

**Obrigatórios:** `description`

| Campo | Descrição |
|---|---|
| `description` | Texto da defesa |

**Opcionais**

| Campo | Descrição |
|---|---|
| `attachmentIds` | fileId dos anexos que vão na defesa. Sem o campo, vão todos |

### Resposta 200: Defesa enviada

```json
{
    "caseId": "cbk_1790512345678_k3m9q2xwz",
    "type": "CHARGEBACK",
    "evidence": {
        "description": "Produto entregue em 02/10/2026, conforme comprovante assinado pelo comprador.",
        "status": "SUBMITTED",
        "submittedAt": "2026-10-21T10:15:27.000Z",
        "attachments": [
            {
                "fileId": "evd_1790598765432_r7t2n5vbc",
                "fileName": "comprovante-entrega.pdf",
                "contentType": "application/pdf",
                "size": 184320,
                "uploadedAt": "2026-10-21T10:12:03.000Z"
            }
        ],
        "submission": {
            "status": "PENDING",
            "sentAt": null,
            "protocol": null
        }
    }
}
```


### Resposta 400: Sem descrição

```json
{
    "error": {
        "message": "Descrição da defesa é obrigatória",
        "code": "EVIDENCE_DESCRIPTION_REQUIRED",
        "details": null,
        "timestamp": "2026-10-28T14:20:00.000Z"
    }
}
```


### Resposta 400: Sem anexo

```json
{
    "error": {
        "message": "Pelo menos um anexo é obrigatório",
        "code": "EVIDENCE_ATTACHMENT_REQUIRED",
        "details": null,
        "timestamp": "2026-10-28T14:20:00.000Z"
    }
}
```


### Resposta 400: Defesa bloqueada

```json
{
    "error": {
        "message": "Caso encerrado ou defesa já enviada",
        "code": "EVIDENCE_CASE_LOCKED",
        "details": null,
        "timestamp": "2026-10-28T14:20:00.000Z"
    }
}
```


### Resposta 404: Chargeback não encontrado

```json
{
    "error": {
        "message": "Caso de chargeback não encontrado",
        "code": "CHARGEBACK_CASE_NOT_FOUND",
        "details": null,
        "timestamp": "2026-10-28T14:20:00.000Z"
    }
}
```


---

Página: https://docs.validapay.com.br/referencia/post-enviar-defesa  
Contrato OpenAPI: https://docs.validapay.com.br/openapi.json