Parsing ZUGFeRD
Extrait XML ZUGFeRD, Factur-X ou XRechnung integre aux factures PDF hybrides sur Pro et Business.
/v1/extract/zugferdProL'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.