Visão Geral
Este guia cobre o fluxo completo para monitoramento de transações, desde a criação até a análise automática de risco e geração de alertas. As transações são avaliadas contra regras específicas de transação para detectar padrões suspeitos, valores incomuns, jurisdições de alto risco e outros sinais de alerta.Diagrama do Fluxo
Passo 1: Criar Transação
As transações são criadas via API de transações com conversão automática de moeda e execução opcional de regras. Endpoint:POST /transactions
Requisição:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| externalId | string | Sim | Seu identificador único para esta transação |
| type | enum | Sim | Tipo de transação: PAYMENT, TRANSFER, WITHDRAWAL, DEPOSIT, REFUND, CHARGEBACK, REVERSAL, FEE, ADJUSTMENT, OTHER |
| status | enum | Não | Status da transação (padrão: PENDING) |
| amount | number | Sim | Valor da transação na moeda original |
| currency | string | Sim | Código de moeda ISO 4217 (ex.: USD, EUR, GBP) |
| paymentMethod | enum | Não | Método de pagamento utilizado |
| originEntityId | uuid | Não | ID da entidade remetente (se a entidade existir no sistema) |
| originExternalId | string | Não | Identificador externo do remetente |
| originName | string | Não | Nome do remetente |
| originCountry | string | Não | País do remetente (ISO 3166-1 alpha-2) |
| destinationEntityId | uuid | Não | ID da entidade destinatária (se a entidade existir no sistema) |
| destinationExternalId | string | Não | Identificador externo do destinatário |
| destinationName | string | Não | Nome do destinatário |
| destinationCountry | string | Não | País do destinatário (ISO 3166-1 alpha-2) |
| description | string | Não | Descrição da transação |
| category | string | Não | Categoria da transação |
| transactedAt | datetime | Não | Quando a transação ocorreu (padrão: agora) |
| executeRules | boolean | Não | Executar regras automaticamente (padrão: true) |
| metadata | object | Não | Metadados personalizados adicionais |
-
Conversão de Moeda:
- Se a moeda não for USD, converte o valor para USD usando taxas de câmbio em tempo real
- Armazena:
amountInUsd,exchangeRate,rateSource,rateTimestamp - Em caso de falha na conversão, a transação ainda é criada (sem o valor em USD)
-
Criação da Transação:
- Registro da transação criado no banco de dados
- ID único gerado
- Vincula às entidades de origem/destino se fornecidas
-
Análise Automática de Risco (se
executeRules: true):- Executa regras específicas de transação
- Calcula pontuação de risco
- Cria alertas para regras correspondentes
- Atualiza status da transação se necessário
Passo 2: Conversão de Moeda
Como Funciona a Conversão de Moeda
- Conversão Automática: Se
currency !== 'USD', o sistema converte automaticamente para USD - Provedor: Usa o serviço
ms-providers(configurado viaMS_PROVIDERS_URL) - Cache: Taxas de câmbio armazenadas em cache por 1 minuto (TTL)
- Resiliência: Padrão circuit breaker com fallback para cache desatualizado
- Degradação Elegante: Se a conversão falhar, a transação ainda é criada (sem valor em USD)
- Se
currency: 'USD', nenhuma conversão é necessária amountInUsd = amountexchangeRate = 1rateSource = 'no-conversion'
Tratamento de Falha na Conversão
Se o serviço de moedas estiver indisponível:Passo 3: Análise de Risco da Transação
Como Funciona a Análise de Risco da Transação
O RulesExecutionService avalia transações usando regras específicas de transação:-
Carregamento de Contexto:
- Carrega dados da transação
- Carrega entidades vinculadas (origem/destino) com dados de enriquecimento
- Prepara contexto de execução
-
Seleção de Regras:
- Filtra regras por
targetEntityTypes: ['transaction'] - Filtra por gatilho:
'created'(para automático) ou'manual_evaluation' - Filtra por status:
enabled: trueestatus: 'active'
- Filtra regras por
-
Execução de Regras:
- Avalia condições das regras contra o contexto da transação
- Executa ações para regras correspondentes (adicionar pontuação, criar alertas, atualizar status)
- Acumula pontuação de risco
-
Atualização de Pontuação:
- Atualiza
riskScoreda transação - Define
flagged: truese pontuação > 50 - Armazena array
riskFactorscom razões
- Atualiza
-
Criação de Alertas:
- Regras com ação
create_alertgeram alertas - Alertas vinculados à transação
- Alertas consolidados em investigações após atraso de 5 segundos
- Regras com ação
Exemplos de Regras Específicas de Transação
Regra 1: Valor de Transação GrandeEstrutura do Contexto da Transação
O motor de regras recebe este contexto:Passo 4: Criação em Lote de Transações
Para cenários de alto volume, use o endpoint em lote para criar múltiplas transações de forma eficiente. Endpoint:POST /transactions/batch
Requisição:
- Inserção em massa para melhor desempenho
- Conversão de moeda otimizada (armazena em cache taxas para a mesma moeda)
- Detecção automática de duplicatas (por externalId)
- Execução opcional de regras em todas as transações
- Máximo de 1000 transações por lote
- Tempo limite de 2 minutos
Passo 5: Análise Manual de Transação
Se você criou uma transação comexecuteRules: false, pode acionar manualmente a análise de risco posteriormente.
Endpoint: POST /entities/:transactionId/analyze
Requisição:
- Reanalisar transação após enriquecimento de entidade
- Analisar transação após atualizações de regras
- Repontuação periódica de transações pendentes
Passo 6: Consultas e Monitoramento de Transações
Listar Transações com Filtros
Endpoint:GET /transactions
Parâmetros de Consulta:
flagged: Filtrar por status sinalizado (true, false, all)minAmount/maxAmount: Filtro de faixa de valor (na moeda original)currency: Filtrar por moedatype: Filtrar por tipo de transaçãostatus: Filtrar por status da transaçãoentityId: Filtrar por entidade de origem ou destinostartDate/endDate: Filtro de faixa de datassearch: Busca de texto livre (externalId, description, names)sortBy: Campo de ordenação (transacted_at, amount, risk_score, created_at)sortOrder: Direção da ordenação (asc, desc)
Obter Detalhes da Transação
Endpoint:GET /transactions/:transactionId
Resposta: Objeto completo da transação com detalhes de análise de risco
Visualizar Alertas da Transação
Endpoint:GET /alerts?transactionId=:transactionId
Resposta: Todos os alertas gerados para a transação
Passo 7: Consolidação de Alertas e Investigações
Após a análise de risco, os alertas são automaticamente consolidados em investigações:- Criação de Alertas: Regras com ação
create_alertcriam alertas individuais - Atraso de 5 Segundos: O sistema aguarda para coletar todos os alertas relacionados
- Consolidação: Alertas relacionados consolidados em uma única investigação
- Criação de Investigação: Investigação criada com:
- Prioridade baseada na severidade mais alta do alerta
- Status: “open”
- Todos os alertas relacionados vinculados
- Notificações: Analistas notificados da nova investigação
Melhores Práticas
-
Sempre Habilite Regras Automáticas: Configure
executeRules: true(padrão) para detectar transações suspeitas imediatamente. -
Use a API em Lote para Volume: Para importações em massa ou cenários de alto volume, use
/transactions/batchpara melhor desempenho. -
Vincule Entidades: Sempre forneça
originEntityIdedestinationEntityIdquando disponível. Isso permite:- Dados de enriquecimento de entidade na avaliação de regras
- Melhor agregação de risco
- Padrões de transação em nível de entidade
-
Mapeamento de ID Externo: Sempre defina um
externalIdúnico para correlação com seus sistemas. -
Tratamento de Moeda: O sistema lida com conversão de moeda automaticamente. Certifique-se de que
MS_PROVIDERS_URLestá configurado corretamente. -
Configuração de Regras: Configure regras de transação para seu apetite de risco:
- Limites de valores apropriados para seu negócio
- Jurisdições de alto risco baseadas em seus requisitos de conformidade
- Regras de velocidade baseadas em padrões normais de transação
-
Gerenciamento de Status: Use o campo
statusda transação para rastrear o ciclo de vida:- PENDING → APPROVED/REJECTED/CANCELLED
- Atualize o status com base em revisão manual ou validação externa
-
Monitoramento: Configure painéis para monitorar:
- Taxa de transações sinalizadas
- Pontuações de risco médias
- Volume de alertas por tipo
- Tempo de resolução de investigações