Skip to main content

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:
Descrição dos Campos: O que acontece automaticamente:
  1. 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)
  2. 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
  3. 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
Resposta (com análise de risco):

Passo 2: Conversão de Moeda

Como Funciona a Conversão de Moeda

  1. Conversão Automática: Se currency !== 'USD', o sistema converte automaticamente para USD
  2. Provedor: Usa o serviço ms-providers (configurado via MS_PROVIDERS_URL)
  3. Cache: Taxas de câmbio armazenadas em cache por 1 minuto (TTL)
  4. Resiliência: Padrão circuit breaker com fallback para cache desatualizado
  5. Degradação Elegante: Se a conversão falhar, a transação ainda é criada (sem valor em USD)
Metadados da Conversão:
Transações em USD:
  • Se currency: 'USD', nenhuma conversão é necessária
  • amountInUsd = amount
  • exchangeRate = 1
  • rateSource = 'no-conversion'

Tratamento de Falha na Conversão

Se o serviço de moedas estiver indisponível:
A transação é criada com sucesso, mas o valor em USD não está disponível. Regras que dependem de valores em USD usarão o valor original.

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:
  1. Carregamento de Contexto:
    • Carrega dados da transação
    • Carrega entidades vinculadas (origem/destino) com dados de enriquecimento
    • Prepara contexto de execução
  2. Seleção de Regras:
    • Filtra regras por targetEntityTypes: ['transaction']
    • Filtra por gatilho: 'created' (para automático) ou 'manual_evaluation'
    • Filtra por status: enabled: true e status: 'active'
  3. 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
  4. Atualização de Pontuação:
    • Atualiza riskScore da transação
    • Define flagged: true se pontuação > 50
    • Armazena array riskFactors com razões
  5. Criação de Alertas:
    • Regras com ação create_alert geram alertas
    • Alertas vinculados à transação
    • Alertas consolidados em investigações após atraso de 5 segundos

Exemplos de Regras Específicas de Transação

Regra 1: Valor de Transação Grande
Regra 2: Transferência para Jurisdição de Alto Risco
Regra 3: Velocidade Rápida de Transações
Regra 4: Transação com Entidade Sancionada

Estrutura 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:
Funcionalidades:
  • 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
Resposta:

Passo 5: Análise Manual de Transação

Se você criou uma transação com executeRules: false, pode acionar manualmente a análise de risco posteriormente. Endpoint: POST /entities/:transactionId/analyze Requisição:
Casos de Uso:
  • 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
Resposta: Mesma estrutura do resultado de análise de risco automática

Passo 6: Consultas e Monitoramento de Transações

Listar Transações com Filtros

Endpoint: GET /transactions Parâmetros de Consulta:
Filtros Disponíveis:
  • flagged: Filtrar por status sinalizado (true, false, all)
  • minAmount / maxAmount: Filtro de faixa de valor (na moeda original)
  • currency: Filtrar por moeda
  • type: Filtrar por tipo de transação
  • status: Filtrar por status da transação
  • entityId: Filtrar por entidade de origem ou destino
  • startDate / endDate: Filtro de faixa de datas
  • search: 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)
Resposta:

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:
  1. Criação de Alertas: Regras com ação create_alert criam alertas individuais
  2. Atraso de 5 Segundos: O sistema aguarda para coletar todos os alertas relacionados
  3. Consolidação: Alertas relacionados consolidados em uma única investigação
  4. Criação de Investigação: Investigação criada com:
    • Prioridade baseada na severidade mais alta do alerta
    • Status: “open”
    • Todos os alertas relacionados vinculados
  5. Notificações: Analistas notificados da nova investigação
Estrutura da Investigação:

Melhores Práticas

  1. Sempre Habilite Regras Automáticas: Configure executeRules: true (padrão) para detectar transações suspeitas imediatamente.
  2. Use a API em Lote para Volume: Para importações em massa ou cenários de alto volume, use /transactions/batch para melhor desempenho.
  3. Vincule Entidades: Sempre forneça originEntityId e destinationEntityId quando 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
  4. Mapeamento de ID Externo: Sempre defina um externalId único para correlação com seus sistemas.
  5. Tratamento de Moeda: O sistema lida com conversão de moeda automaticamente. Certifique-se de que MS_PROVIDERS_URL está configurado corretamente.
  6. 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
  7. Gerenciamento de Status: Use o campo status da 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
  8. 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

Padrões Avançados

Padrão 1: Risco da Entidade Afeta Risco da Transação

Configure regras que consideram o risco da entidade:

Padrão 2: Detecção de Velocidade e Padrões

Use consultas históricas em regras:

Padrão 3: Triagem de Sanções na Transação

Tratamento de Erros

Falhas na Conversão de Moeda

Transação criada com sucesso, regras usam o valor original.

Falhas na Execução de Regras

Transação criada, mas risco não calculado. Acione a análise manualmente posteriormente.

Falhas Parciais em Lote

Transações bem-sucedidas criadas, falhas relatadas separadamente.

Próximos Passos