Auf dieser Seite
Die kurze Antwort
BR-CL-18 schlägt fehl, wenn die cbc:ID in der cac:ClassifiedTaxCategory des Artikels einer Position außerhalb der zulässigen Codes der Umsatzsteuerkategorie liegt. Ersetzen Sie sie durch den Code der Kategorie, in der die Position tatsächlich besteuert wurde; im aufgezeichneten Beispiel steht in der Position SR, und der Code für den Normalsatz ist S.
Solange die Position einen unbekannten Code trägt, gehört sie zu keiner Kategorie; die Aufschlüsselung, die sie summieren sollte, passt daher nicht mehr, und die Kategorieregeln melden das ebenfalls.
Was die Regel prüft
Die Regel läuft auf jeder cbc:ID innerhalb einer cac:ClassifiedTaxCategory, die in diesen Dokumenten zum Artikel jeder cac:InvoiceLine oder cac:CreditNoteLine gehört. Aufschlüsselungen sowie Nachlässe und Zuschläge auf Dokumentenebene fallen stattdessen unter BR-CL-17.
Sie akzeptiert dieselben zehn Codes wie die Regel für die Aufschlüsselung: S, Z, E, AE, K, G, O, L, M und B. Umgebende Leerzeichen werden entfernt, aber der Vergleich unterscheidet Groß- und Kleinschreibung, und ein kleines s in der Position wurde im Versuch abgelehnt.
Eine leere cbc:ID in der Position schlägt hier fehl, nicht unter BR-CO-04, das nur verlangt, dass das Element vorhanden ist. Im Versuch brachte sie zusätzlich PEPPOL-EN16931-R008 mit sich.
Ein gelisteter Code wird auch dann akzeptiert, wenn er die falsche Kategorie für den Artikel ist. Die Übereinstimmung mit der Aufschlüsselung prüfen die Kategorieregeln, nicht diese Regel.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-151 | Code der Umsatzsteuerkategorie des in Rechnung gestellten Artikels | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/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:
- Der Steuercode des Artikels aus den Produktstammdaten, etwa
SRoderZR, wird ohne Übersetzung in die Position kopiert. - Die Aufschlüsselung wird über eine Übersetzungstabelle aufgebaut, die Positionen aber nicht, sodass beide unterschiedliche Codesätze tragen.
- Eine Beschreibung wie
Standardoder ein Steuersatz wie20wird in das Codefeld geschrieben. - Eine Bibliothek oder Vorlage erzeugt den Code in Kleinbuchstaben.
So korrigieren Sie das Dokument
- Finden Sie über die Fundstelle des Befunds die Position und ihren aktuellen Code.
- Übersetzen Sie ihn in den zulässigen Code der Kategorie, in der der Artikel besteuert wurde, mit derselben Zuordnung wie für die Aufschlüsselung.
- Stellen Sie sicher, dass die Position nun in eine Aufschlüsselung mit derselben Kategorie und demselben Steuersatz fällt, sodass deren Bemessungsgrundlage zu ihren Positionen passt.
- Weisen Sie nicht zugeordnete Steuercodes von Artikeln beim Export zurück.
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 ist mit SR codiert, ihre Aufschlüsselung mit S
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>SR</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<!-- price omitted from this fragment -->
</cac:InvoiceLine>Ausschnitt der korrigierten Rechnung: Die Position verwendet den Code S für den Normalsatz
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<!-- price omitted from this fragment -->
</cac:InvoiceLine>Die fehlerhafte Rechnung hat SR in der cac:ClassifiedTaxCategory/cbc:ID des Artikels der Position; die korrigierte hat S, und sonst unterscheidet sich nichts. Zwei Regeln zur Aufschlüsselung lösen ebenfalls aus, denn mit SR in der einzigen Position ist im Dokument nichts zum Normalsatz besteuert, während die Aufschlüsselung es weiterhin ist. BR-S-01 beanstandet eine Aufschlüsselung zum Normalsatz ohne Position, Nachlass oder Zuschlag zum Normalsatz dahinter. BR-S-08 findet keine Position zum Normalsatz mit 20 %, die die Bemessungsgrundlage von 25.00 erklärt. Die Korrektur des Codes behebt alle drei Befunde.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CL-18, BR-S-01 und BR-S-08. 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 UBL
InvoiceundCreditNote. In einer Gutschrift ist die Positioncac:CreditNoteLine; mitSRin ihrer Position meldete die Gutschrift im Versuch dieselben drei Regeln. - Welche Begleitbefunde erscheinen, hängt von der Kategorie ab, die die Position hätte haben sollen. Im Versuch brachte
ZRin der Position zum Nullsatz einer gemischten Rechnung stattdessenBR-Z-08mit sich. - Trägt die Aufschlüsselung denselben falschen Code, schweigen die Kategorieregeln, und stattdessen wird
BR-CL-17neben dieser Regel gemeldet. - Gemeldet vom Prüfschritt EN 16931; das aufgezeichnete Beispiel besteht den Peppol-Prüfschritt.
Verwandte Regeln
- BR-CL-17 wendet dieselbe Codeliste auf die Umsatzsteueraufschlüsselung und auf Nachlässe und Zuschläge auf Dokumentenebene an
- BR-CO-04 verlangt den Kategoriecode der Position, den diese Regel prüft
- BR-S-01 löst zusammen mit dieser Regel aus, wenn die falsch codierte Position eine Aufschlüsselung zum Normalsatz ohne Grundlage zurücklässt
- BR-S-08 berechnet die Bemessungsgrundlage zum Normalsatz ohne die falsch codierte Position neu
- 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-18 (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.

