Por qué usar el motor de reglas
- Flexibilidad: Crea y modifica reglas sin despliegues de código
- Rendimiento: Las expresiones compiladas se evalúan en menos de 1ms cada una
- Seguridad de tipos: Sintaxis de expresiones validada al crear la regla
- Evaluación completa: Todas las reglas activas se evalúan para un rastro de auditoría completo
- Basado en alcances: Aplica reglas a segmentos, cuentas o tipos de transacción específicos
- Comprender los conceptos del motor de reglas y el flujo de evaluación
- Crear y probar reglas basadas en expresiones
- Gestionar el ciclo de vida de las reglas (DRAFT, ACTIVE, INACTIVE, DELETED)
- Aplicar mejores prácticas para la gestión de reglas
Qué es el motor de reglas
El motor de reglas es el componente de Tracer responsable de evaluar expresiones durante la validación de transacciones. Permite a los analistas de fraude y gestores de riesgo configurar lógica de negocio que se ejecuta en tiempo real—sin requerir despliegues de código o soporte de ingeniería.
Cómo funciona

- Load rules obtiene todas las reglas activas desde la cache (o base de datos si no hay cache)
- Evaluate expressions ejecuta todas las expresiones CEL contra el contexto de la transacción
- Collect matches recopila todas las reglas que coincidieron y determina la decisión
Patrón de evaluación
Todas las reglas activas se evalúan contra cada transacción. No hay ordenamiento por prioridad ni evaluación de cortocircuito. Esto asegura:- Rastro de auditoría completo (todas las reglas coincidentes se registran)
- Sin pérdida de información (los analistas pueden ver todos los disparadores)
- Lógica simple (sin conflictos de prioridad)
- Si cualquier regla DENY coincide, Tracer devuelve una decisión DENY
- Si solo reglas ALLOW coinciden, Tracer devuelve una decisión ALLOW
- Si ninguna regla coincide, se aplica el valor predeterminado configurado (típicamente ALLOW para comportamiento fail-open)
Tracer devuelve decisiones; no bloquea transacciones directamente. Tu sistema recibe la decisión y es responsable de tomar la acción apropiada (ej., bloquear, permitir, o enviar a revisión).
Conceptos principales
Antes de crear reglas, comprende los elementos fundamentales.
Reglas
Una regla es una unidad de lógica de negocio compuesta de:- Expression - Una expresión con seguridad de tipos que evalúa a true o false
- Action - Qué decisión devolver cuando la expresión es verdadera
- Scopes - A que transacciones se aplica la regla
- Status - El estado del ciclo de vida de la regla
Expresiones
Las expresiones se escriben en CEL (Common Expression Language), un lenguaje con seguridad de tipos que evalúa el contexto de la transacción y devuelve un valor booleano (true o false). CEL proporciona validación en tiempo de compilación, por lo que los errores de sintaxis se detectan cuando creas la regla—no cuando se están procesando las transacciones. Ejemplos de expresiones:amount- Monto de la transacción en centavos (unidad más pequeña de la moneda)transactionType- CARD, WIRE, PIX, CRYPTOsubType- Subtipo de transacción (ej.: debit, credit, international)currency- Código de moneda ISO 4217transactionTimestamp- Cuándo ocurrió la transacciónaccount- AccountId, segmentId, portfolioIdsegment- SegmentId y metadatos del segmentoportfolio- PortfolioId y metadatos del portafoliomerchant- MerchantId, category, country, riskLevel (opcional)metadata- Campos personalizados pasados en la solicitud
Ejemplos de expresiones por caso de uso
Aquí hay ejemplos prácticos organizados por escenario de negocio:Reglas basadas en monto
Reglas basadas en comercio
Reglas basadas en cuenta
Condiciones combinadas
Usando metadata
Los campos de metadata son proporcionados por tu integración. Diseña tu payload para incluir el contexto que tus reglas necesitan.
Acciones
Las acciones determinan la decisión cuando una expresión evalúa a true:| Acción | Descripción |
|---|---|
ALLOW | Permitir la transacción |
DENY | Denegar la transacción |
REVIEW | Enviar a revisión manual |
Alcances
Los alcances definen a qué transacciones se aplica una regla. Una regla solo se evalúa contra transacciones que coinciden con al menos uno de sus alcances. Campos de alcance (todos opcionales):segmentId- Coincidir transacciones de un segmento específicoportfolioId- Coincidir transacciones de un portafolio específicoaccountId- Coincidir transacciones de una cuenta específicamerchantId- Coincidir transacciones hacia un comercio específicotransactionType- Coincidir tipos de transacción específicos (CARD, WIRE, PIX, CRYPTO)subType- Coincidir subtipos específicos (debit, credit, instant, etc.)
Ciclo de vida de las reglas
Las reglas progresan a través de un ciclo de vida definido para asegurar un despliegue seguro.

Estados
| Estado | Descripción |
|---|---|
DRAFT | No se evalúa; la expresión puede modificarse libremente |
ACTIVE | Se evalúa durante las validaciones; la expresión es inmutable |
INACTIVE | No se evalúa; preservada para el rastro de auditoría; puede reactivarse |
DELETED | Eliminada permanentemente; no aparece en listados; no puede recuperarse |
Transiciones
| Transición | Desde | Hacia | Descripción |
|---|---|---|---|
activate | DRAFT, INACTIVE | ACTIVE | Iniciar evaluación (valida la expresión) |
deactivate | ACTIVE | INACTIVE | Detener evaluación |
delete | DRAFT, INACTIVE | DELETED | Eliminación permanente (no se puede eliminar reglas ACTIVE) |
Las reglas activas deben desactivarse antes de eliminarse. Esto previene la eliminación accidental de reglas que se están evaluando actualmente.
Crear una regla
Crea reglas usando
POST /v1/rules. Las reglas se crean en estado DRAFT por defecto.
Una regla requiere:
- name: Un nombre único y descriptivo
- expression: Una expresión CEL que evalúa a true o false
- action: La decisión a devolver cuando la expresión coincide (ALLOW, DENY o REVIEW)
- scopes (opcional): Limita a qué transacciones se aplica la regla
Activar y desactivar reglas
Después de crear una regla, actívala para iniciar la evaluación. Desactiva las reglas para detener la evaluación sin eliminarlas.
| Operación | Endpoint | Descripción |
|---|---|---|
| Activar | POST /v1/rules/{ruleId}/activate | Iniciar evaluación de esta regla |
| Desactivar | POST /v1/rules/{ruleId}/deactivate | Detener evaluación (preserva para auditoría) |
Desactivar una regla la preserva para propósitos de auditoría. Usa eliminar solo cuando quieras remover permanentemente una regla.
Listar y consultar reglas
Consulta reglas para gestión y auditoría usando
GET /v1/rules.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
status | string | Filtrar por estado (DRAFT, ACTIVE, INACTIVE) |
pageSize | integer | Elementos por página (predeterminado: 100, máx: 1000) |
pageToken | string | Token de paginación |
Obtener una regla específica
UsaGET /v1/rules/{ruleId} para recuperar la definición completa de la regla incluyendo expresión y alcances.
Actualizar una regla
Actualiza reglas usando
PATCH /v1/rules/{ruleId}. Las reglas pueden actualizarse en cualquier estado, con una restricción importante:
Eliminar una regla
Elimina las reglas que ya no se necesitan. Solo las reglas DRAFT e INACTIVE pueden eliminarse. Las reglas ACTIVE deben desactivarse primero.
204 No Content
Mejores prácticas
Sigue estas prácticas para reglas efectivas y mantenibles.
Nomenclatura
- Usa nombres descriptivos - El nombre debe indicar claramente qué hace la regla
- Incluye contexto - Menciona el escenario o tipo de transacción
- Evita abreviaturas - Prefiere claridad sobre brevedad
| Menos claro | Más claro |
|---|---|
Rule 1 | Block night transactions above BRL 5,000 |
Block high | Deny high-value weekend transactions |
PIX rule | Review PIX transfers to new recipients |
Diseño de expresiones
- Mantén las expresiones simples - La lógica compleja es más difícil de mantener
- Usa alcances para filtrar - No repitas condiciones de alcance en las expresiones
- Prueba casos límite - Considera valores límites y campos nulos
Gestión del ciclo de vida
- Comienza en DRAFT - Prueba antes de activar
- Desactiva antes de editar - Nunca edites reglas activas
- Archiva reglas no usadas - Mantiene el rastro de auditoría intacto
- Elimina solo cuando estés seguro - La eliminación es permanente
Monitoreo
- Revisa las reglas coincidentes - Verifica qué reglas se están disparando
- Monitorea las tasas de DENY - Tasas altas de denegación pueden indicar reglas demasiado agresivas
- Audita regularmente - Asegura que las reglas sigan alineadas con los requisitos de negocio
Referencia rápida
Endpoints, acciones e información de estados clave.
Endpoints
| Operación | Método | Endpoint |
|---|---|---|
| Crear regla | POST | /v1/rules |
| Listar reglas | GET | /v1/rules |
| Obtener regla | GET | /v1/rules/{id} |
| Actualizar regla | PATCH | /v1/rules/{id} |
| Eliminar regla | DELETE | /v1/rules/{id} |
| Activar regla | POST | /v1/rules/{id}/activate |
| Desactivar regla | POST | /v1/rules/{id}/deactivate |
Acciones
| Acción | Descripción |
|---|---|
ALLOW | Permitir la transacción |
DENY | Denegar la transacción |
REVIEW | Enviar a revisión manual |
Estados
| Estado | Evaluada | Editable | Puede eliminarse |
|---|---|---|---|
DRAFT | No | Sí | Sí |
ACTIVE | Sí | Parcial (expression inmutable) | No (desactivar primero) |
INACTIVE | No | Sí | Sí |
DELETED | No | No | N/A |

