Skip to main content
Toda respuesta exitosa de la API viaja envuelta en el mismo formato:
Los errores usan otro envelope. Ver Códigos de error.

data en POST /analyze

risk_score y risk_level son de primer nivel de data. flags también. No hay un objeto risk anidado, y flags no vive dentro de decision.

recommendation

Es un string de prosa, en el idioma configurado para tu compañía. Resume la decisión y, cuando hay señales, puede citar códigos públicos de flags. No es un contrato programable:
  • No hagas switch sobre el texto.
  • No parsees los códigos desde la frase: ya están en flags y en decision.reason.
  • El texto puede cambiar de redacción sin aviso; decision.type no.
Úsalo para mostrar algo legible en una UI. Para decidir qué hacer con la transacción, lee siempre decision.type.

Sobre flags

Cada entrada es una señal que se activó, con cuatro campos. flags viene [] si no hay señales. Las entradas están deduplicadas por code. Nunca traen el nombre interno de la señal ni un peso numérico. El catálogo completo de code —un solo lugar, no se duplica en otras páginas— está en Catálogo de flags.

Sobre decision.reason

Lista de strings, no de objetos. Lectura corta para ramificar sin recorrer flags: Si te llega un BLOCK con entity_block:user_id:user-4471, la causa está en tu lista.