Skip to main content

shade-plugins-documentos-fiscais

Lê a NF-e (XML e DANFE em PDF), confere a chave de acesso e decompõe a linha digitável do boleto. É um plugin do shade-sdk; roda offline, sem credencial, sem nenhuma operação com efeito e sem modelo de IA: só leitura e conta.

No shade.toml do robô:

[plugins]
documentos-fiscais = "0.1.0"
import shade_plugins_documentos_fiscais as fiscais

nota = fiscais.nfe_xml("nota.xml")
nota["emitente"]["nome"], nota["totais"]["nota"], nota["chave"]

danfe = fiscais.nfe_danfe("danfe.pdf")  # os mesmos campos, do PDF
chave = fiscais.chave_de_acesso("3526 1011 2223 3300 0181 5500 1000 0001 2311 2345 6783")
boleto = fiscais.boleto("23793.45677 89012.345677 89012.345677 5 16360000123456")
boleto["banco"], boleto["valor"], boleto["vencimento"]
Operação O que faz
chave_de_acesso(chave) Confere os 44 caracteres pelo dígito verificador (módulo 11; aceita o CNPJ alfanumérico) e devolve UF, mês da emissão, emitente (CNPJ ou CPF), modelo, série, número, tipo de emissão e código numérico.
nfe_xml(caminho) Lê o nfeProc/NFe (layout 4.00): emitente, destinatário, itens, totais, protocolo. A chave do Id é conferida e tem de bater com a UF, o mês, o emitente, o modelo, a série e o número da própria nota.
nfe_danfe(caminho) Os campos impressos no DANFE, lidos pelo mesmo pdfplumber do plugin pdf; o DANFE só imagem (escaneado) é lido por OCR local. Não precisa declarar o pdf no shade.toml.
boleto(codigo, referencia=None) Linha digitável de 47 dígitos ou código de barras de 44: banco, moeda, valor, vencimento, campo livre, e as duas formas do código. Confere os módulos 10 (três campos) e 11 (geral).
  • Recusa com motivo: o que não confere levanta DocumentoInvalido (um ErroDeNegocio: o item termina com falha, sem repetir) com motivo: digito_verificador, tamanho, formato, uf, emissao, modelo, emitente, chave_diverge, protocolo_diverge, doctype, xml_malformado, nao_e_nfe, estrutura, chave_nao_encontrada, pdf_ilegivel, arrecadacao.
  • XML seguro: a NF-e não tem DOCTYPE. O arquivo que traz um é recusado (doctype) antes de qualquer entidade ser expandida: nenhuma entidade externa lê arquivo do disco, e a cascata de entidades não estoura a memória. O arquivo passa de 10 MB → recusado.
  • Valores: dinheiro e quantidade saem em texto decimal ("215.00"), sem arredondar; o campo ausente é None.
  • Vencimento do boleto: o fator volta ao 1000 a cada 9.000 dias (o 1000 é 22/02/2025). O vencimento é o do ciclo mais próximo da referencia (a data de hoje, se omitida); fator 0000 e valor zero saem None (sem vencimento, valor livre).
  • Limites: boleto de arrecadação (48 dígitos: consumo e tributo) é recusado (arrecadacao). O DANFE só entrega, sempre, a chave e o que ela carrega; destinatário, totais e itens saem dos rótulos oficiais com o valor na linha de baixo e da tabela DADOS DOS PRODUTOS / SERVIÇOS, e o campo que o desenho do PDF não entrega sai None (o XML é a fonte completa).
  • DANFE escaneado: o PDF só imagem é lido pelo Tesseract da imagem do run (português, sem rede e sem IA), e leitura sai "ocr" ("texto" no PDF com camada de texto). A chave lida passa pelo mesmo dígito verificador: um dígito mal lido vira digito_verificador, nunca chave errada. O OCR não devolve a tabela desenhada, então itens sai vazio (o XML é a fonte). Página com confiança abaixo de 0,8 retém o item (ocr_baixa_confianca), com o documento anexado. Sem o Tesseract, ocr_indisponivel.

Metadata

Release files for shade-plugins-documentos-fiscais 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for shade-plugins-documentos-fiscais 0.2.0
File Interpreter ABI Platform Actions
shade_plugins_documentos_fiscais-0.2.0-py3-none-any.whl Python 3 none any Details for shade_plugins_documentos_fiscais-0.2.0-py3-none-any.whl

Release files / shade_plugins_documentos_fiscais-0.2.0-py3-none-any.whl

Download URL shade_plugins_documentos_fiscais-0.2.0-py3-none-any.whl
Size 23.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
395550af76c575b7e1f4db5ef6aae3f0eccffdc285787bf186edf439ac83050b
BLAKE2b-256 checksum
How to use checksums
2cdb3d58adf1714f8a640b9b203ae6ad7333dd55915b26ee8fa573f05683f795
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Security for shade-plugins-documentos-fiscais 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page