Auf dieser Seite
Die kurze Antwort
PEPPOL-EN16931-R101 schlägt fehl, wenn eine Position eine cac:DocumentReference trägt und keine ihrer Referenzen cbc:DocumentTypeCode 130 hat. Im aufgezeichneten Beispiel bezeichnet die Position den Zähler METER-0042, gibt aber keinen Typcode an. Ist die Referenz das abgerechnete Objekt, etwa ein Zähler, ein Abonnement oder ein Fahrzeug, ergänzen Sie <cbc:DocumentTypeCode>130</cbc:DocumentTypeCode> nach ihrer cbc:ID.
Handelt es sich um ein anderes Dokument, etwa einen Lieferschein oder einen Stundenzettel, hat es an der Position nichts zu suchen. Verweisen Sie stattdessen auf Dokumentenebene darauf, zum Beispiel als Referenz auf eine Versandanzeige oder als rechnungsbegründende Unterlage.
Was die Regel prüft
Die Regel läuft für jede cac:InvoiceLine und cac:CreditNoteLine. Eine Position ohne cac:DocumentReference besteht; eine Position mit einer besteht nur, wenn deren cbc:DocumentTypeCode genau 130 ist.
Jeder andere Code scheitert, ebenso ein aufgefüllter. Im Versuch meldeten 916, 50 und 130 mit einem führenden Leerzeichen jeweils diese Regel; ein leerer Code meldete sie zusammen mit PEPPOL-EN16931-R008.
Bei mehreren Referenzen an einer Position genügt dieser Regel, dass eine davon 130 hat. Im Versuch bestand eine Position mit der Zählerreferenz und einer zweiten Referenz ohne Typcode diese Regel und wurde stattdessen von PEPPOL-EN16931-R100 und UBL-SR-52 gemeldet, die eine Referenz je Position zulassen.
Ein Schema an der Kennung ersetzt den Typcode nicht. Im Versuch meldete die untypisierte Referenz diese Regel weiterhin, als ihre cbc:ID ein Attribut schemeID erhielt.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-128 | Objektkennung auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:DocumentReference/cbc:ID (cac:CreditNoteLine/cac:DocumentReference/cbc:ID in a credit note) |
| - | Dokumenttypcode einer Dokumentreferenz auf Positionsebene | cac:InvoiceLine/cac:DocumentReference/cbc:DocumentTypeCode |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Die Referenz der Position wird für den Lieferschein oder Stundenzettel hinter der Position verwendet, weil sie das einzige Referenzelement ist, das eine Position bietet.
- Das Mapping füllt die Objektkennung, aber nicht den festen Code
130, der sie begleiten muss. - Ein Dokumenttypcode, der für Referenzen auf Dokumentenebene gedacht ist, wird auf die Referenz der Position übertragen.
So korrigieren Sie das Dokument
- Fragen Sie, was die Referenz der Position bezeichnet. Ein abgerechnetes Objekt ist etwas, wofür die Position berechnet wird und das der Käufer nachverfolgt, etwa ein Zähler, ein Abonnement oder ein Fahrzeug.
- Schreiben Sie für ein abgerechnetes Objekt
130incbc:DocumentTypeCodedirekt nachcbc:ID, und ergänzen SieschemeIDan der Kennung, wenn das Objekt zu einem bekannten Kennungsschema gehört. - Entfernen Sie bei jedem anderen Dokument die Referenz der Position und verweisen Sie auf Dokumentenebene auf das Dokument:
cac:DespatchDocumentReferencefür eine Versandanzeige odercac:AdditionalDocumentReferencefür eine rechnungsbegründende Unterlage, bei Bedarf mit der dort angehängten Datei. - Behalten Sie eine einzige
cac:DocumentReferenceje Position.
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: Die Position nennt den Zähler METER-0042 ohne Dokumenttypcode
<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-0042</cbc:ID>
</cac:DocumentReference>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Ausschnitt der korrigierten Rechnung: dieselbe Referenz als abgerechnetes Objekt typisiert, Code 130
<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-0042</cbc:ID>
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
</cac:DocumentReference>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Die korrigierte Rechnung ergänzt <cbc:DocumentTypeCode>130</cbc:DocumentTypeCode> in der Referenz der Position für METER-0042; die fehlerhafte Rechnung hat nur die Kennung. Gemeldet wird nur PEPPOL-EN16931-R101, an der Position, und der Prüfschritt EN 16931 besteht: Das Schema akzeptiert eine Dokumentreferenz ohne Typcode, und keine Regel von EN 16931 verlangt einen an einer Position.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet PEPPOL-EN16931-R101. 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. Im Versuch meldete eine Gutschriftsposition mit derselben untypisierten Referenz diese Regel und bestand, sobald130ergänzt war. - Eine Regel von Peppol BIS, gemeldet nur im Peppol-Prüfschritt.
- Referenzen auf Dokumentenebene sind nicht betroffen. Im Versuch bestand ein Lieferschein, als
cac:DespatchDocumentReferenceangegeben, alle Prüfschritte. - Weitere Kinder einer Referenz auf Positionsebene bringen UBL-Warnungen. Im Versuch fügte eine Beschreibung an der typisierten Zählerreferenz die Warnung
UBL-CR-543hinzu, und ein an eine untypisierte Referenz angehängtes PDF brachteUBL-CR-544neben dieser Regel.
Verwandte Regeln
- PEPPOL-EN16931-R100 lässt höchstens eine Dokumentreferenz an einer Position zu
- BR-CL-07 prüft die Schemakennung einer Referenz auf ein abgerechnetes Objekt
- UBL-DT-07 verlangt einen Dateinamen an einem Anhang, auch an einem, der von einer Position in eine Referenz auf Dokumentenebene verschoben wurde
- PEPPOL-EN16931-R111 prüft den Positionszeitraum, der eine Zähler- oder Abonnementposition oft begleitet
- 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-R101 (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.

