Nordlet

← Blog

EN 16931 Compliance: Peppol, Factur-X und ZUGFeRD im offiziellen Regeltest

Wir haben die von Nordlet erzeugten Rechnungsdateien anhand der offiziellen EN 16931-Validierungsregeln geprüft. Die Peppol- und die rumänischen Dateien bestehen den Test. Die Factur-X-Dateien verletzen zwei Regeln, und dieser Artikel nennt sie beim Namen.

Nordlet Team · · 3 Min. Lesezeit

EN 16931 ist die europäische Norm für den Inhalt einer elektronischen Rechnung. Sie definiert die Geschäftsdaten (Business Terms), die eine Rechnung enthalten muss (Verkäufer, Käufer, Rechnungspositionen, Mehrwertsteueraufschlüsselung, Summen), sowie die Geschäftsregeln, die diese Daten erfüllen müssen, wie zum Beispiel, dass sich die Mehrwertsteueraufschlüsselung auf den Rechnungsgesamtwert addiert. Die Norm kann in zwei XML-Formaten dargestellt werden: UBL 2.1 und UN/CEFACT Cross Industry Invoice (CII).

Die meisten europäischen E-Rechnungsformate basieren auf EN 16931:

  • Peppol BIS Billing 3.0 ist EN 16931 als UBL mit zusätzlichen Peppol-Regeln.
  • Rumänische e-Factura (CIUS-RO) ist EN 16931 als UBL mit zusätzlichen rumänischen Regeln.
  • Factur-X (Frankreich) und ZUGFeRD 2.3 (Deutschland) übertragen EN 16931 als CII. Im Profil „EN 16931“, das von Nordlet geschrieben wird, verwenden beide Formate dasselbe XML.

Wenn eine Rechnung gegen eine EN 16931-Regel verstößt, verstößt sie gleichzeitig gegen jedes darauf aufbauende Format.

Wie wir geprüft haben

Die Europäische Kommission verweist auf die Validierungsregeln, die vom technischen Ausschuss für elektronische Rechnungsstellung von CEN (CEN/TC 434) auf GitHub veröffentlicht wurden. Wir haben die neueste Version 1.3.17 vom 12. Oktober 2026 sowohl für UBL als auch für CII verwendet. Die Regeln sind in Schematron verfasst und nach XSLT kompiliert; wir haben sie mit der XSLT-Engine Saxon-HE 12.5 ausgeführt.

Die Rechnungsdateien wurden vom aktuellen Programmcode von Nordlet anhand von Beispieldaten erstellt. Der Verkäufer ist ein litauisches Unternehmen; die Käufer sind ein litauisches Unternehmen, ein deutsches Unternehmen und im Fall des Peppol-Exports ein US-Unternehmen. Die Musterrechnungen enthalten eine Position mit 21 % MwSt. und eine Position mit 0 % MwSt. samt Befreiungsvermerk.

Ergebnisse

Was Nordlet schreibt Geprüfte Dateien Ergebnis
Peppol BIS Billing 3.0 (UBL) 7: inländische Rechnung, Gutschrift, innergemeinschaftliche Lieferung, Export, Steuerschuldnerschaft des Leistungsempfängers (Reverse Charge), Kleinunternehmer (Verkäufer nicht für MwSt. registriert), Rechnung in USD mit Rabatt Alle bestanden: 0 Fehler, 0 Warnungen
Rumänische e-Factura (UBL, CIUS-RO) 4: inländische Rechnung, Gutschrift, innergemeinschaftliche Lieferung, Rechnung in USD mit Rabatt Alle bestanden
Factur-X / ZUGFeRD (CII, Profil EN 16931) 4: inländische Rechnung, Gutschrift, innergemeinschaftliche Lieferung, Rechnung in USD mit Rabatt Alle 4 fehlerhaft, jeweils 1 Fehler

Die zwei Regeln, die von den Factur-X-Dateien verletzt werden

BR-Z-10: Eine mit 0 % versteuerte Position darf keinen Befreiungsgrund enthalten

EN 16931 unterscheidet zwischen Mehrwertsteuerkategorien für einen Steuersatz von 0 % („Z“, Zero Rated) und steuerfreien Umsätzen („E“, Exempt). Nur steuerfreie Umsätze erfordern die Angabe eines Grundes. Die Regel BR-Z-10 besagt, dass eine Mehrwertsteueraufschlüsselung der Kategorie „Z“ keinen Code für den Befreiungsgrund (BT-121) oder Text für den Befreiungsgrund (BT-120) enthalten darf.

Der Factur-X-Generator schreibt den Text „Taux zéro“ in jede Aufschlüsselung mit 0 % Steuersatz, weshalb drei der vier Dateien fehlschlagen. Zudem ignoriert er den auf Positionsebene erfassten Befreiungsvermerk. Der Peppol-Generator verarbeitet dieselbe Position korrekt: Wenn eine Position mit 0 % einen Befreiungsvermerk aufweist, wird sie als steuerfrei („E“) ausgewiesen und der Vermerk als Grund verwendet.

BR-IC-12: Eine innergemeinschaftliche Lieferung muss das Lieferland angeben

Die Regel BR-IC-12 besagt, dass bei einer Mehrwertsteueraufschlüsselung der Kategorie „K“ (innergemeinschaftliche Lieferung) der Ländercode für den Lieferort (BT-80) nicht leer sein darf. Das Lieferland belegt, dass die Waren das Land des Verkäufers verlassen haben.

Der Factur-X-Generator schreibt kein Lieferland, weshalb die innergemeinschaftliche Datei fehlschlägt. Der Peppol-Generator schreibt für diese Umsätze das Land des Käufers als Lieferland.

Was diese Prüfung nicht abdeckt

  • XML-Schema. Wir haben ausschließlich die Geschäftsregeln geprüft, nicht jedoch die UBL- und CII-Schemaprüfungen (XSD).
  • Felder, die von Nordlet nicht geschrieben werden. Regeln zu Datenfeldern, die in den Dateien nicht enthalten sind, wurden nicht ausgeführt. Beispiele hierfür sind Aufschläge auf Dokumentebene, im Voraus bezahlte Beträge, der Abrechnungszeitraum sowie Bestellreferenzen.
  • Nationale Regeln zusätzlich zu EN 16931. Wir haben weder die Regeln der französischen E-Invoicing-Reform noch die deutschen XRechnung-Regeln überprüft. Die Peppol-spezifischen Regeln werden durch ein separates Nordlet-Skript geprüft, das die Regelsätze von OpenPeppol verwendet.
  • Der PDF-Teil von Factur-X. Eine Factur-X-Rechnung ist eine PDF/A-3-Datei mit angehängtem XML. Die Prüfung erstreckt sich ausschließlich auf das XML.