Simulações de Crédito

Visão Geral

Esta rota realiza uma simulação de proposta de crédito para um produto específico. A API retorna o id da simulação, além de todos os parâmetros calculados — como valor financiado, IOF, cronograma de parcelas e taxas — que serão utilizados na etapa de criação da solicitação formal de crédito.

CampoValor
AmbienteSandbox
Base URLhttps://sandbox.platform.flowfinance.com.br
AutenticaçãoBearer Token (OAuth2 — Keycloak)
Content-Typeapplication/json
Retorno-chaveid — UUID da simulação, usar em `POST /applications

Requisição

POST /banking/originator/products/{product_id}/preview

Path Parameter

ParâmetroTipoObrigatórioDescrição
product_idUUIDSimIdentificador único do produto de crédito.

Headers

HeaderTipoObrigatórioDescrição
AuthorizationstringSimBearer <token> — JWT obtido via Keycloak.
Content-TypestringSimDeve ser application/json.

Body

Campo de valor — obrigatório (escolha exatamente um)

A simulação exige que exatamente um dos campos abaixo seja informado. A API utiliza o campo fornecido como âncora do cálculo e deriva os demais automaticamente.

CampoTipoDescrição
total_amount_owednumberÂncora pelo total a pagar: soma de todas as parcelas (principal + juros + IOF).
financed_amountnumberÂncora pelo valor financiado: principal acrescido do IOF capitalizado.
payment_valuenumberÂncora pelo valor da parcela: a API calcula o contrato a partir da prestação desejada.
requested_amountnumberÂncora pelo valor solicitado: valor líquido a ser desembolsado ao tomador.
⚠️

Enviar mais de um desses campos ou nenhum deles resultará em erro de validação.

Demais campos obrigatórios

CampoTipoObrigatórioDescrição
interest_ratenumberSimTaxa de juros mensal (decimal). Ex.: 0.13 = 13% a.m.
tac_amountnumberSimTarifa de cadastro (TAC). Informar 0 se isento.
finance_feenumberSimOutros custos. Informar 0 se isento.
insurance_amountnumberSimValor de seguro embutido. Informar 0 se isento.
num_paymentsintegerSimNúmero de parcelas do contrato.
first_payment_datestringSimData do primeiro vencimento no formato YYYY-MM-DD.
disbursement_datestringSimData de desembolso do crédito no formato YYYY-MM-DD.
schedule_typestringSimFrequência das parcelas. Valor aceito: "MONTHLY".
iof_typestringSimTipo de IOF aplicado. Valores aceitos:
"PERSON": Pessoa Física
"BUSINESS" : Pessoa Jurídica
"BUSINESS_SIMPLE" : Pessoa Jurídica no Simples Nacional

Exemplos de Requisição

Modo 1 — Simulação por total_amount_owed

Informe o total que o tomador irá pagar ao longo do contrato.

curl --request POST \
  'https://sandbox.platform.flowfinance.com.br/banking/originator/products/87a3767c-8d12-4164-80bf-5aa0ae796f06/preview' \
  --header 'Authorization: Bearer <seu_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "total_amount_owed": 10730,
    "interest_rate": 0.13,
    "tac_amount": 0,
    "finance_fee": 0,
    "insurance_amount": 0,
    "num_payments": 12,
    "first_payment_date": "2026-06-06",
    "disbursement_date": "2026-04-17",
    "schedule_type": "MONTHLY",
    "iof_type": "PERSON"
  }'

Modo 2 — Simulação por financed_amount

Informe o valor que será efetivamente financiado (principal + IOF capitalizado).

curl --request POST \
  'https://sandbox.platform.flowfinance.com.br/banking/originator/products/87a3767c-8d12-4164-80bf-5aa0ae796f06/preview' \
  --header 'Authorization: Bearer <seu_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "financed_amount": 4885.49,
    "interest_rate": 0.13,
    "tac_amount": 0,
    "finance_fee": 0,
    "insurance_amount": 0,
    "num_payments": 12,
    "first_payment_date": "2026-06-06",
    "disbursement_date": "2026-04-17",
    "schedule_type": "MONTHLY",
    "iof_type": "PERSON"
  }'

Modo 3 — Simulação por payment_value

Informe o valor de parcela desejado e a API calcula o contrato a partir dele.

curl --request POST \
  'https://sandbox.platform.flowfinance.com.br/banking/originator/products/87a3767c-8d12-4164-80bf-5aa0ae796f06/preview' \
  --header 'Authorization: Bearer <seu_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "payment_value": 894.17,
    "interest_rate": 0.13,
    "tac_amount": 0,
    "finance_fee": 0,
    "insurance_amount": 0,
    "num_payments": 12,
    "first_payment_date": "2026-06-06",
    "disbursement_date": "2026-04-17",
    "schedule_type": "MONTHLY",
    "iof_type": "PERSON"
  }'

Modo 4 — Simulação por requested_amount

Informe o valor líquido que o tomador deseja receber no desembolso.

curl --request POST \
  'https://sandbox.platform.flowfinance.com.br/banking/originator/products/87a3767c-8d12-4164-80bf-5aa0ae796f06/preview' \
  --header 'Authorization: Bearer <seu_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "requested_amount": 4797.23,
    "interest_rate": 0.13,
    "tac_amount": 0,
    "finance_fee": 0,
    "insurance_amount": 0,
    "num_payments": 12,
    "first_payment_date": "2026-06-06",
    "disbursement_date": "2026-04-17",
    "schedule_type": "MONTHLY",
    "iof_type": "PERSON"
  }'

Resposta

HTTP 200 OK — Campos Principais

CampoTipoDescrição
idUUIDIdentificador único da simulação. Usar na criação da proposta.
financed_amountnumberValor total financiado, incluindo IOF capitalizado.
requested_amountnumberValor líquido solicitado / desembolsado ao tomador.
disbursement_amountnumberValor efetivamente liberado na data de desembolso.
total_amount_owednumberSoma total das parcelas ao longo do contrato.
payment_amountnumberValor de cada parcela (sistema PRICE).
equated_monthly_installmentnumberParcela equivalente sem IOF embutido.
interest_ratenumberTaxa de juros mensal informada na simulação.
annual_interest_ratenumberTaxa de juros anual equivalente.
annual_effective_interest_ratenumberCET (Custo Efetivo Total) anual.
monthly_effective_interest_ratenumberCET mensal.
iof_amountnumberTotal de IOF calculado para a operação.
iof_daily_ratenumberTaxa diária de IOF aplicada (0,0082%).
iof_base_ratenumberAlíquota base de IOF (0,38%).
num_periodsintegerNúmero de parcelas do contrato.
issue_datestringData de emissão do contrato (YYYY-MM-DD).
disbursement_datestringData de desembolso do crédito (YYYY-MM-DD).
first_payment_datestringData do primeiro vencimento (YYYY-MM-DD).
last_payment_datestringData do último vencimento (YYYY-MM-DD).
expiration_datestringValidade da simulação (ISO 8601).
amortization_typestring"PRICE" — sistema de parcelas fixas.
schedule_typestring"MONTHLY" — frequência mensal.
schedulearrayArray com as parcelas detalhadas (ver abaixo).

Objeto schedule[] — Parcela

CampoTipoDescrição
periodintegerNúmero sequencial da parcela.
payment_datestringData de vencimento da parcela (YYYY-MM-DD).
paymentnumberValor total da parcela.
principalnumberAmortização do principal nesta parcela.
interestnumberJuros acumulados até esta parcela.
iofnumberIOF incidente nesta parcela.
balancenumberSaldo devedor após o pagamento.
running_dayintegerNúmero de dias corridos desde a emissão.
statusstringStatus do pagamento (null = pendente).
paid_valuenumberValor pago (null enquanto não liquidado).

Exemplo de Resposta (HTTP 200)

{
  "id": "91bb507c-0196-4ffe-b4b2-4658943f93f8",
  "expiration_date": "2026-04-17T23:59:59.235014Z",
  "financed_amount": 4885.49,
  "requested_amount": 4797.23,
  "disbursement_amount": 4797.23,
  "total_amount_owed": 10730.04,
  "payment_amount": 894.17,
  "equated_monthly_installment": 717.68,
  "interest_rate": 0.13,
  "annual_interest_rate": 3.334523,
  "annual_effective_interest_rate": 3.503343,
  "monthly_effective_interest_rate": 0.133604,
  "iof_amount": 88.26,
  "num_periods": 12,
  "issue_date": "2026-04-17",
  "disbursement_date": "2026-04-17",
  "first_payment_date": "2026-06-06",
  "last_payment_date": "2027-05-06",
  "amortization_type": "PRICE",
  "schedule_type": "MONTHLY",
  "schedule": [
    {
      "period": 1,
      "payment_date": "2026-06-06",
      "payment": 894.17,
      "principal": 731.42,
      "interest": 162.75,
      "iof": 5.78,
      "balance": 4885.50,
      "running_day": 50,
      "status": null,
      "paid_value": null
    },
    { "...": "..." }
  ]
}

Próximos Passos

O id retornado deve ser armazenado e utilizado como simulation_id na criação da proposta formal de crédito:

POST /banking/originator/application
{
  "simulation_id": "91bb507c-0196-4ffe-b4b2-4658943f93f8",
  "borrower_id": "<CPF/CNPJ do tomador>",
  "..."
}


⚠️

Observações

Validade da simulação: o campo expiration_date indica que a simulação expira no final do mesmo dia em que foi gerada. Após este prazo, um novo preview deve ser solicitado.