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.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-135 | Enddatum des Abrechnungszeitraums der Rechnungsposition | cac:InvoiceLine/cac:InvoicePeriod/cbc:EndDate (cac:CreditNoteLine/cac:InvoicePeriod/cbc:EndDate in a credit note) |
| BT-74 | Enddatum des Rechnungszeitraums | cac: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
- Nehmen Sie die im Befund genannte Position und prüfen Sie ihr Leistungsende in der Quelle.
- Ist das Datum falsch, korrigieren Sie es dort und schreiben Sie das korrigierte Datum in das
cac:InvoicePeriod/cbc:EndDatedieser Position. - Ist das Datum richtig, ist der Abrechnungszeitraum zu kurz. Setzen Sie das
cac:InvoicePeriod/cbc:EndDatedes Dokuments auf das späteste Enddatum der Positionen und prüfen Sie das früheste Anfangsdatum der Positionen gegen das Anfangsdatum des Dokuments, wiePEPPOL-EN16931-R110es verlangt. - Schreiben Sie beide Daten als einfache Werte
YYYY-MM-DD; ein Zeitzonensuffix wird vonPEPPOL-EN16931-F001abgelehnt.
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
- Die fehlerhafte Rechnung meldet PEPPOL-EN16931-R111. Das korrigierte Dokument besteht jeden Prüfschritt ohne Befunde.Fehlerhaftes XML herunterladenKorrigiertes XML herunterladen
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
InvoiceundCreditNote. Die Position einer Gutschrift istcac:CreditNoteLine, ihr Zeitraum heißt aber weiterhincac: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-F001gemeldet. Im Versuch brachte2026-09-15Zbeide Befunde.
Verwandte Regeln
- PEPPOL-EN16931-R110 ist das Gegenstück für Anfangsdaten, für Positionen, die vor dem Abrechnungszeitraum beginnen
- BR-30 prüft, dass ein Positionszeitraum nicht vor seinem Beginn endet
- BR-29 prüft dieselbe Reihenfolge der Daten im Abrechnungszeitraum auf Dokumentenebene
- Alle Regeln der Referenz ansehen
- Hintergrund (auf Englisch): How Peppol invoice validation actually works
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.

