What it checks before it prints
Missing a required field is not a formatting problem: an invoice without a number, a date of supply or the supplier’s VAT number is not a valid invoice. The generator refuses to print those and says which field is missing.
It also stops two contradictions that are easy to produce by accident: reverse charge with VAT still charged on the lines, and the small business exemption with a non-zero rate. In both cases the document would be saying two opposite things at once.
Warnings are separate from errors and never block printing. The generator does not know the circumstances of your sale, so where a rule depends on them — the Polish split payment threshold, the German simplified invoice limit — it tells you and leaves the decision with you.
A PDF is not an e-invoice
This is the part worth reading before you rely on the output for business.
Poland runs KSeF, the national e-invoicing system, and B2B invoices fall under it as the mandate phases in. Germany has its own e-invoicing rules: receiving structured invoices is already mandatory, issuing them is being phased in. In both cases a printed or PDF document is not the same thing as a structured electronic invoice, however correct it looks.
What this generator is good for today: proformas, quotes, B2C sales, drafts you check before entering them elsewhere, and any case where a paper or PDF document is what the other side expects. When you tick the B2B box, the generator says this to you directly rather than letting you find out from a customer who refuses the invoice.
Where the numbers are rounded
Every amount is calculated in cents as whole numbers, never as decimals — that is how a total ends up differing from the sum of its lines by a cent.
The order is fixed and deliberate: each line is calculated and rounded first, then the lines are added up. Rounding the total instead is also accepted in most member states and gives an answer a cent or two apart. What matters is applying one consistently, so the choice is written into the engine rather than left to chance.
Why this one reloads the page
Every other calculator here runs in your browser and updates as you type. This one submits a form and comes back with a page, which is slower and worth explaining.
The document engine — the field rules for each country, the validation, the layout — is a separate closed project that never reaches your browser. That is a deliberate trade: the engine stays where it is, and in exchange you get a round trip instead of instant results.
What that means for your data is in the privacy policy, and briefly: what you type is used to build the document and nothing else. It is not saved, not logged and not sent anywhere.