Unique Tax Reference Number

Jeremy Hilton made this Freedom of Information request to HM Revenue and Customs

This request has been closed to new correspondence from the public body. Contact us if you think it ought be re-opened.

The request was partially successful.

Dear HM Revenue and Customs,

I have a number of questions about the format of the 10-digit "Unique Taxpayer Reference" number (UTR).

1. Are there any restrictions in the possible numerals that can make up each digit of the UTR? (E.g. that the first digit can be only a numeral from 1–4, etc.) And if so—what are these restrictions?

2. Are any of the 10 digits of the UTR a "check digit"?

And if so—

3. Which digit is the check digit?

4. What is the formula for calculating the check digit from the other digits of the UTR?

Finally—

5. Is the format of the UTR (in the sense of possible numerals for each digit, check digits, etc.) the same for companies and individuals, or are there differences? And if so—what are these differences?

6. Is it possible to distinguish a UTR issued to a company from a UTR issued to an individual, by inspecting the UTR? And if so—how would you do this?

Yours faithfully,

Jeremy Hilton

HM Revenue and Customs

Dear Mr Hilton,

Thank you for your communication of 16^th September 2013, please note that
this is being dealt with under FOI 2520/13 and the response will be with
you in due course.

HMRC

Freedom of Information Team

The information in this e-mail and any attachments is confidential and may
be subject to legal professional privilege. Unless you are the intended
recipient or his/her representative you are not authorised to, and must
not, read, copy, distribute, use or retain this message or any part of it.
If you are not the intended recipient, please notify the sender
immediately.

 

HM Revenue & Customs computer systems will be monitored and communications
carried on them recorded, to secure the effective operation of the system
and for lawful purposes.

 

The Commissioners for HM Revenue and Customs are not liable for any
personal views of the sender.

 

This e-mail may have been intercepted and its information altered.

show quoted sections

Communications via the GSi may be automatically logged, monitored and/or
recorded for legal purposes.

Dear HM Revenue and Customs,

By law this FOI request should have been answered within 20 working days, which have now passed.

Could you please explain why I have not got a reply, and let me know when I can expect one?

Yours faithfully,
Jeremy Hilton

HM Revenue and Customs

1 Attachment

FOI 2520/13

Mr Hilton

Please find the response to your Freedom of Information request attached.

HMRC

Freedom of Information Team.

<<2520-13 Hilton.pdf>>

The information in this e-mail and any attachments is confidential and may
be subject to legal professional privilege. Unless you are the intended
recipient or his/her representative you are not authorised to, and must
not, read, copy, distribute, use or retain this message or any part of it.
If you are not the intended recipient, please notify the sender
immediately.

 

HM Revenue & Customs computer systems will be monitored and communications
carried on them recorded, to secure the effective operation of the system
and for lawful purposes.

 

The Commissioners for HM Revenue and Customs are not liable for any
personal views of the sender.

 

This e-mail may have been intercepted and its information altered.

show quoted sections

Communications via the GSi may be automatically logged, monitored and/or
recorded for legal purposes.

Dear Mrs Beckett,

Thanks for your reply.

Although on the face of it you've refused to provide the information requested, the "Self Assessment reference checker" (which I was not aware of) provides the majority of the information I asked for. It makes quite clear, for example, that the format is 10 numerals followed by a "K". I'm surprised you didn't mention that in your reply, as you could have afforded to be much more positive about it.

It also so happens that the purpose of my request was in fact to check the validity of a UTR, and thus the link is very useful for me.

Therefore thank you again, although it's a shame you had to take so long to reply.

Yours sincerely,
Jeremy Hilton

Jeremy Hilton left an annotation ()

The "Self Assessment reference checker" <http://www.hmrc.gov.uk/tools/payinghmrc/...> makes clear that:

> The reference number is made up of 11 characters, for example: 1234567890K.

And the publicly available source code <http://www.hmrc.gov.uk/tools/toolsjslib/...> shows that the check-digit algorithm is as follows:

function getReference()
{
var refno = document.refConv.elements[0].value + "K"
var mod11 = 11
weighting = new Array(11) // ignore char pos 0 and 10
weighting[0] = 0; weighting[1] = 6; weighting[2] = 7; weighting[3] = 8; weighting[4] = 9
weighting[5] = 10; weighting[6] = 5; weighting[7] = 4; weighting[8] = 3; weighting[9] = 2; weighting[10] = 0
checkDigits = new Array(11)
checkDigits[0] = 2; checkDigits[1] = 1; checkDigits[2] = 9; checkDigits[3] = 8
checkDigits[4] = 7; checkDigits[5] = 6; checkDigits[6] = 5; checkDigits[7] = 4
checkDigits[8] = 3; checkDigits[9] = 2; checkDigits[10] = 1
var msgTxt = ""
reg = /\d{10}K/
var refno = refno.toUpperCase()
error_count = 0
if (reg.test(refno) == false) {
//alert("SA Reference format invalid. The eleventh character is always 'K' and characters 1-10 are always numeric")
error_count = error_count + 1
}
else {
var total = 0
for (var i = 0; i < 10; i++) { // chars 1 and 10 ignored as per rules - zero values should account
hold = "" + refno.substring(i, i + 1); total = total + hold * weighting[i]
}
var remainder = total%mod11
if(checkDigits[remainder] == refno.substring(0,1)) {
//alert("SA Reference is correct")
error_count = 0
}
else {
//alert("SA Reference format invalid. Calculated check digit does not match actual check digit " + refno.substring(0,1))
error_count = error_count + 1
}
}
if (error_count == 0) {alert("Your Reference number is correct.")}
else {
var response = confirm("The reference number is incorrect. Press 'OK' for help or 'Cancel' to try again.")
if (response) {window.location="/tools/payinghmrc/help/sa-help.htm"}
}

}

/******************/
function clearForm()
/*******************

File clearForm.jsm
Copyright Crown Copyright 2001

Date Author Changes
04-Jan-01 Chris Lowe Created

Purpose:
To clear values from form fields.

Strategy:
1. On clicking a button:
2. Reset field values to null

Input:
none

Output:
none
--------------------------------------------------------------------- */
{

document.refConv.elements[0].value = "" // clear values

return
}

Jeremy Hilton left an annotation ()

I also must point out the absurd lengths to which "Chris Lowe" documented the function "clearForm", which—from the name of the function—has an obvious purpose and method. And at the same time, absolutely no effort was made to document the much more complex function above!