XRechnung Validation: The 10 Most Common Errors and How to Fix Them
XRechnung Validation: The 10 Most Common Errors and How to Fix Them
Anyone creating and validating an XRechnung for the first time will almost certainly encounter cryptic error messages. Codes like BR-DE-15, BR-CO-17, or BR-S-08 are not exactly self-explanatory. Yet most of these errors have simple causes that can be fixed quickly. In this article, we explain the ten most common validation errors in plain language and show you how to resolve them.
Why Validation Is Essential
XRechnung is based on the European standard EN 16931. This standard defines not only the format but also binding business rules. Each rule has a unique code starting with BR (Business Rule). Additional German-specific rules carry the prefix BR-DE. An invoice is only considered compliant when all rules are satisfied. Receiving systems — especially those used by government agencies — automatically reject non-compliant invoices.
The 10 Most Common Errors
1. BR-DE-15: Missing Buyer Reference (Leitweg-ID)
This is the most frequently encountered error. XRechnung requires a buyer reference in the BuyerReference field. For invoices to public sector contracting authorities, this is the Leitweg-ID. In B2B transactions, any agreed-upon reference value can be used, but the field must never be empty.
Solution: Enter the recipient's Leitweg-ID or an agreed-upon reference number.
2. BR-CO-17: Incorrect VAT Calculation
BR-CO-17 checks whether the tax amount per tax category (BT-117) has been calculated correctly: tax amount = taxable base (BT-116) x tax rate (BT-119) / 100, rounded to two decimal places. Even minimal rounding differences will trigger this error.
Solution: Calculate VAT separately for each tax category from the taxable base and tax rate, and only round to two decimal places at the end. Avoid intermediate rounding at line-item level.
3. BR-DE-05: Missing Seller Contact Name
The German XRechnung extension requires that a contact name is provided in the "Seller Contact" section (BG-6) — specifically, a seller contact point (BT-41). BR-DE-02 makes the entire contact group mandatory, and BR-DE-05 specifically requires the contact name.
Solution: Populate cac:Contact/cbc:Name with the name of a contact person or department.
4. BR-DE-06: Missing Seller Contact Telephone Number
Rule BR-DE-06 requires that a telephone number for the seller is provided in the contact section (BT-42, Seller contact telephone number).
Solution: Fill in the cac:Contact/cbc:Telephone element.
5. BR-DE-07: Missing Seller Contact Email Address
Rule BR-DE-07 requires that the seller provides an email address in the contact section (BT-43, Seller contact email address).
Solution: Populate the cac:Contact/cbc:ElectronicMail element for the seller.
6. BR-S-08: Tax Base Mismatch
This error indicates that the net total of a tax category does not match the sum of the associated line items.
Solution: Ensure that the sum of all line-item net amounts matches the value in the tax summary (Tax Subtotal) exactly.
7. BR-DE-16: Missing Seller Tax Identification
BR-DE-16 requires that at least one of the following elements is provided: the VAT ID (BT-31, Seller VAT identifier), the tax registration number (BT-32, Seller tax registration identifier), or a tax representative (BG-11, Seller Tax Representative Party).
Solution: Enter either your VAT ID in the format DE123456789 in BT-31 or your tax registration number in BT-32. At least one of the two is mandatory.
8. BR-CL-01: Invalid Invoice Type Code
The invoice type must correspond to a valid UNTDID 1001 code. For a standard invoice, the code is 380; for a credit note, it is 381. Other common codes include 389 (self-billed invoice) and 384 (corrected invoice).
Solution: Use the correct code from the UNTDID 1001 code list.
9. BR-CO-10: Inconsistent Totals
BR-CO-10 checks whether the sum of line-item net amounts (BT-106) matches the total of the individual line-item net amounts (BT-131). Together with related rules, it ensures that the total amount excluding VAT (BT-109) = line-item total (BT-106) - allowances (BT-107) + charges (BT-108).
Solution: Review your total calculations: the sum of all line-item net amounts must exactly equal BT-106, and BT-106 minus allowances plus charges must equal the total net amount (BT-109).
10. BR-DE-01: Missing Payment Instructions
The German XRechnung requires the "Payment Instructions" group (BG-16) to be completed. This includes at least specifying a payment means type code (BT-81), such as credit transfer (code 30 or 58). Depending on the payment method, additional details like the IBAN (BG-17) must be provided.
Solution: Add the payment instructions in BG-16 with the appropriate payment means code and the associated details (e.g. IBAN for credit transfers). Optionally, you can also include payment terms as free text in PaymentTerms/Note (BT-20).
How to Avoid Errors from the Start
The easiest way to avoid validation errors is to use a tool that checks the rules automatically. With the free XRechnung Validator from invapi, you can validate your XML files directly in the browser against all EN 16931 and XRechnung rules. Error messages are presented in a clear format with specific guidance on how to fix them.
Alternatively, you can integrate the invapi API directly into your invoicing workflow to automatically create, convert, and validate invoices before they are sent.
Conclusion
XRechnung validation errors may seem intimidating at first glance, but they can almost always be traced back to missing required fields or rounding issues. Knowing the most common errors and using a good validation tool saves time and ensures compliance. Try the free invapi Validator and send your next XRechnung error-free.