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

# Integrar um refinanciamento

> Chamadas de um refinanciamento, da faixa refinanciável à conta de recebimento

O refinanciamento segue o mesmo fluxo do [financiamento](https://documentacao.credicarro.com.br/pages/guides/financing-integration.md), com três diferenças:

> **Faixa refinanciável**
>
> O valor pedido precisa estar entre o mínimo e o máximo da placa.

> **Simulação mais simples**
>
> Só CPF, placa, valor solicitado e `cnpjLoja`.

> **Conta de recebimento**
>
> Uma etapa a mais, para informar onde o cliente recebe o crédito.

> [!NOTE]
>
> Os passos de token, webhook e cadastro do cliente são iguais aos do [guia de financiamento](https://documentacao.credicarro.com.br/pages/guides/financing-integration.md). O cliente precisa estar cadastrado antes de simular. Os valores dos exemplos são ilustrativos.

Nos exemplos, `$BASE` é `https://api.staging.credicarro.com.br/integration` e `$TOKEN` é o token de acesso.

***

**1. Consulte a faixa refinanciável**

```bash theme={null}
curl "$BASE/v2/proposal/simulation/range/refinancing?placa=ABC1D23&cnpjLoja=11222333000181" \
  -H "Authorization: Bearer $TOKEN"
```

```json Resposta (200) theme={null}
{
  "opcoes_por_prazo": [
    { "prazo": 12, "valor_minimo_refinanciavel": 5000, "valor_maximo_refinanciavel": 30000 },
    { "prazo": 24, "valor_minimo_refinanciavel": 5000, "valor_maximo_refinanciavel": 32500 },
    { "prazo": 36, "valor_minimo_refinanciavel": 5000, "valor_maximo_refinanciavel": 35720 }
  ]
}
```

> [!TIP]
>
> Valide o valor pedido pelo cliente contra esta faixa antes de simular. Fora dela, a simulação é recusada com `422`.

**2. Simule**

```bash theme={null}
curl -X POST $BASE/v2/proposal/simulation/refinancing \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "cpf": "12345678909",
    "placa": "ABC1D23",
    "valorSolicitado": 25000,
    "cnpjLoja": "11.222.333/0001-81"
  }'
```

A resposta tem o mesmo formato da simulação de financiamento: uma opção para cada prazo em cuja faixa o valor cabe, cada uma com `id_simulacao`. Veja [Simulação](https://documentacao.credicarro.com.br/pages/v2/simulation/reference.md).

**3. Crie a proposta**

```bash theme={null}
curl -X POST $BASE/v2/proposal \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{ "cpf": "12345678909", "simulacaoId": "<id_simulacao escolhido>" }'
```

**4. Acompanhe as etapas**

Pelo [webhook de proposta](https://documentacao.credicarro.com.br/pages/v2/webhooks.md) ou pela [consulta da proposta](https://documentacao.credicarro.com.br/pages/v2/proposal/get.md). Quando `responsavel_acao` for `INTEGRADOR`, chame o endpoint da etapa:

| `etapa` | Endpoint |
| - | - |
| `ENVIO_DOCUMENTOS` / `CORRECAO_DOCUMENTOS` | [`POST /v2/proposal/{id}/document`](https://documentacao.credicarro.com.br/pages/v2/proposal/document) |
| `DADOS_VEICULO` (do comprador) | [`POST /v2/proposal/{id}/vehicle-detail`](https://documentacao.credicarro.com.br/pages/v2/proposal/vehicle-detail) |
| `CONTA_RECEBIMENTO` | [`POST /v2/proposal/{id}/deposit-account`](https://documentacao.credicarro.com.br/pages/v2/proposal/deposit-account) |

**5. Informe a conta de recebimento**

Quando a etapa ativa for `CONTA_RECEBIMENTO`:

```bash theme={null}
curl -X POST $BASE/v2/proposal/bea8d060-f93d-48eb-b6c4-45f64483cdd9/deposit-account \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "cpfTitular": "12345678909",
    "codigoBanco": "001",
    "agencia": "1234",
    "digitoAgencia": "5",
    "conta": "123456",
    "digitoConta": "7",
    "tipoConta": "CORRENTE"
  }'
```

Resposta: `204 No Content`.

| Regra | Erro |
| - | - |
| `cpfTitular` precisa ser o CPF do cliente da proposta | `Proposal.DepositAccount.HolderNotBuyer` |
| Só propostas de refinanciamento | `Proposal.DepositAccount.OnlyRefinancing` |
| `codigoBanco` com 3 dígitos, `agencia` com até 4, `conta` de 4 a 13 | `400` com `Validation.Bank.InvalidCode`, `InvalidAgency` ou `InvalidAccountNumber` |
| `digitoAgencia` e `digitoConta`: um caractere, de 0 a 9 ou `X` | `400` com `Validation.Bank.InvalidCheckDigit` |
| `tipoConta`: `CORRENTE`, `POUPANCA` ou `PAGAMENTO` | `400` com `Validation.Field.InvalidOption` |
| Etapa `CONTA_RECEBIMENTO` ativa no comprador | `Proposal.ProposalIsNotInDepositAccountStatus` |

> [!NOTE]
>
> Enviar de novo **substitui** a conta anterior, enquanto a etapa estiver ativa.

**6. Documentos e dados do veículo**

Iguais ao financiamento. Veja o [guia de envio de documentos](https://documentacao.credicarro.com.br/pages/guides/document-upload.md) e [Incluir dados do veículo](https://documentacao.credicarro.com.br/pages/v2/proposal/vehicle-detail.md).

**7. Vistoria, biometria e pagamento**

O cliente faz a vistoria do veículo e, por último, a biometria. A Credicarro conclui o contrato, deposita o crédito na conta de recebimento e a proposta chega a `FINALIZADA`.

***

## Erros comuns neste fluxo

| `tipo` | Passo | Como resolver |
| - | - | - |
| `Proposal.RequestAmountInvalid` ou `Simulation.Refinancing.AmountOutOfRange` | Simulação | Ajuste o `valorSolicitado` para dentro da faixa refinanciável. |
| `Simulation.Refinancing.UfUnavailable` | Simulação | Não foi possível identificar a UF do veículo nem do endereço do cliente. Confira o endereço cadastrado. |
| `Customer.Account.Incomplete` | Proposta | Complete o cadastro do cliente (endereço, ocupação e renda). |
| `Proposal.DepositAccount.HolderNotBuyer` | Conta de recebimento | Use uma conta no CPF do cliente. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.