Standards

XRechnung profiles explained: MINIMUM, BASIC, COMFORT, EXTENDED

By Mohamed Waleed

XRechnung profiles explained: MINIMUM, BASIC, COMFORT, EXTENDED

If you have read the ZUGFeRD documentation, you have seen the profile names: MINIMUM, BASIC, COMFORT, EXTENDED. If you have read the XRechnung documentation, you have not seen them, because XRechnung does not use that profile ladder. This post clears up the confusion, explains where the profile names come from, and shows how XRechnung fits into the profile picture.

Where the profile names come from

The profile ladder belongs to ZUGFeRD and Factur-X, not XRechnung. ZUGFeRD defines profiles that trade detail for simplicity. Each profile is a named level that defines which fields and rules apply, from a minimal booking aid up to the full EN 16931 data model.

XRechnung is a different kind of thing. It is a CIUS, a country customization of EN 16931, maintained by KoSIT. XRechnung has one level. There is no MINIMUM or EXTENDED XRechnung. Every XRechnung invoice carries the same data set and passes the same Schematron rules.

So when people say "XRechnung profiles," they are usually referring to the ZUGFeRD profile ladder and asking where XRechnung sits inside it. The answer is the XRECHNUNG profile, which is one rung on the ZUGFeRD ladder.

The ZUGFeRD profile ladder

ZUGFeRD defines six profiles, from lightest to heaviest. These are the levels the InvoiceSpec API accepts in the config.profile field.

MINIMUM

A booking aid with the bare minimum of fields for the recipient to post the invoice. Line items are suppressed from the embedded XML. The visible PDF page still shows the full invoice, but the machine-readable layer carries only the totals and the parties. Use this when your recipient needs a posting aid, not a full electronic invoice.

BASICWL

Basic without lines. Enough to identify the invoice and its totals, but no line-item detail in the XML. Like MINIMUM, it is a booking aid. The difference is the set of totals and identifying fields it carries.

BASIC

Basic with line items. Covers the common small-business invoice. The embedded XML carries the parties, the totals, and the line items. This is the profile many small businesses use when they need more than a booking aid but not the full EN 16931 set.

EN16931 (COMFORT)

The full EN 16931 data set. This is the default profile and the one most businesses need for compliance. It carries every business term the standard defines. The name COMFORT comes from the older ZUGFeRD 1.x naming. In ZUGFeRD 2.x the profile is officially called EN16931, but COMFORT is still widely used and understood.

XRECHNUNG

The EN16931 profile with the XRechnung customization layered on top. This is where XRechnung enters the profile picture. Use this profile when your recipient wants a ZUGFeRD PDF but also needs the German public-sector rules satisfied. The XRECHNUNG profile gives you the readable PDF surface and the XRechnung rule compliance in one file.

EXTENDED

A superset of EN 16931 that adds fields for more complex scenarios like downstream settlement and surcharges. The engine stamps the profile URN into the document. EXTENDED is for the cases the standard data model does not cover on its own.

How XRechnung relates to the ladder

XRechnung and the ZUGFeRD profiles operate at different layers, and the XRECHNUNG profile is the bridge between them.

  • XRechnung as a standalone format is a bare XML file. It has one level. There is no profile selection. You generate it with config.spec set to xrechnung.
  • ZUGFeRD as a format has the profile ladder. You select the level with config.profile. The XRECHNUNG profile is the rung that applies the XRechnung CIUS rules to a ZUGFeRD PDF.

The two delivery options share the same EN 16931 data model. A XRechnung XML file and a ZUGFeRD PDF in the XRECHNUNG profile carry the same invoice data and satisfy the same XRechnung Schematron rules. The difference is the container: a bare XML file for XRechnung, a PDF/A-3 with embedded XML for ZUGFeRD.

Which one do you need?

The choice breaks down into two questions.

First, does your recipient want a PDF or a standalone XML file? German public authorities that require structured XML want XRechnung XML. German B2B recipients often want a ZUGFeRD PDF because their team can read it.

Second, if you are sending a ZUGFeRD PDF, which profile? Most businesses that need compliance use the EN16931 profile. If your recipient is a German public authority that accepts ZUGFeRD, the XRECHNUNG profile adds the German rules on top. If you only need a posting aid, MINIMUM or BASICWL is enough.

NeedFormatProfile
German public sector, structured XMLXRechnung XML(single level)
German B2B, readable PDFZUGFeRD PDFEN16931
German public sector, readable PDFZUGFeRD PDFXRECHNUNG
Posting aid onlyZUGFeRD PDFMINIMUM or BASICWL
Complex settlement scenariosZUGFeRD PDFEXTENDED

Frequently asked questions

Does XRechnung have profiles?

No. XRechnung is a single-level CIUS. Every XRechnung invoice carries the same data set and passes the same KoSIT Schematron rules. The profile ladder belongs to ZUGFeRD. The XRECHNUNG profile is a ZUGFeRD profile that applies the XRechnung rules to a PDF.

Is COMFORT the same as EN16931?

Yes. COMFORT is the older ZUGFeRD 1.x name for the profile that carries the full EN 16931 data set. In ZUGFeRD 2.x the official name is EN16931. The two names refer to the same level.

Can I send a XRechnung XML file as a ZUGFeRD PDF?

Not directly. They are different containers. A XRechnung XML file is a standalone XML document. A ZUGFeRD PDF is a PDF/A-3 with the XML embedded inside. You generate each from the same invoice data, but the output format is different. Use the XRECHNUNG profile on the ZUGFeRD endpoint if you need the XRechnung rules in a PDF.

Generate the right format

InvoiceSpec produces XRechnung XML and ZUGFeRD PDFs from one JSON request. Set config.spec to xrechnung for the standalone XML, or zugferd with config.profile set to EN16931, XRECHNUNG, or any other supported level for the PDF. The engine validates the output against the official rule sets before delivery.

Read the API reference to see how the config.profile field selects the conformance level, or start a free trial to generate your first compliant e-invoice in the format your recipient expects.

XRechnungZUGFeRDprofilesEN 16931Factur-Xcomparison

Mohamed Waleed

Founder, InvoiceSpec

Mohamed is the founder of InvoiceSpec, where he builds the e-invoicing infrastructure software companies use to ship compliant XRechnung, ZUGFeRD, and EN 16931 documents without maintaining the logic in-house. He writes about German e-invoicing compliance in plain terms for the finance and ops teams who have to meet it.

Related posts

Standards

Generate and validate XRechnung, EN 16931, and ZUGFeRD with one API — endpoint-specific schemas, examples, and recovery guidance.

Read the API reference