Se você está construindo um sistema em Node.js que precisa validar CNPJs de clientes ou fornecedores, integrar uma API profissional é mais confiável do que validar apenas o algoritmo do dígito verificador. O algoritmo confirma que o número é matematicamente válido, mas não diz se a empresa existe ou está ativa na Receita Federal.
Este guia mostra como fazer uma consulta real usando fetch nativo (disponível no Node 18+) com a NextAPI.
Configurando o projeto
Nenhuma dependência externa é necessária para a chamada à API. Se preferir, use axios ou qualquer cliente HTTP da sua escolha — a estrutura da requisição é a mesma.
mkdir consulta-cnpj && cd consulta-cnpj
npm init -y
O módulo de consulta
Crie um arquivo cnpj.js com a função de consulta. Isolar a chamada em um módulo separado facilita testes e evita repetição.
// cnpj.js
const NEXTAPI_BASE = 'https://api.nextapi.com.br/v1';
const API_TOKEN = process.env.NEXTAPI_TOKEN; // nunca exponha o token no código
async function consultarCNPJ(cnpj) {
const cnpjLimpo = cnpj.replace(/\D/g, '');
if (cnpjLimpo.length !== 14) {
throw new Error('CNPJ deve ter 14 dígitos');
}
const response = await fetch(\`\${NEXTAPI_BASE}/cnpj/\${cnpjLimpo}\`, {
headers: { Authorization: \`Bearer \${API_TOKEN}\` },
signal: AbortSignal.timeout(5000),
});
if (response.status === 404) return null;
if (!response.ok) throw new Error(\`Erro na API: \${response.status}\`);
return response.json();
}
module.exports = { consultarCNPJ };
Usando o módulo na aplicação
// app.js
require('dotenv').config();
const { consultarCNPJ } = require('./cnpj');
async function validarFornecedor(cnpj) {
const dados = await consultarCNPJ(cnpj);
if (!dados) {
console.log('CNPJ não encontrado na Receita Federal');
return false;
}
if (dados.situacaoCadastral !== 'ATIVA') {
console.log('Empresa ' + dados.razaoSocial + ' está ' + dados.situacaoCadastral);
return false;
}
console.log('Fornecedor aprovado: ' + dados.razaoSocial);
console.log('Endereço: ' + dados.logradouro + ', ' + dados.numero + ' — ' + dados.municipio + '/' + dados.uf);
return true;
}
validarFornecedor('53.008.607/0001-84');
Boas práticas de segurança
- Guarde o token em variável de ambiente (
.env) e nunca o exponha no frontend. - Se a aplicação faz muitas consultas, considere cachear o resultado por CNPJ por algumas horas — os dados da Receita são atualizados periodicamente, não em tempo real.
- Trate o timeout: o
AbortSignal.timeoutevita que uma requisição pendente trave o servidor.
Com essa estrutura, você pode expandir para validar o CNAE do fornecedor antes de aprovar cadastros, ou checar o regime tributário para acertar a emissão de notas — a NextAPI devolve esses dados no mesmo endpoint, sem chamadas extras.
Pronto para integrar?
Teste a API agora mesmo sem precisar de cartão de crédito. 100 requisições/mês grátis.
Criar Conta Grátis