API Docs Início Documentação Referência de API Copiar para LLM
POST/v{version}/Amortization/Batch
Crédito · Simulação

Gera simulações em lote de operações de crédito e obtém plano de pagamento, CET

Cria um novo registro de Amortization.

Visão geral

Gera simulações em lote de operações de crédito e obtém plano de pagamento, CET, custo de emissão, IOF, etc.

Autenticação e pré-requisitos

Requer autenticação. Envie o token no header Authorization: Bearer {{token}} (JWT do AWS Cognito). Integrações servidor-a-servidor podem usar X-Api-Key. Todo tráfego é HTTPS e a credencial nunca vai na URL nem em query string.

Request

Parâmetros

NomeEmTipoObrigatórioDescriçãoExemplo
versionpathstringobrigatório1
fgtsCredentialsNamequerystringopcionalvalor

Corpo da requisição

Envie no formato application/json. Corpo opcional. Envie uma lista (array) de objetos.

Campos

CampoTipoObrigatórioDescriçãoValoresExemplo
productIdstring (uuid)obrigatórioIdentificador do Produto relacionado a operação"3fa85f64-5717-4562-b3fc-2c963f66afa6"
legalPersonbooleanobrigatóriotrue
personIdstring (uuid)opcional"3fa85f64-5717-4562-b3fc-2c963f66afa6"
registrationNumberstringopcional"12345678909"
amortizationobjetoobrigatórioDados da operação. Utilize um dos valores definidos em "AmortizationType"varia conforme o tipo — ver exemplo{ … }

Exemplo de corpo

[
  {
    "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "legalPerson": true,
    "personId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "registrationNumber": "12345678909",
    "amortization": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "amortizationType": "texto",
      "startDate": "2025-08-11T13:45:00Z",
      "apr": 1.99,
      "includePaymentFixedCosts": true,
      "validationErrors": [
        {
          "memberNames": [],
          "errorMessage": "texto"
        }
      ],
      "agentCommissions": [
        {
          "name": "Fulano de Tal",
          "amount": 1000,
          "type": {},
          "baseValue": {},
          "chargeCommissionFrom": {},
          "financeCost": true
        }
      ],
      "agentCommission": {
        "name": "Fulano de Tal",
        "amount": 1000,
        "type": "Absolute",
        "baseValue": "InitialValue",
        "chargeCommissionFrom": "All",
        "financeCost": true,
        "totalValue": 0
      }
    }
  }
]

Response

Resposta 200 — retorna uma lista (array) de objetos.

Campos

CampoTipoObrigatórioDescriçãoValoresExemplo
idstring (uuid)opcionalIdentificador da simulação"3fa85f64-5717-4562-b3fc-2c963f66afa6"
productIdstring (uuid)opcionalIdentificador do produto da simulação"3fa85f64-5717-4562-b3fc-2c963f66afa6"
productNamestringopcional"Fulano de Tal"
calculateByValueTypestringopcionalTipo de tabela de amortização"texto"
requestedAmountinteger (int64)opcionalValor solicitado pelo tomador. Quando calculado pelo valor líquido, o valor solicitado é o liquido da operação.0
initialValueinteger (int64)opcionalValor inicial da dívida contraída0
liquidValueinteger (int64)opcionalValor líquido da operação1
monthlyInterestnumber (double)opcionalTaxa de juros nominal mensal da operação1000
yearlyInterestnumber (double)opcionalTaxa de juros nominal anual da operação1000
startDatestring (date-time)opcionalData de início da operação"2025-08-11T13:45:00Z"
dueDatestring (date-time)opcionalData de encerramento da operação (vencimento da última parcela)"2025-08-11T13:45:00Z"
commintegeropcionalValor total de custo de Emissão da operação (soma das comissão do agente e custos de emissão UY3), em centavos0
efectiveCommissionsarray de objetoopcionalCustos de Emissão detalhados da operação, inclui tanto as comissões do produto quanto às solicitadas pelo originador, observados os limites estabelecidosobjeto — ver detalhe abaixo[ … ]
commTcintegeropcionalValor total de custos de emissão devidos por razão de novo cliente, em centavos0
commNonTcintegeropcionalTotal de custos de emissão devidos por razão de cliente recorrente ou cobrança geral, em centavos0
agentCommissionsarray de objetoopcionalCustos de Emissão solicitados pelo originador, sem observância dos limites estabelecidos no produto. Para verificar os custos efetivamente considerados, veja efectiveCommissionsobjeto — ver detalhe abaixo[ … ]
finTaxintegeropcionalValor de IOF da operação0
effectiveMonthlyCostnumber (double)opcionalCusto Efetivo Total (CET) Mensal da operação1000
effectiveYearlyCostnumber (double)opcionalCusto Efetivo Total (CET) Anual da operação1000
registrationNumberstringopcionalCPF para consulta FGTS"12345678909"
termInMonthsintegeropcionalQuantidade de parcelas [Obsoleto. Utilizar campo 'numberOfPayments']0
numberOfPaymentsintegeropcionalQuantidade de parcelas que serão pagas pelo tomador0
paymentFixedCostsinteger (int64)opcional0
firstPaymentDatestring (date-time)opcionalData do primeiro pagamento"2025-08-11T13:45:00Z"
paymentScheduleItemsarray de objetoopcionalPlano de pagamento da operaçãoobjeto — ver detalhe abaixo[ … ]
amortizationTypestringopcionalTipo de amortização (Price, SAC, CleanPrice, etc)"texto"
aprnumber (double)opcionalTaxa de juros (APR)1.99
includePaymentFixedCostsbooleanopcionalIncluir valor da parcela fixa na simulaçãotrue
financeTaxExemptedbooleanopcionalIsenção de IOFtrue
fiduciaryGuaranteenumber (double)opcionalPercentual de Garantia fiduciária1000
indexerstringopcionalIndexador Pós-Fixado que deve ser aplicado à cada parcela"texto"
indexerValuenumber (double)opcionalPercentual Indexador Pós-fixado que deve ser aplicado à cada parcela1000
numberOfInterestPaymentsintegeropcionalParcelas de pagamento de juros0
calculationTypestringopcionalBase de cálculo (V360Meses, etc)"texto"
dueDateOnBusinessDaysbooleanopcionalDatas de vencimento são ajustadas para o próximo dia útiltrue
paymentPeriodicityobjetoopcionalobjeto — ver detalhe abaixo{ … }

Detalhe de efectiveCommissions

CampoTipoObrigatórioDescriçãoValoresExemplo
commissionNamestringopcional"Fulano de Tal"
commissionValueInCentsinteger (int64)opcional0
commissionValueInCentsDisplaystringopcional"texto"
financedbooleanopcionaltrue

Detalhe de agentCommissions

CampoTipoObrigatórioDescriçãoValoresExemplo
namestringopcional"Fulano de Tal"
amountnumber (double)opcional1000
amountDisplaystringopcional"texto"
typestringopcional"texto"
baseValuestringopcional"texto"
chargeCommissionFromstringopcional"texto"
financeCostbooleanopcionaltrue

Detalhe de paymentScheduleItems

CampoTipoObrigatórioDescriçãoValoresExemplo
dueDatestring (date-time)opcional"2025-08-11T13:45:00Z"
principalAmountInCentsinteger (int64)opcional0
amortizationinteger (int64)opcional0
interestinteger (int64)opcional0
financeTaxinteger (int64)opcional0
paymentinteger (int64)opcional0
addedFixedCostsinteger (int64)opcional0

Detalhe de paymentPeriodicity

CampoTipoObrigatórioDescriçãoValoresExemplo
everyintegeropcionalA cada quantos per�odos0
periodicitystringopcionalTipo de periodicidade (Monthly, Quarterly, etc)"texto"

Exemplo de resposta

[
  {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "productName": "Fulano de Tal",
    "calculateByValueType": "texto",
    "requestedAmount": 0,
    "initialValue": 0,
    "liquidValue": 1,
    "monthlyInterest": 1000,
    "yearlyInterest": 1000,
    "startDate": "2025-08-11T13:45:00Z",
    "dueDate": "2025-08-11T13:45:00Z",
    "comm": 0,
    "efectiveCommissions": [
      {
        "commissionName": "Fulano de Tal",
        "commissionValueInCents": 0,
        "commissionValueInCentsDisplay": "texto",
        "financed": true
      }
    ],
    "commTc": 0,
    "commNonTc": 0,
    "agentCommissions": [
      {
        "name": "Fulano de Tal",
        "amount": 1000,
        "amountDisplay": "texto",
        "type": "texto",
        "baseValue": "texto",
        "chargeCommissionFrom": "texto",
        "financeCost": true
      }
    ],
    "finTax": 0,
    "effectiveMonthlyCost": 1000,
    "effectiveYearlyCost": 1000,
    "registrationNumber": "12345678909",
    "termInMonths": 0,
    "numberOfPayments": 0,
    "paymentFixedCosts": 0,
    "firstPaymentDate": "2025-08-11T13:45:00Z",
    "paymentScheduleItems": [
      {
        "dueDate": "2025-08-11T13:45:00Z",
        "principalAmountInCents": 0,
        "amortization": 0,
        "interest": 0,
        "financeTax": 0,
        "payment": 0,
        "addedFixedCosts": 0
      }
    ],
    "amortizationType": "texto",
    "apr": 1.99,
    "includePaymentFixedCosts": true,
    "financeTaxExempted": true,
    "fiduciaryGuarantee": 1000,
    "indexer": "texto",
    "indexerValue": 1000,
    "numberOfInterestPayments": 0,
    "calculationType": "texto",
    "dueDateOnBusinessDays": true,
    "paymentPeriodicity": {
      "every": 0,
      "periodicity": "texto"
    }
  }
]

Códigos de retorno

CódigoSignificadoDetalhe do contrato
200Requisição bem-sucedida.Success
400Requisição inválida (validação de campos ou regra de negócio).Bad Request

Exemplos

curl -X POST "{{baseUrl}}/v1/Amortization/Batch" \
  -H "Authorization: Bearer {{token}}" \
  -H "Content-Type: application/json" \
  -d '[
  {
    "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "legalPerson": true,
    "personId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "registrationNumber": "12345678909",
    "amortization": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "amortizationType": "texto",
      "startDate": "2025-08-11T13:45:00Z",
      "apr": 1.99,
      "includePaymentFixedCosts": true,
      "validationErrors": [
        {
          "memberNames": [],
          "errorMessage": "texto"
        }
      ],
      "agentCommissions": [
        {
          "name": "Fulano de Tal",
          "amount": 1000,
          "type": {},
          "baseValue": {},
          "chargeCommissionFrom": {},
          "financeCost": true
        }
      ],
      "agentCommission": {
        "name": "Fulano de Tal",
        "amount": 1000,
        "type": "Absolute",
        "baseValue": "InitialValue",
        "chargeCommissionFrom": "All",
        "financeCost": true,
        "totalValue": 0
      }
    }
  }
]'
var baseUrl = "{{baseUrl}}";
var token   = "{{token}}";

using var http = new HttpClient { BaseAddress = new Uri(baseUrl) };
http.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", token);

var rota = "/v1/Amortization/Batch";

var corpo = new StringContent(
    """
    [
      {
        "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "legalPerson": true,
        "personId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "registrationNumber": "12345678909",
        "amortization": {
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "amortizationType": "texto",
          "startDate": "2025-08-11T13:45:00Z",
          "apr": 1.99,
          "includePaymentFixedCosts": true,
          "validationErrors": [
            {
              "memberNames": [],
              "errorMessage": "texto"
            }
          ],
          "agentCommissions": [
            {
              "name": "Fulano de Tal",
              "amount": 1000,
              "type": {},
              "baseValue": {},
              "chargeCommissionFrom": {},
              "financeCost": true
            }
          ],
          "agentCommission": {
            "name": "Fulano de Tal",
            "amount": 1000,
            "type": "Absolute",
            "baseValue": "InitialValue",
            "chargeCommissionFrom": "All",
            "financeCost": true,
            "totalValue": 0
          }
        }
      }
    ]
    """,
    Encoding.UTF8, "application/json");

var resp = await http.PostAsync(rota, corpo);
resp.EnsureSuccessStatusCode();
var json = await resp.Content.ReadAsStringAsync();
const baseUrl = '{{baseUrl}}';
const token   = '{{token}}';

const payload = [
  {
    "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "legalPerson": true,
    "personId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "registrationNumber": "12345678909",
    "amortization": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "amortizationType": "texto",
      "startDate": "2025-08-11T13:45:00Z",
      "apr": 1.99,
      "includePaymentFixedCosts": true,
      "validationErrors": [
        {
          "memberNames": [],
          "errorMessage": "texto"
        }
      ],
      "agentCommissions": [
        {
          "name": "Fulano de Tal",
          "amount": 1000,
          "type": {},
          "baseValue": {},
          "chargeCommissionFrom": {},
          "financeCost": true
        }
      ],
      "agentCommission": {
        "name": "Fulano de Tal",
        "amount": 1000,
        "type": "Absolute",
        "baseValue": "InitialValue",
        "chargeCommissionFrom": "All",
        "financeCost": true,
        "totalValue": 0
      }
    }
  }
];

const resp = await fetch(`${baseUrl}/v1/Amortization/Batch`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload),
});

if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const data = await resp.json();

Troque apenas {{baseUrl}} e {{token}}. No Postman, defina-os como variáveis de environment; o cURL importa em Import > Raw text.

Downloads

Este endpoint já vem configurado nas collections abaixo, na pasta da etapa correspondente.

Guia de importação: Como importar no Postman · Todos os downloads: Downloads