ACBr Python
Integre NF-e e NFC-e à sua aplicação com o pacote Python acbr-python, importado como acbr. Ele funciona com a biblioteca padrão, sem dependência de framework. Para executar operações nativas, o cliente inicia diretamente um processo Pascal/ACBr por operação e troca mensagens JSON por pipes, sem shell. Node.js, npm e PHP não são requisitos de execução.
Versão publicada: alpha 0.1.0a5 no PyPI, tag v0.1.0a5, commit dc0f2bba99278f1763329d17b4662c947894ec94. O runtime fixado é 0.2.1. A publicação do pacote não comprova homologação fiscal nem prontidão para produção.
Ajuda introduzida na a4 e preservada na a5: describe, describe --json, --version e describe_type fazem parte da versão publicada. ajuda e describe_field continuam compatíveis com a a3. Veja a ajuda de campos e tipos.
A a5 atualiza o README e os metadados com o endereço desta documentação. A API, o contrato e o runtime são os mesmos da a4; confira a origem versionada e os artefatos publicados.
O que está disponível
| Recurso público | O que faz | Limite |
|---|---|---|
Documento, validate_document | Conferem tipos e campos do contrato | Não validam regras fiscais nem exigem todos os campos de uma NF-e |
describe_field e python -m acbr ajuda | Consultam campos, tipos e enums offline desde a a3 | Não exigem runtime nem certificado |
Emissor.gerar_xml | Solicita geração local de XML ao runtime | XML gerado não significa documento autorizado |
Emissor.validar | Solicita validação local pelo runtime | Schema e autorização fiscal são etapas distintas |
Emissor.assinar | Assina XML localmente usando A1 | Não transmite; exige certificado na configuração |
Emissor.transmitir | Transmite XML já assinado | Pode produzir efeito fiscal; A1 e allow_network=True explícito |
Emissor.consultar | Consulta por chave com recibo opcional | Usa Consulta; A1 e rede explícita |
Emissor.cancelar | Solicita cancelamento | Usa Cancelamento; A1 e rede explícita |
Emissor.inutilizar | Solicita inutilização de faixa | Usa Inutilizacao; A1 e rede explícita |
Emissor.recuperar_xml | Interface experimental de recuperação por consulta | Requer A1, XML assinado e permissão explícita de rede; sem homologação remota neste snapshot |
As oito operações estão implementadas na API da a5 publicada. As operações de rede foram verificadas com protocolo simulado, sem consulta ou efeito fiscal real. HOMOLOGAÇÃO (ambiente=2) também utiliza rede real e não dispensa a permissão por chamada.
Comece em três etapas
- Instale o pacote publicado com pip.
- Consulte a ajuda de campos e tipos, entenda o contrato e execute os exemplos offline.
- Instale e verifique o runtime nativo antes de gerar ou validar XML.
Todos os exemplos usam dados sintéticos, ambiente=2 e taHomologacao. Não possuem valor fiscal e não devem ser transmitidos. Não há certificado real nem chamada à SEFAZ nos exemplos entregues.
Compatibilidade e arquitetura
O alvo é CPython 3.11 a 3.14, Windows x64 e Linux x64 com glibc. O runtime Linux de referência usa Ubuntu 24.04. macOS, ARM, Alpine/musl, Python 32 bits e outras implementações Python estão fora do MVP.
O pacote Python não tem dependências de execução além da biblioteca padrão. O wheel contém o cliente, tipos, contrato e manifesto; o runtime é instalado separadamente por ação explícita. pip install, import acbr e a ajuda não baixam nem executam o runtime.
O runtime fixado 0.2.1 preserva os executáveis e o contrato da 0.2.0, com os textos de licença completados. O contrato corresponde à revisão ACBr 48590. A origem histórica dos artefatos é o projeto ACBr Node; o Python instala os arquivos nativos originais e chama o executável Pascal diretamente. Ele não reimplementa cálculos, regras tributárias ou assinatura. Consulte runtime e integridade, API, limitações e recuperação e fontes e licenças.
Como interpretar a evidência
Os testes do SDK usam workers simulados; a suíte nativa é opt-in e encadeia geração, assinatura e validação locais com A1 sintético efêmero. Como evidência histórica da a3, o responsável pelo SDK confirmou instalação do pacote publicado a3 e testes nativos offline no Windows x64 e Ubuntu 24.04 x64, incluindo rejeição de assinatura alterada. A auditoria desta documentação distingue essa evidência recebida dos testes executados aqui. Nenhum desses testes usou rede fiscal ou certificado de contribuinte.
Este é um projeto independente, sem declaração de certificação oficial pelo Projeto ACBr. Não há homologação fiscal remota ou prontidão para produção demonstrada neste snapshot.