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(umErroDeNegocio: o item termina com falha, sem repetir) commotivo: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 saemNone(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 tabelaDADOS DOS PRODUTOS / SERVIÇOS, e o campo que o desenho do PDF não entrega saiNone(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
leiturasai"ocr"("texto"no PDF com camada de texto). A chave lida passa pelo mesmo dígito verificador: um dígito mal lido viradigito_verificador, nunca chave errada. O OCR não devolve a tabela desenhada, entãoitenssai 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.