Módulo satcfe.base

class satcfe.base.DLLSAT(caminho=None, convencao=1)

Configura a localização da DLL do equipamento SAT e mantém uma referência carregada para a ela, conforme a convenção de chamada.

caminho

Caminho completo, incluindo o nome do arquivo, para a biblioteca SAT (DLL ou shared object).

Levanta ValueError:
 Se a biblioteca não existir no caminho indicado.
carregar()

Carrega (ou recarrega) a biblioteca SAT.

Levanta ValueError:
 Se a convenção de chamada não for reconhecida.
convencao

Convenção de chamada para a biblioteca SAT. Deverá ser um dos valores disponíveis na contante CONVENCOES_CHAMADA.

Levanta ValueError:
 Se a convenção de chamada não for reconhecida.
ref

Uma referência para a biblioteca SAT carregada.

class satcfe.base.FuncoesSAT(dll=None, numerador_sessao=None)

Estabelece a interface básica para acesso às funções da biblioteca SAT.

A intenção é que esta classe seja a base para classes mais especializadas capazes de trabalhar as respostas, resultando em objetos mais úteis, já que os métodos desta classe invocam as funções da biblioteca SAT e retornam o resultado verbatim.

As funções implementadas estão descritas na ER SAT, item 6.1.

Item ER Função Método
6.1.1 AtivarSAT ativar_sat()
6.1.2 ComunicarCertificadoICPBRASIL comunicar_certificado_icpbrasil()
6.1.3 EnviarDadosVenda enviar_dados_venda()
6.1.4 CancelarUltimaVenda cancelar_ultima_venda()
6.1.5 ConsultarSAT consultar_sat()
6.1.6 TesteFimAFim teste_fim_a_fim()
6.1.7 ConsultarStatusOperacional consultar_status_operacional()
6.1.8 ConsultarNumeroSessao consultar_numero_sessao()
6.1.9 ConfigurarInterfaceDeRede configurar_interface_de_rede()
6.1.10 AssociarAssinatura associar_assinatura()
6.1.11 AtualizarSoftwareSAT atualizar_software_sat()
6.1.12 ExtrairLogs extrair_logs()
6.1.13 BloquearSAT bloquear_sat()
6.1.14 DesbloquearSAT desbloquear_sat()
6.1.15 TrocarCodigoDeAtivacao trocar_codigo_de_ativacao()
associar_assinatura(sequencia_cnpj, assinatura_ac)

Função AssociarAssinatura conforme ER SAT, item 6.1.10. Associação da assinatura do aplicativo comercial.

Parâmetros:
  • sequencia_cnpj – Sequência string de 28 dígitos composta do CNPJ do desenvolvedor da AC e do CNPJ do estabelecimento comercial contribuinte, conforme ER SAT, item 2.3.1.
  • assinatura_ac – Sequência string contendo a assinatura digital do parâmetro sequencia_cnpj codificada em base64.
Retorna:

Retorna verbatim a resposta da função SAT.

Tipo de retorno:
 

string

ativar_sat(tipo_certificado, cnpj, codigo_uf)

Função AtivarSAT conforme ER SAT, item 6.1.1. Ativação do equipamento SAT. Dependendo do tipo do certificado, o procedimento de ativação é complementado enviando-se o certificado emitido pela ICP-Brasil (comunicar_certificado_icpbrasil()).

Parâmetros:
  • tipo_certificado (int) – Deverá ser um dos valores satcomum.constantes.CERTIFICADO_ACSAT_SEFAZ, satcomum.constantes.CERTIFICADO_ICPBRASIL ou satcomum.constantes.CERTIFICADO_ICPBRASIL_RENOVACAO, mas nenhuma validação será realizada antes que a função de ativação seja efetivamente invocada.
  • cnpj (str) – Número do CNPJ do estabelecimento contribuinte, contendo apenas os dígitos. Nenhuma validação do número do CNPJ será realizada antes que a função de ativação seja efetivamente invocada.
  • codigo_uf (int) – Código da unidade federativa onde o equipamento SAT será ativado (eg. 35 para o Estado de São Paulo). Nenhuma validação do código da UF será realizada antes que a função de ativação seja efetivamente invocada.
Retorna:

Retorna verbatim a resposta da função SAT.

Tipo de retorno:
 

string

atualizar_software_sat()

Função AtualizarSoftwareSAT conforme ER SAT, item 6.1.11. Atualização do software do equipamento SAT.

Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
bloquear_sat()

Função BloquearSAT conforme ER SAT, item 6.1.13. Bloqueio operacional do equipamento SAT.

Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
cancelar_ultima_venda(chave_cfe, dados_cancelamento)

Função CancelarUltimaVenda conforme ER SAT, item 6.1.4. Envia o CF-e de cancelamento para o equipamento SAT, que o enviará para autorização e cancelamento do CF-e pela SEFAZ.

Parâmetros:
  • chave_cfe – String contendo a chave do CF-e a ser cancelado, prefixada com o literal CFe.
  • dados_cancelamento – Uma instância de CFeCancelamento ou uma string contendo o XML do CF-e de cancelamento.
Retorna:

Retorna verbatim a resposta da função SAT.

Tipo de retorno:
 

string

comunicar_certificado_icpbrasil(certificado)

Função ComunicarCertificadoICPBRASIL conforme ER SAT, item 6.1.2. Envio do certificado criado pela ICP-Brasil.

Parâmetros:certificado (str) – Conteúdo do certificado digital criado pela autoridade certificadora ICP-Brasil.
Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
configurar_interface_de_rede(configuracao)

Função ConfigurarInterfaceDeRede conforme ER SAT, item 6.1.9. Configurção da interface de comunicação do equipamento SAT.

Parâmetros:configuracao – Instância de ConfiguracaoRede ou uma string contendo o XML com as configurações de rede.
Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
consultar_numero_sessao(numero_sessao)

Função ConsultarNumeroSessao conforme ER SAT, item 6.1.8. Consulta o equipamento SAT por um número de sessão específico.

Parâmetros:numero_sessao (int) – Número da sessão que se quer consultar.
Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
consultar_sat()

Função ConsultarSAT conforme ER SAT, item 6.1.5. Usada para testes de comunicação entre a AC e o equipamento SAT.

Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
consultar_status_operacional()

Função ConsultarStatusOperacional conforme ER SAT, item 6.1.7. Consulta do status operacional do equipamento SAT.

Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
desbloquear_sat()

Função DesbloquearSAT conforme ER SAT, item 6.1.14. Desbloqueio operacional do equipamento SAT.

Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
enviar_dados_venda(dados_venda)

Função EnviarDadosVenda conforme ER SAT, item 6.1.3. Envia o CF-e de venda para o equipamento SAT, que o enviará para autorização pela SEFAZ.

Parâmetros:dados_venda – Uma instância de CFeVenda ou uma string contendo o XML do CF-e de venda.
Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
extrair_logs()

Função ExtrairLogs conforme ER SAT, item 6.1.12. Extração dos registros de log do equipamento SAT.

Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
gerar_numero_sessao()

Gera o número de sessão para a próxima invocação de função SAT.

teste_fim_a_fim(dados_venda)

Função TesteFimAFim conforme ER SAT, item 6.1.6. Teste de comunicação entre a AC, o equipamento SAT e a SEFAZ.

Parâmetros:dados_venda – Uma instância de CFeVenda ou uma string contendo o XML do CF-e de venda de teste.
Retorna:Retorna verbatim a resposta da função SAT.
Tipo de retorno:
 string
trocar_codigo_de_ativacao(novo_codigo_ativacao, opcao=1, codigo_emergencia=None)

Função TrocarCodigoDeAtivacao conforme ER SAT, item 6.1.15. Troca do código de ativação do equipamento SAT.

Parâmetros:
  • novo_codigo_ativacao (str) – O novo código de ativação escolhido pelo contribuinte.
  • opcao (int) – Indica se deverá ser utilizado o código de ativação atualmente configurado, que é um código de ativação regular, definido pelo contribuinte, ou se deverá ser usado um código de emergência. Deverá ser o valor de uma das constantes satcomum.constantes.CODIGO_ATIVACAO_REGULAR (padrão) ou satcomum.constantes.CODIGO_ATIVACAO_EMERGENCIA. Nenhuma validação será realizada antes que a função seja efetivamente invocada. Entretanto, se opção de código de ativação indicada for CODIGO_ATIVACAO_EMERGENCIA, então o argumento que informa o codigo_emergencia será checado e deverá avaliar como verdadeiro.
  • codigo_emergencia (str) – O código de ativação de emergência, que é definido pelo fabricante do equipamento SAT. Este código deverá ser usado quando o usuário perder o código de ativação regular, e precisar definir um novo código de ativação. Note que, o argumento opcao deverá ser informado com o valor satcomum.constantes.CODIGO_ATIVACAO_EMERGENCIA para que este código de emergência seja considerado.
Retorna:

Retorna verbatim a resposta da função SAT.

Tipo de retorno:
 

string

Levanta ValueError:
 

Se o novo código de ativação avaliar como falso (possuir uma string nula por exemplo) ou se o código de emergencia avaliar como falso quando a opção for pelo código de ativação de emergência.

Aviso

Os argumentos da função TrocarCodigoDeAtivacao requerem que o novo código de ativação seja especificado duas vezes (dois argumentos com o mesmo conteúdo, como confirmação). Este método irá simplesmente informar duas vezes o argumento novo_codigo_ativacao na função SAT, mantendo a confirmação do código de ativação fora do escopo desta API.

class satcfe.base.NumeroSessaoMemoria(tamanho=100)

Implementa um numerador de sessão simples, baseado em memória, não persistente, que irá gerar um número de sessão (seis dígitos) diferente entre os n últimos números de sessão gerados. Conforme a ER SAT, um número de sessão não poderá ser igual aos últimos 100 números.

>>> numerador = NumeroSessaoMemoria(tamanho=5)
>>> n1 = numerador()
>>> 100000 <= n1 <= 999999
True
>>> n1 in numerador
True
>>> n2 = numerador()
>>> n3 = numerador()
>>> n4 = numerador()
>>> n5 = numerador()
>>> len(set([n1, n2, n3, n4, n5]))
5
>>> n6 = numerador()
>>> n1 in numerador
False