# 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

Todos os parâmetros são opcionais e podem ser combinados livremente para filtrar a listagem.

| Campo | Tipo | Descrição |
|---|---|---|
| `proposal_status` | string (enumerador) | Filtra pelo status da proposta. Ver [Enumerador proposal_status](#enumerador-proposal_status). |
| `payment_type` | string (enumerador) | Filtra pelo tipo de pagamento da proposta. Ver [Enumerador payment_type](#enumerador-payment_type). |
| `amortization_type` | string (enumerador) | Filtra pelo tipo de amortização aplicado à proposta. Ver [Enumerador amortization_type](#enumerador-amortization_type). |
| `contract_number` | string | Número do contrato original que está sendo renegociado. |
| `issuer_document_number` | string | CPF ou CNPJ do tomador (devedor) do contrato original. |
| `issuer_name` | string | Nome do tomador do contrato original. |
| `requester_key` | string (UUID) | Chave do solicitante (parceiro) que criou a proposta. Quando não informado, é assumido automaticamente a partir do header `SELECTED-AGENT`. |
| `requester_name` | string | Nome do solicitante que criou a proposta. |
| `credit_operation_key` | string (UUID) | Chave da operação de crédito original que está sendo renegociada. |
| `payment_amount` | string (numérico) | Filtra pelo valor da parcela de pagamento da proposta. |
| `proposal_start_due_date` | string (data, `yyyy-MM-dd`) | Filtra propostas com data de vencimento (`proposal_due_date`) a partir desta data. |
| `proposal_end_due_date` | string (data, `yyyy-MM-dd`) | Filtra propostas com data de vencimento (`proposal_due_date`) até esta data. |
| `page` | string (numérico) | Número da página. Padrão: `1`. |
| `page_size` | string (numérico) | Quantidade de registros por página. Padrão: `10`. Valores acima de `50` são automaticamente limitados a `50`. |

 ## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "proposal_key": "9f1c2e3a-7b6d-4a1e-8c2f-3d4e5f6a7b8c",
      "proposal_status": "pending_payment",
      "payment_type": "bank_slip",
      "amortization_type": "overdue_installment_payment",
      "contract_number": "0000049047/UO",
      "requester_key": "ba99b7f1-3db6-4a63-a386-ba2c7f31e784",
      "requester_name": "QI Sociedade de Crédito Direto",
      "issuer_name": "Urich Oliveira",
      "issuer_document_number": "37197645832",
      "origin_key": null,
      "payment_amount": 1210.26,
      "discount_amount": 0,
      "discount_percentage": 0,
      "devolution_amount": null,
      "proposal_due_date": "2026-08-15",
      "reference_date": "2026-08-01",
      "request_control_key": null,
      "payment": {
        "digitable_line": "34191790010104351004791020150008196610000121026",
        "qr_code_url": null,
        "qr_code_key": null,
        "bank_slip_key": "4b1c9e3d-2f5a-4c8b-9d6e-7f8a9b0c1d2e",
        "paid_method_type": null,
        "source_account_key": null,
        "payment_data": null
      },
      "affected_installments": [
        {
          "installment_key": "946a99c7-1f9d-429d-8ab9-bf2d0e6c6e48",
          "due_date": "2026-06-15",
          "principal_amount": 168.34,
          "interest_amount": 33.37,
          "fine_amount": 0,
          "total_amount": 201.71,
          "present_amount": 200.00,
          "paid_amount": 201.71,
          "principal_amortization_payment_amount": 168.34,
          "prefixed_interest_payment_amount": 33.37,
          "fine_payment_amount": 0,
          "discount_amount": 0
        }
      ],
      "remaining_installments": [
        {
          "installment_key": "b007376d-c0ce-4e83-a279-4981ab331ccf",
          "due_date": "2026-09-15",
          "principal_amount": 170.02,
          "interest_amount": 31.69,
          "fine_amount": null,
          "total_amount": 201.71
        },
        {
          "installment_key": "c1183e5c-0f8e-4b2a-8e4a-1a2b3c4d5e6f",
          "due_date": "2026-10-15",
          "principal_amount": 171.71,
          "interest_amount": 30.00,
          "fine_amount": null,
          "total_amount": 201.71
        }
      ]
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": 2,
    "rows_per_page": 30,
    "total_pages": 5,
    "total_rows": 140
  }
}
```

### Detalhamento dos campos de `data[]`

| Campo | Tipo | Descrição |
|---|---|---|
| `proposal_key` | string (UUID) | Chave única da proposta de renegociação. |
| `proposal_status` | string (enumerador) | Status atual da proposta. Ver [Enumerador proposal_status](#enumerador-proposal_status). |
| `payment_type` | string (enumerador) | Meio de pagamento configurado para a proposta. Ver [Enumerador payment_type](#enumerador-payment_type). |
| `amortization_type` | string (enumerador) | Tipo de amortização aplicado na simulação/criação da proposta. Ver [Enumerador amortization_type](#enumerador-amortization_type). |
| `contract_number` | string | Número do contrato original que está sendo renegociado. |
| `requester_key` | string (UUID) | Chave do solicitante (parceiro) que criou a proposta. |
| `requester_name` | string | Nome do solicitante que criou a proposta. |
| `issuer_name` | string | Nome do tomador (devedor) do contrato original. |
| `issuer_document_number` | string | CPF ou CNPJ do tomador. |
| `origin_key` | string, opcional | Chave de origem da proposta, quando aplicável. |
| `payment_amount` | número | Valor de cada parcela da proposta de renegociação. |
| `discount_amount` | número, opcional | Valor de desconto aplicado sobre o saldo devedor. |
| `discount_percentage` | número, opcional | Percentual de desconto aplicado sobre o saldo devedor. |
| `devolution_amount` | número, opcional | Valor a ser devolvido ao tomador, quando aplicável. |
| `proposal_due_date` | string (data) | Data de vencimento da proposta. |
| `reference_date` | string (data) | Data de referência utilizada no cálculo da proposta. |
| `request_control_key` | string, opcional | Chave de controle da requisição que originou a proposta, quando informada na criação. |
| `include_matured_installment` | booleano, opcional | Indica se parcelas vencidas foram incluídas na renegociação. Só aparece na resposta quando não for nulo. |
| `force_due_date` | booleano, opcional | Indica se a data de vencimento informada foi forçada, ignorando a data sugerida pelo cálculo. Só aparece na resposta quando não for nulo. |
| `issue_amount` | número, opcional | Valor de emissão, presente apenas para tipos de amortização que permitem desembolso (ex.: `equal_amount`, `present_amount`). Só aparece na resposta quando não for nulo. |
| `disbursement_issue_amount` | número, opcional | Valor de emissão a ser desembolsado ao tomador. Só aparece na resposta quando não for nulo. |
| `total_iof` | número, opcional | Valor total de IOF da operação, quando houver desembolso. Só aparece na resposta quando não for nulo. |
| `remaining_principal_disbursement_amount` | número, opcional | Saldo de principal a ser desembolsado nas parcelas remanescentes. Só aparece na resposta quando não for nulo. |
| `remaining_principal_iof_amount` | número, opcional | Saldo de IOF nas parcelas remanescentes. Só aparece na resposta quando não for nulo. |
| `payment` | objeto | Dados do meio de pagamento gerado para a proposta. Ver [Objeto payment](#objeto-payment). |
| `affected_installments` | lista de objetos, opcional | Parcelas do contrato original afetadas/liquidadas por esta proposta. Ver [Objeto affected_installments](#objeto-affected_installments). |
| `remaining_installments` | lista de objetos | Novas parcelas geradas pela renegociação, ainda a vencer. Ver [Objeto remaining_installments](#objeto-remaining_installments). |

#### Objeto `payment` {#objeto-payment}

| Campo | Tipo | Descrição |
|---|---|---|
| `digitable_line` | string, opcional | Linha digitável do boleto, quando `payment_type` for `bank_slip`. |
| `qr_code_url` | string, opcional | URL do QR Code Pix, quando `payment_type` for `pix`. |
| `qr_code_key` | string, opcional | Chave do QR Code Pix gerado. |
| `bank_slip_key` | string, opcional | Chave do boleto gerado. |
| `paid_method_type` | string (enumerador), opcional | Meio efetivamente utilizado no pagamento, preenchido somente após o pagamento ser realizado. Ver [Enumerador paid_method_type](#enumerador-paid_method_type). |
| `source_account_key` | string, opcional | Chave da conta de origem do pagamento, quando aplicável. |
| `payment_data` | objeto, opcional | Dados adicionais do pagamento, conforme o meio utilizado. |

#### Objeto `affected_installments[]` {#objeto-affected_installments}

Cada item representa uma parcela do contrato original consumida por esta proposta.

| Campo | Tipo | Descrição |
|---|---|---|
| `installment_key` | string (UUID) | Chave da parcela do contrato original. |
| `due_date` | string (data) | Data de vencimento original da parcela. |
| `principal_amount` | número | Valor de principal da parcela. |
| `interest_amount` | número | Valor de juros da parcela. |
| `fine_amount` | número, opcional | Valor de multa da parcela. |
| `total_amount` | número | Valor total da parcela (principal + juros + multa). |
| `present_amount` | número | Valor presente da parcela na data de referência da proposta. |
| `paid_amount` | número | Valor efetivamente considerado como pago/liquidado desta parcela pela proposta. |
| `principal_amortization_payment_amount` | número, opcional | Parcela do pagamento amortizada como principal. |
| `prefixed_interest_payment_amount` | número, opcional | Parcela do pagamento amortizada como juros pré-fixados. |
| `fine_payment_amount` | número, opcional | Parcela do pagamento amortizada como multa. |
| `discount_amount` | número, opcional | Valor de desconto aplicado a esta parcela. |
| `paid_principal_disbursement` | número, opcional | Valor de principal desembolsado referente a esta parcela. Só aparece na resposta quando não for nulo. |
| `paid_principal_iof` | número, opcional | Valor de IOF desembolsado referente a esta parcela. Só aparece na resposta quando não for nulo. |
| `discount_principal_disbursement` | número, opcional | Desconto aplicado sobre o principal desembolsado. Só aparece na resposta quando não for nulo. |
| `discount_principal_iof` | número, opcional | Desconto aplicado sobre o IOF desembolsado. Só aparece na resposta quando não for nulo. |
| `discount_fine_amount` | número, opcional | Desconto aplicado sobre a multa. Só aparece na resposta quando não for nulo. |
| `discount_prefixed_interest_amount` | número, opcional | Desconto aplicado sobre os juros pré-fixados. Só aparece na resposta quando não for nulo. |
| `discount_principal_amortization_amount` | número, opcional | Desconto aplicado sobre a amortização de principal. Só aparece na resposta quando não for nulo. |

#### Objeto `remaining_installments[]` {#objeto-remaining_installments}

Cada item representa uma nova parcela, ainda a vencer, gerada pela renegociação.

| Campo | Tipo | Descrição |
|---|---|---|
| `installment_key` | string (UUID) | Chave da nova parcela. |
| `due_date` | string (data) | Data de vencimento da nova parcela. |
| `principal_amount` | número | Valor de principal da parcela. |
| `interest_amount` | número | Valor de juros da parcela. |
| `fine_amount` | número, opcional | Valor de multa da parcela. |
| `total_amount` | número | Valor total da parcela (principal + juros + multa). |
| `principal_disbursement_amount` | número, opcional | Valor de principal a ser desembolsado referente a esta parcela, quando o tipo de amortização permitir desembolso. Só aparece na resposta quando não for nulo. |
| `principal_iof_amount` | número, opcional | Valor de IOF referente ao desembolso desta parcela. Só aparece na resposta quando não for nulo. |

### Enumeradores

#### Enumerador `proposal_status` {#enumerador-proposal_status}

| Valor | Descrição |
|---|---|
| `pending_payment` | Proposta criada, aguardando pagamento. |
| `processing_payment` | Pagamento identificado e em processamento. |
| `paid` | Proposta paga/liquidada com sucesso. |
| `canceled` | Proposta cancelada. |
| `rejected` | Proposta rejeitada. |
| `awaiting_disbursement` | Proposta paga e aguardando o desembolso do valor ao tomador. |
| `partially_settled` | Proposta parcialmente liquidada. |

#### Enumerador `payment_type` {#enumerador-payment_type}

| Valor | Descrição |
|---|---|
| `manual` | Pagamento controlado manualmente, sem geração de meio de pagamento pela QI Tech. |
| `bank_slip` | Pagamento via boleto bancário. |
| `pix` | Pagamento via Pix. |
| `internal` | Pagamento processado internamente, sem geração de boleto ou Pix. |

#### Enumerador `paid_method_type` {#enumerador-paid_method_type}

| Valor | Descrição |
|---|---|
| `bank_slip` | Pagamento identificado via boleto bancário. |
| `pix` | Pagamento identificado via Pix. |
| `integrated_payment` | Pagamento identificado via integração de pagamento (ex.: desconto em folha/conta). |
| `manual` | Pagamento registrado manualmente. |
| `internal` | Pagamento processado internamente. |

#### Enumerador `amortization_type` {#enumerador-amortization_type}

| Valor | Descrição |
|---|---|
| `installment_payment` | Pagamento de parcela(s) específica(s). |
| `first_installments` | Amortização das primeiras parcelas do contrato. |
| `last_installments` | Amortização das últimas parcelas do contrato. |
| `overdue_installment_payment` | Pagamento de parcela(s) em atraso. |
| `overdue_and_maturing_payment` | Pagamento de parcelas em atraso e a vencer. |
| `full_settle` | Liquidação total do contrato. |
| `equal_amount` | Renegociação com parcelas de valor igual, com possibilidade de desembolso. |
| `present_amount` | Renegociação a valor presente, com possibilidade de desembolso. |

:::info Paginação
`pagination.next_page` retorna `null` quando a página atual já é a última.
:::

STATUS 400

Response Body

```json
{
  "title": "Bad Request",
  "description": "1 validation error for GetParamsEntity\nproposal_status\n  value is not a valid enumeration member; permitted: 'pending_payment', 'processing_payment', 'paid', 'canceled', 'rejected', 'awaiting_disbursement', 'partially_settled' (type=type_error.enum; enum_values=[<ProposalStatusEnum.pending_payment: 'pending_payment'>, <ProposalStatusEnum.processing_payment: 'processing_payment'>, <ProposalStatusEnum.paid: 'paid'>, <ProposalStatusEnum.canceled: 'canceled'>, <ProposalStatusEnum.rejected: 'rejected'>, <ProposalStatusEnum.awaiting_disbursement: 'awaiting_disbursement'>, <ProposalStatusEnum.partially_settled: 'partially_settled'>])",
  "translation": "Payload Inválido",
  "code": "QIT000001"
}
```

---

# 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\"}"
}
```