Convert CII XML or Factur-X PDF to PEPPOL UBL — Free Online Tool

Drop a UN/CEFACT CII XML invoice or a Factur-X / ZUGFeRD PDF — the converter extracts the embedded CII, maps every EN 16931 field, and returns clean PEPPOL BIS 3.0 UBL XML. Ideal for PEPPOL Access Points receiving Factur-X from French or German suppliers.

How the conversion works

1

Upload CII XML or Factur-X PDF

Drop either a raw UN/CEFACT CII XML file or a Factur-X / ZUGFeRD 2.x PDF/A-3. The converter auto-detects the format via the file's magic bytes and extracts the embedded CII XML from PDFs automatically.

2

Map CII to UBL

Every CII element is mapped to its EN 16931 UBL equivalent: parties to cac:AccountingSupplierParty / AccountingCustomerParty, VAT breakdown to cac:TaxTotal/cac:TaxSubtotal, monetary totals to cac:LegalMonetaryTotal, lines to cac:InvoiceLine (or cac:CreditNoteLine for credit notes).

3

Download PEPPOL UBL

Get back a PEPPOL BIS 3.0 UBL XML file with the correct CustomizationID and ProfileID, ready to send through any PEPPOL Access Point or upload to PEPPOL-compatible portals. The dates are reformatted from CII's YYYYMMDD to UBL's ISO YYYY-MM-DD.

When to convert CII to UBL

PEPPOL Access Points receiving Factur-X

French and German suppliers increasingly send Factur-X PDFs even to international buyers. If your PEPPOL Access Point only accepts UBL, convert incoming Factur-X to PEPPOL UBL before routing to the buyer's ERP. The reverse of our UBL → Factur-X converter.

Migrate from ZUGFeRD to PEPPOL

German companies adopting PEPPOL for cross-border invoicing often have an archive of ZUGFeRD 2.x / Factur-X PDFs they need to re-emit as PEPPOL UBL. Batch-convert these archives without rebuilding the data from scratch.

SAP, DATEV & ERP integration

Many EU ERPs only ingest UBL natively. Suppliers sending CII or Factur-X can be normalised to UBL on the way in, so your downstream processing (validation, posting, archival) speaks a single XML dialect.

Audit & transparency

CII XML is verbose and hard to read. PEPPOL UBL uses the more familiar cbc: / cac: elements that most EU auditors and tax authorities expect. Converting CII → UBL gives auditors a format they can review without specialist tooling.

What gets mapped from CII to UBL?

Header fields (invoice number, dates, type code, currency, buyer reference); seller and buyer parties with addresses, VAT IDs, legal organisation, contact details, and PEPPOL endpoint identifiers; payee party; payment means (SEPA IBAN, BIC, card details, direct debit mandates); document-level allowances and charges; VAT breakdown with exemption reasons; monetary totals; all invoice or credit-note lines with item details, classification codes, pricing, line-level tax, and line-level allowances. Both INVOICE (TypeCode 380) and CREDIT_NOTE (TypeCode 381) are supported.

Which CII profiles are accepted?

All five Factur-X / ZUGFeRD profiles are accepted as input: MINIMUM, BASIC-WL, BASIC, EN 16931 (COMFORT) and EXTENDED. Note that MINIMUM and BASIC-WL do not include invoice lines, so the resulting PEPPOL UBL will also have no lines — only document totals. EN 16931 input gives a complete PEPPOL UBL output suitable for cross-border B2B invoicing via any PEPPOL Access Point.

CII to PEPPOL UBL: FAQ

Can I upload a Factur-X PDF directly?

Yes. The converter detects PDFs via the %PDF magic bytes and extracts the embedded CII XML automatically. You do not need to manually unpack the PDF or save the XML attachment separately. Drop the Factur-X / ZUGFeRD 2.x PDF and you get back PEPPOL UBL.

Which Factur-X profiles can I convert?

All five profiles are accepted as input: MINIMUM, BASIC-WL, BASIC, EN 16931 (COMFORT) and EXTENDED. The output is always PEPPOL BIS 3.0 UBL. Note that MINIMUM and BASIC-WL CII files do not contain invoice lines, so the resulting UBL will also have no lines — only document-level totals.

Does the output pass PEPPOL BIS 3 validation?

The output carries the correct PEPPOL CustomizationID and ProfileID. Whether it passes the full PEPPOL BIS 3 schematron depends on the source data — if the original CII invoice was EN 16931-compliant with all PEPPOL-required fields (seller endpoint, scheme IDs, etc.), the output will validate. For files with missing PEPPOL-specific fields, run the output through our PEPPOL BIS 3 Validator to identify what to fix.

How are CII dates and amounts handled?

CII uses date format 102 (YYYYMMDD) — the converter reformats these to ISO YYYY-MM-DD as required by UBL. Amounts are passed through with their original precision; currencyID attributes are preserved on every monetary element. The document currency code is copied from CII InvoiceCurrencyCode to UBL cbc:DocumentCurrencyCode.

What happens with credit notes (TypeCode 381)?

Credit notes are detected from CII TypeCode 381 and converted to UBL CreditNote documents (root element ubl:CreditNote, lines as cac:CreditNoteLine, quantities as cbc:CreditedQuantity). The billing reference structure is preserved if present in the source CII.

What is the reverse direction?

See our UBL to Factur-X converter — same field mappings in reverse, producing a Factur-X EN 16931 hybrid PDF from PEPPOL UBL. Together the two converters let you move freely between the PEPPOL ecosystem and the Factur-X / ZUGFeRD ecosystem.

Convert CII or Factur-X to PEPPOL UBL — free

No login required. CII XML or Factur-X PDF — both work. Output is PEPPOL BIS 3.0 UBL.