Factur-X, UBL, CII: which electronic invoice format should you choose?
Technical comparison of the three formats accepted by the French DGFiP reform: Factur-X, UBL and UN/CEFACT CII. Origins, structure, tooling and use cases to make the right choice for your Magento 2 or Adobe Commerce store.
In this article
Key takeaways
- Three formats are accepted by the French reform: Factur-X, UBL 2.1 and UN/CEFACT CII. All three comply with the European norm EN 16931.
- Factur-X is a hybrid PDF with embedded XML: human reading + machine reading. The recommended transition format for French SMBs.
- UBL 2.1 is pure XML, the foundation of the European PEPPOL network. The reference format for high-volume automated flows.
- CII (UN/CEFACT) is international XML, rarely used in France outside specific cases imposed by your Approved Platform.
- For a B2B merchant on Magento 2 or Adobe Commerce: start with Factur-X, add UBL if needed.
The common norm: EN 16931
Before comparing the three formats, you need to understand what unites them. All three implement the same European norm: EN 16931, published in 2017 by the European Committee for Standardization (CEN).
EN 16931 defines the semantics of an electronic invoice: which fields must appear, with which business rules (identifiers, dates, amounts, VAT mentions, etc.). It is what makes invoices interoperable between European countries. The norm does not prescribe a syntax: at that level, EN 16931 accepts two of them - UBL 2.1 and UN/CEFACT CII - plus any national extension that complies with it. Factur-X is precisely that Franco-German national extension, which reuses the CII syntax and embeds it in a PDF/A-3.
In practice, this means the same invoice content can be expressed in all three formats without losing information. The difference lies in the form (pure XML or hybrid PDF), not in the substance.
Factur-X in detail
Factur-X is a hybrid format born in 2017 from a joint initiative between the FNFE-MPE (Forum National de la Facture Électronique - France) and the FeRD (Forum elektronische Rechnung Deutschland - Germany, where the format is known as ZUGFeRD). The current version in 2026 is Factur-X 1.0.07.
Technical structure. A Factur-X file is a PDF/A-3 in which an XML file compliant with the EN 16931 profile is embedded. PDF/A-3 is an archiving variant of PDF that allows embedding attachments (unlike PDF/A-1 or A-2). The embedded XML uses the UN/CEFACT CII syntax by default; some recent profiles also allow embedding UBL to align with the German XRechnung format. The conventions are specified by the Factur-X specification.
Available profiles. Factur-X defines several levels of richness, from the most minimal (MINIMUM, essential data) to the most complete (EN16931, the reference profile) and even beyond (EXTENDED, additional business data). For the French reform, the EN16931 profile is the standard to use.
Concrete benefit. The recipient can open the PDF and check the invoice visually, without any specific tool. Their automated accounting system extracts the embedded XML for import. You get a single format that satisfies both uses, without having to send a PDF and then a separate XML.
Limitations. The PDF is heavier than pure XML (typically 80 to 200 KB versus 10 to 30 KB for UBL). At very high volumes, that is a factor. And producing a valid PDF/A-3 requires a specific library on the emitter side, heavier than simple XML generation.
UBL 2.1 in detail
Universal Business Language (UBL) is an XML standard developed by the OASIS consortium since 2004. Version UBL 2.1 was released in 2013 and remains the most widely deployed version in 2026. UBL 2.3 (2020) and 2.4 (being finalized) introduce additional fields but remain backward compatible.
Technical structure. A UBL file is pure XML, with no PDF wrapper. It defines its own tags (<Invoice>, <AccountingSupplierParty>, <InvoiceLine>, etc.) following an XSD schema published by OASIS. The EN 16931-compliant profile restricts the allowed fields to those defined by the European norm, while allowing extensions through the <UBLExtensions> field.
PEPPOL. UBL is the native syntax of the PEPPOL network (Pan-European Public Procurement OnLine), an interoperable network adopted by around thirty countries, mostly European (up-to-date list on peppol.eu). If you have European clients or if your B2G buyers use PEPPOL, UBL is the natural choice.
Concrete benefit. Lightweight format, very fast to parse, mature tooling in Java, .NET, PHP, Python, etc. The learning curve is flat for a technical team already familiar with XML / EDI. And European PEPPOL compliance is immediate.
Limitations. No human-readable layer. A recipient who opens a UBL file visually sees raw XML, which is unacceptable for many French SMBs without tooling. This can be mitigated with an XSLT transformation on the recipient side, but it adds a step.
UN/CEFACT CII in detail
Cross Industry Invoice (CII) is an XML standard from UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business). It is the other syntax allowed by EN 16931 alongside UBL.
Technical structure. Pure XML, with tags from the UN/CEFACT dictionary (<rsm:CrossIndustryInvoice>, <ram:ApplicableHeaderTradeAgreement>, etc.). The EN 16931 profile is a strict subset that excludes non-standardized fields.
Origin. CII was designed from the start for international exchanges, unlike UBL which is more Europe/OASIS-oriented. It is also the technical foundation underlying Factur-X, as noted above: the XML embedded in a Factur-X PDF is CII.
Adoption in France. Limited. Most Approved Platforms (Plateformes Agréées) and Compatible Solutions support CII but do not recommend it as a first choice for the domestic B2B market. You will mostly encounter it if your PA imposes it for specific cases (inbound flows from abroad, certain return formats, etc.).
Comparison table
| Criterion | Factur-X | UBL 2.1 | UN/CEFACT CII |
|---|---|---|---|
| Nature | Hybrid PDF/A-3 with embedded XML | Pure XML | Pure XML |
| First publication | 2017 | 2013 (UBL 2.1) | 2010 |
| Human readability | Yes (PDF) | No (raw XML) | No (raw XML) |
| Typical size | 80 to 200 KB | 10 to 30 KB | 10 to 30 KB |
| Native network | French B2B market | European PEPPOL | International flows |
| Maintained by | FNFE-MPE + FeRD | OASIS | UN/CEFACT |
| Emitter-side tooling | PDF/A-3 library + CII XML | Standard XML generation | Standard XML generation |
| Ideal use case | Domestic B2B with non-automated recipients | PEPPOL flows or very high automated volumes | Imposed by your PA for specific cases |
| Recommendation for French Magento B2B | Default | Add depending on recipients | Case by case |
Which format for which case
Case 1: You mostly invoice French SMBs and mid-caps. Start with Factur-X. Your recipients appreciate the human-readable PDF, and their accounting tool extracts the embedded XML for automation. It is the simplest and most consensual setup in 2026.
Case 2: You invoice large European accounts or European public entities. Plan for UBL for these recipients: ask your Approved Platform to enable it. Most are on PEPPOL, whose native format is UBL. Keeping Factur-X in parallel for your French SMB clients remains relevant.
Case 3: You invoice at very high volume (>10,000 invoices/month) with fully automated recipients. Pure UBL performs better (file size divided by 5 to 10, faster parsing). Human readability is no longer a criterion if all your recipients are machine-equipped. This is the only case where UBL becomes superior to Factur-X in French B2B.
Case 4: Your Approved Platform imposes CII for certain flows. Follow its recommendation: the output format is produced by your PA. On the Gatebold side, you transmit the same EN 16931 normalized data, regardless of the final format the PA uses.
Changing format or Approved Platform
A frequent question: if I start with one format and want to change later, is it costly?
First, a reminder: the regulatory format (Factur-X, UBL, CII) is produced by your Approved Platform, not by your store. Changing format is therefore a matter of configuring your PA, not a Magento development.
On the Gatebold side, the role of the Compatible Solution is to guarantee normalized, validated and traceable EN 16931 data all the way to the PA, regardless of the final format. That decoupling is what makes evolutions painless: changing PA - or changing the format your PA produces - is a configuration change, with no impact on Magento.
If, on the other hand, you had hard-coded a Factur-X export in Magento via a custom module, the smallest change would mean rewriting the module. That is the central argument for preferring a decoupled architecture from the start.
The functional mapping between Factur-X (embedded CII XML) and UBL is documented by the CEN in the EN 16931 annexes. The tools on the market (validators, converters, etc.) are mature and open source.
Final recommendation for French Magento B2B
For a mostly French Magento B2B merchant, here is what we recommend in 2026:
- Default target format: Factur-X on the PA side. Human readability, EN 16931 alignment, universal acceptance in France.
- Enable UBL with your PA for your PEPPOL or European recipients.
- Do not target CII unless explicitly requested by your Approved Platform for a specific case.
- Decouple format choice from your Magento business logic through a well-designed Compatible Solution: Gatebold transmits normalized EN 16931 data, your PA produces the format.
- Test in sandbox every Format × Recipient combination before production.
This approach gives you the widest possible coverage while keeping flexibility for future evolutions (French PEPPOL, new Factur-X profiles, etc.).
Official technical sources
- European norm EN 16931: the semantic reference, published by the CEN and available via AFNOR.
- Factur-X specification: published by the FNFE-MPE (France) and the FeRD (Germany, under the name ZUGFeRD).
- UBL 2.1: OASIS standard published on docs.oasis-open.org.
- UN/CEFACT CII: Cross Industry Invoice, available on the UN/CEFACT portal.
- DGFiP website - accepted formats: dedicated formats section on impots.gouv.fr.
Summary
Three formats coexist in the French reform: Factur-X, UBL 2.1 and UN/CEFACT CII, all compliant with the European norm EN 16931. For a mostly French Magento B2B merchant, the default choice is Factur-X (hybrid PDF + embedded XML, combining human and machine reading). UBL becomes relevant for automated European flows via PEPPOL. CII remains a special case imposed by your Approved Platform.
The important question is not so much which format to choose as how to design your architecture to change formats at no cost. A well-decoupled Compatible Solution lets you switch Factur-X → UBL → CII per recipient, without touching your Magento.
Going further
- The complete guide to the French DGFiP 2026-2027 reform for the overall context and timeline.
- Approved Platform vs Compatible Solution: who does what - the split of roles in the DGFiP scheme.
- The 3 DGFiP flows: e-invoicing and e-reporting - the functional scope to cover beyond the format alone.
- Lifecycle of an electronic invoice - what happens after emission in the chosen format.
- Magento compliance action plan - 6 phases to frame your project.
To discuss your Magento e-invoicing architecture, the Gatebold E-Invoice Gateway product opens a no-commitment technical discussion.