BR-S-05: Normalsatz-Position mit 0 %

Positionen der Kategorie S (Normalsatz) müssen einen Steuersatz über 0 haben.

Regelwerk
EN 16931 (CEN)
Syntax
UBL und CII
Betroffene Felder
BG-25, BT-151, BT-152

Offizieller Regeltext

In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" the Invoiced item VAT rate (BT-152) shall be greater than zero.

Regeltext aus den Validierungsartefakten zu EN 16931 in Version 1.3.16 (CEN/TC 434, veröffentlicht von ConnectingEurope), Lizenz EUPL 1.2; enthalten in der XRechnung-Validatorkonfiguration 2026-08-31.

Schweregrad

Ein Verstoß führt im Szenario „XRechnung“ des KoSIT-Validators zur Ablehnung der Rechnung.

Typische Ursachen

Steuerfreie oder nullbesteuerte Positionen werden mit Kategorie S und 0 % exportiert.

So behebst du den Fehler

Die passende Kategorie wählen – zum Beispiel E für steuerbefreit, Z für Nullsatz, AE für Reverse Charge – oder den richtigen Satz (19 % bzw. 7 %) eintragen.

Geprüftes Beispiel: falsch und richtig

Die Auszüge stammen aus vollständigen, synthetischen Rechnungen des E-Rechnungs-Testkorpus. Geänderte Zeilen sind hervorgehoben. Beide Dateien werden in den automatischen Tests mit dem KoSIT-Validator geprüft.

Beispiel in UBL

Änderung gegenüber der gültigen Rechnung: Position mit Kategorie S (Normalsatz) und Steuersatz 0 %.

Falsch – ab Zeile 91
</cac:PaymentTerms>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">75.91</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">399.55</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">75.91</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>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">102.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
Richtig – ab Zeile 91
</cac:PaymentTerms>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">95.29</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">501.55</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">95.29</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
Falsch – ab Zeile 118
  <cbc:LineExtensionAmount currencyID="EUR">501.55</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="EUR">501.55</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="EUR">577.46</cbc:TaxInclusiveAmount>
  <cbc:PayableAmount currencyID="EUR">577.46</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
Richtig – ab Zeile 107
  <cbc:LineExtensionAmount currencyID="EUR">501.55</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="EUR">501.55</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="EUR">596.84</cbc:TaxInclusiveAmount>
  <cbc:PayableAmount currencyID="EUR">596.84</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
Falsch – ab Zeile 180
<cac:ClassifiedTaxCategory>
  <cbc:ID>S</cbc:ID>
  <cbc:Percent>0</cbc:Percent>
  <cac:TaxScheme>
    <cbc:ID>VAT</cbc:ID>
Richtig – ab Zeile 169
<cac:ClassifiedTaxCategory>
  <cbc:ID>S</cbc:ID>
  <cbc:Percent>19</cbc:Percent>
  <cac:TaxScheme>
    <cbc:ID>VAT</cbc:ID>

Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:

  • BR-S-05 In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" the Invoiced item VAT rate (BT-152) shall be greater than zero. Fundstelle: /Invoice[1]/InvoiceLine[3]/Item[1]/ClassifiedTaxCategory[1]

Vollständige Dateien im Testkorpus: br-s-05-normalsatz-null_ubl.xml (falsch) und standard_ubl.xml (richtig).

Beispiel in CII

Änderung gegenüber der gültigen Rechnung: Position mit Kategorie S (Normalsatz) und Steuersatz 0 %.

Falsch – ab Zeile 102
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
Richtig – ab Zeile 102
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
Falsch – ab Zeile 191
</ram:SpecifiedTradeSettlementPaymentMeans>
<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>75.91</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:BasisAmount>399.55</ram:BasisAmount>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>0.00</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:BasisAmount>102.00</ram:BasisAmount>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradePaymentTerms>
Richtig – ab Zeile 191
</ram:SpecifiedTradeSettlementPaymentMeans>
<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>95.29</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:BasisAmount>501.55</ram:BasisAmount>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradePaymentTerms>
Falsch – ab Zeile 213
    <ram:LineTotalAmount>501.55</ram:LineTotalAmount>
    <ram:TaxBasisTotalAmount>501.55</ram:TaxBasisTotalAmount>
    <ram:TaxTotalAmount currencyID="EUR">75.91</ram:TaxTotalAmount>
    <ram:GrandTotalAmount>577.46</ram:GrandTotalAmount>
    <ram:DuePayableAmount>577.46</ram:DuePayableAmount>
  </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>
Richtig – ab Zeile 206
    <ram:LineTotalAmount>501.55</ram:LineTotalAmount>
    <ram:TaxBasisTotalAmount>501.55</ram:TaxBasisTotalAmount>
    <ram:TaxTotalAmount currencyID="EUR">95.29</ram:TaxTotalAmount>
    <ram:GrandTotalAmount>596.84</ram:GrandTotalAmount>
    <ram:DuePayableAmount>596.84</ram:DuePayableAmount>
  </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>

Prüfergebnis (KoSIT-Validator 1.6.3, Konfiguration 2026-08-31): falsche Datei abgelehnt, korrigierte Datei angenommen. Meldungen zur falschen Datei:

  • BR-S-05 In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" the Invoiced item VAT rate (BT-152) shall be greater than zero. Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/IncludedSupplyChainTradeLineItem[3]/SpecifiedLineTradeSettlement[1]/ApplicableTradeTax[1]

Vollständige Dateien im Testkorpus: br-s-05-normalsatz-null_cii.xml (falsch) und standard_cii.xml (richtig).

Testdateien zu BR-S-05

Technische Details: Kontext und Prüfausdruck aus dem Schematron

CII

Kontext:

//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = 'S'][upper-case(ram:TypeCode) = 'VAT']

Prüfausdruck:

ram:RateApplicablePercent > 0

UBL

Kontext:

cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT'] | cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory[normalize-space(cbc:ID) = 'S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']

Prüfausdruck:

(cbc:Percent) > 0

Technische Formatprüfung nach XRechnung 3.0.2; keine steuerliche oder rechtliche Beratung.