·9 Min. Lesezeit·Facturwise Team

Factur-X- und ZUGFeRD-Rechnungen validieren

Factur-XZUGFeRDValidierungE-RechnungEN 16931Compliance
Factur-X- und ZUGFeRD-Rechnungen validieren

Warum Validierung vor dem Versand wichtig ist

Wenn Sie eine Factur-X- oder ZUGFeRD-Rechnung erzeugen, sieht das PDF ganz normal aus. Ihre Rechnungsnummer ist vorhanden, die Beträge stimmen, die Kundendaten sind korrekt. Aber eingebettet in dieses PDF steckt eine XML-Datei, die die Buchhaltungssoftware Ihres Kunden automatisch verarbeiten wird. Diese XML hat ihre eigenen Regeln, die nichts mit dem Aussehen des PDFs auf dem Bildschirm zu tun haben.

Eine Factur-X-Rechnung, die die Validierung nicht besteht, öffnet sich trotzdem problemlos in einem PDF-Reader. Sie wird korrekt angezeigt. Aber wenn das ERP-System oder die Kreditorensoftware Ihres Kunden versucht, sie zu importieren, schlägt die automatische Verarbeitung still fehl. In Deutschland müssen Unternehmen seit Januar 2025 strukturierte E-Rechnungen empfangen können. Die Sendepflicht folgt in Stufen ab 2027. In Frankreich ist Chorus Pro die Pflichtplattform für Rechnungen an öffentliche Auftraggeber, und fehlerhafte Factur-X-Dateien werden dort aktiv abgewiesen. Eine Ablehnung bedeutet einen verzögerten Zahlungseingang und einen Korrekturprozess, der Tage dauern kann. Kunden, die Eingangsrechnungen bereits automatisiert verarbeiten, werden eine Datei, die ihr System nicht lesen konnte, auch im B2B-Bereich nicht manuell retten. Mit der fortschreitenden Automatisierung der Rechnungsverarbeitung bedeutet eine ungültige Rechnung zu senden zunehmend, eine Rechnung zu senden, die nicht rechtzeitig bezahlt wird.

Einen Validator vor dem Versand laufen zu lassen, dauert weniger als eine Minute und beseitigt dieses Risiko vollständig.

Was ein Validator tatsächlich prüft

Die Validierung arbeitet in drei Schichten, jede spezifischer als die vorherige.

Die erste ist die Wohlgeformtheit. Das XML muss im grundlegendsten Sinne technisch valide sein: Alle Tags korrekt geöffnet und geschlossen, Namespaces deklariert, Zeichenkodierung konsistent. Diese Ebene schlägt kaum fehl, wenn Sie dedizierte Rechnungssoftware verwenden, aber sie erkennt sofort Probleme in manuell bearbeiteten Dateien.

Die zweite Schicht ist die Schema-Validierung. Factur-X und ZUGFeRD verwenden das Cross Industry Invoice (CII)-Format, das von UN/CEFACT definiert wurde. Das CII-Schema legt genau fest, welche Elemente erlaubt sind, welche Pflichtfelder sind, welche Datentypen jedes Feld akzeptiert und wie Elemente ineinander verschachtelt sind. Die Schema-Validierung vergleicht Ihr XML mit dieser Spezifikation und kennzeichnet alles, was nicht passt: ein fehlendes Pflichtfeld, ein Datum im falschen Format, ein Währungscode, der nicht in der ISO-4217-Liste existiert.

Die dritte Schicht ist die Geschäftsregel-Validierung. Der europäische Standard EN 16931 definiert rund 70 Geschäftsregeln, die über das hinausgehen, was das Schema allein erzwingen kann. Diese Regeln tragen Bezeichner wie BR-1, der besagt, dass jede Rechnung einen Spezifikationsbezeichner haben muss, und BR-CO-15, der verlangt, dass der gesamte Steuerbetrag der Summe aller einzelnen Steuerbeträge je Kategorie entspricht. Sie werden mit Schematron implementiert, einer regelbasierten Validierungssprache, die logische Prüfungen über das gesamte Dokument durchführt.

Zusätzlich dazu fügt die Factur-X-Spezifikation Regeln auf Profilebene hinzu. Wenn Sie Ihre Rechnung als EN-16931-konform deklarieren, aber Einzelpositionen weglassen, werden Sie die Profilvalidierung nicht bestehen, auch wenn die XML-Struktur technisch korrekt ist.

Welches Profil gilt für Ihre Rechnung?

Bevor Sie einen Validator starten, müssen Sie wissen, welches Factur-X-Profil Ihre Rechnung beansprucht. Das Profil ist im XML selbst deklariert, im Element GuidelineSpecifiedDocumentContextParameter. Die dort hinterlegte URI bestimmt, welchen Regelkatalog der Validator anwendet. Eine Abweichung zwischen dem deklarierten Profil und dem tatsächlichen Inhalt des XML ist deshalb bereits selbst ein Validierungsfehler.

Für die meisten Unternehmen, die Rechnungen an Geschäftskunden in Deutschland oder Frankreich stellen, ist das richtige Profil EN 16931. Es erfüllt die europäische Norm, funktioniert mit Chorus Pro und deckt den vollständigen Datensatz ab, den die Buchhaltungssysteme Ihrer Kunden erwarten. Wenn Sie nicht sicher sind, welches Profil Ihre Rechnungssoftware erzeugt, öffnen Sie das eingebettete XML und suchen Sie nach dem Guideline-Bezeichner. Enthält er en16931, verwenden Sie das richtige Profil.

Die Profile MINIMUM und BASIC WL sind bewusst abgespeckt. MINIMUM enthält weder Einzelpositionen noch Zahlungsinformationen. BASIC WL ergänzt Zahlungsdaten, hat aber ebenfalls keine Positionen. Diese Profile sind für Archivierungszwecke und vereinfachte Dokumentenübermittlung gedacht, nicht für die reguläre B2B-Rechnungsstellung. Wer einen EN-16931-Validator auf eine MINIMUM-Rechnung anwendet, wird Fehlermeldungen erhalten. Das liegt nicht daran, dass die Rechnung falsch ist, sondern daran, dass der Validator die falschen Erwartungen anlegt. Validieren Sie immer gegen das Profil, das Ihr XML tatsächlich deklariert.

So extrahieren Sie das XML aus einem Factur-X-PDF

Um das eingebettete XML zu validieren, müssen Sie zunächst darauf zugreifen. Das XML liegt innerhalb des PDF als angehängte Datei, die immer factur-x.xml heißt. Es gibt verschiedene Möglichkeiten, es zu extrahieren.

In Adobe Acrobat Reader gehen Sie zu Anzeige, dann Einblenden/Ausblenden, dann Navigationsfenster und wählen Anlagen aus. Die Datei factur-x.xml erscheint im Panel und Sie können sie direkt auf Ihren Desktop speichern.

Für einen Kommandozeilenansatz ist pdfcpu ein kostenloses Open-Source-Werkzeug, das PDF-Anhänge mit einem einzigen Befehl extrahiert und unter Windows, macOS und Linux funktioniert. Wenn Sie mit Python arbeiten, kann die pypdf-Bibliothek dasselbe programmgesteuert mit einem kurzen Skript erledigen.

Manche Validatoren akzeptieren das vollständige Factur-X-PDF und übernehmen die Extraktion automatisch. Der Facturwise-Validator funktioniert so. Sie laden das PDF hoch und er liest das eingebettete XML, ohne dass Sie manuell etwas extrahieren müssen.

Häufige Validierungsfehler und wie Sie sie beheben

Eine Handvoll Fehler macht den weitaus größten Teil aller Validierungsfehlschläge aus.

Falscher Profilbezeichner. Die Profil-URI im XML muss genau mit dem gewünschten Profil übereinstimmen. Für eine EN-16931-konforme Rechnung lautet der korrekte Wert urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:en16931. Für MINIMUM ist es urn:factur-x.eu:1p0:minimum, für BASIC WL urn:factur-x.eu:1p0:basicwl, für BASIC urn:factur-x.eu:1p0:basic. Jeder Tippfehler oder die Verwendung einer veralteten URI lässt das gesamte Dokument bei der ersten Prüfung durchfallen und kann eine Kaskade von Folgefehlern auslösen. Beheben Sie diesen Fehler immer zuerst.

Fehlende Pflichtfelder. Auf der Ebene des EN-16931-Profils müssen sowohl Verkäufer als auch Käufer über eine elektronische Adresse verfügen, typischerweise eine E-Mail-Adresse mit dem Scheme-ID "EM". Der Verkäufer muss mindestens eine Steuerkennung haben, in der Regel eine Umsatzsteuer-Identifikationsnummer. Für B2B-Rechnungen in Deutschland wird die USt-IdNr. des Käufers erwartet. Das Fehlen eines dieser Felder führt zu spezifischen Fehlern bei den Geschäftsregeln, jeweils mit einem klar lesbaren Fehlercode.

Falsche Steuerkategoriecodes. Jede Zeile und jeder Eintrag in der Steuerzusammenfassung benötigt den richtigen Kategoriecode. Standard-Umsatzsteuer ist "S". Nullsatz ist "Z". Steuerbefreit ist "E". Reverse Charge ist "AE". Innergemeinschaftliche Lieferung ist "K". Den falschen Code für Ihre Situation zu verwenden, lässt die Schematron-Regeln fehlschlagen, die den Kategoriecode mit dem angegebenen Satz, dem berechneten Betrag und dem Rechnungstyp abgleichen.

Arithmetische Inkonsistenzen. EN-16931-Geschäftsregeln prüfen, ob die Zahlen genau aufgehen. Die Summe aller Zeilenbeträge muss dem Steuerbemessungsbetrag entsprechen. Steuerbemessung plus Steuer muss dem Bruttobetrag entsprechen. Bruttobetrag minus Vorauszahlungen muss dem fälligen Betrag entsprechen. Eine Rundungsdifferenz von auch nur einem Cent zwischen einer dieser Beziehungen löst die Regel BR-CO-15 oder BR-CO-16 aus. Die meisten Rechnungssoftware-Lösungen behandeln Rundungen korrekt, aber Rechnungen, die in Tabellenkalkulationen erstellt oder manuell zusammengestellt werden, machen hier oft Fehler.

Nicht-konforme PDF/A-3-Struktur. Das PDF, das das XML umhüllt, muss der PDF/A-3b-Archivierungsnorm entsprechen. Das bedeutet: Alle Schriften müssen eingebettet sein, ein ICC-Farbprofil muss vorhanden sein, die Datei darf nicht verschlüsselt sein, und spezifische XMP-Metadaten, die sie als PDF/A identifizieren, müssen enthalten sein. Allgemeine PDF-Editoren, die die Datei nach ihrer Erzeugung verändern, können diese Konformitätskennzeichen stillschweigend entfernen. Wer die PDF-Schicht unabhängig vom XML prüfen möchte, kann veraPDF verwenden — ein kostenloser Open-Source-Validator, der ausschließlich die PDF/A-3-Konformität prüft, ohne die Rechnungsdaten zu berühren. Das ist hilfreich, wenn eine Datei die XML-Validierung besteht, aber im System des Kunden trotzdem nicht importiert werden kann.

Fehler systematisch beheben

Wenn ein Validator mehrere Fehler zurückgibt, beginnen Sie mit dem Profilbezeichner. Ein falscher Bezeichner lässt nicht nur eine Regel fehlschlagen, er kann Folgefehler im gesamten Dokument verursachen, weil der Validator einen falschen Satz von Erwartungen anwendet. Den Bezeichner zuerst zu korrigieren, beseitigt oft eine große Anzahl scheinbarer Fehler auf einen Schlag.

Danach behandeln Sie Schema-Fehler vor Geschäftsregel-Fehlschlägen. Schema-Fehler bedeuten, dass die XML-Struktur selbst fehlerhaft ist, was die Geschäftsregel-Validierung darüber hinaus unzuverlässig macht.

Gute Validatoren geben Fehlermeldungen zurück, die den Regelcode und die Position im Dokument angeben. BR-04 bedeutet, dass der Name des Käufers fehlt. BR-S-02 bedeutet, dass eine Zeile, die die Standard-Steuerkategorie verwendet, keinen Steuersatz in Prozent enthält. Der Regelcode ist Ihr Ausgangspunkt: Suchen Sie ihn in der EN-16931-Spezifikation oder der Factur-X-Dokumentation, um genau zu verstehen, was die Regel verlangt und welcher Wert erwartet wird.

Validieren Sie, bevor es Ihr Kunde tut

Der beste Zeitpunkt, ein Validierungsproblem zu erkennen, ist bevor die Rechnung Ihr System verlässt. Eine Minute für eine Prüfung kann eine verzögerte Zahlung, eine Ablehnung oder eine verwirrende Korrekturanfrage vom Finanzteam eines Kunden verhindern.

Der Facturwise-Validator akzeptiert vollständige Factur-X-PDFs und extrahiert das eingebettete XML automatisch. Er prüft alle drei Validierungsschichten und gibt klare Fehlermeldungen zurück, die die spezifische Regel und das betroffene Feld benennen. Kein Konto erforderlich.

Wenn Sie überhaupt nicht an Validierung denken möchten, ist der zuverlässigste Ansatz, Software zu verwenden, die das XML aufbaut und validiert, bevor das endgültige PDF erzeugt wird. Facturwise erzeugt EN-16931-konforme Factur-X-Rechnungen mit allen Pflichtfeldern korrekt befüllt, Steuercodes richtig angewandt und der PDF/A-3-Hülle automatisch erstellt. Jede erzeugte Rechnung besteht die Validierung von Anfang an.


Dieser Artikel dient ausschließlich Informationszwecken. Die Anforderungen an die E-Rechnung variieren je nach Land, Kundentyp und anwendbaren Vorschriften. Für Beratung, die auf Ihre Situation zugeschnitten ist, wenden Sie sich an einen qualifizierten Buchhalter oder Steuerberater.