Documentation

Parsing ZUGFeRD

Extrait XML ZUGFeRD, Factur-X ou XRechnung integre aux factures PDF hybrides sur Pro et Business.


POST/v1/extract/zugferdPro

L'endpoint ZUGFeRD est disponible sur Pro et Business. Il lit l'XML integre dans un PDF et renvoie la meme enveloppe de reponse que les endpoints d'extraction standard.

Utilisez POST /v1/extract/zugferd pour les PDF hybrides avec pieces jointes XML supportees.

Pour l'enveloppe de reponse document AP, les uploads XML autonomes, ou le parsing XRechnung et Peppol reserve a Business, utilisez plutot POST /v1/documents/extract/file. Dans cette API, document_type reste le type metier comme invoice ou credit_note; source_format identifie le format structure comme zugferd, factur_x, xrechnung ou peppol_bis_billing.

Pieces jointes supportees

Le parser recherche les noms de fichiers XML integres connus:

Nom de fichier
factur-x.xml
ZUGFeRD-invoice.xml
xrechnung.xml

Si aucune piece jointe XML supportee ne peut etre lue, la requete renvoie une erreur applicative.

Requete

L'indice de locale est un query parameter.

curl -X POST "https://api.parsurai.com/v1/extract/zugferd?locale=auto" \
  -H "X-API-Key: $PARSURAI_API_KEY" \
  -F "file=@zugferd-invoice.pdf"

Reponse

{
  "invoice_id": "2f7d7f8a-32fb-4a7c-a3b1-53b61b64252f",
  "invoice": {
    "document_type": "invoice",
    "vendor": {
      "name": "Muster GmbH",
      "address": null,
      "email": null,
      "phone": null,
      "tax_id": "DE123456789",
      "iban": null,
      "bank_name": null
    },
    "buyer": {
      "name": "Buyer GmbH",
      "address": null,
      "email": null,
      "phone": null,
      "tax_id": "DE987654321",
      "iban": null,
      "bank_name": null
    },
    "invoice_number": "2026-DE-0042",
    "issue_date": "2026-06-01",
    "due_date": "2026-07-01",
    "billing_period_start": null,
    "billing_period_end": null,
    "reference_numbers": [],
    "line_items": [],
    "subtotal": 2500.0,
    "discount_total": null,
    "tax_breakdown": [
      {
        "tax_type": "VAT",
        "rate": 0.19,
        "taxable_amount": 2500.0,
        "tax_amount": 475.0
      }
    ],
    "tax_total": 475.0,
    "total_amount": 2975.0,
    "amount_paid": null,
    "amount_due": 2975.0,
    "currency": "EUR",
    "payment_terms": null,
    "payment_instructions": null,
    "locale": "de",
    "confidence": 1.0,
    "field_confidence": {},
    "notes": []
  },
  "duplicate_risk": null,
  "anomalies": [],
  "confidence_low": false,
  "field_bboxes": null
}

Si un PDF n'est pas une facture electronique hybride supportee, utilisez POST /v1/extract/file pour OCR et extraction.

Restriction d'offre et fallback

Le parsing ZUGFeRD est disponible uniquement sur Pro et Business. Sous Pro, l'endpoint repond avec 402 et feature_not_in_plan; cette reponse ne consomme pas le quota d'extraction.

Si votre application accepte a la fois des factures electroniques hybrides et des PDF classiques, verifiez l'offre avant d'afficher l'option ZUGFeRD. Pour les PDF non supportes ou les offres sous Pro, utilisez l'upload standard POST /v1/extract/file.