Validar um CNPJ é uma tarefa essencial para sistemas que lidam com cadastros de empresas, emissão de notas fiscais, contratos e outros processos que exigem conformidade com os dados da Receita Federal. Neste artigo, você aprenderá como criar um validador de CNPJ utilizando PHP, implementando a lógica correta para checagem dos dígitos verificadores e garantindo que o número informado tenha estrutura válida.
Por que validar um CNPJ?
O CNPJ (Cadastro Nacional da Pessoa Jurídica) é o número que identifica uma empresa legalmente no Brasil. No entanto, não basta que o número tenha 14 dígitos. É necessário validar sua composição através de um cálculo matemático específico que envolve os dois últimos dígitos do número: os chamados dígitos verificadores.
Essa verificação é fundamental para:
- Impedir cadastros incorretos ou fraudulentos;
- Evitar problemas fiscais com notas emitidas para CNPJs inválidos;
- Automatizar o processo de entrada de dados com mais confiabilidade.
Estrutura do CNPJ
Um CNPJ válido possui 14 dígitos, com a seguinte estrutura:
XX.XXX.XXX/0001-YY
Onde:
- Os 8 primeiros dígitos representam a raiz do CNPJ (identificação da empresa);
- Os 4 dígitos seguintes (geralmente 0001) representam a filial;
- Os 2 últimos dígitos são os dígitos verificadores, calculados por um algoritmo específico.
Lógica de validação dos dígitos verificadores
A validação do CNPJ em PHP segue uma regra matemática definida pela Receita Federal. O processo é feito em duas etapas, uma para cada dígito verificador:
- Multiplica-se os 12 primeiros dígitos por uma sequência de pesos (de 5 a 2 e depois de 9 a 2);
- Calcula-se o módulo 11 da soma dos produtos;
- Se o resultado for menor que 2, o dígito é 0; caso contrário, subtrai-se o resultado de 11.
Esse processo é repetido com os 13 primeiros dígitos para obter o segundo dígito verificador.
Exemplo de código PHP para validar CNPJ
function validarCNPJ($cnpj)
{
// Remove caracteres não numéricos
$cnpj = preg_replace('/[^0-9]/', '', $cnpj);
// Verifica se o CNPJ tem 14 dígitos
if (strlen($cnpj) != 14) {
return false;
}
// Evita CNPJs com todos os dígitos iguais
if (preg_match('/(\d)\1{13}/', $cnpj)) {
return false;
}
// Cálculo do primeiro dígito verificador
$peso1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
$soma1 = 0;
for ($i = 0; $i < 12; $i++) {
$soma1 += $cnpj[$i] * $peso1[$i];
}
$resto1 = $soma1 % 11;
$digito1 = ($resto1 < 2) ? 0 : 11 - $resto1;
// Cálculo do segundo dígito verificador
$peso2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
$soma2 = 0;
for ($i = 0; $i < 13; $i++) {
$soma2 += $cnpj[$i] * $peso2[$i];
}
$resto2 = $soma2 % 11;
$digito2 = ($resto2 < 2) ? 0 : 11 - $resto2;
// Compara os dígitos calculados com os informados
return $cnpj[12] == $digito1 && $cnpj[13] == $digito2;
}
Esse código pode ser adaptado em qualquer aplicação que precise validar CNPJs de forma rápida e segura, seja em formulários, rotinas de importação ou integração de APIs.
Dicas para uso do validador em aplicações
- Sempre limpe o input do usuário antes de validar;
- Combine essa validação estrutural com uma consulta na Receita Federal para checar a situação cadastral da empresa;
- Use o validador tanto no front-end (para feedback imediato) quanto no back-end (para garantir segurança);
- Evite armazenar dados inválidos no banco de dados — valide antes de salvar.
Conclusão
Criar um validador de CNPJ em PHP é simples, mas extremamente eficaz para manter a integridade dos dados da sua aplicação. Ao aplicar a lógica correta para verificação dos dígitos, você garante que apenas CNPJs válidos passem pelo seu sistema, prevenindo erros e protegendo sua operação contra cadastros maliciosos ou incorretos.
Se você trabalha com sistemas que envolvem empresas, incorporar esse tipo de validação é um passo essencial para mais profissionalismo, segurança e eficiência.
🔥 Construa seus projetos com a melhor infraestrutura e ainda apoie o DevsBrasil!
Na Hostinger, você encontra hospedagem rápida, segura e com suporte top de linha — ideal para desenvolvedores e empreendedores digitais.
💡 Use o nosso link exclusivo do DevsBrasil e garanta:
✅ Descontos especiais nos planos de hospedagem, e-mail profissional, VPS e criador de sites com IA
✅ Ferramentas otimizadas para performance, com ótimo custo-benefício
✅ Apoio direto à nossa comunidade e ao nosso conteúdo gratuito 💚
👉 Acesse agora com nosso link exclusivo e aproveite os benefícios!