ZUGFeRD validieren: PDF/A-3, XML und Profil prüfen
ZUGFeRD validieren in sechs Schritten: PDF/A-3 mit veraPDF, eingebettete XML, Profil, Schematron-Regeln und Pflichtangaben prüfen – mit kostenlosen Werkzeugen.
Das Wichtigste in Kürze
- Eine vollständige ZUGFeRD-Prüfung umfasst sechs Ebenen: PDF/A-3, Einbettung und XMP-Metadaten, XML-Schema, Schematron-Regeln, Abgleich von PDF und XML sowie die Pflichtangaben nach § 14 Abs. 4 UStG.
- veraPDF prüft nur die PDF/A-Konformität; der Mustang-Validator prüft PDF/A (über veraPDF), XML-Schema und Schematron in einem Durchgang.
- Für das Profil XRECHNUNG gelten zusätzlich die deutschen Regeln der KoSIT, etwa BR-DE-15 für die Käuferreferenz BT-10.
- Nach dem BMF-Schreiben vom 15.10.2025 ist eine Datei mit Formatfehlern keine E-Rechnung; Geschäftsregelfehler zu Nicht-Pflichtangaben wie BT-10 sind umsatzsteuerlich unbeachtlich.
- Das BMF empfiehlt, den Validierungsbericht als Nachweis aufzubewahren, am besten zusammen mit der Rechnung für die Dauer der achtjährigen Aufbewahrungsfrist.
Inhalt
Eine ZUGFeRD-Rechnung validieren Sie in zwei Teilen: Das PDF muss PDF/A-3-konform sein, die eingebettete XML muss dem CII-Schema und den Geschäftsregeln ihres Profils entsprechen. Für die PDF/A-Prüfung eignet sich veraPDF, für die Gesamtprüfung der Mustang-Validator. Beim Profil XRECHNUNG kommen die Regeln der KoSIT hinzu.
Stand: September 2026. Dieser Beitrag ersetzt keine Steuerberatung.
Warum reicht ein Blick auf das PDF nicht?
Nach dem BMF-Schreiben vom 15.10.2025 (öffnet in neuem Tab) ist bei hybriden Rechnungen der strukturierte Teil führend. Weichen PDF und XML ab, gilt die XML, und nur aus ihr ist der Vorsteuerabzug möglich. Ein PDF kann fehlerfrei aussehen, während die XML fehlt, das falsche Profil trägt oder Rechenfehler enthält. Eine Datei mit Formatfehlern ist nach Rn. 6a des Schreibens keine E-Rechnung, sondern eine sonstige Rechnung.
Eine Validierung prüft die Datei deshalb Schicht für Schicht. Wie ZUGFeRD aufgebaut ist und welche Profile es gibt, erklärt unser Grundlagenbeitrag zur ZUGFeRD-Rechnung.
Welche Prüfebenen gibt es?
| Ebene | Was geprüft wird | Werkzeug | Typischer Fehler |
|---|---|---|---|
| 1. PDF/A-3 | Norm ISO 19005-3: Schriften, Farbprofil, Metadaten | veraPDF, Mustang | Schrift nicht eingebettet |
| 2. Einbettung | Dateiname, AFRelationship, XMP-Profilangabe | Mustang, ZUGFeRD-Extraktor | falscher Dateiname |
| 3. XML-Schema | CII-Syntax des Profils, Namespaces, Reihenfolge | Mustang, XRechnung Viewer | falscher Namespace |
| 4. Schematron | Geschäftsregeln der EN 16931, bei XRECHNUNG auch BR-DE | Mustang, XRechnung Viewer, KoSIT-Validator | Summen stimmen nicht |
| 5. PDF und XML | gleiche Nummer, Beträge, Steuer, Fälligkeit | Sichtvergleich mit Extraktor-Übersicht | abweichender Betrag |
| 6. Inhalt | Pflichtangaben nach § 14 Abs. 4 UStG, richtiger Steuersatz | Rechnungs-Checker, eigene Prüfung | falscher Steuersatz |
Die Ebenen 1 bis 4 lassen sich automatisieren. Die Ebenen 5 und 6 brauchen zumindest stichprobenartig einen menschlichen Blick.
Schritt 1: PDF/A-3-Konformität mit veraPDF prüfen
veraPDF (öffnet in neuem Tab) ist ein quelloffener Validator für alle Teile und Konformitätsstufen von PDF/A. Es gibt ihn als Desktop-Programm und für die Kommandozeile:
verapdf --flavour 3b rechnung.pdf
Mit --flavour 3b legen Sie die Prüfstufe PDF/A-3b fest. Die Stufe b genügt für ZUGFeRD; Dateien in PDF/A-3a oder PDF/A-3u sind ebenfalls PDF/A-3.
Typische Meldungen und ihre Ursachen:
- Schrift nicht eingebettet: Das Rechnungsprogramm verwendet Standardschriften, ohne sie in die Datei aufzunehmen.
- OutputIntent fehlt: Es ist kein ICC-Farbprofil hinterlegt, das PDF/A verlangt.
- Falsche PDF/A-Kennung: In den XMP-Metadaten fehlt
pdfaid:partmit dem Wert 3. - Eingebettete Datei ohne MIME-Typ oder ohne AFRelationship: PDF/A-3 verlangt beides für jede eingebettete Datei.
veraPDF sagt nichts über die Rechnungsdaten. Ein PDF kann PDF/A-3-konform sein und trotzdem gar keine XML enthalten.
Schritt 2: Eingebettete XML, AFRelationship und XMP prüfen
Zuerst muss die richtige Datei im PDF stecken. Der Dateiname hängt von Version und Profil ab:
factur-x.xml: ZUGFeRD ab 2.1, Profile MINIMUM bis EXTENDEDxrechnung.xml: Profil XRECHNUNGzugferd-invoice.xml: ZUGFeRD 2.0
Mit unserem Werkzeug zum ZUGFeRD-XML extrahieren sehen Sie sofort, welche Anhänge das PDF enthält und wie die Rechnungs-XML heißt. Die Datei wird dabei nur in Ihrem Browser verarbeitet.
Die XML muss außerdem im Array /AF des PDF-Katalogs verknüpft sein, mit einem AFRelationship-Wert, üblicherweise Alternative. Fehlt die Verknüpfung, ist die XML nur ein beliebiger Anhang und viele Programme ignorieren sie.
In den XMP-Metadaten deklariert die Datei Profil und Dateinamen. So sieht der Block für das Profil EN 16931 aus:
<rdf:Description rdf:about=""
xmlns:fx="urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#">
<fx:DocumentType>INVOICE</fx:DocumentType>
<fx:DocumentFileName>factur-x.xml</fx:DocumentFileName>
<fx:Version>1.0</fx:Version>
<fx:ConformanceLevel>EN 16931</fx:ConformanceLevel>
</rdf:Description>
Weil fx kein vordefinierter Namensraum ist, muss das PDF zusätzlich ein PDF/A-Erweiterungsschema für diese Eigenschaften enthalten. Fehlt es, meldet schon veraPDF einen Fehler.
Das deklarierte Profil muss zum Profil in der XML passen. Dort steht es in BT-24 unter rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID:
| Profil | Wert in BT-24 |
|---|---|
| MINIMUM | urn:factur-x.eu:1p0:minimum |
| BASIC WL | urn:factur-x.eu:1p0:basicwl |
| BASIC | urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic |
| EN 16931 | urn:cen.eu:en16931:2017 |
| EXTENDED | urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended |
| XRECHNUNG | urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 |
Steht in BT-24 MINIMUM oder BASIC WL, ist die Datei umsatzsteuerlich keine E-Rechnung, auch wenn alle technischen Prüfungen bestanden sind.
Schritt 3: XML gegen das CII-Schema prüfen
Die eingebettete XML folgt der Syntax UN/CEFACT CII mit dem Wurzelelement rsm:CrossIndustryInvoice und dem Namensraum urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100. Für jedes Profil gibt es ein eigenes XSD-Schema. Häufige Schemafehler:
- Die XML ist nicht wohlgeformt, etwa wegen eines nicht geschlossenen Elements (SCHEMA-001).
- Namensraum oder Wurzelelement sind falsch (SCHEMA-002).
- Elemente stehen in falscher Reihenfolge. CII schreibt die Reihenfolge streng vor.
- Datumswerte weichen vom Format ab:
udt:DateTimeStringmitformat="102"erwartetJJJJMMTT, also zum Beispiel20260928. - Die Datei enthält Elemente, die das deklarierte Profil nicht kennt, etwa EXTENDED-Felder in einer Datei im Profil EN 16931.
Solche Fehler sind Formatfehler im Sinne des BMF-Schreibens. Die Datei gilt dann nicht als E-Rechnung.
Schritt 4: Geschäftsregeln per Schematron prüfen
Schematron-Regeln prüfen die Logik der Rechnung: Pflichtfelder, Rechenwege, Steuerkategorien und Codes. Für ZUGFeRD gelten die Regeln der EN 16931, zum Beispiel BR-CO-10 für die Summe der Positionsnettobeträge (BT-106) oder BR-CO-15 für den Gesamtbetrag inklusive Umsatzsteuer (BT-112 = BT-109 + BT-110). Im Profil XRECHNUNG kommen die deutschen Regeln der KoSIT hinzu, etwa BR-DE-15: Die Käuferreferenz BT-10 muss angegeben sein.
Für diesen Schritt können Sie unseren ZUGFeRD Validator nutzen. Laden Sie die extrahierte XML hoch. Der Viewer prüft sie mit den offiziellen EN-16931- und XRechnung-Regeln der KoSIT und erklärt jede Meldung. Alle Codes finden Sie auch in unserer Übersicht der XRechnung Fehlercodes. Wichtig bei der Auswertung: Meldungen mit dem Präfix BR-DE betreffen nur XRechnung. Prüfen Sie eine Datei im Profil EN 16931 für einen Geschäftskunden, sind diese Meldungen nicht maßgeblich. Die Regeln der EN 16931 gelten dagegen immer.
Mehr zu den häufigsten Regelverstößen und ihrer Behebung lesen Sie im Beitrag XRechnung-Fehler beheben.
Schritt 5: PDF und XML abgleichen
Automatische Validatoren vergleichen das Rechnungsbild in der Regel nicht mit der XML. Diesen Abgleich machen Sie selbst. Die Übersicht im ZUGFeRD-Extraktor zeigt die wichtigsten Werte aus der XML, die Sie neben das PDF legen können:
- BT-1 Rechnungsnummer und BT-2 Rechnungsdatum
- BT-31 Umsatzsteuer-Identifikationsnummer des Verkäufers
- BT-109 Nettobetrag, BT-110 Umsatzsteuer und BT-112 Bruttobetrag
- BT-9 Fälligkeitsdatum und BT-84 Kontonummer (IBAN)
Nach Abschnitt 14c.1 Abs. 4a UStAE kann ein Bildteil mit abweichenden Rechnungsangaben, etwa einem anderen Steuerbetrag, eine weitere Rechnung darstellen. Dann droht eine Steuerschuld nach § 14c UStG. Rundungsdifferenzen und aus Platzgründen verkürzte Leistungsbeschreibungen beanstandet die Finanzverwaltung nicht.
Schritt 6: Pflichtangaben und Inhalt prüfen
Eine bestandene Validierung beweist nicht, dass die Rechnung inhaltlich richtig ist. Das BMF nennt als Beispiel einen falschen Steuersatz: Wenn die Beträge dazu rechnerisch passen, meldet kein Validator einen Fehler. Prüfen Sie deshalb die Angaben nach § 14 Abs. 4 UStG, etwa Leistungszeitpunkt, Menge und Art der Leistung, Entgelt nach Steuersätzen und bei steuerfreien Umsätzen oder § 13b UStG den entsprechenden Hinweis. Unser Werkzeug zum Pflichtangaben prüfen geht diese Punkte mit Ihnen durch. Die Validierung ersetzt nach dem BMF ausdrücklich nicht die Pflicht des Empfängers, die Rechnung auf Vollständigkeit und Richtigkeit zu prüfen; sie unterstützt ihn dabei.
Welche Werkzeuge prüfen was?
| Werkzeug | Prüft | Prüft nicht | Form |
|---|---|---|---|
| ZUGFeRD-Extraktor (docutools.pro) | findet und extrahiert die XML, zeigt Anhänge und Rechnungsübersicht | PDF/A, Schematron | Browser |
| XRechnung Viewer (docutools.pro) | XML (CII und UBL) gegen KoSIT-Regeln, Darstellung, Fehlererklärungen | PDF/A-3, XMP | Browser, Upload der XML |
| Mustang-Validator | PDF/A über veraPDF, XML-Schema, Schematron der EN 16931 und von ZUGFeRD | Pflichtangaben im Einzelfall | Java, Kommandozeile |
| veraPDF | alle PDF/A-Stufen | Rechnungsinhalt | Desktop und Kommandozeile |
| KoSIT-Validator | XML gegen XRechnung-Konfiguration (Schema und Schematron) | PDF-Teil | Java, Kommandozeile |
Das Mustang-Projekt (öffnet in neuem Tab) steht unter der Apache-Lizenz 2.0 und prüft ein ZUGFeRD-PDF in einem Aufruf:
java -Xmx1G -Dfile.encoding=UTF-8 -jar Mustang-CLI-2.26.0.jar --no-notices --action validate --source rechnung.pdf
Den KoSIT-Validator setzen Sie für das Profil XRECHNUNG ein, und zwar auf die extrahierte xrechnung.xml, nicht auf das PDF.
Häufige Fehler und ihre Behebung
| Symptom | Ursache | Lösung |
|---|---|---|
| Keine eingebettete XML gefunden | PDF über einen PDF-Drucker erzeugt oder nachträglich bearbeitet | Datei im Rechnungsprogramm neu erzeugen, ZUGFeRD-PDFs nicht nachbearbeiten |
Anhang heißt invoice.xml o. Ä. | falsche Exporteinstellung | Dateinamen laut Profil verwenden |
| XMP-Profil passt nicht zu BT-24 | Metadaten fest hinterlegt | Profil an einer Stelle konfigurieren |
| Schrift nicht eingebettet, OutputIntent fehlt | Export ohne PDF/A-Einstellung | PDF/A-3-Export aktivieren |
| Profil MINIMUM oder BASIC WL | Buchungshilfe statt Rechnung | Profil EN 16931 verwenden |
| BR-DE-Meldungen bei Profil EN 16931 | XRechnung-Regeln mitgeprüft | im B2B unbeachtlich, sofern der Kunde keine XRechnung verlangt |
| BR-CO-10 oder BR-CO-15 | Rundung je Position weicht von der Summe ab | Summen aus den gerundeten Positionsbeträgen bilden |
Was bedeuten Prüffehler umsatzsteuerlich?
Das BMF-Schreiben vom 15.10.2025 unterscheidet drei Fehlerarten:
| Fehlerart | Beispiel | Folge |
|---|---|---|
| Formatfehler (Rn. 6a) | XML entspricht nicht der zulässigen Syntax | keine E-Rechnung, sondern sonstige Rechnung |
| Geschäftsregelfehler (Rn. 6b) | fehlende BT-10 in einer XRechnung, Steuerbetrag passt nicht zum Steuersatz | zu Angaben ohne umsatzsteuerliche Bedeutung unbeachtlich |
| Inhaltsfehler (Rn. 35a) | fehlende oder falsche Pflichtangabe nach §§ 14 Abs. 4, 14a UStG | Rechnung nicht ordnungsmäßig, Vorsteuerabzug gefährdet |
Ob ein reiner PDF/A-Mangel bei korrekter XML umsatzsteuerlich schadet, regelt das Schreiben nicht ausdrücklich. Maßgeblich für die E-Rechnung ist der strukturierte Teil. Beheben Sie PDF/A-Fehler trotzdem, denn Eingangssysteme können solche Dateien zurückweisen.
Validierungsbericht aufbewahren
Ein Unternehmer darf sich laut BMF bei Beachtung der kaufmännischen Sorgfalt auf das technische Ergebnis einer geeigneten Validierungsanwendung verlassen, bezogen auf Format und Geschäftsregeln. Als Nachweis empfiehlt das BMF, den Validierungsbericht aufzubewahren. Legen Sie ihn zur Rechnung ins Archiv, für dieselbe Frist von acht Jahren. Wie Sie E-Rechnungen und Belege ordnungsgemäß ablegen, beschreibt der Beitrag E-Rechnung archivieren.
Prüfen Sie ausgehende Rechnungen vor dem Versand und eingehende beim Empfang. Nach jedem Update Ihres Rechnungsprogramms lohnt eine Testrechnung, weil sich Ausgabeformat und Codelisten ändern können. Weitere Anleitungen zu Prüfung und Fehlermeldungen finden Sie in der Kategorie Validierung und Fehler.
Tools zu diesem Artikel
- XRechnung ViewerDeutsche E-Rechnungen parsen, validieren & reparieren mit GoBD-konformem Audit-Trail.Tool öffnen →
- ZUGFeRD / Factur-X XML-ExtraktorEingebettete E-Rechnungs-XML aus ZUGFeRD- und Factur-X-PDFs extrahieren, anzeigen und herunterladen.Tool öffnen →
- KoSIT Fehler-HubDurchsuchbare Referenz für alle XRechnung-Validierungsfehler mit Lösungsanleitungen.Tool öffnen →
Häufige Fragen
Wie kann ich eine ZUGFeRD-Rechnung kostenlos prüfen?
Für die PDF/A-3-Prüfung nutzen Sie das quelloffene veraPDF. Die eingebettete XML ziehen Sie mit dem ZUGFeRD-Extraktor von docutools.pro heraus und prüfen sie im XRechnung Viewer gegen die offiziellen Regeln der KoSIT. Eine Gesamtprüfung von PDF/A, Schema und Schematron in einem Lauf bietet der ebenfalls kostenlose Mustang-Validator als Java-Kommandozeilenprogramm.
Was ist der Unterschied zwischen veraPDF und dem Mustang-Validator?
veraPDF prüft ausschließlich, ob ein PDF der Norm PDF/A entspricht, etwa eingebettete Schriften und Farbprofile. Den Inhalt der Rechnungs-XML bewertet es nicht. Der Mustang-Validator prüft zusätzlich die eingebettete XML gegen Schema und Schematron-Regeln der EN 16931 und von ZUGFeRD. Für die PDF/A-Prüfung greift Mustang selbst auf veraPDF zurück.
Ist eine ZUGFeRD-Rechnung mit Validierungsfehlern ungültig?
Das hängt von der Fehlerart ab. Nach dem BMF-Schreiben vom 15.10.2025 macht ein Formatfehler die Datei zur sonstigen Rechnung, sie ist dann keine E-Rechnung. Geschäftsregelfehler zu Angaben ohne umsatzsteuerliche Bedeutung, etwa eine fehlende BT-10, sind unbeachtlich. Fehlen Pflichtangaben nach § 14 Abs. 4 UStG, ist die Rechnung nicht ordnungsmäßig und der Vorsteuerabzug gefährdet.
Kann ich eine ZUGFeRD-Rechnung mit dem KoSIT-Validator prüfen?
Nur den XML-Teil. Der KoSIT-Validator verarbeitet XML-Dateien, keine PDFs. Die XRechnung-Konfiguration enthält neben den XRechnung-Szenarien auch reine EN-16931-Szenarien, die zum ZUGFeRD-Profil EN 16931 passen, und prüft das Profil XRECHNUNG mit den XRechnung-Regeln. Extrahieren Sie dafür zuerst die eingebettete XML-Datei aus dem PDF. Die PDF/A-3-Konformität und die XMP-Metadaten prüfen Sie getrennt, etwa mit veraPDF oder Mustang.
Warum meldet der Validator Fehler, obwohl das PDF richtig aussieht?
Weil der Validator die eingebettete XML prüft und nicht das Rechnungsbild. PDF und XML werden in vielen Programmen getrennt erzeugt und können voneinander abweichen, etwa bei Rundungen oder fehlenden Feldern. Nach dem BMF-Schreiben vom 15.10.2025 ist bei hybriden Rechnungen der XML-Teil führend. Korrigieren Sie deshalb die Datenquelle und erzeugen Sie die Datei neu.