# QI Tech — Lending-as-a-Service › Renegociação

Documentação da QI Tech em texto corrido, para colar em um LLM.
Fonte: https://docs.qitech.com.br
7 página(s).

Índice:
- Cancelar uma renegociação (/documentation/renegociacao/cancelar_uma_renegociacao)
- Consultar uma renegociação (/documentation/renegociacao/consultar_uma_renegociacao)
- Criar uma renegociação (/documentation/renegociacao/criacao_de_uma_renegociacao)
- Listar renegociações (/documentation/renegociacao/listar_renegociacoes)
- Pagamento de renegociação (/documentation/renegociacao/pagamento_renegociacao)
- Renegociação em lote (/documentation/renegociacao/renegociacao_em_lote)
- Simulação de uma renegociação (/documentation/renegociacao/simulacao_de_uma_renegociacao)

---

# Cancelar uma renegociação

URL: /documentation/renegociacao/cancelar_uma_renegociacao

## Request

ENDPOINT /renegotiation/proposal/ PROPOSAL-KEY
MÉTODO DELETE

### Path Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `proposal_key` * | string |  Chave da proposta de renegociação. | chave uuid |  

## Response

STATUS 200

Response Body

```json
{

}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Consultar uma renegociação

URL: /documentation/renegociacao/consultar_uma_renegociacao

## Consultar por Proposal Key

ENDPOINT /renegotiation/proposal/ PROPOSAL-KEY
MÉTODO GET

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `proposal_key` * | string |  Chave da proposta de renegociação. | Chave uuid |

### Response

STATUS 200

Response Body

```json
{
  "proposal_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "request_control_key": null,
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.2,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "",
    "qr_code_url": {},
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "affected_installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
      "due_date": "2022-05-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "6597a073-ea7a-4447-b250-f4d3f07b0b74",
      "due_date": "2022-06-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18900",
      "due_date": "2022-07-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    }
  ],
  "remaining_installments": [
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18903",
      "due_date": "2022-08-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18904",
      "due_date": "2022-09-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18905",
      "due_date": "2022-10-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

## Consultar por Request Control Key

ENDPOINT /renegotiation/proposal/request_control_key/ REQUEST-CONTROL-KEY
MÉTODO GET

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `request_control_key` * | string |  Chave de controle da requisição para rastreamento e identificação única. | UUID |
 

 ## Response

STATUS 200

Response Body

```json
{
  "proposal_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.2,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "",
    "qr_code_url": {},
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "affected_installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
      "due_date": "2022-05-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "6597a073-ea7a-4447-b250-f4d3f07b0b74",
      "due_date": "2022-06-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18900",
      "due_date": "2022-07-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    }
  ],
  "remaining_installments": [
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18903",
      "due_date": "2022-08-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18904",
      "due_date": "2022-09-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18905",
      "due_date": "2022-10-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Criar uma renegociação

URL: /documentation/renegociacao/criacao_de_uma_renegociacao

ENDPOINT /renegotiation/proposal
MÉTODO POST

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",  // chave da operação de crédito
  "amortization_type": "installment_payment",           // define quais parcelas e como o valor é calculado
  "reference_date": "2022-07-20",                       // base para cálculo do valor presente (D+1)
  "proposal_due_date": "2022-07-20",                    // vencimento do boleto / Pix gerado
  "payment_type": "bank_slip",                          // instrumento de cobrança
  "discount_percentage": 0.2,                           // 20% de desconto sobre o present_amount
  "installments": [
    { "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88" }, // parcela a quitar
    { "installment_key": "0ff87136-b084-44fb-8fc2-d2e3beed483b" }
  ]
}
```

O `amortization_type` define quais parcelas são quitadas e se o cálculo usa valor presente ou valor de face. O `payment_type` controla o instrumento gerado. Veja as seções abaixo para as variações de cada campo.

## `payment_type`

  {[
    {type:'bank_slip', desc:'Linha digitável + Pix QR code'},
    {type:'pix', desc:'Apenas Pix QR code'},
    {type:'manual', desc:'Sem instrumento — registro manual'},
    {type:'internal', desc:'Pagamento interno QI Tech'},
  ].map(({type,desc})=>(
{type}
{desc}
  ))}

## `amortization_type`

**installment_payment**

Quita **parcelas específicas** (por key) sobre o `present_amount` (valor descontado para hoje). Compatível com desconto.

- Exatamente **um** modo de desconto obrigatório: `discount_percentage`, `discount_amount` ou `paid_amount` por parcela
- Para cobrar o valor de face (`total_amount`) sem simular: use `first_installments` com `number_of_installments`

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "installment_payment",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "discount_percentage": 0.2,
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "installments": [
    { "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88" },
    { "installment_key": "0ff87136-b084-44fb-8fc2-d2e3beed483b" }
  ]
}
```

**overdue_installment_payment**

Idêntico ao `installment_payment`, mas **restrito a parcelas em atraso**. Compatível com desconto.

- Aceita apenas parcelas com status `overdue` ou `paid_partial_overdue` — qualquer outro status retorna erro
- Exatamente **um** modo de desconto obrigatório: `discount_percentage`, `discount_amount` ou `paid_amount` por parcela

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "overdue_installment_payment",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "discount_percentage": 0.1,
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "installments": [
    { "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88" }
  ]
}
```

**first_installments**

Quita as **primeiras parcelas em aberto** ao **valor de face** (`total_amount`). A co-api calcula os valores internamente — não é necessário simular antes. Não compatível com desconto.

- **`number_of_installments`** — quita exatamente N parcelas completas
- **`payment_amount`** — distribui o valor pelas primeiras parcelas; a última pode ser quitada parcialmente

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "first_installments",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "number_of_installments": 4
}
```

**last_installments**

Quita as **últimas parcelas em aberto** ao **valor de face**, distribuindo o `payment_amount` da última para a primeira. Não compatível com desconto.

- `include_matured_installment: true` inclui no cálculo a parcela vencida exatamente na `reference_date` (padrão: `false`)

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "last_installments",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "payment_amount": 900
}
```

**equal_amount**

Distribui o `payment_amount` **em partes iguais entre todas as parcelas em aberto**, independente do saldo devedor individual de cada uma. Não compatível com desconto.

:::caution
O abatimento uniforme ignora o peso de cada parcela — parcelas com juros acumulados diferentes recebem o mesmo valor, o que pode deixar saldo residual inesperado. Use apenas quando esse comportamento for intencional.
:::

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "equal_amount",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "payment_amount": 900
}
```

**full_settle**

Quitação total da operação. O `payment_amount` deve corresponder ao saldo devedor total — use a [simulação](/renegociacao/simulacao_de_uma_renegociacao) para obter o valor exato. Não compatível com desconto.

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "payment_type": "bank_slip",
  "amortization_type": "full_settle",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "payment_amount": 900
}
```

## Desconto

Aplicável apenas a `installment_payment` e `overdue_installment_payment`. Exatamente **um** dos três campos abaixo deve estar presente — são mutuamente exclusivos:

| Campo | Comportamento |
|---|---|
| `discount_percentage` | Percentual sobre o `present_amount`. Ex.: `0.2` = 20% de desconto. |
| `discount_amount` | Valor fixo distribuído proporcionalmente entre as parcelas pelo `present_amount`. |
| `paid_amount` (por parcela) | Valor exato por parcela, sobrepõe o `present_amount`. Use o `total_amount` da simulação para cobrar o valor de face. |

:::info Valor presente vs. valor de face
`installment_payment` cobra por padrão o `present_amount` — o valor da parcela descontado para hoje. Para cobrar o `total_amount` (valor de face, sem antecipação): simule primeiro e passe o `total_amount` retornado como `paid_amount` por parcela. Para cobrar ao valor de face sem simular, prefira `first_installments` com `number_of_installments`.
:::

## Parâmetros

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `debt_key` | UUID | sempre | Chave da operação de crédito. |
| `amortization_type` | string | sempre | Tipo de amortização. |
| `reference_date` | string | sempre | Data base para cálculo do valor presente (D+1). |
| `proposal_due_date` | string | sempre | Data de vencimento do boleto / Pix gerado. |
| `payment_type` | string | sempre | Instrumento de cobrança. |
| `installments` | array | `installment_payment`, `overdue_installment_payment` | Parcelas a quitar, identificadas por `installment_key`. |
| `number_of_installments` | int | `first_installments`¹ | Número exato de parcelas a quitar a partir da primeira em aberto. |
| `payment_amount` | float | `last_installments`, `equal_amount`, `full_settle`; opcional em `first_installments`¹ | Valor total a pagar. |
| `discount_percentage` | float | um dos três modos² | Percentual de desconto sobre o `present_amount`. |
| `discount_amount` | float | um dos três modos² | Valor fixo de desconto distribuído proporcionalmente. |
| `request_control_key` | UUID | não | Chave de idempotência — reenviar o mesmo valor retorna a proposta original sem criar duplicata. |
| `include_matured_installment` | bool | não | `last_installments` apenas: inclui parcela vencida na `reference_date`. Padrão: `false`. |

¹ `first_installments` exige exatamente um entre `number_of_installments` e `payment_amount`.  
² `discount_percentage`, `discount_amount` e `paid_amount` por parcela são mutuamente exclusivos — exatamente um é obrigatório para `installment_payment` e `overdue_installment_payment`.

### Installments object

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `installment_key` | UUID | sempre | Chave da parcela a quitar. |
| `paid_amount` | float | um dos três modos² | Valor exato a cobrar por esta parcela — substitui o `present_amount`. |

## Response

**201 — proposta criada**

```json
{
  "contract_number": "0001232093/ABC",
  "proposal_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "request_control_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.2,
  "payment_amount": 300,
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "32990001031000700298993000000203110340000004618",
    "qr_code_url": "mockurl.com.br",
    "qr_code_key": "f02c201d-314e-42be-968c-a48776d98fbf",
    "bank_slip_key": "931a989d-66e9-4631-abaa-b413610afb85",
    "paid_method_type": null
  },
  "affected_installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
      "due_date": "2023-01-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    }
  ],
  "remaining_installments": [
    {
      "installment_key": "03b4d86a-9dba-40fc-a4db-33e8772b7be8",
      "due_date": "2022-08-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    }
  ]
}
```

**`payment`**

| Campo | Descrição |
|---|---|
| `digitable_line` | Linha digitável do boleto. Vazio se `payment_type` não for `bank_slip`. |
| `qr_code_url` | URL do QR code Pix. Presente para `bank_slip` e `pix`. |
| `qr_code_key` | Chave do QR code Pix. |
| `bank_slip_key` | Chave do boleto gerado. |
| `paid_method_type` | Método pelo qual o pagamento foi confirmado. `null` enquanto `proposal_status` for `pending_payment`. |

**`affected_installments`** — parcelas incluídas nesta proposta

| Campo | Descrição |
|---|---|
| `total_amount` | Valor de face da parcela (principal + juros + multa). |
| `present_amount` | Valor descontado para a `reference_date` (base de cálculo do `installment_payment`). |
| `paid_amount` | Valor efetivamente cobrado nesta proposta após desconto aplicado. |

**`remaining_installments`** — parcelas não incluídas, para referência do saldo devedor restante.

**400 — requisição inválida**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"code\": \"LEG000069\"}"
}
```

---

# Listar renegociações

URL: /documentation/renegociacao/listar_renegociacoes

## Request

ENDPOINT /renegotiation/proposal
MÉTODO GET

### Query Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `proposal_status`  | string | Status da proposta. | 10 |
| `contract_number` | string | Numero do contrato. | 10 |
| `issuer_document_number` | string | Numero de documento do tomador. | 10 |

 ## Response

STATUS 200

Response Body

```json
{
  "data": [],
  "pagination": {
    "current_page": 1,
    "next_page": 2,
    "rows_per_page": 30,
    "total_pages": 5,
    "total_rows": 140
  }
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Pagamento de renegociação

URL: /documentation/renegociacao/pagamento_renegociacao

## Webhooks:

WEBHOOK_TYPE renegotiation.proposal
STATUS paid

#### Enumeradores paid_method_type

| Enumerador                   | Descrição                                     |
|------------------------------|-----------------------------------------------|
| **bank_slip**                | Pagamento por boleto                          |
| **pix**                      | Pagamento por pix                             |

#### Exemplo de webhook de pagamento da renegociação

Webhook Body

```json
{
	"webhook_type": "renegotiation.proposal",
	"key": "\<PROPOSAL-KEY\>",
	"event_datetime": "\<DATA E HORA DO ENVIO DO WEBHOOK\>",
	"status": "paid",
    "data": {
        "paid_method_type": "<METODO DE PAGAMENTO>",
        "paid_in": {
            "code_number": "<CODIGO DO BANCO LIQUIDANTE>", 
            "ispb": "<ISPB DO BANCO LIQUIDANTE>", 
            "name": "<NOME DO BANCO LIQUIDANTE>"
        }
    }
}
```

#### Payment data da installment paga através de renegociação

Webhook Body

```json
{
    "renegotiation_proposal_key": "806fa827-d1c4-4e5d-bf24-7b317fbbff15",
    "paid_in": {
        "ispb": "18236120",
        "name": "NU PAGAMENTOS - IP",
        "code_number": 260
    },
    "resource_account_key": "8517eb4e-ddce-457b-9e39-194213e53691"
}
```

---

# Renegociação em lote

URL: /documentation/renegociacao/renegociacao_em_lote

:::caution ATENÇÃO
A renegociação em lote só pode ser criada com operações de um mesmo emitente e mesma chave de integração. 
:::

:::caution ATENÇÃO
Há um limite de 50 operações para cada renegociação em lote.
:::

## 1. Simular uma renegociação em lote

### Request

ENDPOINT /renegotiation/batch_proposal_simulation
MÉTODO POST

Request Body

```json
{
    "amortization_type": "installment_payment",
    "reference_date": "2022-07-20",
    "discount_percentage": 0.0,
    "operations": [
      {
        "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
        "installments": [{
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88"
        }]
      },
      {
        "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
        "installments": [{
          "installment_key": "2ef25ed8-7124-44f5-9e3d-1d1a7196166e"
        }]
      }
  ]
}
```

### Response

Response Body

```json
{
  "amortization_type": "installment_payment",
  "discount_percentage": 0.0,
  "discount_amount": 0.0,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "operations": [
    {
      "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
      "payment_amount": 100,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125,
          "present_amount": 100,
          "paid_amount": 100
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "7ac54a3e-fd11-46b2-b811-4c7d6d158fd5",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    },
     {
      "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
      "payment_amount": 140,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "2ef25ed8-7124-44f5-9e3d-1d1a7196166e",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 200,
          "present_amount": 140,
          "paid_amount": 140
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18907",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    }
  ]
}
```

### Campos de desconto

Adicionar um destes campos na requisição permite definir um valor de desconto percentual ou absoluto na criação ou simulação da proposta de renegociação.

Desconto percentual

```json
{
  "discount_percentage": 0.5
}
```

Desconto absoluto

```json
{
  "discount_amount": 200
}
```

## 2. Criar uma renegociação em lote

:::caution ATENÇÃO
O Campo 'request_control_key' é livre e opcional e possui a finalidade de garantir a unicidade das requisições.
:::

### Request

ENDPOINT /renegotiation/batch_proposal
MÉTODO POST

Request Body

```json
{
    "amortization_type": "installment_payment",
    "reference_date": "2022-07-20",
    "proposal_due_date": "2022-07-20",
    "discount_percentage": 0.0,
    "payment_type": "bank_slip",
    "request_control_key": "4f75374c-e02f-4459-bddc-b9a7a0c9b0f3",
    "operations": [
      {
        "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
        "installments": [{
          "installment_key": "767f6ce0-add7-4334-a843-0e82cd1e7360"
        }]
      },
      {
        "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
        "installments": [{
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e89"
        }]
      }
  ]
}
```

:::warning Atenção
 Os campos `discount_amount` e `discount_percentage` **NÃO** podem ser enviados juntos no mesmo payload.
:::

### Body Params

| Campo                 | Tipo | Descrição                                                                                                                         | Caracteres                                                            |
|-----------------------|---|-----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|  
| `debt_key`            | string | Chave única da operação de crédito dentro da QI.                                                                                  | UUID                                                                  |
| `amortization_type`   | string | Tipo de amortização.                                                                                                              | **[Enumeradores Amortization Type](#enumeradores-amortization-type)** |
| `reference_date`      | string | Data referencia a qual valor presente será calculado da renegociação (precisa ser D+1).                                           | 10                                                                    |
| `proposal_due_date`   | string | Data de vencimento da proposta de renegociação.                                                                                   | 10                                                                    |
| `payment_type`        | string | Tipo de pagamento.                                                                                                                | **[Enumeradores Payment Type](#enumeradores-payment-type)**           |
| `discount_percentage` | float | Percentual de desconto que será calculado sobre o valor presente da renegociação ((1 - percentual de desconto) * Valor Presente). | 10                                                                    |
| `discount_amount`     | float | Valor de desconto que será aplicado sobre o valor presente da renegociação (Valor Presente - Valor Bruto Descontado).             | 10                                                                    |
| `installments`        | array of objects | Parcelas renegociadas.                                                                                                            | **[Installments Object](#installments-object)**                       |

### Enumeradores Amortization Type

| Campo                           | Descrição                                                                                |
|---------------------------------|------------------------------------------------------------------------------------------| 
| **installment_payment**         | Será criada uma renegociação para o pagamento de parcelas distintas enviadas no payload. <br/><br/> Para a utilização deste amortization type, é necessário passar a `installment_key` da parcela. |
| **overdue_installment_payment** | Será criada uma renegociação direcionado para o pagamento de parcelas em atraso.<br/><br/> Para a utilização deste amortization type, é necessário passar a `installment_key` da parcela.          |

### Enumeradores Payment Type

| Campo    | Descrição                                                     | 
|----------|---------------------------------------------------------------|
| bankslip | Pagamento via boleto bancário (gera pagamento boleto e o Pix) | 
| pix      | Pagamento via Pix (gera apenas Pix)     |
| manual   | Pagamento feito de forma manual (não gera forma de pagamento) | 

### Installments Object

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `installment_key` | string | key da parcela a ser renegociada | chave uuid |

### Response

Response Body

```json
{
  "batch_proposal_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "batch_proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.0,
  "discount_amount": 0.0,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "0193d113-9abd-4a13-8edb-2d94c2fdb70b",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "request_control_key": "4f75374c-e02f-4459-bddc-b9a7a0c9b0f3",
  "payment": {
    "digitable_line": "",
    "qr_code_url": "",
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "operations": [
    {
      "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
      "payment_amount": 100,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "767f6ce0-add7-4334-a843-0e82cd1e7360",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125,
          "present_amount": 100,
          "paid_amount": 100
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "6807c8ee-8deb-40da-9b39-653d64ee8db7",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    },
     {
      "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
      "payment_amount": 140,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e89",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 200,
          "present_amount": 140,
          "paid_amount": 140
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18907",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    }
  ]
}
```

## 3. Listar renegociações em lote

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|   
| `batch_proposal_status` * | string |  Status proposta de renegociação em lote. | - |
| `issuer_document_number` * | string |  Número de documento do emitente | - |
| `request_control_key` * | string |  Chave de identificação do solicitante | - |
 

### Request

ENDPOINT /renegotiation/batch_proposal
MÉTODO GET

Response Body

```json
{
    "data": [
        {
            "batch_proposal_key": "7eba74fb-e893-40ac-91bb-9a9d8f8108d7",
            "request_control_key": "cb55f099-d7cf-4b0a-9ddb-8e3ac3fefe8e",
            "batch_proposal_status": "pending_payment",
            "amortization_type": "installment_payment",
            "discount_percentage": 0,
            "discount_amount": 0.0,
            "payment_amount": 240,
            "requester_name": "Requester",
            "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
            "issuer_name": "issuer",
            "reference_date": "2022-07-25",
            "proposal_due_date": "2022-07-25",
            "issuer_document_number": "98765432100",
            "payment_type": "bank_slip"
        },
        {
            "batch_proposal_key": "272d1b0f-c06d-47c0-943b-812609ff2e6f",
            "request_control_key": "2ef25ed8-7124-44f5-9e3d-1d1a7196166e",
            "batch_proposal_status": "pending_payment",
            "amortization_type": "installment_payment",
            "discount_percentage": 0,
            "discount_amount": 0.0,
            "payment_amount": 240,
            "requester_name": "Requester",
            "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
            "issuer_name": "issuer",
            "reference_date": "2022-07-20",
            "proposal_due_date": "2022-07-20",
            "issuer_document_number": "98765432100",
            "payment_type": "bank_slip"
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": 2,
        "rows_per_page": 2,
        "total_pages": 5,
        "total_rows": 140
    }
}
```

## 4. Consultar uma renegociação em lote

### Request

ENDPOINT /renegotiation/batch_proposal/BATCH-PROPOSAL-KEY
MÉTODO GET

Response Body

```json
{
  "batch_proposal_key": "7ac54a3e-fd11-46b2-b811-4c7d6d158fd5",
  "request_control_key": "61905b8b-3ed2-46bc-8e9c-a5e99ceaea37",
  "batch_proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.0,
  "discount_amount": 0.0,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "",
    "qr_code_url": "",
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "operations": [
    {
      "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
      "payment_amount": 100,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18903",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125,
          "present_amount": 100,
          "paid_amount": 100
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "34f81236-e24a-4788-88e0-86cd697c36b7",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    },
     {
      "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
      "payment_amount": 140,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e89",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 200,
          "present_amount": 140,
          "paid_amount": 140
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "44cad2ae-60e9-4eb8-bb2a-b37e9557873f",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    }
  ]
}
```

### Request

ENDPOINT /renegotiation/batch_proposal/request_control_key/REQUEST-CONTROL-KEY
MÉTODO GET

Response Body

```json
{
  "batch_proposal_key": "7ac54a3e-fd11-46b2-b811-4c7d6d158fd5",
  "request_control_key": "61905b8b-3ed2-46bc-8e9c-a5e99ceaea37",
  "batch_proposal_status": "pending_payment",
  "amortization_type": "installment_payment",
  "discount_percentage": 0.0,
  "discount_amount": 0.0,
  "payment_amount": 240,
  "requester_name": "Requester",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "issuer_document_number": "98765432100",
  "payment_type": "bank_slip",
  "payment": {
    "digitable_line": "",
    "qr_code_url": "",
    "qr_code_key": "",
    "bank_slip_key": "",
    "paid_method_type": null
  },
  "operations": [
    {
      "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
      "payment_amount": 100,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18903",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125,
          "present_amount": 100,
          "paid_amount": 100
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "34f81236-e24a-4788-88e0-86cd697c36b7",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    },
     {
      "debt_key": "2cbfb9b1-1gdb-5g8d-9967-b338e5eb83g9",
      "payment_amount": 140,
      "discount_amount": 0,
      "affected_installments": [
        {
          "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e89",
          "due_date": "2022-05-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 200,
          "present_amount": 140,
          "paid_amount": 140
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "44cad2ae-60e9-4eb8-bb2a-b37e9557873f",
          "due_date": "2022-08-01",
          "principal_amount": 100,
          "interest_amount": 20,
          "fine_amount": 5,
          "total_amount": 125
        }
      ]
    }
  ]
}
```

## 5. Cancelamento de uma renegociação em lote

ENDPOINT /renegotiation/batch_proposal/BATCH-PROPOSAL-KEY
MÉTODO DELETE

### Response

ENDPOINT /renegotiation/batch_proposal/BATCH-PROPOSAL-KEY
MÉTODO DELETE
HTTP STATUS 204

Response Body

```json
    {}
```

## 6. Webhooks

## 6.1. Webhook de pagamento de renegociação em lote

Webhook Body

```json
{
    "webhook_type": "renegotiation.batch_proposal",
    "key": "\<BATCH-PROPOSAL-KEY\>",
    "event_datetime": "\<DATA E HORA DO ENVIO DO WEBHOOK\>",
    "status": "paid",
    "data": {
        "paid_method_type": "<METODO DE PAGAMENTO>",
        "paid_in": {
            "code_number": "<CODIGO DO BANCO LIQUIDANTE>",
            "ispb": "<ISPB DO BANCO LIQUIDANTE>",
            "name": "<NOME DO BANCO LIQUIDANTE>"
        }
    }
}
```

## 6.2. Webhook de rejeição de renegociação em lote

:::caution ATENÇÃO
Uma renegociação em lote pode ser rejeitada pelo decurso de prazo do pagamento ou por um pagamento de parcela por fora da renegociação.
:::

Webhook Body

```json
{
    "webhook_type": "renegotiation.batch_proposal",
    "key": "\<BATCH-PROPOSAL-KEY\>",
    "event_datetime": "\<DATA E HORA DO ENVIO DO WEBHOOK\>",
    "status": "rejected",
    "data": {}
}
```

## 6.3. Exemplo de payment data da installment paga através de renegociação em lote

Webhook Body

```json
{
    "batch_renegotiation_proposal_key": "f9addba2-ec91-41bf-a150-c59eb1c3fbef",
    "paid_in": {
        "ispb": "18236120",
        "name": "NU PAGAMENTOS - IP",
        "code_number": 260
    },
    "resource_account_key": "ea44b9f2-ad00-4896-b8a3-b1a3da28a72f"
}
```

---

# Simulação de uma renegociação

URL: /documentation/renegociacao/simulacao_de_uma_renegociacao

## Request

ENDPOINT /renegotiation/simulation
MÉTODO POST

Request Body

 Exemplos de payloads utilizando amortization_types diferentes

**Usando chaves de parcelas**

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "amortization_type": "installment_payment",
  "reference_date": "2022-07-20",
  "discount_amount": 100,
  "installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88"
    },
    {
      "installment_key": "0ff87136-b084-44fb-8fc2-d2e3beed483b"
    },
    {
      "installment_key": "e4101c6a-51b3-435f-a2b7-4a65a005cc15"
    }
  ]
}
```

**Usando número de parcelas**

```json
{ 
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "amortization_type": "first_installments",
  "reference_date": "2022-07-20",
  "discount_percentage": 0.2,
  "discount_amount": 100,
  "number_of_installments": 4
}
```

**Usando valor de amortização**

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "amortization_type": "first_installments",
  "reference_date": "2022-07-20",
  "payment_amount": 900
}
```

:::warning Atenção
Os campos `discount_amount`, `discount_percentage` e `paid_amount` (por parcela) são mutuamente exclusivos — envie exatamente um deles.
:::

:::info `total_amount` vs `present_amount` no response
O response retorna ambos por parcela: `present_amount` é o valor descontado para hoje (base do `installment_payment` sem `paid_amount`); `total_amount` é o valor de face. Para cobrar sem desconto de antecipação, use `total_amount` como `paid_amount` na criação da proposta.
:::

### Body Params 

| Campo | Tipo | Descrição                                                                                                                         | Caracteres                                                            |
|---|---|-----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|  
| `debt_key`            | string | Chave única da operação de crédito dentro da QI.                                                                                  | UUID                                                                  |
| `amortization_type` | string | Tipo de amortização.                                                                                                              | **[Enumeradores Amortization Type](#enumeradores-amortization-type)** |
| `reference_date` | string | Data referencia a qual valor presente será calculado da renegociação (precisa ser D+1).                                           | 10                                                                    |
| `proposal_due_date` | string | Data de vencimento da proposta de renegociação.                                                                                   | 10                                                                    |
| `payment_type` | string | Tipo de pagamento.                                                                                                                | **[Enumeradores Payment Type](#enumeradores-payment-type)**           |
| `payment_amount` | float | Valor final renegociado na proposta.                                                                                              | -                                                                     |
| `number_of_installments` | int | Número de Parcelas renegociadas na proposta.                                                                                      | 10                                                                    |
| `discount_percentage` | float | Percentual de desconto que será calculado sobre o valor presente da renegociação ((1 - percentual de desconto) * Valor Presente). | 10                                                                    |
| `discount_amount` | float | Valor de desconto que será aplicado sobre o valor presente da renegociação (Valor Presente - Valor Bruto Descontado).             | 10                                                                    |
| `installments` | array of objects | Parcelas renegociadas.                                                                                                            | **[Installments Object](#installments-object)**                       |

### Installments array of objects

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---| 
| `installment_key` | string | key da parcela a ser renegociada | chave uuid |

### Enumeradores Amortization Type
 Campo                           | Descrição                                                                                                                                                                                                                                   |
|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 
| **installment_payment**         | Será criada uma renegociação para o pagamento de parcelas distintas enviadas no payload. <br/><br/> Para a utilização deste amortization type, é necessário passar a `installment_key` da parcela.                                                |
| **overdue_installment_payment** | Será criada uma renegociação direcionado para o pagamento de parcelas em atraso.<br/><br/> Para a utilização deste amortization type, é necessário passar a `installment_key` da parcela.                                                     |
| **first_installments**          | Será criada uma renegociação que pagará as primeiras parcelas, em status aberto. <br/><br/> Este amortization type pode ser utilizado passando tanto a quantidade de parcelas que deseja quitar (`number_of_installments`), quanto o valor que o tomador deseja pagar `payment_amount`). 

## Response

STATUS 201

Response Body

```json
{
  "debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
  "discount_percentage": 0.2,
  "payment_amount": 240,
  "origin_key": "76912b4b-508a-4b10-9485-0e87f1316b35",
  "reference_date": "2022-07-20",
  "proposal_due_date": "2022-07-20",
  "requester_name": "Requester Name",
  "amortization_type": "installment_payment",
  "requester_key": "bcc16a6d-ce21-4cd4-8d8c-d26f89ccc685",
  "issuer_name": "issuer",
  "issuer_document_number": "98765432100",
  "affected_installments": [
    {
      "installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
      "due_date": "2023-01-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "0ff87136-b084-44fb-8fc2-d2e3beed483b",
      "due_date": "2022-12-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    },
    {
      "installment_key": "e4101c6a-51b3-435f-a2b7-4a65a005cc15",
      "due_date": "2022-11-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125,
      "present_amount": 100,
      "paid_amount": 80
    }
  ],
  "remaining_installments": [
    {
      "installment_key": "03b4d86a-9dba-40fc-a4db-33e8772b7be8",
      "due_date": "2022-08-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "c622efa6-8731-464b-a563-a7a26c19279d",
      "due_date": "2022-09-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    },
    {
      "installment_key": "3da60b56-17fb-4b32-a1e4-1f0c28d18905",
      "due_date": "2022-10-01",
      "principal_amount": 100,
      "interest_amount": 20,
      "fine_amount": 5,
      "total_amount": 125
    }
  ]
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```