Create and validate e-invoices – free of charge.
Rechnungskern turns your invoice data into an EN 16931 e-invoice: a hybrid ZUGFeRD / Factur-X PDF/A-3 or XRechnung XML for German public-sector customers – right in your browser or via API. It also validates existing e-invoices with the Mustang validator.
Hybrid PDF
PDF/A-3 with embedded CII XML (ZUGFeRD 2.x / Factur-X, profile EN 16931). Readable by people, machine-readable for accounting systems.
XRechnung
XRechnung 3.0 XML for German authorities and public-sector buyers, including the Leitweg-ID and all BR-DE rules.
Verified compliance
Every invoice is checked against the official XML schema; Schematron rules (EN 16931, XRechnung) and PDF/A-3 are verified with the Mustang validator.
Discounts, charges, logo
Price discounts, line and document level allowances and charges, multiple VAT rates, reverse charge, your logo, header and footer texts, German or English.
Remembers your data – locally
The invoice editor stores company, customers and payment details in your browser only. Next time everything is back without anything sitting on a server.
Nothing is stored
Invoice data is processed in memory only and discarded immediately after the response is delivered. No copies, no backups, no analytics.
Three ways to an e-invoice
- Create it in the browser – fill in the form, upload your logo, download PDF or XML. Your entries are kept for the next invoice.
- Validate an existing e-invoice – upload a PDF or XML and get an EN 16931 / XRechnung report within seconds.
- Via API from your software – send JSON, receive the finished e-invoice. Request an API key by e-mail.
curl -X POST https://rechnungskern.de/v1/invoices/pdf \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d @invoice.json -o invoice.pdf
All endpoints, fields and examples are in the interactive API documentation. The invoice editor can export the matching JSON for your API call.
Frequently asked questions
What is an EN 16931 e-invoice?
An invoice in a structured, machine-readable format according to the European standard EN 16931. In Germany the common formats are XRechnung (pure XML) and ZUGFeRD/Factur-X (PDF with embedded XML). A plain PDF is not an e-invoice.
What is the difference between ZUGFeRD and XRechnung?
ZUGFeRD/Factur-X is a hybrid PDF/A-3 with a readable document and embedded XML data – ideal for business customers. XRechnung is the standard for invoices to German public authorities: XML only, with additional mandatory fields such as the Leitweg-ID.
When does e-invoicing become mandatory in Germany?
Since 1 January 2025 all businesses must be able to receive e-invoices. Sending becomes mandatory on 1 January 2027 for companies with more than EUR 800,000 previous-year turnover and on 1 January 2028 for all B2B businesses.
Is the service really free?
Yes. Creating and validating in the browser is free without registration. For the API a short e-mail is enough to get a key. There is no guarantee of availability; the service may be restricted or discontinued at any time.
Is my invoice data stored?
No. Data is processed in memory only and discarded immediately after delivery – no copies, no backups, no analytics. The editor stores your entries exclusively in your own browser. Details in the privacy policy.
About the project
Rechnungskern is an independent project by Abbas Albukhari, Senior Software Engineer. It exists because small businesses and freelancers are often left alone with the e-invoicing obligation: they need a compliant document, not a new accounting system. That is why the service is free, stores nothing and checks every document with the same tools the recipients use. More about the background and the technology.
Terms of use
- The service is free. There is no guarantee of availability; maintenance, interruptions or discontinuation of the service are possible at any time.
- Technical compliance is ensured to the best of our knowledge. You remain responsible for the content and tax correctness of your invoices; the service is no substitute for tax or legal advice.
- Please use it fairly: the public functions are limited per user. For higher volumes request an API key.