Cette page n’est pas encore disponible en français – voici la version anglaise.
XRechnung (règles nationales allemandes)

BR-DE-21: Invalid specification identifier (BT-24)

BT-24 must carry the XRechnung identifier – otherwise the invoice is not recognised as an XRechnung.

Fiche

Règle
BR-DE-21
Gravité
Avertissement – la facture reste valide
Référentiel
XRechnung 3.0 (KoSIT)
Champs concernés
BT-24
Syntaxe
CII & UBL

Vérifier votre facture

Déposez un PDF ou un XML – gratuit, sans inscription, selon les référentiels officiels.

Ouvrir le validateur en ligne

Libellé officiel

[BR-DE-21] Das Element "Specification identifier" (BT-24) soll syntaktisch der Kennung des Standards XRechnung entsprechen.

Source : Schematron officiel de la KoSIT pour XRechnung 3.0.

What the rule requires

The specification identifier (BT-24) states which standard the invoice follows. For XRechnung 3.0 it is exactly:

urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0

Apart from that, the rule only accepts the identifiers of the XRechnung extension and of the clean vehicles variant (CVD). BR-DE-21 is a warning, so the invoice stays formally valid. Receiving platforms, however, choose their checks based on BT-24 – a wrong identifier easily leads to rejection there.

Common causes

  • The patch version is part of the identifier, e.g. xrechnung_3.0.2 – only xrechnung_3.0 is valid.
  • The old namespace from XRechnung 2.x combined with the new version number: urn:xoev-de:kosit:standard:xrechnung_3.0.
  • Typos or trailing spaces, often in identifiers hard-coded in the software.
  • An even older identifier such as xrechnung_2.3: many validators then no longer recognise the invoice as XRechnung 3.0 and do not apply its rules.

What it looks like in XML

✗ CII – wrong (patch version)
<rsm:ExchangedDocumentContext>
    <ram:GuidelineSpecifiedDocumentContextParameter>
        <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0.2</ram:ID>
    </ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
✓ CII – correct
<rsm:ExchangedDocumentContext>
    <ram:BusinessProcessSpecifiedDocumentContextParameter>
        <ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>
    </ram:BusinessProcessSpecifiedDocumentContextParameter>
    <ram:GuidelineSpecifiedDocumentContextParameter>
        <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>
    </ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>

In UBL the same identifier goes into cbc:CustomizationID, the business process (BT-23) into cbc:ProfileID.

Fix in C#

In the Facturexa Creator you only choose the profile; the Creator writes the identifier itself. Also set the business process (BT-23) – XRechnung requires it via rule PEPPOL-EN16931-R001.

C#
invoice.BusinessProcess = "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0"; // BT-23

// The XRechnung profile writes the valid identifier to BT-24:
// urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0
invoice.Save(xmlStream, InvoiceProfile.XRechnung);

Règles associées

Toutes les règles expliquées