WHMCS Automatic and Scheduled VIES Checks for EU Clients

Back   Posted on 1 september 2018 / Updated on 9 march 2021
Reading time 6 minutes

What is VIES?

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.

How does VIES work?

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
Italy Italy Same country Yes Yes B2B Yes
Italy Italy Same country Yes No B2B Yes
Italy Italy Same country No No B2C Yes
Germany Italy Intra-EU Yes Yes B2B No
Germany Italy Intra-EU Yes No B2C Yes
Germany Italy Intra-EU No No B2C Yes
United States Italy Extra-EU - - B2C No
United States Italy Extra-EU - - B2C No
United States Italy Extra-EU - - B2C No

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.

VIES is Always Right

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.

Number Description

Background color changes depending on VIES response:

  • Green for clients registered on the VIES
  • Orange for clients not registered on the VIES
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:

  • Green check for clients registered on the VIES
  • Orange triangle sign for clients not registered on the VIES
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.

VAT number format

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:

  • IT01230456078
  • 01230456078
  • IT-01230456078
  • IT 01230456078

VIES Unavailability Shifts

Keep in mind that the VIES relyes on Member State's database that may be unavailable for maintenance. You can visit the Self Monitoring for more details.

Comments (0)

Speak Your Mind Cancel Reply