E-invoicing · EN 16931

E-invoices from your own server

InvoiceShelf issues e-invoices to the European standard EN 16931. Your invoice PDFs become ZUGFeRD / Factur-X hybrids that people and accounting software both read, and your data never leaves your server.

Part of the InvoiceShelf 3.0 preview, through the free official E-Invoicing module.

What it does

One invoice, readable by people and machines

Nothing changes in how you invoice. When an invoice meets the standard, its PDF carries the e-invoice; when it does not, you are told why and the ordinary PDF goes out.

Hybrid e-invoice PDFs

An invoice PDF becomes a ZUGFeRD / Factur-X e-invoice: a PDF/A-3 file people read as usual, with the EN 16931 XML inside that accounting software reads. Download, public link, customer portal and email all carry it.

The XML on its own

Download the EN 16931 XML from any invoice, for portals and systems that take a file upload rather than a PDF.

Know before you send

Each invoice says whether it qualifies and, if not, exactly what is missing: a VAT ID, an IBAN, a tax category. Your company settings show a checklist of what still needs filling in.

Where it helps

Ready for the German mandate, and more

ZUGFeRD and Factur-X are the same hybrid format, the one Germany and France built their e-invoicing on.

Germany

ZUGFeRD in the EN 16931 profile is a valid e-invoice under the German B2B rules: receiving became mandatory in 2025, and issuing follows in 2027 and 2028. Send it the way you already send invoices.

France

Factur-X EN 16931 is one of the three formats the French reform accepts. Delivery through a certified platform is not part of InvoiceShelf yet.

Everywhere else

A standards-based EN 16931 e-invoice any business can accept voluntarily, plus the XML for portals that ask for a file.

Next on the roadmap: UBL formats (Peppol BIS Billing, XRechnung UBL) and sending through the Peppol network, for Belgium and the countries that use it.

What is covered

Real invoices, not just the easy ones Checked against EN 16931

Every kind of invoice below is validated in CI against the official EN 16931 business rules, with Mustang, and the PDF against PDF/A-3 with veraPDF.

EN 16931 tax categories

Standard, zero rated, exempt, reverse charge, intra-community and export, with exemption reasons

UN/ECE unit codes

Pick the code for each unit: hour, day, piece, kilogram and more

Credit notes

Issued as EN 16931 credit notes that refer to the invoice they correct

Discounts and down payments

Line and document discounts and settled down payments, written the way the standard expects

Reverse charge and EU supplies

With the buyer VAT ID and delivery country the rules ask for

Bank details and terms

IBAN, BIC and payment terms from your settings, checked when you save them

Setup

Gotenberg and one module

E-invoice PDFs are built by Gotenberg, the PDF service InvoiceShelf already supports. Without it the XML download still works.

setup
# docker-compose.yml: add a Gotenberg service next to InvoiceShelf
services:
  pdf:
    image: gotenberg/gotenberg:8.37.0   # the full image, not -chromium

# InvoiceShelf environment: allow it on the private network
GOTENBERG_ALLOWED_PRIVATE_HOST=http://pdf:3000

# Then in Administration → PDF Generation choose Gotenberg,
# host http://pdf:3000, and install the E-Invoicing module.

Then complete your company details and the IBAN in Settings → E-Invoicing. The checklist there shows what is left.

Open source

Built with the community

The EN 16931 mapping started as a contribution by André Kinne and iebl, and became the official module with their work at its core. The code is AGPL, like the rest of InvoiceShelf.

E-invoicing without a subscription

Download InvoiceShelf, add the E-Invoicing module, and issue your first ZUGFeRD invoice from your own server.