EN 16931 Mandatory Fields: Required Invoice Data
A field-by-field reference of the mandatory EN 16931 invoice fields: business term codes, formats and examples for seller, buyer, lines, VAT and totals.
Validate your file right now
Free, instant and 100% in your browser - no file is ever uploaded.
How to read this reference
EN 16931 defines a semantic data model - a list of “Business Terms” (BT) grouped into “Business Groups” (BG). This guide lists the fields you need for a compliant core invoice - every mandatory one, the main conditional ones and the key optional fields - each with its format and a realistic example.
Each field is tagged Mandatory (always required), Conditional (required when a rule applies - for example the VAT rate when the category is “standard”) or Optional (not required by core EN 16931, but listed because national rules or Peppol often make it mandatory). Beyond the core model, your country’s CIUS (a national profile such as XRechnung or the French specification) or Peppol BIS may add further mandatory fields.
The same model is expressed in two XML syntaxes - UBL 2.1 and UN/CEFACT CII (the basis of Factur-X / ZUGFeRD). The BT/BG codes below are identical in both; only the XML element names differ. The examples use a domestic sale with a 21% VAT rate.
1. Document level
Identify the invoice itself: its number, dates, type and currency.
| Code | Field | Requirement | Format | Example |
|---|---|---|---|---|
| BT-1 | Invoice number | Mandatory | Text | INV-2026-0001 |
| BT-2 | Invoice issue date | Mandatory | YYYY-MM-DD | 2026-06-21 |
| BT-3 | Invoice type code | Mandatory | UNCL 1001 | 380 |
| BT-24 | Specification identifier (CIUS) | Mandatory | Identifier | urn:cen.eu:en16931:2017 |
| BT-5 | Invoice currency code | Mandatory | ISO 4217 | EUR |
| BT-10 | Buyer reference | Optional | Text | PO-4567 |
| BT-9 | Payment due date | Conditional | YYYY-MM-DD | 2026-07-21 |
2. Seller (BG-4 / BG-5)
Who issues the invoice. The country code is always mandatory; the VAT identifier is required whenever VAT is charged.
| Code | Field | Requirement | Format | Example |
|---|---|---|---|---|
| BT-27 | Seller name | Mandatory | Text | ACME GmbH |
| BT-31 | Seller VAT identifier | Conditional | Text | DE123456789 |
| BT-30 | Seller legal registration identifier | Conditional | Text | HRB 12345 |
| BT-34 | Seller electronic address | Optional | Identifier + EAS | 9930:DE123456789 |
| BT-35 | Seller address line 1 | Optional | Text | Hauptstraße 1 |
| BT-37 | Seller city | Optional | Text | Berlin |
| BT-38 | Seller post code | Optional | Text | 10115 |
| BT-40 | Seller country code | Mandatory | ISO 3166-1 | DE |
3. Buyer (BG-7 / BG-8)
Who receives the invoice. For B2C the buyer is an individual, so the VAT identifier is left empty - but name and country code stay mandatory.
| Code | Field | Requirement | Format | Example |
|---|---|---|---|---|
| BT-44 | Buyer name | Mandatory | Text | Jane Doe |
| BT-48 | Buyer VAT identifier | Conditional | Text | - (B2C) |
| BT-49 | Buyer electronic address | Optional | Identifier + EAS | 0002:73282932 |
| BT-50 | Buyer address line 1 | Optional | Text | 12 Rue de Paris |
| BT-52 | Buyer city | Optional | Text | Lyon |
| BT-53 | Buyer post code | Optional | Text | 69001 |
| BT-55 | Buyer country code | Mandatory | ISO 3166-1 | FR |
4. Invoice line (BG-25)
At least one line is required. Each line describes one item with its quantity, price, net amount and VAT category.
| Code | Field | Requirement | Format | Example |
|---|---|---|---|---|
| BT-126 | Invoice line identifier | Mandatory | Text | 1 |
| BT-129 | Invoiced quantity | Mandatory | Decimal | 2 |
| BT-130 | Unit of measure code | Mandatory | UN/ECE Rec 20 | C62 |
| BT-153 | Item name | Mandatory | Text | Wireless keyboard |
| BT-146 | Item net price | Mandatory | Decimal | 50.00 |
| BT-131 | Invoice line net amount | Mandatory | Decimal (2) | 100.00 |
| BT-151 | Invoiced item VAT category code | Mandatory | UNCL 5305 | S |
5. VAT breakdown (BG-23)
One breakdown per VAT rate, summarising the taxable base and the tax amount. Required even for a single-rate invoice.
| Code | Field | Requirement | Format | Example |
|---|---|---|---|---|
| BT-116 | VAT category taxable amount | Mandatory | Decimal (2) | 100.00 |
| BT-117 | VAT category tax amount | Mandatory | Decimal (2) | 21.00 |
| BT-118 | VAT category code | Mandatory | UNCL 5305 | S |
| BT-119 | VAT category rate | Conditional | Percentage | 21 |
| BT-120 | VAT exemption reason text | Conditional | Text | Exempt - Art. 44 |
| BT-121 | VAT exemption reason code | Conditional | Code | VATEX-EU-AE |
6. Document totals (BG-22)
The monetary summary. These amounts must be internally consistent or the EN 16931 calculation rules will reject the invoice.
| Code | Field | Requirement | Format | Example |
|---|---|---|---|---|
| BT-106 | Sum of invoice line net amounts | Mandatory | Decimal (2) | 100.00 |
| BT-109 | Invoice total amount without VAT | Mandatory | Decimal (2) | 100.00 |
| BT-110 | Invoice total VAT amount | Conditional | Decimal (2) | 21.00 |
| BT-112 | Invoice total amount with VAT | Mandatory | Decimal (2) | 121.00 |
| BT-115 | Amount due for payment | Mandatory | Decimal (2) | 121.00 |
Formats and code lists
EN 16931 does not let you invent values for typed fields - they must follow these standard formats and code lists.
Dates
ISO 8601 calendar date, format YYYY-MM-DD (e.g. 2026-06-21). No time or time zone on invoice dates.
Monetary amounts
Decimal with at most 2 fraction digits, a dot as decimal separator and no thousands separator (e.g. 1234.50).
Currency (BT-5)
ISO 4217 three-letter code (e.g. EUR, SEK, PLN). One document currency per invoice.
Country codes
ISO 3166-1 alpha-2 two-letter code (e.g. DE, FR, BE) for every address.
VAT category (BT-118 / BT-151)
UNCL 5305 code: S (standard), Z (zero-rated), E (exempt), AE (reverse charge), K (intra-EU), G (export), O (out of scope).
Unit of measure (BT-130)
UN/ECE Recommendation 20/21 code (e.g. C62 = one/piece, KGM = kilogram, HUR = hour, MTR = metre).
Invoice type (BT-3)
UNCL 1001 code: 380 (commercial invoice), 381 (credit note), 384 (corrected invoice), 389 (self-billed invoice).
Identifiers and schemes
Many IDs carry a scheme identifier - e.g. a seller VAT ID like DE123456789, or an electronic address qualified by a Peppol EAS scheme (such as 9930).
What changes for B2C (invoicing individuals)
EN 16931 was designed mainly for B2B and B2G, but its core model applies to any invoice - including sales to private individuals. The structure does not change; a few fields simply behave differently.
The buyer VAT identifier (BT-48) is not required for individuals - leave it out. The buyer name (BT-44) and buyer country code (BT-55) remain mandatory, and a full postal address is strongly recommended (and often required by national VAT rules).
VAT still applies in full: every line needs a VAT category code (BT-151) and the VAT breakdown (BG-23) must be present. For a normal domestic B2C sale this is category S with your national standard rate.
Routing is the real difference. The Peppol network targets B2B/B2G, so for pure B2C you still produce an EN 16931-compliant XML (for archiving, VAT/OSS reporting, or to hand to the customer) but you usually do not send it over Peppol. Always check your country's mandate - some only require structured invoices for B2B or above a threshold.
A complete example (all mandatory fields)
Here is a minimal but fully EN 16931-compliant invoice in UBL 2.1, matching the B2C example above (a €100 sale at 21% VAT). Every mandatory business term is present and labelled with its BT code.
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017</cbc:CustomizationID> <!-- BT-24 -->
<cbc:ID>INV-2026-0001</cbc:ID> <!-- BT-1 -->
<cbc:IssueDate>2026-06-21</cbc:IssueDate> <!-- BT-2 -->
<cbc:DueDate>2026-07-21</cbc:DueDate> <!-- BT-9 -->
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <!-- BT-3 -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> <!-- BT-5 -->
<cac:AccountingSupplierParty> <!-- BG-4 Seller -->
<cac:Party>
<cac:PostalAddress>
<cbc:StreetName>Hauptstraße 1</cbc:StreetName> <!-- BT-35 -->
<cbc:CityName>Berlin</cbc:CityName> <!-- BT-37 -->
<cbc:PostalZone>10115</cbc:PostalZone> <!-- BT-38 -->
<cac:Country><cbc:IdentificationCode>DE</cbc:IdentificationCode></cac:Country> <!-- BT-40 -->
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>DE123456789</cbc:CompanyID> <!-- BT-31 -->
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>ACME GmbH</cbc:RegistrationName> <!-- BT-27 -->
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty> <!-- BG-7 Buyer (B2C) -->
<cac:Party>
<cac:PostalAddress>
<cac:Country><cbc:IdentificationCode>FR</cbc:IdentificationCode></cac:Country> <!-- BT-55 -->
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Jane Doe</cbc:RegistrationName> <!-- BT-44 -->
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">21.00</cbc:TaxAmount> <!-- BT-110 -->
<cac:TaxSubtotal> <!-- BG-23 VAT breakdown -->
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount> <!-- BT-116 -->
<cbc:TaxAmount currencyID="EUR">21.00</cbc:TaxAmount> <!-- BT-117 -->
<cac:TaxCategory>
<cbc:ID>S</cbc:ID> <!-- BT-118 -->
<cbc:Percent>21</cbc:Percent> <!-- BT-119 -->
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal> <!-- BG-22 Totals -->
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount> <!-- BT-106 -->
<cbc:TaxExclusiveAmount currencyID="EUR">100.00</cbc:TaxExclusiveAmount> <!-- BT-109 -->
<cbc:TaxInclusiveAmount currencyID="EUR">121.00</cbc:TaxInclusiveAmount> <!-- BT-112 -->
<cbc:PayableAmount currencyID="EUR">121.00</cbc:PayableAmount> <!-- BT-115 -->
</cac:LegalMonetaryTotal>
<cac:InvoiceLine> <!-- BG-25 Invoice line -->
<cbc:ID>1</cbc:ID> <!-- BT-126 -->
<cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity> <!-- BT-129 / BT-130 -->
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount> <!-- BT-131 -->
<cac:Item>
<cbc:Name>Wireless keyboard</cbc:Name> <!-- BT-153 -->
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID> <!-- BT-151 -->
<cbc:Percent>21</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">50.00</cbc:PriceAmount> <!-- BT-146 -->
</cac:Price>
</cac:InvoiceLine>
</Invoice>This is the EN 16931 core. To send it over Peppol, also add the electronic addresses (BT-34 / BT-49), the ProfileID (BT-23) and a buyer reference (BT-10). The same invoice in CII (Factur-X) uses the same BT codes with different element names.
Validate your EN 16931 invoice for free
Generate your UBL or CII file, then drop it into our validator to check every mandatory field, code list and EN 16931 business rule - entirely in your browser, with no data uploaded to any server.
Open the UBL / Peppol validatorFrequently Asked Questions
How many fields does EN 16931 require?
The core model has around 160 business terms, but only a subset is mandatory. A minimal compliant invoice needs roughly 25–30 mandatory fields spread across the document header, the seller, the buyer, at least one line, the VAT breakdown and the totals.
Is the buyer's VAT number mandatory?
No. BT-48 is conditional - required for B2B reverse-charge or intra-EU supplies, but not for B2C sales to individuals. The buyer name and country code are always mandatory.
What date format does EN 16931 use?
ISO 8601 calendar dates, YYYY-MM-DD (e.g. 2026-06-21). Invoice dates carry no time or time-zone component.
How many decimals are allowed on amounts?
Monetary amounts use a maximum of 2 fraction digits with a dot as decimal separator. Quantities and unit prices may use more decimal places.
What is the difference between mandatory and conditional fields?
Mandatory fields must always be present. Conditional fields become mandatory when a rule applies - for example the VAT rate (BT-119) is required when the VAT category is "Standard".
Which invoice type code should I use?
BT-3 uses code list UNCL 1001. Use 380 for a commercial invoice and 381 for a credit note; 384 is a corrected invoice.
Do I need both UBL and CII?
No - choose one syntax. UBL 2.1 is common on Peppol; CII underpins Factur-X/ZUGFeRD. The mandatory business terms are identical in both.
Are there extra mandatory fields beyond the core?
Yes. National CIUS (e.g. XRechnung in Germany, the French profile) and Peppol BIS add rules - for instance XRechnung requires a buyer reference (BT-10) and seller contact details.
What VAT category code do I use for a normal domestic sale?
Category S (standard rate) with the applicable percentage in BT-119. Use Z for zero-rated, E for exempt, and AE for reverse charge.
How do I check my invoice is complete?
Validate it against the EN 16931 business rules (Schematron), not just the XSD schema. Our free UBL/Peppol validator checks mandatory fields, code lists and the EN 16931 calculation rules.