Exemplos completos
Os arquivos abaixo são pequenos programas executáveis com o SDK instalado, revalidados contra a a5 publicada, commit dc0f2bba99278f1763329d17b4662c947894ec94. Usam dados sintéticos, identificadores zerados e HOMOLOGAÇÃO; não devem ser transmitidos. Nenhum exemplo realiza consulta fiscal ou usa A1 real.
Baixe os arquivos no mesmo diretório para preservar os imports e o caminho da fixture. Use o Python do ambiente virtual descrito na instalação.
Para explorar os valores de um campo sem nenhum arquivo adicional, use python -m acbr ajuda Ide.tpNF e python -m acbr ajuda TTipoNFe. Ambos mostram tnEntrada e tnSaida. O guia de ajuda mostra também describe, introduzido na a4 e disponível na a5, com texto em português por padrão e opção --json; ajuda conserva a compatibilidade com a a3.
| Arquivo | Execução | Requisito |
|---|---|---|
| ajuda.py | python ajuda.py 'Det[].Prod.vProd' | Apenas cliente instalado; imprime metadados públicos do contrato |
| contrato_offline.py + documento_homologacao.json | python contrato_offline.py | Valida forma, snapshot imutável e rejeição de float; sem runtime |
| gerar_validar.py + os dois arquivos anteriores | python gerar_validar.py --runtime CAMINHO/runtime | Runtime íntegro; somente geração e validação locais |
assinar_local.py, a1_config.py, contrato_offline.py e JSON | python assinar_local.py --runtime CAMINHO/runtime | Geração, assinatura e validação locais; exige A1 injetado; sem transmissão |
| a1_config.py | python a1_config.py | Arquivo protegido e segredos injetados; apenas constrói configuração |
| recuperacao_bloqueada.py | python recuperacao_bloqueada.py | Demonstra REDE_NAO_AUTORIZADA; não inicia o runtime |
operacoes_simuladas.py + contrato_offline.py e JSON | python operacoes_simuladas.py | Formato das oito chamadas, tipos e evento; runtime/transporte substituídos por simulação offline |
Documento sintético
O JSON fornece os grupos infNFe, Ide, Emit, Dest, Det, Total, Transp e pag, com enums e decimais no formato do contrato. Os códigos tributários são apenas parte da fixture: não constituem orientação para enquadramento de uma operação real.
O exemplo verifica Ide.tpAmb == "taHomologacao" e preserva decimais como "10.00". A configuração nativa usa ambiente=2, modelo 55 e UF CE. CNPJ/CPF zerados não passam por validação fiscal; sua finalidade é impedir que a fixture seja confundida com um documento de contribuinte.
Geração e validação locais
Após instalar o runtime, execute gerar_validar.py com o diretório retornado pelo instalador. O programa não configura certificado, não chama recuperar_xml e não possui transmissão. Imprime apenas to_dict() de cada resultado.
Saídas do programa:
0: a etapa de validação local retornou sucesso.1: erro de configuração, contrato, runtime, transporte ou geração sem sucesso.2: a geração ocorreu, mas a validação local retornousucesso=False.
Uma nota sem assinatura ou com identificação sintética pode ser rejeitada pelo schema. Isso é esperado e não deve ser apresentado como autorização, homologação ou falha geral do SDK. Este exemplo nativo foi validado por checagem de código/protocolo; sua execução depende de runtime instalado e não faz parte dos testes offline da documentação.
A1 e rede
a1_config.py lê os nomes de variáveis documentados em configuração, mas não imprime valores nem executa operações. Não preencha os exemplos com credenciais reais para enviar a terceiros ou publicar no repositório.
recuperacao_bloqueada.py chama o método com o padrão allow_network=False e confirma o erro antes de qualquer verificação/execução do runtime. operacoes_simuladas.py apresenta as oito chamadas completas, incluindo allow_network=True, mas substitui verificação e transporte por mocks e bloqueia a criação de processo. Sua saída é identificada como simulação; estados, assinatura e eventos não são respostas nativas ou fiscais. Esse simulador é apenas uma fixture didática, não uma implementação a ser copiada para produção.
assinar_local.py permite compreender o encadeamento geração → assinatura → validação local e imprime somente resumos. Identificação sintética pode falhar em verificações nativas; a documentação não executou esse arquivo com A1 real nem criou um certificado. Para o contrato experimental e o processo de reconciliação, leia recuperação. A documentação não fornece script que execute consulta remota real.
Verificações reproduzíveis
No checkout desta documentação, com o SDK instalado no ambiente:
python -B tests/verify_examples.py --source CAMINHO/acbr-pythonO verificador fixa o commit esperado, compila os exemplos sem gerar bytecode no SDK, testa fixture, bloqueio de rede, configuração sintética, mapeamento do protocolo e links Markdown locais. Não baixa runtime, não acessa a SEFAZ e não exige certificado real. Veja a auditoria entregue com a documentação para os resultados desta execução.