Interface library with the Brazilian Electronic Invoice web services
Project description
PyNFe
Biblioteca de interface com os webservices de Nota Fiscal Eletrônica (NF-e) e Nota Fiscal de Consumidor Eletrônica (NFC-e) da SEFAZ e Receita Federal do Brasil, Nota Fiscal de Serviço Eletrônica (NFS-e) para Prefeituras e Manifesto de Documentos Fiscais Eletrônicos (MDF-e).
- NF-e visa substituir as notas fiscais séries 1 e 1A.
- NFC-e visa substituir as notas fiscais modelo 2 e cupom fiscal emitido por ECF.
- NFS-e padrão Abrasf para autorizadores Ginfes e Betha.
- MDF-e no padrão nacional deverá ser emitido obrigatoriamente no transporte de mercadoria intermunicipais por empresas prestadoras de serviço de transporte ou pelas demais empresas cujo transporte seja realizado em veículos próprios, arrendados ou transportador autônomo.
Características
-
NF-e e NFCe:
- Atualizado para a versão 4.00
- Modelo de Documento fiscal 55 e 65
- Configuração para utilização em ambiente de produção e homologação (testes)
- Emissão de notas fiscais normal e em contingência
- Consulta Status do Serviço
- Consultar Cadastro de contribuiente
- Consultar nota fiscal pela chave de acesso
- Consultar protocolo
- Evento de cancelamento de notas
- Evento de carta de correção
- Evento de inutilizar de notas
- Evento de manifestação do destinatário
- Consultar Distribuição DF-e
-
NFS-e:
- Emissão de nota fiscal de serviço eletrônico
- Consultar pelo número da NFS-e
- Consultar por RPS (recibo provisório de serviço)
- Consultar Lote
- Cancelar NFS-e
-
MDF-e:
- Atualizado para a versão 3.00
- Modelo de Documento 58
- Emissão de Manifesto
- Consultar Status do Serviço
- Consultar MDF-e pela chave de acesso
- Consultar MDF-es não encerrados
- Consultar Recibo
- Evento de Cancelamento
- Evento de Encerramento de viagem
- Evento de Inclusão de Condutor
- Evento de Inclusão de DF-e
- Evento de Pagamento DF-e
-
CT-e:
- Atualizado para a versão 3.00
- Consultar Distribuição DF-e para CT-e
- Emissão (A fazer)
- Inutilização (A fazer)
- Consultar CT-e pela chave de acesso (A fazer)
- Consultar Status do Serviço (A fazer)
- Eventos relacionados a CT-e (A fazer)
Dependências
- lxml
- Biblioteca de leitura e gravação de arquivos XML, de alta performance e fácil de implementar.
- signxml
- Assinatura e validação do XML
- pyopenssl
- Biblioteca para manuseio do certificado digital
- requests
- Biblioteca para a comunicação com os webservices da SEFAZ
- suds-community (*apenas para NFS-e)
- Biblioteca para a comunicação com os webservices via wsdl
- PyXB-X (*apenas para NFS-e)
- Biblioteca para geração de bindings a partir de XML Schema(xsd)
- brazilfiscalreport (*apenas para Impressão)
- Biblioteca para impressão de DANFE e DAMDFE
Referências
-
Sites oficiais:
-
lxml
-
requests
-
Schemas para validação dos arquivos
-
Validador de XML
-
Validador de assinaturas
-
Impressão de Documentos Fiscais
Instalação
-
Instalar a versão estável:
pip install pynfe -
Instalar as dependências da NFSe:
pip install 'pynfe[nfse]' -
Instalar as dependências para Impressão:
pip install 'pynfe[impressao]' -
Instalar versão de desenvolvimento:
pip install https://github.com/TadaSoftware/PyNFe/archive/refs/heads/main.zip
- Opcional para NFS-e:
pip install --user -r https://github.com/TadaSoftware/PyNFe/blob/main/requirements-nfse.txt
Exemplos de uso
- Consulta Status
from pynfe.processamento.comunicacao import ComunicacaoSefaz
certificado = "/home/user/certificado.pfx"
senha = 'senha'
uf = 'pr'
homologacao = True
con = ComunicacaoSefaz(uf, certificado, senha, homologacao)
xml = con.status_servico('nfe')
print(xml.text)
Mais exemplos no Wiki
Testes
python -m unittest
Lint
- Instalação:
pip install ruff - Checar lint:
ruff check . - Formatar:
ruff format .
Bindings XSD
Para atualizar os bindings XSD da NFSe, execute o script gerarnfsebindings.sh.
Documentação
Suporte
Se tiver qualquer problema or sugestão abra uma issue aqui ou inicie uma discussão sobre um assunto aqui.
Quem utiliza PyNFe
Lista de empresas/projetos que utilizam a lib PyNFe
- Link da lista aqui.
- Sinta-se livre para incluir o nome da empresa/projeto na lista.
Licença
PyNFe é licenciada sob a LGPL-3.0.
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 pynfe-0.6.5.tar.gz.
File metadata
- Download URL: pynfe-0.6.5.tar.gz
- Upload date:
- Size: 216.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41405b929a35b82c09978b9e98462fc9112eb865c5dd555286eb9a6fc887cb6e
|
|
| MD5 |
5e9fcdb30abad05cd968b5ebf6ed1675
|
|
| BLAKE2b-256 |
29aeb7cb9cd84f3468a908e5efdc071601a9db76d23388eebde29be80cd4eaa2
|
Provenance
The following attestation bundles were made for pynfe-0.6.5.tar.gz:
Publisher:
release.yml on TadaSoftware/PyNFe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pynfe-0.6.5.tar.gz -
Subject digest:
41405b929a35b82c09978b9e98462fc9112eb865c5dd555286eb9a6fc887cb6e - Sigstore transparency entry: 919630467
- Sigstore integration time:
-
Permalink:
TadaSoftware/PyNFe@0713caecc56ee0c354996853c7e94233717b2585 -
Branch / Tag:
refs/tags/0.6.5 - Owner: https://github.com/TadaSoftware
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0713caecc56ee0c354996853c7e94233717b2585 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pynfe-0.6.5-py3-none-any.whl.
File metadata
- Download URL: pynfe-0.6.5-py3-none-any.whl
- Upload date:
- Size: 266.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67d89ec1142bd0bf25d29d66e60e0c5e27f66709b1d105725c5405aa444ede8d
|
|
| MD5 |
2bdd448c8144bc5d0d10bbc335ca102b
|
|
| BLAKE2b-256 |
5b246d7c30ea1e462ade3096dc890237237f7975e9f8f405b0c01720b2b619c6
|
Provenance
The following attestation bundles were made for pynfe-0.6.5-py3-none-any.whl:
Publisher:
release.yml on TadaSoftware/PyNFe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pynfe-0.6.5-py3-none-any.whl -
Subject digest:
67d89ec1142bd0bf25d29d66e60e0c5e27f66709b1d105725c5405aa444ede8d - Sigstore transparency entry: 919630496
- Sigstore integration time:
-
Permalink:
TadaSoftware/PyNFe@0713caecc56ee0c354996853c7e94233717b2585 -
Branch / Tag:
refs/tags/0.6.5 - Owner: https://github.com/TadaSoftware
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0713caecc56ee0c354996853c7e94233717b2585 -
Trigger Event:
push
-
Statement type: