All resources

CII format guide · Free local tool

Create a safe copy of a CII invoice

A UN/CEFACT CrossIndustryInvoice is a structured business document, not merely a rendered invoice. Seller, buyer and payment data remain embedded in the XML even when a screenshot or PDF view looks redacted.

Short answer: Work on a copy, replace sensitive values inside the CrossIndustryInvoice tree, preserve the XML structure needed for debugging, and share only the downloaded safe file. InvoiceVeil performs that transformation locally.

What makes CII different from UBL?

CII represents an invoice with UN/CEFACT elements such as ExchangedDocument, SellerTradeParty, BuyerTradeParty and the trade settlement. XRechnung can be expressed using this syntax, and Peppol documentation also defines rules for CII invoice instances.

The element names differ from UBL, but the privacy problem is the same: party IDs, legal names, addresses, electronic contacts, tax registrations, account details and document references are machine-readable values that can travel into logs and support systems.

CII fields worth checking

  • ExchangedDocument IDs and referenced document identifiers.
  • SellerTradeParty and BuyerTradeParty names, IDs and global identifiers.
  • PostalTradeAddress details such as street, postcode and city.
  • UniversalCommunication email, URI and telephone values.
  • Tax registration and creditor account identifiers used in settlement.

A practical support-file workflow

Duplicate the source invoice first. Load the duplicate into InvoiceVeil, review each proposed replacement, and keep only the fields required to reproduce the problem. Download the generated XML under a new filename and inspect it before attaching it to a ticket.

This approach minimizes identity data while retaining namespaces, hierarchy, totals and line structure. It is particularly useful when a parser fails only on the customer’s real document shape.

A test fixture is not a payable invoice

Replacement IBANs receive recalculated MOD-97 check digits. French GlobalID values marked as SIRENE (0002) or SIRET (0009), plus numeric French VAT values, receive linked checksum-valid replacements. Other synthetic party and bank identifiers may still fail CII, directory or country rules. Treat the output as a diagnostic fixture. Keep the original in the authorized accounting system and never submit, book or pay the anonymized copy.

Primary references

Continue reading