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.