Convert UBL 2.1 to UN/CEFACT CII
France’s Chorus Pro platform and many German/French ERP integrations (SAP, Sage) expect CII, not UBL.
Deadline: Ongoing — CII is the exchange syntax for France’s B2G platform today and a growing share of B2B integrations ahead of the 2026–27 phased mandate.
UBL and CII are the two XML syntax bindings EN 16931 defines for the same semantic invoice model — same business rules, different element names and nesting. A Peppol-native invoicing system produces UBL; a French Chorus Pro integration or many SAP/Sage back-ends expect CII.
InvoiceHub parses the source UBL into an internal canonical model (every EN 16931 business term, BT-1 through BT-115 and beyond) and re-serializes it as CII — never a direct XML-to-XML transform, which is what makes N-format support linear instead of quadratic. The output is validated against the official EN 16931 CII Schematron before it is ever returned.
Try it
curl -X POST https://api.invoicehub.dev/api/v1/convert \
-H "Authorization: Bearer ih_live_xxx" \
-H "Content-Type: application/json" \
-d '{"from": "UBL_2.1", "to": "UN_CEFACT_CII", "document": "<source document>"}'Real UN/CEFACT CII output
Excerpt from actual, verified conversion output — not a mocked example.
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" ...>
<rsm:ExchangedDocument>
<ram:ID>INV-2026-0142</ram:ID>
<ram:TypeCode>380</ram:TypeCode>
<ram:IssueDateTime><udt:DateTimeString format="102">20260619</udt:DateTimeString></ram:IssueDateTime>
</rsm:ExchangedDocument>
<rsm:SupplyChainTradeTransaction>
<ram:IncludedSupplyChainTradeLineItem>...</ram:IncludedSupplyChainTradeLineItem>
<ram:ApplicableHeaderTradeSettlement>
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:GrandTotalAmount>1190.00</ram:GrandTotalAmount>
<ram:DuePayableAmount>1190.00</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>
</rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>Common validation errors
- BR-02 — Missing invoice number (BT-1) — check ram:ExchangedDocument/ram:ID is populated on the source.
- BR-CO-15 — Tax-inclusive amount does not equal tax-exclusive + VAT total — usually a rounding mismatch carried over from the source UBL.
- BR-DE-2 (only if converting onward to XRechnung_CII) — Seller contact group missing — CII has no equivalent to UBL’s optional cac:Contact unless explicitly mapped.
Get an API key
Free tier includes unlimited validation and UBL 2.1 generation. This conversion requires the Pro plan or above.