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
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. Endpoint:POST /verifications
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).flow_id
(string): Identificador del flujo de verificación predefinido. Usalean-flow
para el flujo de validación de documentos.tag
(string): Etiqueta única para identificar tu verificación. Útil para tracking y debugging.
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.
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
.item_options.upload_url
(string): URL de carga alternativa si el documento necesita ser subido directamente.
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}
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[].validation_result.overall_status
(string): Estado general de la validación del documento. Puede servalid
,invalid
, owarning
.items[].validation_result.confidence_score
(number): Puntuación de confianza de la validación (0.0 a 1.0). Valores más altos indican mayor confianza.items[].item_value.validation_results
(array): Lista de resultados para cada regla de validación aplicada al documento.
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