UBL vs CII: the two XML syntaxes of EN 16931

UBL and CII are the two XML syntaxes in which an invoice under EN 16931 is written. They carry the same invoice data in different structures; the recipient's format usually decides which one you need.

Permitted syntaxes of EN 16931 UBL 2.1 (OASIS) and CII D16B (UN/CEFACT)
Mapping to the data model one technical specification per syntax: CEN/TS 16931-3-2 (UBL) and CEN/TS 16931-3-3 (CII)

The differences

Feature UBL CII
Structure flatter, a separate document type for credit notes more deeply nested, one document type for invoice and credit note
Used by Peppol BIS, XRechnung ZUGFeRD, Factur-X, XRechnung

Which syntax fits

Peppol BIS requires UBL. ZUGFeRD and Factur-X always embed CII, and XRechnung allows both. Because both map the same data model, an invoice can be converted between UBL and CII. Some calculation rules have a different tolerance per syntax, though, so check a converted invoice again (examples).

Check both syntaxes

invowerk checks invoices in UBL and CII. Through the API, invowerk also converts invoices between the two syntaxes.

Check an invoice for free