Automação de consulta em massa de dados cadastrais de fornecedores via CNPJ. Consulta a API pública minhareceita.org (Receita Federal + Simples Nacional/SIMEI) para milhares de CNPJs e gera um Excel consolidado, eliminando a consulta manual portal a portal.
- Lê uma planilha Excel com os CNPJs a consultar (aba
Verificação manual). - Para cada CNPJ, consulta a API e extrai, em uma única chamada:
- Receita Federal: razão social, nome fantasia, CNAE principal (código + descrição), endereço completo, situação cadastral e data da situação.
- Simples Nacional / SIMEI: optante ou não, datas de opção e exclusão.
- Gera um Excel consolidado com 4 abas:
RESULTADO,ERROS,PENDENTESeRESUMO. - Salva o progresso linha a linha (retomada automática após qualquer interrupção).
- Python 3.8 ou superior
- Bibliotecas Python:
requests,openpyxl,pandas
Instale as dependências com:
pip install requests openpyxl pandasRPA_CNPJ/
├── consulta_cnpj_rpa.py # script principal
├── testar_api.py # teste isolado da API (rode primeiro)
├── gerar_excel_do_checkpoint.py # regenera o Excel a partir do checkpoint
├── cnpjs_entrada.xlsx # planilha de entrada (aba "Verificação manual")
│
│ (gerados automaticamente durante a execução)
├── checkpoint_resultado.jsonl # ponto de retomada (progresso salvo)
├── execucao_rpa.log # log completo com data/hora
└── resultado_consulta_cnpj.xlsx # resultado final consolidado
- Arquivo:
cnpjs_entrada.xlsx - Aba lida:
Verificação manual(obrigatório — não usa a primeira aba automaticamente) - Cabeçalho na linha 1, dados a partir da linha 2
| Coluna | Nome | Observação |
|---|---|---|
| A | CNPJ | consultado na API; zeros à esquerda são preservados |
| B | Fornecedor | preservado na saída |
| C | Verificador | preservado na saída |
| D | CNAE | preenchido pelo RPA (código - descrição) |
| E | SIMPLES | preenchido pelo RPA (Sim / Não / Não informado) |
python testar_api.pyDeve retornar HTTP Status: 200 e mostrar os campos preenchidos.
Em rede corporativa com proxy SSL, use:
python testar_api.py 03349915000952 Truepython consulta_cnpj_rpa.pyConfira o resultado_consulta_cnpj.xlsx gerado antes de processar tudo.
python consulta_cnpj_rpa.py --producaoTempo estimado: aproximadamente 4 a 5 horas para ~11.000 CNPJs (delay padrão de 1,5s).
python consulta_cnpj_rpa.py --producao --somente-erros| Comando | O que faz |
|---|---|
python consulta_cnpj_rpa.py |
Modo POC (10 CNPJs) |
python consulta_cnpj_rpa.py --producao |
Processa todos os CNPJs |
python consulta_cnpj_rpa.py --producao --somente-erros |
Reprocessa apenas os que deram erro |
python consulta_cnpj_rpa.py --resetar |
Apaga o checkpoint e recomeça do zero |
- Interrompeu no meio (Ctrl+C, queda de energia)? Basta rodar o mesmo comando de novo — o script continua exatamente de onde parou, sem reprocessar o que já foi feito.
- O Excel final não foi gerado (arquivo estava aberto/bloqueado)? Rode:
Ele reconstrói o Excel a partir do
python gerar_excel_do_checkpoint.py
checkpoint_resultado.jsonl, sem reconsultar a API.
| Parâmetro | Padrão | Descrição |
|---|---|---|
LIMITE_POC |
10 |
Nº de CNPJs no modo POC |
VERIFICAR_SSL |
True |
True = validação normal; False = desativa (proxy corporativo); ou caminho de um .pem |
SSL_FALLBACK_AUTOMATICO |
True |
Desativa o SSL sozinho se o certificado corporativo falhar |
DELAY_ENTRE_CONSULTAS |
1.5 |
Segundos entre requisições |
MAX_TENTATIVAS |
3 |
Retries por CNPJ |
TIMEOUT_SEGUNDOS |
30 |
Timeout de cada requisição |
O arquivo resultado_consulta_cnpj.xlsx tem 4 abas:
- RESULTADO — todos os registros processados (coluna
STATUS_PROCESSAMENTO=OKouERRO) - ERROS — apenas os CNPJs que falharam, para facilitar o reprocessamento
- PENDENTES — casos especiais marcados para revisão manual
- RESUMO — totais, taxa de sucesso, data/hora e SSL usado na execução
| Sintoma | Causa provável | O que fazer |
|---|---|---|
SSLCertVerificationError / self-signed certificate |
Inspeção SSL do proxy corporativo | Rode com VERIFICAR_SSL = False (o fallback automático já cobre isso) ou configure o certificado .pem da empresa |
Página Web Page Blocked |
Domínio bloqueado pelo firewall da rede | Solicitar liberação do minhareceita.org à Infraestrutura, ou rodar fora da rede corporativa |
Erros 503 em sequência |
Proxy interferindo ou API sobrecarregada | Aumentar DELAY_ENTRE_CONSULTAS; reprocessar com --somente-erros |
PermissionError ao salvar Excel |
Arquivo aberto no Excel ou no OneDrive | Feche o arquivo; o script salva um backup automático com timestamp |
| Muitos erros de SSL intermitentes | Oscilação da inspeção SSL | Reprocessar com --somente-erros |
- A API
minhareceita.orgé pública e gratuita, sem garantia de disponibilidade (SLA). Para uso corporativo recorrente e de alto volume, avaliar subir uma instância local da Minha Receita (open source), eliminando dependência de rede externa, bloqueios e limites de requisição. VERIFICAR_SSL = Falseé aceitável apenas para POC. Em produção, o ideal é configurar o certificado raiz corporativo (.pem) e manter a validação SSL ativa.- Campos do Simples/SIMEI vindos como
nullsão exibidos como "Não informado". A interpretação denullcomo "Não optante" deve ser confirmada com a área de negócio.
- API: https://minhareceita.org
- Consulta:
https://minhareceita.org/{cnpj} - Health check:
https://minhareceita.org/healthz
Dados abertos de CNPJ da Receita Federal (amparados pela Lei de Acesso à Informação).
Gabriel Almeida — Innovation Lab / RPA Projeto para o time de Supply Chain / Procurement — CNH Industrial