Automation MCP Server Features Blog Pricing Contact
Validation rule XRechnung CIUS

BR-DE-15

The buyer reference (BT-10) is mandatory in XRechnung, and in German public-sector invoicing it carries the Leitweg-ID that routes the invoice to the right office. BR-DE-15 is the rule that fires when it is missing: the single most searched-for XRechnung rejection.

What BR-DE-15 checks

BR-DE-15 requires that an XRechnung contain a buyer reference: element BT-10, cbc:BuyerReference in UBL, ram:BuyerReference in CII. The European core model treats the field as optional; the German CIUS makes it mandatory because the public sector uses it for routing. A German authority's invoice inbox is addressed by the Leitweg-ID, and BT-10 is where that identifier travels. No buyer reference, no routing, so the KoSIT rules reject the document outright.

Layer and formats

The rule belongs to the XRechnung overlay, so findings carry "layer": "cius". It fires whenever a document is validated against the XRechnung profile: pure XML invoices in UBL or CII syntax, and ZUGFeRD or Factur-X hybrids whose specification identifier declares the XRechnung profile. It never fires in the en16931 core layer, which is why the same file can pass a generic EN 16931 check and still bounce at a German B2G platform.

Why it fails in practice

  • The Leitweg-ID never made it into the data. The buyer communicated it on the order, but the billing system has no field for it, so BT-10 goes out empty.
  • B2B XRechnung without an agreed reference. XRechnung is increasingly used between companies, where no Leitweg-ID exists. The field is still mandatory; the parties need to agree on a reference.
  • The value is mapped to the wrong element. A purchase order reference (BT-13) does not satisfy BR-DE-15, even when it holds the same string.

How to fix it

In the XML, add the reference under the invoice root:

<cbc:BuyerReference>04011000-1234512345-06</cbc:BuyerReference>

In an InvoiceXML create request the same field is invoice.buyerReference, a plain string at the top level of the document. Set it to the Leitweg-ID for public-sector buyers, or to the reference the buyer asked for.

The raw rejection vs the InvoiceXML finding

A Schematron validator reports BR-DE-15 in the words of the German rule text, attached to an XPath:

<svrl:failed-assert id="BR-DE-15" flag="fatal"
    location="/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]">
  <svrl:text>[BR-DE-15] Das Element "Buyer reference" (BT-10)
    muss übermittelt werden.</svrl:text>
</svrl:failed-assert>

The InvoiceXML validators return the same failure as a finding you can hand straight to your UI:

{
  "rule": "BR-DE-15",
  "layer": "cius",
  "line": null,
  "message": "The buyer must have a reference (Leitweg-ID). This is mandatory for German public sector invoices.",
  "btCodes": ["BT-10"],
  "fields": ["buyerReference"],
  "raw": "[BR-DE-15] CIUS: Das Element \"Buyer reference\" (BT-10) muss übermittelt werden."
}

You never parse rule codes or translate German rule prose for your customers: the message is already human-readable, and fields names the exact input to highlight in your form. Because the message table is keyed by rule code, clients that want their own wording (or another language) can localize by rule and still rely on btCodes and fields for the mapping.

Check or generate XRechnung documents

Paste a suspect file into the XRechnung validator to see every finding with rule, layer, and field path, or let POST /v1/create/xrechnung produce the document from JSON: a missing buyerReference is then a clean model-validation error before any XML exists. The XRechnung API toolkit walks through the full integration.

Frequently asked questions

Is the buyer reference always a Leitweg-ID?

No. BT-10 is a generic buyer reference in EN 16931. XRechnung makes the field mandatory, and German public-sector buyers fill it with their Leitweg-ID, the routing identifier issued to each authority. For a B2B XRechnung the buyer can specify any reference; if they gave you none, an agreed placeholder between the parties satisfies the rule.

Where do I get the Leitweg-ID from?

From the buyer. Every German public-sector body that receives e-invoices publishes or communicates its Leitweg-ID, usually on the purchase order or in the tender documents. It is not something you can derive or look up centrally; if it is missing from the order, ask the contracting authority.

Why does my invoice pass EN 16931 validation but fail with BR-DE-15?

Because BT-10 is optional in the European core. The requirement comes from the German CIUS overlay, so the finding appears in the cius layer only when the document is validated as XRechnung. The same file validated under the plain en16931 profile passes.

Does BR-DE-15 apply to ZUGFeRD invoices?

It does as soon as the ZUGFeRD or Factur-X document declares the XRechnung profile in BT-24. A hybrid PDF is then validated against the KoSIT rules like any other XRechnung, including BR-DE-15.