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

-

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 →

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

NVIDIA Lança Cosmos 3: Nova Plataforma de IA Física para Robôs Humanoides e Fábricas Inteligentes

NVIDIA apresenta plataforma full-stack para robôs humanoides, robotáxis e fábricas inteligentes Cosmos 3, robôs humanoides e ferramentas para robotáxis são...

Repositórios e Skills Essenciais para Claude Code, Cursor e Codex

Se você já integrou o Claude Code, Cursor ou Codex no seu fluxo de trabalho, sabe que o jogo...

17 Ferramentas No-Code para Validar Seu Negócio

No mundo dos negócios, construir um Produto Mínimo Viável (MVP) não pode ser sinônimo de queimar o caixa da...

Extensões PostgreSQL: Substitua Redis, MongoDB e Kafka com SQL

Dominar as extensões PostgreSQL deixou de ser apenas uma opção para se tornar a principal estratégia de arquitetura em...
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.

State of AI 2026: A Maturidade da Inteligência Artificial

A inteligência artificial deixou definitivamente o território das experimentações e se consolidou como uma peça de infraestrutura fundamental no...

Construindo um Servidor MCP Personalizado com Node.js

Um guia prático para construir seu próprio servidor MCP para enriquecer as respostas de ferramentas de IA com contexto...

Mais Lidos

Proteção de APIs: Guia Definitivo de Segurança

A missão de um CISO é capacitar a empresa...

Como gerar tipos TypeScript direto do PostgreSQL com Kanel

Você já passou por aquela situação trágica de adicionar...

Desenvolva com Oracle Database 23c: Recursos Avançados

Com ele, os desenvolvedores poderão aprimorar suas habilidades e...

O Problema N+1 Queries no SQL: O Que É e Como Resolver

Seu banco de dados está lento por causa do...
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.