B2B Module with VIES Validation & EU VAT Exemption for PrestaShop
Turn your PrestaShop into a full-featured B2B platform: validated company registration, real-time VIES VAT check, private shop and intra-EU VAT exemption.
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.
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:
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.
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.
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.
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.
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.
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.
Turn your PrestaShop into a full-featured B2B platform: validated company registration, real-time VIES VAT check, private shop and intra-EU VAT exemption.
A customer in Lisbon and one in Madrid should not see the same price, and today they do. Here is how each visitor sees…
A PDF in the footer no longer complies. You need a button, a form and an acknowledgement with date and time. What the…
No images to solve, no third-party cookies and no extra line in your privacy policy. What a shop gains by changing…