Validar um Número de Contribuinte (NIF)

Marcas Technorati: ,,,

Mudámos de casa – visitem o novo site em www.istomesmo.com

Hoje vou começar uma nova categoria de artigos, denominada de utilidades. O objectivo desta categoria será fornecer pequenas funções que nos possam ajudar no desenvolvimento de aplicações.

Neste artigo vou demonstrar como podemos efectuar a validação de um número de contribuinte.

O número de contribuinte é constituído por 9 algarismos, dos quais o último é um algarismo de validação, uma espécie de checksum. A função que vamos desenvolver hoje efectua estas duas validações (9 algarismos e CheckBit).

Em C#, a função de validação é a seguinte:

/// <summary>
/// Validates a NIF (Número de Identificação Fiscal)
/// </summary>
/// <param name=”nif”></param>
/// <returns></returns>
public static bool IsValidNIF(string nif)
{
//Check if is numeric and if has 9 numbers
if (Utils.IsNumeric(nif) && nif.Length == 9)
{
//Get the first number of NIF
char c = nif[0];

//Check firt number is (1, 2, 5, 6, 8 or 9)
if (c.Equals(‘1’) || c.Equals(‘2’) || c.Equals(‘5’) || c.Equals(‘6’) || c.Equals(‘8’) || c.Equals(‘9’))
{
//Perform CheckDigit calculations
int checkDigit = (Convert.ToInt32(c.ToString()) * 9);
for (int i = 2; i <= 8; i++)
{
checkDigit += Convert.ToInt32(nif[i – 1].ToString()) * (10 – i);
}
checkDigit = 11 – (checkDigit % 11);

//if checkDigit is higher than ten set it to zero
if (checkDigit >= 10) checkDigit = 0;

//Compare checkDigit with the last number of NIF
//If equal the NIF is Valid.
if (checkDigit.ToString() == nif[8].ToString()) return true;
}
}
return false;
}
}

//###Class Utils###

/// <summary>
/// Test if a String is Numeric
/// </summary>
/// <param name=”inputString”></param>
/// <returns></returns>
public static bool IsNumeric(string inputString)
{
return Regex.IsMatch(inputString, “^[0-9]+$”);
}

Esta função é usada para efectuar a validação no codebehind. Para efectuarmos a validação com a ajuda dos validators do ASP.NET usamos a mesma função mas em javascript:

function IsValidNIF(nif)
{
var c;
var checkDigit = 0;
//Check if is not null, is numeric and if has 9 numbers
if(nif != null && IsNumeric(nif) && nif.length == 9)
{
//Get the first number of NIF
c = nif.charAt(0);
//Check firt number is (1, 2, 5, 6, 8 or 9)
if(c == ‘1’ || c == ‘2’ || c == ‘5’ || c == ‘6’ || c == ‘8’ || c == ‘9’)
{
//Perform CheckDigit calculations
checkDigit = c * 9;
var i = 0;
for(i = 2; i <= 8; i++)
{
checkDigit += nif.charAt(i-1) * (10-i);
}
checkDigit = 11 – (checkDigit % 11);
//if checkDigit is higher than ten set it to zero
if(checkDigit >= 10)
checkDigit = 0;
//Compare checkDigit with the last number of NIF
//If equal the NIF is Valid.
if(checkDigit == nif.charAt(8))
return true;
}
}
return false;
}

function IsNumeric(ObjVal)
{
return /^\d+$/.test(ObjVal);
}

image

No link seguinte podem efectuar o download de um pequeno projecto, onde podem testar estas duas funções. :)

http://www.megaupload.com/?d=7Q1VXMNV

Qualquer dúvida, deixem um comentário, terei todo o prazer em ajudar.

25 Respostas

  1. I heve been here in Portugal for 3 yaers ago and benn back . I have my ex number it was 1911121924, I am living in Sitio dos Pinheiros CX.Postal 122 Z Loule, with a friend of my , I woul;d like to know if I need a new contribuinte number or another one. tanks. Martin

  2. Have I to go in de Financas house or can I wait for the number at home?

  3. perdi o meu número de contribuinte.
    ha alguma forma de o saber sem ter de tirar um novo cartao?
    obrigada

  4. perdi o meu cartao de contribuinte ha alguma forma de o adquirir sem ter que ir as finanças

  5. A todas as pessoas que perderam o número de contribuinte, podem solicitar uma segunda via através do portal do cidadão:

    http://www.portaldocidadao.pt/PORTAL/pt/Dossiers/DOS_perdi+os+meus+documentos.htm?passo=2

    No site indicado em cima dispõem de todas as informações necessárias.

  6. saber se este e o meu numero de cotribuinte

  7. saber se este nunero e o meu 212616358

  8. resido no estrangeiro e queria adquirir o cartao contribuint via internet .nao sei se e possivel?
    obrigado

  9. Precisava de obter, pela primeira vez, o meu cartao de contribuinte.
    Nao me encontro em Portugal, mas na Colombia.
    Como posso fazer para obte-lo?

    Muito agradeceria a sua orientaçao.
    Com atenciosos cumprimentos

    Beatriz de Pérez

  10. Realmente… estes comentários tem tudo a ver com o post lol
    Sei que também há rotinas para validação do NISS, BI, cartoes de credito, etc…

  11. Perdi a noção do tempo e hoje reparei que o meu cartão de contribuinte expirou em 2005!!Devo derigir-me a uma repartição de finanças ou posso validar on-line?

  12. perdi o meu numero de contribuinte mas como vivo no estrangueiro gostava de saber como posso obter um novo?tenho um filho e gostava de obter o numero de contribuinte tb para ele, como o posso fazer e sera q e possivel via net??? obrigado

  13. qual é a morada que esta no NIF?NIF-140997180

  14. Mas de onde apareceram estas pessoas a fazer estas perguntas?
    ???

  15. fiz meu contribuinte no dia 17/05/08 e ate a presente data nao chegou e o documento que tenho nao é mais valido, o que devo fazer? com os melhores cumprimentos aguardo vossa resposta

  16. COMO POSSO OBETER O MEU NUMARO DE CONTRIBUINTE MAS RESIDO NO ESTRANGEIRO JA TIVE MAS PERDI O MESMO CARTAO QUE PASSOS TENHO QUE SEGUIR

  17. perdi o meu número de contribuinte.
    ha alguma forma de o saber sem ter de tirar um novo cartao?
    obrigada

  18. resido no estranjeiro e gostaria de saber se me podem informar a morada actual de um irmão Antonio Maria xavier Leite Negrão, que vive em portugal cuja ultima morada que tinha era Rua Antero de Quental, 160 1º Dto Porto, casado com a sra. maria fernanda de carvalho pinto negrao e cujos nrs. de contribuintes eram respectivamente 107153157 e
    107153190

  19. por favor preciso lembrar numero do meu contribuinte

  20. não tenho numero de contribuinte mas presiso preencher uma ficha que esta pedindo,o que posso fazer para por um numero.obrigada presiso de uma resposta urgente.

  21. obrigado pelo artigo e pelo código também

  22. Olá bom dia..perdi o meu número de contribuinte, gostava de saber como pedir uma segunda via por net porque nao me encontro no país e necessito dele.
    Obrigado

  23. HI ,COMO FACO PARA PEDIR MEU NUMERO DE CONTRIBUITE PELA PRIMEIRA VEZ EM PORTUGAL.
    GANHEI A NACIONALIDADE PORTUGUESA NO MEU PAIS.
    NUNCA VIVI EM PORTUGAL……O QUE DEVO FAZER? MEU BI SE CADOCOU E PRECISO PEDIR O CARTAO DO CIDADAO.

    THANKS,ELSA

Deixar uma resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

WordPress.com Logo

Está a comentar usando a sua conta WordPress.com Log Out / Modificar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Log Out / Modificar )

Facebook photo

Está a comentar usando a sua conta Facebook Log Out / Modificar )

Google+ photo

Está a comentar usando a sua conta Google+ Log Out / Modificar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

%d bloggers like this: