Quaterio
Factur-X glossary

CII

Also called Cross Industry Invoice, UN/CEFACT CII

Cross Industry Invoice is a UN/CEFACT XML syntax for invoices, and it is the one Factur-X and ZUGFeRD embed inside the PDF. It carries the EN 16931 semantic model, so a CII invoice and a UBL invoice can express exactly the same content.

Maintained by
UN/CEFACT
Used by
Factur-X, ZUGFeRD, and XRechnung as one option
Root element
CrossIndustryInvoice
Alternative syntax
UBL

Why Factur-X chose it

CII comes from UN/CEFACT and predates EN 16931, with a heritage in cross border trade documents rather than public procurement. Factur-X and ZUGFeRD both embed CII, so if you are producing hybrid invoices for France or Germany, CII is the syntax you will be generating.

It is verbose. The element names are long and deeply nested, which is why almost nobody hand writes it. We build ours through a library and then read the result back rather than trusting what we asked for.

CII or UBL is not a compliance question

Both express EN 16931 and both are valid. The choice is made for you by the format you are producing: Factur-X and ZUGFeRD embed CII, most PEPPOL traffic is UBL, and XRechnung accepts either.

What does matter is that your validator reads the one you have. A tool that only handles UBL will tell you nothing useful about a Factur-X attachment.

Why it matters

  • If you are generating Factur-X, you are generating CII, whether or not the library you use says so.
  • A validator that handles only one syntax is a validator that cannot read half the invoices you will receive.

Check it on your own file

Common questions

Should I use CII or UBL?
Usually the format decides for you. Factur-X and ZUGFeRD embed CII. PEPPOL traffic is mostly UBL. XRechnung accepts both. Neither is more compliant than the other.

Related terms