BR-DE-16Wenn in einer Rechnung die Steuercodes S, Z, E, AE, K, G, L oder M verwendet werden, muss mindestens eines der Elemente "Seller VAT identifier" (BT-31), "Seller tax registration identifier" (BT-32) oder "SELLER TAX REPRESENTATIVE PARTY" (BG-11) übermittelt werden.
Offizieller Regeltext
Bei den Steuercodes S, Z, E, AE, K, G, L oder M muss der Verkäufer steuerlich identifizierbar sein: USt-IdNr., Steuernummer oder BG-11. Gemeint sind die Umsatzsteuer-Identifikationsnummer (BT-31), die Steuernummer (BT-32) und der steuerliche Vertreter (BG-11) — eines der drei genügt.
- Schweregrad
- Fehler
- Gilt für
- CII, UBL
- Regelwerk
- v2026-08-31
- Geprüft am
Geschrieben und gegen das offizielle KoSIT-Regelwerk geprüft von Dmytro Yalanskyi, NormAPI.
Warum tritt BR-DE-16 auf?
Kleinunternehmer nach § 19 UStG verwenden den Code E und haben oft keine USt-IdNr. Dann fehlt häufig auch die Steuernummer, weil sie im bisherigen Rechnungslayout nie erfasst wurde. Der UBL-Ausdruck unten zeigt dabei Variablen statt Werte: supportedVATCodes steht für die acht Codes S, Z, E, AE, K, G, L und M, BT-31orBT-32Path für cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID mit Inhalt. Und die Syntaxen sind hier nicht deckungsgleich: in UBL zählt jede Kennung unter PartyTaxScheme, in CII nur eine Registrierung mit schemeID VA oder FC.
Was der Validator prüft
Der Ausdruck, den das offizielle KoSIT-Regelwerk auswertet — nicht paraphrasiert, sondern aus der ausgelieferten Schematron-Datei gelesen. UBL und CII adressieren verschiedene Dokumentbäume, deshalb steht dieselbe Regel je Syntax anders da.
- UBL
(not( ($BT-95-UBL-Inv = $supportedVATCodes or $BT-95-UBL-CN = $supportedVATCodes) or ($BT-102 = $supportedVATCodes) or ($BT-151 = $supportedVATCodes) ) or (cac:TaxRepresentativeParty, $BT-31orBT-32Path))Variablen darin
- $BT-95-UBL-Inv
- cac:AllowanceCharge/cac:TaxCategory/cbc:ID[ancestor::cac:AllowanceCharge/cbc:ChargeIndicator = 'false' and following-sibling::cac:TaxScheme/cbc:ID = 'VAT']
- $supportedVATCodes
- ('S', 'Z', 'E', 'AE', 'K', 'G', 'L', 'M')
- $BT-95-UBL-CN
- cac:AllowanceCharge/cac:TaxCategory/cbc:ID[ancestor::cac:AllowanceCharge/cbc:ChargeIndicator = 'false']
- $BT-102
- cac:AllowanceCharge/cac:TaxCategory/cbc:ID[ancestor::cac:AllowanceCharge/cbc:ChargeIndicator = 'true']
- $BT-151
- (cac:InvoiceLine | cac:CreditNoteLine)/cac:Item/cac:ClassifiedTaxCategory/cbc:ID
- $BT-31orBT-32Path
- cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID[boolean(normalize-space(.))]
- CII
not((rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode = 'VAT' and rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = ('S', 'Z', 'E', 'AE', 'K', 'G', 'L', 'M')) or (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax = 'VAT' and rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax/ram:CategoryCode = ('S', 'Z', 'E', 'AE', 'K', 'G', 'L', 'M')) or (rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode = 'VAT' and rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode = ('S', 'Z', 'E', 'AE', 'K', 'G', 'L', 'M'))) or ((rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[normalize-space(@schemeID)='VA' or normalize-space(@schemeID)='FC'][boolean(normalize-space(.))], rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty))
Quelle: Regelwerk v2026-08-31
Wie behebt man BR-DE-16?
Tragen Sie mindestens eines der drei Elemente ein. Ohne USt-IdNr. ist BT-32 (Steuernummer) der übliche Weg — in UBL als cac:PartyTaxScheme/cbc:CompanyID mit cac:TaxScheme/cbc:ID gleich FC, in CII als ram:SpecifiedTaxRegistration/ram:ID mit schemeID FC.
Im XML
Ausschnitt in UBL. Der CII-Pfad steht oben im Text — dieselbe Änderung, andere Elementnamen.
<cac:Party>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Muster GmbH</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party><cac:Party>
<cac:PartyTaxScheme>
<cbc:CompanyID>12/345/67890</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>FC</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Muster GmbH</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>Verwandte Regeln
NormAPI liefert technische Validierung, keine Steuer- oder Rechtsberatung.