E-invoicing API: Factur-X, XRechnung & ZUGFeRD from the JSON you already have

On September 1, 2026, every business in France must be able to receive structured e-invoices, and large and mid-size companies must issue them. Germany's B2B receive mandate is already live. The format behind both — EN 16931 — is a 200-page semantic standard with hundreds of business rules. Slipstack turns it into the same JSON call you use for PDF invoices.

Generate: one endpoint, two formats

  • xrechnung-cii — standalone UN/CEFACT Cross-Industry Invoice XML carrying the XRechnung 3.0 guideline identifier. What German public-sector buyers and B2B platforms ingest.
  • facturx-pdf — your invoice PDF with the CII XML embedded as factur-x.xml (Factur-X BASIC profile guideline, PDF/A-3-style attachment and XMP metadata). Human-readable and machine-readable in one file — the French/German hybrid approach (Factur-X / ZUGFeRD).
// XRechnung-style CII XML (application/xml response)
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: "xrechnung-cii" }, // or "facturx-pdf"
    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: "Bauhaus Digital GmbH", countryCode: "DE", vatId: "DE811569869" },
      number: "FX-2026-0042",
      date: "2026-06-09",
      dueDate: "2026-07-09",
      currency: "EUR",
      items: [{ description: "Design retainer", quantity: 12, unitPrice: 95.5 }],
      taxRate: 20,
      paymentIban: "FR7630006000011234567890189",
      paymentReference: "FX-2026-0042",
    },
  }),
});

Parse: incoming CII and UBL invoices

The receive side of the mandate is the part that hits everyone. POST any EN 16931 invoice — CII (Factur-X, ZUGFeRD, XRechnung) or UBL (Peppol BIS) — and get back normalized JSON: parties, VAT identifiers, line items, totals, payment details.

# Parse any CII or UBL e-invoice back into clean JSON
curl -X POST https://slipstack.dev/api/v1/einvoice/parse \
  -H "Authorization: Bearer $SLIPSTACK_KEY" \
  -H "Content-Type: application/xml" \
  --data-binary @incoming-invoice.xml

# -> { "format": "cii", "data": { from, to, number, items[], ... },
#      "reported_totals": { ... }, "fields": { seller_vat_id, ... } }

What we validate — and what we don't

Honesty matters more than badges in compliance tooling, so here is exactly where we stand:

  • Validated: every generated document is tested against the official EN 16931 CII schematron (ConnectingEurope validation artifacts v1.3.16) and the UN/CEFACT D16B XSDs in our test suite — zero fatal rule violations across standard-rated, zero-rated, and not-subject-to-VAT scenarios.
  • Not yet validated: country-CIUS extras on top of the core norm — KoSIT's XRechnung-specific rules (e.g. mandatory seller contact block) and Peppol BIS rules. Our XML carries the right guideline identifiers and passes the core EN 16931 rules they build on.
  • facturx-pdf is labeled "facturx-hybrid (beta)": the embedded XML, attachment wiring (AFRelationship, /AF) and Factur-X XMP are spec-correct, but the PDF container is not a certified PDF/A-3 file (standard fonts are not embedded). If your counterparty requires strict PDF/A-3 conformance, use xrechnung-cii XML today.
  • Profile support: single VAT rate per invoice with an optional document-level discount. Multi-rate invoices, credit notes, and charges are on the roadmap.

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.

E-invoicing ships with Pro

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

See pricing