12

What's the best workflow to validate VAT? Currently,we're only using VIES and relative SOAP, but it seems not to be working all that well, as it fails my own VAT number and few others that I know are correct.

I'm open to third party, paid services as long as they offer a good standard of reliability.

Ben
  • 51,770
  • 36
  • 127
  • 149
Terataz
  • 185
  • 2
  • 2
  • 8
  • Does your VAT number validate if you use the [VIES form](http://ec.europa.eu/taxation_customs/vies/)? – stukelly May 09 '11 at 23:05
  • 1
    no it does not. It appear the system won't validate personal (self-employed) vat. Company vat are working fine. – Terataz May 10 '11 at 16:03
  • Use please my lib: https://github.com/se-panfilov/jsvat (it double-check VAT - by regexp and math calculation) – S Panfilov Nov 24 '15 at 20:27
  • @SergeiPanfilov Have you created an Angular 2+ version of your library? Any plans to make it available via NPM? – Kyle Barnes Apr 26 '19 at 23:05
  • @KyleBarnes Hi. it's already available via npm: `npm i jsvat`. There is no need to create Angular 2 version, cause it's framework agnostic and can be used with any framework – S Panfilov Apr 27 '19 at 07:53

2 Answers2

17

The term "Validate VAT" could mean the following two things:

  1. Check VAT number for syntactical correctness - this means that the number follows the rules for the VAT number in the given EU member state. The rules for GB (United Kingdom) VAT numbers are different than the rules for DE (Germany) VAT numbers. Here you can check the format: http://ec.europa.eu/taxation_customs/vies/faqvies.do#item_11. This check can only tell you that the given VAT is correct but can't check if it belongs to an actual company;
  2. Check the VAT number in the VIES system - this means calling the official web service: http://ec.europa.eu/taxation_customs/vies/faqvies.do#item_18. If the check of know valid number fails you should contact your tax administration: http://ec.europa.eu/taxation_customs/vies/faqvies.do#item_12. This is the only "official" way to check if given VAT number is actually connected to a company;
  3. Important point: see the http://ec.europa.eu/taxation_customs/vies/faqvies.do#item_23. There is no single database (system) that contains all the valid and associated to companies VAT numbers. The VIES system is distributed system. Each member state (country) maintains a register of their own VAT numbers. The VIES web service queries (actually sends a "message" to the particular member state system) with a request for checking the VAT validity state.

You can also check these resources. They could contain useful information:

zloster
  • 1,149
  • 11
  • 26
  • It appears that not all VAT are by default in the VIES database for privacy reason. A request has to be made at the time of opening the VAT. This process differ from state to state. – Terataz Jun 29 '11 at 18:01
  • Also can use https://github.com/se-panfilov/jsvat for it - it's based on braemoor's lib, but rewrite with modern standarts and tests, and also addede to bower and npm – S Panfilov Feb 18 '16 at 04:22
0

https://github.com/viruschidai/validate-vat is a node.js lib that calls the official soap service(http://ec.europa.eu/taxation_customs/vies/faqvies.do#item16) if you are running node.js.