Learn · formats
What is CII?
Cross Industry Invoice (CII) is a UN/CEFACT XML syntax for electronic invoices, used as the base format for ZUGFeRD, Factur-X, and one of the two EN 16931-compliant syntaxes.
CII defines a different XML structure than UBL for the same invoice data:
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:...">
<rsm:ExchangedDocumentContext>...</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<ram:ID>INV-2024-001</ram:ID>
<ram:IssueDateTime>...</ram:IssueDateTime>
</rsm:ExchangedDocument>
<rsm:SupplyChainTradeTransaction>...</rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>
CII Namespaces
CII uses different namespace prefixes:
- rsm: Root schema module
- ram: Reusable aggregate components
- qdt: Qualified data types
- udt: Unqualified data types
CII in ZUGFeRD/Factur-X
When you create a ZUGFeRD or Factur-X invoice, the embedded XML file uses CII syntax. The PDF provides human readability; the CII provides machine readability.
Hybrid Format Foundation
CII powers ZUGFeRD and Factur-X, the dominant e-invoice formats in Germany and France. If you trade with these countries, you'll likely encounter CII.
EN 16931 Compliant
CII is equally valid as UBL for EN 16931 compliance. XRechnung even supports both syntaxes—you can submit UBL or CII to German government portals.
Supply Chain Integration
CII is part of UN/CEFACT's broader supply chain standards. If you use other UN/CEFACT documents, CII provides consistency.
Step 1: Understand the Context
If you're creating ZUGFeRD/Factur-X invoices, you're using CII. If you're using Peppol directly, you'll typically use UBL instead.
Step 2: Choose Your Profile
ZUGFeRD/Factur-X support multiple profiles (Minimum to Extended). Choose based on your data requirements and recipient needs.
Step 3: Embed in PDF
For hybrid formats, the CII XML gets embedded in a PDF/A-3 file. Tools handle this automatically, but ensure validation covers both parts.
- What is UBL?
Alternative syntax
- UBL vs CII
Syntax comparison
- What is ZUGFeRD?
Uses CII syntax
- What is Factur-X?
Uses CII syntax
- What is EN 16931?
The EU standard
Frequently Asked Questions
- What's the difference between CII and UBL?
- Both express EN 16931 invoice data but with different XML structures. CII is used in ZUGFeRD/Factur-X; UBL is used in Peppol. They're interconvertible since they represent the same semantic data. Compare UBL vs CII
- Should I use CII or UBL?
- Depends on your use case. For Peppol: UBL. For ZUGFeRD/Factur-X: CII. For XRechnung: either works. For cross-border: UBL is more universal.
- Is CII harder to implement than UBL?
- Neither is inherently harder—they're just different XML structures. Library support for UBL is slightly more widespread, but CII is well-documented.
- Can I convert CII to UBL?
- Yes. Since both implement EN 16931, conversion is lossless. Many tools support bidirectional CII↔UBL conversion.
- What does UN/CEFACT stand for?
- United Nations Centre for Trade Facilitation and Electronic Business. It's a UN body that develops international trade standards.
More Questions About What is CII?
- What is the difference between UBL and CII?
- UBL (Universal Business Language) and CII (Cross Industry Invoice) are the two XML syntaxes allowed by the EU e-invoicing standard EN 16931. UBL 2.1 is used by Peppol BIS and XRechnung. CII D16B is used by ZUGFeRD and Factur-X. Both carry the same business data — the difference is the XML structure. Most of the EU uses UBL via Peppol; CII is primarily used in Germany and France for hybrid PDF/XML invoices.
Have an e-invoice that came back rejected? Check it here.
Checking is free. The first verified download every 30 days is free. After that €1.90 per invoice, or €9 a month for all of them.