Pular para o conteúdo

Simular nova condição

POST
/v1/credit/qualification/{qualificationRequestId}/simulate
curl --request POST \
--url https://ms-credit-api-az.kemosoft.com.br/v1/credit/qualification/qualification-request-1/simulate \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '{ "opportunityReference": "qopp:v1:Qk7example", "installment": 350, "term": 72 }'

Calcula uma nova condição para uma oportunidade de uma qualificação já realizada. Os dados do cliente, o banco e o produto são os da qualificação original.

Informe em opportunityReference o valor de simulationAction.opportunityReference da simulação escolhida, e só os campos listados em simulationAction.editableFields. Uma simulação sem simulationAction não aceita nova condição.

Operação tarifável: quando a cobrança está ativa para a sua rede parceira, cada execução processada consome créditos da carteira do parceiro.

qualificationRequestId
obrigatório
string

Exemplo

qualification-request-1

ID da qualificação, retornado em qualification.id por Qualificar cliente.

Parâmetros da nova condição. requestedAmount e installment não podem ser enviados juntos.

Tipo de mídiaapplication/json
object
requestedAmount

Valor líquido solicitado. Não pode ser enviado junto com installment.

number
>= 0.01
installment

Parcela solicitada. Não pode ser enviada junto com requestedAmount.

number
>= 0.01
term

Novo prazo em meses/parcelas.

number
>= 1
opportunityReference
obrigatório

Referência da condição original, obtida em simulationAction.opportunityReference na qualificação.

string
>= 12 caracteres <= 128 caracteres /^qopp:v1:[A-Za-z0-9_-]+$/

Exemplo

{
"opportunityReference": "qopp:v1:Qk7example",
"installment": 350,
"term": 72
}

A nova condição calculada e a visão atualizada da qualificação, com a nova simulação em requestedSimulations.

Tipo de mídiaapplication/json
object
success
obrigatório

Sempre true: indica que uma nova condição foi calculada com sucesso.

boolean
opportunities
obrigatório

A nova condição calculada; o comando retorna exatamente uma.

Array<object>
>= 1 itens <= 1 itens
object
simulationId

Identificador da simulação. Pode ser nulo quando a condição foi calculada offline.

string
aceita null
creditDetail
obrigatório

Visão atualizada da qualificação, com a solicitação no histórico separado.

object
creditAmount
obrigatório

Soma de availableCredits.totalAmount. Representa o total comercial das ofertas principais na resposta.

number
availableCredits
obrigatório

Créditos disponíveis agrupados por categoria e, quando aplicável, por matrícula.

Array<object>
object
category
obrigatório

Categoria do bloco de crédito: paycheck para créditos vinculados a matrícula/folha; other para créditos pessoais ou sem matrícula.

string
Valores permitidos: paycheck other
enrollment

Matrícula/benefício associado quando category=paycheck.

string
totalAmount
obrigatório

Soma dos productAmount das ofertas principais das oportunidades deste bloco.

number
opportunities
obrigatório

Oportunidades de crédito específicas desta categoria/matrícula.

Array<object>
object
type
obrigatório

Tipo da oportunidade: margin para crédito por margem livre; contract para crédito derivado de contrato original.

string
Valores permitidos: margin contract
productName

Nome legível do produto de crédito.

string
productSlug
obrigatório

Slug do produto de crédito.

string
productAmount
obrigatório

Valor comercial da oferta principal da oportunidade. Em fluxos governados por regras, corresponde à primeira simulação priorizada; nos demais fluxos, mantém a seleção financeira compatível.

number
originalContract

Contrato original associado à oportunidade quando type=contract.

object
simulations
obrigatório

Simulações/ofertas desta oportunidade na ordem definida pelo produtor. No fluxo governado por regras, a primeira é a oferta priorizada; sources sem essa semântica mantêm sua seleção financeira.

Array<object>
object
simulationId

Identificador da simulação retornado pelo banco/integrador.

string
aceita null
simulationDate

Data em que a simulação foi gerada.

string
bankSlug

Slug do banco que gerou a oferta.

string
bankName

Nome legível do banco que gerou a oferta.

string
bankLogo

URL do logo do banco que gerou a oferta.

string
loanAmount

Valor financiado/bruto da operação antes de abatimentos.

number
grossAmount

Valor bruto total usado na simulação.

number
iofFee

Valor de IOF embutido na operação.

number
tacFee

Valor de TAC embutido na operação, quando houver.

number
insuranceFee

Valor de seguro embutido na operação, quando houver.

number
creditAmount

Valor de crédito liberado antes de saldo devedor.

number
balanceDue

Saldo devedor abatido na operação, quando aplicável.

number
netAmount

Valor líquido estimado para o cliente.

number
installment

Valor da parcela simulada.

number
term

Prazo da simulação em meses/parcelas.

number
simulationGracePeriod

Carência da primeira parcela, em dias, quando informada.

number
requiredCardLimit

Limite que o cartão precisa suportar para esta condição. Não representa limite disponível do cliente.

number
interest

Taxa de juros mensal da simulação.

number
cet

Custo Efetivo Total mensal da simulação.

number
simulationType

Tipo/estratégia de simulação usada pelo banco.

string
message

Aviso comercial associado à condição simulada.

string
interestCode

Código da tabela de juros usada na simulação.

string
aceita null
interestTable

Nome ou código comercial da tabela de juros.

string
aceita null
firstPayment

Data prevista do primeiro pagamento.

string
lastPayment

Data prevista do último pagamento.

string
commission

Comissão associada à simulação, quando disponível.

number
maxRefinInterestRate

Teto de taxa usado em refin da portabilidade quando há cálculo ponderado.

number
simulationAction

Ação contextual disponível para esta condição. Ausência significa somente leitura.

object
opportunityReference
obrigatório

Referência desta condição. Envie em Simular nova condição.

string
editableFields
obrigatório

Campos que podem ser informados para uma nova simulação.

Array<string>
itens únicos
Valores permitidos: requestedAmount installment term
requestedSimulations

Novas simulações solicitadas após a qualificação original, na ordem de append.

Array<object>
object
id
obrigatório

Identificador UUID da solicitação de nova simulação.

string
sourceOpportunityReference
obrigatório

Referência da oportunidade original que originou o pedido.

string
params
obrigatório

Parâmetros efetivamente informados pelo usuário.

object
requestedAmount

Valor líquido solicitado. Não pode ser enviado junto com installment.

number
>= 0.01
installment

Parcela solicitada. Não pode ser enviada junto com requestedAmount.

number
>= 0.01
term

Novo prazo em meses/parcelas.

number
>= 1
result
obrigatório

Resultado canônico da nova simulação.

object
simulationId

Identificador da simulação retornado pelo banco/integrador.

string
aceita null
simulationDate

Data em que a simulação foi gerada.

string
bankSlug

Slug do banco que gerou a oferta.

string
bankName

Nome legível do banco que gerou a oferta.

string
bankLogo

URL do logo do banco que gerou a oferta.

string
loanAmount

Valor financiado/bruto da operação antes de abatimentos.

number
grossAmount

Valor bruto total usado na simulação.

number
iofFee

Valor de IOF embutido na operação.

number
tacFee

Valor de TAC embutido na operação, quando houver.

number
insuranceFee

Valor de seguro embutido na operação, quando houver.

number
creditAmount

Valor de crédito liberado antes de saldo devedor.

number
balanceDue

Saldo devedor abatido na operação, quando aplicável.

number
netAmount

Valor líquido estimado para o cliente.

number
installment

Valor da parcela simulada.

number
term

Prazo da simulação em meses/parcelas.

number
simulationGracePeriod

Carência da primeira parcela, em dias, quando informada.

number
requiredCardLimit

Limite que o cartão precisa suportar para esta condição. Não representa limite disponível do cliente.

number
interest

Taxa de juros mensal da simulação.

number
cet

Custo Efetivo Total mensal da simulação.

number
simulationType

Tipo/estratégia de simulação usada pelo banco.

string
message

Aviso comercial associado à condição simulada.

string
interestCode

Código da tabela de juros usada na simulação.

string
aceita null
interestTable

Nome ou código comercial da tabela de juros.

string
aceita null
firstPayment

Data prevista do primeiro pagamento.

string
lastPayment

Data prevista do último pagamento.

string
commission

Comissão associada à simulação, quando disponível.

number
maxRefinInterestRate

Teto de taxa usado em refin da portabilidade quando há cálculo ponderado.

number
simulationAction

Ação contextual disponível para esta condição. Ausência significa somente leitura.

object
opportunityReference
obrigatório

Referência desta condição. Envie em Simular nova condição.

string
editableFields
obrigatório

Campos que podem ser informados para uma nova simulação.

Array<string>
itens únicos
Valores permitidos: requestedAmount installment term

Exemplo

{
"success": true,
"creditDetail": {
"creditAmount": 16278.54,
"availableCredits": [
{
"category": "paycheck",
"enrollment": "123456789",
"totalAmount": 12278.54,
"opportunities": [
{
"type": "margin",
"productName": "Refin da Portabilidade",
"productSlug": "consignado_refin_port",
"productAmount": 9278.54,
"originalContract": {
"contractNumber": "55123095",
"bankNo": "999",
"bankName": "Banco Exemplo S.A.",
"installment": 424.2,
"term": 84,
"paidInstallments": 43,
"remainingInstallments": 41,
"balanceDue": 10092.18,
"balanceDuePort": 12127.3,
"installmentPort": 353.01,
"interest": 2.92,
"startDate": "2022-10-18"
},
"simulations": [
{
"simulationId": "sim-123",
"simulationDate": "2026-06-15",
"bankSlug": "banco-exemplo",
"bankName": "Banco Exemplo",
"bankLogo": "https://exemplo.com.br/logos/banco-exemplo.png",
"loanAmount": 19681.06,
"grossAmount": 45813.6,
"iofFee": 310.34,
"tacFee": 0,
"insuranceFee": 0,
"creditAmount": 19370.72,
"balanceDue": 10092.18,
"netAmount": 9278.54,
"installment": 424.2,
"term": 108,
"simulationGracePeriod": 5,
"requiredCardLimit": 2229.3,
"interest": 1.85,
"cet": 1.85,
"simulationType": "taxa-de-juros",
"message": "Cotação indicativa. A aprovação final ocorre após o envio da proposta ao banco.",
"interestCode": null,
"interestTable": null,
"firstPayment": "2026-07-07",
"lastPayment": "2035-06-07",
"commission": 0,
"maxRefinInterestRate": 1.85,
"simulationAction": {
"opportunityReference": "qopp:v1:Qk7example",
"editableFields": [
"installment",
"term"
]
}
}
],
"requestedSimulations": [
{
"id": "00000000-0000-4000-8000-000000000001",
"sourceOpportunityReference": "qopp:v1:Qk7example",
"params": {
"requestedAmount": 8500,
"installment": 350,
"term": 72
},
"result": {
"simulationId": "sim-123",
"simulationDate": "2026-06-15",
"bankSlug": "banco-exemplo",
"bankName": "Banco Exemplo",
"bankLogo": "https://exemplo.com.br/logos/banco-exemplo.png",
"loanAmount": 19681.06,
"grossAmount": 45813.6,
"iofFee": 310.34,
"tacFee": 0,
"insuranceFee": 0,
"creditAmount": 19370.72,
"balanceDue": 10092.18,
"netAmount": 9278.54,
"installment": 424.2,
"term": 108,
"simulationGracePeriod": 5,
"requiredCardLimit": 2229.3,
"interest": 1.85,
"cet": 1.85,
"simulationType": "taxa-de-juros",
"message": "Cotação indicativa. A aprovação final ocorre após o envio da proposta ao banco.",
"interestCode": null,
"interestTable": null,
"firstPayment": "2026-07-07",
"lastPayment": "2035-06-07",
"commission": 0,
"maxRefinInterestRate": 1.85,
"simulationAction": {
"opportunityReference": "qopp:v1:Qk7example",
"editableFields": [
"installment",
"term"
]
}
}
}
]
}
]
}
]
}
}