Automation MCP Server Features Blog Pricing Contact
XRechnung 3.0 in force · KoSIT Schematron 2.5.0 · UBL + CII

XRechnung API for German B2G compliance

German public buyers do not read invoices; their reception platforms do, checking conformity with the XRechnung specification and bouncing whatever misses a BR-DE rule or a Leitweg-ID. InvoiceXML validates with the same official artifacts, specification 3.0.2 and KoSIT Schematron 2.5.0, in both UBL and CII. The first time your invoice meets the portal is not the first time it has been checked. And when 4.0 arrives, the move is a config flag, not a migration.

POST /v1/create/xrechnung · version pinned
curl -X POST https://api.invoicexml.com/v1/create/xrechnung \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{ "invoice": { ... }, "options": { "version": "3.0" } }'
200 OK · stamp equals validation
{
  "valid": true,
  "data": {
    "profile": "xrechnung",
    "customizationId": "urn:cen.eu:en16931:2017#compliant#
      urn:xeinkauf.de:kosit:xrechnung_3.0"
  }
}
Routes & syntaxes

Four ways XRechnung shows up. One verdict.

XRechnung is a CIUS, not a syntax: it legally exists in both UBL and CII, and in the wild it also arrives wrapped in hybrid PDFs or stamped with retired identifiers. Every route lands in the right rule set without you declaring anything.

Route How it's created How it's recognized What we run
XRechnung in CII POST /v1/create/xrechnung BT-24 names the KoSIT guideline EN 16931 + KoSIT Schematron 2.5.0, CII binding
XRechnung in UBL /v1/create/ubl · profile: xrechnung CustomizationID read from the document EN 16931 + KoSIT Schematron 2.5.0, UBL binding
ZUGFeRD XRechnung reference profile Arrives from suppliers as a hybrid PDF The xrechnung.xml attachment is extracted automatically The same KoSIT rules, end to end
Retired XRechnung 2.x Legacy systems still emit it 2.x identifiers, invalid since February 2024 Reported clearly as retired, never silently passed
Every response echoes data.profile and data.customizationId, so which rulebook ran is part of the record. Identifiers we hold no dedicated rules for fall back to the EN 16931 core with a PROFILE-DETECTION warning, not an invented failure. The UBL syntax side has its own deep dive on the UBL hub.
The 4.0 transition plan

XRechnung 4.0 is coming. Your integration won't notice.

KoSIT has announced XRechnung 4.0, the German CIUS of the revised EN 16931, for late 2026; an effective date has not been set. Our handling is already written down: a new version becomes opt-in via options.version during the authority's transition window, the default flips on the effective date, and the outgoing version stays pinnable until its sunset. Upgrading early is one field; doing nothing is also a valid plan. 2.x went out through the same machinery: its identifiers stopped being valid in February 2024, and our validator says so instead of guessing.

Read the version lifecycle policy
On the radar
XRechnung 4.0

Announced for late 2026, effective date pending. When the window opens: opt in early with options.version, or do nothing and ride the default flip.

xrechnung version: 3.0 Watching
Validation response

BR-DE findings you can route to a form field

The BR-DE family is where XRechnung gets German: seller contact details, payment instructions, the Leitweg-ID. Each finding names the rule, the layer, the business terms involved, and the JSON path to light up in your UI.

layer: ciusA KoSIT rule objected: the German overlay, BR-DE and friends.
layer: en16931The European core objected; this fails in any member state, not only in Germany.
layer: xsdStructural damage; the rule layers were never reached.

No decoding sessions with the Schematron source: the message already says what to add and where.

422 · the platform would reject this
{
  "valid": false,
  "data": {
    "profile": "xrechnung",
    "customizationId": "urn:cen.eu:en16931:2017#compliant#
      urn:xeinkauf.de:kosit:xrechnung_3.0"
  },
  "errors": [
    {
      "rule": "BR-DE-15",
      "layer": "cius",
      "message": "The buyer must have a reference
        (Leitweg-ID). This is mandatory for
        German public sector invoices.",
      "btCodes": ["BT-10"],
      "fields": ["buyerReference"]
    }
  ]
}
Coverage

One format for Germany's whole timeline

XRechnung began as procurement plumbing and became the reference point of German e-invoicing. Under the B2B rules it qualifies as an e-invoice outright, so the same documents serve ministries and Mittelstand.

Federal B2G
OZG-RE, which absorbed the ZRE in 2025, receives federal invoices and checks XRechnung conformity
xrechnung
B2B reception, live
Since January 2025 every German business must be able to receive e-invoices
xrechnung
B2B issuance, 2027
Mandatory for businesses with turnover above EUR 800k
xrechnung
B2B issuance, 2028
Mandatory for everyone
xrechnung

Directive 2014/55/EU set the European floor, and the federal portal documentation lives at e-rechnung-bund.de. For how Germany fits the wider rollout, see the Mandate Map.

FAQ

Asked by teams selling to German buyers

01Which XRechnung version do you produce and validate?
Specification 3.0, in force in Germany since February 2024, using artifacts 3.0.2 and KoSIT Schematron 2.5.0. Retired 2.x identifiers are reported as exactly that, retired, with a clear finding instead of a silent pass or a cryptic failure.
02UBL or CII: which syntax should I send?
Whichever your counterpart prefers; both are first-class XRechnung. POST /v1/create/xrechnung emits the CII binding, /v1/create/ubl with profile xrechnung emits UBL. On validation you declare nothing: syntax and profile are detected from the file.
03Where does the Leitweg-ID go?
Into BT-10, the buyer reference (buyerReference in our JSON model). German public-sector buyers route invoices internally with it, and rule BR-DE-15 makes it mandatory; when it is missing, the finding points at the exact field to fix.
04Will XRechnung 4.0 break my integration?
No. 4.0 is announced for late 2026 without an effective date yet. When the transition window opens you can pin options.version to adopt it early; on the effective date the default flips; until the sunset you can keep pinning 3.0. The policy is published on our versioning page.
05Can you read the ZUGFeRD XRechnung reference profile PDFs?
Yes. Hybrid PDFs carrying an xrechnung.xml attachment are recognized, the embedded XML is extracted, and the KoSIT rules run against it like any other XRechnung.
06Does XRechnung work for German B2B, not just government?
Yes. Under the German B2B rules, in force for reception since January 2025, XRechnung qualifies as an e-invoice. If your counterparties expect a PDF they can open, the hybrid ZUGFeRD route pairs with it, and both come from the same API.
Start free today

Ready to automate your invoices?

Validate, convert and embed compliant e-invoices through one API. Start your 30-day free trial. No credit card required.

GDPR Compliant No credit card required Setup in minutes
Peppol UBL
Factur-X
EN 16931
142 / 142 passed
Compliant
PDF/A-3 embedded