TaxLayer
Sign InGet Started Free
Technical2025-04-0110 min readby TaxLayer Team

EN 16931: All Required Fields of the European Invoice Standard

The European standard EN 16931 forms the foundation of all e-invoice formats in Germany and the EU. Anyone generating ZUGFeRD or XRechnung must comply with its required fields — otherwise the invoice will be rejected.

> Quick answer: EN 16931 defines over 160 business terms for e-invoices. Mandatory fields include invoice number (BT-1), date (BT-2), currency (BT-5), seller and buyer data, amount fields, and at least one invoice line item with quantity, price, and tax category.

What is EN 16931 and why is it relevant?

EN 16931 is the European standard for the semantic data model of an electronic invoice. It defines over 160 business terms (BT) and business term groups (BG) that can appear in an e-invoice.

The Growth Opportunities Act stipulates that only formats complying with EN 16931 qualify as e-invoices. Both ZUGFeRD (from profile EN 16931) and XRechnung comply with this standard.

Which fields are mandatory in the invoice header?

BTNameDescription
BT-1Invoice numberUnique identifier of the invoice
BT-2Invoice dateIssue date (format: YYYYMMDD)
BT-3Invoice typeTypeCode: 380 (invoice), 381 (credit note)
BT-5Currency codeISO 4217, e.g., EUR

Which seller data (BG-4) is mandatory?

BTNameDescription
BT-27NameCompany name of the seller
BT-31VAT IDVAT identification number
BT-40Country codeISO 3166-1 alpha-2, e.g., DE

Which buyer data (BG-7) is mandatory?

BTNameDescription
BT-44NameCompany name of the buyer

Which amount fields (BG-22) must be filled?

BTNameDescription
BT-106Line items totalSum of all line item net amounts
BT-109Net amountInvoice amount without tax
BT-110Tax amountTotal tax amount
BT-112Gross amountInvoice amount including tax
BT-115Amount dueAmount due for payment

Which line item fields (BG-25) are mandatory?

BTNameDescription
BT-126Line numberUnique line identifier
BT-129QuantityInvoiced quantity
BT-130UnitUN/ECE Rec 20 code (C62, HUR, DAY)
BT-131Line amountNet amount of the line item
BT-146Unit pricePrice per unit net
BT-151VAT categoryS (Standard), E (Exempt), Z (Zero)
BT-153Item nameDescription of the item

For small businesses, tax category E (Exempt) with a 0% tax rate and the exemption reason under § 19 UStG applies.

How can I automatically check the required fields?

TaxLayer validates every generated invoice automatically against all mandatory BTs. You can additionally verify the result with the free ZUGFeRD & XRechnung Validator or the official KoSIT Validator.

Test the automatic validation for free: the first two conversions per month are available without a credit card — get started now.

Frequently asked questions

What is EN 16931?

EN 16931 is the European standard for the semantic data model of an electronic invoice. It defines over 160 business terms (BT) and groups (BG) that can appear in an e-invoice.

Which fields are mandatory in every e-invoice?

The most important required fields include: BT-1 (invoice number), BT-2 (date), BT-5 (currency), BT-27 (seller name), BT-44 (buyer name), BT-109 (net amount), and BT-112 (gross amount).

What data must be included in the invoice line items?

Each line item must contain: BT-126 (line number), BT-129 (quantity), BT-130 (unit), BT-131 (line amount), BT-146 (unit price), BT-151 (VAT category), and BT-153 (item name).

What is the difference between EN 16931 and XRechnung?

EN 16931 is the European base standard. XRechnung is a German CIUS (customization) that defines additional rules, e.g., the mandatory Leitweg-ID (BR-DE-01).

How do I check whether my e-invoice contains all required fields?

Use the free ZUGFeRD & XRechnung Validator directly in your browser. It checks all EN 16931 required fields and shows missing or incorrect fields.

In what format must the invoice date be specified?

The invoice date (BT-2) must be in YYYYMMDD format, e.g., 20260603. TaxLayer automatically sets this format correctly.

Convert PDF invoices now

Try TaxLayer for free — 2 conversions per month, no credit card required.

Get started