ZUGFeRD
ZUGFeRD prüfen — im Browser, ohne Upload
Sie haben eine ZUGFeRD-Rechnung und möchten wissen, ob sie den Regeln der EN 16931 entspricht. Diese Seite zeigt Ihnen, wie das geht. Die Prüfung ist kostenlos und läuft lokal in Ihrem Browser.
Was ist ZUGFeRD?
ZUGFeRD ist ein hybrides Rechnungsformat. Eine ZUGFeRD-Rechnung ist eine PDF-Datei, in der zusätzlich eine XML-Datei steckt. Menschen lesen das PDF, Software liest das XML. Beide beschreiben dieselbe Rechnung.
Das XML folgt der UN/CEFACT-Syntax CII und der europäischen Norm EN 16931. Die aktuelle Fassung baut auf D22B auf und ist als abwärtskompatibel zu D16B dokumentiert — und D16B ist die Syntax, die diese Engine erzeugt und prüft. Genau deshalb kann derselbe Regelsatz eine ZUGFeRD-Rechnung prüfen, der auch XRechnung und Factur-X prüft.
ZUGFeRD und Factur-X sind dieselbe Spezifikation unter zwei Namen. Die aktuelle Fassung heißt Factur-X 1.09.2 beziehungsweise ZUGFeRD 2.5.2. Auf Französisch lesen Sie dieselbe Seite unter vérifier une facture Factur-X.
ZUGFeRD, XRechnung und Factur-X im Vergleich
| Format | Was es ist | Wer es herausgibt | Typischer Einsatz |
|---|---|---|---|
| ZUGFeRD | PDF/A-3 mit eingebettetem CII-XML | FeRD, Deutschland | B2B, oft als Anhang per E-Mail |
| XRechnung | reines XML, UBL oder CII, als CIUS der EN 16931 | KoSIT, Deutschland | Rechnungen an deutsche Behörden |
| Factur-X | dieselbe Spezifikation wie ZUGFeRD | FNFE-MPE, Frankreich | B2B in Frankreich |
Kurz gesagt: XRechnung ist ein Inhalt, ZUGFeRD ist ein Behälter. Sie können beides zugleich haben, denn ZUGFeRD kennt ein Profil namens XRECHNUNG.
Wie Sie eine ZUGFeRD-Rechnung prüfen
Wichtig vorweg: Geprüft wird das XML, nicht der PDF-Behälter. Holen Sie das XML also zuerst aus dem PDF. Das dauert einen Moment und ist unten beschrieben.
-
XML aus dem PDF holen. In Ihrem PDF-Betrachter finden
Sie eine Liste der Dateianhänge. Speichern Sie den Anhang, der
factur-x.xml,zugferd-invoice.xmloderxrechnung.xmlheißt. - Playground öffnen. Gehen Sie zum Playground und dort auf den Reiter „Check an XML file“. Der Playground selbst ist auf Englisch.
- XML einfügen oder Datei wählen und auf „Check this document“ klicken.
- Befund lesen. Sie sehen ein Urteil und dazu jede verletzte Regel: die Regel-ID, das betroffene Geschäftsobjekt, was die Norm verlangt und welches Feld zu ändern ist. Jede Regel hat eine eigene Seite unter /rules/.
Ihre Datei wird lokal in Ihrem Browser verarbeitet. Sie wird nicht hochgeladen. Keine Anfrage, die Ihr Dokument enthält, verlässt die Seite, und kein Analyse-Ereignis hält etwas darüber fest. Die Regel-Engine ist als JavaScript in die Seite geladen und läuft in Ihrem Tab. Wenn Sie mögen: Netzwerk-Tab öffnen und mitschauen. Die Seite selbst lädt eine cookiefreie Zugriffsmessung und hält nur fest, dass der Prüfknopf gedrückt wurde.
Im englischen Original steht dort: „Your file is processed locally in your browser. It is not uploaded.“
Wenn Sie lieber programmieren: dieselbe Engine gibt es als
MIT-lizenziertes npm-Paket. extractFacturX(bytes) holt das
XML aus einer ZUGFeRD- oder Factur-X-PDF,
parseCiiInvoice liest es ein und
validateInput prüft es, ohne Netzwerkzugriff und ohne
Laufzeitabhängigkeiten.
npm install @attestwire/en16931
Was die Prüfung abdeckt
Geprüft wird gegen das Regelwerk der EN 16931. Aktuell sind 270 Regeln umgesetzt, die eine von Ihnen versandte Rechnung brechen kann, dazu 25 arithmetische Invarianten, die die Rechenwege der Engine absichern. Dazu kommen die deutsche CIUS XRechnung mit ihren BR-DE-Regeln und Peppol BIS Billing 3.0. Alle Regeln im Einzelnen →
Als Beleg: 11 mitgelieferte Testrechnungen waren am für den KoSIT-Validator 1.6.2 mit der XRechnung-Konfiguration 3.0.2 annehmbar, ohne einen einzigen Befund. Das vollständige Protokoll →
valid: true heißt: Die Daten des Dokuments haben jede Regel
bestanden, die Attestwire umsetzt. Es ist keine Zusage, dass ein
Empfänger, ein Access Point oder eine nationale Erweiterung das Dokument
annimmt. Die genauen Grenzen →
Was wir nicht tun
Wir erzeugen keine ZUGFeRD-PDF. Attestwire
schreibt das CII-XML; für den PDF/A-3-Behälter — eingebettete
Schriften, Farbprofil, XMP-Metadaten, der richtige
/AFRelationship-Wert — brauchen Sie eine PDF/A-3-Bibliothek.
Unsere datierte Übersicht nennt Mustangproject,
das genau das kann.
Der Behälter wird gelesen, nie geschrieben.
extractFacturX(bytes) öffnet eine ZUGFeRD- oder
Factur-X-PDF und gibt den XML-Anhang zurück. Diese Funktion steckt im
MIT-Paket und macht keinen Netzwerkzugriff.
Der Browser-Checker nimmt XML, kein PDF. Der
Dateidialog lässt .pdf ausdrücklich zu, aber nur, damit
Sie statt einer kryptischen Syntaxmeldung eine Erklärung bekommen,
welchen Anhang Sie stattdessen wählen sollten.
Wir versenden keine Rechnungen. Attestwire ist kein Access Point und keine zugelassene Plattform.
Häufige Fragen
Ist ZUGFeRD Pflicht?
ZUGFeRD selbst ist nicht vorgeschrieben. Vorgeschrieben ist die strukturierte E-Rechnung nach EN 16931, und ZUGFeRD erfüllt diese Norm ab dem Profil EN 16931. In Deutschland ist der Empfang inländischer B2B-E-Rechnungen seit Januar 2025 Pflicht. Das Ausstellen beginnt am 1. Januar 2027 für Unternehmen über 800.000 € Vorjahresumsatz und am 1. Januar 2028 für alle übrigen. Welches der zulässigen Formate Sie wählen, bleibt Ihnen überlassen.
Was ist der Unterschied zwischen ZUGFeRD und XRechnung?
ZUGFeRD ist hybrid: ein PDF mit eingebettetem XML. XRechnung ist reines XML ohne PDF. Inhaltlich sind beide an EN 16931 gebunden, XRechnung zusätzlich an die deutsche CIUS mit ihren BR-DE-Regeln. ZUGFeRD kennt dafür ein eigenes Profil namens XRECHNUNG, das genau diese CIUS in den PDF-Container legt. Für Rechnungen an deutsche Behörden ist XRechnung der gefragte Standard.
Wie öffne ich das XML in einer ZUGFeRD-PDF?
Das XML liegt als Dateianhang im PDF. Jeder PDF-Betrachter mit einer Anhangsliste kann es speichern; es heißt fast immer factur-x.xml, zugferd-invoice.xml oder xrechnung.xml. Wenn Sie programmieren: extractFacturX(bytes) aus @attestwire/en16931 liest den Anhang ohne weitere Abhängigkeiten aus den PDF-Bytes und gibt das XML zurück.
Ist die Prüfung kostenlos?
Ja. Der Playground braucht kein Konto, keinen API-Schlüssel und keine Zahlung, und es gibt kein Limit an Prüfungen: die Regel-Engine läuft in Ihrem Browser, uns kostet Ihre Prüfung also nichts. Dieselbe Engine gibt es als MIT-lizenziertes npm-Paket für Ihren eigenen Code.