Flujo: KYB México vía API
Contexto
KYB México permite verificar:- Personas morales (S.A. de C.V., S. de R.L., S.A.P.I.)
- Personas físicas con actividad empresarial
- Representantes legales y apoderados
Endpoint base
Las 3 formas de procesar documentos
Recomendación general: empezar con
generic (clasificación automática) y dejar que Trébol determine el tipo.
Items disponibles para KYB MX
Documentos (requieren file_url)
Estos están en el enum AllowedItemType del openapi (usado por record_validation_schema.requirements[].allowed_item_types en account-flows). En POST /verifications el field items[].type es string libre, así que también valen ahí.
Consultas públicas (no requieren archivo)
ℹ️ Estos no aparecen en el enumAllowedItemType (que es solo para items-documento). El field items[].type en POST /verifications es string libre, así que estos valores son válidos. La fuente canónica es la página de docs guia-devs/uso-kyb/mexico/items-consultas-publicas.
Globales aplicables a MX
person_id (INE/pasaporte/residencia), proof_address, bank_statement, generic.
Atributos principales del payload
Reglas de tax_id
- Con
flow_id: eltax_idraíz es obligatorio siempre. - Con
items(sin flow): eltax_idraíz es opcional. Excepción: si usaspublic_sat_signaturescontype: "business", debes proveer el RFC. Va entax_idraíz o enoptions.tax_id_numberdel item SAT.
file_url debe estar disponible al menos 5 minutos. Trébol descarga el archivo, no lo reusa.
Ejemplo 1 — Consulta simple (solo RFC, sin documentos)
Respuesta de POST /verifications
Status201. La respuesta es síncrona. El field se llama id (no verification_id) aunque represente el ID de la verificación. En el body de webhooks el mismo dato se llama verification_id.
Smoke test ejecutable (curl end-to-end)
201 con un id UUID. Apunta a ese ID para cruzar con los webhooks que llegarán después.
Ejemplo 2 — Con documentos: clasificación automática
client_item_type es opcional — es un hint que ayuda a la clasificación. Si lo omites, Trébol detecta el tipo solo.
Ejemplo 3a — Solo validación (sin extraer info)
client_item_type es obligatorio en doc_validation. ruleset es opcional.
Ejemplo 3b — Solo extracción directa
Ejemplo 4 — SIGER en profundidad
siger_data_extraction: true analiza los actos registrados en SIGER y crea automáticamente items ac_mx, aa_mx, fme_mx para los actos relevantes.
search_related_companies_siger: true identifica empresas en las que participan los accionistas.
siger_data_extraction: true no funciona en verificaciones que también incluyen documentos cargados. Si necesitas ambas cosas, sepáralas en dos verificaciones.
Si no tienes tax_id, declara el legal_name directamente:
key_people — apoderados y poderes
Para extraer poderes legales de personas específicas:
Carga directa (cuando no tienes file_url accesible)
Si tu archivo está en almacenamiento privado (S3 con TTL corto, generación dinámica) y no puedes pasar un file_url accesible 5 minutos, usa carga directa: Trébol te entrega un upload_url por item, tú subes el archivo directamente, Trébol procesa.
Detalle del flujo en la documentación oficial: https://docs.gotrebol.com/guia-devs/crear-verificaciones/via-api/carga-directa
Flujo completo de integración
{verification-id}, {etiqueta}), pero los fields del body y response son snake_case (verification_id, account_id).