Your OCR Read the Invoice Perfectly. The VAT on It Was Wrong.
Product wording checked on 17 October 2026. Tax examples retain their stated dates; check the current official source before acting.
Here's an invoice that lands in a finance inbox a hundred times a day.
A Maltese consultancy bills a French company for €9,000 of services. The PDF is clean. Supplier in Malta, customer in France with a valid VAT ID printed at the top, €9,000 net, €1,800 VAT, €10,800 total. You run it through Mindee and every field comes back perfect, supplier, customer, line items, tax amount, the lot. Confidence scores are sky-high. The data is exactly what's on the page.
And the VAT is wrong.
Not "the OCR misread a digit" wrong. The number itself shouldn't be there. This is an intra-EU B2B supply of services, both parties VAT-registered. Under the place-of-supply rules, it's reverse-charged: the supplier invoices at 0% and the French customer self-accounts for the VAT on its own return. That €1,800 line is a mistake the supplier made. The invoice is internally tidy and externally incorrect.
Extraction is the eyes, not the brain
This is the part worth sitting with, because it's not a knock on the OCR at all. Document AI did its job exactly right. It read what was on the page with high accuracy, which is genuinely hard and genuinely valuable. Tools like Mindee turn a PDF into clean structured fields, and that's the foundation everything else stands on.
But extraction answers one question: what does this document say? It was never designed to answer the second question: should it say that? Those are different jobs. One is vision. The other is tax law, and specifically the cross-border VAT rules that decide whether a given supply is standard-rated, zero-rated, exempt, or reverse-charged based on who the parties are, where they sit, what's being supplied, and whether VAT IDs check out.
No amount of OCR accuracy gets you there, because the error isn't in the reading. It's in the document. A perfect extraction of a wrong invoice is a perfectly captured wrong number, posted straight into your books with full confidence.
What the brain looks like
So you pair them. Mindee reads the invoice. OpenAccountants checks whether the tax on it is actually correct for the jurisdictions involved.
When the extracted fields come through, Maltese supplier, French business customer, both with VAT IDs, VAT charged, OA loads the verified Malta place-of-supply rules and the intra-EU B2B treatment, and flags it:
⚠ VAT charged on an intra-EU B2B supply.
Expected treatment: reverse charge (supplier 0%, customer self-accounts).
Rule: MT VAT place-of-supply, B2B general rule (Art. 44 PVD).
Verified by: Michael Cutajar, CPA (Malta).
The reference material needs a visible provenance record. Each skill identifies its author and any independent accountant check. Read the skill’s current review record and applicable year, and check figures against the official sources it links. A skill review concerns the reference material; it does not create an engagement or approve your particular filing.
And it's the same shape in every direction. A French supplier billing a German business, a Spanish freelancer invoicing an Irish company, a UK firm post-Brexit getting the new treatment wrong, these are all the same class of error, and they all live in rules that change and vary by country. OA publishes skills across jurisdictions. Coverage and review status vary by topic, so inspect the relevant skill before applying it to an invoice.
Why this matters more as you automate
When a human bookkeeper eyeballed every invoice, a wrong VAT line had a chance of getting caught. The senior who'd seen a thousand intra-EU invoices would frown at it. As you push extraction-to-ledger automation, straight-through posting, AI agents reconciling on their own, that human frown disappears from the loop. The pipeline gets faster and the silent-error rate goes up, because nothing in a pure extraction stack is looking for "this invoice is wrong," only "did we read it right."
That's the gap a correctness layer fills. Extraction tells you what the document says. A verified-rules check tells you whether to believe it. You want both, and you especially want both the moment a human stops reviewing each one.
We built a small reference integration so you can see it end to end: feed an invoice through the OCR, watch OA catch the reverse-charge error, and trace the flag back to the rule and the accountant who signed it. It's open source, openaccountants/mindee-vat-demo. Clone it, run it on your own messy invoices, and connect the OpenAccountants MCP at openaccountants.com to give your pipeline the second pair of eyes that actually knows the law.