LegalHunt
◆ Oficio 221/DGPORPIA-14558017/2026 · CNBV

Conecta tu sistema y valida tus datos antes de reportar a la CNBV.

Tu sistema nos envia los usuarios, las operaciones y las transferencias SPEI, y consulta si un cliente sale en listas de riesgo. Aqui pruebas el formato: pegas tu JSON, lo validamos contra el esquema del oficio y te decimos exactamente que corregir. En sandbox nada se guarda.

Tu sistema
POST /cotejar · /usuarios · /operaciones · /spei
Legal Hunt valida
Reporte SITI

Como funciona

El transmisor de dinero envia la informacion; Legal Hunt la recibe. Hay cuatro direcciones (endpoints): el cotejo de listas para consultar riesgo, y una por cada tabla del oficio.

Direccion base — sandbox
https://app.legalhuntaml.com/api/ingesta/sandbox
POST /cotejar
3
Cotejo de listas
POST /usuarios
85
campos · Tabla 1
POST /operaciones
40
campos · Tabla 2
POST /spei
19
campos · Tabla 3
i
En sandbox los datos se validan pero no se guardan. Cuando tu formato pase sin errores, Legal Hunt habilita la llave de produccion.

Autenticacion

Cada envio lleva la llave que Legal Hunt te entrega, en el encabezado X-API-Key.

X-API-Key: sk_test_xxxxxxxxxxxxxxxx
Content-Type: application/json

Sin llave valida la API responde 401. La estructura del cuerpo siempre es { transmisor_clave, registros }.

POST/cotejar

Cotejo de listas (consulta de riesgo)

Tu sistema envia un nombre (y opcionalmente un pais); Legal Hunt lo compara contra las listas de riesgo y devuelve un veredicto con las coincidencias encontradas.

Campos totales
3
Requeridos
1
Metodo
POST
Campo (API)Notas
nombrerequeridoNombre completo o razon social a consultar contra las listas.
paisopcionalPais a consultar contra las listas de riesgo (GAFI, REFIPRES). Opcional.
referenciaopcionalIdentificador libre del transmisor para rastrear la consulta en su bitacora. Opcional.
Ejemplo de envio (minimo)
{
  "nombre": "JUAN PEREZ GARCIA",
  "pais": "Monaco",
  "referencia": "ONB-000123"
}

Veredicto de riesgo (semaforo)

SIN_COINCIDENCIAS — no se encontro nada en las listas.
COINCIDENCIA_A_REVISAR — hay una coincidencia que el transmisor debe revisar (ej. lista gris GAFI o regimen fiscal REFIPRES).
COINCIDENCIA_ALTA — coincidencia de alto riesgo (persona con score alto o pais en lista negra GAFI).
Ejemplo de respuesta
{
  "ok": true,
  "entorno": "sandbox",
  "resultado": {
    "veredicto": "COINCIDENCIA_ALTA",
    "score_max": 100,
    "referencia": "ONB-000123",
    "coincidencias": {
      "personas": [ { "fuente": "PEP", "score": 100 } ],
      "paises": [ { "pais": "Monaco", "fuente": "GAFI_GRIS" } ]
    },
    "nota": "Recomendacion de riesgo. La decision de apertura corresponde al transmisor."
  }
}
i
El veredicto es una recomendacion de riesgo, no una aprobacion. La decision de apertura corresponde al transmisor, que es el sujeto obligado ante la CNBV.

POST/usuarios

Tabla 1Usuarios (remitentes y beneficiarios)

Campos totales
85
Requeridos
4
Metodo
POST
Ejemplo de envio (minimo)
{
  "transmisor_clave": "22573",
  "registros": [
    {
      "num_usuario_unico_remit": "001",
      "tipo_persona_remit": "FISICA",
      "num_usuario_unico_benef": "001",
      "tipo_persona_benef": "FISICA"
    }
  ]
}

POST/operaciones

Tabla 2Operaciones por transferencias de fondos

Campos totales
40
Requeridos
7
Metodo
POST
Ejemplo de envio (minimo)
{
  "transmisor_clave": "22573",
  "registros": [
    {
      "num_cliente_unico_remit": "001",
      "num_cliente_unico_benef": "002",
      "tipo_transaccion": "ENVIO",
      "no_operacion": "OP-0001",
      "fecha_operacion": "2025-08-15",
      "monto_pago": 15000,
      "moneda_operacion": "MXN"
    }
  ]
}

POST/spei

Tabla 3Transferencias enviadas via SPEI

Campos totales
19
Requeridos
6
Metodo
POST
Ejemplo de envio (minimo)
{
  "transmisor_clave": "22573",
  "registros": [
    {
      "fecha_op": "2025-08-15",
      "folio": "F-000123",
      "nombre_remitente": "JUAN PEREZ",
      "monto": 15000,
      "nombre_beneficiario": "MARIA LOPEZ",
      "tipo_transferencia": "SPEI"
    }
  ]
}

Validador de esquema

Pega tu JSON (el cuerpo completo, con transmisor_clave y registros). Validamos campos requeridos y formatos. Nada se envia a ningun servidor.