Oregional VIES API

EU VIES (VAT Information Exchange System) API connector

 

 

Business notes:

  • In Hungary it is important to be able prove to the TAX authority that you checked the EU VAT number validity of your EU customer/vendor before the issue of a customer invoice / acceptance of a vendor bill

  • You can create partners in the system from VIES data

  • Costs:

    • Source code:

    • Usage:

      • Free usage up to 40 active VAT number checks (you can archive/delete checks in order to stay on the free plan), another limitation is that the VAT check requester can only be the currently active company in Odoo

      • Monthly subscription removes usage limitations

VIES Services

Check VAT Number

The objective of this Internet site is to allow persons involved in the intra-Community supply of goods or of services to obtain confirmation of the validity of the VAT identification number of any specified person, in accordance to article 31 of Council Regulation (EC) No. 904/2010 of 7 October 2010.

The European Commission maintains this website to enhance the access by taxable persons making intra-Community supplies to verification of their customers' VAT identification numbers.

Our goal is to supply instantaneous and accurate information.

However the Commission accepts no responsibility or liability whatsoever with regard to the information obtained using this site.

This information:

  • is obtained from Member States' databases over which the Commission services have no control and for which the Commission assumes no responsibility; it is the responsibility of the Member States to keep their databases complete, accurate and up to date;

  • is not professional or legal advice (if you need specific advice, you should always consult a suitably qualified professional);

  • does not in itself give a right to exempt intra-Community supplies from Value Added Tax;

  • does not change any obligations imposed on taxable persons in relation to intra-Community supplies.

Usage: The countryCode input parameter must follow the pattern [A-Z]{2} The vatNumber input parameter must follow the pattern [0-9A-Za-z\+\*\.]{2,12}

In case of problems, the returned FaultString can take the following specific values:

  • INVALID_INPUT: The provided CountryCode is invalid or the VAT number is empty;

  • GLOBAL_MAX_CONCURRENT_REQ: Your Request for VAT validation has not been processed; the maximum number of concurrent requests has been reached. Please re-submit your request later or contact

TAXUD-VIESWEB@ec.europa.eu for further information": Your request cannot be processed due to high traffic on the web application. Please try again later;

  • MS_MAX_CONCURRENT_REQ: Your Request for VAT validation has not been processed; the maximum number of concurrent requests for this Member State has been reached. Please re-submit your request later or contact

TAXUD-VIESWEB@ec.europa.eu for further information": Your request cannot be processed due to high traffic towards the Member State you are trying to reach. Please try again later.

  • SERVICE_UNAVAILABLE: an error was encountered either at the network level or the Web application level, try again later;

  • MS_UNAVAILABLE: The application at the Member State is not replying or not available. Please refer to the Technical Information page to check the status of the requested Member State, try again later;

  • TIMEOUT: The application did not receive a reply within the allocated time period, try again later.

 

 

Test service

Here is the list of VAT Number to use to receive each kind of answer :
100 = Valid request with Valid VAT Number
200 = Valid request with an Invalid VAT Number
201 = Error : INVALID_INPUT
202 = Error : INVALID_REQUESTER_INFO
300 = Error : SERVICE_UNAVAILABLE
301 = Error : MS_UNAVAILABLE
302 = Error : TIMEOUT
400 = Error : VAT_BLOCKED
401 = Error : IP_BLOCKED
500 = Error : GLOBAL_MAX_CONCURRENT_REQ
501 = Error : GLOBAL_MAX_CONCURRENT_REQ_TIME
600 = Error : MS_MAX_CONCURRENT_REQ
601 = Error : MS_MAX_CONCURRENT_REQ_TIME

For all the other cases, The web service will responds with a "SERVICE_UNAVAILABLE" error.

Check status

# Sample response {"vow": {"available": true}, "countries": [ {"countryCode": "AT", "availability": "Available"}, {"countryCode": "BE", "availability": "Available"}, {"countryCode": "BG", "availability": "Available"}, {"countryCode": "CY", "availability": "Available"}, {"countryCode": "CZ", "availability": "Available"}, {"countryCode": "DE", "availability": "Available"}, {"countryCode": "DK", "availability": "Available"}, {"countryCode": "EE", "availability": "Available"}, {"countryCode": "EL", "availability": "Available"}, {"countryCode": "ES", "availability": "Available"}, {"countryCode": "FI", "availability": "Available"}, {"countryCode": "FR", "availability": "Available"}, {"countryCode": "HR", "availability": "Available"}, {"countryCode": "HU", "availability": "Available"}, {"countryCode": "IE", "availability": "Available"}, {"countryCode": "IT", "availability": "Available"}, {"countryCode": "LT", "availability": "Available"}, {"countryCode": "LU", "availability": "Available"}, {"countryCode": "LV", "availability": "Available"}, {"countryCode": "MT", "availability": "Available"}, {"countryCode": "NL", "availability": "Available"}, {"countryCode": "PL", "availability": "Available"}, {"countryCode": "PT", "availability": "Available"}, {"countryCode": "RO", "availability": "Available"}, {"countryCode": "SE", "availability": "Available"}, {"countryCode": "SI", "availability": "Available"}, {"countryCode": "SK", "availability": "Available"}, {"countryCode": "XI", "availability": "Available"} ] }

 

Odoo VIES

Oregional VIES

SOAP implementation, library: https://github.com/arthurdejong/python-stdnum

REST implementation written from scratch

You need to buy credit at Odoo to query

One time fee per Odoo version (eg: 16.0, 17.0, etc), limited free usage, unlimited usage through paid subscription

You can not provide the requester's VAT

You can provide requester VAT

Create partner from VIES

Create and update partner from VIES

No check during invoicing

Check VIES during invoicing

No VIES query history

Complete VIES query history

No report

Stored report with PDF printout for audit purposes

No mass query

Mass query partners and account moves

No scheduled query

Run scheduled queries

No API call logging

All API calls are logged