Auf dieser Seite
Die kurze Antwort
BR-CO-24 schlägt fehl, wenn ein cac:AllowanceCharge einer Position mit cbc:ChargeIndicator true weder cbc:AllowanceChargeReasonCode noch cbc:AllowanceChargeReason enthält. Sagen Sie, warum die Position mehr kostet: mit einem Code aus UNTDID 7161, einem Text oder beidem.
Ein fehlerhaftes Dokument meldet auch BR-44. Diese Regel aus EN 16931 führt genau dieselbe Prüfung am selben Zuschlag durch, daher erscheinen beide immer zusammen, und ein Grund behebt beide.
Was die Regel prüft
Jedes cac:AllowanceCharge direkt in einer Position, das als Zuschlag gelesen wird, wird für sich geprüft. Eine Position mit einem Rabatt und einem Aufschlag wird Element für Element beurteilt, und der Rabatt bleibt BR-CO-23 überlassen.
Eines der beiden Elemente genügt, und nur sein Vorhandensein zählt. Im Versuch bestand der Zuschlag mit nichts als cbc:AllowanceChargeReasonCode ABL alle Prüfschritte, während ein leeres <cbc:AllowanceChargeReason/> BR-CO-24 und BR-44 bestand und von PEPPOL-EN16931-R008 abgewiesen wurde.
Codes für Zuschläge stammen aus einer anderen Liste als Codes für Rabatte. Im Versuch meldete der Code 95, der einen Rabatt bezeichnet, am Zuschlag der Position BR-CL-20 und PEPPOL-EN16931-CL003.
Zuschläge direkt unter dem Wurzelelement liegen außerhalb dieser Regel. Im Versuch meldete ein Zuschlag auf Dokumentenebene, dem der Grund entfernt wurde, stattdessen BR-CO-22 und BR-38.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BG-28 | Zuschläge auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true] (cac:CreditNoteLine/cac:AllowanceCharge in a credit note) |
| BT-144 | Grund für den Zuschlag auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:AllowanceCharge/cbc:AllowanceChargeReason |
| BT-145 | Code für den Grund des Zuschlags auf Ebene der Rechnungsposition | cac:InvoiceLine/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Ein Aufschlag wie eine Mindermengen- oder Eilgebühr wird je Position von einer Preisregel hinzugefügt, die nur den Betrag speichert.
- Das Mapping der Positionszuschläge wurde vom Mapping der Positionsrabatte kopiert, und die Felder für den Grund wurden nicht übernommen.
- Der Text für den Grund ist in der Quelle optional, und wenn er leer ist, wird kein Code an seiner Stelle geschrieben.
- Eine Bereinigung kürzt den Text für den Grund auf nichts, und das Element wird dann weggelassen.
So korrigieren Sie das Dokument
- Finden Sie den Zuschlag über den Befund, zum Beispiel
cac:InvoiceLine[1]/cac:AllowanceCharge[2]. Der zweite Index zählt jedescac:AllowanceChargeder Position, den Rabatt davor eingeschlossen. - Übernehmen Sie die Art des Zuschlags aus dem Preisdatensatz, der ihn erzeugt hat.
- Entspricht die Art einem Eintrag in UNTDID 7161, schreiben Sie diesen Code in
cbc:AllowanceChargeReasonCode. Fügen Siecbc:AllowanceChargeReasonmit einer Beschreibung hinzu, oder senden Sie den Text allein, wenn kein Code passt. - Setzen Sie die Elemente für den Grund direkt nach
cbc:ChargeIndicator, vorcbc:MultiplierFactorNumericundcbc:Amount. Der Betrag des Zuschlags und der Nettobetrag der Position bleiben, wie sie sind.
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 Zuschlag von 0.01 an Position 1 hat einen Betrag und nichts, was sagt, wofür
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note, quantity, line net amount, accounting cost, order line reference and line allowance omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:Amount currencyID="GBP">0.01</cbc:Amount>
</cac:AllowanceCharge>
<!-- item and price omitted from this fragment -->
</cac:InvoiceLine>Ausschnitt der korrigierten Rechnung: Der Positionszuschlag trägt den Text Example charge als Grund
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note, quantity, line net amount, accounting cost, order line reference and line allowance omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<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>An Position 1 gibt die korrigierte Rechnung dem Zuschlag von 0.01 den Text Example charge als Grund; die fehlerhafte Rechnung hat keinen Grund daran und ist sonst gleich. Das fehlerhafte Dokument meldet BR-44 zusammen mit BR-CO-24, beide an cac:InvoiceLine[1]/cac:AllowanceCharge[2], weil die beiden Regeln eine gemeinsame Prüfung haben. Der Positionsnachlass vor dem Zuschlag behält seinen Code 95 und wird nicht gemeldet.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet
BR-44und BR-CO-24. 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
cac:InvoiceLinein einerInvoiceund fürcac:CreditNoteLinein einerCreditNote. Im Versuch meldete die Gutschriftfassung des BeispielsBR-44undBR-CO-24ancac:CreditNoteLine[1]/cac:AllowanceCharge[2]. - Beide Regeln gehören zum Prüfschritt EN 16931, und der Prüfschritt Peppol hat zu einem fehlenden Grund nichts zu sagen. Ist ein Code vorhanden, prüft Peppol ihn als
PEPPOL-EN16931-CL003gegen die Liste der Zuschläge. BR-44hat in dieser Referenz keine eigene Seite; alles hier gilt unverändert auch dafür.- Ein Zuschlag an einer Position hat keine eigene Umsatzsteuerkategorie. Er ist Teil des Nettobetrags der Position und wird mit ihr besteuert.
Verwandte Regeln
- BR-CO-23 ist die Anforderung an den Grund für Nachlässe an einer Position
- BR-CO-22 verlangt einen Grund für Zuschläge auf Dokumentenebene
- BR-CL-20 prüft einen Code für den Grund eines Zuschlags gegen die Liste UNTDID 7161
- BR-37 verlangt eine Umsatzsteuerkategorie für Zuschläge auf Dokumentenebene, ohne die Positionszuschläge auskommen
- 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-28.1: Quelle geprüft am 2026-09-28, Erklärung zuletzt aktualisiert am 2026-09-28.
Die offizielle Definition von BR-CO-24 (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.

