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-ID

Variables 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-ID

Variables 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.

Fails
<cbc:CustomizationID>urn:cen.eu:en16931:2017</cbc:CustomizationID>
Fixed
<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.