Auf dieser Seite
Die kurze Antwort
PEPPOL-EN16931-CL003 schlägt fehl, wenn cbc:AllowanceChargeReasonCode in einem Zuschlag, dessen cbc:ChargeIndicator genau true lautet, nicht auf der Peppol-Liste zu UNTDID 7161 steht. Der aufgezeichnete Zuschlag einer Position war mit DEL codiert; der Code für einen Lieferzuschlag ist DL.
DEL wirkt glaubwürdig, weil es ein echter Code auf einer anderen Liste ist: den Betreffcodes für Bemerkungen aus UNTDID 4451, die BR-CL-08 prüft. Gründe für Zuschläge stammen nur aus UNTDID 7161, und BR-CL-20 wendet dieselbe Liste im Prüfschritt EN 16931 an, daher melden beide Regeln den Wert.
Was die Regel prüft
Nur Zuschläge, deren Indikator der exakte Text true ist, werden erfasst. Im Versuch hielten true mit Leerzeichen und 1, für das Schema beide gültige boolesche Werte, einen Code DEL von dieser Regel fern: BR-CL-20 meldete ihn in beiden Fällen, und PEPPOL-EN16931-R043 fügte für 1 einen Befund hinzu.
Der Code wird um Leerzeichen bereinigt und dann unter Beachtung der Groß- und Kleinschreibung mit den 178 Codes der Liste verglichen, die denen von BR-CL-20 entsprechen.
Zuschläge auf Dokumentenebene und in Positionen werden beide erfasst. Im aufgezeichneten Beispiel zeigt der Befund auf cac:InvoiceLine[1]/cac:AllowanceCharge[2]/cbc:AllowanceChargeReasonCode[1].
Der Code wird nicht mit dem Text des Zuschlags verglichen: In der korrigierten Rechnung bestand DL neben dem Text Example charge.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-105 | Code für den Grund des Zuschlags auf Dokumentenebene | cac:AllowanceCharge/cbc:AllowanceChargeReasonCode |
| BT-145 | Code für den Grund des Zuschlags auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode (cac:CreditNoteLine 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:
- Ein Code aus einer anderen UN/EDIFACT-Liste wird verwendet, weil er nach der Leistung klingt, etwa
DELaus der Liste der Betreffcodes für einen Lieferzuschlag. - Abkürzungen aus dem Quellsystem, etwa
FRTfür Fracht, werden als Codes geschrieben. - Ein Code für Nachlässe wird bei einem Zuschlag gesendet, weil eine Zuordnung beiden dient.
- Codes werden in Kleinbuchstaben gehalten und unverändert geschrieben.
So korrigieren Sie das Dokument
- Ermitteln Sie den Zuschlag anhand der Fundstelle: ein Zuschlag auf Dokumentenebene unter dem Wurzelelement oder ein Zuschlag in einer Position.
- Suchen Sie die Leistung in der Peppol-Liste zu UNTDID 7161:
DLDelivery,FCFreight service,PCPacking,ABLAdditional packaging. - Schreiben Sie den Code in Großbuchstaben in
cbc:AllowanceChargeReasonCode, und schreiben Siecbc:ChargeIndicatoralstrue, damit beide Prüfschritte den Zuschlag sehen. - Führen Sie die Codes für Zuschläge in einer eigenen Tabelle, getrennt von den Codes für Nachlässe und den Betreffcodes für Bemerkungen.
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 Code für den Grund des Positionszuschlags ist DEL
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note, quantity, amounts, order line reference and line allowance omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>DEL</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example charge</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">0.01</cbc:Amount>
</cac:AllowanceCharge>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Ausschnitt der korrigierten Rechnung: der Code für den Grund ist DL, Delivery
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note, quantity, amounts, order line reference and line allowance omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>DL</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example charge</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">0.01</cbc:Amount>
</cac:AllowanceCharge>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Nur der Code für den Grund des Positionszuschlags unterscheidet sich: DEL in der fehlerhaften Rechnung, DL in der korrigierten. Das fehlerhafte Dokument meldet außerdem BR-CL-20, das dieselbe Liste UNTDID 7161 im Prüfschritt EN 16931 anwendet, am selben Element.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CL-20 und PEPPOL-EN16931-CL003. 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;DELbeim Zuschlag einer Gutschriftposition meldete im Versuch diese Regel undBR-CL-20. - Eine Regel aus Peppol BIS Billing 3.0. Nachlässe werden stattdessen von
PEPPOL-EN16931-CL002gegen UNTDID 5189 geprüft. - Ob ein Zuschlag überhaupt einen Grund braucht, wird anderswo entschieden: von
BR-CO-22für Zuschläge auf Dokumentenebene und vonBR-CO-24für Zuschläge in Positionen.
Verwandte Regeln
- BR-CL-20 prüft Codes für den Grund eines Zuschlags gegen dieselbe Liste im Prüfschritt EN 16931
- PEPPOL-EN16931-CL002 ist die Peppol-Prüfung der Codes für den Grund eines Nachlasses
- BR-CL-08 ist der Ort, an den Betreffcodes aus UNTDID 4451 wie DEL gehören: die Bemerkung zur Rechnung
- PEPPOL-EN16931-R043 lehnt einen als 1 oder 0 geschriebenen Indikator ab
- 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-CL003 (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.

