Simples Nacional Lib
Biblioteca e CLI em Python para consulta e atualização da base de dados pública do Simples Nacional (CNPJs).
Instalação
Do PyPI:
pip install simplesnacional
Ou a partir do código-fonte:
pip install .
Para desenvolvimento (inclui o pytest):
pip install -e ".[dev]"
pytest
Uso via Linha de Comando (CLI)
Após a instalação, o comando simplesnacional estará disponível no seu terminal.
Também funciona via python -m simplesnacional.
1. Atualizar a Base de Dados
Antes de realizar consultas, é necessário baixar e atualizar a base de dados local. O comando abaixo verifica se existe uma nova versão no site da Receita Federal e realiza o download e importação se necessário.
simplesnacional atualizar
Este processo pode demorar alguns minutos dependendo da velocidade da internet e do processamento, pois a base é volumosa.
2. Verificar Status
Para ver informações sobre a base de dados local, como a data de referência e o total de registros importados:
simplesnacional info
3. Consultar um CNPJ
Para consultar os dados do Simples Nacional de um CNPJ específico:
simplesnacional consultar 00000000000191
Ou com formatação:
simplesnacional consultar 00.000.000/0001-91
Saída Exemplo:
Dados do CNPJ: 00000000
+-----------------------+------------+
| Campo | Valor |
+-----------------------+------------+
| Opção Simples | S |
| Data Opção Simples | 20070701 |
| Data Exclusão Simples | |
| Opção MEI | N |
| Data Opção MEI | |
| Data Exclusão MEI | |
+-----------------------+------------+
4. Subir a API HTTP
Sobe um servidor local (somente leitura, sem dependências extras) para consultar a base por HTTP — útil para integrar com outros sistemas ou com o navegador:
simplesnacional serve # http://127.0.0.1:5000
simplesnacional serve --port 8080 # outra porta
simplesnacional serve --host 0.0.0.0 # expõe na rede local
simplesnacional serve --cors # libera CORS para chamadas do navegador
simplesnacional server continua funcionando como alias.
Rotas:
| Método | Rota | Descrição |
|---|---|---|
| GET | / |
Índice da API (HTML no navegador, JSON fora) |
| GET | /health |
Estado do servidor e da base local |
| GET | /api/{cnpj} |
Dados do CNPJ em JSON |
| GET | /json/{cnpj} |
Alias de /api/{cnpj} |
O CNPJ pode ir com ou sem pontuação, e ?format=text devolve o resumo em texto puro.
curl http://127.0.0.1:5000/api/00.000.000/0001-91
{
"status": "sucesso",
"cnpj": "00000000",
"opcao_simples": "S",
"data_opcao_simples": "01/07/2007",
"data_exclusao_simples": "",
"opcao_mei": "N",
"data_opcao_mei": "",
"data_exclusao_mei": ""
}
Códigos de status: 200 sucesso · 404 CNPJ ou rota não encontrada ·
503 base local ausente (rode simplesnacional atualizar).
Uso como Biblioteca Python
Você pode utilizar a biblioteca diretamente em seu código Python para realizar consultas.
from simplesnacional import consulta
# Realizar a consulta
# O CNPJ pode ser passado como string (com ou sem pontuação) ou inteiro
dados = consulta("00.000.000/0001-91")
if dados:
print(f"CNPJ Base: {dados.cnpj_base}")
print(f"Optante Simples: {dados.opcao_simples}")
print(f"Data Opção: {dados.data_opcao_simples}")
print(f"Optante MEI: {dados.opcao_mei}")
else:
print("CNPJ não encontrado na base local.")
Estrutura do Objeto Retornado
A função consulta retorna um objeto DadosSimples com os seguintes atributos:
cnpj_base: Os 8 primeiros dígitos do CNPJopcao_simples: Indicador de opção pelo Simples ('S' ou 'N')data_opcao_simples: Data da opção pelo Simplesdata_exclusao_simples: Data da exclusão do Simples (se houver)opcao_mei: Indicador de opção pelo MEI ('S' ou 'N')data_opcao_mei: Data da opção pelo MEIdata_exclusao_mei: Data da exclusão do MEI (se houver)
O método to_dict() devolve todos esses campos em um dicionário pronto para
serializar em JSON.
Servidor embutido
O servidor HTTP também pode ser iniciado por código:
from simplesnacional.server import run_server
run_server(host="127.0.0.1", port=5000, cors=False)
Licença
MIT License
Aviso Legal e Isenção de Responsabilidade
Este software é um projeto independente e de código aberto.
Esta biblioteca e CLI não possuem qualquer vínculo, afiliação, endosso ou parceria com a Receita Federal do Brasil ou qualquer outra entidade governamental.
O objetivo deste projeto é estritamente facilitar o acesso técnico e a consulta automatizada à base de dados pública do Simples Nacional. Embora a ferramenta utilize dados públicos oficiais, ela não substitui os canais oficiais de consulta para fins legais, fiscais ou tributários.
Metadata
Release files for simplesnacional 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simplesnacional-0.1.3.tar.gz | 15.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simplesnacional-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.3 kB
Release files / simplesnacional-0.1.3.tar.gz
| Download URL | simplesnacional-0.1.3.tar.gz |
|---|---|
| Size | 15.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
29e2ce0b1a709deac8f88c1eae878500e343e350f712a4be216be547aef950ac
|
|
BLAKE2b-256 checksum How to use checksums |
9e6274bb5a5ba0e6ade3c0a1a7ec70f6cc129d4bac4126692591947be1708ec3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / simplesnacional-0.1.3-py3-none-any.whl
| Download URL | simplesnacional-0.1.3-py3-none-any.whl |
|---|---|
| Size | 13.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
27f42ed351c6d6346c7ca00d5a707c5a6e9e6b0d18085e4ea05645fd39602b09
|
|
BLAKE2b-256 checksum How to use checksums |
6a5a6e38bf105f629f8e579f50065558b131940397680b6b2f17b5665a5e874f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|