Pular para o conteúdo principal

Pricing Engine

O Building Block Pricing Engine fornece funcionalidades para calculo de precos, taxas de juros e gestao de regras de pricing na Catalisa Platform.

Visão Geral

O Pricing Engine é um módulo tenant-scoped, ou seja, requer um token com organizationId. Ele é responsável por:

  • Gerenciamento de Risk Bands (faixas de risco baseadas em score)
  • Gerenciamento de Pricing Rules (regras de pricing com taxas, comissoes e seguros)
  • Calculo de pricing baseado em score de credito e parametros do emprestimo
  • Integração com o Decision Engine para regras complexas

Base URL

https://pricing.stg.catalisa.app

Recursos

RecursoDescrição
Risk BandsFaixas de risco por score
Pricing RulesRegras de pricing
CalculateCalculo de pricing

Permissões

PermissãoDescrição
PRICING_RISK_BANDS_CREATECriar risk bands
PRICING_RISK_BANDS_READListar e visualizar risk bands
PRICING_RISK_BANDS_UPDATEAtualizar risk bands
PRICING_RISK_BANDS_DELETEExcluir risk bands
PRICING_RULES_CREATECriar pricing rules
PRICING_RULES_READListar e visualizar pricing rules
PRICING_RULES_UPDATEAtualizar pricing rules
PRICING_RULES_DELETEExcluir pricing rules
PRICING_CALCULATEExecutar calculos de pricing

Exemplo Rápido

Fluxo básico para configurar pricing e calcular taxa para um cliente:

// 1. Criar Risk Band para score 700-850
const riskBandResponse = await fetch('https://pricing.stg.catalisa.app/api/v1/risk-bands', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'risk-bands',
attributes: {
productId: 'product-uuid',
name: 'LOW_RISK',
minScore: 700,
maxScore: 850,
baseRate: 0.0199, // 1.99% a.m.
isActive: true,
},
},
}),
});

// 2. Criar Pricing Rule com taxas
const ruleResponse = await fetch('https://pricing.stg.catalisa.app/api/v1/pricing-rules', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'pricing-rules',
attributes: {
productId: 'product-uuid',
name: 'Standard Personal Loan',
ruleType: 'DB_RULE',
status: 'ACTIVE',
fees: [{
feeType: 'REGISTRATION',
name: 'Taxa de Cadastro',
calculationMethod: 'FIXED',
value: 150.00,
}],
},
},
}),
});

// 3. Calcular pricing para um cliente
const calcResponse = await fetch('https://pricing.stg.catalisa.app/api/v1/calculate', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'pricing-calculations',
attributes: {
productId: 'product-uuid',
creditScore: 750,
requestedAmount: 10000,
numberOfInstallments: 12,
},
},
}),
});

const { data } = await calcResponse.json();
console.log(`Taxa aprovada: ${data.attributes.interestRate * 100}%`);
console.log(`Aprovado: ${data.attributes.approved}`);

Arquitetura

Arquitetura do Pricing Engine

O Pricing Engine é composto pelos seguintes componentes:

Componentes de Configuração:

  • Risk Bands (Faixas de Risco)

    • Define faixas de score de crédito (ex: 700-850, 600-699)
    • minScore e maxScore: Delimita a faixa (0-1000)
    • baseRate: Taxa de juros base mensal (ex: 0.0199 = 1.99% a.m.)
    • rateSpread: Spread adicional sobre a taxa base
    • productId: Vinculado a um produto específico
    • isActive: Controla se a faixa está ativa
  • Pricing Rules (Regras de Pricing)

    • Define regras de negócio para cálculo de pricing
    • Tipos de regras:
      • DB_RULE: Regras baseadas em dados no banco (fees, comissões, seguros)
      • DECISION: Regras delegadas ao Decision Engine para lógica complexa
    • Componentes das regras:
      • fees: Taxas (REGISTRATION, ADMINISTRATION, ANALYSIS, DOCUMENTATION, OTHER)
      • commissions: Comissões para parceiros
      • insurances: Seguros obrigatórios ou opcionais
    • Métodos de cálculo:
      • FIXED: Valor fixo
      • PERCENTAGE_OF_PRINCIPAL: Porcentagem do valor principal
      • PERCENTAGE_OF_TOTAL: Porcentagem do total

Componente de Cálculo:

  • Calculate (Cálculo de Pricing)
    • Recebe parâmetros do empréstimo:
      • creditScore: Score de crédito do cliente
      • requestedAmount: Valor solicitado
      • numberOfInstallments: Prazo (número de parcelas)
      • productId: Produto desejado
    • Fluxo de cálculo:
      1. Identifica a Risk Band correspondente ao score
      2. Busca Pricing Rule do produto
      3. Calcula taxa de juros (baseRate + spread)
      4. Calcula fees, comissões e seguros
      5. Retorna pricing completo com aprovação

Integração Opcional:

  • Decision Engine Integration
    • Para regras do tipo DECISION
    • Permite lógica de pricing complexa via tabelas DMN
    • Exemplo: Ajustar taxa baseado em múltiplos fatores (região, renda, histórico)

Conceitos Importantes

Risk Bands

Risk Bands definem faixas de score de credito e suas taxas base associadas:

CampoDescrição
minScoreScore mínimo da faixa (0-1000)
maxScoreScore máximo da faixa (0-1000)
baseRateTaxa base mensal (ex: 0.0199 = 1.99%)
rateSpreadSpread adicional sobre a taxa base

Pricing Rules

Pricing Rules definem regras de negocio para calcular pricing:

TipoDescrição
DB_RULERegra baseada em dados no banco
DECISIONRegra delegada ao Decision Engine

Tipos de Taxa (FeeType)

TipoDescrição
REGISTRATIONTaxa de cadastro
ADMINISTRATIONTaxa de administracao
ANALYSISTaxa de analise
DOCUMENTATIONTaxa de documentacao
OTHEROutras taxas

Metodos de Calculo (FeeCalculationMethod)

MétodoDescrição
FIXEDValor fixo
PERCENTAGE_OF_PRINCIPALPorcentagem do principal
PERCENTAGE_OF_TOTALPorcentagem do total