BR-CL-22: Befreiungscode nicht aus der VATEX-Liste

Codes für Befreiungsgründe (BT-121) müssen aus der VATEX-Liste stammen.

Regelwerk
EN 16931 (CEN)
Syntax
UBL und CII
Betroffene Felder
–

Offizieller Regeltext

Tax exemption reason code identifier scheme identifier MUST belong to the CEF VATEX code list

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

Eigene Codes, etwa für die Kleinunternehmerregelung, die es in der VATEX-Liste nicht gibt.

So behebst du den Fehler

Einen VATEX-Code verwenden oder nur den Befreiungsgrund als Text (BT-120) angeben. Der Validator akzeptiert bei Kategorie E auch den Text allein, etwa den Hinweis auf § 19 UStG.

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: Befreiungscode (BT-121) nicht aus der VATEX-Liste.

Falsch – ab Zeile 96
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReasonCode>VATEX-DE-19</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Kein Ausweis von Umsatzsteuer, da Kleinunternehmer gemäß § 19 UStG</cbc:TaxExemptionReason>
<cac:TaxScheme>
Richtig – ab Zeile 96 · ohne die markierte Zeile
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cbc:TaxExemptionReason>Kein Ausweis von Umsatzsteuer, da Kleinunternehmer gemäß § 19 UStG</cbc:TaxExemptionReason>
<cac:TaxScheme>

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

  • BR-CL-22 Tax exemption reason code identifier scheme identifier MUST belong to the CEF VATEX code list Fundstelle: /Invoice[1]/TaxTotal[1]/TaxSubtotal[1]/TaxCategory[1]/TaxExemptionReasonCode[1]

Vollständige Dateien im Testkorpus: br-cl-22-unbekannter-befreiungscode_ubl.xml (falsch) und kleinunternehmer_ubl.xml (richtig).

Beispiel in CII

Änderung gegenüber der gültigen Rechnung: Befreiungscode (BT-121) nicht aus der VATEX-Liste.

Falsch – ab Zeile 153
  <ram:BasisAmount>470.00</ram:BasisAmount>
  <ram:CategoryCode>E</ram:CategoryCode>
  <ram:ExemptionReasonCode>VATEX-DE-19</ram:ExemptionReasonCode>
  <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
Richtig – ab Zeile 153 · ohne die markierte Zeile
  <ram:BasisAmount>470.00</ram:BasisAmount>
  <ram:CategoryCode>E</ram:CategoryCode>
  <ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>

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

  • BR-CL-22 Tax exemption reason code identifier scheme identifier MUST belong to the CEF VATEX code list Fundstelle: /CrossIndustryInvoice[1]/SupplyChainTradeTransaction[1]/ApplicableHeaderTradeSettlement[1]/ApplicableTradeTax[1]/ExemptionReasonCode[1]

Vollständige Dateien im Testkorpus: br-cl-22-unbekannter-befreiungscode_cii.xml (falsch) und kleinunternehmer_cii.xml (richtig).

Testdateien zu BR-CL-22

Technische Details: Kontext und Prüfausdruck aus dem Schematron

CII

Kontext:

ram:ExemptionReasonCode

Prüfausdruck:

((not(contains(normalize-space(.), ' ')) and contains(' VATEX-EU-79-C VATEX-EU-132 VATEX-EU-132-1A VATEX-EU-132-1B VATEX-EU-132-1C VATEX-EU-132-1D VATEX-EU-132-1E VATEX-EU-132-1F VATEX-EU-132-1G VATEX-EU-132-1H VATEX-EU-132-1I VATEX-EU-132-1J VATEX-EU-132-1K VATEX-EU-132-1L VATEX-EU-132-1M VATEX-EU-132-1N VATEX-EU-132-1O VATEX-EU-132-1P VATEX-EU-132-1Q VATEX-EU-135-1 VATEX-EU-143 VATEX-EU-143-1A VATEX-EU-143-1B VATEX-EU-143-1C VATEX-EU-143-1D VATEX-EU-143-1E VATEX-EU-143-1F VATEX-EU-143-1FA VATEX-EU-143-1G VATEX-EU-143-1H VATEX-EU-143-1I VATEX-EU-143-1J VATEX-EU-143-1K VATEX-EU-143-1L VATEX-EU-144 VATEX-EU-146-1E VATEX-EU-159 VATEX-EU-309 VATEX-EU-148 VATEX-EU-148-A VATEX-EU-148-B VATEX-EU-148-C VATEX-EU-148-D VATEX-EU-148-E VATEX-EU-148-F VATEX-EU-148-G VATEX-EU-151 VATEX-EU-151-1A VATEX-EU-151-1AA VATEX-EU-151-1B VATEX-EU-151-1C VATEX-EU-151-1D VATEX-EU-151-1E VATEX-EU-G VATEX-EU-O VATEX-EU-IC VATEX-EU-AE VATEX-EU-D VATEX-EU-F VATEX-EU-I VATEX-EU-J VATEX-FR-FRANCHISE VATEX-FR-CNWVAT VATEX-EU-153 VATEX-FR-CGI261-1 VATEX-FR-CGI261-2 VATEX-FR-CGI261-3 VATEX-FR-CGI261-4 VATEX-FR-CGI261-5 VATEX-FR-CGI261-7 VATEX-FR-CGI261-8 VATEX-FR-CGI261A VATEX-FR-CGI261B VATEX-FR-CGI261C-1 VATEX-FR-CGI261C-2 VATEX-FR-CGI261C-3 VATEX-FR-CGI261D-1 VATEX-FR-CGI261D-1BIS VATEX-FR-CGI261D-2 VATEX-FR-CGI261D-3 VATEX-FR-CGI261D-4 VATEX-FR-CGI261E-1 VATEX-FR-CGI261E-2 VATEX-FR-CGI277A VATEX-FR-CGI275 VATEX-FR-298SEXDECIESA VATEX-FR-CGI295 VATEX-FR-AE ', concat(' ', normalize-space(upper-case(.)), ' '))))

UBL

Kontext:

cbc:TaxExemptionReasonCode

Prüfausdruck:

((not(contains(normalize-space(.), ' ')) and contains(' VATEX-EU-79-C VATEX-EU-132 VATEX-EU-132-1A VATEX-EU-132-1B VATEX-EU-132-1C VATEX-EU-132-1D VATEX-EU-132-1E VATEX-EU-132-1F VATEX-EU-132-1G VATEX-EU-132-1H VATEX-EU-132-1I VATEX-EU-132-1J VATEX-EU-132-1K VATEX-EU-132-1L VATEX-EU-132-1M VATEX-EU-132-1N VATEX-EU-132-1O VATEX-EU-132-1P VATEX-EU-132-1Q VATEX-EU-135-1 VATEX-EU-143 VATEX-EU-143-1A VATEX-EU-143-1B VATEX-EU-143-1C VATEX-EU-143-1D VATEX-EU-143-1E VATEX-EU-143-1F VATEX-EU-143-1FA VATEX-EU-143-1G VATEX-EU-143-1H VATEX-EU-143-1I VATEX-EU-143-1J VATEX-EU-143-1K VATEX-EU-143-1L VATEX-EU-144 VATEX-EU-146-1E VATEX-EU-159 VATEX-EU-309 VATEX-EU-148 VATEX-EU-148-A VATEX-EU-148-B VATEX-EU-148-C VATEX-EU-148-D VATEX-EU-148-E VATEX-EU-148-F VATEX-EU-148-G VATEX-EU-151 VATEX-EU-151-1A VATEX-EU-151-1AA VATEX-EU-151-1B VATEX-EU-151-1C VATEX-EU-151-1D VATEX-EU-151-1E VATEX-EU-G VATEX-EU-O VATEX-EU-IC VATEX-EU-AE VATEX-EU-D VATEX-EU-F VATEX-EU-I VATEX-EU-J VATEX-FR-FRANCHISE VATEX-FR-CNWVAT VATEX-EU-153 VATEX-FR-CGI261-1 VATEX-FR-CGI261-2 VATEX-FR-CGI261-3 VATEX-FR-CGI261-4 VATEX-FR-CGI261-5 VATEX-FR-CGI261-7 VATEX-FR-CGI261-8 VATEX-FR-CGI261A VATEX-FR-CGI261B VATEX-FR-CGI261C-1 VATEX-FR-CGI261C-2 VATEX-FR-CGI261C-3 VATEX-FR-CGI261D-1 VATEX-FR-CGI261D-1BIS VATEX-FR-CGI261D-2 VATEX-FR-CGI261D-3 VATEX-FR-CGI261D-4 VATEX-FR-CGI261E-1 VATEX-FR-CGI261E-2 VATEX-FR-CGI277A VATEX-FR-CGI275 VATEX-FR-298SEXDECIESA VATEX-FR-CGI295 VATEX-FR-AE ', concat(' ', normalize-space(upper-case(.)), ' '))))

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