What is EN 16931?

What is EN 16931?

EN 16931 is a European standard for electronic invoicing, formally titled “Electronic invoicing – Semantic data model of the core elements of an electronic invoice.” It was developed by the European Committee for Standardization (CEN) and aims to standardize the content and structure of electronic invoices to facilitate cross-border trade and compliance with legal requirements.

Peppol BIS e-invoicing specifications are based on the EN 16931 standard, harmonizing electronic invoicing practices across Europe, promoting efficiency, reducing costs, and enabling seamless cross-border transactions.

Key aspects of EN 16931

1. Semantic Data Model: Defines the core elements and structure of an electronic invoice, ensuring consistency and interoperability across different systems and countries.
2. Core Elements: Specifies mandatory and optional fields that must be included in an invoice, such as buyer and supplier details, invoice lines, taxes, and totals.
3. Compliance: Helps businesses comply with the EU Directive 2014/55/EU, which mandates electronic invoicing in public procurement to streamline processes and reduce administrative burdens.
4. Interoperability: Provides a common framework for data exchange to facilitate interoperability between different e-invoicing systems and solutions.
5. Implementation: Designed for software developers, businesses, and public administrations to create, exchange, and process electronic invoices efficiently and consistently.

The relationship between EN 16931 and Peppol BIS

  • The Peppol BIS Billing specification is designed for electronic invoicing and fully complies with the EN 16931 standard. Peppol BIS Billing 3.0 uses the semantic data model and core elements defined in the standard for e-invoices.
  • Peppol BIS ensures that the e-invoices exchanged within the Peppol network meet the requirements of EN 16931, facilitating interoperability and compliance with EU regulations.
  • By adhering to EN 16931, Peppol BIS provides a standardized approach to e-invoicing that can be widely adopted across Europe. This ensures that invoices exchanged through Peppol are compatible with systems used by different businesses and public administrations.

Example: EN 16931 and Peppol BIS in a UBL invoice

<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″> <!– EN 16931 / Peppol BIS 3.0 identification –> <cbc:CustomizationID> urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 </cbc:CustomizationID> <cbc:ProfileID> urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 </cbc:ProfileID> <!– Core EN 16931 elements –> <cbc:ID>INV-2025-000123</cbc:ID> <cbc:IssueDate>2025-11-14</cbc:IssueDate> <cbc:DueDate>2025-12-14</cbc:DueDate> <cac:AccountingSupplierParty> <cac:Party> <cac:PartyName> <cbc:Name>Supplier AB</cbc:Name> </cac:PartyName> </cac:Party> </cac:AccountingSupplierParty> <cac:AccountingCustomerParty> <cac:Party> <cac:PartyName> <cbc:Name>Buyer Oy</cbc:Name> </cac:PartyName> </cac:Party> </cac:AccountingCustomerParty> <!– Invoice lines, tax totals, legal monetary totals, etc. go here –> </Invoice>
<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">

  <!-- EN 16931 / Peppol BIS 3.0 identification -->
  <cbc:CustomizationID>
    urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0
  </cbc:CustomizationID>
  <cbc:ProfileID>
    urn:fdc:peppol.eu:2017:poacc:billing:01:1.0
  </cbc:ProfileID>

  <!-- Core EN 16931 elements -->
  <cbc:ID>INV-2025-000123</cbc:ID>
  <cbc:IssueDate>2025-11-14</cbc:IssueDate>
  <cbc:DueDate>2025-12-14</cbc:DueDate>

  <cac:AccountingSupplierParty>
    <cac:Party>
      <cac:PartyName>
        <cbc:Name>Supplier AB</cbc:Name>
      </cac:PartyName>
    </cac:Party>
  </cac:AccountingSupplierParty>

  <cac:AccountingCustomerParty>
    <cac:Party>
      <cac:PartyName>
        <cbc:Name>Buyer Oy</cbc:Name>
      </cac:PartyName>
    </cac:Party>
  </cac:AccountingCustomerParty>

  <!-- Invoice lines, tax totals, legal monetary totals, etc. go here -->

</Invoice>

EN 16931 is not a file format in itself, but a structure defining what an e-invoice must contain. To make the invoice compatible, an established syntax is used—most commonly UBL 2.1—where the standard’s requirements are expressed as XML elements.

In practice, compliance comes down to three things:

  1. Using a supported syntax, such as UBL 2.1
  2. Indicating which specification the invoice follows, for example Peppol BIS Billing 3.0
  3. Meeting the EN 16931 rules, which ensure that amounts, dates, VAT details, and business information are valid

When an invoice is sent via Peppol, it must include the correct technical identifiers (CustomizationID and ProfileID). These tell the receiver—and the validation engine—exactly which rule set the invoice complies with.

Qvalia is fully compliant with EN 16931 and Peppol BIS.

Was this article helpful?

Related Articles