> For the complete documentation index, see [llms.txt](https://docs.bullcredtech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bullcredtech.com/api-reference/guias/recontracting.md).

# Múltiplos Empréstimos dentro do Limite Global

Os **Múltiplos Empréstimos dentro do Limite Global** permite que um cliente que já possui um contrato ativo (assinado ou desembolsado) inicie uma nova proposta de crédito consignado, sem precisar esperar o encerramento completo do contrato anterior.

***

## O que é e por que existe?

Em operações de crédito consignado, é comum que um cliente queira contratar um valor adicional antes de quitar o contrato atual. A recontratação foi projetada para tornar esse processo fluido:

* O cliente **não precisa ser um novo usuário** para iniciar uma proposta
* A API detecta automaticamente se existe um contrato anterior e decide se o cliente pode avançar
* A verificação de **inadimplência** protege a operação: apenas clientes em dia podem recontornar

{% hint style="info" %}
**Para quem não é técnico**

Quando um cliente já tem um empréstimo e quer pedir outro, o sistema verifica automaticamente se ele está pagando as parcelas em dia e se a funcionalidade de recontratação está habilitada. Se tudo estiver ok, uma nova proposta é criada normalmente.
{% endhint %}

***

## Fluxo Completo

```mermaid
flowchart TD
    START(["Cliente chama\nPOST /proposals/start"]) --> CHECK_APPROVED{{"CPF tem proposta\naguardando desembolso?"}}

    CHECK_APPROVED -->|Sim| BLOCK_AWAIT[/"409\nPROPOSAL_AWAITING_DISBURSEMENT"/]
    CHECK_APPROVED -->|Não| CHECK_FAILED{{"CPF tem proposta com\nfalha no desembolso?"}}

    CHECK_FAILED -->|Sim| BLOCK_FINAL_F[/"409\nPROPOSAL_FINALIZED"/]
    CHECK_FAILED -->|Não| CHECK_EXISTING{{"CPF tem contrato\nSIGNED ou DISBURSED?"}}

    CHECK_EXISTING -->|Não| CREATE["✅ Nova proposta criada\nstatus: CREATED"]

    CHECK_EXISTING -->|Sim| CHECK_ORIGIN{{"Recontratação\nhabilitada para\nesta origem?"}}

    CHECK_ORIGIN -->|Não| BLOCK_FINAL[/"409\nPROPOSAL_FINALIZED"/]
    CHECK_ORIGIN -->|Sim| CHECK_DELINQ{{"Cliente com\ninadimplência ativa?"}}

    CHECK_DELINQ -->|Sim| BLOCK_DELIN[/"409\nDELINQUENT_CONTRACT"/]
    CHECK_DELINQ -->|Não| CREATE

    style CREATE fill:#90EE90,color:#000
    style BLOCK_AWAIT fill:#FFB6C1,color:#000
    style BLOCK_FINAL fill:#FFB6C1,color:#000
    style BLOCK_FINAL_F fill:#FFB6C1,color:#000
    style BLOCK_DELIN fill:#FFB6C1,color:#000
```

***

## Regras de Negócio

### 1. Múltiplos empréstimos habilitado

Quando a funcionalidade está habilitada para a origem, clientes com contratos `SIGNED` ou `DISBURSED` **podem** iniciar uma nova proposta, desde que:

* Não possuam parcelas em atraso
* Não tenham uma proposta no status `ANALYSIS_APPROVED` aguardando desembolso
* Não tenham uma falha de desembolso pendente

### 2. Múltiplos empréstimos não habilitado

Quando a funcionalidade não está habilitada para a origem, qualquer cliente com contrato `SIGNED` ou `DISBURSED` é **bloqueado** e recebe o erro `PROPOSAL_FINALIZED`.

### 3. Bloqueios que independem da configuração

Independente de a recontratação estar habilitada ou não, os seguintes estados sempre bloqueiam a criação de nova proposta:

| Status                | Código de Erro                   | Motivo                                                              |
| --------------------- | -------------------------------- | ------------------------------------------------------------------- |
| `ANALYSIS_APPROVED`   | `PROPOSAL_AWAITING_DISBURSEMENT` | Proposta aprovada aguardando desembolso; não é possível criar outra |
| `DISBURSEMENT_FAILED` | `PROPOSAL_FINALIZED`             | Falha no desembolso precisa ser resolvida antes                     |

***

## Verificação de Inadimplência

Quando a recontratação está habilitada e o cliente possui um contrato ativo, a API verifica automaticamente se há parcelas em atraso antes de permitir a criação de uma nova proposta.

* **Sem inadimplência** → nova proposta criada com sucesso
* **Com inadimplência** → bloqueio com erro `DELINQUENT_CONTRACT` e indicação dos dias de atraso

***

## Cenários e Respostas

### Cenário 1: Recontratação bem-sucedida

Cliente tem contrato ativo, está em dia e a recontratação está habilitada para a origem.

**Requisição:**

```json
POST /proposals/start

{
  "cpf": "67593082121",
  "full_name": "Pedro Teste Proposta",
  "birth_date": "1980-01-22"
}
```

**Resposta `201 Created`:**

```json
{
  "message": "Proposta criada com sucesso",
  "proposal_id": "c3d4e5f6-0000-4000-8000-123456789abc",
  "cpf": "67593082121",
  "full_name": "PEDRO TESTE PROPOSTA",
  "product_id": "d82b9334-0cdf-494c-b414-d12b356e54e6",
  "status": "CREATED"
}
```

A partir daqui, o fluxo segue normalmente pelas [7 etapas da proposta](/api-reference/guias/proposal-flow.md).

***

### Cenário 2: Bloqueio por inadimplência

Cliente tem contrato com parcelas em atraso.

**Resposta `409 Conflict`:**

```json
{
  "statusCode": 409,
  "message": "No momento não é possível prosseguir com a contratação. Por favor, entre em contato com nosso suporte.",
  "error": "Conflict",
  "errorCode": "DELINQUENT_CONTRACT",
  "longest_overdue_days": 45
}
```

O campo `longest_overdue_days` indica quantos dias de atraso o contrato mais atrasado possui.

***

### Cenário 3: Bloqueio por recontratação não habilitada

A funcionalidade de recontratação não está habilitada para esta origem.

**Resposta `409 Conflict`:**

```json
{
  "statusCode": 409,
  "message": "Já existe uma proposta finalizada para este CPF",
  "error": "Conflict",
  "errorCode": "PROPOSAL_FINALIZED",
  "proposal_id": "a1b2c3d4-0000-4000-8000-aabbccddeeff",
  "status": "SIGNED"
}
```

***

### Cenário 4: Bloqueio por proposta aguardando desembolso

Existe uma proposta aprovada ainda não desembolsada.

**Resposta `409 Conflict`:**

```json
{
  "statusCode": 409,
  "message": "Já existe uma proposta aprovada aguardando desembolso para este CPF",
  "error": "Conflict",
  "errorCode": "PROPOSAL_AWAITING_DISBURSEMENT",
  "proposal_id": "b2c3d4e5-0000-4000-8000-112233445566",
  "status": "ANALYSIS_APPROVED"
}
```

***

## Matriz de Decisão

| Situação do cliente              | Recontratação habilitada | Inadimplência | Resultado                          |
| -------------------------------- | :----------------------: | :-----------: | ---------------------------------- |
| Sem contratos anteriores         |             —            |       —       | ✅ Nova proposta                    |
| Contrato `SIGNED` ou `DISBURSED` |            Sim           |      Não      | ✅ Nova proposta                    |
| Contrato `SIGNED` ou `DISBURSED` |            Sim           |      Sim      | ❌ `DELINQUENT_CONTRACT`            |
| Contrato `SIGNED` ou `DISBURSED` |            Não           |       —       | ❌ `PROPOSAL_FINALIZED`             |
| Proposta `ANALYSIS_APPROVED`     |             —            |       —       | ❌ `PROPOSAL_AWAITING_DISBURSEMENT` |
| Proposta `DISBURSEMENT_FAILED`   |             —            |       —       | ❌ `PROPOSAL_FINALIZED`             |

***

## Habilitando Múltiplos empréstimos

Os Múltiplos empréstimos é uma funcionalidade configurada por origem. Para verificar se está habilitada para a sua integração ou solicitar a ativação, entre em contato com o time Bull.

***

## Como Tratar os Erros na Integração

| Error Code                       | Ação recomendada                                                                                                                                                                         |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DELINQUENT_CONTRACT`            | Informar ao cliente que não é possível prosseguir no momento e orientar a entrar em contato com o suporte. O campo `longest_overdue_days` pode ser usado para contextualizar a mensagem. |
| `PROPOSAL_AWAITING_DISBURSEMENT` | Informar ao cliente que já existe uma proposta aprovada em processamento e orientar a aguardar o desembolso antes de tentar novamente.                                                   |
| `PROPOSAL_FINALIZED`             | A recontratação não está habilitada para esta origem ou o cliente já possui um contrato ativo que impede nova contratação.                                                               |

{% hint style="success" %}
**Próximo Passo**

Após criar a proposta com sucesso, continue pelo fluxo normal: [Fluxo da Proposta](/api-reference/guias/proposal-flow.md)
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bullcredtech.com/api-reference/guias/recontracting.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
