All 27 Member States in the European Union communicate with the VAT Information Exchange System, or VIES, to frame a central endpoint where suppliers can verify the VAT number of their customer in another Member State. Only businesses registered for VAT will have such a VAT number, end-consumers will not.

An incoming request is sent to the relevant national database through a secure connection to check if the given number is recorded there. This check happens in real-time so that suppliers can immediately determine whether a business exists. As a consequence, there is no central VIES database. Each Member State administration is responsible for keeping its records updated and accurate and make the data available through VIES.

Depending on the national rules on data protection, some Member States will also provide the name and address linked to the given VAT number as they are recorded in the national databases. Germany and Spain, for example, do not reveal the name and address.

VIES is the only place where you can obtain and validate information because individual Member States do not offer access to their databases directly. Any service that claims it does is misleading.

Who Needs to Check VAT With VIES

In most transactions, suppliers act as a middleman by collecting VAT from the buyer and passing it on to the government. A reverse-charge mechanism was designed with the single market in 1993 to simplify VAT reporting across the 27 Member States.

The responsibility for paying VAT under the reverse-charge mechanism reverses from the supplier back to the buyer. The supplier is no longer obligated to register for VAT in the place of supply (where the buyer normally resides). This is a material ease of burden considering the number of Member States involved.

The buyer makes the declaration of both the purchase (input VAT) and the supplier’s sale (output VAT) in the VAT return. By doing so, these two entries cancel each other out.

Here is where VIES comes into play. Businesses generally do not pay VAT and governments want to be sure that they’re not missing out on VAT amounts due to fraudulent claims. Since January 1, 2020, the use of a valid VAT number is a substantive requirement for applying the zero VAT rate. As a supplier, you have to establish means to ascertain the validity of a business customer. You will need to have proof that a customer has actively communicated the VAT number to you. It is not enough to discover the number yourself on the internet. In practice, you would offer customers an input field for the VAT number during checkout.

VIES also generates an official consultation number in a validation request. The consultation number is a piece of evidence given by VIES to prove that you have validated a given VAT number on a given date. You can keep the evidence as additional layer of proof.

Where to Access the VIES API

To perform VAT number validations through the VIES API, you can use their SOAP service. It is publicly accessible and does not require prior registration. You send your XML request to a WSDL endpoint according to the technical information on the official VIES website.

You should know that VIES monitors its incoming requests for suspicious activity and may from time to time block IP addresses. This has already happened to free validation services that were mere proxies to VIES and relying on them can be detrimental to automated systems.

VAT Check API in JSON Format

Vatstack uses a robust caching mechanism to prevent duplicate requests from being sent to VIES. We requested to whitelist our IP address with VIES in the unexpected event that suspicious activity is caught.

It’s worth mentioning that Vatstack is not a proxy as validations are part of a broader end-to-end VAT API. Customers who validate tens of thousands of VAT numbers at a time never experienced an issue. Consultation numbers assigned by VIES are included with each response.

Should national databases experience a temporary downtime, Vatstack puts unsuccessful validation requests on a re-validation cycle.

Requests with the error code SERVICE_UNAVAILABLE or MS_UNAVAILABLE are accepted by our endpoint with the status code 202 and re-validated periodically. Our API reference for the validations endpoint has more detailed information.

Once a result has been obtained from VIES, it can be forwarded to your system via webhook events. This eliminates the need for manual retries altogether.

In addition to VIES, we also validate business identification numbers with various government services including Australia, Norway and Switzerland.