Skip to content

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.

API documentation with the endpoints for creating invoices and generating ZUGFeRD and XRechnung

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.