Automation MCP Server Features Blog Pricing Contact
UN/CEFACT CII · D16B schema · the second EN 16931 syntax

CII Invoice API for UN/CEFACT D16B

Open a ZUGFeRD hybrid, an XRechnung from a ministry, or a Factur-X from Lyon, and the XML inside is the same UN/CEFACT Cross Industry Invoice. EDI and ERP teams meet it raw, without the PDF wrapper, and this endpoint family is built for them. InvoiceXML creates standalone CII against the EN 16931 profile, validates whatever dialect arrives with its own rules, and moves invoices between CII and UBL without losing data.

POST /v1/create/cii · EN 16931 profile
curl -X POST https://api.invoicexml.com/v1/create/cii \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{ "invoice": { ... } }'
200 OK · stamped and survived
{
  "valid": true,
  "data": {
    "conformanceLevel": "EN16931",
    "profile": "en16931",
    "customizationId": "urn:cen.eu:en16931:2017"
  }
}
One schema, many rulebooks

Every CII dialect, judged by its own law

The Cross Industry Invoice comes from UN/CEFACT, and EN 16931 adopted it as one of its two syntax bindings. The consequence: very different compliance documents share one schema. We read BT-24 and route each to the rules it claims.

Dialect Declared in BT-24 What we run Deep dive
EN 16931 core urn:cen.eu:en16931:2017 D16B XSD + CEN artifacts 1.3.16 The default for /v1/create/cii
XRechnung, CII binding ...kosit:xrechnung_3.0 EN 16931 + KoSIT Schematron 2.5.0 XRechnung hub
Factur-X / ZUGFeRD ladder factur-x.eu / zugferd.de families Each profile's own XSD + Schematron (1.0.8) Factur-X hub · ZUGFeRD hub
Unknown dialects An identifier we hold no rules for EN 16931 base rules + PROFILE-DETECTION warning Never a false hard-fail
Underneath, all of it is the same D16B schema; what changes is the rule overlay, and the response names the one that ran in data.profile. The standard's other binding, UBL, has a hub of its own: the UBL API.
Rulebook autopilot

Three authorities patch this syntax. You patch nothing.

A CII document can answer to CEN (the EN 16931 artifacts, 1.3.16 today), to KoSIT (XRechnung Schematron 2.5.0), or to FeRD and FNFE-MPE (the 1.0.8 profile package). We vendor every authority's artifacts unmodified, regression-test them against the official suites (the KoSIT testsuite, FeRD samples, OpenPeppol examples), and switch on the legal effective dates, server-side. One integration, every rulebook current.

See exactly which artifacts judge CII today
Next on the radar
Late 2026

XRechnung 4.0, the German CIUS of the revised EN 16931, is announced for late 2026 with no effective date yet. When it takes effect, the CII binding here flips that day.

cii xrechnung Watching
Finding anatomy

Findings your ERP can route to a field

Schematron output is written for standards people; your AP screen is not. Every finding arrives translated: a friendly message, the layer that produced it, and three handles for three audiences.

ruleThe exact XSD or Schematron identity, for logs and support tickets.
btCodesThe EN 16931 business terms, the vocabulary auditors speak.
fieldsJSON paths into the invoice model, ready for form highlighting.

XML only, on purpose: hybrid PDFs go to the Factur-X and ZUGFeRD validators, which extract the CII themselves.

422 · arithmetic the core won't forgive
{
  "valid": false,
  "data": {
    "conformanceLevel": "EN16931",
    "profile": "en16931",
    "customizationId": "urn:cen.eu:en16931:2017"
  },
  "errors": [
    {
      "rule": "BR-CO-15",
      "layer": "en16931",
      "message": "The amount due for payment must
        equal the total with VAT minus prepaid
        amounts plus rounding. Check the due
        amount.",
      "btCodes": ["BT-115", "BT-112", "BT-113", "BT-114"],
      "fields": ["totals.duePayableAmount",
                 "totals.grandTotalAmount",
                 "totals.paidAmount",
                 "totals.roundingAmount"]
    }
  ]
}
Coverage

Where this syntax does the heavy lifting

CII rarely gets the headline; it gets the payload. Wherever hybrids and German portals operate, the bytes that matter are Cross Industry Invoice.

European Union
The second syntax binding of EN 16931, alongside UBL
en16931
Germany · B2G
XRechnung is delivered natively in the CII binding
xrechnung
Germany · B2B
Every ZUGFeRD hybrid carries CII under the PDF
zugferd
France
Factur-X is CII in a PDF/A-3 envelope
facturx

Public-sector acceptance of EN 16931 invoices traces back to Directive 2014/55/EU. Format by format, country by country: the Mandate Map.

FAQ

The questions integrators bring us

01What exactly is CII D16B?
The Cross Industry Invoice is UN/CEFACT's XML invoice format, and D16B is the schema release EN 16931 binds to. It is the second of the standard's two syntaxes (UBL is the other) and the payload inside Factur-X, ZUGFeRD, and XRechnung's CII binding.
02Which CII dialects can you validate?
Plain EN 16931 documents, the full Factur-X and ZUGFeRD profile ladder, and XRechnung-declared invoices, each routed to its own rule set based on BT-24. Identifiers we hold no rules for validate against the EN 16931 core with a PROFILE-DETECTION warning.
03Can I send a hybrid PDF to /v1/validate/cii?
No, and that is deliberate: this endpoint takes XML files only. Hybrid PDFs belong on the Factur-X and ZUGFeRD validators, which extract the embedded CII automatically. If you already pulled the XML out yourself, it is welcome here.
04Is CII to UBL conversion lossless?
Both syntaxes bind the same EN 16931 semantic model, so conversion maps at the business-term level rather than tag by tag, and the output is revalidated before it leaves. The data set EN 16931 defines survives the trip in both directions.
05Should I use CII or UBL?
Usually your counterparty decides. German and French ecosystems lean CII (XRechnung's CII binding, ZUGFeRD, Factur-X), while the Peppol network runs on UBL. Both are first-class here, and converting between them is one call. The other binding has its own hub.
06What does JSON extraction return?
BT-mapped JSON mirroring the EN 16931 business terms: the same model you would post to the create endpoints. Received CII goes in, ERP-ready structure comes out, with no XPath archaeology on your side.
Start free today

Ready to automate your invoices?

Validate, convert and embed compliant e-invoices through one API. Start your 30-day free trial. No credit card required.

GDPR Compliant No credit card required Setup in minutes
Peppol UBL
Factur-X
EN 16931
142 / 142 passed
Compliant
PDF/A-3 embedded