Account
English

BR-DE-21: Specification identifier is not the XRechnung identifier

XRechnung rule · Warning · UBL / CII

StandardXRechnung 3.0.2 (KoSIT, German CIUS of EN 16931)SeverityWarning: the invoice is accepted but should be correctedSyntaxUBL, CIIBusiness terms
  • BT-24 Specification identifier
Applies toXRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it.

Official rule text

[BR-DE-21] The element "Specification identifier" (BT-24) shall syntactically correspond to the identifier of the XRechnung standard.

Official text (German): Das Element "Specification identifier" (BT-24) soll syntaktisch der Kennung des Standards XRechnung entsprechen.

Why this error occurs

An XRechnung must announce itself with the exact XRechnung specification identifier in BT-24. The rule compares cbc:CustomizationID (UBL) or ram:GuidelineSpecifiedDocumentContextParameter/ram:ID (CII) with the identifiers of the XRechnung CIUS, the XRechnung Extension and the Clean Vehicles Directive variant and warns on any other value. It fires when an old XRechnung 2.x identifier (urn:xoev-de:kosit:standard:xrechnung_2.3) is still configured, when the Peppol BIS identifier is used, or when the value has trailing whitespace.

How to fix it

Set cbc:CustomizationID / ram:GuidelineSpecifiedDocumentContextParameter/ram:ID to urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 for a standard XRechnung 3.x document; when using the Extension (sub-invoice lines, third-party payment) append #conformant#urn:xeinkauf.de:kosit:extension:xrechnung_3.0. Copy the string exactly, in one line, with no spaces. Update the value when you migrate to a new XRechnung version; the receiver's validator checks against the versions currently in force.

Example (valid)

<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>

What the validator checks

Checked element (context):

UBL

/ubl:Invoice | /cn:CreditNote

Test (XPath):

cbc:CustomizationID = $XR-CIUS-ID or                     cbc:CustomizationID = $XR-EXTENSION-ID or                     cbc:CustomizationID = $XR-CVD-ID

CII

/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext

Test (XPath):

ram:GuidelineSpecifiedDocumentContextParameter/ram:ID = $XR-CIUS-ID or                     ram:GuidelineSpecifiedDocumentContextParameter/ram:ID = $XR-EXTENSION-ID or                     ram:GuidelineSpecifiedDocumentContextParameter/ram:ID = $XR-CVD-ID

Check your invoice

Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.

Check your invoice →

Same check via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Related rules

Frequently asked questions

What does BR-DE-21 mean?

BR-DE-21 is a xrechnung rule: The element "Specification identifier" (BT-24) shall syntactically correspond to the identifier of the XRechnung standard.

Will my invoice be rejected because of BR-DE-21?

No. BR-DE-21 is a warning: the invoice is accepted but the recipient sees the notice. Fix it anyway, warnings often become errors in later rule versions.

Which formats does BR-DE-21 apply to?

XRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it. Syntax: UBL and CII.

Source: XRechnung 3.0.2, schematron 2.6.0 (KoSIT, September 2026). Catalogue generated from the official schematron on 2026-10-14.