Skip to main content

Descripción

El objeto rulesExecutionSummary se devuelve cada vez que se ejecuta el motor de reglas: en Crear transacción, Crear persona, Crear empresa, Crear entidad, Crear evento, y en los payloads de webhooks de eventos de análisis de riesgo. Resume qué reglas hicieron match (hit), cuáles no (no hit), las acciones ejecutadas y metadatos de puntuación.

Dónde aparece

ContextoUbicación
Crear transacción (con executeRules: true)Raíz de la respuesta y rulesResult.rulesExecutionSummary
Crear persona/empresa/entidad (cuando corre la matriz de riesgo)Raíz de la respuesta y rulesResult.rulesExecutionSummary
Crear evento (cuando se ejecutan reglas)Raíz de la respuesta y rulesResult.rulesExecutionSummary
Webhooks de análisis de riesgopayload.rulesExecutionSummary

Campos

CampoTipoDescripción
rulesHitarrayReglas cuyas condiciones se cumplieron. Cada elemento tiene name, description, score, priority, category, status, conditions y opcionalmente actions.
rulesNoHitarrayReglas evaluadas pero cuyas condiciones no se cumplieron. Misma estructura que cada elemento de rulesHit.
actionsExecutedobjectPresente solo cuando se ejecutó al menos una acción. Acciones agregadas de todas las reglas que hicieron hit.
totalScorenumberSuma del score de todas las reglas que hicieron hit (excluyendo reglas shadow).
scoreResultobjectScore normalizado y etiqueta: rawScore, normalizedScore y opcionalmente label (name, range, minScore, maxScore).
riskMatrixNamestringNombre de la matriz de riesgo ejecutada.
executionTimeMsnumberTiempo de ejecución del motor de reglas en milisegundos.
triggerstringEvento que disparó la evaluación (ej. manual_evaluation, entity_created, enrichment_completed, created).
matchedRulesCountnumberCantidad de reglas que hicieron match (equivalente a rulesHit.length).

Elemento de rulesHit / rulesNoHit

CampoTipoDescripción
namestringNombre de la regla.
descriptionstringDescripción de la regla.
scorenumber | nullPuntos de la regla cuando hace hit.
prioritynumber | nullPrioridad de la regla.
categorystringCategoría de la regla.
statusstringEstado de la regla (ej. active, shadow).
conditionsarrayCondiciones evaluadas: cada { field, value, operator? }.
actionsobjectEn rulesHit: acciones ejecutadas. En rulesNoHit: acciones configuradas. Ver abajo.

actions (dentro de cada regla)

CampoTipoDescripción
alertsarrayDefiniciones de alertas: name, type, severity, description.
suggestionstringTipo de sugerencia: BLOCK, SUSPEND o FLAG.
statusstringEstado definido por la regla.
assignedUserobject{ userId: string } si la regla asigna un usuario.
customKeysarrayClaves de acciones personalizadas (ej. para workflows).

actionsExecuted (raíz)

CampoTipoDescripción
alertsarrayTodas las alertas de las reglas que hicieron hit. Cada alerta puede incluir ruleId, ruleExternalId e investigationId (asignado tras la consolidación; null en la respuesta inmediata).
suggestionstringSugerencia ganadora por peso: BLOCK, SUSPEND o FLAG.
statusstringEstado final aplicado (de la regla de mayor peso).
assignedUserobject{ userId: string } si alguna regla asignó un usuario.
customKeysarrayTodas las claves de acciones personalizadas de las reglas que hicieron hit.

Ejemplo completo

El siguiente ejemplo muestra rulesExecutionSummary con todos los campos poblados como llegarían en una respuesta de API o en un webhook.
{
  "rulesHit": [
    {
      "name": "País de alto riesgo",
      "description": "Marca entidades o transacciones vinculadas a jurisdicciones de alto riesgo.",
      "score": 30,
      "priority": 1,
      "category": "compliance",
      "status": "active",
      "conditions": [
        { "field": "entity.countryCode", "value": ["IR", "KP", "SY"], "operator": "in" },
        { "field": "entity.type", "value": "person" }
      ],
      "actions": {
        "alerts": [
          {
            "name": "Alerta país alto riesgo",
            "type": "create_alert",
            "severity": "high",
            "description": "La entidad está vinculada a una jurisdicción de alto riesgo."
          }
        ],
        "suggestion": "FLAG",
        "status": "PENDING_REVIEW"
      }
    }
  ],
  "rulesNoHit": [
    {
      "name": "Match PEP",
      "description": "Marca cuando el screening PEP devuelve coincidencia.",
      "score": 25,
      "priority": 2,
      "category": "compliance",
      "status": "active",
      "conditions": [
        { "field": "enrichment.complyadvantage_pep_enrichment.isPep", "value": true }
      ],
      "actions": {
        "alerts": [
          {
            "name": "Match PEP",
            "type": "create_alert",
            "severity": "medium",
            "description": "El screening PEP devolvió una coincidencia."
          }
        ],
        "suggestion": "SUSPEND"
      }
    }
  ],
  "actionsExecuted": {
    "alerts": [
      {
        "name": "Alerta país alto riesgo",
        "type": "create_alert",
        "severity": "high",
        "description": "La entidad está vinculada a una jurisdicción de alto riesgo.",
        "ruleId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "ruleExternalId": "RG-ENTITY-1",
        "investigationId": null
      }
    ],
    "suggestion": "FLAG",
    "status": "PENDING_REVIEW"
  },
  "totalScore": 30,
  "scoreResult": {
    "rawScore": 30,
    "normalizedScore": 42,
    "label": {
      "name": "Medio",
      "range": "30-80",
      "minScore": 30,
      "maxScore": 80
    }
  },
  "riskMatrixName": "Matriz de entidades por defecto",
  "executionTimeMs": 156,
  "trigger": "entity_created",
  "matchedRulesCount": 1
}

Ejemplo mínimo (ninguna regla hace hit)

Cuando ninguna regla hace match, igualmente se devuelven rulesHit, rulesNoHit, totalScore y metadatos; actionsExecuted se omite cuando está vacío.
{
  "rulesHit": [],
  "rulesNoHit": [
    {
      "name": "Match PEP",
      "description": "Marca cuando el screening PEP devuelve coincidencia.",
      "score": 25,
      "priority": 2,
      "category": "compliance",
      "status": "active",
      "conditions": [
        { "field": "enrichment.complyadvantage_pep_enrichment.isPep", "value": true }
      ],
      "actions": {
        "alerts": [
          {
            "name": "Match PEP",
            "type": "create_alert",
            "severity": "medium",
            "description": "El screening PEP devolvió una coincidencia."
          }
        ],
        "suggestion": "SUSPEND"
      }
    }
  ],
  "totalScore": 0,
  "scoreResult": {
    "rawScore": 0,
    "normalizedScore": 0,
    "label": {
      "name": "Bajo",
      "range": "0-30",
      "minScore": 0,
      "maxScore": 30
    }
  },
  "riskMatrixName": "Matriz de entidades por defecto",
  "executionTimeMs": 98,
  "trigger": "manual_evaluation",
  "matchedRulesCount": 0
}

Notas

  • investigationId en actionsExecuted.alerts se asigna de forma asíncrona tras la consolidación de alertas; en la respuesta inmediata de la API es null.
  • scoreResult.normalizedScore es el valor 0–100 que se persiste en la entidad o en el audit; totalScore (y scoreResult.rawScore) es la suma cruda de los scores de las reglas.
  • Los valores de trigger incluyen: manual_evaluation, entity_created, enrichment_completed, check_completed, created, updated, entre otros según el contexto.