Por que usar o motor de regras
- Flexibilidade: Crie e modifique regras sem deploys de código
- Desempenho: Expressões compiladas avaliam em menos de 1ms cada
- Segurança de tipos: Sintaxe da expressão validada na criação da regra
- Avaliação completa: Todas as regras ativas são avaliadas para trilha de auditoria abrangente
- Baseado em escopo: Aplique regras a segmentos, contas ou tipos de transação específicos
- Entender os conceitos do motor de regras e o fluxo de avaliação
- Criar e testar regras baseadas em expressões
- Gerenciar o ciclo de vida das regras (DRAFT, ACTIVE, INACTIVE, DELETED)
- Aplicar melhores práticas para gerenciamento de regras
O que é o motor de regras
O motor de regras é o componente do Tracer responsável por avaliar expressões durante a validação de transações. Ele permite que analistas de fraude e gestores de risco configurem lógica de negócios que executa em tempo real - sem necessidade de deploys de código ou suporte de engenharia.
Como funciona

- Carregar regras busca todas as regras ativas do cache (ou banco de dados em caso de cache miss)
- Avaliar expressões executa todas as expressões CEL contra o contexto da transação
- Coletar correspondências reúne todas as regras que corresponderam e determina a decisão
Padrão de avaliação
Todas as regras ativas são avaliadas contra cada transação. Não há ordenação por prioridade ou avaliação de curto-circuito. Isso garante:- Trilha de auditoria completa (todas as regras correspondentes são registradas)
- Sem perda de informação (analistas podem ver todos os gatilhos)
- Lógica simples (sem conflitos de prioridade)
- Se qualquer regra DENY corresponder, o Tracer retorna uma decisão DENY
- Se apenas regras ALLOW corresponderem, o Tracer retorna uma decisão ALLOW
- Se nenhuma regra corresponder, o Tracer retorna o padrão configurado (tipicamente ALLOW para comportamento fail-open)
O Tracer retorna decisões; ele não bloqueia transações diretamente. Seu sistema recebe a decisão e é responsável por tomar a ação apropriada (ex.: bloquear, permitir ou enfileirar para revisão).
Conceitos principais
Antes de criar regras, entenda os elementos fundamentais.
Regras
Uma regra é uma unidade de lógica de negócios composta por:- Expressão - Uma expressão type-safe que avalia para true ou false
- Ação - Qual decisão retornar quando a expressão é verdadeira
- Escopos - A quais transações a regra se aplica
- Status - O estado do ciclo de vida da regra
Expressões
Expressões são escritas em CEL (Common Expression Language), uma linguagem type-safe que avalia o contexto da transação e retorna um valor booleano (true ou false). CEL fornece validação em tempo de compilação, então erros de sintaxe são detectados quando você cria a regra - não quando as transações estão sendo processadas. Exemplos de expressões:amount- Valor da transação em centavos (menor unidade da moeda)transactionType- CARD, WIRE, PIX, CRYPTOsubType- Subtipo da transação (ex.: debit, credit, international)currency- Código de moeda ISO 4217transactionTimestamp- Quando a transação ocorreuaccount- AccountId, segmentId, portfolioIdsegment- SegmentId e metadados do segmentoportfolio- PortfolioId e metadados do portfóliomerchant- MerchantId, category, country, riskLevel (opcional)metadata- Campos personalizados passados na requisição
Exemplos de expressões por caso de uso
Aqui estão exemplos práticos organizados por cenário de negócio:Regras baseadas em valor
Regras baseadas em comerciante
Regras baseadas em conta
Condições combinadas
Usando metadata
Campos de metadata são fornecidos pela sua integração. Projete seu payload para incluir o contexto que suas regras precisam.
Ações
Ações determinam a decisão quando uma expressão avalia para true:| Ação | Descrição |
|---|---|
ALLOW | Permitir a transação |
DENY | Negar a transação |
REVIEW | Encaminhar para revisão manual |
Escopos
Escopos definem a quais transações uma regra se aplica. Uma regra só avalia contra transações que correspondem a pelo menos um de seus escopos. Campos de escopo (todos opcionais):segmentId- Corresponder transações de um segmento específicoportfolioId- Corresponder transações de um portfólio específicoaccountId- Corresponder transações de uma conta específicamerchantId- Corresponder transações para um comerciante específicotransactionType- Corresponder tipos de transação específicos (CARD, WIRE, PIX, CRYPTO)subType- Corresponder subtipos específicos (debit, credit, instant, etc.)
Ciclo de vida da regra
Regras progridem através de um ciclo de vida definido para garantir implantação segura.

Estados
| Estado | Descrição |
|---|---|
DRAFT | Não avaliada; expressão pode ser modificada livremente |
ACTIVE | Avaliada durante validações; expressão é imutável |
INACTIVE | Não avaliada; preservada para trilha de auditoria; pode ser reativada |
DELETED | Removida permanentemente; não aparece nas listagens; não pode ser recuperada |
Transições
| Transição | De | Para | Descrição |
|---|---|---|---|
activate | DRAFT, INACTIVE | ACTIVE | Iniciar avaliação (valida expressão) |
deactivate | ACTIVE | INACTIVE | Parar avaliação |
delete | DRAFT, INACTIVE | DELETED | Remoção permanente (não pode deletar regras ACTIVE) |
Regras ativas devem ser desativadas antes da exclusão. Isso previne remoção acidental de regras que estão sendo avaliadas.
Criar uma regra
Crie regras usando
POST /v1/rules. Regras são criadas com status DRAFT por padrão.
Uma regra requer:
- name: Um nome único e descritivo
- expression: Uma expressão CEL que avalia para true ou false
- action: A decisão a retornar quando a expressão corresponder (ALLOW, DENY ou REVIEW)
- scopes (opcional): Limita a quais transações a regra se aplica
Ativar e desativar regras
Após criar uma regra, ative-a para iniciar a avaliação. Desative regras para parar a avaliação sem excluí-las.
| Operação | Endpoint | Descrição |
|---|---|---|
| Ativar | POST /v1/rules/{ruleId}/activate | Iniciar avaliação desta regra |
| Desativar | POST /v1/rules/{ruleId}/deactivate | Parar avaliação (preserva para auditoria) |
Desativar uma regra a preserva para fins de auditoria. Use exclusão apenas quando quiser remover permanentemente uma regra.
Listar e consultar regras
Consulte regras para gerenciamento e auditoria usando
GET /v1/rules.
Parâmetros de consulta
| Parâmetro | Tipo | Descrição |
|---|---|---|
status | string | Filtrar por status (DRAFT, ACTIVE, INACTIVE) |
pageSize | integer | Itens por página (padrão: 100, máx: 1000) |
pageToken | string | Token de paginação |
Obter uma regra específica
UseGET /v1/rules/{ruleId} para recuperar a definição completa da regra incluindo expressão e escopos.
Atualizar uma regra
Atualize regras usando
PATCH /v1/rules/{ruleId}. Regras podem ser atualizadas em qualquer status, com uma restrição importante:
Excluir uma regra
Exclua regras que não são mais necessárias. Apenas regras DRAFT e INACTIVE podem ser excluídas. Regras ACTIVE devem ser desativadas primeiro.
204 No Content
Melhores práticas
Siga estas práticas para regras eficazes e manuteníveis.
Nomenclatura
- Use nomes descritivos - O nome deve indicar claramente o que a regra faz
- Inclua contexto - Mencione o cenário ou tipo de transação
- Evite abreviações - Prefira clareza à brevidade
| Menos claro | Mais claro |
|---|---|
Regra 1 | Bloquear transações noturnas acima de R$ 5.000 |
Bloquear alto | Negar transações de alto valor no fim de semana |
Regra PIX | Revisar transferências PIX para novos destinatários |
Design de expressões
- Mantenha expressões simples - Lógica complexa é mais difícil de manter
- Use escopos para filtrar - Não repita condições de escopo nas expressões
- Teste casos limite - Considere valores de fronteira e campos nulos
Gerenciamento de ciclo de vida
- Comece em DRAFT - Teste antes de ativar
- Desative antes de editar - Nunca edite regras ativas
- Arquive regras não utilizadas - Mantenha a trilha de auditoria intacta
- Exclua apenas quando tiver certeza - A exclusão é permanente
Monitoramento
- Revise regras correspondentes - Verifique quais regras estão sendo acionadas
- Monitore taxas de DENY - Taxas de negação altas podem indicar regras muito agressivas
- Audite regularmente - Garanta que as regras ainda estão alinhadas com os requisitos de negócio
Referência rápida
Endpoints, ações e informações de status-chave.
Endpoints
| Operação | Método | Endpoint |
|---|---|---|
| Criar regra | POST | /v1/rules |
| Listar regras | GET | /v1/rules |
| Obter regra | GET | /v1/rules/{id} |
| Atualizar regra | PATCH | /v1/rules/{id} |
| Excluir regra | DELETE | /v1/rules/{id} |
| Ativar regra | POST | /v1/rules/{id}/activate |
| Desativar regra | POST | /v1/rules/{id}/deactivate |
Ações
| Ação | Descrição |
|---|---|
ALLOW | Permitir a transação |
DENY | Negar a transação |
REVIEW | Encaminhar para revisão manual |
Status
| Status | Avaliada | Editável | Pode excluir |
|---|---|---|---|
DRAFT | Não | Sim | Sim |
ACTIVE | Sim | Parcial (expression imutável) | Não (desativar primeiro) |
INACTIVE | Não | Sim | Sim |
DELETED | Não | Não | N/A |

