Generate and validate ZUGFeRD, Factur-X and XRechnung invoices through a simple REST API. EN 16931 compliant by default — so you ship the feature this week, not after a month with a 500-page spec.
Free tier · No credit card · EN 16931 ✓
The EU is making structured e-invoices mandatory for B2B, country by country. Every product that issues invoices has to comply — including yours.
Structured B2B e-invoicing via Peppol is mandatory for all companies.
KSeF becomes mandatory, rolling out to all VAT-registered businesses.
All companies must receive e-invoices; large & mid-size must issue Factur-X.
Issuing becomes mandatory for all businesses. Receiving is already required since 2025.
No XML trees, no schema files, no reading the standard. The API handles structure, validation and country profiles for you.
Seller, buyer, line items — the fields you already have in your app. We map them to the standard.
Zugfy generates the XML, embeds it into a PDF/A-3 and validates everything against EN 16931 and the country profile.
You receive the finished file plus a validation report. Attach it, send it, archive it — done.
# Generate a ZUGFeRD invoice curl -X POST https://api.zugfy.dev/v1/invoices \ -H "Authorization: Bearer $ZUGFY_KEY" \ -d '{ "format": "zugferd-2.3", "seller": {"name":"Acme GmbH","vat_id":"DE812345678"}, "buyer": {"name":"Kunde AG"}, "lines": [{"desc":"Consulting","net":1200,"vat":19}] }' --output invoice.pdf
import requests r = requests.post( "https://api.zugfy.dev/v1/invoices", headers={"Authorization": f"Bearer {KEY}"}, json={ "format": "zugferd-2.3", "seller": {"name": "Acme GmbH", "vat_id": "DE812345678"}, "buyer": {"name": "Kunde AG"}, "lines": [{"desc": "Consulting", "net": 1200, "vat": 19}], }, ) open("invoice.pdf", "wb").write(r.content)
Start with one country, expand with a parameter change — not another integration project.
Hybrid PDF/A-3 with embedded CII XML. Profiles from BASIC to EXTENDED, ready for the 2027–28 mandate.
The French twin of ZUGFeRD, required under the September 2026 reform. Same call, different parameter.
Pure XML (UBL or CII) for B2G invoicing and strict-XML workflows across German states.
Already generating invoices? Check any file against EN 16931 and get a human-readable error report.
Month to month, cancel anytime. Early-access members lock in launch pricing.
For evaluation and side projects
forever
For production apps
billed monthly
For platforms and agencies
billed monthly
During early access every plan starts free — billing begins only when the API goes live, with 30 days' notice.
EN 16931 is the European standard defining what a legal e-invoice must contain. Formats like ZUGFeRD, Factur-X and XRechnung are implementations of it. If your product issues B2B invoices in the EU, the country mandates rolling out through 2026–2028 make this standard your problem — Zugfy's job is to make it not your problem.
Libraries generate XML; they don't take responsibility for it. With a library you own schema updates, country-profile changes and validation edge cases — ongoing work the standard keeps generating. With Zugfy, compliance maintenance is the product: when the spec moves, the API moves, and your integration stays one POST request.
At launch: Germany (ZUGFeRD 2.x, XRechnung) and France (Factur-X) — the two largest mandates. The validation endpoint checks any EN 16931 invoice. Additional country profiles are prioritised by early-access demand, so tell us what you need in the signup form.
No. Invoices are generated in memory and returned in the response. Nothing is persisted beyond request logs (status codes and timing, never payload contents). For EU customers this keeps GDPR reviews short.
Not yet. Early access is free on every tier while we finalise the engine with design partners. Paid plans activate at public launch with 30 days' notice, and early-access members keep the pricing shown above.
Join early access. First 100 developers get the Starter tier free for 6 months after launch — and direct input on which country profiles ship next.
Early access · Free