Skip to main content
La decisión no es función del score. Una transacción puede tener score bajo y decisión BLOCK. El score mide riesgo acumulado; la decisión incorpora además evidencia directa que puede elevarla por sí sola. Actúa siempre sobre decision.type, nunca sobre el score.
Esta es la primera distinción que hay que tener clara antes de integrar: el score y la decisión son dos campos separados de la respuesta. Esta sección los recorre uno por uno, empezando por qué mide risk_score.

risk_score

Un número de 0 a 100 que resume el riesgo acumulado de la transacción. Es un campo plano de data — no viene anidado dentro de un objeto risk. Es útil para priorizar, ordenar y hacer analítica; no es la señal que debes usar para decidir qué hacer con una transacción.

risk_level

Una banda cualitativa derivada del score, con 4 valores posibles:

Ejemplo real: score bajo, decisión BLOCK

Este caso real ilustra por qué el score y la decisión son ejes independientes:
Un score de 29.07 cae en la banda medium — no es un score alto. Sin embargo la decisión fue BLOCK, porque la evidencia directa presente en la transacción (ver flags) fue suficiente por sí sola para rechazarla, independientemente de dónde cayera el score acumulado.

risk_score no sirve para recomputar decisiones

Además de lo anterior, hay una razón concreta por la que ninguna lógica tuya debe derivar la decisión del score: risk_score es la escala mostrada, no la escala operativa. La decisión se computa sobre una escala interna que no se expone en la respuesta, y risk_score está expresado en términos relativos al tráfico de tu propia empresa. La consecuencia práctica es directa:
  • No puedes recomputar una decisión a partir de risk_score.
  • No puedes predecir qué decisión saldría con otro score.
  • Comparar risk_score contra un límite propio te va a dar resultados que no coinciden con lo que devuelve la API.
Para lo que sí sirve risk_score: mostrar el riesgo en tu interfaz, ordenar una cola de revisión y priorizar qué mirar primero. Para saber qué hacer con la transacción, la única fuente es decision.type (decisiones de transacción).

decision.confidence

Un número de 0 a 1 que mide qué tan adentro de su banda cayó el score para la decisión basada en score: cerca de 1.0 cuando el caso está holgadamente dentro de su banda, cerca de 0.0 cuando queda pegado a un límite entre bandas. Sirve para una cosa: detectar casos limítrofes. Un confidence bajo indica una transacción que estuvo a punto de caer en otra decisión, y por eso es buena candidata a revisión manual o a monitoreo.
confidence no es una medida de certeza de la decisión final. Describe siempre la decisión basada en score. Cuando la decisión final se elevó por otra vía —evidencia directa, una regla tuya, tu lista de entidades— confidence sigue describiendo la decisión previa, no la que recibiste en decision.type. Un BLOCK con confidence bajo no significa “un bloqueo dudoso”.
Para saber qué hacer con una transacción, lee siempre decision.type — nunca risk_score, risk_level ni decision.confidence. Siguiente paso: Decisiones de transacción.