A client question, not a product brief
We were not looking for another product to launch. Clients needed to handle e-invoices, and we needed to understand what that meant for their software and integrations. At first, it looked like a matter of putting familiar data into a different format.
Then came Factur-X, ZUGFeRD, XRechnung, PEPPOL and ebInterface, along with EN 16931, validation profiles and Schematron rules. Producing a structured file was only part of the job. Understanding why it passed one check or failed another took us much deeper into the subject than we had anticipated.
We needed it on our own desk first
We wanted a dependable debugging tool for client work: something that could identify a file, expose its contents and help us make sense of validation findings. Building milchrechnung gave us a practical way to learn the subject while working through actual invoices.
Its name comes from the German expression Milchmädchenrechnung: a calculation based on assumptions that do not hold up. It is a reminder of our initial estimate. We later released the tool as a free public beta, with no software to install and no account to create.
More than an invoice viewer
milchrechnung now brings together file analysis, validation against the relevant rules and a readable invoice preview. It also converts between supported formats and creates new e-invoices. These tools are accessible through the browser.
We keep analysis and validation separate. Our own engine examines the file and flags potential issues; validation checks it against the official rules. An invoice may pass validation while our analysis still raises a concern. Showing the findings side by side makes that distinction visible.
Keeping up when the rules change
Getting the first invoice to work was not the end of the job. Validation rules and profiles change. Our test suite therefore runs several dozen real and purpose-built test invoices through both the integrated open-source validator and our own engine.
We compare the findings when new versions arrive. Differences show us where a file is being assessed differently and what needs investigation. Updates to the rule sets feed into our automated build and deployment pipeline. We shared more about this process in the comments on the LinkedIn post.
Where this helps our clients
If an existing ERP already handles e-invoicing as needed, another application may add little. The work becomes more involved when custom software produces the data, an approval process sits between systems, or the receiving application expects a different format.
Those are the situations milchrechnung was built to help us investigate. The public tool deals with individual files; our client work connects the applications and processes around them. If you simply need to inspect an invoice, the free tool is a useful place to start.
milchrechnung began as a way to investigate invoice files and diagnose problems in client projects. We later made it available to anyone facing the same questions.