← Back to all articles

XRechnung validation errors: every BR-DE rule explained, with the fix

SealDoc Team · · 8 min read

An XRechnung has to pass two layers of rules. The first is the European standard EN 16931. The second is the German national layer, the BR-DE rules. Many invoices that pass EN 16931 still stop at that second layer: a missing Leitweg-ID, an incomplete seller contact, missing payment instructions.

This article lists every BR-DE rule of XRechnung 3.0, grouped by part of the invoice, with the field it checks and the fix.

What the BR-DE rules are

XRechnung is the German specification of EN 16931, the CIUS built for invoices to German public administration. The BR-DE rules are what XRechnung adds on top of the European standard. Every validation message starts with the rule number, such as [BR-DE-15], followed by the German text of the rule.

The rules come in two strengths. A rule that says “muss” (must) is an error: the invoice is invalid. A rule that says “soll” (should) is a warning: the invoice stays valid, but the receiver will notice. In XRechnung 3.0, BR-DE-17, 19, 20, 21, 26, 27 and 28 are warnings. All others are errors. The numbers 12, 13 and 29 are not used.

Seller rules

RuleTypeWhat it checksThe fix
BR-DE-2ErrorThe seller contact group (BG-6) is presentAdd a contact person or department, with phone and email
BR-DE-3ErrorSeller city (BT-37)Fill in the city of the seller address
BR-DE-4ErrorSeller post code (BT-38)Fill in the post code of the seller address
BR-DE-5ErrorSeller contact point (BT-41)Name a person or department
BR-DE-6ErrorSeller contact telephone number (BT-42)Add a phone number
BR-DE-7ErrorSeller contact email address (BT-43)Add an email address
BR-DE-27WarningBT-42 contains at least three digitsUse a real phone number, not a placeholder
BR-DE-28WarningBT-43 is a well-formed email addressExactly one @, with at least two characters on both sides
BR-DE-16ErrorWith VAT category S, Z, E, AE, K, G, L or M: the seller VAT identifier (BT-31), the seller tax registration identifier (BT-32) or a tax representative (BG-11)Add the VAT ID, or the German Steuernummer in BT-32

The seller contact is easy to miss in an ERP export: the company address is there, but a contact person, phone number and email are not. Four separate errors, BR-DE-2, 5, 6 and 7, then hit the same invoice at once.

Buyer and delivery rules

RuleTypeWhat it checksThe fix
BR-DE-15ErrorBuyer reference (BT-10)For public buyers: the Leitweg-ID. For businesses: the reference your buyer expects
BR-DE-8ErrorBuyer city (BT-52)Fill in the city of the buyer address
BR-DE-9ErrorBuyer post code (BT-53)Fill in the post code of the buyer address
BR-DE-10ErrorDeliver to city (BT-77), when a delivery address (BG-15) is givenComplete the delivery address, or leave the group out
BR-DE-11ErrorDeliver to post code (BT-78), when a delivery address (BG-15) is givenComplete the delivery address, or leave the group out

BR-DE-15 is the one rule that needs input from your buyer. A German public body gives every supplier a Leitweg-ID, the routing identifier for its invoices. It belongs in BT-10. Ask your buyer for it: it is usually in the order or the contract.

Payment rules

RuleTypeWhat it checksThe fix
BR-DE-1ErrorPayment instructions (BG-16) are presentAdd the payment means and the payment details
BR-DE-23-aErrorWith payment means 30 or 58 (credit transfer): the credit transfer group (BG-17)Add the IBAN of the account to pay to
BR-DE-23-bErrorWith 30 or 58: no card (BG-18) or direct debit (BG-19) groupRemove the groups that belong to other payment means
BR-DE-24-aErrorWith 48, 54 or 55 (card payment): exactly one card group (BG-18)Add the card details
BR-DE-24-bErrorWith 48, 54 or 55: no BG-17 or BG-19Remove the other payment groups
BR-DE-25-aErrorWith 59 (SEPA direct debit): exactly one direct debit group (BG-19)Add the direct debit details
BR-DE-25-bErrorWith 59: no BG-17 or BG-18Remove the other payment groups
BR-DE-30ErrorWith a direct debit (BG-19): the creditor identifier (BT-90)Add your SEPA creditor identifier
BR-DE-31ErrorWith a direct debit (BG-19): the debited account (BT-91)Add the buyer’s IBAN
BR-DE-19WarningWith 58: BT-84 holds a valid IBANCheck the IBAN for typos
BR-DE-20WarningWith 59: BT-91 holds a valid IBANCheck the IBAN for typos
BR-DE-18ErrorA cash discount (Skonto) in the payment terms (BT-20) follows the prescribed formatWrite it exactly as #SKONTO#TAGE=14#PROZENT=2.00#

The Skonto format of BR-DE-18 is strict. Every entry starts with #, the segments are separated by #, and the line ends with # followed by a line break. Everything is in capitals, the percentage has two decimals with a point, and no extra spaces are allowed. If the discount applies to only part of the amount due, add BASISBETRAG=n as a fourth segment.

VAT and document rules

RuleTypeWhat it checksThe fix
BR-DE-14ErrorVAT category rate (BT-119)Give the rate in every VAT breakdown, also when it is 0
BR-DE-17WarningInvoice type code (BT-3) is 326, 380, 381, 384, 389, 875, 876 or 877Use one of these codes; see the EN 16931 code lists
BR-DE-26WarningA corrected invoice (384) refers to the preceding invoice (BG-3)Add the number and date of the invoice it corrects
BR-DE-21WarningThe specification identifier (BT-24) is the XRechnung identifierUse urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0
BR-DE-22ErrorEvery attachment has a unique filenameRename duplicate attachments

How to validate an XRechnung for free

Our free XRechnung validator takes an XRechnung as CII or UBL XML, or as a PDF with the XML embedded. It runs the EN 16931 rules and the BR-DE rules of XRechnung 3.0, using the open-source Mustang validator. Every finding names its rule, such as [BR-DE-15], and points to the place in the XML. No account needed.

Fix the errors first, then the warnings. Run the file again after every change: one missing group can trigger several rules, and they disappear together.

Why an XRechnung from SealDoc passes

SealDoc creates XRechnung invoices in the app and through the API, and it never hands over an invoice that fails these rules:

  • The right data up front. SealDoc asks for exactly what BR-DE needs before the invoice is built: the buyer reference, a seller contact with phone and email, and an IBAN when there is something to pay.
  • Validated before delivery. Every XRechnung is checked against EN 16931 and the BR-DE rules before SealDoc seals it. An invoice with an error is not delivered.
  • Both forms. You get the XRechnung XML itself, and a readable PDF/A-3 with that XML embedded.

Read how to create an XRechnung for the required fields, or see what XRechnung 3.0 changed. Everything about the German obligation is on our page on e-invoicing in Germany.

Frequently asked questions

What does BR-DE-15 mean?

The buyer reference (BT-10) is missing. For a German public buyer that is the Leitweg-ID. For a business buyer it is the reference they ask you to quote.

Where do I find the Leitweg-ID?

Your public buyer provides it, usually in the order or the contract. It is specific to the buyer, so do not reuse one from another authority.

Is a BR-DE warning a problem?

A warning does not make the invoice invalid. It points at data the receiver is likely to question, so fix it when you can.

What is the difference between BR-DE and DE-R rules?

BR-DE rules belong to XRechnung. DE-R rules are the German national rules inside Peppol BIS Billing 3.0, for invoices between two German parties sent over Peppol. Read what a valid Peppol invoice in Germany additionally requires.

Which XRechnung version do these rules come from?

From XRechnung 3.0, the current major version. Older versions used partly different rules.

Why do I get BR-DE-2, 5, 6 and 7 at the same time?

They all check the seller contact. When the whole contact group is missing, all four fire. Add a contact person, phone number and email, and all four are solved.

Validate your own invoice, no account needed →
← Back to all articles