Cadastro Nacional da Pessoa Jurídica

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

Cadastro Nacional da Pessoa Jurídica (acrônimo: CNPJ) é um número único que identifica uma pessoa jurídica e outros tipos de arranjo jurídico sem personalidade jurídica (como condomínios, orgãos públicos, fundos)[1] junto à Receita Federal brasileira (órgão do Ministério da Fazenda). O CNPJ compreende as informações cadastrais das entidades de interesse das administrações tributárias da União, dos Estados, do Distrito Federal e dos Municípios[2] e é necessário para processar (Art. 15, da Lei 11.419/2006)[3]. O CNPJ veio substituir o CGC, Cadastro Geral de Contribuintes e por vezes também é grafado como CNPJ-MF.

O Cadastro funciona como uma identidade e nele estão informados:

  • Data de abertura,
  • Nome da empresa,
  • Título ou nome fantasia - se tiver,
  • Código e descrição da atividade econômica principal - o CNAE,
  • Código e descrição das atividades econômicas secundárias - se tiver,
  • Código e descrição da natureza jurídica,
  • Endereço e
  • Situação cadastral - Na consulta realizável na página da internet da Receita Federal.

Um número típico de CNPJ tem o formato: 03.847.655/0001-98 e 14.218.835/0001-27 onde os oito primeiros números formam a "raiz" - que identifica a empresa, os quatro seguintes formam o "sufixo" que identifica uma unidade de atuação de empresa, ou seja, um endereço de atividade da pessoa jurídica, e os dois últimos formam o "dígito verificador" que é resultado de uma equação com os doze números anteriores. Deste modo, o número acima exemplificado identifica a matriz da empresa.

O CNPJ deve estar informado em qualquer nota fiscal de qualquer empresa, bem como na embalagem de qualquer produto industrializado.

[editar] Validação

Algoritmo para a validação do CNPJ:

function ValidarCNPJ(cnpj: int[14]) -> bool
    var v: int[2]

    //Nota: Calcula o primeiro dígito de verificação.
    v[1] := 5×cnpj[1] + 4×cnpj[2]  + 3×cnpj[3]  + 2×cnpj[4]
    v[1] += 9×cnpj[5] + 8×cnpj[6]  + 7×cnpj[7]  + 6×cnpj[8]
    v[1] += 5×cnpj[9] + 4×cnpj[10] + 3×cnpj[11] + 2×cnpj[12]
    v[1] := 11 - v[1] mod 11
    v[1] := 0 if v[1] ≥ 10

    //Nota: Calcula o segundo dígito de verificação.
    v[2] := 6×cnpj[1] + 5×cnpj[2]  + 4×cnpj[3]  + 3×cnpj[4]
    v[2] += 2×cnpj[5] + 9×cnpj[6]  + 8×cnpj[7]  + 7×cnpj[8]
    v[2] += 6×cnpj[9] + 5×cnpj[10] + 4×cnpj[11] + 3×cnpj[12]
    v[2] += 2×cnpj[13]
    v[2] := 11 - v[2] mod 11
    v[2] := 0 if v[2] ≥ 10

    //Nota: Verdadeiro se os dígitos de verificação são os esperados.
    return v[1] = cnpj[13] and v[2] = cnpj[14]

Javascript String Prototype validação:

       String.prototype.isCNPJ = function() {  
       var b = [6,5,4,3,2,9,8,7,6,5,4,3,2], c = this;
       if((c = c.replace(/[^\d]/g,"").split("")).length != 14) return false;
       for (var i = 0, n = 0; i < 12; n += c[i] * b[++i]); 
       if(c[12] != (((n %= 11) < 2) ? 0 : 11 - n)) return false; 
       for (var i = 0, n = 0; i <= 12; n += c[i] * b[i++]); 
       if(c[13] != (((n %= 11) < 2) ? 0 : 11 - n)) return false; 
       return true; 
        }; 


c# validação:

       public static bool iscnpj(string cnpj)
       {
           int[] conj1 = new int[12] { 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };
           int[] conj2 = new int[13] { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 };
           int scale;
           int restante;
           string tudo;
           string cnpjtemporario;
           tudo = "";
           cnpj = cnpj.Trim();
           cnpj = cnpj.Replace(".", "").Replace("-", "").Replace("/", "");
           if (cnpj.Length != 14) return false;
           cnpjtemporario = cnpj.Substring(0, 12);
           scale = 0;
           for (int i = 0; i < 12; i++)
               scale += int.Parse(cnpjtemporario[i].ToString()) * conj1[i];
           restante = (scale % 11);
           if (restante < 2) restante = 0;
           else restante = 11 - restante;
           tudo = restante.ToString();
           cnpjtemporario = cnpjtemporario + tudo;
           scale = 0;
           for (int i = 0; i < 13; i++)
               scale += int.Parse(cnpjtemporario[i].ToString()) * conj2[i];
           restante = (scale % 11);
           if (restante < 2) restante = 0;
           else restante = 11 - restante;
           tudo = tudo + restante.ToString();
           return cnpj.EndsWith(tudo);
       }

[editar] Ver também

Wikcionário
O Wikcionário possui o verbete CNPJ

[editar] Ligações externas

Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Colaboração
Imprimir/exportar
Ferramentas
Noutras línguas