Pitch: Toda API de CNPJ responde quando você pergunta. Mas quem avisa quando algo muda?
Trabalho com dados de empresas brasileiras há alguns anos e percebi um padrão curioso: em algum momento, todo sistema que depende de informações de CNPJ esbarra no mesmo problema.
Você precisa saber quando uma empresa mudou.
Parece simples, mas existe um detalhe: as fontes de dados não avisam quando algo muda. Elas apenas respondem quando você pergunta.
Então o fluxo costuma ser assim:
- Agendar uma rotina para rodar periodicamente
- Consultar todos os CNPJs novamente
- Armazenar o estado anterior
- Comparar os dados
- Identificar diferenças
- Disparar alertas para os sistemas interessados
Funciona.
Mas, no fundo, isso é infraestrutura. Não é o produto principal da empresa.
O problema
Imagine uma fintech com alguns milhares de CNPJs em carteira.
Ela pode precisar monitorar:
- Mudanças de situação cadastral
- Alterações no quadro societário (QSA)
- Mudanças de capital social
- Alterações de endereço
- Outros eventos relevantes para crédito, compliance ou relacionamento
Quando uma dessas mudanças acontecem, o tempo importa.
Não adianta descobrir no próximo relatório mensal que uma empresa relevante ficou inapta há três semanas.
O desafio é que praticamente todas as APIs disponíveis funcionam sob demanda:
Você pergunta. Elas respondem.
Monitoramento contínuo é responsabilidade de quem consome os dados.
Na prática, isso significa que diferentes empresas acabam reconstruindo exatamente os mesmos componentes:
- Polling
- Controle de rate limit
- Retry
- Deduplicação
- Comparação de versões
- Geração de diffs
- Alertas e notificações
O mesmo problema sendo resolvido repetidamente.
A hipótese que estou testando
Minha hipótese é que monitoramento deveria ser um serviço nativo, não uma infraestrutura que cada empresa precisa implementar.
Foi por isso que comecei a construir a Lupa.
A ideia é simples:
- Você informa quais CNPJs deseja monitorar.
- Define quais eventos são relevantes.
- Configura um webhook.
- Recebe notificações quando algo muda.
Exemplo:
POST /v1/monitor
{
"cnpj": "00000000000191",
"events": ["status", "qsa", "capital"],
"webhook_url": "https://app.suafintech.com.br/hooks/cnpj"
}
Quando ocorre uma alteração:
{
"cnpj": "00000000000191",
"company": "EMPRESA EXEMPLO S.A.",
"event": "status_changed",
"diff": {
"field": "status",
"from": "ATIVA",
"to": "INAPTA"
},
"changed_at": "2026-06-01T07:15:00Z",
"action_required": true
}
A proposta é eliminar a necessidade de polling e entregar apenas o evento que realmente importa.
O que estou tentando validar
O produto já existe, mas ainda estou na fase de validação.
Antes de investir em escala, quero entender:
- Quais eventos são realmente importantes para as empresas?
- Quais integrações seriam necessárias?
- Como as equipes lidam hoje com esse problema?
- Quais informações precisam estar presentes no payload de um alerta?
Se você já precisou monitorar mudanças em CNPJs, tenho curiosidade de saber:
- Como resolveu?
- Com que frequência faz consultas?
- O que foi mais difícil de implementar?
- O que uma solução desse tipo precisaria ter para gerar valor?
Feedback técnico é muito bem-vindo.
Projeto: lupacnpj.com.br