Automation MCP Server Features Blog Pricing Contact

CII Invoice Generator API

Test the CII REST API, submit your invoice details and download a validated UN/CEFACT CII D16B XML. EN 16931 Schematron-checked.

Have an existing invoice? Upload a PDF and we'll prefill the form
Invoice Details
Seller (From)

Provide at least one of Legal ID or Tax ID / VAT

Buyer (To)

Invoice Automation Wherever You Work

Built for developers and AI-driven workflows. Make your invoices compliant on your ERP or AI Agent via our secure MCP server and REST API.

REST API

Full-featured API for developers. Integrate invoice conversion into any stack.

No-Code Platforms

Connect via NoCode platforms like Zapier, Make and n8n, no engineering required.

MCP for AI Agents

Let your AI agents validate and convert invoices autonomously via our MCP server.

Developer API

Built for Developers

Submit a JSON invoice document, receive a validated UN/CEFACT CII D16B XML. ZUGFeRD and Factur-X embeddable, EN 16931 Schematron-checked.

  • Supports all formats: DOCX, XLSX, PDF, images, no preprocessing needed
  • Works on scanned and photographed invoices
  • Every response validated against official Schematron rules

Supports ZUGFeRD · Factur-X · XRechnung · UBL · CII · EN 16931

API Documentation
Terminal
$ curl -X POST https://api.invoicexml.com/v1/create/cii \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "invoice": {
      "invoiceNumber": "INV-2025-001",
      "seller": { "name": "Acme GmbH" },
      "buyer":  { "name": "ACME Corp" },
      "lines": [
        { "item": "Consulting", "quantity": 1, "netPrice": 1000, "vatRate": 19 }
      ]
    }
  }'

// => 200 OK: returns the validated invoice file
Flux 2 compliant CII

One flag adds the French Flux 2 checks to your CII

Plenty of teams generate standalone CII D16B and assemble the Factur-X container themselves, or hand the raw XML to the platform that transmits it. Under the French e-invoicing reform that payload eventually meets the BR-FR rule set (the Flux 2 checks derived from the FNFE-MPE artifacts), and it is much cheaper to fail in your build pipeline than at the Plateforme Agréée. POST /v1/create/cii runs those checks during generation when you ask for them:

{
  "invoice": { ... },
  "options": { "rules": ["br-fr"] }
}

The XML you get back has passed both gates in one round trip: the EN 16931 rule set its specification identifier declares, and the French mandate rules on top of it, from the authorised VAT rate list (BR-FR-16) to the SIREN legal registration (BR-FR-10) and the coded payment-terms mentions (BR-FR-05). The BT-24 identifier is never rewritten, so the document still declares exactly what it is. Three details worth knowing:

  • A document that declares the EXTENDED-CTC-FR profile already carries the Flux 2 rules in its own pipeline; asking for br-fr on top never runs them twice.
  • The header-only MINIMUM and BASIC WL profiles are rejected with a clear 400: the mandate reads them as booking aids, not fiscal invoices.
  • Violations return as ordinary findings with BR-FR rule ids and JSON field paths, in the same errors array your integration already parses.

Full details in the CII creation API reference.

How it works

We keep you up to date.
Integration stays the same.

Invoices go in, validated invoices come out. When an authority publishes a new rule set, we load it on its effective date while the line keeps moving.

Versions Updated Automatically rule sets loaded from the authorities
Peppol BIS schematron
3.0.183.0.193.0.20
swapped on the effective date
Also in force
EN 16931 · SI-UBL · XRechnung · PINT
tracked on the same calendar
Created Validated
your invoice data in compliant invoice out ✓

You don't track regulatory updates to change the rulebooks. We ship it while it runs, on it's effective dates.

Beyond the Form: Automate Your CII Invoice Workflow

This form is perfect for one-off invoices. But if you generate dozens or hundreds of CII documents, for ZUGFeRD embedding, ERP integration, or e-invoicing network delivery, InvoiceXML gives you the tools to automate the full pipeline with a single API call or no-code trigger.

1. Developer-First REST API

Integrate CII generation directly into your ERP, accounting software, or custom application with a single HTTP call:

  • • Single Endpoint: POST your invoice fields as JSON and receive a validated UN/CEFACT CII D16B XML back instantly, ready for standalone delivery or PDF/A-3 embedding.
  • • Stateless & Secure: We process your data in memory and return the XML. No financial data is stored or logged.
  • • Full Compliance: Every generated CII document is validated against EN 16931 Schematron business rules before delivery, the same rules ZUGFeRD and Factur-X validators enforce.
  • • ZUGFeRD & Factur-X Ready: The output CII XML is structurally identical to the XML embedded in ZUGFeRD 2.x and Factur-X documents, attach it to a PDF/A-3 in your own pipeline or use our /create/zugferd and /create/facturx endpoints to get the full hybrid PDF in one step.

Pro Tip: Check out our API Documentation to see the full request schema and response format.

2. Email Gateway, Send JSON, Receive CII XML

The InvoiceXML Email Gateway requires zero API integration, any system that can send email can trigger CII generation:

  • • How it works: Email a JSON attachment containing your invoice data to your dedicated InvoiceXML gateway address. We generate the validated CII XML and email it back, ready for delivery or ZUGFeRD embedding.
  • • Legacy ERP Friendly: Any system with outbound email capability can trigger CII generation, no webhook setup, no API keys in your code, no infrastructure changes.
  • • Batch Support: Send multiple invoice objects in a single JSON array and receive all corresponding CII XML files in return.

3. No-Code Automation (Zapier, Make.com & n8n)

Connect InvoiceXML to the tools your team already uses, no developer required:

  • • ERP & Accounting: Trigger CII generation automatically whenever a new invoice is created or approved in your system, no manual export step.
  • • Google Sheets / Airtable: Turn a row of invoice data into a validated CII XML and forward it to your document management system or e-invoicing network automatically.
  • • ZUGFeRD Pipeline: Chain CII generation with a PDF/A-3 embedding step in Make.com or n8n to fully automate ZUGFeRD hybrid invoice production without writing a line of code.

Why UN/CEFACT CII Is the XML Backbone of European E-Invoicing

UN/CEFACT CII (Cross Industry Invoice) D16B is one of the two official XML syntaxes of the European EN 16931 e-invoicing standard. It is the format embedded inside every ZUGFeRD and Factur-X document, making it the most widely deployed structured invoice format in Germany and France. Beyond hybrid PDFs, CII is used as a standalone XML exchange format by ERP systems, accounting platforms, and e-invoicing networks across the EU and internationally.

FeatureOur CII Implementation
StandardEN 16931 + UN/CEFACT CII D16B
Output FormatStandalone CII XML (PDF/A-3 embeddable)
Schema VersionCII D16B (CrossIndustryInvoice)
Compatible FormatsZUGFeRD 2.x, Factur-X, standalone XML
ValidationEN 16931 Schematron business rules

Complete CII Toolkit

Everything you need to create, convert, validate, and preview CII invoices, via REST API or online.

Frequently Asked Questions

Does InvoiceXML store my data?

No. We process your invoice data in memory and discard it immediately after the XML is generated and downloaded. Nothing is persisted.

Can I embed the generated CII XML in a ZUGFeRD or Factur-X PDF?

Yes. The output is a fully validated CII D16B XML that is structurally identical to the XML embedded in ZUGFeRD 2.x and Factur-X documents. You can attach it to a PDF/A-3 using any compliant library. Alternatively, use the /create/zugferd or /create/facturx endpoints to get the complete hybrid PDF in a single API call.

What is the difference between CII and UBL?

Both are valid EN 16931 syntaxes. CII (UN/CEFACT) is the format used by ZUGFeRD and Factur-X hybrid PDFs, it is the dominant choice in Germany and France. UBL (OASIS) is the native format of the Peppol network and is used for B2G invoicing in Nordic countries, Singapore, and Australia. Choose CII when your recipient uses ZUGFeRD, Factur-X, or a CII-based ERP integration.

What is the difference between /create/cii and /create/zugferd?

/create/cii returns a standalone CII XML file, ideal for ERP import, direct transmission, or manual PDF/A-3 embedding in your own pipeline. /create/zugferd returns a complete ZUGFeRD-compliant PDF/A-3 with the CII XML already embedded, ready for direct B2B exchange.

Can I automate CII generation from my ERP via email?

Yes. The InvoiceXML Email Gateway lets any system with outbound email trigger CII generation without API integration. Email a JSON attachment to your dedicated gateway address and receive the validated CII XML in reply.

Does /create/cii support the French e-invoicing mandate (Flux 2)?

Yes. Set options.rules to ["br-fr"] and the generated CII is validated against the BR-FR Flux 2 rule set of the French CTC mandate in the same call, on top of the rule set its declared profile already selects. That covers the mandate-specific content a Plateforme Agréée checks at intake: the seller's SIREN, the authorised French VAT rates, the cadre de facturation, electronic party addresses, and the mandatory coded mentions for late-payment penalties, recovery costs and escompte. The specification identifier (BT-24) is never modified, so the output remains a plain EN 16931 or Factur-X profile document that simply proved it also satisfies the French rules.

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