Eventos de Conversión
Webhooks para el procesamiento de documentos con extracción de datos estructurados
Webhooks de Conversión
Los webhooks de conversión se envían durante el procesamiento de documentos cuando se utiliza un tipo de documento específico para extraer datos estructurados.
Eventos de Conversión
Conversión Iniciada (CONVERSION_STARTED)
Se envía cuando comienza el procesamiento de un documento:
{
"conversion_id": "clm123abc456def",
"status": "PROCESSING",
"request_timestamp": "2024-01-15T10:30:00.000Z",
"document_type_code": "invoice",
"original_filename": "factura-001.pdf",
"document_metadata": {
"client_id": "ABC123",
"department": "finance"
}
}Campos:
conversion_id(string): ID único de la conversiónstatus(string): Estado actual, siempre"PROCESSING"para este eventorequest_timestamp(string): Timestamp ISO 8601 de cuando se inició la conversióndocument_type_code(string): Código del tipo de documento utilizadooriginal_filename(string, opcional): Nombre original del archivo procesadodocument_metadata(object, opcional): Metadatos personalizados enviados con la conversión
Conversión Completada (CONVERSION_COMPLETED)
Se envía cuando la conversión termina exitosamente:
{
"conversion_id": "clm123abc456def",
"status": "SUCCESS",
"request_timestamp": "2024-01-15T10:30:00.000Z",
"response_timestamp": "2024-01-15T10:30:15.000Z",
"document_type_code": "invoice",
"original_filename": "factura-001.pdf",
"document_metadata": {
"client_id": "ABC123",
"department": "finance"
},
"data": {
"invoiceNumber": "INV-2024-001",
"amount": 1250.00,
"vendor": "Empresa ABC S.A.",
"date": "2024-01-15"
}
}Campos:
conversion_id(string): ID único de la conversiónstatus(string): Estado actual, siempre"SUCCESS"para este eventorequest_timestamp(string): Timestamp ISO 8601 de cuando se inició la conversiónresponse_timestamp(string): Timestamp ISO 8601 de cuando se completó la conversióndocument_type_code(string): Código del tipo de documento utilizadooriginal_filename(string, opcional): Nombre original del archivo procesadodocument_metadata(object, opcional): Metadatos personalizados enviados con la conversióndata(object): Datos extraídos del documento según el esquema del tipo de documento
Conversión Fallida (CONVERSION_FAILED)
Se envía cuando la conversión falla:
{
"conversion_id": "clm123abc456def",
"status": "ERROR",
"request_timestamp": "2024-01-15T10:30:00.000Z",
"response_timestamp": "2024-01-15T10:30:10.000Z",
"document_type_code": "invoice",
"original_filename": "factura-001.pdf",
"document_metadata": {
"client_id": "ABC123",
"department": "finance"
},
"error": "Error during OCR processing: Unable to process image"
}Campos:
conversion_id(string): ID único de la conversiónstatus(string): Estado actual, siempre"ERROR"para este eventorequest_timestamp(string): Timestamp ISO 8601 de cuando se inició la conversiónresponse_timestamp(string): Timestamp ISO 8601 de cuando falló la conversióndocument_type_code(string): Código del tipo de documento utilizadooriginal_filename(string, opcional): Nombre original del archivo procesadodocument_metadata(object, opcional): Metadatos personalizados enviados con la conversiónerror(string): Mensaje descriptivo del error ocurrido
Ejemplo de Implementación
app.post('/webhooks/docutray', (req, res) => {
const eventType = req.headers['x-docutray-event'];
const data = JSON.parse(req.body);
switch (eventType) {
case 'CONVERSION_STARTED':
console.log(`Conversión iniciada: ${data.conversion_id}`);
// Actualizar base de datos con estado "procesando"
break;
case 'CONVERSION_COMPLETED':
console.log(`Conversión completada: ${data.conversion_id}`);
console.log('Datos extraídos:', data.data);
// Guardar datos extraídos en base de datos
// Enviar notificación al usuario
break;
case 'CONVERSION_FAILED':
console.log(`Conversión fallida: ${data.conversion_id}`);
console.log('Error:', data.error);
// Registrar error y notificar al usuario
break;
}
res.status(200).send('OK');
});