Skip to content
Gatebold
e-invoice E-Invoice

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
  1. Key takeaways
  2. The common norm: EN 16931
  3. Factur-X in detail
  4. UBL 2.1 in detail
  5. UN/CEFACT CII in detail
  6. Comparison table
  7. Which format for which case
  8. Changing format or Approved Platform
  9. Final recommendation for French Magento B2B
  10. Official technical sources
  11. Summary
  12. Going further
Comparison of the 3 EN 16931 standardized formats: Factur-X (hybrid PDF/A-3), UBL (pure XML, PEPPOL), UN/CEFACT CII (international XML)

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

CriterionFactur-XUBL 2.1UN/CEFACT CII
NatureHybrid PDF/A-3 with embedded XMLPure XMLPure XML
First publication20172013 (UBL 2.1)2010
Human readabilityYes (PDF)No (raw XML)No (raw XML)
Typical size80 to 200 KB10 to 30 KB10 to 30 KB
Native networkFrench B2B marketEuropean PEPPOLInternational flows
Maintained byFNFE-MPE + FeRDOASISUN/CEFACT
Emitter-side toolingPDF/A-3 library + CII XMLStandard XML generationStandard XML generation
Ideal use caseDomestic B2B with non-automated recipientsPEPPOL flows or very high automated volumesImposed by your PA for specific cases
Recommendation for French Magento B2BDefaultAdd depending on recipientsCase 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:

  1. Default target format: Factur-X on the PA side. Human readability, EN 16931 alignment, universal acceptance in France.
  2. Enable UBL with your PA for your PEPPOL or European recipients.
  3. Do not target CII unless explicitly requested by your Approved Platform for a specific case.
  4. 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.
  5. 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

To discuss your Magento e-invoicing architecture, the Gatebold E-Invoice Gateway product opens a no-commitment technical discussion.

Frequently asked questions

Do I have to support all three formats to be compliant?
No. Your invoices must reach your recipients in one of the three accepted formats, but it is your Approved Platform that produces them. Most French Magento merchants target Factur-X by default because it satisfies both human reading and machine reading. UBL becomes useful if your clients are on the European PEPPOL network, and CII if your Approved Platform recommends it for international flows. On the store side, a good Compatible Solution simply transmits normalized EN 16931 data: the PA can then produce either format, with no recoding on the Magento side.
Factur-X is a PDF - is it really a structured format?
Yes. Factur-X is a PDF/A-3 in which a structured XML file (in CII syntax) is embedded according to the rules of the standard. The PDF remains readable by humans, but the structured XML layer is extracted by machine tools and used for controls, accounting imports and tax reporting. The PDF is only a wrapper - the regulatory content is in the embedded XML.
Do UBL and CII carry the same information?
Yes, in their versions compliant with the European norm EN 16931. UBL 2.1 and UN/CEFACT CII both define the same invoice semantics (seller, buyer, lines, VAT, etc.) with equivalent fields. The difference lies in the XML syntax: tag names, hierarchical structure, XSD schemas. Since both carry the same semantics, your Approved Platform moves from one to the other without losing meaning.
Which format should I choose if my clients are both French SMBs and large European accounts?
Target Factur-X as your default format: your French SMBs appreciate it because they can see the PDF, and the embedded XML remains usable by their systems. For your large European accounts connected to PEPPOL, plan for UBL with your Approved Platform. The format is produced by the PA per recipient; on the Magento side, you transmit the same normalized EN 16931 data, with no recoding.
Can the formats evolve in the coming years?
Yes, but slowly. Factur-X 1.0.07 is the current version in 2026, with a few upcoming evolutions aligned with the EN 16931 norm. UBL is slowly moving from 2.1 to 2.3, possibly 2.4. CII remains stable on the EN 16931 profile. The risk of a major switch is low: what changes is rather the progressive widening of the data carried (additional fields). A maintained connector absorbs these evolutions without any intervention on the store side.