Auf dieser Seite
Die kurze Antwort
BR-47 schlägt für jedes cac:TaxSubtotal fehl, dessen cac:TaxCategory keine cbc:ID hat oder dessen Steuerkategorie nicht zum Steuerschema VAT gehört. Ergänzen Sie cbc:ID als erstes Kindelement von cac:TaxCategory mit der Kategorie der Positionen, Nachlässe und Zuschläge, die die Aufschlüsselung zusammenfasst: S im aufgezeichneten Beispiel.
Eine Aufschlüsselung ohne Code passt zu keiner Kategorie, daher schlägt auch die Kategorieregel für die Positionen an, die sie abdecken sollte; hier ist das BR-S-01.
Was die Regel prüft
Die Regel läuft für jedes cac:TaxSubtotal innerhalb eines cac:TaxTotal. Sie ist erfüllt, wenn die Aufschlüsselung eine cac:TaxCategory hat, deren cac:TaxScheme/cbc:ID VAT lautet und die ein Element cbc:ID enthält.
Das Steuerschema wird vor dem Vergleich von Leerraum befreit und in Großbuchstaben umgewandelt, daher wurde vat im Versuch akzeptiert. Ein anderes Schema nicht: Eine Aufschlüsselung unter GST meldete diese Regel, BR-48 und BR-CO-17, weil ihre Kategorie und ihr Satz überhaupt nicht mehr als Umsatzsteuer gelesen wurden.
Geprüft wird nur, ob das Element vorhanden ist. Eine leere cbc:ID erfüllt diese Regel, wurde im Versuch aber von BR-CL-17 als ungültiger Code, von PEPPOL-EN16931-R008 als leeres Element und von BR-S-01 gemeldet.
Fehlt die gesamte cac:TaxCategory, wird diese Regel nicht erreicht. UBL verlangt eine in jeder Aufschlüsselung, und im Versuch scheiterte das Dokument stattdessen am XSD-Prüfschritt.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BG-23 | Umsatzsteueraufschlüsselung | cac:TaxTotal/cac:TaxSubtotal |
| BT-118 | Code der Umsatzsteuerkategorie | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID |
| - | Steuerschema der Umsatzsteuerkategorie | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Die Umsatzsteuerübersicht ist nur nach dem Satz geschlüsselt, daher kennt der Export 20%, aber nicht die Kategorie, zu der der Satz gehört.
- Die Kategorie stammt aus einer Zuordnung interner Steuerkennzeichen, und ein Kennzeichen ohne Zuordnung wird als leerer Wert geschrieben, statt den Export anzuhalten.
- Das Steuerschema wird aus einer allgemeinen Steuerart wie
GSToderTAXgefüllt statt mit dem festen WertVAT. - Der Serialisierer schreibt
cac:TaxCategorynur mitcbc:Percentundcac:TaxScheme, nach einem Aufbau, der für ein anderes Format gedacht ist.
So korrigieren Sie das Dokument
- Ermitteln Sie für jede Aufschlüsselung die Umsatzsteuerkategorie der Posten, die sie zusammenfasst: die
cac:ClassifiedTaxCategory/cbc:IDihrer Positionen und diecac:TaxCategory/cbc:IDihrer Nachlässe und Zuschläge auf Dokumentenebene. - Schreiben Sie diesen Code als
cbc:ID, das erste Kindelement dercac:TaxCategoryder Aufschlüsselung, vorcbc:Percent. Verwenden Sie einen der zulässigen Codes:S,Z,E,AE,K,G,O,L,ModerB. - Setzen Sie
cac:TaxScheme/cbc:IDin derselben Steuerkategorie aufVAT. - Lassen Sie ein nicht zugeordnetes Steuerkennzeichen den Export anhalten, damit nie eine Aufschlüsselung ohne Kategorie versendet wird.
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 zum Normalsatz ist in Ordnung, aber ihrer Aufschlüsselung fehlt der Kategoriecode
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<cac:TaxCategory>
<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>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>Ausschnitt der korrigierten Rechnung: Die Aufschlüsselung gilt wie ihre Position dem 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 korrigierte Rechnung hat <cbc:ID>S</cbc:ID> als erstes Kindelement der cac:TaxCategory der Aufschlüsselung; die fehlerhafte nicht, und sonst unterscheidet sich nichts. Das fehlerhafte Dokument meldet außerdem BR-S-01, weil seine Position dem Normalsatz unterliegt und, ohne den Code, keine Aufschlüsselung S angibt. Das Ergänzen des Codes behebt beide Befunde. Die Rechenregeln bleiben still: Satz und Beträge sind weiterhin vorhanden, und die Prüfungen für den Normalsatz laufen nur bei einer Aufschlüsselung mit dem Code S.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-47 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, aus deren Aufschlüsselung der Code entfernt wurde, meldete im Versuch dieselben zwei Regeln. - Wird vom Prüfschritt EN 16931 gemeldet; der Peppol-Prüfschritt lässt das aufgezeichnete Beispiel passieren.
- Die Begleitregel folgt der Kategorie der Positionen. Mit dem aus einer steuerbefreiten Aufschlüsselung entfernten
Elauteten die Befunde im Versuch diese Regel undBR-E-01. - Das Gegenstück auf Positionsebene ist
BR-CO-04. Sobald ein Code in der Aufschlüsselung vorhanden ist, prüftBR-CL-17, dass er zulässig ist.
Verwandte Regeln
- BR-S-01 verlangt eine Aufschlüsselung mit dem Code S für Positionen zum Normalsatz und wird mit dieser Regel gemeldet
- BR-CL-17 prüft, dass der Kategoriecode der Aufschlüsselung einer der zulässigen Codes ist
- BR-CO-04 ist dieselbe Anforderung für die Umsatzsteuerkategorie jeder Position
- BR-48 verlangt den Satz neben dem Kategoriecode in derselben Steuerkategorie
- 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-47 (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.

