Guide

Leitweg-ID for developers

A missing or malformed BT-10 is one of the most frequent rejections when sending XRechnung to German public buyers. What the id is, which format applies, and where it goes in your JSON.

Updated on

What is the Leitweg-ID?

The Leitweg-ID routes the invoice to the right public-sector recipient in Germany. In EN 16931 the field is Buyer reference (BT-10). XRechnung makes it mandatory for public procurement — rule BR-DE-15.

Germany has required e-invoices from suppliers to its federal administration since 27 November 2020 (E-Rechnungsverordnung), and the federal submission platforms ZRE and OZG-RE route every invoice by its Leitweg-ID. Your public-sector customer assigns the id — it arrives with the purchase order, not from a lookup service.

What format does a Leitweg-ID have?

Three segments joined by dashes: {coarse}-{fine}-{check}, e.g. 04011000-1234512345-06.

SegmentRuleExample
Coarse addressing (Grobadressierung)2–12 digits04011000
Fine addressing (Feinadressierung, optional)1–30 alphanumeric characters1234512345
Check digits (Prüfziffer)exactly 2 digits06

Note: Official KoSIT Schematron for BR-DE-15 only checks presence — not syntax. Format checking is normbill tier-1 (NB-LEITWEG-FORMAT).

Where does the Leitweg-ID go in the API request?

{
  "format": "xrechnung-3.0",
  "invoice": {
    "buyer_reference": "04011000-1234512345-06",
    ...
  }
}

If the field is missing, generate returns 422 with path: "invoice.buyer_reference" and a concrete fix — not only the raw Schematron text.

Which validation rules check the Leitweg-ID?

RuleLayerWhat it checks
BR-DE-15KoSIT validator (tier 3, authoritative)Buyer reference must be present
NB-LEITWEG-FORMATnormbill pre-flight (tier 1)Format matches the pattern above — syntax issues surface before the sidecar

Where next?

Validator · Playground · Docs · OSS vs API

Deutsche Version →

Spotted something?

Bug, missing feature, wrong validation result — tell us. The page you're on is attached automatically; email optional.