IDR a través de la API: conversión de PDF a XML

Reconocer y convertir automáticamente facturas PDF a facturas electrónicas a través de recognize hooks.

El Intelligent Document Recognizer (IDR) convierte automáticamente facturas PDF en facturas electrónicas estructuradas. A través de la API de la PSB, usted controla el IDR mediante recognize hooks, con los que configura el proceso de reconocimiento: nivel de calidad, prioridad, funciones de extracción y datos de la parte. Este artículo describe cómo utilizar el IDR a través de la API.

¿Cómo funciona IDR a través de la API?

El IDR funciona como un hook en el sistema de hooks de la PSB. Usted registra un recognize hook que escucha un topic (por ejemplo, InvoiceReceived). Cuando un documento PDF llega a través de ese topic, la PSB lo envía automáticamente al IDR para su reconocimiento. Tras el procesamiento, el IDR publica el resultado en un topic de callback.

La hook-action para IDR tiene el siguiente formato:

recognize://idr?quality={quality}&priority={priority}&features={features}&data={base64-data}
Parámetros
quality

El nivel de calidad determina con qué rigor el IDR evalúa el resultado del reconocimiento:

ValorDescripcióndefaultNivel de calidad estándar (recomendado para la mayoría de los escenarios)hqAlta fiabilidad: solo se aceptan resultados con alta confianzalqSe permite menor calidad: más resultados, pero con menor confianza
priority

La prioridad determina el orden de procesamiento en la cola del IDR:

ValorDescripciónhighPrioridad en la colamediumPrioridad estándarlowProcesamiento en segundo plano cuando haya capacidad disponible
features

Las features activan capacidades de extracción adicionales. Puede combinar múltiples features (separadas por comas):

FeatureDescripciónibanExtracción de IBAN del PDFg-accountReconocimiento de separación de cuenta Gorder-referenceExtraer referencia de pedidoproject-referenceExtraer referencia de proyectocontract-referenceExtraer referencia de contrato

Ejemplo: features=iban,g-account,order-reference

data (datos de la parte)

El campo data contiene JSON codificado en base64 con los datos de la organización receptora. El IDR utiliza esta información para enriquecer y validar el resultado del reconocimiento. El JSON contiene nombres, identificadores, dirección de correo electrónico y direcciones de la organización.

Ejemplo del JSON antes de la codificación en base64:

{
  "names": ["Bedrijfsnaam B.V."],
  "identifiers": [
    { "type": "KVK", "value": "12345678" }
  ],
  "email": "[email protected]",
  "addresses": [
    {
      "street": "Voorbeeldstraat 1",
      "postcode": "1234 AB",
      "city": "Utrecht",
      "country": "NL"
    }
  ]
}
Registrar un recognize hook

Un recognize hook completo tiene el siguiente aspecto:

{
  "action": "recognize://idr?quality=default&priority=medium&features=iban,order-reference&data={base64-encoded-party-details}",
  "topics": ["InvoiceReceived"]
}

Registre este hook a través del endpoint de Hook:

POST /api/v1/hook

O inclúyalo directamente en una solicitud de Enrollment.

Topics de callback

Tras el procesamiento, el IDR publica el resultado en uno de los siguientes topics:

TopicDescripciónPurchaseInvoiceRecognizedEl PDF se ha reconocido correctamente y se ha convertido en una factura electrónicaPurchaseInvoiceRecognizedPendingEl reconocimiento está en espera de control de calidad (evaluación manual)PurchaseInvoiceRecognizedRejectedEl reconocimiento ha sido rechazado tras el control de calidadPurchaseInvoiceRecognizedErrorSe ha producido un error durante el reconocimiento

Configure un webhook o mailhook para estos topics para recibir el resultado. Por ejemplo:

{
  "action": "https://api.bedrijf.nl/idr/callback",
  "topics": ["PurchaseInvoiceRecognized", "PurchaseInvoiceRecognizedError"]
}
Límite de archivo y formatos admitidos

El tamaño máximo de archivo para uploads al IDR es de 15 MB. Los archivos mayores de 15 MB devuelven un código de error HTTP 413 (Content Too Large).

El IDR admite los siguientes tipos de archivo:

FormatoNotasPDFFormato principal, tanto escaneado como born-digitalJPEG / PNGImágenes de facturas (fotos, escaneos)TIFFEscaneos multipágina

Otros tipos de archivo (Word, Excel, HTML) no son compatibles y generan un error IDR422 Invalid PDF Content. Los PDF protegidos con contraseña o DRM producen un mensaje de error similar.

Flujo de procesamiento

El proceso completo del IDR a través de la API se realiza en cuatro pasos:

  1. Un documento PDF llega a través de la PSB (carga o recepción a través de Peppol/SFTP/correo electrónico)
  2. El recognize hook envía el documento al IDR con los parámetros configurados
  3. El IDR procesa el documento y publica el resultado en el topic de callback correspondiente
  4. Usted recibe el documento reconocido a través de su webhook o lo obtiene a través de los endpoints de PurchaseInvoice

¿Desea saber más sobre la arquitectura de hooks de la PSB? Lea el artículo sobre configurar y proteger webhooks.

Abrir la referencia de la API