Skip to content

Factur-X API

Generate, embed, validate and read Factur-X / EN 16931 e-invoices from a REST API or directly from an AI agent over MCP. Built for the French e-invoicing reform (September 2026 / 2027) and compatible with the EU norm used by ZUGFeRD, Peppol BIS and ViDA.

  • Generate

    Invoice JSON in, compliant Factur-X PDF/A-3 (with embedded CII XML), CII XML or UBL 2.1 XML out. Totals and VAT breakdown are computed for you.

  • Validate

    Any Factur-X PDF, CII or UBL file checked against the XSD and the EN 16931 schematron, plus the French fr-ctc rules (BR-FR-*). Findings come back with rule ids and locations.

  • Embed

    Keep your own PDF design: attach a Factur-X XML (or let us generate it from JSON) and get a PDF/A-3 Factur-X invoice.

  • Extract

    Read inbound e-invoices: embedded XML plus parties, totals, VAT breakdown and lines as JSON.

One call

curl -X POST https://facturx-api.fly.dev/v1/invoices/generate \
  -H "Authorization: Bearer $FACTURX_API_KEY" \
  -H "Content-Type: application/json" \
  -d @invoice.json -o invoice-facturx.pdf

Validation and extraction are free without an API key (rate limited); generation and embedding need a key. See Pricing.

Why this API

  • Standards, not opinions. Output passes the official EN 16931 schematron and the French CTC (fr-ctc) rule set published for the reform. Every response tells you exactly which rules ran.
  • Stateless. Documents are processed in memory and never stored.
  • Same engine for humans and agents. The REST endpoints and the MCP tools share one implementation, so what an agent produces in Claude or Cursor is what your ERP gets.
  • Profiles: generates BASIC WL, EN 16931, EXTENDED and EXTENDED-CTC-FR (the French extended profile); validates and reads every Factur-X profile including MINIMUM and BASIC, plus UBL 2.1.

Where to next