Validating EU VAT numbers against VIES without blocking signups

PrestaShop modules · 4 min read · Updated on 17/08/2026

Validating EU VAT numbers against VIES without blocking signups

A new customer from Italy writes: «we are a company, please invoice us without VAT». And you sit there looking at the screen wondering whether that is true, whether you can take their word for it, and what happens if it turns out you should not have.

That doubt has an official, free answer, and it takes three seconds to settle. The thing is that hardly anyone checks it at the right moment.

What this EU VAT number thing is

To sell VAT-free to a company in another EU country, that company has to be listed in a European register of traders. The European Commission runs a public lookup, called VIES, that answers one single question: is this number registered or not?

Yes or no. Nothing else. And it is worth knowing what it does not tell you:

  • It does not tell you whether the company is doing well, pays its bills or will still be trading tomorrow.
  • It does not tell you that whoever is filling in the form actually works there.
  • And above all, it is not the same as the everyday tax number. A company can have a perfectly valid national number and still not be registered to trade with the rest of Europe, because that is a separate procedure they have to apply for.

That last point is by far the one that generates the most questions for us. The customer swears their number is right —and it is— but it is not valid for what they want to do. It is not your shop failing.

Check it at signup, not at payment

The logical thing seems to be checking at the end, when the invoice is issued. We do it at the start, when the customer registers, for two very down-to-earth reasons.

The first: a customer who gets a red error while they are paying leaves. Whereas while they are filling in the signup form they have time, they have their paperwork to hand and, if something does not add up, they write to you.

The second: that way, when the request reaches you for approval it already comes with that checked. No going to an official website to copy and paste numbers: you have it in front of you, with the date and time it was looked up.

Checking it at signup turns a tax headache into a two-second commercial decision.

The detail almost nobody accounts for: sometimes it does not answer

This is what separates a shop that has actually been running from one that was thrown together. The European lookup does not always answer: each country keeps its own register, and when one country's register is under maintenance or overloaded, the answer is neither «yes» nor «no», it is «I cannot answer right now».

And there is the classic mistake: treating that «I cannot answer» as if it were a «no». In other words, rejecting a legitimate customer because a server in another country is having a bad day.

Our rule is simple: no answer does not mean fake. The signup is left pending with that flag, you see it and you decide. What we never do is wave through something that could not be checked, or turn somebody away over a breakdown that is not theirs.

And it gets stored, which is the boring part

Every check is stored with its date, its time and what the European register replied, tied to that customer. It sounds like overkill until the day your accountant asks why in March you issued a VAT-free invoice to a company whose number is no longer listed today.

With the record kept, the answer is to show them that day's lookup. Without it, the answer is «I remember it was fine», which does not count as an answer.

Beyond that, it does not matter how the customer types the number: with spaces, with dashes, with the country prefix or without it. That gets tidied up automatically before the lookup — the customer has enough on their plate remembering the number.

Checking is the first step, not the last

A valid number does not mean that order goes out VAT-free. It also depends on where you ship the goods, and that is where most shops get it wrong: we cover it in when you can invoice without VAT and when you cannot.

The check comes with the module

Validation against the European register, storing every lookup with its date and the per-customer history all live in the same module as the professional signup and the VAT exemption. One installation, and it stops being something somebody has to remember to check.

Modules featured in this article

Keep reading

B2B Module with VIES Validation & EU VAT Exemption for PrestaShop B2B Module with VIES Validation & EU VAT Exemption for PrestaShop $259.99 View

Turn your ecommerce into your best salesperson

Ready to boost your PrestaShop store? Let's discuss your project and create something amazing together.

Contact us now