All articles →

Why EU VAT compliance can't be reduced to a simple lookup table

Understanding the hidden traps behind VIES responses and the real cost of guessing.

THE PROBLEM WITH LOOKUP TABLES
Many shop owners think that checking a VAT number is just a matter of pulling a rate from a table. They assume that if the number looks right and the country matches, the calculation is done. This view ignores two critical layers: the validity of the number itself and the legal rules that surround any discount you offer. When you rely on a static lookup you are betting that the data you have is always correct and that the law never changes. In reality both assumptions can lead to fines, complaints or even a competitor reporting you for an unfair promotion.

WHAT VIES ACTUALLY TELLS YOU
The VIES service is the official source for validating EU VAT numbers, but its response can be misleading. VIES always returns an HTTP 200 status, even when its internal systems are down or overloaded. The real answer lives in the userError field. Only the values VALID and INVALID give you a definitive judgment. All other codes. MS_UNAVAILABLE, MS_MAX_CONCURRENT_REQ, GLOBAL_MAX_CONCURRENT_REQ, SERVICE_UNAVAILABLE and TIMEOUT. mean that the service could not complete the check at that moment. If you ignore userError and treat every 200 as a valid number, you will cache a temporary outage as a permanent invalidation. That mistake can cause you to reject legitimate customers or, worse, to accept a fraudulent number because you assumed the service was working.

THE REAL PRICE OF A WRONG ASSUMPTION
Imagine you run a promotion and you lower the price of a product. The Omnibus directive requires you to show the lowest price of the past 30 days. If your VAT number check is wrong you might apply the wrong rate, miscalculate the discounted price and end up advertising a price that is legally too low. The consumer authority can issue a fine, a competitor can file a complaint, and your brand trust suffers. The cost of a single mistake is not just the fine; it is the sleepless night wondering whether the next audit will find another error, the time spent fixing invoices, and the loss of confidence when you have to explain the issue to your customers.

HOW VAT CHECK API HANDLES THE COMPLEXITY
The VAT Check API was built to remove that guesswork. It does three things in one call:

1. It queries VIES and respects the userError field so you never mistake an outage for an invalid number. Results are cached for 24 hours to keep latency low without sacrificing accuracy.
2. It calculates the Omnibus-required lowest price over the last 30 days, giving you the exact figure you must display when you run a discount.
3. It applies the correct VAT rate from the 27 EU member states, taking into account any shipping-threshold rules that affect the final price shown to the buyer.

By handling validity, compliance and rate lookup together, the API lets you focus on running your shop instead of worrying about hidden regulatory traps.

TAKE THE NEXT STEP
If you want to stop second-guessing every VAT number and every discount, the best way to start is with the free checklist that walks you through the exact steps to verify compliance, avoid VIES pitfalls and apply the Omnibus rule correctly. It condenses the lessons from real-world audits into a practical guide you can use today.

Get the free checklist now at https://insightoperator.org and make compliance a quiet background task, not a source of anxiety.

The 12 point EU dropship checklist
Check this before you spend a euro on inventory. Free, on your screen straight away.
Get the checklist →