Every company across the UK (and indeed across the EU and many other countries) which are liable for VAT are required to have a VAT number. These numbers are generally 11 digits, beginning with “GB”, and ending with 7 numerical digits. This hub is aimed at those of us who need to use these numbers, and need to know how to check that they are valid.
What does Valid Mean?
I consider there to be two meanings of valid in this context:
- A genuine number assigned to a company by the tax authorities can be considered a valid VAT number
- The number itself is “coded” in such a way, that you can mathematically check whether it is a valid number
This hub is aimed at providing details on how the latter definition of valid is achieved.
A Coded VAT Number
As mentioned above, a typical UK VAT code will be 11 digits, such as GB337440071 (a random VAT code found on the internet belonging to a company in Bury, UK). It’s sometimes displayed with spaces between particular positions, but from a validity perspective, this is irrelevant. Breaking this down into its component parts, the number is:
- 2 alpha characters representing the country of origin, i.e. GB
- 7 numerical digits representing the tax ID of the company, i.e. 3374400
- 2 final numerical digits representing the check digits, i.e. 71
The final 2 digits, the check digits, are coded using an algorithm called modulus 97 or modulus 9755 depending on when the VAT number was issued.
So we’ll start by looking at the original method (pre 2010) of generating or checking the check digit. This method begins by using the 7 digit ID provided by the tax system, in the example 3374400, and then multiplying each individual digit by a specific number. The first digit is multiplied by 8, the second digit by 7, the third by 6 and so on to the seventh digit which is multiplied by 2. For example:
3 x 8 = 24
3 x 7 = 21
7 x 6 = 42
4 x 5 = 20
4 x 4 = 16
0 x 3 = 0
0 x 2 = 0
Each of the results of the multiplications are then added together to make a sum, in this case 123. After this, we simply subtract 97 from this number, and repeat if necessary, until we get to zero or a negative number. E.g. 123 – 97 = 26 (positive number therefore repeat). 26 – 97 = -71 (negative number, stop here).
Once we have a negative number, we make this positive (i.e. 71), and that becomes the check digits. We therefore know that the example VAT code, GB337440071 is valid.
Around 2009-2010, the tax authorities in the UK began running out of VAT codes for new companies, and so began issuing a new round of numbers, changing the method to calculate the check digits, known as Modulus 9755.
For this method, you perform the same steps as before, and then once you have your sum total, you add 55. After this, perform the subtraction of 97 step as before, until you hit a zero or negative number. Use the positive version of this number as the check digits as before.
Once you’ve done the calculations above you should be able to tell whether a VAT number is valid or invalid. If you have many to check, it’s probably worthwhile writing some sort of macro in Excel to do the calculations for you, I’ll try to write a hub showing this code sometime soon. As mentioned earlier, this simply checks the validity of the format of the number, not if it’s actually a current VAT number assigned to a company in the UK. To check this, you can use the following website, however here you can only check one at a time: http://ec.europa.eu/taxation_customs/vies/
I hope this is useful in helping understanding of the modulus 97 and 9755 algorithms in UK VAT codes!