BR-30: Positionszeitraum endet vor seinem Beginn
Ist für eine Position ein Zeitraum (BG-26) angegeben, darf das Enddatum (BT-135) nicht vor dem Startdatum (BT-134) liegen.
- Regelwerk
- EN 16931 (CEN)
- Syntax
- UBL und CII
- Betroffene Felder
- BT-134, BT-135
Offizieller Regeltext
If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).
Regeltext aus den Validierungsartefakten zu EN 16931 in Version 1.3.16 (CEN/TC 434, veröffentlicht von ConnectingEurope), Lizenz EUPL 1.2; enthalten in der XRechnung-Validatorkonfiguration 2026-08-31.
Schweregrad
- UBL-Rechnung: Fehler
- UBL-Gutschrift: Fehler
- CII: Fehler
Ein Verstoß führt im Szenario „XRechnung“ des KoSIT-Validators zur Ablehnung der Rechnung.
Typische Ursachen
Vertauschte Datumsfelder oder Tippfehler bei der Erfassung.
So behebst du den Fehler
Start- und Enddatum der Position korrigieren.
Geprüftes Beispiel: falsch und richtig
Die Auszüge stammen aus vollständigen, synthetischen Rechnungen des E-Rechnungs-Testkorpus. Geänderte Zeilen sind hervorgehoben. Beide Dateien werden in den automatischen Tests mit dem KoSIT-Validator geprüft.
Beispiel in UBL
Änderung gegenüber der gültigen Rechnung: Positionszeitraum endet vor seinem Beginn (BT-134/BT-135).
<cbc:LineExtensionAmount currencyID="EUR">234.00</cbc:LineExtensionAmount>
<cac:InvoicePeriod>
<cbc:StartDate>2026-09-18</cbc:StartDate>
<cbc:EndDate>2026-09-17</cbc:EndDate>
</cac:InvoicePeriod><cbc:LineExtensionAmount currencyID="EUR">234.00</cbc:LineExtensionAmount>
<cac:InvoicePeriod>
<cbc:StartDate>2026-09-17</cbc:StartDate>
<cbc:EndDate>2026-09-17</cbc:EndDate>
</cac:InvoicePeriod>Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:
Vollständige Dateien im Testkorpus: br-30-positionszeitraum-ende-vor-beginn_ubl.xml (falsch) und leistungszeitraum_ubl.xml (richtig).
Beispiel in CII
Änderung gegenüber der gültigen Rechnung: Positionszeitraum endet vor seinem Beginn (BT-134/BT-135).
<ram:BillingSpecifiedPeriod>
<ram:StartDateTime>
<udt:DateTimeString format="102">20260918</udt:DateTimeString>
</ram:StartDateTime>
<ram:EndDateTime><ram:BillingSpecifiedPeriod>
<ram:StartDateTime>
<udt:DateTimeString format="102">20260917</udt:DateTimeString>
</ram:StartDateTime>
<ram:EndDateTime>Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:
Vollständige Dateien im Testkorpus: br-30-positionszeitraum-ende-vor-beginn_cii.xml (falsch) und leistungszeitraum_cii.xml (richtig).
Testdateien zu BR-30
- br-30-positionszeitraum-ende-vor-beginn_ubl.xml – Positionszeitraum endet vor seinem Beginn (BT-134/BT-135)
- br-30-positionszeitraum-ende-vor-beginn_cii.xml – Positionszeitraum endet vor seinem Beginn (BT-134/BT-135)
Technische Details: Kontext und Prüfausdruck aus dem Schematron
CII
Kontext:
//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod
Prüfausdruck:
(ram:EndDateTime/udt:DateTimeString[@format = '102']) >= (ram:StartDateTime/udt:DateTimeString[@format = '102']) or not (ram:EndDateTime) or not (ram:StartDateTime)
UBL
Kontext:
cac:InvoiceLine/cac:InvoicePeriod | cac:CreditNoteLine/cac:InvoicePeriod
Prüfausdruck:
(exists(cbc:EndDate) and exists(cbc:StartDate) and xs:date(cbc:EndDate) >= xs:date(cbc:StartDate)) or not(exists(cbc:StartDate)) or not(exists(cbc:EndDate))
Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.