Documentation Index
Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt
Use this file to discover all available pages before exploring further.
Descripción General
Esta guía cubre el flujo completo para el monitoreo de transacciones, desde la creación hasta el análisis automático de riesgo y la generación de alertas. Las transacciones se evalúan según reglas específicas para detectar patrones sospechosos, montos inusuales, jurisdicciones de alto riesgo y otras señales de alerta.Diagrama de Flujo
Paso 1: Crear Transacción
Las transacciones se crean a través de la API de transacciones con conversión automática de moneda y ejecución opcional de reglas. Endpoint:POST /transactions
Solicitud:
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| externalId | string | Sí | Su identificador único para esta transacción |
| type | enum | Sí | Tipo de transacción: PAYMENT, TRANSFER, WITHDRAWAL, DEPOSIT, REFUND, CHARGEBACK, REVERSAL, FEE, ADJUSTMENT, OTHER |
| status | enum | No | Estado de la transacción (por defecto: PENDING) |
| amount | number | Sí | Monto de la transacción en la moneda original |
| currency | string | Sí | Código de moneda ISO 4217 (ej., USD, EUR, GBP) |
| paymentMethod | enum | No | Método de pago utilizado |
| originEntityId | uuid | No | ID de la entidad emisora (si la entidad existe en el sistema) |
| originExternalId | string | No | Identificador externo del emisor |
| originName | string | No | Nombre del emisor |
| originCountry | string | No | País del emisor (ISO 3166-1 alpha-2) |
| destinationEntityId | uuid | No | ID de la entidad receptora (si la entidad existe en el sistema) |
| destinationExternalId | string | No | Identificador externo del receptor |
| destinationName | string | No | Nombre del receptor |
| destinationCountry | string | No | País del receptor (ISO 3166-1 alpha-2) |
| description | string | No | Descripción de la transacción |
| category | string | No | Categoría de la transacción |
| transactedAt | datetime | No | Cuándo ocurrió la transacción (por defecto: ahora) |
| executeRules | boolean | No | Ejecutar reglas automáticamente (por defecto: true) |
| metadata | object | No | Metadatos personalizados adicionales |
-
Conversión de Moneda:
- Si la moneda no es USD, convierte el monto a USD usando tasas de cambio en tiempo real
- Almacena:
amountInUsd,exchangeRate,rateSource,rateTimestamp - En caso de falla de conversión, la transacción aún se crea (sin monto en USD)
-
Creación de Transacción:
- Se crea el registro de transacción en la base de datos
- Se genera un ID único
- Se vincula a las entidades de origen/destino si se proporcionan
-
Análisis Automático de Riesgo (si
executeRules: true):- Ejecuta reglas específicas de transacción
- Calcula la puntuación de riesgo
- Crea alertas para las reglas que coinciden
- Actualiza el estado de la transacción si es necesario
Paso 2: Conversión de Moneda
Cómo Funciona la Conversión de Moneda
- Conversión Automática: Si
currency !== 'USD', el sistema automáticamente convierte a USD - Proveedor: Usa el servicio
ms-providers(configurado víaMS_PROVIDERS_URL) - Caché: Las tasas de cambio se almacenan en caché por 1 minuto (TTL)
- Resiliencia: Patrón de circuit breaker con respaldo a caché obsoleto
- Degradación Controlada: Si la conversión falla, la transacción aún se crea (sin monto en USD)
- Si
currency: 'USD', no se necesita conversión amountInUsd = amountexchangeRate = 1rateSource = 'no-conversion'
Manejo de Fallas de Conversión
Si el servicio de moneda no está disponible:Paso 3: Análisis de Riesgo de Transacciones
Cómo Funciona el Análisis de Riesgo de Transacciones
El RulesExecutionService evalúa las transacciones usando reglas específicas de transacción:-
Carga de Contexto:
- Carga los datos de la transacción
- Carga las entidades vinculadas (origen/destino) con datos de enriquecimiento
- Prepara el contexto de ejecución
-
Selección de Reglas:
- Filtra reglas por
targetEntityTypes: ['transaction'] - Filtra por disparador:
'created'(para automático) o'manual_evaluation' - Filtra por estado:
enabled: trueystatus: 'active'
- Filtra reglas por
-
Ejecución de Reglas:
- Evalúa las condiciones de reglas contra el contexto de transacción
- Ejecuta acciones para reglas coincidentes (agregar puntuación, crear alertas, actualizar estado)
- Acumula la puntuación de riesgo
-
Actualización de Puntuación:
- Actualiza el
riskScorede la transacción - Establece
flagged: truesi la puntuación > 50 - Almacena el array
riskFactorscon razones
- Actualiza el
-
Creación de Alertas:
- Las reglas con acción
create_alertgeneran alertas - Las alertas se vinculan a la transacción
- Las alertas se consolidan en investigaciones después de un retraso de 5 segundos
- Las reglas con acción
Ejemplos de Reglas Específicas de Transacción
Regla 1: Monto de Transacción GrandeEstructura del Contexto de Transacción
El motor de reglas recibe este contexto:Paso 4: Creación de Transacciones en Lote
Para escenarios de alto volumen, use el endpoint de lote para crear múltiples transacciones eficientemente. Endpoint:POST /transactions/batch
Solicitud:
- Inserción masiva para mejor rendimiento
- Conversión de moneda optimizada (almacena en caché las tasas para la misma moneda)
- Detección automática de duplicados (por externalId)
- Ejecución opcional de reglas en todas las transacciones
- Máximo 1000 transacciones por lote
- Tiempo de espera de 2 minutos
Paso 5: Análisis Manual de Transacciones
Si creó una transacción conexecuteRules: false, puede activar manualmente el análisis de riesgo más tarde.
Endpoint: POST /entities/:transactionId/analyze
Solicitud:
- Re-analizar la transacción después del enriquecimiento de la entidad
- Analizar la transacción después de actualizaciones de reglas
- Re-puntuación periódica de transacciones pendientes
Paso 6: Consultas y Monitoreo de Transacciones
Listar Transacciones con Filtrado
Endpoint:GET /transactions
Parámetros de Consulta:
flagged: Filtrar por estado marcado (true, false, all)minAmount/maxAmount: Filtro de rango de monto (en moneda original)currency: Filtrar por monedatype: Filtrar por tipo de transacciónstatus: Filtrar por estado de transacciónentityId: Filtrar por entidad de origen o destinostartDate/endDate: Filtro de rango de fechassearch: Búsqueda de texto libre (externalId, description, names)sortBy: Campo de ordenamiento (transacted_at, amount, risk_score, created_at)sortOrder: Dirección de ordenamiento (asc, desc)
Obtener Detalles de Transacción
Endpoint:GET /transactions/:transactionId
Respuesta: Objeto completo de transacción con detalles de análisis de riesgo
Ver Alertas de Transacción
Endpoint:GET /alerts?transactionId=:transactionId
Respuesta: Todas las alertas generadas para la transacción
Paso 7: Consolidación de Alertas e Investigaciones
Después del análisis de riesgo, las alertas se consolidan automáticamente en investigaciones:- Creación de Alertas: Las reglas con acción
create_alertcrean alertas individuales - Retraso de 5 Segundos: El sistema espera para recopilar todas las alertas relacionadas
- Consolidación: Las alertas relacionadas se consolidan en una sola investigación
- Creación de Investigación: Se crea la investigación con:
- Prioridad basada en la severidad de alerta más alta
- Estado: “open”
- Todas las alertas relacionadas vinculadas
- Notificaciones: Se notifica a los analistas sobre la nueva investigación
Mejores Prácticas
-
Siempre Habilite Reglas Automáticas: Establezca
executeRules: true(por defecto) para detectar transacciones sospechosas inmediatamente. -
Use la API de Lote para Volumen: Para importaciones masivas o escenarios de alto volumen, use
/transactions/batchpara un mejor rendimiento. -
Vincule Entidades: Siempre proporcione
originEntityIdydestinationEntityIdcuando estén disponibles. Esto habilita:- Datos de enriquecimiento de entidad en la evaluación de reglas
- Mejor agregación de riesgo
- Patrones de transacción a nivel de entidad
-
Mapeo de ID Externo: Siempre establezca un
externalIdúnico para correlación con sus sistemas. -
Manejo de Moneda: El sistema maneja la conversión de moneda automáticamente. Asegúrese de que
MS_PROVIDERS_URLesté configurado correctamente. -
Configuración de Reglas: Configure las reglas de transacción para su apetito de riesgo:
- Umbrales de monto apropiados para su negocio
- Jurisdicciones de alto riesgo basadas en sus requisitos de cumplimiento
- Reglas de velocidad basadas en patrones normales de transacción
-
Gestión de Estado: Use el campo
statusde la transacción para rastrear el ciclo de vida:- PENDING → APPROVED/REJECTED/CANCELLED
- Actualice el estado basado en revisión manual o validación externa
-
Monitoreo: Configure dashboards para monitorear:
- Tasa de transacciones marcadas
- Puntuaciones de riesgo promedio
- Volumen de alertas por tipo
- Tiempo de resolución de investigaciones