Home / UBL vs CII: which invoice syntax to use

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

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.