Having your XRechnung rejected by KOSIT validation is one of the most frustrating experiences in German e-invoicing. The error messages can be cryptic, and a single missing field can prevent an invoice worth thousands of euros from being accepted. This guide walks through the ten most common XRechnung validation errors with plain-language explanations and concrete fixes.
Understanding KOSIT Validation
KOSIT (Koordinierungsstelle für IT-Standards) is the German standards body responsible for XRechnung. When you submit an XRechnung to a government portal or validate it online, the document is checked against a set of Schematron business rules. Each rule has a unique identifier (BR-DE-1, BR-CO-10, etc.). A 'Critical' violation causes immediate rejection; a 'Warning' means the invoice may still be accepted but should be corrected.
Error 1: BR-DE-1 — Seller VAT ID Missing
Cause: The seller's VAT identification number (Umsatzsteuer-ID) is missing from business term BT-31. This is required even if your business is VAT-exempt.
Fix: Add your VAT ID in the format DE123456789. If you are VAT-exempt (Kleinunternehmer), you must still indicate this using the tax exemption reason code (BT-121) with value "VAT exempt for small business pursuant to § 19 UStG" and set the tax category to "E" instead.
Error 2: BR-DE-2 — Buyer Reference (Leitweg-ID) Missing
Cause: Business term BT-10 (Buyer reference) is empty or absent. For government invoices, this must contain the Leitweg-ID assigned by the contracting authority.
Fix: Contact the invoicing department of the government authority you are billing and request their Leitweg-ID. The format is typically [area]-[institution]-[check digit], e.g. 04011000-1234512345-06. Insert this value in the BT-10 field of your XRechnung.
Error 3: BR-DE-3 — Seller Telephone Missing
Cause: Business term BT-42 (Seller contact telephone number) is absent. German XRechnung rules require seller contact information.
Fix: Add a phone number in the SellerContact/Telephone field. Use international format: +49 69 12345678. This is a mandatory field for German XRechnung even if it is not required by the base EN 16931 standard.
Error 4: BR-DE-4 — Seller Email Missing
Cause: Business term BT-43 (Seller contact email) is absent.
Fix: Add a valid email address to the SellerContact/ElectronicMail field. This does not need to be a personal email — a general invoicing mailbox (rechnungen@yourcompany.de) is appropriate.
Error 5: BR-CO-10 — Sum of Line Amounts Mismatch
Cause: The sum of all InvoiceLine net amounts (BT-131) does not equal the document-level sum of lines (BT-106). This typically happens when rounding is applied inconsistently.
Fix: Recalculate line amounts with the same decimal precision throughout. Ensure that each line net amount = quantity × unit price (before tax). Sum all line amounts and place that exact value in BT-106. Do not round intermediate values.
Error 6: BR-CO-13 — VAT Amount Calculation Error
Cause: The VAT tax amount in BG-23 does not match the expected value of taxable amount × tax rate for the given VAT category.
Fix: For each VAT category (typically 19% or 7% in Germany), calculate: VAT amount = taxable amount × (rate / 100). Round to 2 decimal places using standard commercial rounding. Ensure your XML contains the correctly calculated VAT amount, not an approximation.
Error 7: BR-DE-17 — Invoice Type Code Incorrect
Cause: The invoice type code (BT-3) is not a value permitted by XRechnung. Common German invoice types are 380 (Commercial Invoice) and 384 (Credit Note).
Fix: Use one of the UNTDID 1001-compliant codes. For a standard invoice, use 380. For a credit note (Gutschrift), use 384. Verify your accounting software is generating the correct code.
Error 8: Missing Seller Tax Registration Number
Cause: Neither the seller's VAT ID (BT-31) nor the seller's tax registration number (BT-32, Steuernummer) is present. At least one is required.
Fix: If you have a VAT ID (Umsatzsteuer-ID), use BT-31. If you only have a Steuernummer (e.g., as a small business owner), use BT-32 with your Steuernummer in the format 93815/08152 (state-specific format).
Error 9: Invalid IBAN or Payment Details
Cause: The IBAN in BT-84 (Payment account identifier) is malformed or contains spaces/special characters.
Fix: Remove all spaces from the IBAN (e.g. DE89370400440532013000 not DE89 3704 0044 0532 0130 00). Verify the IBAN checksum. The payment means code (BT-81) must also be included — use 58 for SEPA credit transfer.
Error 10: Date Format Errors
Cause: Invoice date (BT-2), due date (BT-9), or delivery date (BT-72) use an incorrect format. XRechnung requires ISO 8601 format: YYYY-MM-DD.
Fix: Ensure all dates are in the format 2025-04-15 (not 15.04.2025 or 04/15/2025). If using UBL syntax, dates appear as plain text; in CII syntax they may include a format attribute (format='102' for YYYYMMDD). Verify your software's date output format matches the XML syntax you are using.
Pro Tips for Avoiding Validation Errors
- Always validate before submitting: Use our XRechnung Viewer to catch errors before they reach the government portal.
- Keep a reference invoice: Once you have a valid invoice, keep it as a template to avoid re-introducing errors.
- Test with the official validator: The KoSIT validator is available at ecosio.com/de/peppol-und-xml-validator and at the ZRE test environment.
- Use 2 decimal places consistently: Rounding errors are the most common source of BR-CO-10 and BR-CO-13 failures.
- Check your software version: KOSIT releases updated validation rules with each XRechnung version. Ensure your software is generating the version you intend.