Resumen del Flujo
El flujo de validación de documentos consta de cinco pasos principales:- Crear flujo personalizado - Configurar el flujo de validación específico para tu caso de uso
- Crear verificación - Inicializar la verificación usando el flujo creado
- Agregar documentos - Añadir los documentos a validar usando el endpoint
add-items
- Esperar validación - El sistema procesa los documentos automáticamente
- Recibir resultados - Obtener los resultados completos de la validación
- Ejecutar extracciones - Añadir los documentos que requieren extraccion usando el endpoint
add-items
Este flujo es ideal para casos donde necesitas validar documentos de manera
asíncrona y recibir notificaciones cuando el proceso esté completo.
Resumen del Proceso
La siguiente tabla muestra cada paso del flujo de validación de documentos y quién es responsable de ejecutarlo:Paso | Acción | Responsable | Endpoint | Descripción |
---|---|---|---|---|
0 | Crear flujo de validación | Usuario | POST /account-flows | Configurar el flujo personalizado para validaciones (solo una vez) |
1 | Crear verificación | Usuario | POST /verifications | Inicializar la verificación usando el flujo creado |
2 | Agregar documentos | Usuario | PUT /verifications/{id}/add-items | Enviar documentos para validación |
3 | Procesar documentos | Trébol | - | Sistema procesa y valida los documentos automáticamente |
4 | Notificar completado | Trébol | Webhook | Enviar notificación cuando la validación esté lista |
5 | Obtener resultados | Usuario | GET /verifications/{id} | Consultar los resultados completos de la validación |
Los pasos 0-2 y 5 son responsabilidad del usuario (tu aplicación), mientras
que los pasos 3-4 son automáticos y manejados por Trébol.
Paso 0: Crear el Flujo de Validación
¿Ya tienes un flujo creado? Si ya creaste un flujo previamente, puedes
saltarte este paso y usar directamente el
id_slug
del flujo existente en el
Paso 1. Los flujos son reutilizables y no necesitas crear uno nuevo para cada
verificación.POST /account-flows
Respuesta de Creación de Flujo
id_slug
(string): Identificador único del flujo creado. Usa este valor en el campoflow_id
al crear verificaciones.friendly_name
(string): Nombre descriptivo del flujo tal como lo definiste.
Una vez creado el flujo, puedes usar el
id_slug
(en este caso lean-flow
)
para crear verificaciones que utilicen esta configuración.Paso 1: Crear la Verificación
Ahora crea una verificación usando el flujo que acabas de crear. No incluyas documentos iniciales ya que los agregarás en el siguiente paso.Alternativa sin flujo: Si no deseas usar un
flow_id
, puedes crear la
verificación directamente con al menos un ítem incluido en la misma petición.
Esto es útil cuando tienes un caso de uso específico y no necesitas reutilizar
la configuración del flujo.POST /verifications
Opción 1: Crear verificación con flow_id (recomendado)
Opción 2: Crear verificación con ítems incluidos
email
(string): Dirección de correo electrónico del cliente que solicita la validación.tax_id
(string): Número de identificación fiscal de la empresa (RFC en México).tag
(string): Etiqueta única para identificar tu verificación. Útil para tracking y debugging.
flow_id
(string): Identificador del flujo de verificación predefinido. Usalean-flow
para el flujo de validación de documentos. Opcional si incluyes ítems directamente.items
(array): Lista de ítems para validar. Debe incluir al menos un ítem si no usasflow_id
. Opcional si usasflow_id
.
Respuesta Exitosa
id
(string): ID único de la verificación creada. Necesario para los siguientes pasos.status
(string): Estado actual de la verificación. Inicialmente serápending
.documents_status
(string): Estado de la colección de documentos. Inicialmente serápending_upload
.
Paso 2: Agregar Documentos para Validación
Una vez creada la verificación, agrega los documentos que deseas validar usando el endpointadd-items
.
Endpoint: PUT /verifications/{verification-id}/add-items
verification-id
(path): ID de la verificación obtenido en el paso anterior.type
(string): Tipo de item. Usadoc_validation
para validación de documentos.options.file_url
(string): URL desde donde se puede descargar el documento. Debe estar disponible por al menos 5 minutos.options.client_item_type
(string): Tipo específico del documento para optimizar la validación. Ejemplo:csf_mx
para constancia de situación fiscal.
options.ruleset
(array): Lista de reglas personalizadas que se aplicarán durante la validación del documento. Cada regla debe tener las propiedadesid
yvalidation_rule
.tags
(object): Diccionario de etiquetas que se asignarán al ítem. Puedes crear una etiqueta para que a futuro puedas identificar el ítem con algún identificador interno de tu sistema.
Respuesta del Add Items
id
(integer): ID único del item/documento agregado. Necesario para identificar el documento en webhooks y resultados.item_status
(string): Estado actual del item. Inicialmente serápending
.
Paso 3: Esperar la Validación
Una vez agregados los documentos, el sistema de Trébol procesará automáticamente la validación. Este proceso puede tomar varios minutos dependiendo de la complejidad del documento.Configurar Webhooks
Para recibir notificaciones automáticas cuando la validación esté completa, configura un webhook: Endpoint:POST /webhooks
Notificación de Completado
Cuando la validación esté completa, recibirás una notificación webhook con la siguiente estructura:event_name
(string): Nombre del evento webhook.verification_item.v2.completed
indica que un item de verificación fue completado.data.verification_id
(string): ID de la verificación a la que pertenece el item completado.data.item_id
(integer): ID del item/documento que fue completado.data.completed_at
(string): Timestamp ISO 8601 de cuando se completó la validación.
Una vez recibida esta notificación, puedes proceder a obtener los resultados
completos de la validación.
Paso 4: Obtener Resultados de Validación
Para obtener los resultados completos de la validación, consulta el endpoint de verificación: Endpoint:GET /verifications/{verification-id}
Identificar el ítem completado: Cuando recibas la notificación webhook,
usa el
item_id
del webhook para identificar qué documento específico fue
validado. Si agregaste una etiqueta personalizada al crear el ítem (usando el
campo tags
), también puedes usar esa información para hacer coincidir el
ítem con el ID de tu sistema interno.cURL
Respuesta con Resultados Completos
status
(string): Estado general de la verificación.complete
indica que todos los items han sido procesados.items[].item_status
(string): Estado del item individual.complete
indica que la validación fue exitosa.items[].item_value.rules_validation_result
(array): Lista de resultados para cada regla de validación aplicada al documento.items[].item_value.item_type_validation_result
(array): Lista de resultados para la validación del tipo de documento.items[].tags
(object): Diccionario de etiquetas que se asignaron al ítem.
Paso 5: Agregar Items de Extracción (Opcional)
Una vez que has validado los documentos y confirmado que son del tipo correcto, puedes proceder a agregar items de extracción para obtener la información específica de cada uno. Endpoint:PUT /verifications/{verification-id}/add-items
Basado en resultados de validación: Usa los resultados del Paso 4 para determinar qué tipos de items agregar. Si por ejemplo, la validación confirmó que un documento es una CSF, ahora puedes agregar un item
csf_mx
para extraer la información fiscal.Ejemplo de Solicitud
Tipos de Items Disponibles
Documentos Mexicanos
ac_mx
: Para actas constitutivas mexicanasaa_mx
: Para actas de asamblea mexicanaspw_mx
: Para otorgamiento de poderesfme_mx
: Para folios mercantilescsf_mx
: Para constancias de situación fiscal mexicanasperson_id
: Para Ids personales (INE, pasaportes, etc)proof_address
: Para comprobantes de domiciliobank_statement
: Para extractos bancarios
Extractores Especializados
lien_certificate
: Para certificados de gravamenproperty_deed
: Para escrituras de propiedadproperty_tax_receipt
: Para recibos de impuestos predialespayroll_receipt
: Para recibos de nóminascamara_comercio_co_extractor
: Cámara de comercio (Cámara de Comercio)trust_contract_fideicomiso_extractor
: Contrato de fideicomisounion_documents_extractor
: Documentos de unión (pareja de hecho)designacion_responsable_cumplimiento_extractor
: Designación de responsable de cumplimientoregistro_actividades_vulnerables_extractor
: Registro de actividades vulnerablesirs_ein_assignment_letter_extractor
: Letra de asignación de EIN (Internal Revenue Service)certificate_of_incumbency_extractor
: Certificado de incumbenciacertificate_of_incorporation_extractor
: Certificado de constituciónfincen_msb_registration_extractor
: Registro de MSB (Money Services Business) en FinCEN
Items que no aplican
doc_validation
: Para validacion de documentosgeneric
: Documentos genericos
Opciones Específicas
Para items csf_mx
:
constancia_type
: Especifica si es para empresa ("business"
) o individuo ("individual"
)
Respuesta Exitosa
Flujo completo: Después de este paso, los items de extracción serán procesados y recibirás webhooks cuando la extracción esté completa. Puedes consultar los resultados usando el endpoint
GET /verifications/{verification-id}
.Notificación de Extracción Completada
Cuando la extracción de información esté completa, recibirás una notificación webhook con el eventoverification_item.v2.extraction_completed
:
verification_id
(string): ID de la verificaciónitem_id
(number): ID del item que completó la extracciónitem_type
(string): Tipo de item extraído (ej. “csf_mx”, “ac_mx”)extraction_completed_at
(string): Timestamp ISO 8601 de cuando se completó la extracciónsuccess
(boolean): Indica si la extracción fue exitosa
Procesamiento asíncrono: La extracción de información puede tomar varios minutos dependiendo del tipo de documento y la complejidad del contenido. Usa esta notificación para saber cuándo los datos están listos para ser consultados.
Mejores Prácticas
Gestión de Flujos
Los flujos creados son reutilizables. Una vez configurado un flujo, puedes
usarlo para múltiples verificaciones sin necesidad de recrearlo.
- Crea flujos específicos para diferentes tipos de validación
- Usa nombres descriptivos en
friendly_name
para facilitar la identificación - Considera crear flujos separados para diferentes países o casos de uso
Gestión de URLs de Documentos
Las URLs de documentos deben estar disponibles por al menos 5 minutos para
garantizar la descarga exitosa.
- Usa URLs con tokens de acceso temporal cuando sea posible
Manejo de Webhooks
- Implementa validación de firma webhook para seguridad
- Configura timeouts apropiados para evitar reintentos excesivos
- Mantén un log de eventos webhook para debugging
Procesamiento Asíncrono
- No bloquees tu aplicación esperando resultados de validación
- Usa el sistema de webhooks para notificaciones automáticas
- Implementa polling como fallback si los webhooks fallan
Troubleshooting
Documento no se descarga
Problema: El documento no se puede descargar desde la URL proporcionada. Soluciones:- Verifica que la URL sea accesible públicamente
- Asegúrate de que la URL no requiera autenticación
- Confirma que la URL esté disponible por al menos 5 minutos
Webhook no recibido
Problema: No recibes la notificación webhook cuando la validación está completa. Soluciones:- Verifica que tu endpoint webhook esté funcionando correctamente
- Confirma que el webhook esté configurado con el evento correcto
- Revisa los logs de tu servidor para errores de conexión