Skip to main content

Simulações

Módulo de simulação de empréstimo. É o motor de cálculo financeiro (parcelas, IOF, CET, cenários de desembolso) usado tanto por POST /v5/loan-simulations quanto internamente por POST /v5/loans (Empréstimos). A simulação é gravada e pode ser consultada depois, mas não cria contrato.

Rota base v5/loan-simulations.

Autenticação​

API Key. Exige permissão de criação de simulações. Ver Autenticação.

Rotas implementadas​

RotaVerboResumo
/v5/loan-simulationsPOSTCalcula e persiste uma simulação.

Leitura, edição, cópia, exclusão e busca de simulações ficam no portal da Semear e não são expostas na API de integração: guarde a resposta do POST se precisar dela depois.

Convenções gerais reutilizadas nesta página: Tratamento de erros, Objeto de domínio. Valores fixos em Domínios › Empréstimos.

Três modos de simular​

Você informa prazo e taxa e escolhe qual valor fixar. simulationMode é inferido pelo campo enviado:

Você enviasimulationMode.keyA API calcula
installmentAmountterm_rate_installmentQuanto o trabalhador recebe em conta (disbursementAmount)
disbursementAmountterm_rate_disbursementQual será a parcela (installmentAmount)
principalAmountterm_rate_principalA parcela e o líquido a partir do valor contratado

Envie apenas um dos três. No consignado, o mais comum é fixar a parcela igual à availableMarginAmount obtida em Dados do trabalhador; quando a operação tem garantia de FGTS, fixar o principalAmount facilita casar o contratado com a garantia exigida na averbação. Os demais modos de LoanSimulationMode não são usados na collection.

O produto private_payroll​

product: "private_payroll" identifica o produto de empréstimo cadastrado para a sua empresa. Ele define os padrões aplicados quando o campo não é enviado. Valores observados no exemplo da collection:

ParâmetroValor do produtoCampo na resposta
Tipo de produto / entidadeprivate_payroll_loan (300) / private_company (300)productType, payrollEntity
OperaçãonewoperationType
Amortização / juros / baseprice / pre_fixed_days / calendar_days_365amortizationSystem, interestType, interestBase
Frequênciamonthly, 30 diaspaymentFrequencyType, paymentFrequency
IOF0,38% fixo + 0,0082% ao dia, teto 365 dias, não financiadoiofBaseRate, iofDailyRate, iofDailyMaxDays, iofIsFinanced
Atrasomulta 2% sobre saldo devedor; mora 1% ao mês sobre saldo devedorlatePenaltyRule/Value, lateInterestRule/Value
Dia de corte / prazo mínimo / dia útil10 / 30 dias / próximo dia útilcutoffDay, firstInstallmentMinDays, businessDayAdjustmentRule
Cenários de desembolso5numberOfDisbursementOptions
Pagamento / desembolsodirect_loan / tedpaymentMethod, disbursementMethod

Campos da entidade​

Classificação​

CampoEntradaTipoDescrição
id, code—string (uuid), integerIdentificadores da simulação.
typetypeobject (code/key/name)loan. Ver LoanType.
simulationModesimulationMode (inferido)object (code/key/name)Ver Três modos.
lender, fund, productRulelenderId, fundId, ruleIdobject (Referência)Não preenchidos no consignado privado.
productType, operationType, payrollEntity, productproductType, operationType, payrollEntity, product/productIdobjectHerdados do produto.
description, parties[], step, statusidem—Simulações não têm tomador nem status (status vem com valores nulos). step = formalization.

Datas​

CampoEntradaTipoDescrição
disbursementDatedisbursementDatestring (date)Data prevista do desembolso.
firstDueDatefirstDueDatestring (date)Primeiro vencimento ajustado pelas regras do produto (pode diferir do enviado).
lastDueDate—string (date)Último vencimento.
calendarDays, businessDays—integerDias corridos e úteis do desembolso ao último vencimento.
dueDay, cutoffDay, firstInstallmentMinDays, businessDayAdjustmentRuleidem—Regras do produto que moveram firstDueDate. Em dueDay e cutoffDay, enviar 0 equivale a não enviar: vale o padrão do produto. dueDay devolve o valor configurado (ou 0), e não o dia calculado pelo calendário de competências — o dia efetivo está em firstDueDate.

Valores​

CampoEntradaTipoDescrição
baseAmount, principalAmount, originationAmountbaseAmount, principalAmountdecimalValor financiado. Iguais quando não há tarifas nem entrada.
disbursementAmountdisbursementAmountdecimalValor líquido em conta: o principal já descontado do IOF e das tarifas que não foram financiados.
downPaymentAmount, discountAmountidemdecimalEntrada e desconto.
feeAmount, financedFeeAmount, unfundedFeeAmount, fees[]fees[]—Tarifas totais, financiadas e não financiadas.
numberOfInstallments, installmentAmountideminteger, decimalPrazo e parcela.
totalReceivableAmount—decimalTotal a receber ao longo de todo o contrato.
outstandingAmount—decimalSaldo devedor inicial, antes de qualquer pagamento. Corresponde ao principal.
fixedInterestAmount, floatingInterestAmount—decimalTotal de juros prefixados e pós-fixados.

Taxas​

CampoEntradaTipoDescrição
rate, monthlyRate, dailyRate, annualRate, fixedRatemonthlyRatedecimalTaxa contratual expressa em diferentes periodicidades — diária, mensal e anual — todas equivalentes entre si. Envie a mensal; as demais vêm calculadas.
floatingIndexType, floatingIndexMultiplier, floatingIndexSpreadidem—Índice pós-fixado (none no consignado). Ver LoanFloatingIndexType.
effectiveInterestRate, monthlyEffectiveInterestRate, annualEffectiveInterestRate—decimalCusto Efetivo Total (CET), considerando juros, IOF e tarifas ao longo de todo o fluxo do contrato. A versão mensal e a anual são equivalentes entre si — expressam o mesmo custo em periodicidades diferentes. É o valor a exibir ao tomador. Os antigos campos cet, monthlyCet e annualCet não são mais devolvidos nas rotas v5.
iofIsFinanced, iofBaseRate, iofDailyRate, iofDailyMaxDays, iofAmount, iofFinancedAmountiofIsFinanced, iofBaseRate, iofDailyRate, iofDailyMaxDays—IOF. Com iofIsFinanced = false, iofAmount é descontado do líquido.
latePenaltyRule, latePenaltyRuleValue, lateInterestRule, lateInterestRuleValueidem—Regras de multa e mora. Ver LatePenaltyRule e LateInterestRule.

Configuração​

CampoEntradaTipoDescrição
graceType, graceDays, interestGracePeriod, principalGracePeriodgraceType, graceDays—Carência. Ver LoanGraceType.
interestType, interestBase, amortizationSystemidemobjectVer LoanInterestType, LoanInterestBase, LoanAmortizationSystem.
paymentFrequencyType, paymentFrequency, factoridem—Frequência de pagamento.
cardcardobjectLimites de cartão consignado. Zerados em empréstimo.
originContracts[]originContracts[]arrayContratos de origem (portabilidade/refinanciamento). Vazio em operação nova.

installments[] — somente saída​

Omitido quando resultOptions.disableInstallments = true.

CampoTipoDescrição
id, key, installmentNumberuuid, uuid, integerIdentificação da parcela.
dueDate, businessDueDatedateVencimento contratual e ajustado para dia útil.
periodStartDate, periodEndDate, calendarDays, businessDays—Período de competência da parcela.
installmentAmount, amortizationAmount, interestAmountdecimalValor da parcela e sua composição entre amortização e juros do período (Price).
principalAmount, outstandingAmount, dueBalanceAmountdecimalSaldo devedor antes da parcela.
fixedRate, fixedInterestAmount, floatingRate, floatingInterestAmountdecimalTaxa e juros do período. Na 1ª parcela, com mais dias, fixedRate supera a mensal.
iofBaseAmount, iofDailyAmount, iofAmount, iofDays, accumulatedCalendarDays—IOF da parcela e dias acumulados (IOF diário limitado a 365 dias).
feeAmount, interestType, note—Tarifa da parcela, tipo de juros e observação.

disbursementOptions[] — somente saída​

numberOfDisbursementOptions cenários, um por dia a partir de disbursementDate, cada um com o mesmo conjunto de valores e taxas do cabeçalho recalculado para aquela data (id, nid, disbursementDate, firstDueDate, lastDueDate, simulationAmount, principalAmount, disbursementAmount, installmentAmount, iofAmount, taxas, fees[], note). São usados por PUT /v5/loans/{id}/disbursements quando a data efetiva difere da prevista.

Datas e regras do produto​

O produto aplica regras que podem mover o primeiro vencimento. No exemplo da collection, o pedido foi firstDueDate: 2026-03-10 e a API devolveu 2026-04-21:

RegraCampoEfeito
Prazo mínimo até a 1ª parcelafirstInstallmentMinDays: 30O primeiro vencimento precisa estar ao menos 30 dias após o desembolso.
Calendário de competências—O primeiro vencimento cai no dia de vencimento do mês seguinte à competência da Dataprev em que está o desembolso. A janela de cada competência vem do calendário oficial do Crédito do Trabalhador, consultado no momento da simulação.
Dia de cortecutoffDay: 10Usado só quando o calendário da Dataprev não está disponível: datas após o corte empurram o vencimento para o ciclo seguinte da folha.
Ajuste de dia útilbusinessDayAdjustmentRule: next_business_dayVencimentos em fim de semana/feriado vão para o próximo dia útil (businessDueDate).

Em disbursementOptions[], cada data de desembolso usa a competência em que ela cai, por isso cenários de dias seguidos podem ter primeiros vencimentos diferentes quando atravessam a virada da competência.

Use sempre as datas devolvidas ao apresentar a proposta e ao emitir o contrato.


POST /v5/loan-simulations​

Calcula e persiste uma simulação.

Autenticação: API Key. Exige permissão de criação de simulações.

Payload de entrada​

Campos enviados pelas requisições Simulação por Valor de Parcela e Simulação por Valor do Desembolso da collection. As duas diferem só no valor de referência: installmentAmount ou disbursementAmount (envie apenas um).

Visualizar parâmetros
CampoTipoObrigatórioDescrição
productstringSimkey do produto. Use private_payroll. Alternativa: productId (uuid, inválido → 1010010). Desconhecido → 1010003.
disbursementDatestring (date)SimData prevista do desembolso.
firstDueDatestring (date)SimPrimeiro vencimento desejado (ajustável).
numberOfInstallmentsintegerSimQuantidade de parcelas. Inválido → 1010004.
installmentAmountdecimalUm dos trêsFixa a parcela. Inválido → 1010006.
monthlyRatedecimalSimTaxa mensal em fração. Ausente/zero → 1010005/1010009.
resultOptions.disableInstallmentsboolean | nullNãotrue devolve installments: []. Reduz o corpo em dezenas de KB.
disbursementAmountdecimalUm dos trêsFixa o líquido em conta. Inválido → 1010007.
Outros campos aceitos (não usados na collection)
CampoTipoObrigatórioDescrição
principalAmountdecimalUm dos trêsFixa o valor contratado.
Demais campos—Nãotype, productType, operationType, payrollEntity, description, borrower, parties[], graceType, graceDays, dueDay, cutoffDay, firstInstallmentMinDays, businessDayAdjustmentRule, floatingIndexType/Multiplier/Spread, iofIsFinanced, iofBaseRate, iofDailyRate, iofDailyMaxDays, latePenaltyRule/Value, lateInterestRule/Value, interestType, interestBase, amortizationSystem, paymentFrequencyType, paymentFrequency, fees[], originContracts[], numberOfDisbursementOptions, paymentMethod, paymentBankAccount, paymentPix, disbursementMethod, disbursementBankAccount, disbursementPix, currency, refCode, note, card, unitId, partnerId, branchId, agentId, userId. Padrões vêm do produto. loanAmount e debitAmount são obsoletos — use disbursementAmount.

Exemplo de Requisição e Resposta​

Visualizar Body
{
"product": "private_payroll",
"disbursementDate": "2026-10-16",
"firstDueDate": "2026-10-16",
"numberOfInstallments": 96,
"installmentAmount": 100.00,
"monthlyRate": 0.018,
"resultOptions": {
"disableInstallments": true
}
}
Postman

As requisições Simulação por Valor de Parcela e Simulação por Valor do Desembolso da collection trazem um script de Visualizer que renderiza a resposta em tabelas (valores, parcelas, taxas, IOF). Abra a aba "Visualize" no Postman após executar.