Back to blogCountry Guides

XRechnung Validation Errors: A Complete Guide for German Businesses

The most common XRechnung validation errors, why they happen, and how to fix each one. Practical guidance for anyone sending e-invoices in Germany.

Invoice Navigator TeamJune 2, 202611 min read

You generated an XRechnung invoice, ran it through validation, and got a wall of errors. Now what?

XRechnung is Germany's national e-invoicing standard — a CIUS (Core Invoice Usage Specification) built on top of the European EN 16931 standard. It adds a set of German-specific business rules, prefixed BR-DE, that go beyond what the European standard requires. These rules enforce things like mandatory payment information, the Leitweg-ID for government invoices, and specific seller contact details.

This guide covers the most common BR-DE validation errors that trip up German businesses, explains why each rule exists, and tells you how to fix it. If you're looking for the deep technical reference with XML examples for every single rule, see our developer-focused BR-DE troubleshooting guide.

Understanding XRechnung Validation

When you validate an XRechnung invoice, the validation engine checks three layers of rules:

Layer 1: Schema validation. Does the XML structure match the expected schema? Are required elements present? Are data types correct? This catches malformed XML — missing closing tags, wrong element names, invalid date formats.

Layer 2: EN 16931 business rules (BR-*). Does the invoice satisfy the core European requirements? These are rules like "Invoice total must equal the sum of line totals" (BR-CO-10) or "VAT category tax amount must equal the category taxable amount times the rate" (BR-CO-14). Every EN 16931-compliant invoice must pass these.

Layer 3: German CIUS rules (BR-DE-*). Does the invoice satisfy Germany's additional requirements? This is where XRechnung adds its own constraints. An invoice can be perfectly valid EN 16931 and still fail XRechnung validation because it's missing something Germany specifically requires.

Most of the errors businesses encounter fall in Layer 3 — the BR-DE rules. You built a valid European invoice, but you didn't account for what Germany wants on top.

The Most Common BR-DE Errors

Let's walk through the errors that cause the most trouble, grouped by what part of the invoice they affect.

Payment Information Errors

Germany takes payment information seriously. Where the European standard makes some payment details optional, XRechnung makes them mandatory.

BR-DE-1 — Payment Instructions Required

Every XRechnung invoice must include payment instructions (Business Group BG-16). This means you need a PaymentMeans element with at least a payment method code and, for bank transfers, the payee's IBAN.

This is the single most common XRechnung error we see. It happens because many accounting systems treat payment details as optional metadata — after all, the European standard doesn't strictly require them. But XRechnung does, every time.

BR-DE-2 — Payment Group Must Be Present

Related to BR-DE-1, this rule requires that the payment means group is actually populated with meaningful data. Having an empty PaymentMeans block isn't enough — the payment method code and financial account details need to be there.

BR-DE-10 — Skonto (Cash Discount) Format

If you offer early payment discounts (Skonto), the format must follow a specific structure in the payment terms field. Germany uses a structured text format for Skonto that many systems get wrong. The format is #SKONTO#TAGE=14#PROZENT=2.00#, and getting the delimiters or field names wrong triggers this error.

BR-DE-18 — Extended Skonto Validation

Similar to BR-DE-10, this validates the Skonto information when a basis amount is specified. If you include a Skonto term with a basis amount, BR-DE-18 checks that the format and values are consistent.

Buyer and Routing Errors

XRechnung invoices sent to German government entities need routing information that commercial invoices don't typically carry.

BR-DE-15 — Buyer Reference Mandatory

Every XRechnung invoice must include a Buyer Reference (BT-10). For B2G invoices, this is typically the Leitweg-ID — a routing code that tells the government's receiving system where to deliver the invoice. For B2B invoices, it can be any agreed-upon reference.

If your invoice is missing BT-10 entirely, you'll hit this error. This catches a lot of businesses transitioning from PDF invoicing, where buyer references were optional metadata rather than a structural requirement.

BR-DE-5 — Leitweg-ID Format

When the Buyer Reference is a Leitweg-ID (the standard routing code for German public sector invoices), it must follow a specific format: a series of numbers separated by hyphens, with a check digit. The pattern is typically something like 04011000-12345-67. Getting the format wrong — wrong number of segments, missing check digit, invalid characters — triggers this error.

Note: this rule only applies when the Buyer Reference follows the Leitweg-ID pattern. B2B invoices using other reference formats won't trigger it.

Seller Information Errors

Germany requires more seller information than the European base standard.

BR-DE-17 — Seller Contact Required

The seller must include contact information — specifically a contact name, telephone number, and email address. All three are required. Many invoicing systems include the company name and address but skip the individual contact details, which triggers this error.

This rule exists because German procurement processes often need a specific person to contact about invoice queries, not just a general company address.

BR-DE-3 — VAT ID or Tax Number Required

The seller must provide either a VAT identification number (USt-IdNr.) or a tax number (Steuernummer). This is stricter than the European standard, which is more flexible about seller tax identification. If your system omits both, you'll get this error.

BR-DE-16 — Seller Tax Registration

Related to BR-DE-3, this rule ensures that the seller's tax registration information is properly structured. The VAT ID must follow the expected format (DE followed by 9 digits for German VAT IDs).

Format and Profile Errors

BR-DE-4 — Invalid XRechnung Profile

The invoice must declare the correct XRechnung specification identifier. The current value is urn:cen.eu:en16931:2017#compliant#urn:xrechnung:3.0. If your system generates an older version string or a malformed identifier, this error fires.

This is a common issue after XRechnung version updates. If you implemented XRechnung 2.x and haven't updated the specification identifier to 3.0, every invoice will fail this check.

BR-DE-21 — Specification Identifier Format

The CustomizationID (BT-24) must contain a valid specification identifier. This catches more subtle formatting issues with the identifier string.

Other Notable Rules

BR-DE-7 — German Postal Code Format

When the seller or buyer address is in Germany, the postal code must be a valid 5-digit German PLZ. This catches addresses with missing or malformed postal codes.

BR-DE-13 — Delivery Date

An invoice must include either an invoice delivery date or an invoicing period. Many systems only include the invoice issue date and skip the delivery information, which isn't enough for XRechnung.

BR-DE-19 — IBAN Format

When a bank account is provided for payment, the IBAN must follow the correct format. This catches typos, wrong country prefixes, and invalid check digits in IBANs.

BR-DE-22 — Unique Attachment Filenames

If your invoice includes document-level attachments, each attachment must have a unique filename. Duplicate filenames across attachments trigger this error.

B2G vs B2B: Different Requirements

One source of confusion is that XRechnung rules apply differently depending on whether you're invoicing a government entity (B2G) or a private business (B2B).

For B2G invoices:

  • Leitweg-ID is mandatory as the Buyer Reference
  • Invoices must be submitted through the government's receiving platforms (ZRE at the federal level, or state-specific platforms like OZG-RE)
  • The Leitweg-ID format is strictly validated (BR-DE-5)

For B2B invoices:

  • Buyer Reference (BT-10) is still mandatory, but it doesn't need to be a Leitweg-ID — any agreed reference works
  • Direct exchange between trading partners is allowed (no mandatory government platform)
  • All other BR-DE rules still apply

How to Validate Your XRechnung Invoices

The official way to validate XRechnung invoices is through the KOSIT validator, maintained by the Koordinierungsstelle für IT-Standards. It's open source but requires Java and some setup to run locally.

For a faster check, use the Invoice Navigator validator — upload your invoice file and get instant results showing which BR-DE rules pass and which fail, with explanations for each error. You can also use the dedicated XRechnung validator for a format-specific experience.

When you encounter errors, the error pages in our country-specific error library provide detailed explanations with XML examples for both UBL and CII syntaxes.

Validation Checklist

Before submitting any XRechnung invoice, verify:

  • Payment instructions are included with a valid payment method code and IBAN
  • Buyer Reference (BT-10) is present — Leitweg-ID for B2G, agreed reference for B2B
  • Seller contact includes name, phone, and email (all three)
  • Seller has either VAT ID or tax number
  • Specification identifier matches urn:cen.eu:en16931:2017#compliant#urn:xrechnung:3.0
  • Delivery date or invoicing period is included
  • German postal codes are valid 5-digit format
  • Any Skonto terms follow the correct structured format
  • Attachment filenames are unique

Staying Current

XRechnung is a living standard. KOSIT releases updates roughly annually, and each update can add, modify, or deprecate business rules. The transition from XRechnung 2.x to 3.0 in 2024 changed several rules and updated the specification identifier.

Keep an eye on:

  • KOSIT releases: New validator configurations and rule updates
  • XRechnung specification: Changes to business rules and syntax bindings
  • Government platform updates: Changes to ZRE and state-level receiving platforms

The Germany country page tracks the latest regulatory changes and deadlines. For the complete technical reference on every BR-DE rule with code examples, see our BR-DE validation error guide for developers.

FAQ

What is a BR-DE error in XRechnung?

BR-DE errors are validation failures specific to Germany's XRechnung standard. The prefix "BR-DE" stands for Business Rule - Deutschland. These rules add requirements on top of the European EN 16931 standard — things like mandatory payment information, seller contact details, and the Leitweg-ID format. An invoice can be valid EN 16931 but still fail XRechnung validation due to BR-DE rules.

What is the most common XRechnung validation error?

BR-DE-1 (missing payment instructions) is the most frequently encountered error. Many accounting systems treat payment details as optional because the European base standard doesn't strictly require them. XRechnung requires payment instructions on every invoice, including the payment method code and payee bank details.

What is a Leitweg-ID and when do I need one?

A Leitweg-ID is a routing code used in German public sector e-invoicing. It tells the government's receiving system which department or entity should receive the invoice. You need one when sending B2G (business-to-government) invoices. For B2B invoices, the Buyer Reference field is still required but doesn't need to be a Leitweg-ID — any agreed-upon reference value works.

Does XRechnung apply to B2B invoices in Germany?

Yes, increasingly. Since January 2025, all German businesses must accept XRechnung (and other EN 16931-compliant formats) for B2B transactions. The sending mandate begins January 2027 for larger businesses and January 2028 for all others. All BR-DE validation rules apply to B2B invoices except for the Leitweg-ID format check, which is B2G-specific.

How is XRechnung different from ZUGFeRD?

XRechnung is a pure XML format (available in UBL or CII syntax) with strict German business rules. ZUGFeRD is a hybrid format that embeds XML inside a PDF. Both are EN 16931 compliant and accepted in Germany. The key difference: XRechnung has the BR-DE validation rules baked in, while ZUGFeRD invoices need to be validated separately against those rules. For more detail, see our XRechnung vs ZUGFeRD comparison.

Where can I find all the BR-DE error codes?

Our error library for Germany lists every BR-DE error with explanations and fixes. For the complete developer reference with XML examples, see the BR-DE validation error guide. You can also validate any invoice against all BR-DE rules using the Invoice Navigator validator.

What XRechnung version should I use in 2026?

As of 2026, XRechnung 3.0.x is the current version. Your invoice must use the specification identifier urn:cen.eu:en16931:2017#compliant#urn:xrechnung:3.0. Using older version identifiers (2.x) will trigger a BR-DE-4 validation error. Check the KOSIT website for the latest validator configuration version.

Check Your Compliance Status

Find out exactly what your business needs to do for e-invoicing compliance.

Use Obligation Finder