Error codes

BR-01: Specification identifier (BT-24) is missing

Severity: fatal · Syntax: CII, UBL

Official message

An Invoice shall have a Specification identifier (BT-24).

What this means

An invoice needs a specification identifier (BT-24). The UBL assertion checks normalize-space(cbc:CustomizationID) != ''. In CII the same value sits in GuidelineSpecifiedDocumentContextParameter/ram:ID. Empty or whitespace-only fails.

Typical cause

The export has no CustomizationID element, or it is an empty placeholder.

How to fix it

For XRechnung 3.0 set the identifier to urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0. BR-01 only checks that a value is present. Whether it is the XRechnung identifier is BR-DE-21.

UBL

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

CII

<ram:GuidelineSpecifiedDocumentContextParameter>
  <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>

Business term

BT-24

Related rules

Context and assertion

UBL /ubl:Invoice | /cn:CreditNote

CII /rsm:CrossIndustryInvoice

UBL

normalize-space(cbc:CustomizationID) != ''

CII

normalize-space(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID) != ''

Check a file now, free of charge

curl -F "file=@rechnung.xml" https://checkxrechnung.com/v1/validate

Questions

What does BR-01 actually check?

An invoice needs a specification identifier (BT-24). The UBL assertion checks normalize-space(cbc:CustomizationID) != ''. In CII the same value sits in GuidelineSpecifiedDocumentContextParameter/ram:ID. Empty or whitespace-only fails.

How do I fix BR-01?

For XRechnung 3.0 set the identifier to urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0. BR-01 only checks that a value is present. Whether it is the XRechnung identifier is BR-DE-21.

If BR-01 passes, is the invoice legally compliant?

No. This page helps you read this one Schematron assertion. A pass is not a statement about tax law, portal acceptance, or bank overlays.