CII D16B EN 16931 Factur-X

Free CII XML Validator Online

Check your UN/CEFACT CII XML against the EN 16931 schema and business rules instantly.

Drag and drop your invoices here, or click to browse.

Compliant with standards EN 16931 Factur-X Chorus Pro Peppol BIS PDF/A-3 Plateforme Agréée

How It Works

Validate your Cross-Industry Invoice XML in three simple steps.

Step 1

Upload Your CII XML

Drag and drop your standalone CII XML file into the validator. You can also drop a Factur-X or ZUGFeRD PDF and we will validate its embedded CII.

Step 2

Schema & Schematron Validation

We validate your XML against the CII D16B XSD, then run the full EN 16931 Schematron business-rule set for the detected profile.

Step 3

Get Your Report

See a detailed pass/fail report with the exact business term (BT) and rule ID for every issue, so you can fix your XML before submission.

Why validate your CII XML here?

Catch schema and business-rule errors before your invoice reaches a Plateforme Agréée or your trading partner.

CII D16B Schema Check

We validate your XML against the UN/CEFACT Cross-Industry Invoice D16B XSD, catching structural and data-type errors first.

200+ EN 16931 Business Rules

The full European Schematron rule set runs against your invoice, including VAT arithmetic, mandatory fields, and category constraints.

Automatic Profile Detection

We detect your profile (MINIMUM, BASIC WL, BASIC, EN 16931, or EXTENDED) and apply exactly the rules that profile requires.

Factur-X & ZUGFeRD Ready

CII is the structured payload inside both Factur-X and ZUGFeRD, so a file that passes here is ready to embed in a compliant hybrid PDF.

Frequently Asked Questions

Everything you need to know about validating Cross-Industry Invoice XML.

CII stands for Cross-Industry Invoice, the XML syntax defined by UN/CEFACT. It is one of the two syntaxes (alongside UBL) accepted by the EN 16931 European e-invoicing standard, and it is the structured payload embedded inside every Factur-X and ZUGFeRD hybrid PDF.
We validate against the UN/CEFACT CII D16B XSD schema and the full EN 16931 Schematron rule set, covering all Factur-X and ZUGFeRD profiles from MINIMUM through EXTENDED.
Yes. This validator is built for standalone CII XML. You can also upload a Factur-X or ZUGFeRD PDF and we will extract and validate the embedded CII automatically.
You'll receive a detailed report listing every rule violation, the affected business term (BT), and a clear description of how to fix each issue in your XML.
Basic validation is free for one invoice at a time. Premium users unlock batch upload of up to 100 invoices, advanced strictness levels, and Chorus Pro-specific rules.
An error is a blocking violation: the file is non-compliant and will be rejected by a Plateforme Agréée or your trading partner's system. A warning is an advisory finding that does not block compliance but flags a best-practice deviation. Your file can pass with warnings but not with errors.

CII is one of the two XML syntaxes the EN 16931 standard accepts. Cross-Industry Invoice (CII) is the UN/CEFACT syntax that sits at the heart of Factur-X and ZUGFeRD. When you generate a hybrid invoice, it is the CII XML, not the PDF page, that a Plateforme Agréée (PDP), Chorus Pro, or your trading partner's accounting system actually reads. Validating that XML before you send it is the single most reliable way to avoid a silent rejection after transmission.


What the CII validator checks

A CII invoice must pass two distinct compliance layers. Our validator runs both automatically and reports each result separately, so you can see exactly where a file falls short.

CII D16B XSD schema - validates the XML against the UN/CEFACT Cross-Industry Invoice D16B schema. This catches structural problems first: missing required elements, incorrect data types in monetary or quantity amounts, malformed date formats (CII dates use format code 102, i.e. YYYYMMDD), and namespace declaration errors. A file that fails the schema can never pass the business rules, so this layer runs before anything else.

EN 16931 Schematron: 200+ business rules - this is where most rejections originate. The rules check VAT arithmetic consistency (BR-CO-14: invoice total VAT must equal the sum of all VAT category amounts), category-specific constraints (BR-S-08: standard-rate lines must carry a rate greater than zero), mandatory fields (BR-01: specification identifier, BR-06: seller name), and payment rules (BR-61: IBAN required when the payment means code is 30 or 58). The specification identifier in your XML declares the profile (MINIMUM, BASIC WL, BASIC, EN 16931, or EXTENDED), and that profile decides which rules are mandatory versus optional.


Common CII validation errors, and what they mean

These are the rule violations we see most frequently on CII XML. If your file fails, one of these is likely the cause.

BR-01 - Specification identifier missing
The GuidelineSpecifiedDocumentContextParameter/ID element is absent or empty. Every CII invoice must declare its EN 16931 profile identifier (for example urn:cen.eu:en16931:2017 or a Factur-X URN such as urn:factur-x.eu:1p0:en16931). Without it the validator cannot decide which profile rules to apply and rejects the file immediately.

BR-CO-14 - VAT total does not match VAT breakdown
The invoice total VAT amount does not equal the sum of all VAT category breakdown amounts. This typically fires when rounding differences between line-level and header-level VAT create a discrepancy of even one cent. Compute the header VAT totals from the breakdown rather than independently.

BR-S-08 - Standard-rate VAT line has zero rate
An invoice line declares VAT category code S (standard rate) but carries a 0% rate. If zero rate is intended, use category code Z (zero-rated) or E (exempt) instead.

BR-AE-05 - Reverse charge line has non-zero VAT rate
When VAT category AE (reverse charge / autoliquidation) is used, the rate must be exactly zero: the buyer is responsible for reporting the tax.

XSD - Invalid date format
A date element carries a format attribute other than 102, or a value that is not a valid YYYYMMDD string. CII represents dates as a DateTimeString with format 102, which is stricter than the ISO format used in UBL.

XSD - Element out of sequence
CII is order-sensitive: child elements must appear in the exact sequence the schema defines. An element placed before a sibling it should follow will fail the XSD even when every value is correct. This is one of the most common surprises when hand-building CII XML.


CII, Factur-X and ZUGFeRD: how they relate

Factur-X (France) and ZUGFeRD (Germany) are not separate XML formats: they are the same CII XML wrapped inside a PDF/A-3b container. A CII file that validates here is exactly what you embed to produce a compliant hybrid invoice for either standard. If you have a standalone CII XML, validate it first, then embed it; if you already have a hybrid PDF, drop it here and we will extract and validate the embedded CII for you.

CII is also one of the two syntaxes Peppol BIS Billing 3.0 supports, alongside UBL. If you need to move between syntaxes, validating the CII first guarantees a clean source before conversion.

For developers

Automating your invoices? Switch to InvoiceXML.

Get Factur-X is built for manual use. For integrations, InvoiceXML gives you compliance out of the box: the API keeps up with the standards as they evolve, so your code does not have to.

  • EN 16931 and 2026 mandate compliance, ready to use
  • Specs, profiles and regulations tracked for you
  • Factur-X, CII and UBL from the same API
validate-invoice.sh HTTP API
# Check invoice compliance in one call
curl -X POST https://api.invoicexml.com/v1/validate/cii \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]"

# { "valid": true, "profile": "en16931" }
All the Tools You Need

A complete suite, in one place

Prefer classic tools over chat? Every action is also available in one click.

Send Factur‑X Invoice

Send invoices to your customer's Plateforme Agréée through the French exchange network.

Open tool

Receive E-Invoices

Receive your suppliers' e-invoices from any Plateforme Agréée, with statuses you can answer.

Open tool

AI Assistant

Chat to convert, create, validate and extract your e-invoices.

Open tool

PDF to Factur-X

Turn legacy invoices into compliant Factur-X PDF/A-3b files instantly.

Open tool

Create Factur-X PDF

Build compliant Factur-X invoices from scratch with our guided wizard.

Open tool

Create CII XML

Generate a standalone UN/CEFACT CII XML invoice, no PDF wrapper.

Open tool

Factur-X Credit Note

Issue a compliant Factur-X credit note that corrects or cancels an invoice.

Open tool

CII Credit Note

Generate a standalone UN/CEFACT CII credit note as pure EN 16931 XML.

Open tool

Create Order-X

Create an Order-X purchase order, the hybrid PDF companion of Factur-X for ordering.

Open tool

Edit Factur-X Invoice

Fix a rejected or invalid invoice: upload it, edit any field, and download a compliant file.

Open tool

Edit CII XML

Open a CII invoice as a form, fix rejected or invalid XML, and download a valid file.

Open tool

Validate Factur-X

Check your invoices against EN 16931 and the 2026 French mandate.

Open tool
X

Validate CII XML

Validate cross-industry invoice (CII) XML against EN 16931.

Open tool

Validate Order-X

Check Order-X purchase orders against the official Order-X 1.0 schema and rules.

Open tool

Extract XML

Extract structured XML data from any PDF invoice using AI-powered OCR.

Open tool

Extract Attachments

Pull every embedded file out of a Factur-X or CII invoice as a ZIP.

Open tool

Embed XML to PDF

Embed your existing CII XML into a PDF to produce a compliant hybrid Factur-X file.

Open tool
X

CII to Factur-X

Convert your CII XML into a compliant Factur-X PDF/A-3 hybrid invoice.

Open tool

CII to UBL

Convert a CII invoice into UBL XML, the syntax most widely used on Peppol.

Open tool

UBL to CII

Convert a UBL invoice into UN/CEFACT CII XML, ready for Factur-X or ZUGFeRD.

Open tool

CII to PDF

Render CII, UBL or XRechnung XML as a clean, human-readable PDF.

Open tool

CII Viewer

Open e-invoice XML in your browser and read it like a paper invoice.

Open tool
Ready for 2026 e-invoicing?

Send, receive and comply, without an ERP

Create your account to send and receive over the network, and keep every file compliant.

EN 16931 & PDF/A-3b compliant Results in seconds No installation Plateforme Agréée ready
Unlock unlimited tools