Batch Renegotiation Proposal - BNPL
Overview
After simulating the values, you can create a batch renegotiation proposal for multiple BNPL operations. The proposal generates a single payment method (bank slip and/or Pix) that covers all operations included in the batch.
For the present_amount amortization type, each installment informed in operations[].installments[] must include paid_amount (amount paid/allocated to that installment) and discount_amount (discount in BRL applied to the installment), in addition to installment_key.
Batch renegotiation can only be created with operations from the same issuer and the same integration key. There is a limit of 50 operations per batch renegotiation.
Request
The fields discount_amount and discount_percentage CANNOT be sent together in the same payload (root level).
At the root of the body, discount_amount and discount_percentage are alternatives for a global discount on the present value. The paid_amount and discount_amount fields inside each object of operations[].installments[] define the per-installment composition when amortization_type is present_amount (they are required in this mode and do not conflict with the root-level rule).
Request Body
{
"amortization_type": "present_amount",
"reference_date": "2026-04-08",
"proposal_due_date": "2026-04-15",
"discount_percentage": 0.0,
"payment_type": "pix",
"request_control_key": "94b31045-c8e7-45be-a88d-2ae25c5df5db",
"operations": [
{
"debt_key": "1baea8a0-0fca-4f7c-8857-a227d4da72f8",
"installments": [
{
"installment_key": "ca5741c7-99a2-42e7-92a1-9328a36e4e88",
"paid_amount": 500,
"discount_amount": 50
}
]
},
{
"debt_key": "2cbfb9b1-1fdb-5f8d-9967-b338e5eb83f9",
"installments": [
{
"installment_key": "2ef25ed8-7124-44f5-9e3d-1d1a7196166e",
"paid_amount": 150,
"discount_amount": 10
}
]
}
]
}
Body Params
| Field | Type | Description | Max. Char. |
|---|---|---|---|
amortization_type* | string | Amortization type | Amortization Type Enumerators |
reference_date* | string | Reference date for present value calculation (D+1) | 10 |
proposal_due_date* | string | Due date for the renegotiation proposal | 10 |
payment_type* | string | Payment type | Payment Type Enumerators |
request_control_key | string | Control key for tracking and unique identification (optional) | UUID |
discount_percentage | float | Discount percentage on the present value | 10 |
discount_amount | float | Discount amount on the present value | 10 |
operations* | array | List of operations to be renegotiated | Operations Object |
Operations Object
| Field | Type | Description | Max. Char. |
|---|---|---|---|
debt_key* | string | Unique key of the credit operation (DEBT-KEY) | UUID |
installments* | array | Installments to be renegotiated | Installments Object |
Installments Object
| Field | Type | Description | Max. Char. |
|---|---|---|---|
installment_key* | string | Key of the installment to be renegotiated | UUID |
paid_amount | float | Amount paid (or allocated) on the installment, in BRL (R$). Required when amortization_type is present_amount. | 15,2 |
discount_amount | float | Discount amount in BRL (R$) applied to the installment. Required when amortization_type is present_amount (use 0 if there is no discount). For other amortization types, it remains optional per installment. | 15,2 |
Payment Type Enumerators
| Field | Description |
|---|---|
bank_slip | Payment via bank slip (generates bank slip and Pix) |
pix | Payment via Pix (generates Pix only) |
manual | Manual payment (does not generate a payment method) |
Amortization Type Enumerators
| Field | Description |
|---|---|
| present_amount | Renegotiation with per-installment present value composition. In each item of installments[], installment_key, paid_amount and discount_amount are required. |
| installment_payment | Renegotiation for payment of specific installments. Requires the installment_key of each installment. |
| overdue_installment_payment | Renegotiation targeted at overdue installment payment. Requires the installment_key of each installment. |
Response
Response Body
{
"batch_proposal_key": "ff5ad6dd-2087-4850-a3e8-b37634448b4e",
"discount_percentage": 0,
"discount_amount": 0,
"amortization_type": "present_amount",
"payment_amount": 517.88,
"requester_name": "Dante Ltda",
"requester_key": "78287247-947d-4730-9bd1-7efb068175b6",
"issuer_name": "Dante Ferrarini",
"reference_date": "2026-04-08",
"issuer_document_number": "31057466093",
"batch_proposal_status": "pending_payment",
"proposal_due_date": "2026-04-15",
"payment_type": "pix",
"request_control_key": "94b31045-c8e7-45be-a88d-2ae25c5df5db",
"origin_key": null,
"operations": [
{
"requester_key": "78287247-947d-4730-9bd1-7efb068175b6",
"contract_number": "DWF1761222116",
"payment_amount": 517.88,
"discount_amount": 0,
"origin_key": null,
"affected_installments": [
{
"installment_key": "1dea396f-beb1-4df3-9822-35800b4c095a",
"due_date": "2026-05-07",
"principal_amount": 491.49,
"interest_amount": 52.4,
"fine_amount": 0,
"total_amount": 543.89,
"present_amount": 517.88,
"paid_amount": 517.88,
"principal_amortization_payment_amount": 491.49,
"prefixed_interest_payment_amount": 26.39,
"fine_payment_amount": 0,
"discount_amount": 0
}
],
"remaining_installments": [
{
"installment_key": "370e73d1-55d8-431e-9b22-d08fb8297999",
"due_date": "2026-06-07",
"principal_amount": 516.13,
"interest_amount": 27.76,
"fine_amount": 0,
"total_amount": 543.89
}
],
"debt_key": "72760166-4ddf-41fb-8a8c-605f8f4fc35c"
}
],
"payment": {
"digitable_line": null,
"qr_code_url": "00020126930014br.gov.bcb.pix2571qrcode-h.sandbox.qitech.app/bacen/cobv/acaeb341e1264cde99b93e247e12b3725204000053039865802BR5925QISOCIEDADEDECREDITODIRET6008SaoPaulo61080145200062070503***63043AD0",
"qr_code_key": "acaeb341-e126-4cde-99b9-3e247e12b372",
"bank_slip_key": null,
"paid_method_type": "pix",
"source_account_key": null,
"payment_data": {
"creditor_bank_account_key": "6108dd45-580d-48c4-b3bb-74c1e843be49",
"batch_renegotiation_proposal_key": "ff5ad6dd-2087-4850-a3e8-b37634448b4e"
}
}
}
Save the batch_proposal_key returned in the response. It will be needed to check the batch renegotiation status and to receive payment webhooks.