Zum Inhalt springen

Ironfang Finance - Regelreferenz

PEPPOL-EN16931-R111: Jeden Positionszeitraum am oder vor dem Enddatum des Abrechnungszeitraums enden lassen

Hat der Abrechnungszeitraum ein Enddatum, darf kein Positionszeitraum später enden. Korrigieren Sie das Enddatum der Position oder verlängern Sie den Zeitraum des Dokuments.

Peppol BIS BillingFehler: Das Dokument ist ungültigPositionen und PreiseKernfelder

Auf dieser Seite

Die kurze Antwort

PEPPOL-EN16931-R111 schlägt fehl, wenn das cac:InvoicePeriod/cbc:EndDate einer Position nach dem cbc:EndDate des cac:InvoicePeriod auf Dokumentenebene liegt. Im aufgezeichneten Beispiel endet der Abrechnungszeitraum am 2026-08-31 und der Positionszeitraum am 2026-09-15. Korrigieren Sie das Positionsdatum, wenn es falsch ist; läuft die Position tatsächlich länger, lassen Sie den Abrechnungszeitraum am spätesten Enddatum der Positionen oder danach enden.

Der Befund sitzt am Enddatum der Position, daher wird jede Position, die über den Abrechnungszeitraum hinausläuft, einzeln gemeldet.

Was die Regel prüft

Die Regel gilt nur, wenn der Zeitraum des Dokuments ein Enddatum hat. Im Versuch bestand eine Position, die am 2026-09-15 endete, sobald das Enddatum des Dokuments entfernt war, und scheiterte weiterhin, als der Zeitraum des Dokuments ein Enddatum, aber kein Anfangsdatum hatte.

Daten werden als Kalenderdaten verglichen, und die Grenze ist eingeschlossen: Eine Position, die am 2026-08-31 endete, dem letzten Tag des Abrechnungszeitraums, bestand im Versuch.

Eine Position, die ganz nach dem Abrechnungszeitraum liegt, wird hier erfasst und nirgends sonst. Im Versuch meldete ein Positionszeitraum vom 2026-09-05 bis 2026-09-15 nur diese Regel, da die Prüfung der Anfangsdaten nur nach Positionen sucht, die zu früh beginnen.

Nichts vergleicht das Enddatum einer Position mit dem Anfangsdatum des Dokuments. Im Versuch bestand ein Positionszeitraum mit nur einem Enddatum 2026-07-20, vor dem Beginn des Abrechnungszeitraums, alle Prüfschritte.

BegriffBedeutungUBL-Element
BT-135Enddatum des Abrechnungszeitraums der Rechnungspositioncac:InvoiceLine/cac:InvoicePeriod/cbc:EndDate (cac:CreditNoteLine/cac:InvoicePeriod/cbc:EndDate in a credit note)
BT-74Enddatum des Rechnungszeitraumscac:InvoicePeriod/cbc:EndDate

Wie es in einer Integration dazu kommt

Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:

  • Eine Abonnement- oder Leistungsposition wird für ihre volle Laufzeit berechnet, während der Abrechnungszeitraum auf den Kalendermonat gesetzt ist.
  • Der Zeitraum des Dokuments wird von der ersten Position übernommen, und eine spätere Position läuft länger.
  • Das Enddatum der Position wird als Anfangsdatum plus eine Dauer berechnet, und ein Fehler um einen Tag trägt es in den nächsten Monat.
  • Eine Zeitzonenumrechnung verschiebt ein Enddatum der Position auf den folgenden Tag, über den letzten Tag des Zeitraums hinaus.

So korrigieren Sie das Dokument

  1. Nehmen Sie die im Befund genannte Position und prüfen Sie ihr Leistungsende in der Quelle.
  2. Ist das Datum falsch, korrigieren Sie es dort und schreiben Sie das korrigierte Datum in das cac:InvoicePeriod/cbc:EndDate dieser Position.
  3. Ist das Datum richtig, ist der Abrechnungszeitraum zu kurz. Setzen Sie das cac:InvoicePeriod/cbc:EndDate des Dokuments auf das späteste Enddatum der Positionen und prüfen Sie das früheste Anfangsdatum der Positionen gegen das Anfangsdatum des Dokuments, wie PEPPOL-EN16931-R110 es verlangt.
  4. Schreiben Sie beide Daten als einfache Werte YYYY-MM-DD; ein Zeitzonensuffix wird von PEPPOL-EN16931-F001 abgelehnt.

Korrigierte Rechnung prüfen

Vorher und nachher

Dies sind Ausschnitte, keine vollständigen Dokumente. Die vollständigen synthetischen Dokumente, aus denen sie stammen, sind unten verlinkt.

Ausschnitt der fehlerhaften Rechnung: Der Abrechnungszeitraum endet am 31. August, der Positionszeitraum am 15. September

<cac:InvoicePeriod>
  <cbc:StartDate>2026-08-01</cbc:StartDate>
  <cbc:EndDate>2026-08-31</cbc:EndDate>
</cac:InvoicePeriod>
<!-- parties, VAT and totals omitted from this fragment -->
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- quantity and line net amount omitted from this fragment -->
  <cac:InvoicePeriod>
    <cbc:StartDate>2026-08-01</cbc:StartDate>
    <cbc:EndDate>2026-09-15</cbc:EndDate>
  </cac:InvoicePeriod>
  <!-- item and price omitted from this fragment -->
</cac:InvoiceLine>

Ausschnitt der korrigierten Rechnung: Der Positionszeitraum endet am 15. August, innerhalb des Abrechnungszeitraums

<cac:InvoicePeriod>
  <cbc:StartDate>2026-08-01</cbc:StartDate>
  <cbc:EndDate>2026-08-31</cbc:EndDate>
</cac:InvoicePeriod>
<!-- parties, VAT and totals omitted from this fragment -->
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <!-- quantity and line net amount omitted from this fragment -->
  <cac:InvoicePeriod>
    <cbc:StartDate>2026-08-01</cbc:StartDate>
    <cbc:EndDate>2026-08-15</cbc:EndDate>
  </cac:InvoicePeriod>
  <!-- item and price omitted from this fragment -->
</cac:InvoiceLine>

Nur das Enddatum der Position unterscheidet sich: 2026-09-15 in der fehlerhaften Rechnung, 2026-08-15 in der korrigierten, gegenüber einem Abrechnungszeitraum, der in beiden am 2026-08-31 endet. Das fehlerhafte Dokument meldet nur PEPPOL-EN16931-R111. Der Prüfschritt EN 16931 hat keine Regel, die Zeiträume von Position und Dokument vergleicht: BR-30 prüft nur, dass die Position nicht vor ihrem eigenen Anfangsdatum 2026-08-01 endet, und das tut sie nicht.

Was der Validator gemeldet hat

Aufgezeichnet mit phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, der Engine hinter dem kostenlosen Validator, mit synthetischen Daten. Ein aufgezeichnetes Ergebnis ist ein Regressionsnachweis für diese Dokumente, keine Zertifizierung.

Wo die Regel gilt

  • Gilt für Invoice und CreditNote. Die Position einer Gutschrift ist cac:CreditNoteLine, ihr Zeitraum heißt aber weiterhin cac:InvoicePeriod; im Versuch mit denselben Daten meldete sie diese Regel.
  • Eine Regel von Peppol BIS, gemeldet allein vom Peppol-Prüfschritt.
  • Ein Positionszeitraum, der vor dem Abrechnungszeitraum beginnt, ist PEPPOL-EN16931-R110. Im Versuch meldete eine Position vom 2026-07-25 bis 2026-09-15 beide Regeln, eine an jedem Datum.
  • Ein Enddatum der Position mit Zeitzonensuffix wird zusätzlich von PEPPOL-EN16931-F001 gemeldet. Im Versuch brachte 2026-09-15Z beide Befunde.

Umfang und Quelle

Geschrieben für Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, angewendet auf Invoice- und CreditNote-Dokumente in UBL 2.1. Andere Profile, Syntaxen und Releases können diese Kennung anders definieren. Version des Hinweiskatalogs 2026-09-28.1: Quelle geprüft am 2026-09-28, Erklärung zuletzt aktualisiert am 2026-09-28.

Die offizielle Definition von PEPPOL-EN16931-R111 (auf Englisch) enthält den normativen Wortlaut und den Test. Diese Seite ist unsere Erklärung dazu, keine Kopie.

Die Erklärung ändert das Urteil der Engine nicht. Dass Sie diesen Befund beheben, heißt nicht, dass das Dokument jeden Prüfschritt besteht. Die Validierung bescheinigt keine rechtliche oder steuerliche Konformität und überträgt kein Dokument über Peppol.