Uma empresa que era ativa no ano passado pode ter mudado de endereço, trocado de sócios ou encerrado as atividades. Se o seu sistema não acompanha essas mudanças, você enfrenta entregas devolvidas, notas denegadas e contatos que chegam à pessoa errada.

A solução mais direta é consultar periodicamente os CNPJs da sua base e comparar o resultado com o que está armazenado. Quando algo muda, você atualiza o registro e, se necessário, aciona uma revisão manual.

Quais campos monitorar

Foque nos campos que afetam sua operação diretamente:

  • situacaoCadastral — o campo mais crítico. Uma empresa que muda de ATIVA para BAIXADA ou INAPTA exige ação imediata.
  • logradouro, numero, municipio — mudanças de endereço afetam entregas e cobrança.
  • opcaoPeloSimples e opcaoPeloMEI — troca de regime tributário impacta a emissão de notas fiscais.
  • Lista de sócios (qsa) — relevante para análise de crédito e KYC.

Script de monitoramento

// monitor-cnpj.js
require('dotenv').config();
const { consultarCNPJ } = require('./cnpj');

const CAMPOS_CRITICOS = ['situacaoCadastral', 'logradouro', 'municipio', 'opcaoPeloSimples'];

async function checarAlteracoes(cnpj, dadosSalvos) {
    const dadosAtuais = await consultarCNPJ(cnpj);
    if (!dadosAtuais) return { cnpj, status: 'nao_encontrado' };

    const alteracoes = CAMPOS_CRITICOS.filter(campo =>
        dadosAtuais[campo] !== dadosSalvos[campo]
    );

    return {
        cnpj,
        razaoSocial: dadosAtuais.razaoSocial,
        alteracoes: alteracoes.map(campo => ({
            campo,
            anterior: dadosSalvos[campo],
            atual: dadosAtuais[campo],
        })),
    };
}

const minhaBase = [
    { cnpj: '53008607000184', situacaoCadastral: 'ATIVA', logradouro: 'AV PAULISTA', municipio: 'SAO PAULO', opcaoPeloSimples: false },
];

(async () => {
    for (const empresa of minhaBase) {
        const resultado = await checarAlteracoes(empresa.cnpj, empresa);
        if (resultado.alteracoes && resultado.alteracoes.length) {
            console.log('Alterações em ' + resultado.razaoSocial + ':', resultado.alteracoes);
            // atualize o banco ou envie um alerta aqui
        }
    }
})();

Agendando a verificação

Um cron job semanal já cobre a maioria dos casos — dados cadastrais raramente mudam com frequência diária:

# Toda segunda-feira às 7h
0 7 * * 1 /usr/bin/node /app/monitor-cnpj.js >> /var/log/monitor-cnpj.log 2>&1

Para bases com muitos CNPJs, adicione uma pausa de 200ms entre as requisições para respeitar o rate limit da sua assinatura. Para volumes maiores ou alertas em tempo real, a NextAPI disponibiliza webhooks que notificam sua aplicação assim que uma alteração é detectada — sem polling ativo. Veja a documentação do endpoint /webhooks para configurar.

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