Skip to main content

Regras de Negócio — Amortização Extraordinária

Esta página consolida as invariantes que governam a criação, a liquidação e o cancelamento de uma amortização extraordinária. Consulte-a sempre que as páginas de endpoints citarem um código de erro, um campo ou uma condição que precise de contexto adicional.

Data de referência (reference_date)

A reference_date é fornecida pelo chamador na requisição de criação e é a única referência temporal usada pelo serviço — o sistema nunca usa date.today(). Toda lógica dependente de data (classificação de parcelas vencidas, desconto pro-rata do Valor Presente, seleção de parcelas elegíveis para early_amortization) parte desse campo.

Tipos de amortização

Os 5 tipos suportados e como cada um se combina com os modos de criação:

TipoModoinstallment_listRegra de distribuiçãoPermite pagamento parcial
equal_amountModo 2 (Acquittance)Não enviaProporcional, vencidas primeiro e depois futurasNão
first_installmentsModo 2 (Acquittance)Não enviaSequencial nas N primeiras parcelasNão
present_amountModo 1 (Targeted)EnviaExplícita por parcela; desconto ordena juros → multa → principalNão
matured_installmentsModo 1 (Targeted)EnviaApenas parcelas já vencidasNão
early_amortizationModo 1 (Targeted)Envia (exatamente 1)Uma única parcela futura com suporte a pagamento parcialSim

Modo 1 — Targeted (com installment_list — array de installment_number inteiros): usa o endpoint PV per-installment — uma chamada por parcela selecionada. O serviço resolve cada installment_number para a parcela correspondente da security. Modo 2 — Acquittance (sem installment_list): usa o endpoint PV bulk — uma única chamada devolve o PV de todas as parcelas.

Amortização antecipada (early_amortization)

early_amortization é o único tipo que permite pagamento parcial. Todas as seguintes condições se aplicam:

  • Exatamente 1 parcela em installment_list — caso contrário, EVC100015.
  • A parcela-alvo não pode estar vencida — caso contrário, EVC100016.
  • O amount deve ser ≤ Valor Presente da parcela — caso contrário, EVC100017.
  • Pagamento parcial é permitido. O estado paid_amount > 0 AND paid_amount < expected_amount é derivado das colunas; não há novo valor de enum de status. pending_conciliation representa tanto "não pago" quanto "parcialmente pago"; a transição para paid só ocorre quando total_paid_amount >= total_expected_amount - tolerance_amount.

Fluxo de liquidação

Orquestração interna. A liquidação dos eventos extraordinários é executada pela QI Tech (account-liquidation-api) ao detectar o pagamento — o integrador não chama nenhum endpoint nesta etapa, nem recebe webhook dedicado às transições de status. As regras abaixo descrevem o comportamento interno para você entender o que ocorre após a criação.

Liquidação ordinária emite o total completo (regra 4). A liquidação ordinária na due_date continua emitindo o total_amount completo da parcela via SQS; não há subtração do paid_amount. O evento reconcilia o estado parcial-pago no seu próprio engine de early_amortization.

Cancelamento e finalização

Orquestração interna. Cancelamento e finalização são disparados por uma rotina diária e — o integrador não chama nenhum endpoint para cancelar ou finalizar uma amortização extraordinária, e não há webhook tenant-facing dedicado a essas transições. A descrição abaixo é informativa.

Veja também