BR-29: Abrechnungszeitraum endet vor seinem Beginn

Ist ein Abrechnungszeitraum (BG-14) angegeben, darf das Enddatum (BT-74) nicht vor dem Startdatum (BT-73) liegen.

Regelwerk
EN 16931 (CEN)
Syntax
UBL und CII
Betroffene Felder
BT-73, BT-74

Offizieller Regeltext

If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).

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

Ein Verstoß führt im Szenario „XRechnung“ des KoSIT-Validators zur Ablehnung der Rechnung.

Typische Ursachen

Vertauschte Felder oder ein falsches Datumsformat bei der Übernahme aus einer Tabelle.

So behebst du den Fehler

Start- und Enddatum prüfen und in der richtigen Reihenfolge übermitteln.

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: Abrechnungszeitraum endet vor seinem Beginn (BT-73/BT-74).

Falsch – ab Zeile 10
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>TEST-REF-2026-0815</cbc:BuyerReference>
<cac:InvoicePeriod>
  <cbc:StartDate>2026-09-30</cbc:StartDate>
  <cbc:EndDate>2026-09-01</cbc:EndDate>
</cac:InvoicePeriod>
<cac:OrderReference>
  <cbc:ID>BEST-2026-0042</cbc:ID>
Richtig – ab Zeile 10 · ohne die markierten Zeilen
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>TEST-REF-2026-0815</cbc:BuyerReference>
<cac:OrderReference>
  <cbc:ID>BEST-2026-0042</cbc:ID>

Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:

  • BR-29 If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73). Fundstelle: /Invoice[1]/InvoicePeriod[1]

Vollständige Dateien im Testkorpus: br-29-zeitraum-ende-vor-beginn_ubl.xml (falsch) und standard_ubl.xml (richtig).

Beispiel in CII

Änderung gegenüber der gültigen Rechnung: Abrechnungszeitraum endet vor seinem Beginn (BT-73/BT-74).

Falsch – ab Zeile 197
  <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:BillingSpecifiedPeriod>
  <ram:StartDateTime>
    <udt:DateTimeString format="102">20260930</udt:DateTimeString>
  </ram:StartDateTime>
  <ram:EndDateTime>
    <udt:DateTimeString format="102">20260901</udt:DateTimeString>
  </ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
<ram:SpecifiedTradePaymentTerms>
  <ram:Description>Zahlbar innerhalb von 14 Tagen ohne Abzug.</ram:Description>
Richtig – ab Zeile 197 · ohne die markierten Zeilen
  <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradePaymentTerms>
  <ram:Description>Zahlbar innerhalb von 14 Tagen ohne Abzug.</ram:Description>

Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:

  • BR-29 If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73). Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/ApplicableHeaderTradeSettlement[1]/BillingSpecifiedPeriod[1]

Vollständige Dateien im Testkorpus: br-29-zeitraum-ende-vor-beginn_cii.xml (falsch) und standard_cii.xml (richtig).

Testdateien zu BR-29

Technische Details: Kontext und Prüfausdruck aus dem Schematron

CII

Kontext:

//ram:ApplicableHeaderTradeSettlement/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: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.