Skip to content

ZUGFeRD profiles explained: why MINIMUM and BASIC WL are not enough

ZUGFeRD has six profiles: five levels that build on each other, from MINIMUM to EXTENDED, and the XRECHNUNG profile. Only some of them count as an e-invoice in Germany. Here is what each profile contains and which one you should use.

Formats16 Oct 2026 · about 8 minutes

In short

A profile defines how much of EN 16931 is in the XML. MINIMUM and BASIC WL contain no invoice lines and therefore not all mandatory details; they do not count as e-invoices in Germany. BASIC, EN 16931, EXTENDED and XRECHNUNG do. If in doubt, use EN 16931: the complete standard and Quittio’s default.

What a profile is

ZUGFeRD (Factur-X in France) is a PDF/A-3 with embedded XML. How much is in that XML is decided by the profile. Every profile writes its own identifier into field BT-24 (specification identifier), so the recipient knows which rules the invoice follows.

The profiles build on each other: each level contains everything of the previous one and more. The names grew historically; the EN 16931 profile used to be called COMFORT.

The six profiles at a glance

ProfileContainsE-invoice in Germany?
MINIMUMHeader data: number, date, seller and buyer (name only), totals. No lines, no addresses, no VAT breakdownno
BASIC WLMINIMUM plus addresses, payment data, VAT breakdown and document-level allowances. No lines (WL = “without lines”)no
BASICBASIC WL plus lines with quantity, unit, price, VAT and item nameyes
EN 16931The complete European standard, including item descriptions, item numbers, order references and contactsyes, recommended
EXTENDEDEN 16931 plus sub lines, several discount tiers, instalments, structured late fees and more fieldsyes
XRECHNUNGEN 16931 with the XRechnung rules (BR-DE), embedded in the PDFyes

Why MINIMUM and BASIC WL are not enough

An e-invoice must contain all mandatory VAT details in the structured part, i.e. in the XML and not just in the PDF. The mandatory details under sec. 14 (4) of the German VAT Act include the quantity and type of goods or the scope and type of service. Exactly this line data is missing in MINIMUM and BASIC WL.

The German tax administration has made this explicit: ZUGFeRD from version 2.0.1 counts as an e-invoice, except for the MINIMUM and BASIC WL profiles. These two profiles were originally meant as a booking aid: the PDF is the invoice and the XML only provides some header data for accounting.

Consequence

An invoice in the MINIMUM or BASIC WL profile is an “other invoice” for domestic B2B in Germany. It is only allowed during the transition periods: until the end of 2026, and until the end of 2027 for businesses with up to €800,000 prior-year turnover.

Quittio writes into each profile only what it may contain and reports data the profile cannot carry as warning QUITTIO-PROFILE-NOT-ALLOWED. A missing mandatory field of the profile is an error (QUITTIO-PROFILE-REQUIRED).

BASIC or EN 16931?

BASIC already is an e-invoice but does not cover every field of the standard. Missing are, among others:

  • Item description and seller and buyer item numbers
  • Classification, country of origin and attributes of an item
  • References to order lines, projects, contracts and receiving advice
  • Seller and buyer contacts
  • Payment means text, card data, account name and BIC

As soon as you need one of these, which happens quickly, BASIC is too small. That is why EN 16931 is the sensible default: complete, understood by every recipient and the starting point for XRechnung and Peppol.

When EXTENDED?

EXTENDED goes beyond the standard. You need it for sub lines (e.g. a bundle with individual parts), several discount tiers, instalments, exchange rates as structured data or line references.

Quittio switches to EXTENDED automatically when an invoice contains such data and you have not set a profile. Quittio never changes a profile you set explicitly; the validation then reports which data does not fit. With auto_upgrade_profile = false, such an invoice fails instead.

XRechnung has no EXTENDED

For XRechnung with sub lines, use the XRechnung extension: ->format('xrechnung-ubl')->profile('xrechnung-extension').

Choosing profiles in Quittio

Usually you don’t choose a profile: every format has a default, and the automatic choice uses EN 16931. If a recipient explicitly requires a profile, set it:

InvoiceService.php
// default: EN 16931
$result = Quittio::make($invoice)->format('zugferd')->render();

// EXTENDED, e.g. for sub lines
$result = Quittio::make($invoice)->format('zugferd')->profile('extended')->render();

// only if a recipient explicitly requires it
$result = Quittio::make($invoice)->format('zugferd')->profile('basic')->render();

// XRechnung embedded in a PDF
$result = Quittio::make($invoice)->format('zugferd')->profile('xrechnung')->render();

To set the profile for all invoices, use defaults.profile in config/quittio.php. It is skipped where it does not fit, e.g. basic for XRechnung or Peppol.

Checking the profile of incoming invoices

When you receive a ZUGFeRD invoice, check whether it is a real e-invoice. Quittio reads the profile and can validate against an expected profile:

IncomingInvoiceController.php
$read = Quittio::readFile('/path/to/incoming.pdf');
$read->profile;        // e.g. "en16931", "basic-wl" or "xrechnung"

// php artisan quittio:validate incoming.pdf --profile=en16931

If an invoice arrives in the MINIMUM or BASIC WL profile, it is not a valid e-invoice once the transition periods have ended. Ask the supplier for an invoice in a suitable profile.

Under review

Whether Quittio will block or only warn about plain PDFs and the MINIMUM and BASIC WL profiles for domestic B2B invoices is currently being reviewed with a tax adviser.

Frequently asked questions

Which ZUGFeRD profile should I use?

EN 16931. It is the complete standard, counts as an e-invoice and is understood by every recipient. Quittio uses it as the default.

Is BASIC an e-invoice?

Yes. BASIC contains lines and counts as an e-invoice in Germany. It does not cover every field of the standard, such as item descriptions or contacts.

What is the difference between ZUGFeRD and Factur-X?

None any more: ZUGFeRD 2.x and Factur-X are the same German-French standard with the same profiles.

What does the XRECHNUNG profile in ZUGFeRD mean?

An XRechnung (CII) is embedded in a PDF, so the recipient gets an XRechnung with a readable PDF.

Do I still need to read older ZUGFeRD 1.0 invoices?

Quittio also reads ZUGFeRD 1.0. Under German VAT law, however, ZUGFeRD only counts as an e-invoice from version 2.0.1.

As of: 16 Oct 2026. Not tax or legal advice.

Sources: Sec. 14 (4) UStG · Sec. 27 (38) UStG · Federal Ministry of Finance letter of 15 Oct 2025 (section 14.1 (14) UStAE: ZUGFeRD from 2.0.1 without MINIMUM and BASIC WL) · Federal Ministry of Finance letter of 15 Oct 2024 (BStBl I p. 1320) · ZUGFeRD 2.x / Factur-X (FeRD)

EN 16931 is Quittio’s default.

No configuration, no profile choice: valid e-invoices from the first line.