Navigation

fino data services logo

Knowledge · E-invoicing

XRechnung, ZUGFeRD and BIS Billing 3.0: which e-invoice formats your software should support

From 1 January 2027, companies with more than €800,000 in total turnover in the previous year must send e-invoices. To do so, companies need software that generates the right format, regardless of whether the invoice goes to a federal authority, to a business partner in the Peppol network or to a recipient who still wants to see a PDF. One format is rarely enough.

Distinguishing data model, syntax and file form

EN 16931 describes a semantic data model. It defines which information an invoice contains and how the items relate to each other, for example the invoice number as BT-1 or the buyer reference as BT-10. The standard itself is not a file format.

For the technical representation, it permits two syntaxes: UBL and UN/CEFACT CII. Both represent the same semantic model but differ in element names and structure. Software that only reads UBL cannot process a CII invoice automatically, even if it is compliant with the standard.

For the implementation, this determines the maintenance effort. Two parallel mappings mean that every rule change has to be followed up in two places. If you instead map once to the semantic model of the standard and generate both syntaxes from it, you only touch one place per change.

On receipt, it works the other way round: the incoming file is first mapped to the semantic model and from there transferred into your data model.

Above the standard sit the national and network-specific specifications, called Core Invoice Usage Specification in the standard, or CIUS for short. A CIUS narrows the standard. It makes optional fields mandatory, excludes others and brings its own Schematron rules. Specifications that go beyond the scope of the standard are called extensions.

Regardless of syntax and specification, an e-invoice comes either as a pure XML file or as a PDF/A-3 with an embedded XML file. For the second case, the term hybrid format has become established.

XRechnung, the German specification of the standard

XRechnung is a CIUS of EN 16931 and is maintained by the Coordination Office for IT Standards, KoSIT for short. It exists in both syntaxes. It has no visual component; the file is pure XML.

XRechnung is mandatory for invoices to the German federal administration. The invoice is addressed via the Leitweg-ID, which is given in the data record as the buyer reference.

The submission channel depends on the recipient. Options are the ZRE and OZG-RE portals or a Peppol Access Point. In B2B, the Leitweg-ID plays no role. There, XRechnung is just one of several permitted profiles.

Version 3.0.2 currently applies. For XRechnung 4.0, the implementation of EN 16931 in the 2026 edition, a preliminary version already exists. The final version of XRechnung 4.0 is expected to be published in spring 2027.

ZUGFeRD, structured data in a PDF

ZUGFeRD packs an XML file in CII into a PDF/A-3. People see the PDF, while software reads the XML.

The specification has several profiles with different data scopes, from MINIMUM to EXTENDED.

MINIMUM and BASIC WL do not contain a complete invoice and do not meet the standard. From the EN 16931 profile upwards, called COMFORT in older versions, the structured part complies with the standard. Your software should read the profile on import and handle files with MINIMUM or BASIC WL separately, for example through a manual check.

Factur-X is technically largely identical to ZUGFeRD.

ZUGFeRD makes sense above all where your customers invoice recipients who still check invoices visually. Only the embedded XML is legally decisive. If the PDF and XML differ, the data of the structured part takes precedence, according to the German Federal Ministry of Finance letter of 15 October 2025.

An approval process that only checks the PDF can therefore approve an invoice whose decisive content says something else.

When sending, your software should generate the PDF and XML from the same data record so that they do not diverge. On receipt, it should build its own view from the XML for checking instead of displaying the supplied PDF. The German Federal Ministry of Finance also recommends visualising the XML part yourself.

Peppol BIS Billing 3.0, the invoice format of OpenPeppol

Peppol BIS Billing 3.0 is also a CIUS of EN 16931, fixed to UBL 2.1. OpenPeppol specified it as its own format for exchanging invoices and credit notes over the network.

In addition to the rules of the standard, it brings its own Schematron rules. A file can pass validation against EN 16931 and fail on a Peppol rule. Often these concern code lists or fields that the network defines more narrowly than the standard.

The specification is developed further in versions. If you validate yourself, you should check whether your rule sets are up to date.

In the longer term, Peppol is moving towards PINT, an internationally aligned basis for invoice profiles outside Europe. For implementation in Germany, this changes nothing at present.

Which e-invoice format you need for sending and receiving

Invoices to the federal administration in Germany

For these invoices, your software must be able to generate XRechnung. The recipient’s Leitweg-ID belongs in the invoice data record as a mandatory field and is output in the XRechnung as the buyer reference (BT-10). If it is missing or in the wrong field, the receiving portal rejects the invoice.

Sending in domestic B2B

The law requires an invoice in accordance with EN 16931 and leaves the format open. XRechnung, ZUGFeRD from the EN 16931 profile upwards and also Peppol BIS Billing are permitted. The embedded XML remains legally decisive. If the PDF and XML differ, the recipient may be checking different information from what legally applies.

Companies in Germany have had to be able to receive e-invoices in accordance with EN 16931 since 1 January 2025. For an e-invoice that complies with the standard, the sender therefore does not need the recipient’s consent, even if the recipient prefers a particular format.

The two parties only need to agree on the transmission channel and on formats outside the standard. In practice, the agreed channel therefore belongs in the master data of the individual business partner.

Sending via the Peppol network

In addition to Peppol BIS Billing 3.0, XRechnung and, since March 2025, ZUGFeRD as a hybrid file can also be transmitted via the Peppol network. The document types that a recipient has registered in the directory service show which formats it accepts. Before sending, your software must query this registration and choose the right format. For individual checks, the Peppol ID lookup shows this without registration.

In live operation, your software should run this query automatically before sending, either directly via the SML and SMP directory services or via the API of your Peppol Access Point. Based on this, a commonly supported format is determined and the e-invoice is then generated in that format.

Receiving

Incoming invoices arrive in the format the sender has chosen. Your software should therefore be able to read both syntaxes, UBL and CII, and thus also XRechnung in both variants. Add to that ZUGFeRD and Factur-X as hybrid files and, as soon as your customers receive invoices from abroad, the profiles customary there.

Every incoming file contains an identifier stating which specification it uses. In UBL it is in the element cbc:CustomizationID, in CII in the guideline context parameter. Your software should read this identifier first, because it determines which validation rules apply and how the file is transferred into your data model.

Some Peppol Access Points take this step off your hands. They check the incoming file, extract the invoice data and pass it on together with the original file as a uniform data record.

Order of implementation

Your software should fully cover receiving before sending, i.e. both syntaxes and the hybrid formats, because your customers already have to be able to receive e-invoices today.

Sending becomes mandatory for your customers in two stages: from 1 January 2027 for more than €800,000 in total turnover in the previous year, and from 1 January 2028 for all other domestic B2B transactions.

If you start with the CII syntax, you can use it to generate XRechnung in the CII variant and ZUGFeRD. UBL becomes necessary as soon as recipients in the Peppol network expect Peppol BIS Billing 3.0, because this format requires UBL.

Why all mandatory information must be in the structured part

All mandatory VAT information must be in the structured part of the e-invoice in machine-readable form. This includes the description of goods or services. A reference to an attachment, a delivery note or a link does not replace a mandatory field. The basis is the German Federal Ministry of Finance FAQ on e-invoicing and the German Federal Ministry of Finance letter of 15 October 2025.

The reason lies in the structure of the e-invoice. With hybrid formats such as ZUGFeRD, the data in the XML is leading; the PDF is only a view. Information that is only visible in the PDF therefore does not count.

If a mandatory item of information is missing from the structured part, the invoice is not considered proper, and the recipient’s input VAT deduction may be at risk. Your customers will notice this at the latest when business partners reject invoices for this reason.

Typical cases in existing products

Many invoice templates carry mandatory information as text blocks that only appear in the PDF. This often concerns the description of goods or services, for example “as per quotation 2026-114”, the service period in the footer of the invoice and the reference to the reverse-charge mechanism.

In the data model, each of these items should have its own field from which the XML is filled. The service period belongs in the fields for the invoicing period (BG-14), the reverse-charge reference in the tax category with exemption reason (BT-120 and BT-121).

What validation detects

Technical validation checks whether the mandatory fields of the standard are present and formally correctly filled. It does not detect whether a description of goods or services is sufficient for VAT purposes. An invoice can therefore pass validation and still contain a mandatory item of information only insufficiently.

Embedding attachments

Delivery notes, timesheets and other documents accompanying the invoice can be embedded in the e-invoice as attachments, in EN 16931 via the additional supporting documents group (BG-24). This replaces separate sending and keeps invoice and supporting evidence together in one file.

Validation rules

An XRechnung is checked against two rule sets: the rules of EN 16931 and the additional KoSIT rules. The same applies to Peppol BIS Billing 3.0 with the OpenPeppol rules. A check against the standard alone therefore says only so much about whether the recipient will accept the file. Your software should check against the rule set of the specification the recipient expects.

KoSIT and OpenPeppol regularly publish new versions of their rule sets with adjusted code lists and Schematron rules. If your software does not keep its rule sets up to date, invoices that were previously accepted may be rejected. The rejection then comes from the recipient, but the cause lies in your own outdated rule set.

For tests during development, individual files can be checked against EN 16931 and the Peppol rules with the free e-invoice validator. For automated checking in live operation, InvoiceRails also offers validation via an API, against EN 16931 and profiles such as XRechnung, ZUGFeRD and Peppol BIS Billing. The validation report lists errors, warnings and notices separately.

Format maintenance and the switch to XRechnung 4.0

A mapping is built once; the validation rules behind it can change several times a year. The next major switch is already on the horizon with XRechnung 4.0 and EN 16931 in the 2026 edition.

The 2026 edition is based on UBL 2.5. In compliant implementations, UBL 2.5 can only be used once CEN has published an updated syntax binding. Until then, the existing bindings based on UBL 2.1 apply. Providers can therefore prepare the switch, but not yet implement it.

If you build the connection yourself, you take on this maintenance permanently. This includes keeping the mappings for both syntaxes, the code lists and the Schematron rules up to date and following the version plans of KoSIT, FeRD, OpenPeppol and CEN. This is feasible, but it ties up development time that is then missing in your own product.

Alternatively, format maintenance can be outsourced to a Peppol Access Point. InvoiceRails, the OpenPeppol-certified Access Point from fino data services, covers more than 60 formats via one API, including XRechnung, ZUGFeRD and Factur-X, and continuously maintains validation rules and format updates.

Providers connect sending and receiving once and make the function available to any number of their customers, under their own brand if desired. Mapping their own invoice data to the interface remains with the provider, as do the mandatory fields in their own data model.

How software providers bring e-invoicing into their own product in general is covered in the article on e-invoicing for software providers.

Frequently asked questions

From the EN 16931 profile upwards, the embedded XML part meets the requirements of the standard. MINIMUM and BASIC WL are not sufficient; they do not contain a complete invoice. The structured part is always decisive, not the PDF view.

That depends on whom your customers invoice. For invoices to the public administration, you need XRechnung. You need Peppol BIS Billing 3.0 as soon as recipients in the Peppol network expect this format. Both can be generated from the same mapping to EN 16931.

Not if the recipient expects a particular specification. XRechnung and Peppol BIS Billing 3.0 bring additional validation rules. A file can pass the check against the standard and still fail on one of these rules.

Further reading

What is Peppol BIS Billing 3.0?
E-invoicing

What is Peppol BIS Billing 3.0?

Peppol BIS Billing 3.0 is the OpenPeppol specification for invoices and credit notes in the Peppol network. It is a core invoice usage specification (CIUS) of the European standard EN 16931.

Validating e-invoices and reading the validation report correctly
E-invoicing

Validating e-invoices and reading the validation report correctly

When an e-invoice from your software is rejected, your team has to work out from the validation report which field triggered the message and who can correct it.

E-invoicing in Belgium
Factsheet

E-invoicing in Belgium

In Belgium, structured e-invoicing has been mandatory in B2B since 1 January 2026, for both sending and receiving, with no phase-in by company size.

Want to learn more about Peppol?

Talk directly to the teams behind our products. No pitch deck and no unnecessary sales processes.

Get in touch