Biblioteca para baixar NFSe do Ambiente Nacional (ADN)
Project description
NFSe Nacional
Biblioteca Python desenvolvida para facilitar o download e automação de Notas Fiscais de Serviço Eletrônicas (NFSe) diretamente do Ambiente de Dados Nacional (ADN).
Esta ferramenta foi projetada para interagir com a API oficial da Receita Federal, gerenciar certificados digitais A1 e organizar os arquivos XML baixados de forma estruturada.
Documentação Oficial ADN: https://adn.nfse.gov.br/contribuintes/docs/index.html
Funcionalidades
- Integração direta com o Ambiente de Dados Nacional (ADN).
- Conversão automática de certificados (.pfx) para formatos compatíveis com a API (.pem/.key).
- Download em lote de documentos fiscais a partir de um NSU (Número Sequencial Único).
- Organização automática dos arquivos XML baixados em diretórios por Ano e Mês (ex: 2024.01).
Instalação
A biblioteca está disponível no PyPI e pode ser instalada utilizando o pip:
pip install dfe-nfse
Como Usar
Para utilizar a biblioteca, é necessário possuir um certificado digital modelo A1 válido e sua respectiva senha.
Exemplo Básico
from nfse import download_nfse
# Configurações iniciais
cnpj_empresa = "00000000000000"
nsu_inicial = 100 # Último NSU processado ou 0 para o início
caminho_saida = "./documentos_fiscais"
caminho_certificado = "/caminho/para/seu/certificado.pfx"
senha_certificado = "sua_senha_segura"
# Executa o download
resultado = download_nfse(
cnpj=cnpj_empresa,
nsu=nsu_inicial,
output_path=caminho_saida,
cert_path=caminho_certificado,
cert_password=senha_certificado
)
print(f"Status da operação: {resultado}")
Detalhes dos Parâmetros
A função download_nfse aceita os seguintes argumentos:
- cnpj (str): O CNPJ da empresa contribuinte (apenas números ou com formatação padrão). A biblioteca normaliza automaticamente removendo pontuações.
- nsu (int): Número Sequencial Único a partir do qual a busca será realizada. Utilize este controle para baixar apenas notas novas.
- output_path (str): Diretório raiz onde os XMLs serão salvos. A estrutura interna será criada automaticamente no formato
Ano.Mes/ChaveAcesso.xml. - cert_path (str): Caminho absoluto ou relativo para o arquivo do certificado digital (.pfx).
- cert_password (str): Senha para descriptografar o certificado digital.
Retorno
A função retorna uma string com o resultado da operação, que pode ser:
- Confirmação de quantidade de documentos baixados.
- Mensagens de erro da API (404, 500, etc.).
- Exceções locais (arquivo não encontrado, senha incorreta).
Requisitos do Sistema
- Python 3.6 ou superior
- Biblioteca
requests - Biblioteca
cryptography
Estrutura de Arquivos
Após a execução, os arquivos serão organizados da seguinte forma no diretório de saída:
documentos_fiscais/
├── 2023.12/
│ ├── 35231200000000000000000000000000000000000001.xml
│ └── 35231200000000000000000000000000000000000002.xml
└── 2024.01/
├── 35240100000000000000000000000000000000000001.xml
└── ...
Licença
Distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais informações.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dfe_nfse-0.1.2.tar.gz.
File metadata
- Download URL: dfe_nfse-0.1.2.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b1ad0d6ac0052dd16dd37e8af12313a316a4705e2947dbbb4b53b29d2d9a49e
|
|
| MD5 |
32b419ae796ae00866aaa07e5282b0a0
|
|
| BLAKE2b-256 |
54aa772cbc6597a8a30bc6dbb9f0fb14829de63ca6ec6e54d7a79f1eb7e737f0
|
File details
Details for the file dfe_nfse-0.1.2-py3-none-any.whl.
File metadata
- Download URL: dfe_nfse-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c73c952cf9b63939f50f4376e650cf1f6532b1d2acd4d13f786df2c535be03aa
|
|
| MD5 |
a1be4cb022aa9a09aafdaaf8a3c4e831
|
|
| BLAKE2b-256 |
c9dbc205b0e26dcdc3a66aefd8f4fcd5fa44e2887189e7e230c0ca355b7ffcc8
|