Zum Inhalt springen

Ironfang Finance - Regelreferenz

PEPPOL-EN16931-R100: An jeder Position nur ein abgerechnetes Objekt referenzieren

Eine Position einer Rechnung oder Gutschrift darf höchstens eine cac:DocumentReference enthalten, die Kennung des abgerechneten Objekts. Teilen Sie eine Position auf, die mehrere Objekte abdeckt.

Peppol BIS BillingFehler: Das Dokument ist ungültigProzess und ReferenzenPositionen und Preise

Auf dieser Seite

Die kurze Antwort

PEPPOL-EN16931-R100 schlägt fehl, wenn eine cac:InvoiceLine oder cac:CreditNoteLine mehr als eine cac:DocumentReference enthält. Eine Position kann ein abgerechnetes Objekt nennen, etwa einen Zähler, ein Fahrzeug oder ein Abonnement, geben Sie daher jedem Objekt eine eigene Position.

Dieselbe Position wird im Prüfschritt EN 16931 auch als UBL-SR-52 gemeldet, das genau dieselbe Zählung vornimmt. Beide verschwinden, sobald die Position eine einzige Referenz hat.

Was die Regel prüft

Die Regel zählt die Kindelemente cac:DocumentReference jeder Position und schlägt ab dem zweiten fehl. Sie schaut nicht hinein: Im Versuch meldete eine zweite Referenz mit dem Typcode 50 statt 130 dieselben zwei Regeln wie das aufgezeichnete Beispiel.

Diese Variante brachte PEPPOL-EN16931-R101 nicht mit, die Regel, die eine Referenz an einer Position auf den Typ 130 beschränkt, weil sie erfüllt ist, sobald eine Referenz der Position 130 trägt. Mit einer einzigen Referenz ohne Typcode wurde PEPPOL-EN16931-R101 allein gemeldet.

Die Grenze gilt je Position, daher dürfen verschiedene Positionen je ein anderes Objekt nennen.

Die Kennung des abgerechneten Objekts für das ganze Dokument ist ein anderes Element mit eigener Grenze. Im Versuch meldeten zwei cac:AdditionalDocumentReference vom Typ 130 auf Wurzelebene UBL-SR-04, nicht diese Regel.

BegriffBedeutungUBL-Element
BT-128Objektkennung auf Ebene der Rechnungspositioncac:InvoiceLine/cac:DocumentReference/cbc:ID (cac:CreditNoteLine/cac:DocumentReference/cbc:ID in a credit note)

Wie es in einer Integration dazu kommt

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

  • Eine Position rechnet mehrere Zähler, Geräte oder Verträge zusammen ab, und der Export schreibt je Objekt eine Referenz.
  • Das Mapping nutzt die Dokumentreferenz der Position auch für andere Dokumente, etwa einen Lieferschein oder einen Stundenzettel, neben der Objektkennung.
  • Ein wiederholter Quelldatensatz, etwa derselbe Zähler zweimal abgelesen, erzeugt eine doppelte Referenz.

So korrigieren Sie das Dokument

  1. Finden Sie die Position über den Befund, zum Beispiel cac:InvoiceLine[1], und listen Sie die Referenzen auf, die sie trägt.
  2. Behalten Sie diejenige, die das abgerechnete Objekt kennzeichnet, mit dem cbc:DocumentTypeCode 130.
  3. Deckt die Position mehrere Objekte ab, teilen Sie sie in eine Position je Objekt auf, jede mit eigener Menge, eigenem Nettobetrag und eigener cac:DocumentReference, und berechnen Sie die Summen aus den neuen Positionen neu.
  4. Verlagern Sie Referenzen, die keine abgerechneten Objekte sind, von der Position weg: Eine rechnungsbegründende Unterlage gehört in eine cac:AdditionalDocumentReference auf Dokumentenebene.
  5. Entfernen Sie reine Dubletten.

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: Position 1 nennt zwei Zähler

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cac:DocumentReference>
    <cbc:ID>METER-001</cbc:ID>
    <cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
  </cac:DocumentReference>
  <cac:DocumentReference>
    <cbc:ID>METER-002</cbc:ID>
    <cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
  </cac:DocumentReference>
  <!-- item and price omitted from this fragment -->
</cac:InvoiceLine>

Ausschnitt der korrigierten Rechnung: Position 1 nennt einen Zähler, METER-001

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cac:DocumentReference>
    <cbc:ID>METER-001</cbc:ID>
    <cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
  </cac:DocumentReference>
  <!-- item and price omitted from this fragment -->
</cac:InvoiceLine>

Die fehlerhafte Rechnung führt an Position 1 zwei Zähler, METER-001 und METER-002, als Dokumentreferenzen; die korrigierte Rechnung behält nur METER-001 und ist sonst identisch. Zwei Befunde stehen an dieser Position: PEPPOL-EN16931-R100 im Prüfschritt Peppol und UBL-SR-52 im Prüfschritt EN 16931, das die Referenzen auf dieselbe Weise zählt. Die zweite Referenz zu entfernen behebt beide; wären tatsächlich beide Zähler abzurechnen, bräuchte jeder eine eigene Position.

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. Im Versuch meldete eine cac:CreditNoteLine mit zwei Referenzen PEPPOL-EN16931-R100 und UBL-SR-52 an dieser Position.
  • Eine Regel aus Peppol BIS, gemeldet im Prüfschritt Peppol. Ihr Gegenstück aus EN 16931, UBL-SR-52, hat in dieser Referenz keine eigene Seite.
  • Der Inhalt der einen Referenz wird anderswo geprüft: PEPPOL-EN16931-R101 verlangt den Typcode 130, und BR-CL-07 prüft ein Schema an der Kennung gegen UNTDID 1153.

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-R100 (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.