PEPPOL-EN16931-R008: Leere Elemente in der Rechnung
Die Rechnung enthält ein XML-Element ohne Inhalt. Der Fehler kommt fast nie vom Nutzer, sondern vom erzeugenden Programm.
Document MUST not contain empty elements.
Diese Meldung verwirrt, weil sie nicht sagt, welches Feld gemeint ist, und weil der Auslöser meist gar nicht in deinen Eingaben liegt.
Was die Regel verlangt
Die XML-Datei darf keine Elemente enthalten, die zwar vorhanden, aber leer sind. Entweder ein Feld hat einen Inhalt, oder es fehlt ganz. Ein Element wie <ram:SpecifiedTradePaymentTerms/> ohne Inhalt ist unzulässig.
Warum sie in der Praxis bricht
Der Grund ist fast immer technisch. Programme, die E-Rechnungen erzeugen, legen die Struktur der XML oft vollständig an und füllen sie anschließend. Bleibt ein optionales Feld ungefüllt, steht die leere Hülle trotzdem in der Datei. Für einen Menschen ist das unsichtbar, für den Validator ein Verstoß.
Typischer Auslöser bei ZUGFeRD ist der Block für Zahlungsbedingungen: Er wird angelegt, weil eine Zahlungsangabe erwartet wird, bleibt aber leer, wenn weder Fälligkeitsdatum noch Zahlungsbedingung gesetzt sind. Dann meldet der Validator meist beides gleichzeitig, R008 und BR-CO-25.
Die Regel wird bei manchen Prüfprofilen als Warnung geführt, bei anderen als Fehler. Bei der XRechnung solltest du sie in jedem Fall bereinigen.
Wie du den Fehler behebst
Wenn du die Rechnung über Belegschmied erzeugst, ist der Fall abgedeckt: Leere Elemente werden nach der Generierung automatisch entfernt, bevor die Datei validiert und versendet wird.
Stammt die Datei aus einer anderen Software, ist die Ursache in aller Regel ein nicht gefülltes Pflichtfeld. Der praktikable Weg: Füll die Angabe, die inhaltlich fehlt, meist ist es die Zahlungsbedingung. Damit verschwindet die leere Hülle, weil sie einen Inhalt bekommt, und beide Meldungen sind zugleich erledigt.
Rechnung selbst prüfen
Lade deine Datei hoch und sieh in Sekunden, welche Regeln sie besteht und welche nicht. Kostenlos, ohne Anmeldung, nichts wird gespeichert.