What is CII?
CII, short for Cross Industry Invoice, is the invoice syntax of UN/CEFACT, the United Nations body for trade standards. In European e-invoicing it is one of the two XML syntaxes accepted by the EN 16931 standard, alongside UBL. A CII file is the entire invoice as structured data: seller and buyer, line items, VAT breakdown, totals and payment terms, with no visible page attached.
The schema release used everywhere today is D16B. When a platform, an ERP or a validator says CII, it means a CrossIndustryInvoice document against the D16B schema, restricted by the EN 16931 rules.
CII, Factur-X and EN 16931: who does what
EN 16931 is the semantic model: it names every piece of information an invoice may carry, the business terms (BT-1 to BT-165, grouped in BG blocks), without fixing any XML. CII and UBL are the two syntaxes that write this model down. Factur-X is not a third syntax: it is a PDF/A-3 container with a CII file named factur-x.xml embedded inside, so every Factur-X invoice is a CII invoice wearing a readable PDF. The container side is covered in the Factur-X format guide.
A CII file declares which rulebook it follows in its specification identifier (BT-24):
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>
That identifier decides which validation rules apply. For a standalone CII invoice, urn:cen.eu:en16931:2017 is the normal choice; the Factur-X URNs declare the hybrid profiles, from MINIMUM to EXTENDED.
The four blocks of a CII invoice
A CrossIndustryInvoice document always has the same skeleton: a context block saying which profile the file claims, a header with number, type and date, the transaction with the line items and parties, and the settlement with currency, VAT and totals.
| Block | XML element | What it holds |
|---|---|---|
| Context | ExchangedDocumentContext | The specification identifier (BT-24) |
| Header | ExchangedDocument | Invoice number (BT-1), type code (BT-3), issue date (BT-2) |
| Transaction | SupplyChainTradeTransaction | The line items, then the parties and the delivery |
| Settlement | ApplicableHeaderTradeSettlement | Currency, payment, VAT breakdown, totals |
One CII quirk trips up most newcomers: the line items come first, the header-level parties and totals after them, and the element order is fixed by the schema. A file with shuffled blocks fails the XSD before any business rule runs.
To read a real file block by block: A Factur-X example, read field by field walks through a complete CII invoice.
Two files to keep open while reading: the valid CII XML of a French B2B invoice and its deliberately invalid twin, both in the example library.
CII in the French reform
The French exchange network accepts three formats, the socle: Factur-X, UBL and standalone CII. A pure CII XML is a legal e-invoice in the network, no PDF wrapper required; the Plateformes Agréées read, route and archive it like any hybrid, and Chorus Pro takes CII for public-sector invoicing too.
On top of the EN 16931 rules, a domestic French B2B invoice must satisfy the BR-FR layer of the mandate: the buyer's SIREN, the category of the operation, and the other French mentions. The CII validator checks both layers on one upload: validate a CII file.
Work with CII files right here
- Open a CII invoice and read it like a paper invoice
- Validate a CII XML against D16B and EN 16931
- Create a CII invoice with the guided form
- Create a CII credit note (type 381)
- Edit or repair a CII file field by field
- Render a CII XML as a readable PDF
- Convert a CII invoice to UBL
- Convert a UBL invoice to CII
- Wrap a CII XML into a Factur-X PDF
- Download CII sample files, valid and invalid