WHMCS Automatic and Scheduled VIES Checks for EU Clients
The VIES (VAT Information Exchange System) is a webservice provided by European Commission from which is possible to verify the validity of a VAT number issued by any Member State.
If your business is in the EU, you need to use the VIES for determining the tax rate to apply to each customer based on provided VAT numbers. If your company doesn't have to charge tax (eg. sole proprietorship) you can avoid using the VIES.
Please, take what follows with a grain of salt as rules differ from country to country and there are plenty of exceptions within the same country. Consult your legal and accounting advisor before engaging in any transaction with the VIES.
Before we start, understand the following:
- Home country is the country where the company is located
- Intra-EU refers to all transactions occurring within the EU
- Extra-EU refers to transactions with all countries outside the EU
Just to be clear, in our specific case Italy would be our "home country". Germany, France, Spain etc. are Intra-EU. United States, Canada, Australia are Extra-EU. Another concept to be aware of, is the difference between B2B and B2C:
- B2B stands for "business to business"
- B2C stands for "business to customers"
When using the VIES, the difference between B2B and B2C assumes a quite different meaning. Simply put, a "business" is a company with a valid VAT number that is also registered on the VIES.
All other operations fall into the B2C category without ifs and buts. This includes individuals, organizations with no VAT number and companies that are not registered on the VIES even if they have a valid VAT number.
The table below summarizes all possible scenarios involving the VIES, tax exempt status and collectability. In the following example we assume to have a company based in Italy which is in the EU.
|Client's country||Your country||Operation||VAT number||VIES registration||Type||Charge Tax|
It is worth to say that when it comes to charge taxes, there are two different school of thought:
- Ones that charge home country tax rate
- Ones that charge tax where the customer is based
It depends on MOSS scheme but we're not in here to provide any legal and accounting advice. Please, consult your legal and accounting advisor.
It is worth spending a few words about Intra-EU companies with valid VAT numbers not registered on the VIES. As you now know, you should treat them as B2C transactions and charge tax, no matter what they say.
In fact, many times such customers complain about the fact that you're charging tax even if they have a valid VAT number. The thing is they also need to register on the VIES that is free and can be done by their accountants.
Don't be tempted to mark them as "tax exempt" just because they're asking as this would produce a billing error.
Another important thing to be aware of, is that VIES response can change overtime. A customer verified as a company could lose this status as businesses conditions change continually.
Everyday people start new businesses, companies can be acquired, closed or relocate to other countries. Such changes reflect on the VIES therefore it's absolutely normal that you see things like the following ones (click to enlarge).
What you see here is the in-built system of the Billing Extension to detect invoicing mistakes in WHMCS. Get familiar with this tool as it is very useful to tackle a wide variety of problems. It's accessible from Addons > Billing Extension > Warnings.
Only in recent years WHMCS integrated VIES in their system but as we say in tweaks & optimizations for WHMCS billing, it can't be trusted for a number of reasons.
The good news is that the VIES integrated in our module is bullet proof. It can be enabled and configured from Addons > Billing Extension > Settings > VIES. Below you can see a preview (click to enlarge).
Unlike WHMCS, Billing Extension verifies the validity of VAT numbers in multiple occasions to ensure accuracy and consistency of invoices. More in particular the check is performed when:
- Customers register on your website
- VAT number or country is updated by customers or admins
- Administrators perform manual checks
- Automatically when VIES data is too old
As we previously seen, the module logs data changes in the in-built system that accessible from Addons > Billing Extension > Warnings.
VIES response is part of invoice snapshot meaning that VAT number, tax exempt status and VIES details are fixed to that in use at the time invoice or credit note was issued. It's the same principle used for historical currency rates.
That's why tax exempt status visible on invoice could differ form the one you see on client's profile. For the same reason the VIES check can be performed on specific invoices.
Similarly, tax exempt status can be altered from the following dropdown accessible from invoice snapshots.
Billing Extension adds a panel at the top-right corner of client's summary. Below we posted an animated gif that shows how easily administrators can perform checks on the VIES. All details come from VIES database.
European Commission recommends not to check the same VAT number more than 5 times per day. Billing Extension informs you when you're approaching this limit but still allow to perform more checks as this is a "soft limit". Let's analyze every part of the panel.
Background color changes depending on VIES response:
|2||The flag changes depending on intra/extra EU status. For extra-EU customers European flag is grayed out|
|3||The flag corresponds to client's country|
|4||Client's VAT number prefixed with two-letter country code (ISO 3166-1 alpha-2)|
The icon changes depending on VIES response:
|6||Click to check VAT number on click|
|7||Daily checks against recommended limit|
Customers verified as "businesses" have a briefcase icon. Follows tax exempt status that can be manually turned on/off on click. Moreover it is also possible to lock it by pressing padlock icon below.
|9||Whenever a VAT number is checked, the VIES responds providing full details about business name and address. Don't worry if such values don't reflect the ones provided by customers.|
This was for WHMCS backend, but VIES can be displayed also to your customers in clientarea. Here's another animated gif that shows how it works.
Optionally, you can include VIES details directly on invoice PDF files. This could be very useful for both customers and accountants. Below we provide two examples to show the differences between a valid VAT number and an invalid one.
For a number of good reasons, we don't rely on WHMCS Tax ID to store VAT numbers. You have to create a client custom field instead from Setup > Custom Client Fields with Show on Order Form and Show on Invoice enabled.
Do not turn on Required Field as individuals and extra-EU customers are not supposed to provide a VAT number.
Don't worry about anything. Billing Extension normalizes all VAT numbers so that the VIES can successfully "read" them. More in particular all the following formats are equally accepted and can be used simultaneously:
- IT 01230456078