flags[].code y, como
string, en decision.reason. Programa contra estos valores; no contra el mecanismo interno
del motor.
Cada entrada de flags trae cuatro campos: code, category, severity (low /
medium / high) y description (inglés, el idioma del contrato). Varias señales internas
pueden colapsar al mismo code cuando le cuentan al comercio la misma historia: en
flags queda una entrada por código.
decision.reason usa este mismo vocabulario, más dos formas cuando la decisión la elevó
algo tuyo: custom_rule:<id> y entity_block:<kind>:<value>. Ver
Formato de respuesta.
No confundas este catálogo con los códigos de error de la
API.
Códigos
Son 25 códigos. Puedes hacer
switch sobre code con confianza: cuando una señal nueva
cuenta la misma historia, se agrega a un código existente.
Puede aparecer un código adicional,
RISK_SIGNAL_OTHER (categoría other, severidad
low, descripción Risk signal without a published code), como respaldo cuando una señal
todavía no tiene código público propio. No lo trates como parte del catálogo estable de 25
— es el valor de respaldo. Si llega un code que no reconoces, trátalo como señal genérica
y actúa sobre decision.type, nunca sobre la razón suelta.