For developers and companies with their own software
Don't implement ZUGFeRD yourself.
One HTTP interface: JSON in, checked ZUGFeRD PDF or XRechnung out. With E-Rechnungsfreund you don't have to implement EN 16931, Schematron checks and PDF/A conversion in your own code.
REST API with OpenAPI documentation
An example
Create an invoice from JSON and fetch the ZUGFeRD PDF
# 1. Create the invoice from your JSON data
curl -X POST https://www.e-rechnungsfreund.de/api/v1/invoices/ \
-H "Authorization: Api-Key $API_KEY" \
-H "Content-Type: application/json" \
-d @invoice.json
# 2. Generate the ZUGFeRD PDF for the returned id (PDF/A-3b with embedded XML)
curl -X POST https://www.e-rechnungsfreund.de/api/v1/invoices/42/generate_zugferd_pdf/ \
-H "Authorization: Api-Key $API_KEY" \
-o invoice.pdf
For an XRechnung for public authorities, call generate_xrechnung instead and receive the XML. All fields of the request body and the responses are described in the API docs. View API docs · Code examples and workflow
What you get
What the API takes off your hands
Versioned REST API
Public API under /api/v1/ with API key authentication and an OpenAPI schema, usable from any system that speaks HTTP and JSON.
Checked output
ZUGFeRD 2.4 (EN 16931) as PDF/A-3b or XRechnung 3.0.2 as XML, checked against the KoSIT rules during export. Errors come back in the response.
Validate and manage
Check received e-invoices (XML or PDF) via the API and record status and payments of your invoices.
Questions and objections
What you might be wondering
How stable is the API?
The public API is versioned under /api/v1/ and described in an OpenAPI schema, from which you can also generate a client.
Is API access included in the free plan?
No. API access is only available in paid plans that include it. You can try the web interface and the validator for free. Plans with API access
How do I authenticate?
With an API key in the Authorization header: "Api-Key" followed by your key. You create keys in your account once your plan includes API access.