France e-invoicing mandate (2026): the Factur-X & EN 16931 API for the document itself

France's réforme de la facturation électronique phases in from September 1, 2026. The format behind it — EN 16931, carried as Factur-X, CII or UBL — is a semantic standard with hundreds of business rules. Slipstack turns that document into the same JSON call you already use for PDF invoices, and validates it against the official core rules before it leaves your system.

What Slipstack is — and is not. Slipstack generates and validates the e-invoice document (Factur-X / CII XML). It is not a Plateforme de Dématérialisation Partenaire (PDP): it does not transmit invoices, exchange them with your buyers, or report data to the Portail Public de Facturation. Under the reform you choose a registered PDP for transmission and e-reporting — Slipstack produces and checks the compliant file that flows through it.

The timeline, plainly

  • September 1, 2026 — every business established in France must be able to receive structured e-invoices (a capability your PDP provides), and large and mid-size companies (ETI) must begin issuing them.
  • September 1, 2027 — the issuing obligation extends to small and micro enterprises (PME/TPE).
  • The current model uses accredited private platforms (PDPs) for invoice exchange; the public portal (PPF) acts as the directory and e-reporting concentrator rather than a free exchange hub. Always confirm the live obligations with your PDP and the DGFiP — Slipstack tracks the document format, not your filing status.

Generate: one endpoint, the French formats

  • facturx-pdf — your invoice PDF with the CII XML embedded as factur-x.xml (Factur-X BASIC profile guideline). Human-readable and machine-readable in one file — the hybrid approach France and Germany share (Factur-X / ZUGFeRD).
  • xrechnung-cii — standalone UN/CEFACT Cross-Industry Invoice XML, if your PDP or buyer wants pure structured XML rather than the hybrid PDF.
// Factur-X hybrid PDF (PDF + embedded CII XML) from plain JSON
const res = await fetch("https://slipstack.dev/api/v1/einvoice", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SLIPSTACK_KEY}`, // Pro plan
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    options: { format: "facturx-pdf" }, // or "xrechnung-cii" for standalone XML
    data: {
      from: {
        name: "Atelier Lumière SARL",
        countryCode: "FR",              // required for e-invoices
        vatId: "FR32123456789",         // required when taxRate > 0
        address: "12 Rue de la Roquette",
        city: "Paris", postalCode: "75011",
      },
      to: { name: "Bureau Veritas SA", countryCode: "FR", vatId: "FR89775690621" },
      number: "FX-2026-0042",
      date: "2026-09-02",
      dueDate: "2026-10-02",
      currency: "EUR",
      items: [{ description: "Prestation de conseil", quantity: 8, unitPrice: 120 }],
      taxRate: 20,
      paymentIban: "FR7630006000011234567890189",
      paymentReference: "FX-2026-0042",
    },
  }),
});

Validate before you send — free, no account

Whether you build the XML with Slipstack or with your own code, you can check it against the official EN 16931 core schematron (ConnectingEurope release v1.3.16) with the free EN 16931 / XRechnung core validator — paste or upload CII or UBL, up to 20 checks a day, no signup.

Scope, stated plainly: the validator checks the EN 16931 core rules (schematron v1.3.16). It does not check the KoSIT XRechnung CIUS or Peppol BIS rules — stricter supersets — and it does not validate XSD structure. The Factur-X hybrid PDF is labeled facturx-hybrid (beta): the embedded XML, attachment wiring and XMP are spec-correct, but the container is not a certified PDF/A-3 file. For strict conformance, use xrechnung-cii XML today.

Parse inbound invoices back to JSON

When your PDP hands you a structured invoice, Slipstack's parse endpoint turns CII or UBL XML back into clean JSON on any paid plan — so your accounting code reads one shape regardless of which format a supplier sent.

For agents: it's on the MCP server too

The Slipstack MCP server exposes create_einvoice_xml and parse_einvoice — try both without an account on the demo quota.

Get the document right before the deadline

Generation on Pro and Scale. Parsing on every paid plan. Validation is free. Same key as your PDF API.