pynfse-nacional

Biblioteca Python para integração com a API do NFSe Nacional.

Comece aqui

Guia de início

Instale, configure certificado mTLS e envie a primeira DPS.

Começando
Referência da API

Cliente, modelos, XML, PDF e utilitários gerados dos docstrings.

Referência da API
Guias

Fluxos práticos para emissão, consulta, cancelamento e substituição.

Guias
Arquitetura

Stack, navegação, regras de renderização e publicação.

Arquitetura da documentação

Instalação

uv add pynfse-nacional

Para DANFSe em PDF:

uv add "pynfse-nacional[pdf]"

Quickstart

from datetime import datetime
from decimal import Decimal

from pynfse_nacional import DPS, Endereco, NFSeClient, Prestador, Servico, Tomador

client = NFSeClient(
    cert_path="/caminho/para/certificado.pfx",
    cert_password="senha",
    ambiente="homologacao",
)

endereco = Endereco(
    logradouro="Rua Exemplo",
    numero="100",
    bairro="Centro",
    codigo_municipio=3550308,
    uf="SP",
    cep="01310100",
)

dps = DPS(
    serie="900",
    numero=1,
    competencia="2026-01",
    data_emissao=datetime.now(),
    prestador=Prestador(
        cnpj="11222333000181",
        inscricao_municipal="12345",
        razao_social="Empresa Exemplo LTDA",
        endereco=endereco,
    ),
    tomador=Tomador(
        cpf="52998224725",
        razao_social="Joao da Silva",
        endereco=endereco,
    ),
    servico=Servico(
        codigo_lc116="04.03.01",
        discriminacao="Consulta médica em consultório",
        valor_servicos=Decimal("500.00"),
    ),
)

response = client.submit_dps(dps)

O que este site cobre

  • Guias para certificado, emissão, consulta, cancelamento, substituição, PDF e IBSCBS.

  • Referência da API gerada dos docstrings do código.

  • Apêndice para troubleshooting, ambiente e release.

Documentação oficial

Licença

GNU Affero General Public License v3 (AGPL-3.0)