Docutray Logo

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ón
  • status (string): Estado actual, siempre "PROCESSING" para este evento
  • request_timestamp (string): Timestamp ISO 8601 de cuando se inició la conversión
  • document_type_code (string): Código del tipo de documento utilizado
  • original_filename (string, opcional): Nombre original del archivo procesado
  • document_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ón
  • status (string): Estado actual, siempre "SUCCESS" para este evento
  • request_timestamp (string): Timestamp ISO 8601 de cuando se inició la conversión
  • response_timestamp (string): Timestamp ISO 8601 de cuando se completó la conversión
  • document_type_code (string): Código del tipo de documento utilizado
  • original_filename (string, opcional): Nombre original del archivo procesado
  • document_metadata (object, opcional): Metadatos personalizados enviados con la conversión
  • data (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ón
  • status (string): Estado actual, siempre "ERROR" para este evento
  • request_timestamp (string): Timestamp ISO 8601 de cuando se inició la conversión
  • response_timestamp (string): Timestamp ISO 8601 de cuando falló la conversión
  • document_type_code (string): Código del tipo de documento utilizado
  • original_filename (string, opcional): Nombre original del archivo procesado
  • document_metadata (object, opcional): Metadatos personalizados enviados con la conversión
  • error (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');
});

Páginas relacionadas