UBL vs CII: which invoice syntax to use
UBL and CII are the two XML syntaxes an EN16931 electronic invoice can use. They carry exactly the same business information in different XML shapes. Choosing between them is mostly about what your recipient expects.
What UBL is
UBL 2.1, the Universal Business Language, is an OASIS standard. Its invoice uses element names like cbc:ID and cac:AccountingSupplierParty. It is widely used across Europe and is one of the two syntaxes accepted for the German XRechnung.
What CII is
UN/CEFACT CII, the Cross Industry Invoice, is the syntax at the heart of ZUGFeRD and Factur-X. When a hybrid PDF carries structured data, that data is CII. It is also the second accepted syntax for XRechnung.
What they share
Both express the same EN16931 semantic model. The same mandatory fields, the same VAT breakdown, the same arithmetic rules apply to both. A validator built on EN16931 checks a UBL document and a CII document against identical business rules, because the rules live at the semantic layer, not the syntax layer.
How they differ
- Element naming: UBL uses cbc and cac prefixes, CII uses a different, deeper structure with grouped elements.
- Verbosity: the same invoice usually looks quite different in the two files, even though the values match.
- Ecosystem: hybrid PDF formats use CII, while many pure-XML pipelines default to UBL.
Which one to send
Send whichever syntax your recipient or platform expects. If you use a hybrid Factur-X or ZUGFeRD PDF, the embedded data is CII. If you send a pure XML file, UBL is a common default. When in doubt, ask the recipient. Since both map to the same standard, you can generate both from the same data and pick per recipient.
Is UBL better than CII?
Neither is better. They are two syntaxes for the same standard. The right choice depends on what your recipient accepts.
Can one invoice exist in both syntaxes?
Yes. The same invoice can be produced as UBL and as CII, carrying identical values. A generator can output both at once.
Which syntax does ZUGFeRD use?
ZUGFeRD and Factur-X embed CII inside the PDF. XRechnung accepts both UBL and CII.
Does the validator handle both?
Yes. It detects the syntax and applies the same EN16931 business rules to either one.
Ready to check your invoice?