01 — The trap that looks fine
27% is written 0.27
In the NAV schema the VAT rate is a fraction, not a percentage. Copy it into a column headed "VAT %" and Hungary's 27% — the highest standard rate in the EU — appears as 0.27%. Nothing errors, no total changes, and the number looks like a number. It is read as a fraction and multiplied out here.
The opposite mistake is just as quiet: a line that is exempt
(vatExemption) carries no percentage at all. Showing it as
0% would be wrong — "taxed at zero" and "outside the scope of VAT" are
different things on a document. An unknown rate is shown as unknown.
02 — Arithmetic, not opinion
The tax number carries a check digit
A Hungarian adószám is written in three parts — 10773381-2-44 —
and only the first eight digits carry the check digit. Validate the whole string as
one number and every Hungarian tax number fails, which is worse than not checking
at all. Here the first part is checked, and a transposed digit is caught without
asking anyone.
What that does not tell you is whether the number is registered and active. That needs the tax authority's own lookup. A check that claims more than it does is worse than no check.
Forint, and the invoices that are not
A total is only a total within one currency. Invoices in HUF and invoices in EUR are summed separately rather than added across at an exchange rate picked at export time — a rate nobody can reconcile later is not a convenience.
Correction invoices (helyesbítő számla) name the invoice they correct. That reference is carried into the table: a −50 000 Ft row sitting on its own, with no way to see what it reverses, is a question for someone three months from now.
What else is read
The same drop zone reads Peppol UBL and CII, Factur-X and ZUGFeRD PDFs, Italian
FatturaPA (including signed .p7m), Spanish Facturae, Polish KSeF, Romanian
e-Factura and Austrian ebInterface — plus ZIP archives and .eml /
.msg emails with invoices attached. Everything in one table.
Trying it
Drop files on the main page — up to 10 invoices per export and 20 a day, free, no account, and the count resets at midnight. Pro lifts both limits for 29 € once, with no renewal. To inspect a single file there is the check page.
Nothing is uploaded
The files are read in the browser. There is no server they could go to, and that is checkable in two minutes: open the developer tools, the Network tab, and drop an invoice in — no request goes out. Or load the page, disconnect the network, and drop it anyway. It still works.