Guides

XRechnung validation errors explained (BR-DE-15, BR-CO-10, …)

Updated 2026-10-06

Got an XRechnung validation error like BR-DE-15 or BR-CO-10? This page explains what the most common messages mean and how to fix them. The codes come from the official rule sets: BR-DE are German XRechnung rules, BR-CO, BR-S, BR-AE and the others come from the European standard EN 16931.

Errors (fatal) make the invoice invalid; warnings do not. Check your file for free in the e-invoice validator: every error from this list links straight to its fix.

XRechnung rules (BR-DE)

BR-DE-15 Buyer reference (BT-10) is missing

[BR-DE-15] Das Element "Buyer reference" (BT-10) muss übermittelt werden.

What it means: XRechnung requires a buyer reference on every invoice. For German public authorities this is the Leitweg-ID. Private companies often give you a purchase order number or cost centre instead.

How to fix it: Ask your client what to put there. If they have nothing, the invoice number is the usual fallback. In CII the value goes into ram:ApplicableHeaderTradeAgreement/ram:BuyerReference, in UBL into cbc:BuyerReference.

BR-DE-1 BR-DE-23-a Payment instructions (BG-16) or bank account (BG-17) missing

[BR-DE-1] Eine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten.

What it means: XRechnung expects the invoice to say how it should be paid. BR-DE-1 fires when there is no payment means at all. BR-DE-23-a fires when the payment means code says bank transfer (30 or 58) but no account is given.

How to fix it: Add a payment means with type code 58 (SEPA credit transfer) or 30 (other credit transfer) plus your IBAN. In CII: ram:SpecifiedTradeSettlementPaymentMeans with ram:PayeePartyCreditorFinancialAccount/ram:IBANID. In UBL: cac:PaymentMeans with cac:PayeeFinancialAccount/cbc:ID.

BR-DE-2 BR-DE-5 BR-DE-6 BR-DE-7 Seller contact (name, phone, email) missing

[BR-DE-2] Die Gruppe "SELLER CONTACT" (BG-6) muss übermittelt werden.

What it means: Unlike plain EN 16931, XRechnung requires a contact person at the seller with name (BR-DE-5), telephone number (BR-DE-6) and email address (BR-DE-7). BR-DE-2 means the whole contact block is missing.

How to fix it: Add all three. Freelancers simply enter their own name, phone and email. In CII: ram:SellerTradeParty/ram:DefinedTradeContact with ram:PersonName, ram:TelephoneUniversalCommunication/ram:CompleteNumber and ram:EmailURIUniversalCommunication/ram:URIID. In UBL: cac:AccountingSupplierParty/cac:Party/cac:Contact with cbc:Name, cbc:Telephone and cbc:ElectronicMail.

BR-DE-3 BR-DE-4 BR-DE-8 BR-DE-9 City or postcode of seller or buyer missing

[BR-DE-3] Das Element "Seller city" (BT-37) muss übermittelt werden.

What it means: XRechnung requires city and postcode for both parties: seller city (BR-DE-3), seller postcode (BR-DE-4), buyer city (BR-DE-8) and buyer postcode (BR-DE-9). EN 16931 alone only requires the country.

How to fix it: Fill in the complete postal address of both parties. A common cause is software that writes the whole address into one street line, so the city and postcode fields stay empty.

BR-DE-16 Seller VAT ID or tax number missing

[BR-DE-16] Wenn in einer Rechnung die Steuercodes S, Z, E, AE, K, G, L oder M verwendet werden, muss mindestens eines der Elemente "Seller VAT identifier" (BT-31), "Seller tax registration identifier" (BT-32) oder "SELLER TAX REPRESENTATIVE PARTY" (BG-11) übermittelt werden.

What it means: As soon as the invoice uses a VAT category (standard, zero rated, exempt, reverse charge and others), the seller must be identified for tax purposes.

How to fix it: Add your VAT ID (BT-31) or, if you have none, your tax number (BT-32, in Germany the Steuernummer). In CII both go into ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID, with schemeID="VA" for the VAT ID and schemeID="FC" for the tax number.

BR-DE-14 VAT rate missing in the VAT breakdown

[BR-DE-14] Das Element "VAT category rate" (BT-119) muss übermittelt werden.

What it means: XRechnung requires a rate in every VAT breakdown, also for categories without VAT such as exempt (E), reverse charge (AE) or not subject to VAT (O).

How to fix it: Write the rate explicitly, using 0 for categories without VAT. In CII: ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:RateApplicablePercent. In UBL: cac:TaxSubtotal/cac:TaxCategory/cbc:Percent.

BR-DE-18 Early payment discount (Skonto) in the wrong format

[BR-DE-18] Skonto Zeilen in muessen diesem regulärem Ausdruck entsprechen: …

What it means: XRechnung has a machine-readable format for cash discounts inside the payment terms (BT-20). If a payment terms line starts with #SKONTO but does not follow the format exactly, validation fails.

How to fix it: Write one line per discount, in capital letters, without spaces, ending with # and a line break, for example #SKONTO#TAGE=14#PROZENT=2.00#. Percentages use a dot and two decimals. If you only want to describe the discount in words, do not start the line with #SKONTO.

BR-DE-19 IBAN is not valid (warning)

[BR-DE-19] "Payment account identifier" (BT-84) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 58 SEPA als Zahlungsmittel gefordert wird.

What it means: The payment means says SEPA credit transfer (code 58), but the account number fails the IBAN check. This is a warning, but a typo here means you do not get paid.

How to fix it: Check the IBAN for typos and remove spaces. If the account is outside SEPA and has no IBAN, use payment means code 30 instead of 58.

BR-DE-21 File is not marked as XRechnung (warning)

[BR-DE-21] Das Element "Specification identifier" (BT-24) soll syntaktisch der Kennung des Standards XRechnung entsprechen.

What it means: The specification identifier (BT-24) tells the receiver which standard the file follows. The validator checked the file against XRechnung rules, but the file does not claim to be an XRechnung. ZUGFeRD and Factur-X files (identifier urn:cen.eu:en16931:2017) show this warning by design.

How to fix it: If your client requires XRechnung, use urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 as BT-24 (CII: ram:GuidelineSpecifiedDocumentContextParameter/ram:ID, UBL: cbc:CustomizationID). For a ZUGFeRD invoice to a private company you can usually ignore it.

BR-DE-17 Unusual invoice type code (warning)

[BR-DE-17] Mit dem Element "Invoice type code" (BT-3) sollen ausschließlich folgende Codes aus der Codeliste UNTDID 1001 übermittelt werden: …

What it means: XRechnung allows only some document types: 380 (commercial invoice), 381 (credit note), 384 (corrected invoice), 389 (self-billed invoice), 326 (partial invoice) and the construction invoice codes 875, 876 and 877.

How to fix it: For a normal invoice use 380. In CII: rsm:ExchangedDocument/ram:TypeCode. In UBL: cbc:InvoiceTypeCode.

BR-DE-27 BR-DE-28 Phone number or email address looks wrong (warning)

[BR-DE-27] In BT-42 sollen mindestens drei Ziffern enthalten sein.

What it means: BR-DE-27: the seller phone number (BT-42) has fewer than three digits. BR-DE-28: the seller email address (BT-43) does not look like an email address, for example because of a missing @ or a space.

How to fix it: Enter a real phone number and a plain email address such as [email protected], without a name or angle brackets around it.

Totals and calculations (BR-CO, BR-S)

BR-CO-10 Sum of line amounts does not match

[BR-CO-10]-Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).

What it means: The invoice total of all line net amounts (BT-106) must equal the exact sum of the individual line amounts (BT-131). A difference of one cent is enough to fail.

How to fix it: Round each line amount to two decimals first, then add the rounded values. Do not add unrounded values and round only the total. Also check that hidden or deleted lines are not counted.

BR-CO-13 BR-CO-15 BR-CO-16 Invoice totals do not add up

[BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).

What it means: The totals must follow fixed formulas: net total = lines − allowances + charges (BR-CO-13), gross total = net total + VAT (BR-CO-15), amount due = gross total − prepaid amount + rounding amount (BR-CO-16).

How to fix it: Recalculate the totals from the rounded line amounts. If the amount due differs from the gross total, the difference must be stated as prepaid amount (BT-113) or rounding amount (BT-114).

BR-CO-14 BR-CO-17 VAT amount is off by a few cents

[BR-CO-17]-VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.

What it means: EN 16931 calculates VAT once per VAT rate on the total taxable amount (BR-CO-17), and the invoice VAT total must equal the sum of these amounts (BR-CO-14). Software that calculates VAT per line and adds it up often ends a cent or two off.

How to fix it: Calculate the VAT per rate: taxable amount × rate / 100, rounded to two decimals. Use that figure in the VAT breakdown and in the VAT total.

BR-S-08 VAT breakdown does not match the lines

[BR-S-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) …

What it means: For every standard VAT rate on the invoice there must be one VAT breakdown whose taxable amount equals the sum of the lines with that rate (plus charges, minus allowances).

How to fix it: Group the lines by VAT rate and create one breakdown per rate, for example one for 19% and one for 7%. A typical cause is a single breakdown for an invoice with lines at two different rates.

BR-CO-26 Seller cannot be identified

[BR-CO-26]-In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.

What it means: The invoice needs at least one identifier for the seller: a VAT ID (BT-31), a company register number (BT-30) or another seller identifier (BT-29). A tax number alone (BT-32) does not count for this rule.

How to fix it: Add your VAT ID if you have one. Without a VAT ID, add your tax number or register number as seller identifier as well. In CII: ram:SellerTradeParty/ram:ID.

VAT categories (BR-S, BR-AE, BR-E, BR-O)

BR-S-02 BR-E-02 BR-AE-02 VAT IDs missing for the chosen VAT category

[BR-AE-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) …

What it means: Standard rated (BR-S-02) and exempt (BR-E-02) invoices need the seller's VAT ID or tax number. Reverse charge (BR-AE-02) additionally needs the buyer's VAT ID, because the buyer pays the VAT.

How to fix it: Add the missing IDs. For reverse charge, ask your client for their VAT ID. Without it, reverse charge does not apply. More in our reverse charge guide.

BR-AE-10 BR-E-10 Exemption reason missing

[BR-AE-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).

What it means: Invoices without VAT must say why. Reverse charge (BR-AE-10) and exempt (BR-E-10) VAT breakdowns need an exemption reason text (BT-120) or code (BT-121).

How to fix it: For reverse charge use the code VATEX-EU-AE and the text "Reverse charge". For exempt invoices write the legal basis, e.g. "Exempt under § 19 UStG (small business)". In CII: ram:ExemptionReason and ram:ExemptionReasonCode in the header ram:ApplicableTradeTax.

BR-AE-05 BR-E-05 BR-S-05 VAT rate does not fit the VAT category

[BR-AE-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" the Invoiced item VAT rate (BT-152) shall be 0 (zero).

What it means: Reverse charge (BR-AE-05) and exempt (BR-E-05) lines must have a rate of 0. Standard rated lines (BR-S-05) must have a rate above 0.

How to fix it: Check the category per line: a line with 19% must be category S, a line with 0% for a German small business must be E, a cross-border B2B service usually AE.

BR-O-02 VAT IDs present on a "not subject to VAT" invoice

[BR-O-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).

What it means: Category O (not subject to VAT, outside the scope of VAT) forbids VAT IDs on the invoice, for both seller and buyer.

How to fix it: Remove the VAT IDs and identify the seller by tax or registration number instead. If you have a VAT ID and the client is a business in another EU country, reverse charge (AE) is usually the right category.

BR-CO-09 VAT ID without country prefix

[BR-CO-09]-The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix ‘EL’.

What it means: VAT IDs must start with the two-letter country code, e.g. DE123456789 or ATU12345678. A German tax number (Steuernummer) entered in the VAT ID field fails this rule.

How to fix it: Add the country prefix, or move a tax number into the tax number field (BT-32) instead of the VAT ID.

Codes and structure (BR-CL, BR)

BR-CL-14 BR-CL-04 BR-CL-23 Country, currency or unit code not recognised

[BR-CL-14]-Country codes in an invoice MUST be coded using ISO code list 3166-1

What it means: E-invoices use fixed code lists: two-letter ISO country codes (BR-CL-14, e.g. DE, not "Germany"), three-letter currency codes (BR-CL-04, e.g. EUR, not "€") and UN/ECE unit codes (BR-CL-23, e.g. HUR for hour, C62 for piece, not "Std.").

How to fix it: Replace the free text with the code. Common units: C62 piece, HUR hour, DAY day, MON month, LS lump sum, KGM kilogram.

BR-16 Invoice has no line items

[BR-16]-An Invoice shall have at least one Invoice line (BG-25).

What it means: Every e-invoice needs at least one line item, even if you only bill a lump sum.

How to fix it: Add a line with a description, quantity 1, a unit such as LS (lump sum) and the net amount.

Your error is not listed?

The rule sets contain several hundred codes. CII-SR and UBL-CR messages are about XML syntax and are mostly warnings. For all others, the message itself names the affected field with its number (e.g. BT-10). If you would rather create the invoice without debugging XML: einvoicegen asks for exactly the required fields and checks every file with the KoSIT validator before download.

Need to send an e-invoice?

Create a valid XRechnung and ZUGFeRD invoice in 2 minutes, in English. Free preview, validated with the official KoSIT validator.

Create an e-invoice Open an e-invoice (free)

More guides