Subir um arquivo com sua lista de CNPJs e receber de volta o mesmo arquivo enriquecido com razão social, situação, CNAE, UF, município, capital social e — para Pro+ — Lead Score. Ideal para quem já tem uma base própria e quer cruzar com a Receita Federal sem buscar CNPJ por CNPJ.
Nesta versão, o upload de planilhas é feito pelo dashboard com usuário logado. A rota /v1/enrich exige sessão de cookie. NÃO aceita x-api-key nem Authorization Bearer — qualquer integração via API key recebe 401 unauthorised. Se você precisa enriquecer programaticamente em batch, abra o dashboard manualmente.
Disponibilidade por plano
- Free: bulk upload NÃO incluso (rota retorna
402 plan_required com upgrade pra Starter). - Starter: 500 linhas/mês · 500 por job · arquivo até 10 MB.
- Pro: 5.000 linhas/mês · 2.000 por job · arquivo até 10 MB · inclui colunas de Lead Score no output.
- Enterprise: 20.000 linhas/mês · 5.000 por job · arquivo até 10 MB · inclui colunas de Lead Score.
Como subir
- Logar em /login (magic-link).
- Abrir /dashboard/enriquecer.
- Arrastar o arquivo CSV ou XLSX. A primeira linha precisa ter um header chamado
cnpj (case-insensitive). - O job processa em background. Você acompanha pelo status ("Na fila" → "Processando" → "Pronto") e baixa o resultado quando terminar.
Formatos
Entrada
- •
.csv (UTF-8, separador ;, , ou \t) - •
.xlsx (Excel/Google Sheets/LibreOffice) - • Coluna
cnpj obrigatória (autodetect cobre lista numérica simples)
Saída
- • Mesmo formato do input (csv → csv, xlsx → xlsx)
- • Colunas cadastrais: cnpj, razao_social, nome_fantasia, situacao, uf, municipio, cnae_principal, porte, capital_social
- • Faturamento estimado REMOVIDO (2026-05-09): operador reprovou. Output NÃO traz mais colunas
faturamento_estimado_*. Capital social cru (RF) é o único campo fiscal exposto. - • Pro+ adiciona: score_commercial, score_risk, segment, persona
- • Sempre:
status_lookup + error_reason
status_lookup por linha
O output marca cada linha com um dos três valores. Linhas inválidas não derrubam o job — você recebe o arquivo completo e revisa o que falhou.
enriched — CNPJ válido + encontrado na base RF; colunas preenchidas.not_found — CNPJ válido (DV módulo-11 OK) mas não consta na base RF (pode ter sido baixado antes da última release; coluna error_reason traz o motivo).invalid_cnpj — não passou no check de 14 dígitos ou DV; error_reason mostra o que veio no campo.
Cota mensal
Audit-pos-Bulk-Upload Fase B (2026-05-08): a cota é compartilhada entre exports e enriquecimento. O backend soma export_jobs.rows_written + enrich_jobs.ok_rows (apenas jobs status='done'), ambos do mês corrente, e compara com o cap do plano. Você vê o breakdown na tela de /dashboard/enriquecer.
- Apenas enriched conta pra cota — linhas not_found e invalid_cnpj NÃO bilham. Você só paga pelo lookup com sucesso.
- Jobs failed/cancelled NÃO contam. Falha de worker não é cobrada.
- Tombstones contam (anti-abuse). Apagar um job done não devolve cota — mesma lógica do export.
Segurança
- Não aceita
.xlsm (planilhas com macros) — bloqueado por segurança. - Magic-byte check — extensão renomeada não engana o detector (PDF/JPEG disfarçados de CSV são rejeitados).
- Anti zip-bomb — XLSX com inflação > 100× do tamanho do upload é bloqueado.
- Anti formula injection — qualquer célula que comece com
=, +, -, @ recebe prefixo ' no output (Excel renderiza como texto). - CSV linha > 10 KB rejeitada (defesa DoS via linha gigante).
- Arquivo de upload é descartado logo após o processamento. O arquivo enriquecido (output) expira em 7 dias e é removido automaticamente.
- Download é por sessão — outro usuário tentar baixar seu arquivo via token recebe 404.
Onde abrir
/dashboard/enriquecer (logado, plano Starter ou superior). Dúvidas operacionais — formato esperado, o que fazer com not_found, como dividir arquivo grande em jobs menores — /faq.
Buscas salvas (atalho de filtros)
Buscas salvas são recurso do dashboard, não da API pública. A rota /v1/saved-searches exige sessão de cookie e NÃO aceita x-api-key nesta versão. Salve filtros que usa com frequência em /buscar clicando em "Salvar busca", e gerencie em /dashboard/buscas-salvas.
Não há alerta por email, cron ou scheduler. Saved searches só armazenam o snapshot dos filtros — você decide quando aplicar. Limite por plano: Free 1 · Starter 5 · Pro 20 · Enterprise 100.