Skip to main content
Logo DFE-NFSe

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).
  • Download de DANFSe através da chave de acesso.

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 de Download XML

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.

Exemplo Básico de Download danfse

from nfse import download_danfse

# Configurações iniciais
chave = "00000000000000000000000000000000000000000000000000"
caminho_saida = "./PDF"
caminho_certificado = "/caminho/para/seu/certificado.pfx"
senha_certificado = "sua_senha_segura"

# Executa o download
resultado = download_danfse(
    chave=chave,
    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:

  • chave (str): Chave de acesso do documento.
  • output_path (str): Diretório raiz onde os XMLs serão salvos. O nome do arquivo sempre será a chave de acesso`.
  • 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.

Metadata

Release files for dfe-nfse 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dfe-nfse 0.2.1
File Size Uploaded
dfe_nfse-0.2.1.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dfe-nfse 0.2.1
File Interpreter ABI Platform
dfe_nfse-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.5 kB

Release files / dfe_nfse-0.2.1.tar.gz

Download URL dfe_nfse-0.2.1.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9de654c3ec82d072870bff85f47fd23170cd93803deb8384a33390a3d0a9be79
BLAKE2b-256 checksum
How to use checksums
70f2e0db45a4da9c831cc07bc9abcdf17e16c91af92af118f3e9889e1a438da9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / dfe_nfse-0.2.1-py3-none-any.whl

Download URL dfe_nfse-0.2.1-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c3d8d24816c69a510834bc1406077faebb4eedc496a8dabc189bbf4fa9738a0b
BLAKE2b-256 checksum
How to use checksums
74f0a6de45ef3ea4042911d7149c608c3a25cd6d25abab1a31c44abcfe3000f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page