Auf dieser Seite
Die kurze Antwort
BR-CL-17 schlägt für jede cac:TaxCategory/cbc:ID fehl, deren Wert kein zulässiger Code der Umsatzsteuerkategorie ist. Dieses Element steht in der Umsatzsteueraufschlüsselung und bei Nachlässen und Zuschlägen auf Dokumentenebene, und der Befund zeigt auf die betroffene cbc:ID. Ersetzen Sie den Wert durch den passenden Code: Im aufgezeichneten Beispiel steht in der Aufschlüsselung SR, wo der Code für den Normalsatz S ist.
Übersetzen Sie jeden internen Steuercode vor dem Export in einen der zehn zulässigen Codes. Die Codes in den Positionen werden gesondert geprüft, von BR-CL-18.
Was die Regel prüft
Die Regel läuft auf jeder cbc:ID, die direktes Kindelement einer cac:TaxCategory ist, wo auch immer diese Steuerkategorie steht. Sie liest cac:ClassifiedTaxCategory in den Positionen nicht.
Die akzeptierten Werte sind AE, L, M, E, S, Z, G, O, K und B. Umgebende Leerzeichen werden ignoriert, aber ein Leerzeichen innerhalb des Werts, falsche Groß- oder Kleinschreibung oder jeder andere Code schlägt fehl: Im Versuch wurden s, A und 20 alle abgelehnt.
Auch eine leere cbc:ID schlägt an dieser Regel fehl, und im Versuch brachte sie zusätzlich PEPPOL-EN16931-R008 für das leere Element mit sich.
Geprüft wird nur die Zugehörigkeit zur Liste. Ob die Kategorie zu den Artikeln passt, bleibt den Kategorieregeln überlassen, etwa BR-S-01 und BR-S-08 für den Normalsatz.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-118 | Code der Umsatzsteuerkategorie | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| BT-95 | Code der Umsatzsteuerkategorie des Nachlasses auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID |
| BT-102 | Code der Umsatzsteuerkategorie des Zuschlags auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Ein Steuercode aus dem Buchhaltungssystem wie
SR,T1oderSTDwird direkt ins XML geschrieben, statt übersetzt zu werden. - Der Code wird irgendwo in der Verarbeitungskette in Kleinbuchstaben umgewandelt.
- Ein Code wird aus der vollständigen Liste UNCL5305 übernommen, die Codes enthält, die diese Regel nicht akzeptiert, etwa
A. - Ein Steuersatz wie
20wird in das Feld für den Kategoriecode geschrieben.
So korrigieren Sie das Dokument
- Ermitteln Sie anhand der Fundstelle des Befunds, welche Steuerkategorie den falschen Wert enthält: eine Aufschlüsselung unter
cac:TaxTotal/cac:TaxSubtotaloder eincac:AllowanceChargeauf oberster Ebene. - Ordnen Sie den internen Code seiner Umsatzsteuerkategorie zu:
SNormalsatz,ZNullsatz,Esteuerbefreit,AEUmkehrung der Steuerschuldnerschaft,Kinnergemeinschaftliche Lieferung,GAusfuhr außerhalb der EU,Onicht der Umsatzsteuer unterliegend,LundMfür die Steuern der Kanarischen Inseln und von Ceuta und Melilla,Bfür das italienische Split-Payment-Verfahren. - Verwenden Sie für dieselbe Leistung denselben Code in den Positionen, Nachlässen, Zuschlägen und der Aufschlüsselung, damit die Aufschlüsselung weiterhin zu den Posten passt, die sie summiert.
- Führen Sie die Zuordnung in einer einzigen Tabelle, und lassen Sie den Export bei jedem Code fehlschlagen, den sie nicht enthält.
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 S codiert, die Aufschlüsselung mit SR
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>SR</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:ClassifiedTaxCategory>
</cac:Item>Ausschnitt der korrigierten Rechnung: Die Aufschlüsselung verwendet den Code S für den Normalsatz
<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>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>Die fehlerhafte Rechnung schreibt SR in die cac:TaxCategory/cbc:ID der Aufschlüsselung, die korrigierte schreibt S; das ist der einzige Unterschied. Das fehlerhafte Dokument meldet außerdem BR-S-01: Seine Position ist weiterhin zum Normalsatz besteuert, und eine mit SR codierte Aufschlüsselung zählt nicht als Aufschlüsselung zum Normalsatz. Die Korrektur des Codes behebt beide Befunde.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-CL-17 und BR-S-01. 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. Eine Gutschrift mitSRin ihrer Aufschlüsselung meldete im Versuch dieselben zwei Regeln. - Bei einem Nachlass auf Dokumentenebene wirkt sich der Fehler auf die Beträge aus. Im Versuch wurde ein mit
SRcodierter Nachlass von dieser Regel und vonBR-S-08gemeldet, weil der Nachlass aus der Bemessungsgrundlage zum Normalsatz herausfiel. - Derselbe falsche Code in Position und Aufschlüsselung meldete im Versuch nur
BR-CL-17undBR-CL-18. Position und Aufschlüsselung stimmten miteinander überein, sodass keine Kategorieregel auslöste, aber das Dokument wird trotzdem abgelehnt. - Gemeldet vom Prüfschritt EN 16931; das aufgezeichnete Beispiel besteht den Peppol-Prüfschritt.
Verwandte Regeln
- BR-CL-18 wendet dieselbe Codeliste auf die Umsatzsteuerkategorie jeder Position an
- BR-S-01 wird zusammen mit dieser Regel gemeldet, wenn eine Aufschlüsselung zum Normalsatz falsch codiert ist
- BR-47 verlangt den Kategoriecode der Aufschlüsselung, den diese Regel prüft
- BR-S-08 löst aus, wenn ein falsch codierter Nachlass oder Zuschlag aus der Bemessungsgrundlage zum Normalsatz herausfällt
- 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-17 (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.

