BR-S-08: Bemessungsgrundlage in der Umsatzsteuer-Aufschlüsselung (Kategorie S)
Für jeden Steuersatz der Kategorie S muss die Bemessungsgrundlage in der Umsatzsteuer-Aufschlüsselung (BT-116) aus den Positionen dieses Satzes plus Zuschlägen minus Nachlässen auf Belegebene hervorgehen. UBL und CII prüfen das unterschiedlich streng.
[BR-S-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "Standard rated" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).
Betroffen:BG-23BT-116BT-118BT-119BT-131BT-151BT-152BT-92BT-95BT-96BT-99BT-102BT-103
Was die Regel prüft
Auf Deutsch: Für jeden Umsatzsteuersatz (BT-119), dessen Kategorie (BT-118) „S“ (Standard rated) ist, muss die Bemessungsgrundlage (BT-116) in der Aufschlüsselung (BG-23) gleich der Summe der Positionsnettobeträge (BT-131) plus Zuschläge auf Belegebene (BT-99) minus Nachlässe auf Belegebene (BT-92) sein. Mitgezählt werden nur Positionen, Zuschläge und Nachlässe mit Kategorie S (BT-151, BT-102, BT-95) und genau diesem Satz (BT-152, BT-103, BT-96).
BT-116 (S, Satz x) = Σ BT-131 (S, Satz x) + Σ BT-99 (S, Satz x) − Σ BT-92 (S, Satz x)| Teil | UBL | CII |
|---|---|---|
| BT-116, BT-118, BT-119 | cac:TaxTotal/cac:TaxSubtotal mit cbc:TaxableAmount, cac:TaxCategory/cbc:ID, cbc:Percent | ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax mit ram:BasisAmount, ram:CategoryCode, ram:RateApplicablePercent |
| BT-131 mit BT-151, BT-152 | cac:InvoiceLine/cbc:LineExtensionAmount, cac:Item/cac:ClassifiedTaxCategory | ram:SpecifiedLineTradeSettlement mit ram:ApplicableTradeTax und ram:LineTotalAmount |
| BT-92 / BT-99 mit Kategorie und Satz | cac:AllowanceCharge mit cbc:ChargeIndicator false/true, cbc:Amount, cac:TaxCategory | ram:SpecifiedTradeAllowanceCharge mit ram:ChargeIndicator/udt:Indicator, ram:ActualAmount, ram:CategoryTradeTax |
Toleranz: UBL und CII unterscheiden sich
UBL: Die berechnete Summe darf um weniger als 1,00 vom angegebenen BT-116 abweichen (BT-116 − 1 < Summe < BT-116 + 1). Außerdem muss es für den Satz mindestens eine Position, einen Nachlass oder einen Zuschlag mit Kategorie S und genau diesem Satz geben.
CII: Keine Toleranz. Der Validator rundet die Positionssumme, die Zuschlagssumme und die Nachlasssumme einzeln auf zwei Stellen und verlangt exakte Gleichheit mit ram:BasisAmount.
Dieselben Beträge können deshalb in UBL durchgehen und in CII scheitern. Die Steuersätze werden als Dezimalzahl verglichen, 19 und 19.00 gelten als gleich.
Typische Ursachen
- Ein Nachlass auf Belegebene (BG-20) mit Kategorie S mindert BT-109, wird aber nicht von BT-116 abgezogen.
- Gemischte Rechnung mit 19 % und 7 %: Ein Gesamtrabatt wird in der Aufschlüsselung vom 19-%-Satz abgezogen, ist im XML aber mit 7 % gekennzeichnet, oder umgekehrt. Ein Rabatt über mehrere Sätze muss in je einen Nachlass pro Satz aufgeteilt werden.
- Versandkosten oder andere Zuschläge (BG-21) erhöhen den Rechnungsbetrag, werden aber nicht in die Bemessungsgrundlage ihres Satzes eingerechnet.
- Zwei Steuerzeilen für denselben Satz, etwa getrennt nach Warengruppen. Die Regel vergleicht jede Zeile mit der Gesamtsumme des Satzes, beide scheitern.
- Eine leere Steuerzeile aus der Vorlage, zum Beispiel 7 % mit Bemessungsgrundlage 0, obwohl keine Position diesen Satz hat. In UBL schlägt BR-S-08 dann wegen der fehlenden Position an.
- Die Bemessungsgrundlage wird aus gerundeten Bruttowerten zurückgerechnet statt aus den Nettopositionen addiert. In CII reicht dafür ein Cent Unterschied.
- Position und Aufschlüsselung passen nicht zusammen, etwa Satz 19 in den Positionen und 16 in BG-23.
Beispiel aus der KoSIT-Testsuite
Testdatei 02.05a hat 23 Positionen, einen Nachlass mit Kategorie S und einen Zuschlag mit Kategorie E (steuerbefreit). Der Nachlass von 100,29 € trägt Kategorie S und 19 %, er zählt also für BR-S-08 mit:
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>103</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Rabatte</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>100</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="EUR">100.29</cbc:Amount>
<cbc:BaseAmount currencyID="EUR">100.29</cbc:BaseAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/standard/02.05a-INVOICE_ubl.xml (Apache 2.0)
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">264.47</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">1391.94</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">264.47</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/standard/02.05a-INVOICE_ubl.xml (Apache 2.0)
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>264.47</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>1391.94</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/standard/02.05a-INVOICE_uncefact.xml (Apache 2.0)
| Bestandteil (Kategorie S, 19 %) | Betrag |
|---|---|
| Σ BT-131 der 21 Positionen mit S und 19 % | 1.492,23 € |
| + Σ BT-99 Zuschläge mit S und 19 % | 0,00 € (der Zuschlag über 920 € hat Kategorie E) |
| − Σ BT-92 Nachlässe mit S und 19 % | 100,29 € |
| = erwartete Bemessungsgrundlage | 1.391,94 € = BT-116 |
Ließe die Software den Rabatt in der Aufschlüsselung weg, stünden 1.492,23 € in BT-116; bei 100,29 € Abweichung scheitern beide Syntaxen. Bei nur einem Cent Abweichung, etwa 1.391,95 €, würde allein die CII-Fassung einen Fehler melden. Die Steuer von 264,47 € ergibt sich aus 1.391,94 € × 19 % = 264,4686 €; sie prüft die Nachbarregel BR-S-09.
Wie die Regel mit zwei Sätzen derselben Kategorie umgeht, zeigt Testdatei 03.01a: Zehn Positionen mit 19 % ergeben 578,89 €, vier Positionen mit 7 % ergeben 108,39 €. Jeder Betrag steht in einer eigenen Steuerzeile und wird gesondert geprüft.
Lösung
In der Rechnungssoftware
- Teilen Sie Rabatte auf die Gesamtrechnung je Steuersatz auf und kennzeichnen Sie jeden Teil mit Kategorie und Satz.
- Ordnen Sie Versandkosten und andere Zuschläge dem Steuersatz der Leistung zu, zu der sie gehören.
- Lassen Sie je Kombination aus Kategorie und Satz genau eine Steuerzeile erzeugen und unbenutzte Sätze weg.
Im XML
- Bilden Sie BT-116 je Satz aus den gerundeten Positionsnettobeträgen, addieren Sie die Zuschläge und ziehen Sie die Nachlässe derselben Kategorie und desselben Satzes ab.
- UBL: Ergebnis in
cac:TaxSubtotal/cbc:TaxableAmount. CII: Ergebnis inram:ApplicableTradeTax/ram:BasisAmount; hier ist keine Abweichung erlaubt. - Berechnen Sie danach BT-117 neu (BT-116 × Satz, auf zwei Stellen gerundet) und passen Sie BT-110 und BT-112 an, sonst folgen BR-S-09 und BR-CO-15.
- Prüfen Sie die Datei mit E-Rechnung prüfen, am besten in beiden Syntaxen, wenn Ihre Software UBL und CII erzeugt.
Quellen
- EN16931 Validation artefacts v1.3.16 (CEN-Schematron)ConnectingEurope, eInvoicing-EN16931 (GitHub), 13. April 2026 · geprüft am 7. November 2026
- Validator-Konfiguration XRechnung 2026-08-31 (Release v2026-08-31, verwendet CEN-Schematron 1.3.16)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026
- XRechnung-Testsuite 2026-08-31 (Release v2026-08-31)KoSIT (GitHub itplr-kosit), 2. September 2026 · geprüft am 7. November 2026