CII XML is structured for machines. This tool makes it readable for humans.
UN/CEFACT Cross-Industry Invoice (CII) XML is the structured data format embedded inside every ZUGFeRD and Factur-X file. It's also the backbone of European B2B e-invoicing. But opening a CII file directly gives you raw XML — not a readable invoice. Upload it here and get a clean, formatted PDF preview instantly.
<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100">
<rsm:ExchangedDocumentContext>
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<ram:ID>INV-2024-03741</ram:ID>
<ram:TypeCode>380</ram:TypeCode>
</rsm:ExchangedDocument>
<rsm:SupplyChainTradeTransaction>
<ram:ApplicableHeaderTradeAgreement>
<ram:SellerTradeParty>
<ram:Name>TechParts Europe GmbH</ram:Name>
Drop your CII XML file below
Drag your CII .xml file here, or click to browse
.xml files only · Max 20 MB
Your file is processed in memory and deleted immediately. Nothing is stored.
What is CII, and where does it come from?
The standard
CII stands for Cross-Industry Invoice, defined by UN/CEFACT under the D16B specification. It is an XML syntax for expressing invoice data in a fully structured, machine-readable format. Unlike UBL — which uses a flat element structure — CII uses a deeply nested, context-rich model designed for complex B2B trade scenarios across industries.
Where you encounter it
CII is the XML syntax at the heart of ZUGFeRD and Factur-X — Europe's two most widely adopted hybrid e-invoice standards. Every ZUGFeRD or Factur-X PDF contains an embedded CII XML file. CII is also used as a standalone format for EDI and ERP-to-ERP data exchange, particularly in manufacturing, logistics, and public procurement.
Why it's hard to read
CII uses deeply nested XML with lengthy namespace prefixes and UN/CEFACT trade terminology (SpecifiedTradeSettlement, ApplicableHeaderTradeAgreement, IncludedSupplyChainTradeLineItem). Even experienced developers find it dense. Accountants and finance teams receiving a CII file have no practical way to read it without a dedicated tool.
Who needs to preview CII invoice files
ERP and accounting system users
Your system exports CII XML for outgoing invoices or receives CII files from trading partners. Before processing or approving, you need to visually verify the invoice contents — line items, totals, tax codes — without writing code to parse the XML yourself.
ZUGFeRD and Factur-X recipients
You received a ZUGFeRD or Factur-X PDF and want to verify the embedded CII XML matches the visual PDF layer. Upload the PDF directly — InvoiceXML extracts the embedded XML and renders a clean preview from the structured data, not the PDF surface.
Compliance and finance teams
During internal audits or when reconciling supplier invoices, you need to inspect the underlying structured data of a hybrid invoice — not just the visual PDF layer. CII preview gives you a field-by-field view of exactly what was submitted.
Developers and system integrators
You're building or debugging a CII generation pipeline and need to visually verify the output before sending to a trading partner or Peppol network. Faster and more intuitive than reading raw XML or running a validator.
Three steps. One readable invoice.
Extract
If you upload a ZUGFeRD or Factur-X PDF, the embedded CII XML attachment is extracted from the PDF/A-3 container automatically. If you upload a standalone CII XML file, it is read directly. The file is parsed against the UN/CEFACT CII D16B schema and all namespaces are resolved.
Map
The deeply nested CII structure — SupplyChainTradeTransaction, SpecifiedTradeSettlement, IncludedSupplyChainTradeLineItem — is mapped to a flat, human-readable invoice model. Every EN 16931 Business Term (BT) is identified and labelled in plain language.
Render
A clean, professionally formatted PDF is generated. Seller and buyer details, line items, tax breakdown, payment instructions, and all relevant reference fields are laid out in a standard invoice format regardless of which CII profile was used.
The rendered PDF is for visual preview only. It has no legal standing. The original CII XML — whether standalone or embedded in a ZUGFeRD/Factur-X PDF — remains the authoritative compliance document.
Render CII invoices as PDF via REST API
The same rendering engine is available via API. Submit a CII XML file or a ZUGFeRD/Factur-X PDF and receive a rendered PDF preview. Integrate into your document management system, ERP, or AP automation workflow.
API Documentation$ curl -X POST https://api.invoicexml.com/v1/render/cii/to/pdf \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]" # Returns: application/pdf
More ways to work with CII
Create CII
Generate a valid CII XML invoice from scratch using our online form.
Learn moreConvert PDF to CII
Transform any PDF invoice into a CII XML, generated by AI based on your PDF invoice data.
Learn moreValidate CII
Check your CII XML against EN 16931 Schematron rules and get a detailed compliance report.
Learn moreExtract Invoice JSON
Extract the structured CII data from any ZUGFeRD or Factur-X file as a JSON object.
Learn moreFrequently Asked Questions
Can I upload a ZUGFeRD or Factur-X PDF directly?
Yes. If you upload a PDF, InvoiceXML automatically checks for an embedded CII XML attachment. If found, the CII data is extracted and used as the source for rendering. This lets you verify that the embedded XML matches the visual PDF layer.
What if my CII file uses an unsupported profile?
InvoiceXML supports all standard EN 16931 CII profiles from MINIMUM through EXTENDED. If your file uses a proprietary extension beyond EXTENDED, standard fields will still render correctly and non-standard extensions will be listed separately.
Is there a difference between CII and ZUGFeRD XML?
ZUGFeRD XML is CII XML — specifically CII XML conforming to one of the EN 16931 profiles, embedded in a PDF/A-3 container. They share the same namespace, the same element structure, and the same schema. The difference is in how they are delivered (standalone vs. PDF-embedded) and which profile is declared.
Does this work for Factur-X as well as ZUGFeRD?
Yes. Factur-X and ZUGFeRD use identical CII XML — the only difference is the declared specification identifier and some profile naming conventions. Both are rendered correctly.
Is the rendered PDF the same as the original PDF in a ZUGFeRD file?
No. The rendered PDF is generated fresh from the CII structured data. It is not extracted from the PDF layer of the original ZUGFeRD file. This is intentional — it lets you verify the XML data independently of how the visual PDF layer was originally rendered.