Auf dieser Seite
Die kurze Antwort
BR-S-07 schlägt für jeden Zuschlag fehl, dessen cac:TaxCategory die cbc:ID S im Schema VAT hat, aber kein positives cbc:Percent. Schreiben Sie den Normalsatz, mit dem der Zuschlag besteuert wird; dem Frachtzuschlag im aufgezeichneten Beispiel fehlte der Satz ganz, und die korrigierte Rechnung gibt 20 an.
Ohne Satz lässt sich der Zuschlag keiner Aufschlüsselung zum Normalsatz zuordnen, sodass auch der Steuerbasisbetrag mit 20 nicht mehr aufgeht.
Was die Regel prüft
Die Regel besucht jede cac:TaxCategory mit S im Schema VAT innerhalb eines cac:AllowanceCharge mit cbc:ChargeIndicator gleich true, auch innerhalb einer Rechnungsposition: Im Versuch meldete ein Positionszuschlag mit eigener Kategorie S und Satz 0 diese Regel an cac:InvoiceLine[1]/cac:AllowanceCharge[1]/cac:TaxCategory[1], zusammen mit der Warnung UBL-CR-558.
Ein fehlendes cbc:Percent liegt nicht über null und schlägt daher fehl, wie im aufgezeichneten Beispiel. Der Frachtzuschlag mit dem Satz 0 schlug im Versuch genauso fehl, wieder mit BR-S-08.
Ein leeres cbc:Percent kommt gar nicht so weit. Im Versuch wurde <cbc:Percent></cbc:Percent> am Frachtzuschlag vom XSD-Prüfschritt zurückgewiesen, und die Prüfschritte EN 16931 und Peppol wurden übersprungen.
Verglichen wird nur mit null. Ein Zuschlagssatz als Bruch 0.2 bestand im Versuch diese Regel, und stattdessen meldete BR-S-08 die Aufschlüsselung mit 20, weil der Zuschlag nicht mehr zu diesem Satz gehörte.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BT-102 | Code der Umsatzsteuerkategorie des Zuschlags auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID |
| BT-103 | Umsatzsteuersatz des Zuschlags auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:Percent |
Wie es in einer Integration dazu kommt
Mögliche Ursachen, abgeleitet aus der Form der Regel und nicht aus gemessener Nutzung:
- Das Versand- oder Speditionsmodul, das die Fracht hinzufügt, speichert eine Steuerkategorie, aber keinen Satz, und der Export schreibt nur die Kategorie.
- Sätze werden nur für Artikel nachgeschlagen, und ein Zuschlag auf Dokumentenebene hat keinen Artikeldatensatz, in dem einer stünde.
- Zuschläge werden mit
cbc:Percentgleich 0 exportiert, weil die Gebühr als außerhalb der Umsatzsteuer gilt, während die Kategorie weiterSist. - Ein leeres Satzfeld in der Quelle wird vom Serialisierer weggelassen statt gemeldet, sodass die Lücke ins Dokument gelangt.
So korrigieren Sie das Dokument
- Finden Sie den Zuschlag über den Ort des Befunds,
cac:AllowanceCharge[1]im aufgezeichneten Beispiel. Der Index zählt jedescac:AllowanceChargeunter der Wurzel, Nachlässe und Zuschläge zusammen. - Ermitteln Sie den Umsatzsteuersatz des Zuschlags aus seinem Steuercode. Der Frachtzuschlag zum Normalsatz im aufgezeichneten Beispiel wird mit
20besteuert. - Schreiben Sie den Satz in
cbc:Percent, direkt nachcbc:IDin dercac:TaxCategorydes Zuschlags und vorcac:TaxScheme. - Ist der Zuschlag in Wahrheit nicht zum Normalsatz, geben Sie ihm die zutreffende Kategorie mit dem Satz, den diese Kategorie verlangt, und verschieben Sie ihn in diese Aufschlüsselung.
- Prüfen Sie, dass die Aufschlüsselung zum Normalsatz für diesen Satz den Zuschlag in ihrem Steuerbasisbetrag enthält, was
BR-S-08nachprüft.
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 Frachtzuschlag nennt S, aber keinen Satz
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">7.50</cbc:Amount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">32.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">6.50</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>Ausschnitt der korrigierten Rechnung: der Frachtzuschlag ist zum Normalsatz mit 20
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">7.50</cbc:Amount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>Die fehlerhafte Rechnung hat kein cbc:Percent in der cac:TaxCategory des Frachtzuschlags; die korrigierte hat dort 20, und sonst unterscheidet sich nichts. Zusätzlich wird BR-S-08 gemeldet: Ein Zuschlag ohne Satz zählt nicht zu 20, sodass der Inhalt zum Normalsatz mit diesem Satz auf die Position über 25.00 sinkt, gegenüber einem Steuerbasisbetrag von 32.50. Mit dem wiederhergestellten Satz verschwinden beide Befunde.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-S-07 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. Eine aus dem aufgezeichneten Beispiel erstellte Gutschrift meldete im VersuchBR-S-07undBR-S-08. - Der Prüfschritt EN 16931 meldet sie als fatal, an der
cac:TaxCategorydes Zuschlags, für jeden fehlerhaften Zuschlag. - Ein Zuschlag ganz ohne
cac:TaxCategorywird stattdessen vonBR-37erfasst. Zuschläge zum Nullsatz brauchen nachBR-Z-07einen Satz von genau 0. - Nachlässe deckt
BR-S-06auf dieselbe Weise ab.
Verwandte Regeln
- BR-S-06 ist dieselbe Anforderung für Nachlässe auf Dokumentenebene zum Normalsatz
- BR-S-08 rechnet den Zuschlag dem Steuerbasisbetrag seines Satzes zu und schlug im aufgezeichneten Beispiel zusammen mit dieser Regel fehl
- BR-37 verlangt für jeden Zuschlag auf Dokumentenebene eine Umsatzsteuerkategorie
- BR-S-04 verlangt eine Umsatzsteuer-Identifikationsnummer des Verkäufers, sobald ein Zuschlag auf Dokumentenebene zum Normalsatz ist
- 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-S-07 (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.

