From MINIMUM to EXTENDED: what each profile contains, how it is identified via BT-24 — and why MINIMUM and BASIC WL are not full e-invoices.
ZUGFeRD 2.x and Factur-X are the same standard: a PDF/A-3 with an embedded CII XML file (usually factur-x.xml). The German publisher is FeRD, the French one FNFE-MPE — technically there is no difference. What actually distinguishes invoices in this format is the profile: the amount of structured data the XML carries. And the profile decides whether a file counts as an e-invoice at all.
MINIMUM contains only the essentials: seller, buyer, invoice number, date, totals and the VAT amount. No invoice lines, no VAT breakdown. BASIC WL (“without lines”) adds complete header and footer data — full parties, payment details, a VAT breakdown by category — but still carries no line items. BASIC is a subset of EN 16931 that includes invoice lines, making it the smallest full-fledged profile; it suffices for structurally simple invoices. EN 16931 (formerly COMFORT) covers the complete data model of the norm and is the standard case. EXTENDED goes beyond it — for instance multiple delivery locations or cascading allowances and charges. It is conformant to the norm, but no longer a subset.
There is also XRECHNUNG as a reference profile: a ZUGFeRD XML that simultaneously satisfies the German CIUS XRechnung — intended for invoices to German public bodies inside the hybrid PDF envelope. Billhorse recognises such files by their XRechnung URN and validates them with the XRechnung rules.
EN 16931 requires line-item data. MINIMUM and BASIC WL omit it and are therefore not e-invoices within the meaning of the norm — the ZUGFeRD specification itself classifies them as mere booking aids. For inbound processing this means: lines cannot be matched against purchase orders, the totals arithmetic cannot be fully verified, and the recipient has to fall back on the visual PDF.
In Germany this has had direct consequences since 2025: businesses have been required to receive B2B e-invoices since 1 January 2025, and the obligation to issue them phases in from 2027. What counts is an EN 16931 conformant invoice — MINIMUM and BASIC WL do not qualify. Whoever sends them is, formally, not sending an e-invoice. France draws the same line: in the French e-invoicing reform, BASIC is the minimum profile of the mandatory core.
The profile lives in the specification identifier BT-24. In the CII XML of ZUGFeRD/Factur-X that is the GuidelineSpecifiedDocumentContextParameter at the top of the file:
<rsm:ExchangedDocumentContext>
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
The URN values of the profiles:
| URN (BT-24) | Profile |
|---|---|
urn:factur-x.eu:1p0:minimum | MINIMUM |
urn:factur-x.eu:1p0:basicwl | BASIC WL |
urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic | BASIC |
urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:en16931 | EN 16931 (Comfort) |
urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended | EXTENDED |
urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 | XRECHNUNG (reference profile) |
Billhorse evaluates the identifier case-insensitively and checks basicwl before basic — the order matters because the BASIC WL URN contains the string “basic”. A plain urn:cen.eu:en16931:2017 in a CII XML or PDF is likewise classified as EN 16931 (Comfort); an XRechnung URN with #conformant#…extension marks the XRechnung Extension.
For MINIMUM and BASIC WL, Billhorse raises BH-PROFILE-01: not an EN 16931 conformant e-invoice, only a booking aid — for mandate compliance generate at least BASIC, ideally EN 16931 (Comfort). For EXTENDED, BH-PROFILE-02 applies: conformant to EN 16931 but not compliant — the recipient must support the profile. BH-PROFILE-03 concerns the XRechnung Extension: it permits sub invoice lines, so totals deviations are reported there only as warnings. And if a CrossIndustryDocument from ZUGFeRD 1.0 turns up, you get the migration notice BH-ZF1-01: the legacy format is not EN 16931 conformant and does not fulfil the e-invoicing mandates.
All checks run in the browser validator directly on your machine; the same engine is available through the API (validate/parse, private beta).
In short: EN 16931 (Comfort). It covers the full data model of the norm, every mandate-compliant recipient must be able to process it, and it can be produced from the same data as an XRechnung. BASIC is defensible if your invoices stay simple — but the gap to EN 16931 is small enough that the restriction rarely pays off. Choose EXTENDED only if you need fields the norm does not know and the recipient explicitly accepts the profile. For German public bodies, use the XRECHNUNG reference profile or plain XRechnung XML. MINIMUM and BASIC WL should no longer be generated — acceptable as a booking aid, not enough as an invoice.
The Billhorse validator checks XRechnung, ZUGFeRD and Factur-X right in your browser — your file is never uploaded.
Open the validator← All guides · Last updated: 2026-07-04