ZUGFeRD / Factur-X
ZUGFeRD-PDF prüfen und XML extrahieren
Eine ZUGFeRD- oder Factur-X-Rechnung ist ein PDF/A-3 mit eingebettetem CII-XML nach der am 28. Juni 2017 veröffentlichten Norm EN 16931. Diese API prüft das eingebettete XML gegen das EN-16931-CII-Schematron und gibt es auf Wunsch extrahiert zurück, ohne API-Key.
Zwei Endpunkte für Factur-X und ZUGFeRD 2: Validierung mit dem EN-16931-CII-Schematron und Extraktion des eingebetteten XML. Ohne API-Key.
Prüfen
curl -F "file=@factur-x-en16931.pdf" https://checkxrechnung.com/v1/zugferd/validate
Die Antwort nennt profile (MINIMUM, BASIC WL, BASIC, EN16931, EXTENDED, XRECHNUNG), pdfa.engine und pdfa.label, das eingebettete Dateinamen und issues. Jeder Schematron-Treffer hat rule_url, wenn die Regel eine Seite unter /fehler/ hat, zum Beispiel BR-08.
PDF/A-3: Liegt veraPDF als ausführbare Datei vor (VERAPDF_BIN oder PATH), ist pdfa.engine verapdf. Sonst steht dort structure. Die Strukturprüfung liest den PDF-Kopf, pdfaid:part und pdfaid:conformance im XMP, den Namen der eingebetteten XML und AFRelationship. Sie bestätigt keine volle PDF/A-3-Konformität.
Das XML wird mit dem EN-16931-CII-Schematron 1.3.16 aus der KoSIT-Konfiguration 2026-08-31 geprüft (Saxon aus dem Validator-Jar 1.6.3). Profil XRECHNUNG läuft zusätzlich durch das XRechnung-CII-Schematron. MINIMUM, BASIC WL und BASIC erfüllen EN 16931 nicht vollständig. profileNote weist darauf hin.
Extrahieren
curl -F "file=@factur-x-en16931.pdf" https://checkxrechnung.com/v1/zugferd/extract
Die Antwort enthält das Roh-XML in xml und eine Zusammenfassung: Rechnungsnummer, Datum, Verkäufer, Käufer, Währung, Beträge, Profil. ok heißt hier, dass eine XML gefunden wurde.
Grenzen
- 10 MB. Größer: 413.
- 50 Prüfungen pro IP und UTC-Tag, 10 pro Minute, gemeinsam mit
POST /v1/validate. Danach 429 undRetry-After. - Eine leere Datei wird abgelehnt.
- ZUGFeRD 1.0 (
CrossIndustryDocument) wird erkannt, aber nicht mit diesem CII-Schematron für gültig erklärt.
Beispiele: factur-x-en16931.pdf, factur-x-en16931-invalid.pdf, factur-x-minimum.pdf, zugferd-xrechnung.pdf. Selbst erzeugt, synthetisch, keine fremden Musterdateien.
FAQ
Was prüft POST /v1/zugferd/validate?
PDF/A-3-Grundlagen, die eingebettete Rechnung, das Profil und das EN-16931-CII-Schematron. XRECHNUNG zusätzlich mit dem XRechnung-CII-Schematron.
Ist das veraPDF?
Nur wenn veraPDF installiert ist. Sonst eine gekennzeichnete Strukturprüfung, kein voller PDF/A-3-Bericht.
Welche Profile?
MINIMUM, BASIC WL, BASIC, EN16931, EXTENDED, XRECHNUNG.
Dieselben Limits?
Ja. 50 pro IP und UTC-Tag, 10 pro Minute, gemeinsamer Zähler. PDF bis 10 MB.
Wird die Datei gespeichert?
Nein. persisted ist false. Technische Events enthalten keine XML.
API-Doku · Beispieldateien · Fehler-Codes · openapi.json · ZUGFeRD im Browser