Two ways to carry the same standard
UBL and Factur-X can both express an EN 16931 invoice, but they are packaged very differently. UBL, the Universal Business Language published by OASIS, is plain XML. There is no visual layer: the file is meant for software, and a person reads it through a viewer or the buyer's system. Factur-X is a hybrid. It is a PDF that people can open and read as usual, with a structured XML invoice embedded inside it for software to extract.
Differences that matter in practice
The readable layer in Factur-X is convenient for small businesses and for buyers who still want a document they can look at. The cost is that there are two representations in one file, and a mismatch between the visible PDF and the embedded data is possible. Pure UBL has a single source of truth, but nobody can read it without tooling.
- UBL: XML only, widely used on the Peppol network, one data representation.
- Factur-X: PDF with embedded XML, defined with several profiles ranging from minimal data to the full EN 16931 content, and technically the same standard as the German ZUGFeRD.
- Syntax inside: Peppol BIS Billing 3.0 is expressed in UBL; Factur-X embeds XML in the UN/CEFACT Cross Industry Invoice syntax.
Which one should you use?
Use the format your buyer or your network accepts. If you send invoices through Peppol, you need UBL that follows the Peppol profile. If your buyer or national platform asks for Factur-X, you need that. Fiscalane currently exports UBL for Peppol BIS Billing 3.0 and does not generate Factur-X.
Sources
- Universal Business Language (UBL) Version 2.1OASIS(opens in a new tab)
- Factur-X / ZUGFeRDFNFE-MPE(opens in a new tab)
- Peppol BIS Billing 3.0 specificationOpenPeppol(opens in a new tab)
This page is a general explanation, not legal or tax advice. Fiscalane is not a Peppol access point and holds no certification.
Try the pre-flight check on a real invoice
Create an invoice and see which EN 16931 and PEPPOL rules it passes while you type.
Create an invoice free