Cadastro de Empresas (BrasilAPI)¶
1. Visao Geral¶
- Slug:
cadastro-empresas-brasilapi - Grupo: Geral
- Classificacao operacional:
local-only - Pagina (rota):
/cadastro-empresas-brasilapi - API base:
/api/cadastro-empresas-brasilapi - Permissao RBAC:
tool:cadastro-empresas-brasilapioutool:*(ADMIN acessa)
Ferramenta para cadastro em lote de empresas por CNPJ com consulta na BrasilAPI, persistencia estruturada em banco e filtros de consulta.
2. Objetivo Operacional¶
- Importar CNPJs em lote via texto, CSV/TXT ou planilha Excel.
- Consultar a BrasilAPI e salvar dados tratados da empresa no banco.
- Permitir visualizacao simples com selecao de colunas, filtros por socio e por um ou mais CNAEs.
- Exibir
Regime Tributarioatual em coluna/filtro e abrir o botao de regime com historico de mudancas (regime_tributario). - Permitir ajuste manual de
Regime Tributariopor empresa quando a origem nao trouxer regime confiavel/completo. - Evitar layout confuso de planilha e disponibilizar leitura clara de socios/CNAEs sem poluir a grade principal.
3. Arquivos Relacionados (Verificados)¶
- Pagina HTML:
public/cadastro-empresas-brasilapi.html - Script JS da ferramenta:
public/js/cadastro-empresas-brasilapi.js - Router Node:
src/routes/tools/cadastro-empresas-brasilapi.routes.js - Migrations SQL:
db/migrations/20260304_003_office_companies_brasilapi.sqldb/migrations/20260305_004_office_companies_regime_history.sqldb/migrations/20260306_005_office_companies_regime_atual.sql
4. Endpoints¶
GET /api/cadastro-empresas-brasilapi/healthGET /api/cadastro-empresas-brasilapi/metaGET /api/cadastro-empresas-brasilapi/companiesGET /api/cadastro-empresas-brasilapi/companies/:idPOST /api/cadastro-empresas-brasilapi/companies/:id/regime-manualGET /api/cadastro-empresas-brasilapi/export.xlsxPOST /api/cadastro-empresas-brasilapi/importPOST /api/cadastro-empresas-brasilapi/import-filePOST /api/cadastro-empresas-brasilapi/refreshPOST /api/cadastro-empresas-brasilapi/refresh-all
5. Seguranca e Governanca¶
- Exige autenticacao ativa no portal.
- RBAC por ferramenta (
tool:<slug>,tool:*, ADMIN). - Mutacoes protegidas por CSRF (
x-csrf-token) comAuthClient.authFetch. auditLogregistra importacoes/atualizacoes sem derrubar requisicao.
6. Persistencia¶
office_companies: dados gerais +regime_tributario_atual+raw_response(JSONB da BrasilAPI, incluindo historicoregime_tributario).office_companies.regime_tributario_manual: override manual opcional, com prioridade sobre o calculo automatico.- Ao atualizar via BrasilAPI: se vier regime atual nao vazio, o manual e limpo automaticamente; se vier sem regime, o manual permanece.
office_company_partners: lista de socios/QSA por empresa.office_company_cnaes: CNAEs principal/secundarios por empresa.
7. Campos da BrasilAPI Gravados/Usados¶
- Cadastrais principais: CNPJ, razao social, fantasia, situacao, natureza, porte, inicio de atividade, endereco e contato.
- Quadro societario:
qsaemoffice_company_partners. - CNAEs:
cnae_fiscal+cnaes_secundariosemoffice_company_cnaes. - Regime tributario:
- Historico completo mantido em
raw_response.regime_tributario. - Regime atual prioriza
SIMEI/SIMPLES NACIONALviaopcao_pelo_meieopcao_pelo_simples; sem esses indicadores, usa historico e campos legados como fallback. - Quando houver apenas data de exclusao e a empresa estiver
BAIXADA, o regime exibido passa aEXCLUIDA DO SIMEIouEXCLUIDA DO SIMPLES NACIONAL. - Indicadores Simples/MEI (
opcao_*,data_opcao_*,data_exclusao_*) em colunas proprias.
8. Troubleshooting Rapido¶
- Nenhum CNPJ encontrado no arquivo: validar extensao e conteudo da planilha/arquivo.
- CSV exportado do Excel em notacao cientifica (
3,4690183E+13): a ferramenta faz tentativa de normalizacao automatica para 14 digitos; quando houver arredondamento na origem, reexportar mantendo coluna como texto. - Falhas em lote na consulta (
HTTP 429): a ferramenta aplica rate-limit interno por intervalo (CADASTRO_EMPRESAS_BRASILAPI_MIN_INTERVAL_MS) e retry com backoff +Retry-After. Mesmo assim, em picos pode haver 429; manter lotes menores reduz recorrencia. - Como reprocessar falhas de lote: apos uma execucao com erros, usar
Reprocessar falhas(somente os CNPJs com erro da ultima execucao) ouBaixar falhas (CSV)para controle externo. Ver socios/Ver CNAEssem abrir detalhes: a visualizacao abre em modal dedicado; se nao abrir, atualizar a pagina comCtrl+F5para garantir cache limpo do JS.- Coluna/Filtro
Regime Tributariovazio em empresas antigas: executarnpm run migratee recarregar listagem; o valor atual e derivado deraw_response.regime_tributario. - Empresa optante pelo Simples sem regime na coluna/filtro: agora o fallback preenche
SIMPLES NACIONAL/SIMEIquando o historico nao vem. Reconsultar os CNPJs para persistir o novo valor. - Divergencia com Consulta Optantes (SN): alguns CNPJs retornam
opcao_pelo_simples=falsecomdata_opcao_pelo_simplesedata_exclusao_do_simplesno mesmo dia. Causa provavel: historico/normalizacao da origem BrasilAPI. Solucao aplicada: o sistema nao promove mais esses casos para optante automaticamente; prioriza o booleano oficial (opcao_*), usa historico para regime atual e marcaEXCLUIDAapenas quando nao houver regime historico. - Muitas empresas ATIVAS exibindo
EXCLUIDA DO SIMPLES NACIONAL: sintoma ocorre quando a coluna de regime foi contaminada por regra de exclusao ampla. Solucao aplicada:EXCLUIDA...agora so pode ser regime atual parasituacao_cadastral=BAIXADA; para empresas ativas, o regime atual prioriza optante atual e historico (regime_tributario). - Empresas sem regime e sem forma de filtrar: solucao aplicada com opcao
Sem regime informadono filtro de regime (valor especial__EMPTY__) para localizar registros sem regime calculado. - Necessidade de corrigir regime manualmente: solucao aplicada com acao
Editar regimepor linha (persistida emregime_tributario_manual), sem perder em atualizacoes futuras da BrasilAPI. - Lista padrao inclui:
LUCRO REAL,LUCRO PRESUMIDO,SIMPLES NACIONAL,SIMEI,INATIVA,ISENTA DO IRPJ,IMUNE DO IRPJe opcoes deEXCLUIDA. - Filtro de regime com duplicidade de escrita (
lucro presumidoxLUCRO PRESUMIDO): normalizacao aplicada para exibicao e comparacao em caixa alta, evitando opcoes duplicadas. - Botao
Ver historico regimesem tabela de mudancas: significa que a resposta BrasilAPI daquele CNPJ nao trouxeregime_tributario; usarAtualizarpara reconsultar. - Filtro de CNAE por palavra: o campo aceita descricao (ex.:
aluguel) e codigos (ex.:6810202), com multiplos termos separados por virgula/;. - 401/403: checar sessao e permissao RBAC.
- 500 ao listar/importar: confirmar schema/migration aplicada no banco.