PEPPOL-EN16931-R111: Positionszeitraum endet zu spät

Das Enddatum eines Positionszeitraums muss innerhalb des Abrechnungszeitraums der Rechnung liegen.

Regelwerk
XRechnung (KoSIT)
Syntax
UBL und CII
Betroffene Felder
–

Offizieller Regeltext

End date of line period MUST be within invoice period.

Regeltext aus dem XRechnung-Schematron in Version 2.6.0 (KoSIT), Lizenz Apache 2.0; enthalten in der XRechnung-Validatorkonfiguration 2026-08-31. Die Regel stammt aus dem Peppol-Regelwerk und ist Bestandteil des XRechnung-Schematron.

Schweregrad

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

Typische Ursachen

Leistungen, die in den Folgemonat hineinreichen, stehen in einer Rechnung mit kürzerem Abrechnungszeitraum.

So behebst du den Fehler

Den Abrechnungszeitraum erweitern oder den Positionszeitraum 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 nach dem Abrechnungszeitraum.

Falsch – ab Zeile 157
<cac:InvoicePeriod>
  <cbc:StartDate>2026-09-17</cbc:StartDate>
  <cbc:EndDate>2026-10-01</cbc:EndDate>
</cac:InvoicePeriod>
<cac:Item>
Richtig – ab Zeile 157
<cac:InvoicePeriod>
  <cbc:StartDate>2026-09-17</cbc:StartDate>
  <cbc:EndDate>2026-09-17</cbc:EndDate>
</cac:InvoicePeriod>
<cac:Item>

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

  • PEPPOL-EN16931-R111 End date of line period MUST be within invoice period. Fundstelle: /Invoice[1]/InvoiceLine[2]/InvoicePeriod[1]/EndDate[1]

Vollständige Dateien im Testkorpus: peppol-r111-positionszeitraum-endet-zu-spaet_ubl.xml (falsch) und leistungszeitraum_ubl.xml (richtig).

Beispiel in CII

Änderung gegenüber der gültigen Rechnung: Positionszeitraum endet nach dem Abrechnungszeitraum.

Falsch – ab Zeile 80
  </ram:StartDateTime>
  <ram:EndDateTime>
    <udt:DateTimeString format="102">20261001</udt:DateTimeString>
  </ram:EndDateTime>
</ram:BillingSpecifiedPeriod>
Richtig – ab Zeile 80
  </ram:StartDateTime>
  <ram:EndDateTime>
    <udt:DateTimeString format="102">20260917</udt:DateTimeString>
  </ram:EndDateTime>
</ram:BillingSpecifiedPeriod>

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

  • PEPPOL-EN16931-R111 End date of line period MUST be within invoice period. Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/IncludedSupplyChainTradeLineItem[2]/SpecifiedLineTradeSettlement[1]/BillingSpecifiedPeriod[1]/EndDateTime[1]

Vollständige Dateien im Testkorpus: peppol-r111-positionszeitraum-endet-zu-spaet_cii.xml (falsch) und leistungszeitraum_cii.xml (richtig).

Testdateien zu PEPPOL-EN16931-R111

Technische Details: Kontext und Prüfausdruck aus dem Schematron

CII

Kontext:

rsm:SupplyChainTradeTransaction[ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime]/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime

Prüfausdruck:

udt:DateTimeString <= ../../../../ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString

UBL

Kontext:

ubl-invoice:Invoice[cac:InvoicePeriod/cbc:EndDate]/cac:InvoiceLine/cac:InvoicePeriod/cbc:EndDate | ubl-creditnote:CreditNote[cac:InvoicePeriod/cbc:EndDate]/cac:CreditNoteLine/cac:InvoicePeriod/cbc:EndDate

Prüfausdruck:

xs:date(text()) <= xs:date(../../../cac:InvoicePeriod/cbc:EndDate)

Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.