BR-CO-20EN 16931

BR-CO-20: Positions-Leistungszeitraum ohne Start- und Enddatum

Eine Rechnungsposition enthält einen Leistungszeitraum (BG-26), aber weder Startdatum noch Enddatum. Meist hat die Software das Zeitraum-Element leer angelegt.

Regeltext im Prüfregelwerk

If Invoice line period (BG-26) is used, the Invoice line period start date (BT-134) or the Invoice line period end date (BT-135) shall be filled, or both.

BG-26BT-134BT-135

Das ist das Positions-Gegenstück zu BR-CO-19: Ein Leistungszeitraum in einer einzelnen Rechnungszeile darf existieren oder fehlen, aber nicht leer sein.

Was die Regel prüft

Jede Rechnungsposition kann einen eigenen Leistungszeitraum tragen, die Gruppe BG-26 (BG = Business Group, eine Feldgruppe der Norm EN 16931). Sie besteht aus Startdatum (BT-134) und Enddatum (BT-135). BR-CO-20 verlangt: Steht die Gruppe in der Position, muss mindestens eines der beiden Daten gefüllt sein.

Nützlich ist der Positions-Zeitraum vor allem, wenn Zeilen unterschiedliche Zeiträume abdecken, etwa ein Wartungsvertrag für Q2 und eine Reparatur vom 3. Juli auf derselben Rechnung. Gilt für alle Positionen derselbe Zeitraum, gehört er auf Dokumentebene (BG-14, geprüft von BR-CO-19).

Warum sie in der Praxis fehlschlägt

Der typische Auslöser ist derselbe wie bei BR-CO-19, nur eine Ebene tiefer: Die Software legt ram:BillingSpecifiedPeriod in jeder Position an und füllt es nur, wenn der Nutzer Daten eingibt. Bei Positionen ohne Zeitraum bleibt die leere Hülle stehen. Weil das pro Zeile passiert, meldet der Validator den Fehler dann oft mehrfach, einmal je Position.

Zweiter Fall: Beim Übertragen aus einem Vorsystem (Auftrag, Lieferschein) wird die Zeitraum-Struktur mitkopiert, die Datumswerte gehen beim Mapping aber verloren.

So behebst du den Fehler

Prüfe für jede gemeldete Position: Soll sie einen Leistungszeitraum haben? Dann Start- und Enddatum eintragen. Wenn nicht, muss das komplette Zeitraum-Element aus der Position entfernt werden, nicht nur die Datumsfelder.

Beachte zusätzlich die PEPPOL-Regeln R110 und R111: Wenn die Rechnung auch einen Zeitraum auf Dokumentebene hat, müssen die Positions-Zeiträume innerhalb dieses Rahmens liegen.

XML-Beispiel: vorher und nachher

Eine Position mit leerem Zeitraum-Element:

<!-- verletzt BR-CO-20: BillingSpecifiedPeriod in der Position ohne Datum -->
<ram:IncludedSupplyChainTradeLineItem>
  <!-- … -->
  <ram:SpecifiedLineTradeSettlement>
    <ram:BillingSpecifiedPeriod/>
    <!-- … -->
  </ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>

Korrigiert mit Startdatum (BT-134) und Enddatum (BT-135):

<ram:IncludedSupplyChainTradeLineItem>
  <!-- … -->
  <ram:SpecifiedLineTradeSettlement>
    <ram:BillingSpecifiedPeriod>
      <ram:StartDateTime>
        <udt:DateTimeString format="102">20260401</udt:DateTimeString>
      </ram:StartDateTime>
      <ram:EndDateTime>
        <udt:DateTimeString format="102">20260630</udt:DateTimeString>
      </ram:EndDateTime>
    </ram:BillingSpecifiedPeriod>
    <!-- … -->
  </ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>

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.

Regeln, die oft zusammen auftreten

← Alle Fehlermeldungen im Überblick