Repository navigation
Primeira versão publicada do SDK oficial da NFE.io para Python.
pip install nfe-io
PyPI: https://pypi.org/project/nfe-io/0.1.0/ — publicado por Trusted Publishing, com attestations (PEP 740) deste repositório e do workflow release.yml.
SHA-256 dos artefatos (idênticos aos do PyPI):
nfe_io-0.1.0-py3-none-any.whl:52315e01a2d16e5fe0bf60696c4baf2c1890b0ac45d972b9bb515fb4fdf9772bnfe_io-0.1.0.tar.gz:25e906a03cbd67c0c96136d7512b05c7010c7fd37fe66588ae03bd795e4cd30d
Primeira versão do SDK oficial da NFE.io para Python (pip install nfe-io, import nfeio).
Adicionado
- Clientes
NfeClient(síncrono) eAsyncNfeClient(assíncrono, viaasyncio.to_thread), com a
mesma superfície e o mesmo comportamento, sem estado global. - Duas chaves por família de API:
api_key(NFS-e, empresas, certificados, webhooks) e
data_api_key(CNPJ, CPF, CEP), lidas também deNFE_API_KEYeNFE_DATA_API_KEY. Envio em
Authorization: <chave>. - NFS-e (API v1):
create,list,retrieve,find_by_external_id,cancel,send_email,
download_pdf,download_xml,download_cancellation_xml,wait,create_and_waite
cancel_and_wait. - Empresas (API v2, paginação por cursor):
list,retrieve,create,update,delete. - Certificados:
upload(multipart, campofile) elist, comexpires_oneis_expired(). - Webhooks da conta:
list,retrieve,create,update,delete,ping,event_types. nfeio.webhooks.verify_signature(HMAC-SHA1 em tempo constante, nunca levanta exceção) e
construct_event(verifica antes de interpretar o corpo).- Consultas:
lookups.cnpj(v3, CNPJ numérico e alfanumérico),lookups.cnpj_state_taxes,
lookups.cpfelookups.cep, com validação local de dígitos verificadores. - Modelos
NfeObject:Mappingimutável sobre o JSON do fio, com propriedades tipadas para ids,
status, datas (datetimecom fuso), valores (Decimal) e documentos (CNPJ/CPF normalizados). - Paginação por índice (1-based) e por cursor com
auto_paging_iter()síncrono e assíncrono. - Hierarquia de erros por status com
request_id,trace_id,error_codee
outcome_unknown; leitura dos cinco formatos de erro usados pela API. RequestOptionspor chamada (api_key,timeout,max_retries,idempotency_key,
extra_headers) eapp_infono User-Agent.- Transporte só com a biblioteca padrão, substituível pelos protocolos
Transporte
AsyncTransport.
Segurança
- Retry ciente de método e da fase da falha: um
POST(como a emissão) nunca é repetido depois
que pode ter chegado à API;Idempotency-Keynão muda essa regra. - TLS sempre verificado (mínimo 1.2), sem opção para desligar; timeouts finitos; respostas
limitadas a 10 MiB; sem compressão. - JSON não confiável (respostas, erros e webhooks) limitado a 128 níveis de aninhamento, com o
mesmo resultado em qualquer versão do Python. - Redirect de download seguido só em https e sem a chave de API.
- Ids,
externalIde documentos validados antes de entrar no path (sem path traversal). - Chaves, senha de certificado e segredo de webhook nunca aparecem em
repr, logs ou
exceções; logs não registram documentos nemexternalId. - Zero dependências de runtime.