BR-DE-21Das Element "Specification identifier" (BT-24) soll syntaktisch der Kennung des Standards XRechnung entsprechen.
Official rule text
The specification identifier (BT-24) should be XRechnung's — exactly three values are accepted, and the rule only warns. It tells the recipient that the invoice was built to XRechnung, and in which variant.
- Severity
- Warning
- Applies to
- CII, UBL
- Rule set
- v2026-08-31
- Checked on
Written and checked against the official KoSIT rule set by Dmytro Yalanskyi, NormAPI.
Why does BR-DE-21 happen?
Commonly only the EN 16931 identifier is present without the XRechnung part, or the version is outdated, or the URN carries a typo. In the expression below the three accepted values appear as variable names only; they are written out in the next section.
What the validator checks
The expression the official KoSIT rule set evaluates — not paraphrased, but read from the Schematron file it ships. UBL and CII address different document trees, so the same rule reads differently in each.
- UBL
cbc:CustomizationID = $XR-CIUS-ID or cbc:CustomizationID = $XR-EXTENSION-ID or cbc:CustomizationID = $XR-CVD-IDVariables in it
- $XR-CIUS-ID
- concat('urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_', $XR-MAJOR-MINOR-VERSION )
- $XR-EXTENSION-ID
- concat($XR-CIUS-ID, '#conformant#urn:xeinkauf.de:kosit:extension:xrechnung_' ,$XR-MAJOR-MINOR-VERSION )
- $XR-CVD-ID
- concat($XR-CIUS-ID, '#compliant#urn:xeinkauf.de:kosit:xrechnung:cvd_' , $CVD-MAJOR-MINOR-VERSION )
- $XR-MAJOR-MINOR-VERSION
- '3.0'
- $CVD-MAJOR-MINOR-VERSION
- '0.9'
- CII
ram:GuidelineSpecifiedDocumentContextParameter/ram:ID = $XR-CIUS-ID or ram:GuidelineSpecifiedDocumentContextParameter/ram:ID = $XR-EXTENSION-ID or ram:GuidelineSpecifiedDocumentContextParameter/ram:ID = $XR-CVD-IDVariables in it
- $XR-CIUS-ID
- concat('urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_', $XR-MAJOR-MINOR-VERSION )
- $XR-EXTENSION-ID
- concat($XR-CIUS-ID, '#conformant#urn:xeinkauf.de:kosit:extension:xrechnung_' ,$XR-MAJOR-MINOR-VERSION )
- $XR-CVD-ID
- concat($XR-CIUS-ID, '#compliant#urn:xeinkauf.de:kosit:xrechnung:cvd_' , $CVD-MAJOR-MINOR-VERSION )
- $XR-MAJOR-MINOR-VERSION
- '3.0'
- $CVD-MAJOR-MINOR-VERSION
- '0.9'
Source: rule set v2026-08-31
How do you fix BR-DE-21?
Send the identifier of the variant you actually produce — as cbc:CustomizationID in UBL, in ram:GuidelineSpecifiedDocumentContextParameter/ram:ID in CII. For the CIUS that is urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0; the Extension appends #conformant#urn:xeinkauf.de:kosit:extension:xrechnung_3.0 to it, and the CVD variant appends #compliant#urn:xeinkauf.de:kosit:xrechnung:cvd_0.9. Mind the version: the identifier carries 3.0, not the rule set's patch version.
In the XML
A UBL fragment. The CII path is named above — same change, different element names.
<cbc:CustomizationID>urn:cen.eu:en16931:2017</cbc:CustomizationID><cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>Related rules
NormAPI provides technical validation, not tax or legal advice.