Factur-X, ZUGFeRD, XRechnung, UBL, Peppol

5 min read

There are only three kinds of thing behind the names. Factur-X and ZUGFeRD are one hybrid format (a PDF with the invoice data embedded as XML), developed jointly by France and Germany under two brands. EN 16931 is the European semantic standard underneath everything, written in two XML syntaxes, CII and UBL; XRechnung and Peppol BIS are national or network profiles of it. And Peppol is not a format at all: it is a delivery network. For a French business buyer, the answer is short: a Factur-X at the EN 16931 profile, emailed as a file.


The map

Name What it actually is Where you meet it
Factur-X Hybrid PDF + embedded CII XML France; the file French buyers ask for
ZUGFeRD 2.x The same format, German brand Germany; a ZUGFeRD EN 16931 file is a Factur-X
EN 16931 The European semantic standard: which data an invoice carries Inside all of the above; also the name of the recommended profile
CII One XML syntax for EN 16931 (UN/CEFACT) Inside Factur-X and ZUGFeRD
UBL The other XML syntax (OASIS) Peppol, Belgium, the Netherlands, Nordics
XRechnung Germany's profile of EN 16931 for public-sector invoices, pure XML (CII or UBL) Invoicing German public bodies
Peppol / Peppol BIS A delivery network, and its UBL-based invoice profile Belgium's B2B mandate, public sector across Europe

Two consequences follow. First, "Factur-X or ZUGFeRD?" is not a choice: same format, pick the name your customer uses. Second, "UBL or CII?" is rarely a choice either: the content is identical and converters swap the syntax losslessly on the EN 16931 core.


What each buyer actually expects

A French business: Factur-X, EN 16931 profile, with their SIREN and the French operation category, by email. No network involvement from you, as the mandate does not apply to foreign suppliers. Build it from your PDF with the converter.

A French public body: the same Factur-X works, deposited on Chorus Pro, France's public-sector portal, with a service code and commitment number when required.

A German business: ZUGFeRD, which is the file you already made under its other name. For German public bodies, XRechnung: pure XML, no PDF page; a different deliverable, generated from the same data.

A Belgian business: since 2026 Belgian domestic B2B invoices travel as Peppol BIS over the Peppol network. That is between Belgian parties and their access points; if you serve that market, our sibling service peppolio.com covers the Peppol side.

A buyer on Peppol elsewhere: a UBL converted from your CII is valid EN 16931; delivery over Peppol needs an access point, which is a delivery question, not a format one.


The practical rule

Produce your invoice data once, at the EN 16931 profile, and treat everything else as packaging: hybrid PDF for France and Germany, UBL when a network or a buyer asks for that syntax, validated whichever way it goes out. The six checks French platforms run apply to the content, not the wrapper, so a clean dataset passes everywhere with the right export.


Frequently asked questions

Is ZUGFeRD accepted in France?

Yes. ZUGFeRD 2.x and Factur-X are technically the same format; at the EN 16931 profile with the French mentions (buyer SIREN, operation category) it is exactly what a French buyer expects.

Do I need Peppol to invoice French customers?

No. The French B2B network is not Peppol, and foreign suppliers are outside it anyway: a Factur-X by email is the expected route. Peppol matters for Belgian domestic flows and for buyers who explicitly ask for Peppol delivery.

What is the difference between EN 16931 the standard and EN 16931 the profile?

The standard defines the invoice's data model. Factur-X names its recommended profile after it, meaning "carries the full core of the standard". Context tells you which is meant; on a file, the profile is what the specification identifier declares.

My system exports UBL only. Can I still serve a French customer?

Yes: convert the UBL to CII and wrap it as Factur-X with the embed tool, or send the UBL itself if your customer confirms their system takes it; the French core accepts both syntaxes.

Is XRechnung ever needed for France?

No. XRechnung is Germany's public-sector profile. Its French counterpart is Factur-X on Chorus Pro.


Published 22 September 2026. Sources: EN 16931 and its CII and UBL syntax bindings, Factur-X 1.07 specification, Peppol BIS Billing documentation. GetFacturX is not an accredited platform (Plateforme Agréée); transmission over the French network, which foreign suppliers do not need, is operated by an accredited partner platform. This article is not tax or legal advice. Dates, frequencies and amounts are those known at publication and may change; check them before relying on them.

More articles

Ready for 2026 e-invoicing?

Send, receive and comply, without an ERP

Create your account to send and receive over the network, and keep every file compliant.

EN 16931 & PDF/A-3b compliant Results in seconds No installation Plateforme Agréée ready
Unlock unlimited tools