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
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 tipoperson_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.Validación de CURP (RENAPO)
Cuando elitem_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.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.