Auf dieser Seite
Die kurze Antwort
BR-CL-19 schlägt fehl, wenn cbc:AllowanceChargeReasonCode bei einem Nachlass (cbc:ChargeIndicator mit false) nicht einer der 19 Codes der Teilmenge von UNTDID 5189 ist: 41, 42, 60, 62 bis 68, 70, 71, 88, 95, 100 und 102 bis 105. Ersetzen Sie den Wert durch den Code, der den Nachlass beschreibt, oder entfernen Sie den Code und beschreiben Sie den Nachlass in cbc:AllowanceChargeReason.
Der Peppol-Prüfschritt wiederholt die Prüfung als PEPPOL-EN16931-CL002, sodass ein unbekannter Code in beiden Prüfschritten fehlschlägt. Ein einfacher Rabatt ist 95; das aufgezeichnete Beispiel hatte an seiner Stelle das Wort DISCOUNT.
Was die Regel prüft
Geprüft wird jeder cbc:AllowanceChargeReasonCode in einem cac:AllowanceCharge, der als Nachlass gilt, wo auch immer er steht: auf Dokumentenebene, in einer Position und, wie der Versuch zeigte, auch innerhalb von cac:Price.
Führender und nachgestellter Leerraum wird ignoriert, und der verbleibende Wert muss genau einem gelisteten Code entsprechen. Im Versuch bestand 95 mit Leerzeichen davor und danach.
Nur die Liste für Nachlässe zählt. Ein Zuschlagscode wie CG, der bei einem Zuschlag gültig ist, wurde im Versuch beim Nachlass auf Dokumentenebene abgelehnt.
Die zulässige Menge ist eine Peppol-Teilmenge von UNTDID 5189; ein Code, der in der vollständigen UNTDID-Liste, aber nicht in der Teilmenge existiert, schlägt daher trotzdem fehl.
Ein leeres Code-Element passt zu nichts und schlägt fehl, zusammen mit PEPPOL-EN16931-R008 für das leere Element.
Der Text neben dem Code ist frei und wird nicht mit ihm verglichen. Im Versuch wurde der Code 95 neben dem Text Freight akzeptiert, weil BR-CO-05, die Prüfung auf Übereinstimmung, in diesem Release immer besteht.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-98 | Code für den Grund des Nachlasses auf Dokumentenebene | cac:AllowanceCharge/cbc:AllowanceChargeReasonCode |
| BT-140 | Code für den Grund des Nachlasses 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:
- Die Integration schreibt ihren eigenen Namen für die Rabattart, etwa
DISCOUNToderPROMO, statt eines UNTDID-Codes in das Code-Element. - Ein Zuschlagscode wird für einen Nachlass wiederverwendet, oder Codes für Nachlässe und Zuschläge teilen sich eine Nachschlagetabelle.
- Der Code stammt aus einer internen Nummerierung, die ebenfalls Zahlen verwendet, sodass ein Wert wie
1oder10plausibel aussieht, aber nicht auf der Liste steht. - Jeder Nachlass erhält einen Code, auch solche, deren Quelle keine Art des Grundes kennt, und ein Platzhalter füllt die Lücke.
So korrigieren Sie das Dokument
- Entnehmen Sie der Fundstelle des Befunds, welcher Nachlass den Code enthält: einer unter der Wurzel, einer in einer Position oder der Preisnachlass.
- Bestimmen Sie anhand des Quelldatensatzes, was der Nachlass ist, und suchen Sie den passenden Eintrag in der Teilmenge von UNTDID 5189, die Peppol für BIS Billing 3.0 veröffentlicht.
95ist Discount und100ist Special rebate. - Schreiben Sie diesen Code in
cbc:AllowanceChargeReasonCode. Ihre eigene Bezeichnung gehört, falls sie auf dem Dokument stehen soll, incbc:AllowanceChargeReason. - Passt kein Code, entfernen Sie
cbc:AllowanceChargeReasonCodeund behalten Sie den Text. Ein Nachlass nur mit Text ist gültig; einer ohne beides schlägt anBR-CO-21oderBR-CO-23fehl. - Führen Sie die Zuordnung von Ihren Rabattarten zu UNTDID-Codes als Tabelle in der Integration, getrennt von der Zuordnung für Zuschläge.
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 Nachlass auf Dokumentenebene hat das Wort DISCOUNT als Code für den Grund
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>DISCOUNT</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">1.00</cbc:Amount>
<!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>Ausschnitt der korrigierten Rechnung: Der Code für den Grund ist 95, Discount
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">1.00</cbc:Amount>
<!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>Die fehlerhafte Rechnung hat DISCOUNT im Code für den Grund des Nachlasses auf Dokumentenebene; die korrigierte hat 95, den Code aus UNTDID 5189 für Discount. Das fehlerhafte Dokument meldet außerdem PEPPOL-EN16931-CL002, die Peppol-Kopie dieser Codelisten-Prüfung, am selben Element, und die eine Korrektur behebt beide Befunde. Der Text des Grundes ist in beiden Dokumenten identisch.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CL-19 und
PEPPOL-EN16931-CL002. 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
InvoiceundCreditNotesowie für Nachlässe ancac:InvoiceLineundcac:CreditNoteLine. Im Versuch meldeteDISCOUNTbeim Nachlass der Position und beim Nachlass auf Dokumentenebene einer Gutschrift jeweils diese Regel undPEPPOL-EN16931-CL002zusammen. - Ein Code für den Grund beim Preisnachlass innerhalb von
cac:Pricewird ebenfalls geprüft, doch selbst ein gültiger Code zog dort im Versuch die WarnungenUBL-CR-633undUBL-CR-669nach sich. Einen Preisnachlass senden Sie besser ohne Code. - Zuschläge verwenden eine andere Liste, UNTDID 7161, die
BR-CL-20prüft. Welche der Listen gilt, richtet sich nachcbc:ChargeIndicator.
Verwandte Regeln
- BR-CL-20 ist die Codelisten-Prüfung für die Codes für den Grund von Zuschlägen
- BR-CO-21 verlangt überhaupt erst, dass ein Nachlass auf Dokumentenebene einen Code oder Text für den Grund hat
- BR-CO-23 verlangt dasselbe von Nachlässen in einer Position
- Alle Regeln der Referenz ansehen
- Hintergrund (auf Englisch): Understanding EN 16931 validation errors
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-24.1: Quelle geprüft am 2026-09-24, Erklärung zuletzt aktualisiert am 2026-09-24.
Die offizielle Definition von BR-CL-19 (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.

