Zum Inhalt springen

BR-DE-14: Der Umsatzsteuersatz (BT-119) fehlt

Mindestens eine Steuerkategorie in der Umsatzsteueraufschlüsselung hat keinen Steuersatz. Tragen Sie für jede Kategorie den Satz ein, bei steuerfreien, nicht steuerbaren und Reverse-Charge-Umsätzen den Wert 0.

Stand:

BR-DE-14· XRechnung-Schematron 2.6.0 (XRechnung 3.0.2, Validator-Konfiguration XRechnung 2026-08-31)
[BR-DE-14] Das Element "VAT category rate" (BT-119) muss übermittelt werden.

Betroffen:BG-23BT-118BT-119

Was die Regel prüft

BT-119 „VAT category rate“ gehört zur Gruppe BG-23 „VAT BREAKDOWN“, in der Visualisierung „Aufschlüsselung der Umsatzsteuer auf Ebene der Rechnung“. Die Spezifikation beschreibt das Feld so: „Sofern die Rechnung von der Umsatzsteuer ausgenommen ist, ist der Wert „0“ zu übermitteln.“

  • UBL: Kontext jedes cac:TaxTotal/cac:TaxSubtotal, Test cac:TaxCategory/cbc:Percent[boolean(normalize-space(.))].
  • CII: Kontext jedes ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax, Test ram:RateApplicablePercent[boolean(normalize-space(.))].
  • Jede Aufschlüsselungszeile wird einzeln geprüft. Eine Rechnung mit 19 % und 7 % braucht den Satz in beiden Blöcken.
  • Der Wert 0 ist nicht leer und erfüllt die Regel.

Geprüft wird nur die Aufschlüsselung auf Belegebene. Die Steuerangaben der Positionen (BT-152) gehören nicht dazu. In CII stehen beide in einem Element gleichen Namens, ram:ApplicableTradeTax; maßgeblich ist das unter ram:ApplicableHeaderTradeSettlement, nicht das in ram:SpecifiedLineTradeSettlement.

Typische Ursachen

  • Kein Satz bei Kategorie O oder E. Für nicht steuerbare (O) oder steuerfreie (E) Umsätze lässt die Software den Satz leer, weil keine Steuer anfällt.
  • Kleinunternehmer nach § 19 UStG. Die Spezifikation (Abschnitt 13.3) sieht dafür Kategorie E mit Satz 0 vor. In den Stammdaten von Kleinunternehmern ist oft gar kein Steuersatz hinterlegt.
  • Reverse Charge. Bei Kategorie AE schreibt der Generator keinen Satz, statt 0.
  • Satz nur auf Positionsebene. Der eigene Generator schreibt den Prozentsatz in cac:ClassifiedTaxCategory der Positionen, aber nicht in die Aufschlüsselung.
  • Leeres Element. <cbc:Percent/> oder <ram:RateApplicablePercent></ram:RateApplicablePercent> zählt als fehlend.

Beispiel aus der KoSIT-Testsuite

Die minimale technische Testdatei 01.05 rechnet eine nicht steuerbare Leistung ab (Kategorie O). In der Aufschlüsselung steht trotzdem der Satz 0.

UBL: Kategorie O mit cbc:Percent 0
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">4743.75</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>O</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cbc:TaxExemptionReasonCode>VATEX-EU-O</cbc:TaxExemptionReasonCode>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/technical-cases/cius/01.05_minimal_test_ubl.xml (Apache 2.0)

CII: ram:RateApplicablePercent 0, Kommentare aus der Originaldatei
<ram:ApplicableTradeTax>
  <!-- BT-117 -->
  <ram:CalculatedAmount>0.00</ram:CalculatedAmount>
  <!-- BT-118 -->
  <ram:TypeCode>VAT</ram:TypeCode>
  <!-- BT-116 -->
  <ram:BasisAmount>4743.75</ram:BasisAmount>
  <!-- BT-118 -->
  <ram:CategoryCode>O</ram:CategoryCode>
  <!-- BT-121 -->
  <ram:ExemptionReasonCode>VATEX-EU-O</ram:ExemptionReasonCode>
  <!-- BT-119 -->
  <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>

Quelle: KoSIT XRechnung-Testsuite 2026-08-31, Datei instances/technical-cases/cius/01.05_minimal_test_uncefact.xml (Apache 2.0)

Auffällig: Auf Positionsebene hat dieselbe Datei für Kategorie O keinen Satz, in UBL besteht cac:ClassifiedTaxCategory nur aus <cbc:ID>O</cbc:ID> und dem Steuerschema. Die Aufschlüsselung braucht den Satz, die Position nicht. Fehlt cbc:Percent bzw. ram:RateApplicablePercent im Beispiel oben, meldet die Prüfung BR-DE-14.

Lösung

In der Rechnungssoftware

  1. Hinterlegen Sie für jeden Steuerschlüssel einen Prozentsatz, für steuerfreie, nicht steuerbare und Reverse-Charge-Schlüssel den Wert 0.
  2. Als Kleinunternehmer prüfen Sie, ob die Software einen eigenen Schlüssel für § 19 UStG anbietet, der Kategorie E mit Satz 0 erzeugt.

Im XML

  1. UBL: Fügen Sie in jedem cac:TaxSubtotal/cac:TaxCategory nach cbc:ID ein cbc:Percent ein.
  2. CII: Fügen Sie in jedem ram:ApplicableTradeTax unter ram:ApplicableHeaderTradeSettlement als letztes Element ram:RateApplicablePercent ein.
  3. Achten Sie darauf, dass Satz und Kategorie zueinander passen. Die Spezifikation verlangt, dass BT-118 und BT-119 konsistent sind; Abweichungen melden die kategoriebezogenen EN-Regeln, etwa BR-S-08 für Kategorie S.
  4. Prüfen Sie die Datei mit XRechnung prüfen erneut.

XRechnung prüfen

Quellen

  1. XRechnung Schematron 2.6.0 (Release v2.6.0, Dateien ubl/XRechnung-UBL-validation.sch und cii/XRechnung-CII-validation.sch)KoSIT (GitHub itplr-kosit/xrechnung-schematron), 31. August 2026 · geprüft am 7. November 2026
  2. XRechnung-Testsuite, Release 2026-08-31KoSIT (GitHub itplr-kosit/xrechnung-testsuite), 31. August 2026 · geprüft am 7. November 2026
  3. Spezifikation XRechnung Version 3.0.2KoSIT (xeinkauf.de), 20. Juni 2024 · geprüft am 7. November 2026

Weiterlesen

Grundlage: EN 16931 und XRechnung-Schematron 2.6.0 (XRechnung 3.0.2, Validator-Konfiguration XRechnung 2026-08-31). Stand .