Skip to main content
Este documento describe los items de tipo documento que aplican a verificaciones KYB en cualquier país. Son documentos universales que complementan los items específicos por país (México, Colombia, Estados Unidos). Para items específicos de un país, consulta las guías correspondientes:

Tabla resumen


person_id — Identificación oficial (persona)

Tipos de identificación soportados según el país:
  • ine_mx: Identificación oficial mexicana (INE).
  • passport: Pasaporte (documento oficial de viaje).
  • residence_mx: Tarjeta/documento de residencia en México (para no mexicanos).
  • cc: Cédula de ciudadanía colombiana.

Estructura de respuesta

Los keys due_date, place_of_issue, sex, numero_id_nacional y curp pueden ser null porque son campos opcionales y su presencia depende del tipo de person_id y de si el documento los incluye explícitamente (por ejemplo, curp solo aplica para documentos mexicanos; place_of_issue aplica para la cédula de ciudadanía colombiana).

Validación del INE

Para un item de tipo person_id, si su tipo es ine_mx, se realiza una validación del INE. Los datos de esta validación se encuentran dentro de item_value bajo la clave ine_validation_data. El estado de este proceso se puede identificar mediante dos claves: ine_validation_result y ine_validation_message. Estructura de ine_validation_data: El objeto ine_validation_data.data contiene la siguiente información extraída del INE:
  • cic (string): Clave de Identificación Ciudadana (CIC).
  • numero_ocr (string): Número OCR del documento.
  • ano_de_emision (string): Año de emisión del documento.
  • distrito_local (string): Distrito local electoral.
  • ano_de_registro (string): Año de registro del documento.
  • expiration_date (string): Fecha de expiración del documento.
  • clave_de_elector (string): Clave de elector.
  • distrito_federal (string): Distrito federal electoral.
  • numero_de_emision (string): Número de emisión del documento.
  • fecha_de_actualizacion_de_la_informacion (string): Fecha de actualización de la información.
La validación del INE solo se realiza cuando el id_type del item person_id es ine_mx. Para otros tipos de identificación (como passport, residence_mx o cc), estos campos vendrán en null.
Para saber cómo detectar si la validación del INE falló (e.g. ine_validation_result: "failed" o "error"), consulta la referencia de errores en consultas públicas.

Validación de CURP (RENAPO)

Cuando el item_value del person_id incluye la llave curp con un valor no nulo (típicamente al procesar un ine_mx, un passport mexicano o un residence_mx), Trébol consulta automáticamente RENAPO. La consulta corre de forma asíncrona: el item_value inicial puede devolverse con los cuatro campos (curp_validation_data, curp_validation_result, curp_validation_message y curp_file) en null y Trébol los puebla cuando dispara el webhook verification_people.curp_search_completed. Para acceder a los datos, vuelve a consultar GET /verifications/{verification-id} tras recibir el webhook. La respuesta usa el mismo conjunto de datos que el ítem dedicado curp_item, con tres diferencias en el item_value del person_id: (1) no incluye curp_validated_at, (2) no incluye curp_validation_status, y (3) curp_file queda al mismo nivel que curp_validation_data dentro de item_value (en curp_item está anidado dentro de curp_validation_data). Estructura de curp_validation_data: curp_validation_result — resultado de la consulta:
  • curp_found: Trébol encontró el CURP en RENAPO. La consulta fue exitosa.
  • curp_not_found: Trébol no encontró el CURP en RENAPO. La consulta corrió sin error, pero el CURP no existe.
curp_validation_message — campo reservado para un mensaje legible asociado al resultado. Actualmente llega siempre en null para el item_value del person_id (a diferencia de curp_item, donde sí se puebla). Existe por consistencia con la convención de ine_validation_message y puede llevar texto descriptivo en el futuro. Para conocer el resultado de la consulta, lee curp_validation_result. curp_file — URL firmada al PDF descargado de RENAPO con la constancia del CURP. Vive como campo de primer nivel dentro de item_value (no anidado dentro de curp_validation_data). La URL incluye un parámetro Expires=… y caduca; cuando expire, vuelve a consultar GET /verifications/{verification-id} para obtener una URL renovada.
Trébol solo dispara la consulta de RENAPO cuando el person_id incluye un número CURP. Si el id_type no aporta un CURP (por ejemplo, una cédula colombiana o un pasaporte no mexicano), los cuatro campos llegan en null y nunca llega el webhook curp_search_completed.
Si la consulta no corre (por ejemplo, porque no hay CURP en el documento) o si curp_validation_result es curp_not_found, el objeto curp_validation_data y la URL curp_file pueden llegar en null. Verifica siempre que el objeto y la URL existan antes de leerlos.
curp_validation_result: "curp_not_found" indica que la consulta corrió bien y RENAPO no tiene ese CURP — no es un error. Los errores reales (timeouts, indisponibilidad del servicio) llegan en el campo people_error del webhook verification_people.curp_search_completed; consulta la referencia de errores en consultas públicas para ver cómo procesarlos.

Ejemplo de salida para cédula de ciudadanía colombiana

Ejemplo de salida para pasaporte


proof_address — Comprobante de domicilio


bank_statement — Estado de cuenta bancario


trust_contract_fideicomiso_extractor — Contrato de fideicomiso


union_documents_extractor — Documentos de unión


financial_statements_any — Estados financieros

Item en fase Beta. La estructura de respuesta detallada se documentará próximamente.