BR-CO-19: Abrechnungszeitraum ohne Start- und Enddatum
Die Rechnung enthält einen Abrechnungszeitraum (BG-14), aber weder Startdatum noch Enddatum. Häufigster Auslöser ist ein leer angelegtes Zeitraum-Element.
If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both.
Der Abrechnungszeitraum ist in der E-Rechnung optional. Aber wenn er einmal in der Datei steht, darf er nicht leer sein: Das ist der Kern dieser Meldung.
Was die Regel prüft
BG-14 ist die Gruppe „Abrechnungszeitraum" auf Dokumentebene (BG = Business Group, eine Feldgruppe der Norm EN 16931). Sie besteht aus dem Startdatum (BT-73) und dem Enddatum (BT-74), beide für sich genommen optional. BR-CO-19 verlangt: Sobald die Gruppe in der XML vorhanden ist, muss mindestens eines der beiden Daten gefüllt sein. Ein Zeitraum-Element ganz ohne Datum ist unzulässig.
Die Schwesterregel BR-CO-20 prüft dasselbe auf Positionsebene (BG-26), BR-29 prüft zusätzlich, dass das Enddatum nicht vor dem Startdatum liegt.
Warum sie in der Praxis fehlschlägt
Der mit Abstand häufigste Auslöser ist Software, die das Element ram:BillingSpecifiedPeriod immer anlegt und nur bei Bedarf füllt. Bleiben beide Datumsfelder in der Eingabemaske leer, steht die leere Hülle trotzdem in der Datei. Meist meldet der Validator dann gleichzeitig PEPPOL-EN16931-R008 (leere Elemente).
Zweiter Fall: Der Zeitraum wird nur als Text auf der Rechnung geführt („Leistungszeitraum: Juli 2026" in einer Freitextzeile), das strukturierte Element wird aber trotzdem erzeugt, ohne dass die Daten dorthin übernommen werden.
So behebst du den Fehler
Entscheide dich für eine von zwei Richtungen: Entweder du gibst den Abrechnungszeitraum wirklich an, dann trage Start- und Enddatum ein (bei Monatsabrechnung typisch der Erste und der Letzte des Monats). Oder du brauchst keinen Zeitraum, dann muss das Element komplett aus der XML verschwinden, nicht nur seine Kinder.
Ein einzelnes Datum genügt der Regel formal, in der Praxis solltest du bei Zeiträumen immer beide angeben, weil der Empfänger sonst raten muss. Belegschmied schreibt den Leistungszeitraum nur dann in die XML, wenn du ihn tatsächlich erfasst hast, und dann immer mit beiden Daten.
XML-Beispiel: vorher und nachher
Die Software hat den Zeitraum-Block angelegt, aber keine Daten übernommen:
<!-- verletzt BR-CO-19: BillingSpecifiedPeriod ohne Start- und Enddatum -->
<ram:ApplicableHeaderTradeSettlement>
<ram:BillingSpecifiedPeriod/>
<!-- … -->
</ram:ApplicableHeaderTradeSettlement>
Korrigiert mit Startdatum (BT-73) und Enddatum (BT-74):
<ram:ApplicableHeaderTradeSettlement>
<ram:BillingSpecifiedPeriod>
<ram:StartDateTime>
<udt:DateTimeString format="102">20260701</udt:DateTimeString>
</ram:StartDateTime>
<ram:EndDateTime>
<udt:DateTimeString format="102">20260731</udt:DateTimeString>
</ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
<!-- … -->
</ram:ApplicableHeaderTradeSettlement>
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.