Ramos da InformáticaPythonComo Emitir NF-e e NFC-e com Python: Guia Prático...

Como Emitir NF-e e NFC-e com Python: Guia Prático Usando PyNFe

-

Eleve seu desenvolvimento com o Cursor

Eu utilizo o Cursor diariamente para acelerar meu fluxo. Use meu link e garanta 50% de desconto no seu primeiro mês dos planos Pro, Pro+ ou Ultra.

Resgatar meu desconto * Apenas para novos usuários

Dominar a emissão de NF-e e NFC-e em Python é um requisito essencial para desenvolvedores que estão criando sistemas de ERP, PDV ou automatizando rotinas fiscais no backend. Entender as diferenças entre a Nota Fiscal Eletrônica (modelo 55) e a Nota Fiscal de Consumidor (modelo 65) é o primeiro passo. Neste guia, vamos descobrir os requisitos técnicos para emissão, o uso de certificados digitais e como adequar seu software às normas da SEFAZ utilizando a biblioteca PyNFe.

Características da Emissão de NF-e e NFC-e em Python

Entenda as diferenças entre NF-e e NFC-e e aprenda a implementar a emissão, consulta e validação de notas fiscais no seu backend Python usando a biblioteca PyNFe.

Projeto de biblioteca para fazer interface com o webservice de Nota Fiscal eletrônica para Python, disponível sob LGPL.

Biblioteca de interface com os webservices de Nota Fiscal Eletrônica (NF-e) e Nota Fiscal de Consumidor Eletrônico (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).

  • Visto de NF-e substituir as notas fiscais séries 1 e 1A.
  • Visa NFC-e substituir as notas fiscais modelo 2 e cupom fiscal emitido por ECF.
  • NFS-e padrão Abrasf para autorizadores Ginfes e Betha.
  • O MDF-e no padrão nacional deverá ser emitido obrigatoriamente no transporte de mercadorias intermunicipais por empresas prestadoras de serviço de transporte ou por outras empresas cujas empresas o transporte seja realizado em veículos próprios, arrendados ou transportadores independentes.

Características

  • NF-e e NFCe:

    Dica de Leitura: Se você está trabalhando com o projeto de biblioteca para interface com o webservice de Nota Fiscal eletrônica para Python, é importante também estar por dentro das melhores práticas e dicas para entrevistas técnicas de Python, especialmente se você está desenvolvendo sua carreira na área. Leia nosso artigo sobre Entrevista Técnica Python: Não Trave na Hora do Live Coding para se preparar melhor.

    • 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 normais e em contingência
    • Consultar Status do Serviço
    • Consultar Cadastro de Contribuintes
    • Consultar nota fiscal pela chave de acesso
    • Consultar protocolo
    • Evento de cancelamento de notas
    • Evento de carta de correção
    • Evento de inutilização 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
    • Consulte MDF-e pela chave de acesso
    • Consultar MDF-es não encerrados
    • Consultar Receita
    • 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 ao CT-e (A fazer)

Dependências

  • lxml
    • Biblioteca de leitura e gravação de arquivos XML, de alto desempenho e fácil de implementar.
  • sinalxml
    • Assinatura e validação do XML
  • pyopenssl
    • Biblioteca para referência do certificado digital
  • pedidos
    • Biblioteca para a comunicação com os webservices da SEFAZ
  • suds-jurko (*apenas para NFS-e)
    • Biblioteca para a comunicação com os webservices via wsdl
  • pyxb (*apenas para NFS-e)
    • Biblioteca para geração de ligações a partir do XML Schema(xsd)

Principais Operações Fiscais com PyNFe

Embora o exemplo acima mostre como consultar o status da SEFAZ, o poder do PyNFe vai muito além. Com base na documentação oficial, a biblioteca oferece suporte completo ao ciclo de vida das notas fiscais. Você pode implementar rapidamente no seu sistema os seguintes fluxos:

  • Emissão e Impressão: Além de gerar e assinar o XML da nota, a biblioteca possui suporte nativo para a Impressão da NF-e (DANFE) e NFC-e, facilitando a vida no ponto de venda (PDV).
  • Tratamento de Quedas de Conexão: O sistema suporta a Emissão de NF-e em Contingência, garantindo que o seu cliente não pare de faturar se a SEFAZ ficar offline.
  • Correções e Cancelamentos: Integração rápida para gerar Cartas de Correção (CC-e) e realizar a Inutilização de Numeração ou Manifestação do Destinatário.
🏢 Hardware PDV & Automação Fiscal

⚡ Hacks para Devs e Automação Fiscal:

  • Auto-Entrada de Estoque: Configure um fluxo no n8n para ler os XMLs das NFes recebidas por e-mail, fazer o parse e alimentar o banco de dados (ex: Supabase) automaticamente.
  • Offline-First: Em PDVs de NFCe, armazene as notas em IndexedDB para emitir em contingência quando a internet cair, sincronizando o lote depois via Service Workers.
  • Frontend Reativo: Substitua o “polling” na SEFAZ por Webhooks + WebSockets. O usuário não precisa atualizar a página; a tela pisca em verde assim que a SEFAZ autoriza o envio.

Ampliando para Logística (MDF-e e CT-e)

Se o seu software em Python atende transportadoras, o PyNFe já está atualizado para a versão 3.00 do MDF-e (Manifesto Eletrônico) e CT-e. Através dele, é possível automatizar desde a emissão do Manifesto até o encerramento da viagem e a inclusão de novos condutores de forma programática.

english-interview-debugger.sh
$ grep -r "senior_dev_communication" ./career
[CRITICAL_ERROR] Código sênior detectado, mas fluência falhou no runtime.
Motivo: Travou na hora de explicar a arquitetura (System Design) em inglês para o gringo.

O mercado internacional não quer um robô de gramática. Quer um dev que saiba defender uma tomada de decisão técnica sob pressão. Destrave sua conversão na Preply com aulas particulares focadas em TI.

$ ./fix-english.sh --target=remote-job
Achar Professor Particular ➔
  • Instalação
pip install pynfe

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
  • Status da consulta
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
Fiapos

Instalação: pip install ruff Checar lint: ruff check . Formatar:ruff format .

Documentação

Suporte

Se você tiver qualquer problema ou sugestão, abra um problema aqui ou comece 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.

Perguntas Frequentes (FAQ): NF-e vs NFC-e

Qual a diferença básica entre NF-e e NFC-e?

A NF-e (Nota Fiscal Eletrônica – Modelo 55) é usada principalmente para operações de compra e venda entre empresas (B2B), devoluções, exportações e transferências. Já a NFC-e (Nota Fiscal de Consumidor Eletrônica – Modelo 65) é voltada para a venda direta ao consumidor final (B2C) no varejo físico, substituindo o antigo cupom fiscal e o ECF.

Qual certificado digital devo usar no meu servidor de emissão?

Para sistemas automatizados (ERPs e APIs na nuvem), o Certificado A1 é o mais recomendado. Ele é um arquivo digital (geralmente .pfx) que pode ser instalado diretamente no servidor, permitindo assinaturas simultâneas e automáticas sem a necessidade de dispositivos físicos (tokens ou smartcards), ao contrário do modelo A3.

O que acontece se a internet cair durante uma venda com NFC-e?

Diferente da NF-e, a NFC-e permite a emissão em Contingência Offline. O software gera o documento, imprime o DANFE para o cliente e, assim que a conexão for restabelecida (geralmente em um prazo de 24h), o XML deve ser transmitido para a SEFAZ para autorização definitiva.

Ramos da Informática
JS TS IA

Pesquisa: Como você está usando IA na sua rotina Dev?

Responda em menos de 2 minutos e ajude a direcionar nossos próximos artigos técnicos, guias e conteúdos.

Responder Pesquisa →
Ramos da Informática
Ramos da Informáticahttps://ramosdainformatica.com.br
Ramos da Informática é um hub de comunidade dedicado a linguagens de programação, banco de dados, DevOps, Internet das Coisas (IoT), tecnologias da Indústria 4.0, cibersegurança e startups. Com curadoria de conteúdos de qualidade, o projeto é mantido por Ramos de Souza Janones.

Mais recentes

Sincronizando PostgreSQL e Turbopuffer com Puffgres

Guia Definitivo: Sincronizando PostgreSQL e Turbopuffer com Puffgres para Buscas Vetoriais Avançadas A integração de inteligência artificial em aplicações modernas...

3 Técnicas para Reduzir Consumo de Tokens no Claude Code e Codex

Aprenda 3 técnicas eficientes para reduzir o consumo de tokens no Claude Code e Codex. Otimize custos, melhore a...

Entenda Componentes de Cache no Next.js

O modelo de cache do Next.js 16 por trás das Navegações Instantâneas. Aprenda a usar use cache, cacheLife e...

Grok 4.5: mais rápido e integrado ao Cursor

O laboratório de IA de Elon Musk, agora com nova identidade visual, acaba de dar mais um passo à...
E-Zine Dev

Evolua para Sênior

Estratégias de Node.js, arquitetura Limpa e IA que nunca publicamos no blog. Junte-se a +10.000 devs.

Assinar Gratuitamente Zero spam. Cancele quando quiser.

Cloudflare Monetization Gateway Está Redefinindo a Economia da IA

Cloudflare lança o Cloudflare Monetization Gateway que permite cobrar por APIs, dados e sites via micropagamentos em stablecoins. O...

Configuração do GLM-5.2 no Cursor via OpenRouter

Descubra o GLM-5.2, o novo modelo de pesos abertos que rivaliza com GPT-5.5 em tarefas agênticas. Aprenda a configurar...

Mais Lidos

Assinatura Digital de PDF no Node.js: Guia Prático

Aprenda como assinar PDFs digitalmente usando Node.js e certificados...

Integrar Código no Google Docs (Guia Prático)

Quem utilize o Google Docs para enviar documentos contendo...

Novidades no Ecossistema React: Reanimated 4, Puck e FortuneSheet

O ecossistema React continua a evoluir rapidamente, trazendo ferramentas...

n8n vs Zapier em 2026: Qual a Melhor Plataforma de Automação e IA

Conheça sobre o n8n gere integrações e automações para...
E-Zine Dev

Evolua para Sênior

Estratégias de Node.js, arquitetura Limpa e IA que nunca publicamos no blog. Junte-se a +10.000 devs.

Assinar Gratuitamente Zero spam. Cancele quando quiser.

Recursos da Comunidade

Carreira Internacional

JOB NA GRINGA

Meta de Salário Remoto
U$ 5.000/mês

O mapa completo para programadores do Brasil conquistarem contratos internacionais e mudarem de vida financeira.

  • Vagas exclusivas semanais: Membros acessam vagas com 7 dias de antecedência.
  • Workshops e lives gravadas: Buscar vagas não é óbvio. Nós te mostraremos como.
  • 498 Portais de vagas: Que contratam Brasileiros direto na sua dashboard.
  • Mentorias com Recrutadores: Encontros semanais ao vivo com Erika Linares.
  • Inglês diário com foco em conversação: Treine para entrevistas num ambiente sem julgamentos.
  • Suporte pós-contratação: Contabilidade e recebimento legal com a menor taxa.
Garantir Minha Vaga

Inscrição segura via Hotmart

Você vai gostarrelacionados
Continue aprendendo

E-Zine Dev Ramos

Quer dominar arquitetura e IA?

Junte-se a +10.000 profissionais. Receba semanalmente estratégias de Node.js, React e IA que nunca publicamos no blog.

Assinar Gratuitamente Zero spam. Cancele quando quiser.