Auf dieser Seite
Die kurze Antwort
BR-37 schlägt fehl, wenn ein cac:AllowanceCharge direkt unter dem Wurzelelement mit cbc:ChargeIndicator true keinen Code der Umsatzsteuerkategorie hat: keine cac:TaxCategory mit einem cbc:ID unter dem Steuerschema VAT. Ergänzen Sie die Kategorie, in der der Zuschlag besteuert wird; in der korrigierten Rechnung ist der Zuschlag von 3.50 S mit 20.
Jeder Zuschlag auf Dokumentenebene wird für sich besteuert und muss in den Steuerbasisbetrag genau einer Umsatzsteueraufschlüsselung eingehen. Ohne Kategorie landet er in keiner, was sich im aufgezeichneten Beispiel als BR-S-08 neben dieser Regel zeigt.
Was die Regel prüft
Für jedes cac:AllowanceCharge auf Wurzelebene, das als Zuschlag gelesen wird, verlangt die Regel eine cac:TaxCategory mit einem Kindelement cbc:ID und einem cac:TaxScheme/cbc:ID von VAT, verglichen nach Entfernen von Leerraum und Umwandlung in Großbuchstaben. Im Versuch bestand vat in Kleinbuchstaben.
Das Steuerschema gehört zur Prüfung. Im Versuch mit GST als Steuerschema des Zuschlags wurde BR-37 allein gemeldet: Die Prüfung der normal besteuerten Aufschlüsselung liest das Steuerschema eines Zuschlags nicht, zählte die 3.50 also weiter mit und bestand.
Hier wird nur geprüft, ob das Code-Element vorhanden ist. Im Versuch kam ein leeres cbc:ID in der Kategorie des Zuschlags an BR-37 vorbei und wurde von BR-CL-17 und PEPPOL-EN16931-R008 gemeldet, dazu von BR-S-08, weil ein leerer Code nicht S ist.
Im Versuch meldete ein Zuschlag ganz ohne cac:TaxCategory dieselben zwei Regeln wie das aufgezeichnete Beispiel.
Zuschläge an Positionen sind nicht erfasst. Sie haben keine eigene Kategorie und werden mit der Position besteuert, als Teil ihres Nettobetrags.
| Begriff | Bedeutung | UBL-Element |
|---|---|---|
| BG-21 | Zuschläge auf Dokumentenebene | cac:AllowanceCharge[cbc:ChargeIndicator = true] |
| BT-102 | Code der Umsatzsteuerkategorie des Zuschlags auf Dokumentenebene | cac:AllowanceCharge/cac:TaxCategory/cbc:ID |
| BT-103 | Umsatzsteuersatz des Zuschlags auf Dokumentenebene | cac:AllowanceCharge/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:
- Fracht-, Verpackungs- oder Bearbeitungszuschläge werden von einem Modul, das nichts von Umsatzsteuer weiß, als Kopfbetrag hinzugefügt.
- Das Mapping des Zuschlags übernimmt Grund und Betrag aus dem Auftrag, und die Steuermerkmale bleiben bei den Auftragspositionen zurück.
- Die Quelle hält für den Zuschlag einen Satz, aber keinen Kategoriecode, daher schreibt das Mapping
cbc:Percentund das Steuerschema und lässtcbc:IDweg, wie im aufgezeichneten Beispiel. - Steuermerkmale verwenden in der Quelle einen lokalen Namen des Steuerschemas, und
cac:TaxScheme/cbc:IDwird mit diesem Namen statt mitVATgeschrieben.
So korrigieren Sie das Dokument
- Stellen Sie fest, wie der Zuschlag besteuert wird, aus der Steuereinrichtung der Zuschlagsart oder der Leistungen, zu denen er gehört.
- Fügen Sie
cbc:IDals erstes Kindelement dercac:TaxCategorydes Zuschlags ein, gefolgt voncbc:Percentundcac:TaxScheme/cbc:IDmitVAT. Die Kategorie steht nachcbc:Amountundcbc:BaseAmount. - Deckt ein Zuschlag unterschiedlich besteuerte Leistungen ab, teilen Sie ihn in einen Zuschlag je Kategorie und Satz auf. Die Summe der Zuschläge bleibt gleich.
- Rechnen Sie den Zuschlag in den Steuerbasisbetrag seiner Umsatzsteueraufschlüsselung ein und berechnen Sie dort die Umsatzsteuer neu.
BR-S-08und die entsprechenden Regeln für andere Kategorien prüfen diese Summe.
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 Kategorie des Zuschlags hat einen Satz und ein Steuerschema, aber keinen Code
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">3.50</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">35.00</cbc:BaseAmount>
<cac:TaxCategory>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>Ausschnitt der korrigierten Rechnung: Der Zuschlag ist normal besteuert, Code S mit 20
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">3.50</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">35.00</cbc:BaseAmount>
<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 korrigierte Rechnung beginnt die cac:TaxCategory des Zuschlags mit cbc:ID S; in der fehlerhaften Rechnung behält die Kategorie ihren Satz von 20 und ihr Steuerschema VAT, hat aber keinen Code. Das fehlerhafte Dokument meldet außerdem BR-S-08. Ohne Kategorie zählt der Zuschlag von 3.50 nicht mehr zur normal besteuerten Aufschlüsselung, deren berechnete Basis auf 56.00 aus Positionen minus dem Nachlass von 1.00 fällt, also 55.00, gegenüber einem Steuerbasisbetrag von 58.50. Den Code wiederherzustellen behebt beide Befunde.
Was der Validator gemeldet hat
- Die fehlerhafte Rechnung meldet BR-37 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
InvoiceundCreditNote. Im Versuch meldete die Gutschriftfassung des aufgezeichneten BeispielsBR-37ancac:AllowanceCharge[2]zusammen mitBR-S-08. - Der Index in der Fundstelle zählt jedes
cac:AllowanceChargeauf Wurzelebene, Nachlässe eingeschlossen: Der Zuschlag hier ist der zweite, nach dem Rabatt auf Dokumentenebene. - Welche Regel der Aufschlüsselung mitkommt, richtet sich nach der Kategorie, die der Zuschlag hätte haben sollen: hier
BR-S-08, weil der Zuschlag in die normal besteuerte Aufschlüsselung gehört. - Sobald der Code
Sist, braucht der Zuschlag außerdem einen Satz über null, wasBR-S-07prüft.
Verwandte Regeln
- BR-32 ist dieselbe Anforderung für Nachlässe auf Dokumentenebene
- BR-S-08 rechnet normal besteuerte Zuschläge auf Dokumentenebene in den Steuerbasisbetrag ein und schlägt fehl, wenn dieser keine Kategorie hat
- BR-14 verlangt den Gesamtbetrag einschließlich Umsatzsteuer, in den der Zuschlag und die Umsatzsteuer darauf beide eingehen
- BR-CO-24 behandelt Zuschläge an Positionen, die einen Grund brauchen, ihre Umsatzsteuerkategorie aber von der Position übernehmen
- 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-37 (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.

