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

# Upload de documentos

> Envio da CCB assinada, documento de identidade e biometria após a formalização

<Note>Etapa **condicional** — obrigatória apenas quando a formalização é conduzida pela solução do contratante.</Note>

Envio da CCB assinada, documento de identidade e biometria para a Zipdin. A formalização (assinatura) é
conduzida pela solução do próprio contratante; a formalização via **ZipdinSign** (solução da Zipdin) está
em construção.

<Info>
  Todos os endpoints requerem autenticação via **Bearer token** no header `Authorization`.
  Consulte o [guia de autenticação](/docs/primeiros-passos/authentication) para obter suas credenciais e gerar um token.
</Info>

`POST /contract/documents` · `multipart/form-data`

## Parâmetros

<ParamField body="file" type="file" required>
  Arquivo do documento (campo multipart `file`)
</ParamField>

<ParamField body="type" type="string" required>
  Tipo do documento
</ParamField>

<ParamField body="cpf" type="string" required>
  CPF do trabalhador — 8 a 11 dígitos numéricos
</ParamField>

<ParamField body="contract" type="string" required>
  Identificador do contrato — 13 a 15 caracteres alfanuméricos
</ParamField>

## Exemplo

```bash cURL theme={null}
curl -X POST https://hml.zipdin.com.br/dataprev-controller/contract/documents \
  -H "x-api-key: SUA_API_KEY" \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "x-idempotency-key: 3f8a91b2-7c4d-4e5f-a6b7-8c9d0e1f2a3b" \
  -F "file=@ccb-assinada.pdf" \
  -F "type=CCB" \
  -F "cpf=52998224725" \
  -F "contract=CTR20260520001"
```

## Erros

Este endpoint usa o **formato RFC7807-like** (não o formato achatado dos endpoints `worker-*`) — veja
[Averbação → Erros de /contract/\*](/docs/e-consignado/averbacao#erros-de-contract-averbação-refin-e-documentos).

```json 400 - Exemplo theme={null}
{
  "error": {
    "type": null,
    "title": "Validation failed",
    "detail": null,
    "instance": "/dataprev-controller/contract/documents",
    "status": 400,
    "errors": [{ "field": "contract", "message": "Contrato deve ter entre 13 e 15 caracteres" }]
  }
}
```
