Exemplos — Amortização Extraordinária
Esta página apresenta cinco cenários de criação. A interação do integrador é fire-and-forget: realiza apenas a chamada de criação e a QI Tech orquestra liquidação, finalização e cancelamento internamente. Não há webhook tenant-facing dedicado às transições de status do event_conciliation extraordinário; a confirmação do efeito da operação é observada via os relatórios e webhooks já existentes para a operação subjacente (ex.: commercial_paper.operation_status_change).
Cenário 1: quitação antecipada parcial de uma parcela (early_amortization)
Cobre uma única parcela futura, com pagamento parcial permitido.
POST /event_conciliation/extraordinary_event
{
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"investment_key": "<investment_key>",
"amortization_type": "early_amortization",
"amount": 1500.00,
"reference_date": "2026-04-24",
"due_date": "2026-04-24",
"installment_list": [3]
}
Resposta: 201 Created
{
"extraordinary_event_conciliation_key": "11111111-1111-4111-8111-111111111111",
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"amortization_type": "early_amortization",
"total_expected_amount": 1500.00,
"total_discount_amount": 0,
"status": "pending_conciliation",
"reference_date": "2026-04-24",
"due_date": "2026-04-24",
"event_conciliation_list": [
{
"event_conciliation_key": "22222222-2222-4222-8222-222222222222",
"installment_key": "33333333-3333-4333-8333-333333333333",
"expected_amount": 1500.00,
"discount_amount": 0,
"due_date": "2026-04-24",
"status": "pending_conciliation",
"event_conciliation_type": "extraordinary"
}
]
}
A partir desse 201 a integração está concluída do lado do integrador. Quando o pagamento de R$ 1.500,00 atingir a conta de liquidação correspondente, a QI Tech (account-liquidation-api) liquida o evento de conciliação da parcela internamente e atualiza o paid_amount; quando a soma cobre total_expected_amount - tolerance_amount, o parent transita para paid. Se o pagamento não entrar, o evento é cancelado ou finalizado pela rotina diária de settlement do security-service.
Cenário 2: quitação total com desconto (present_amount com 2 installments)
Cria uma amortização com desconto consolidado cobrindo duas parcelas.
POST /event_conciliation/extraordinary_event
{
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"investment_key": "<investment_key>",
"amortization_type": "present_amount",
"amount": 5000.00,
"reference_date": "2026-04-24",
"due_date": "2026-04-24",
"installment_list": [1, 2],
"total_discount": 100.00
}
Resposta 201 Created — dois eventos de conciliação da parcela são gerados com os valores distribuídos conforme o engine de present_amount (juros → multa → principal). Veja Criar Amortização Extraordinária para o shape completo da resposta.
A partir do 201 a interação do integrador é a mesma do Cenário 1: a QI Tech liquida cada evento de conciliação da parcela quando os pagamentos correspondentes entram, e finaliza ou cancela o evento internamente caso os valores não cheguem dentro da janela de settlement.
Cenário 3: quitação de parcelas futuras pelo valor nominal (nominal_amount)
Emissor quer quitar as parcelas 3 e 4 antes do vencimento pagando o valor nominal de cada uma (principal + juros no vencimento), sem desconto a Valor Presente. A reference_date é anterior ao vencimento de ambas.
{
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"investment_key": "<investment_key>",
"amortization_type": "nominal_amount",
"amount": 18670.00,
"reference_date": "2026-02-08",
"due_date": "2026-06-06",
"installment_list": [3, 4]
}
Resposta 201 Created — um evento de conciliação da parcela por parcela, com expected_amount igual ao valor nominal de cada uma (9360.00 e 9310.00 neste exemplo). Se o amount fosse menor que a soma, a parcela 3 seria coberta primeiro e a parcela 4 receberia o restante. Parcelas vencidas retornam EVC100030; amount acima da soma dos valores nominais retorna EVC100031. A liquidação aceita pagamento parcial, como em early_amortization.
Cenário 4: quitação integral com valor negociado (full_amortization)
Emissor e investidor acordam quitar as parcelas 1 e 2 por R$ 10.000,00, embora os Valores Presentes na reference_date sejam R$ 9.460,00 e R$ 9.410,00. O amount é rateado proporcionalmente ao Valor Presente e cada parcela é quitada integralmente na liquidação.
{
"security_key": "971380d4-469e-48f6-a64b-3afb8a88109e",
"investment_key": "<investment_key>",
"amortization_type": "full_amortization",
"amount": 10000.00,
"reference_date": "2026-02-08",
"due_date": "2026-02-08",
"installment_list": [1, 2]
}
Resposta 201 Created — dois eventos de conciliação da parcela com expected_amount 5013.25 e 4986.75 (a soma é igual ao amount) e discount_amount 4446.75 e 4423.25. Um amount acima da soma dos Valores Presentes retorna EVC100035; um amount pequeno demais para dar cota positiva a todas as parcelas retorna EVC100034.
Cenário 5: quitação integral de ativo com carência (full_amortization)
Um ativo pré-fixado de R$ 30.000,00 tem quatro parcelas trimestrais, juros de 6% ao trimestre e todo o principal na parcela 4 — as parcelas 1 a 3 são de carência e pagam só juros. O ativo tem um único investidor, detentor de todas as cotas integralizadas, não é liquidado via CETIP e o investidor é liquidado pelo novo sistema interno. Emissor e investidor acordam quitar toda a dívida por R$ 31.500,00 em 2026-02-20, antes do vencimento da parcela 1. Nessa reference_date, as parcelas valem:
| Parcela | Vencimento | Principal | Juros | Valor Presente |
|---|---|---|---|---|
| 1 | 2026-03-10 | R$ 0,00 | R$ 1.800,00 | R$ 1.780,13 |
| 2 | 2026-06-10 | R$ 0,00 | R$ 1.800,00 | R$ 0,00 |
| 3 | 2026-09-10 | R$ 0,00 | R$ 1.800,00 | R$ 0,00 |
| 4 | 2026-12-10 | R$ 30.000,00 | R$ 1.800,00 | R$ 30.000,00 |
A parcela 1, a primeira a vencer, vale seus juros descontados até a reference_date; as demais valem só o principal. Por isso as parcelas 2 e 3 têm Valor Presente 0 e são quitadas sem pagamento, nas condições descritas em Regras de Negócio. A requisição lista todas as parcelas em aberto:
{
"security_key": "55555555-5555-4555-8555-555555555555",
"investment_key": "<investment_key>",
"amortization_type": "full_amortization",
"amount": 31500.00,
"reference_date": "2026-02-20",
"due_date": "2026-02-20",
"installment_list": [1, 2, 3, 4]
}
Resposta 201 Created — quatro eventos de conciliação da parcela, com total_expected_amount 31500.00:
| Parcela | expected_amount | discount_amount |
|---|---|---|
| 1 | 1764.44 | 15.69 |
| 2 | 0.00 | 0.00 |
| 3 | 0.00 | 0.00 |
| 4 | 29735.56 | 264.44 |
A QI Tech liquida primeiro as parcelas 1 e 4, conforme os pagamentos entram; com as duas pagas, quita internamente as parcelas 2 e 3 com valor 0, sem transferência. O evento passa a paid quando as quatro parcelas estão quitadas e, com toda a dívida liquidada, o ativo passa a matured.
Duas variações dessa requisição são rejeitadas. Com installment_list [1, 2] e amount 1700.00, a requisição traz a parcela 2, de Valor Presente 0, sem quitar o principal da parcela 4 — 400 Bad Request:
{
"title": "Bad Request",
"description": "Installment 2 has present value 0 and can only be settled with 0 when the request settles all outstanding principal. Missing installments: [4].",
"translation": "A parcela 2 tem valor presente 0 e so pode ser liquidada com 0 quando a solicitacao quita todo o principal em aberto. Parcelas faltantes: [4].",
"code": "EVC100037"
}
Com installment_list [1, 4] e o mesmo amount 31500.00, a requisição quita todo o principal em aberto, mas deixa de fora as parcelas 2 e 3 — 400 Bad Request:
{
"title": "Bad Request",
"description": "The request settles all outstanding principal and must also list the installments with present value 0 due after the reference date. Missing installments: [2, 3].",
"translation": "A solicitacao quita todo o principal em aberto e deve listar tambem as parcelas com valor presente 0 que vencem depois da data de referencia. Parcelas faltantes: [2, 3].",
"code": "EVC100038"
}
O serviço não acrescenta parcelas por conta própria: liste em installment_list tudo o que a requisição quita.
Troubleshooting
Códigos de erro mais comuns ao chamar a criação. Para a lista completa, consulte o Catálogo de erros.
EVC100015(400, EarlyAmortizationRequiresSingleInstallment) —early_amortizationaceita exatamente uma parcela eminstallment_list. Reduza para 1.EVC000007(404, InstallmentNumberNotFound) — alguminstallment_numberenviado eminstallment_listnão existe nasecurityalvo. Confira os números retornados emGET /security/security/{security_key}antes de chamar.QIT000001(400) — schema rejeitado. Causa típica: enviar o campo legadoinstallment_key_list(removido), itens não inteiros ou números repetidos eminstallment_list.EVC100016(400, EarlyAmortizationInstallmentOverdue) — a parcela alvo deearly_amortizationestá vencida e não é elegível. Selecione uma parcela futura.EVC100017(400, EarlyAmortizationAmountExceedsPresentValue) — emearly_amortization, oamountexcedeu o Valor Presente da parcela. Confirme o PV antes de chamar.EVC100030(400, InstallmentNotEligibleForNominalAmortization) — emnominal_amount, alguma parcela deinstallment_listjá está vencida nareference_date. Selecione apenas parcelas futuras.EVC100031(400, NominalAmountExceedsInstallmentsNominalValue) — emnominal_amount, oamountexcedeu a soma dos valores nominais (principal + juros) das parcelas selecionadas. Reduza oamount.EVC100033(400, DistributionDoesNotMatchAmount) — a soma dosexpected_amountdistribuídos difere doamountinformado em mais de R$ 0,01. Empresent_amount, envieamountigual à soma dos Valores Presentes menos ototal_discount.EVC100034(400, DistributionWithZeroInstallment) — alguma parcela selecionada ficaria comexpected_amountzero, inclusive após o arredondamento para centavos (por exemplo,total_discountigual ao Valor Presente, ouamountque se esgota antes da última parcela). Selecione apenas parcelas que oamountcubra. Emfull_amortization, parcela com Valor Presente 0 também retorna este código quando o ativo tem mais de um investidor ou é liquidado via CETIP, quando o investidor não é liquidado pelo novo sistema ou quando a parcela já está quitada ou cancelada, vencida ou vence nareference_date.EVC100035(400, AmountExceedsInstallmentsPresentValue) — oamountexcede a soma dos Valores Presentes das parcelas selecionadas. Reduza oamount.EVC100037(400) — emfull_amortization,installment_listtraz parcela com Valor Presente 0, mas deixa de fora parcela em aberto com principal. Inclua as parcelas listadas na mensagem ou retire deinstallment_listas parcelas com Valor Presente 0: elas só são quitadas sem pagamento quando a requisição quita todo o principal em aberto.EVC100038(400) — emfull_amortization, a requisição quita todo o principal em aberto, mas não lista todas as parcelas em aberto com Valor Presente 0 que vencem depois dareference_date. Inclua as parcelas listadas na mensagem; o serviço não as acrescenta por conta própria.EVC100013(424, SecurityApiUnavailable) — Security API temporariamente indisponível ao buscar o Valor Presente; é transitório. Aguarde e repita a chamada.SEC000031(400, PostFixedSecurityNotSupported) — ativos pós-fixados (CDI, IPCA, IGPM) não são suportados na V1. Use ativospre_priceoupre_sac.