The e-invoice API for the 2026-2028 mandates

Three endpoints: generate validated EN 16931 XML from JSON, embed it into PDF/A-3 (Factur-X/ZUGFeRD), validate anything with rule-level reports. Built on the Mustang engine. 20 free credits β€” no card, no subscription.

Quickstart

1. Get a key (20 free credits, no card):

curl -X POST https://einvoicewiz.com/v1/signup \
  -H "Content-Type: application/json" -d '{"email":"you@company.com"}'

2. Generate a validated EN 16931 invoice XML from JSON:

curl -X POST https://einvoicewiz.com/v1/generate \
  -H "X-API-Key: eiw_..." -H "Content-Type: application/json" -d '{
  "invoice_number":"RE-2026-001","issue_date":"2026-07-12","currency":"EUR",
  "seller":{"name":"Muster GmbH","line_one":"Beispielstr. 1","postcode":"10115",
            "city":"Berlin","country":"DE","vat_id":"DE123456789"},
  "buyer":{"name":"Kunde AG","line_one":"Weg 2","postcode":"60311","city":"Frankfurt","country":"DE"},
  "lines":[{"name":"Consulting","qty":2,"unit":"hour","unit_price":100.0,"vat_rate":19}]
}'

3. Or make a full Factur-X / ZUGFeRD PDF/A-3 from your existing PDF:

curl -X POST https://einvoicewiz.com/v1/facturx -H "X-API-Key: eiw_..." \
  -F "pdf=@invoice.pdf" -F 'invoice={...same JSON as above...}' -o factur-x.pdf

Endpoints

EndpointWhat it doesCost
POST /v1/signup{email} β†’ API key with 20 free credits (shown once)free
GET /v1/mecredits remaining, calls usedfree
POST /v1/generateinvoice JSON β†’ validated EN 16931 CII XML. ?profile=xrechnung for XRechnung 3.0 (needs buyer_reference + seller contact)1 credit
POST /v1/facturxmultipart pdf + invoice JSON β†’ Factur-X PDF/A-3 binary1 credit
POST /v1/validateraw PDF/XML body β†’ EN 16931 + KOSIT + PDF/A report with rule IDs1 credit
GET /api/verify/{id}look up a verification certificate by IDfree
POST /api/verifyupload any file β†’ certificates whose recorded SHA-256 matches it byte-for-bytefree

Machine-readable spec: /openapi.json (OpenAPI 3.1) Β· MCP server for AI agents: /mcp-server

Verification certificates

Every file that passes validation gets a permanent certificate β€” EIW-XXXXXXXXXXXX β€” returned as verify.id / verify.url in JSON responses and as X-Cert-Id / X-Verify-URL headers on binary responses. The certificate records the SHA-256 of the delivered file(s), the rule engine and version, the profile, and any warnings. Files themselves are deleted within 24 hours; the certificate is kept. A recipient (or their accountant, or an auditor) can open /verify, paste the ID or drop the file, and confirm it is the exact file that passed. This is a statement about structural conformance to EN 16931 at the time of issue β€” not about the commercial content of the invoice.

Failed validations are never charged β€” 422 responses include the exact business rules violated (BR-CO-15 etc.) so you can fix input programmatically. Totals in generated XML are always recomputed server-side from line items.

Invoice JSON reference

{
  "doc_type": 380,              // 380 invoice Β· 381 credit note Β· 384 correction
  "invoice_number": "RE-1",     // required
  "issue_date": "2026-07-12",   // required, ISO
  "due_date": null, "delivery_date": null,   // optional ISO (delivery defaults to issue)
  "currency": "EUR",            // required
  "buyer_reference": null,      // Leitweg-ID β€” required for XRechnung
  "order_reference": null,
  "seller": {"name","line_one","postcode","city","country","vat_id",
             "tax_number","contact_email","contact_phone","email"},   // name+country required
  "buyer":  {"name","line_one","postcode","city","country","vat_id","email"},
  "payment": {"iban","bic","terms"},
  "notes": ["..."],
  "prepaid": 0,
  "exemption_reason": null,     // for VAT categories E/AE/K/G/O
  "lines": [{"name","description","qty","unit","unit_price","vat_rate","vat_category"}]
                                // unit: piece|hour|day|kg|litre|month|km|lump|m2|m
                                // vat_category: S|Z|E|AE|K|G|O (default S, or Z when rate=0)
}

Pricing

PackPricePer call
Free tier€020 credits on signup
500 credits€9€0.018
2,500 credits€29€0.0116
10,000 credits€79€0.0079

Buy credits

Paste your API key, pick a pack, pay with PayPal β€” credits land on the key instantly.

Notes for integrators

Formats: ZUGFeRD 2.x / Factur-X 1.x (EN 16931 profile) and XRechnung 3.0 CII. Validation via the Mustang rule engine (EN 16931 BR/BR-CO, KOSIT BR-DE, PEPPOL, veraPDF-based PDF/A checks). EN 16931-1:2026 revision support is on the roadmap — breaking schema changes (CII D16B→D25A) will be versioned under /v2/ so /v1/ keeps working. Files are processed transiently and deleted immediately after the response; nothing is used for AI training (this pipeline is deterministic — no AI touches your data). GDPR DPA available on request: support@einvoicewiz.com.

Frequently asked questions

Why per-credit instead of a monthly plan?

Because compliance traffic is bursty: month-end spikes, migration batches, then silence. Credits never expire, so you pay for what you use.

What happens when EN 16931-1:2026 lands?

Breaking schema changes ship as /v2/ endpoints; /v1/ keeps producing the current schemas so your integration never breaks unannounced.

Do you store our invoices?

No. API uploads are deleted immediately after the response is sent. The generation pipeline is deterministic (no AI), so no data ever leaves the processing host.

Can we white-label this inside our SaaS?

Yes β€” that is exactly what the 10,000-credit pack is for. For higher volume or a custom DPA, e-mail support@einvoicewiz.com.