XRechnung Mandatory Fields: Every Required BT with UBL Path and Rule
XRechnung mandatory fields as a checklist: each required BT with its UBL path, a sample value and the KoSIT rule, plus conditional fields and the § 14 UStG gaps.
Key takeaways
- In XRechnung 3.0.2, 41 business terms and groups are required without any condition, covering header, parties, payment, totals, VAT and lines.
- On top of EN 16931, XRechnung makes BT-10, BT-23, BT-34, BT-49, the seller contact BG-6 and payment instructions BG-16 mandatory.
- Conditional fields depend on the VAT category, the payment means code, the invoice type or a separate delivery address.
- A valid XRechnung is not automatically a complete German invoice: the KoSIT rules do not reject a missing street or delivery date.
On this page
XRechnung mandatory fields are the business terms (BT) without which the KoSIT validator rejects an XRechnung 3.0.2 file. Without any condition, that covers 41 fields and groups: header data such as BT-1 and BT-10, the name, city and electronic address of both parties, a seller contact, a payment means code, four totals, a VAT breakdown and seven fields per line.
This page is written for integration teams and foreign suppliers who map their ERP data to XRechnung. Every row below gives the UBL path, a sample value and the rule that enforces the field. The rule texts come from the KoSIT validator configuration 2026-08-31 (XRechnung Schematron 2.6.0, CEN Schematron 1.3.16). XRechnung (the German CIUS of EN 16931) applies when you invoice German public authorities, and many German companies request it for B2B invoices too.
Who needs this checklist?
- Suppliers outside Germany who invoice a German authority and get a rejection from the federal or state portal.
- ERP and billing teams building an XRechnung export, who need exact paths rather than a list of field names.
- Accounts payable teams in Germany who must decide whether an incoming file can be processed.
For the format basics, read what XRechnung is. For namespaces, the root element and the CII alternative, see the guide to the XRechnung XML structure. All paths below use UBL 2.1 and are relative to the root element Invoice. CII uses the same BT numbers with different element names.
The checklist: unconditional XRechnung mandatory fields
Two rule sets apply together. Rules named BR- without a country code and BR-CO- come from EN 16931 and apply across Europe. Rules named BR-DE-, plus the Peppol rules PEPPOL-EN16931-R… that KoSIT includes, apply to XRechnung only. Every rule listed has the level "error" unless marked "warning".
Document header
| BT | Field | UBL path | Sample value | Rule |
|---|---|---|---|---|
| BT-1 | Invoice number | cbc:ID | RE-2026-0042 | BR-02 |
| BT-2 | Issue date | cbc:IssueDate | 2026-10-11 | BR-03; YYYY-MM-DD format BR-TMP-6 (warning) |
| BT-3 | Invoice type code | cbc:InvoiceTypeCode | 380 | BR-04; allowed codes BR-DE-17 (warning) |
| BT-5 | Currency | cbc:DocumentCurrencyCode | EUR | BR-05 |
| BT-10 | Buyer reference | cbc:BuyerReference | 04011000-1234512345-06 | BR-DE-15 |
| BT-23 | Business process | cbc:ProfileID | urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 | PEPPOL-EN16931-R001 |
| BT-24 | Specification identifier | cbc:CustomizationID | urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 | BR-01; BR-DE-21 (warning) |
For public-sector buyers, BT-10 holds the Leitweg-ID (the German buyer reference for authorities). A missing BT-10 triggers BR-DE-15. BT-23 is optional in EN 16931, but the XRechnung rules require it. BT-24 also selects the validation scenario: an outdated identifier matches no scenario in the current configuration, and the file is rejected before any field rule runs.
Seller (BG-4)
Path prefix: cac:AccountingSupplierParty/cac:Party.
| BT | Field | UBL path | Sample value | Rule |
|---|---|---|---|---|
| BT-27 | Name | cac:PartyLegalEntity/cbc:RegistrationName | Muster GmbH | BR-06 |
| BT-34 | Electronic address | cbc:EndpointID with @schemeID | invoices@muster-gmbh.de, schemeID EM | PEPPOL-EN16931-R020; BR-62 |
| BG-5 | Postal address | cac:PostalAddress | – | BR-08 |
| BT-37 | City | cac:PostalAddress/cbc:CityName | Berlin | BR-DE-3 |
| BT-38 | Post code | cac:PostalAddress/cbc:PostalZone | 10115 | BR-DE-4 |
| BT-40 | Country code | cac:PostalAddress/cac:Country/cbc:IdentificationCode | DE | BR-09 |
| BG-6 | Contact | cac:Contact | – | BR-DE-2 |
| BT-41 | Contact point | cac:Contact/cbc:Name | Accounts receivable | BR-DE-5 |
| BT-42 | Phone | cac:Contact/cbc:Telephone | +49 30 1234560 | BR-DE-6; at least three digits BR-DE-27 (warning) |
| BT-43 | cac:Contact/cbc:ElectronicMail | ar@muster-gmbh.de | BR-DE-7; format BR-DE-28 (warning) |
The seller contact group is a common gap in ERP exports built for other countries, because EN 16931 itself does not require it.
Buyer (BG-7)
Path prefix: cac:AccountingCustomerParty/cac:Party.
| BT | Field | UBL path | Sample value | Rule |
|---|---|---|---|---|
| BT-44 | Name | cac:PartyLegalEntity/cbc:RegistrationName | Beispiel AG | BR-07 |
| BT-49 | Electronic address | cbc:EndpointID with @schemeID | inbound@beispiel-ag.de, schemeID EM | PEPPOL-EN16931-R010; BR-63 |
| BG-8 | Postal address | cac:PostalAddress | – | BR-10 |
| BT-52 | City | cac:PostalAddress/cbc:CityName | Hamburg | BR-DE-8 |
| BT-53 | Post code | cac:PostalAddress/cbc:PostalZone | 20095 | BR-DE-9 |
| BT-55 | Country code | cac:PostalAddress/cac:Country/cbc:IdentificationCode | DE | BR-11 |
Payment, totals and VAT
| BT | Field | UBL path | Sample value | Rule |
|---|---|---|---|---|
| BG-16 | Payment instructions | cac:PaymentMeans | – | BR-DE-1 |
| BT-81 | Payment means code | cac:PaymentMeans/cbc:PaymentMeansCode | 58 (SEPA credit transfer) | BR-49 |
| BT-106 | Sum of line net amounts | cac:LegalMonetaryTotal/cbc:LineExtensionAmount | 1000.00 | BR-12 |
| BT-109 | Total without VAT | cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount | 1000.00 | BR-13 |
| BT-112 | Total with VAT | cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount | 1190.00 | BR-14 |
| BT-115 | Amount due | cac:LegalMonetaryTotal/cbc:PayableAmount | 1190.00 | BR-15 |
| BG-23 | VAT breakdown | cac:TaxTotal/cac:TaxSubtotal | – | BR-CO-18 |
| BT-116 | Taxable amount | …/cac:TaxSubtotal/cbc:TaxableAmount | 1000.00 | BR-45 |
| BT-117 | VAT amount | …/cac:TaxSubtotal/cbc:TaxAmount | 190.00 | BR-46 |
| BT-118 | VAT category code | …/cac:TaxCategory/cbc:ID | S | BR-47 |
| BT-119 | VAT rate | …/cac:TaxCategory/cbc:Percent | 19 | BR-48; BR-DE-14 |
A file without any payment instructions fails with BR-DE-1. EN 16931 lets you omit BT-119 when the invoice is not subject to VAT; XRechnung requires it in every VAT breakdown through BR-DE-14.
Invoice line (BG-25, at least one under BR-16)
Path prefix: cac:InvoiceLine.
| BT | Field | UBL path | Sample value | Rule |
|---|---|---|---|---|
| BT-126 | Line ID | cbc:ID | 1 | BR-21 |
| BT-129 | Quantity | cbc:InvoicedQuantity | 10 | BR-22 |
| BT-130 | Unit of measure | cbc:InvoicedQuantity/@unitCode | HUR | BR-23 |
| BT-131 | Line net amount | cbc:LineExtensionAmount | 600.00 | BR-24 |
| BT-146 | Item net price | cac:Price/cbc:PriceAmount | 60.00 | BR-26; not negative BR-27 |
| BT-151 | Line VAT category | cac:Item/cac:ClassifiedTaxCategory/cbc:ID | S | BR-CO-04 |
| BT-153 | Item name | cac:Item/cbc:Name | Development services | BR-25 |
A complete file with these values is available as the XRechnung example. A line-by-line walkthrough of a similar invoice is in the e-invoice example for Germany.
Special cases: conditional mandatory fields
Many fields become required only when another field has a certain value. These conditions cause a large share of portal rejections, because master data is usually set up for the standard case only.
| Trigger | Then required | Rule |
|---|---|---|
| VAT category S, Z, E, AE, K, G, L or M | Seller VAT ID BT-31 (cac:PartyTaxScheme/cbc:CompanyID with tax scheme VAT), German tax number BT-32 (tax scheme other than VAT) or tax representative BG-11 | BR-DE-16 |
| BT-81 = 30 or 58 (credit transfer) | BG-17 with account ID BT-84 (cac:PayeeFinancialAccount/cbc:ID); with 58, BT-84 should be a valid IBAN | BR-DE-23-a, BR-50, BR-61; BR-DE-19 (warning) |
| BT-81 = 59 (SEPA direct debit) | exactly one BG-19 with creditor ID BT-90 and debited account BT-91 | BR-DE-25-a, BR-DE-30, BR-DE-31 |
| BT-81 = 48, 54 or 55 (card) | exactly one BG-18 card group | BR-DE-24-a |
| Delivery address BG-15 present | city BT-77, post code BT-78, country BT-80 | BR-DE-10, BR-DE-11, BR-57 |
| BT-3 = 384 (corrected invoice) | preceding invoice reference BG-3 | BR-DE-26 (warning) |
| VAT category E (exempt) | exemption reason text BT-120 or code BT-121 | BR-E-10 |
| VAT category AE (reverse charge) | seller VAT ID or tax number, plus buyer VAT ID BT-48 or legal registration ID BT-47 | BR-AE-02 |
| Payee BG-10 differs from seller | payee name BT-59 | BR-17 |
| Document-level allowance BG-20 or charge BG-21 | amount, VAT category and reason (text or code) | BR-31 to BR-33, BR-36 to BR-38 |
The payment groups exclude each other. A credit transfer (30 or 58) must not carry a card or direct-debit group (BR-DE-23-b). Foreign suppliers often hit BR-DE-16 when their ERP stores the VAT ID only in a free-text field: it must sit in cac:PartyTaxScheme.
What the validator does not enforce: gaps against § 14 UStG
The XRechnung mandatory fields and the invoice requirements of Section 14(4) of the German VAT Act (§ 14 UStG (opens in a new tab)) overlap only in part. A file can pass validation and still lack a VAT-law item.
| § 14(4) UStG requirement | XRechnung field | Enforced as an error? |
|---|---|---|
| No. 1 full name and address of both parties | BT-27, BT-44; street BT-35 and BT-50; city, post code, country | name, city, post code, country yes; street no |
| No. 2 tax number or VAT ID | BT-31 or BT-32 | yes, for the categories listed in BR-DE-16 |
| No. 3 issue date | BT-2 | yes |
| No. 4 invoice number | BT-1 | yes |
| No. 5 quantity and type of supply | BT-129, BT-130, BT-153 | yes |
| No. 6 date of supply | BT-72, BG-14 or BG-26 | no, information-level BR-DE-TMP-32 only |
| No. 7 net amount per VAT rate | BT-116 per BG-23 | yes |
| No. 8 VAT rate and amount, or exemption note | BT-119, BT-117; BT-120/BT-121 | yes; exemption reason only for category E |
Two gaps matter in practice. First, the street: the rules require only city, post code and country code for both parties. In our own test with configuration 2026-08-31, a sample invoice without either street line was accepted. Second, the delivery date: BR-DE-TMP-32 is information-level and never blocks a file.
The reverse also holds. XRechnung requires fields that German VAT law does not mention: buyer reference, business process, electronic addresses, seller contact and payment means code. Without them the file is not a valid XRechnung, even if every § 14 item is present. How the German tax authorities classify such defects is covered in format errors versus content errors. The full list of VAT-law items, with special cases, is in German invoice requirements.
How to document the check
- Technical result: the validation against the KoSIT rules, with the date and the configuration version (here 2026-08-31). For a report to keep on file, run the KoSIT validator itself.
- Content check: tick off the items the validator does not enforce, such as street, delivery date and exemption note.
- Storage: keep both records with the XML file, not just with a PDF rendering.
If you issue invoices, test one file per customer type after each master-data change: a German authority with a Leitweg-ID, a private B2B customer, a customer with a separate delivery address, and an exempt or reverse-charge supply. This surfaces conditional fields before a real invoice is rejected.
How to check XRechnung mandatory fields with docutools.pro
- Open the XRechnung validator and upload your
.xmlfile (UBL Invoice or CII). Without a file of your own, use "Load sample invoice". The file is sent to our server for the check. The free plan allows 2 uploads per day up to 500 KB; the Pro plan removes these limits. - Read the "KoSIT validation" section. It checks the way the KoSIT validator does (configuration 2026-08-31) and lists each finding with its rule ID and the level "Error" or "Warning". A missing mandatory field shows up as, for example, BR-DE-15 or PEPPOL-EN16931-R020.
- Match each rule ID to a field and UBL path with the tables above. For background on single codes, use the reference of XRechnung error codes, for example BR-DE-2 for the seller contact group.
- Then check what the validator does not enforce. Open the German invoice requirements checker, choose "XRechnung/ZUGFeRD XML" and click "Auto-check XML". On XML import, the tool always marks the delivery date, exemption note and discounts as missing, so tick them by hand after reading the file. The checker runs in your browser and the file does not leave your computer.
- If a field such as BT-10, BT-34 or the street is missing, fix the master data in your billing system and export again. Smart Repair in the viewer cannot add a Leitweg-ID, an address or a contact.
More field-level guides are collected under more guides on XRechnung.
Sources
- KoSIT: Validator configuration XRechnung, release 2026-08-31 (opens in a new tab), with XRechnung Schematron 2.6.0 and CEN Schematron 1.3.16 (rule texts and levels)
- XStandards Einkauf: XRechnung specification and versions (opens in a new tab)
- German Federal Ministry of Justice: § 14 UStG, issuing invoices (opens in a new tab)
Last reviewed: October 2026
This article is general information, not tax or legal advice.
Tools for this article
- XRechnung ViewerParse, validate & repair German e-invoices with GoBD-compliant audit trail.Open tool →
- Invoice Mandatory Fields CheckerVerify all mandatory §14 UStG invoice fields via checklist or XRechnung/ZUGFeRD XML.Open tool →
- KoSIT Error HubSearchable reference for all XRechnung validation error codes with fix guides.Open tool →
Frequently asked questions
What are the required fields for an XRechnung?
Under the KoSIT validator configuration 2026-08-31 for XRechnung 3.0.2, 41 business terms and groups are required without condition in an invoice with one line and one VAT breakdown. They include invoice number, issue date, type code, currency, buyer reference, process and specification identifiers, both party names, cities, post codes, country codes and electronic addresses, the seller contact, payment means, four totals, the VAT breakdown and seven fields per line.
Is BT-10 (buyer reference) always required in XRechnung?
Yes. Rule BR-DE-15 requires BT-10 in every XRechnung, and an empty element counts as missing. For German public-sector buyers, BT-10 carries the Leitweg-ID. For private buyers, it carries whatever reference the customer gives you, such as a cost centre or a purchase order number. Without it, the KoSIT validator rejects the file.
How do XRechnung required fields differ from EN 16931?
EN 16931 defines a European core of required fields, such as invoice number, date, party names, country codes, totals and invoice lines. XRechnung is the German specification by KoSIT, and it adds further requirements: buyer reference, business process, electronic addresses, city and post code for both parties, a seller contact with phone and e-mail, payment instructions and a VAT rate in every VAT breakdown.
Does passing the KoSIT validator mean the invoice meets German VAT law?
No. The validator checks syntax and business rules, not every item required by Section 14(4) of the German VAT Act. With configuration 2026-08-31, a missing street address or a missing delivery date does not produce an error. Check those items separately before you send or post the invoice, for example with a checklist of the German invoice requirements.