> ## 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.

# Refinanciamento (REFIN)

> Quita contratos ativos do trabalhador como alternativa à averbação de um novo contrato

<Note>Etapa **opcional** — usada apenas quando a operação é de refinanciamento, como alternativa à averbação.</Note>

O refinanciamento é o caminho **alternativo à [averbação](/docs/e-consignado/averbacao)** dentro do fluxo
de contratação: em vez de incluir um contrato novo, ele **quita um ou mais contratos ativos** do
trabalhador, informando os contratos refinanciados e o valor de quitaçã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>

## Chamada

`POST /contract/refinancing` · processamento assíncrono (`202` + `requestId`)

Fica sob a URL base `https://hml.zipdin.com.br/dataprev-controller` (homologação). Como toda operação de
`/contract/*`, é sempre assíncrona: a resposta imediata confirma o enfileiramento e o resultado chega por
[consulta de status](/docs/e-consignado/resultado-averbacao) ou webhook.

<Warning>
  Contratos originados com garantia só podem ser refinanciados 1 para 1.
</Warning>

## Relação com a Averbação

O corpo do REFIN usa o **mesmo schema** da [Averbação](/docs/e-consignado/averbacao#parâmetros)
(`assignee`, `endorsement`, `contractInfo`, `workerInfo`, `paymentList`), com duas diferenças no bloco
`endorsement`:

| Campo            | Averbação | Refinanciamento                                                                        |
| ---------------- | --------- | -------------------------------------------------------------------------------------- |
| `refinContracts` | proibido  | **obrigatório** — array de 1+ contratos a quitar (13-15 caracteres alfanuméricos cada) |
| `paidValue`      | —         | **obrigatório** — valor de quitação (maior que 0)                                      |

A mesma regra de consistência da averbação se aplica: a soma de `paymentList[].paymentValue` deve ser
igual a `endorsement.loanValue`.

## Exemplo

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://hml.zipdin.com.br/dataprev-controller/contract/refinancing \
    -H "x-api-key: SUA_API_KEY" \
    -H "Authorization: Bearer SEU_TOKEN" \
    -H "x-idempotency-key: 3f8a91b2-7c4d-4e5f-a6b7-8c9d0e1f2a3b" \
    -H "Content-Type: application/json" \
    -d '{
      "assignee": "12345678000190",
      "endorsement": {
        "cpf": "52998224725",
        "refinContracts": ["ABC1234567890"],
        "paidValue": 5000.00,
        "contract": "XYZ9876543210",
        "loanValue": 8000.00,
        "installmentsNumber": 48,
        "installmentValue": 220.00,
        "hasGuarantees": false
      },
      "paymentList": [
        { "cpfCnpj": "52998224725", "paymentValue": 8000.00, "pixKey": "52998224725" }
      ]
    }'
  ```
</CodeGroup>

<Note>
  O exemplo acima é reduzido para destacar os campos específicos do REFIN. Os blocos `endorsement`,
  `contractInfo` e `workerInfo` têm os mesmos campos obrigatórios da
  [Averbação](/docs/e-consignado/averbacao#parâmetros) — consulte a página de averbação para a lista
  completa.
</Note>

<ResponseExample>
  ```json 202 - Enfileirado theme={null}
  {
    "requestId": "e7f8a9b0-c1d2-3456-e7f8-a9b0c1d23456",
    "status": "queued"
  }
  ```
</ResponseExample>

Usa o formato de erro RFC7807-like descrito em
[Averbação → Erros de /contract/\*](/docs/e-consignado/averbacao#erros-de-contract-averbação-refin-e-documentos).

## Cancelamento do REFIN

🚧 **Em construção.** A chamada para cancelar a operação de REFIN no mesmo dia ainda não está disponível no
Dataprev Controller. Esta página será atualizada quando o endpoint existir.
