Módulo satcfe.entidades

class satcfe.entidades.CFeCancelamento(destinatario=None, **kwargs)

Representa um CF-e de cancelamento.

Parâmetros:
  • destinatario (Destinatario) – Opcional. Uma instância de Destinatario contendo apenas os dados exigidos para a operação de cancelamento (ie. CPF ou CNPJ do destinatário).
  • chCanc (str) – Chave de acesso do CF-e a ser cancelado. Deve ser precedido do literal CFe seguido dos quarenta e quatro dígitos que compõem a chave de acesso.
  • CNPJ (str) – CNPJ da software house, desenvolvedora do aplicativo comercial, contendo apenas os dígitos do número e incluindo zeros não significativos, se for o caso (14 dígitos).
  • signAC (str) – Assinatura do aplicativo comercial (344 dígitos).
  • numeroCaixa (int) – Número do caixa ao qual o SAT está conectado. Normalmente este será o número do caixa de onde parte a solicitação de cancelamento. Deverá ser um número inteiro entre 0 e 999.
destinatario

O Destinatario ou None.

class satcfe.entidades.CFeVenda(emitente=None, destinatario=None, entrega=None, detalhamentos=None, descontos_acrescimos_subtotal=None, pagamentos=None, informacoes_adicionais=None, **kwargs)

Representa um CF-e de venda.

Parâmetros:
  • emitente (Emitente) – Identificação do emitente do CF-e.
  • destinatario (Destinatario) – Opcional. Identificação do destinatário.
  • entrega (LocalEntrega) – Opcional. Informações do local de entrega.
  • detalhamentos (list) – Uma lista de objetos ProdutoServico que representam os produtos/serviços participantes do CF-e de venda.
  • descontos_acrescimos_subtotal (DescAcrEntr) – Opcional. Se informado, deverá ser um objeto DescAcrEntr que contenha o valor de desconto ou acréscimo sobre o subtotal.
  • pagamentos (list) – Uma lista de objetos MeioPagamento que descrevem cada um dos meios de pagamentos usados no CF-e de venda.
  • informacoes_adicionais (InformacoesAdicionais) – Opcional.
  • versaoDadosEnt (str) – Opcional. String contendo a versão do layout do arquivo de dados do aplicativo comercial. Se não informado será utilizado o valor da constante VERSAO_LAYOUT_ARQUIVO_DADOS_AC do módulo constantes do projeto ``satcomum` <https://github.com/base4sistemas/satcomum/>`_
  • CNPJ (str) – CNPJ da software house, desenvolvedora do aplicativo comercial, contendo apenas os dígitos do número e incluindo zeros não significativos, se for o caso (14 dígitos).
  • signAC (str) – Assinatura do aplicativo comercial (344 dígitos).
  • numeroCaixa (int) – Número do caixa ao qual o SAT está conectado. Normalmente este será o número do caixa de onde parte a solicitação de cancelamento. Deverá ser um número inteiro entre 0 e 999.
  • vCFeLei12741 (Decimal) – Opcional. Se informado deve representar a soma total dos valores aproximados dos tributos, em cumprimento à Lei nº 12.741/2012.

..note:

Não há uma classe específica para representar o elemento ``ide``
do grupo ``B01``, já que todos os seus atributos são esperados nesta
classe.
descontos_acrescimos_subtotal

Os descontos e acréscimos no subtotal do CF-e (DescAcrEntr) ou None.

destinatario

O Destinatario do CF-e ou None.

detalhamentos

Lista de objetos Detalhamento, descrevendo os produtos e serviços do CF-e.

emitente

O Emitente do CF-e.

entrega

O Local de entrega (LocalEntrega) ou None.

informacoes_adicionais

Informações adicionais do CF-e (InformacoesAdicionais) ou None.

pagamentos

Lista de objetos :class`MeioPagamento`, descrevendo os meios de pagamento empregados na quitação do CF-e.

class satcfe.entidades.COFINSAliq(**kwargs)

Grupo de COFINS tributado pela alíquota, CST 01, 02 ou 05 (COFINSAliq, grupo S02).

Parâmetros:
  • CST (str) –
  • vBC (Decimal) –
  • pCOFINS (Decimal) –
class satcfe.entidades.COFINSNT(**kwargs)

Grupo de COFINS não tributado, CST 04, 06, 07 08 ou 09 (COFINSNT, grupo S04).

Parâmetros:CST (str) –
class satcfe.entidades.COFINSOutr(**kwargs)

Grupo de COFINS para outras operações, CST 99 (COFINSOutr, grupo S06).

Parâmetros:
  • CST (str) –
  • vBC (str) – Opcional. Se informado deverá ser também informado o parâmetro pCOFINS.
  • pCOFINS (str) – Opcional. Se informado deverá ser também informado o parâmetro vBC.
  • qBCProd (str) – Opcional. Se informado deverá ser também informado o parâmetro vAliqProd.
  • vAliqProd (str) – Opcional. Se informado deverá ser também informado o parâmetro qBCProd.

Nota

Os parâmetros vBC e qBCProd são mutuamente exclusivos, e um ou outro devem ser informados.

class satcfe.entidades.COFINSQtde(**kwargs)

Grupo de COFINS tributado por quantidade, CST 03 (COFINSQtde, grupo S03).

Parâmetros:
  • CST (str) –
  • qBCProd (Decimal) –
  • vAliqProd (Decimal) –
class satcfe.entidades.COFINSSN(**kwargs)

Grupo de COFINS para contribuíntes do Simples Nacional, CST 49 (COFINSSN, grupo S05).

Parâmetros:CST (str) –
class satcfe.entidades.COFINSST(**kwargs)

Grupo de COFINS substituição tributária (COFINSST, grupo T01).

Parâmetros:
  • vBC (str) – Opcional. Se informado deverá ser também informado o parâmetro pCOFINS.
  • pCOFINS (str) – Opcional. Se informado deverá ser também informado o parâmetro vBC.
  • qBCProd (str) – Opcional. Se informado deverá ser também informado o parâmetro vAliqProd.
  • vAliqProd (str) – Opcional. Se informado deverá ser também informado o parâmetro qBCProd.

Nota

Os parâmetros vBC e qBCProd são mutuamente exclusivos, e um ou outro **devem ser informados.

class satcfe.entidades.DescAcrEntr(**kwargs)

Grupo de valores de entrada de desconto/acréscimo sobre subtotal (DescAcrEntr, grupo W19).

Parâmetros:
  • vDescSubtot (Decimal) – Valor de entrada de desconto sobre subtotal. Se este argumento for informado, então o argumento vAcresSubtot não deve ser informado.
  • vAcresSubtot (Decimal) – Valor de entrada de acréscimo sobre subtotal. Se este argumento for informado, então o argumento vDescSubtot não deve ser informado.
class satcfe.entidades.Destinatario(**kwargs)

Identificação do destinatário do CF-e (dest, grupo E01).

Parâmetros:
  • CNPJ (str) – Número do CNPJ do destinatário, contendo apenas os digitos e incluindo os zeros não significativos. Não deve ser informado se o ``CPF`` for informado.
  • CPF (str) – Número do CPF do destinatário, contendo apenas os digitos e incluindo os zeros não significativos. Não deve ser informado se o ``CNPJ`` for informado.
  • xNome (str) – Opcional. Nome ou razão social do destinatário. O nome do destinatário será ignorado no XML do CF-e de cancelamento.
class satcfe.entidades.Detalhamento(produto=None, imposto=None, **kwargs)

Detalhamento do produto ou serviço do CF-e (det, grupo H01).

Parâmetros:
  • produto (ProdutoServico) – Produto ou serviço, como uma instância de ProdutoServico ao qual o detalhamento se refere.
  • imposto (Imposto) – O grupo de tributos incidentes no produto ou serviço ao qual o detalhamento se refere, como uma instância de Imposto.
  • infAdProd (str) – Opcional. Informações adicionais do produto ou serviço (norma referenciada, informações complementares, etc).

Nota

O atributo XML nItem (H02) não é determinado aqui, mas atribuído automaticamente, conforme a sua posição na lista de detalhamentos.

class satcfe.entidades.Emitente(**kwargs)

Identificação do emitente do CF-e (emit, grupo C01).

Parâmetros:
  • CNPJ (str) – Número do CNPJ do emitente do CF-e, contendo apenas os digitos e incluindo os zeros não significativos.
  • IE (str) – Número de Inscrição Estadual do emitente do CF-e, contendo apenas digitos.
  • IM (str) – Opcional. Deve ser informado o número da Inscrição Municipal quando o CF-e possuir itens com prestação de serviços sujeitos ao ISSQN, por exemplo.
  • cRegTribISSQN (str) – Opcional. Indica o regime especial de tributação do ISSQN. Veja as constantes em C15_CREGTRIBISSQN_EMIT.
  • indRatISSQN (str) – Opcional. Indicador de rateio do desconto sobre o subtotal entre itens sujeitos à tributação pelo ISSQN. Veja as constantes em C16_INDRATISSQN_EMIT.
class satcfe.entidades.Entidade(schema={}, validator_class=None, **kwargs)

Classe base para todas as classes que representem as entidades da implementação do SAT-CF-e. Aqui, chamaremos de “entidade” as classes que representem os grupos de dados que são usados para formar o XML do CF-e de venda ou de cancelamento.

Basicamente, as subclasses precisam sobrescrever a implementação do método _construir_elemento_xml, definir o atributo _schema e, quando necessário, implementar uma especialização do validador no atributo _validator_class.

documento(*args, **kwargs)

Resulta no documento XML como string, que pode ou não incluir a declaração XML no início do documento.

class satcfe.entidades.ExtendedValidator(*args, **kwargs)

Validator class. Normalizes and/or validates any mapping against a validation-schema which is provided as an argument at class instantiation or upon calling the validate(), validated() or normalized() method. An instance itself is callable and executes a validation.

All instantiation parameters are optional.

There are the introspective properties types, validators, coercers, default_setters, rules, normalization_rules and validation_rules.

The attributes reflecting the available rules are assembled considering constraints that are defined in the docstrings of rules’ methods and is effectively used as validation schema for schema.

Parâmetros:
  • schema (any mapping) – See schema. Defaults to None.
  • ignore_none_values (bool) – See ignore_none_values. Defaults to False.
  • allow_unknown (bool or any mapping) – See allow_unknown. Defaults to False.
  • require_all (bool) – See require_all. Defaults to False.
  • purge_unknown (bool) – See purge_unknown. Defaults to to False.
  • purge_readonly (bool) – Removes all fields that are defined as readonly in the normalization phase.
  • error_handler (class or instance based on BaseErrorHandler or tuple) – The error handler that formats the result of errors. When given as two-value tuple with an error-handler class and a dictionary, the latter is passed to the initialization of the error handler. Default: BasicErrorHandler.
class satcfe.entidades.ICMS00(**kwargs)

Grupo de tributação do ICMS 00, 20 e 90 (ICMS00, grupo N02).

Parâmetros:
  • Orig (str) –
  • CST (str) –
  • pICMS (Decimal) –
class satcfe.entidades.ICMS40(**kwargs)

Grupo de tributação do ICMS 40, 41 e 60 (ICMS40, grupo N03).

Parâmetros:
  • Orig (str) –
  • CST (str) –
class satcfe.entidades.ICMSSN102(**kwargs)

Grupo de tributação do ICMS Simples Nacional, CSOSN 102, 300, 400 e 500 (ICMSSN102, grupo N04).

Parâmetros:
  • Orig (str) –
  • CSOSN (str) –
class satcfe.entidades.ICMSSN900(**kwargs)

Grupo de tributação do ICMS Simples Nacional, CSOSN 900 (ICMSSN900, grupo N05).

Parâmetros:
  • Orig (str) –
  • CSOSN (str) –
  • pICMS (Decimal) –
class satcfe.entidades.ISSQN(**kwargs)

Grupo do ISSQN (ISSQN, grupo U01).

Parâmetros:
  • vDeducISSQN (Decimal) –
  • vAliq (Decimal) –
  • cMunFG (str) – Opcional.
  • cListServ (str) – Opcional.
  • cServTribMun (str) – Opcional.
  • cNatOp (str) –
  • indIncFisc (str) –
class satcfe.entidades.Imposto(icms=None, pis=None, pisst=None, cofins=None, cofinsst=None, issqn=None, **kwargs)

Grupo de tributos incidentes no produto ou serviço (imposto, grupo M01).

Parâmetros:
  • icms – Opcional. Deve ser uma instância de uma das classes dos grupos de ICMS (ICMS00, ICMS40, ICMSSN102 ou ICMSSN900) se o item for um produto tributado pelo ICMS ou None em caso contrário.
  • pis – Deve ser uma instância de uma das classes dos grupos de PIS (PISAliq, PISQtde, PISNT, PISSN ou PISOutr).
  • pisst – Opcional. Instância de PISST ou None.
  • cofins – Deve ser uma instância de uma das classes dos grupos de COFINS (COFINSAliq, COFINSQtde, COFINSNT, COFINSSN ou COFINSOutr).
  • cofinsst – Opcional. Instância de COFINSST ou None.
  • issqn – Opcional. Uma instância de ISSQN se o item for um serviço tributado pelo ISSQN ou None em caso contrário.
  • vItem12741 (Decimal) – Opcional. Valor aproximado dos tributos do produto ou serviço, conforme a Lei 12.741/12.
cofins

Um dos grupos de COFINS (COFINSAliq, COFINSQtde, COFINSNT, COFINSSN ou COFINSOutr).

cofinsst

O grupo do COFINS Substituição Tributária (COFINSST) se for o caso, ou None.

icms

Um dos grupos de ICMS (ICMS00, ICMS40, ICMSSN102 ou ICMSSN900) se o item for um produto tributado pelo ICMS ou None em caso contrário.

issqn

O grupo de ISSQN (ISSQN) se o item for um serviço tributado pelo ISSQN ou None em caso contrário.

pis

Um dos grupos de PIS (PISAliq, PISQtde, PISNT, PISSN ou PISOutr).

pisst

O grupo do PIS Substituição Tributária (PISST) se for o caso, ou None.

class satcfe.entidades.InformacoesAdicionais(**kwargs)

Grupo de informações adicionais (infAdic, grupo Z01).

Parâmetros:infCpl (str) – Opcional.
class satcfe.entidades.LocalEntrega(**kwargs)

Identificação do Local de Entrega (entrega, grupo G01).

Parâmetros:
  • xLgr (str) –
  • nro (str) –
  • xCpl (str) – Opcional.
  • xBairro (str) –
  • xMun (str) –
  • UF (str) –
class satcfe.entidades.MeioPagamento(**kwargs)

Meio de pagamento (MP, grupo WA02).

Parâmetros:
  • cMP (str) –
  • vMP (Decimal) –
  • cAdmC (str) – Opcional.
class satcfe.entidades.ObsFiscoDet(**kwargs)

Grupo do campo de uso livre do Fisco (obsFiscoDet, grupo I17).

Parâmetros:
  • xCampoDet (str) –
  • xTextoDet (str) –
class satcfe.entidades.PISAliq(**kwargs)

Grupo de PIS tributado pela alíquota, CST 01, 02 ou 05 (PISAliq, grupo Q02).

Parâmetros:
  • CST (str) –
  • vBC (Decimal) –
  • pPIS (Decimal) –
class satcfe.entidades.PISNT(**kwargs)

Grupo de PIS não tributado, CST 04, 06, 07 08 ou 09 (PISNT, grupo Q04).

Parâmetros:CST (str) –
class satcfe.entidades.PISOutr(**kwargs)

Grupo de PIS para outras operações, CST 99 (PISOutr, grupo Q06).

Parâmetros:
  • CST (str) –
  • vBC (str) – Opcional. Se informado deverá ser também informado o parâmetro pPIS.
  • pPIS (str) – Opcional. Se informado deverá ser também informado o parâmetro vBC.
  • qBCProd (str) – Opcional. Se informado deverá ser também informado o parâmetro vAliqProd.
  • vAliqProd (str) – Opcional. Se informado deverá ser também informado o parâmetro qBCProd.

Nota

Os parâmetros vBC e qBCProd são mutuamente exclusivos, e um ou outro devem ser informados.

class satcfe.entidades.PISQtde(**kwargs)

Grupo de PIS tributado por quantidade, CST 03 (PISQtde, grupo Q03).

Parâmetros:
  • CST (str) –
  • qBCProd (Decimal) –
  • vAliqProd (Decimal) –
class satcfe.entidades.PISSN(**kwargs)

Grupo de PIS para contribuíntes do Simples Nacional, CST 49 (PISSN, grupo Q05).

Parâmetros:CST (str) –
class satcfe.entidades.PISST(**kwargs)

Grupo de PIS substituição tributária (PISST, grupo R01).

Parâmetros:
  • vBC (str) – Opcional. Se informado deverá ser também informado o parâmetro pPIS.
  • pPIS (str) – Opcional. Se informado deverá ser também informado o parâmetro vBC.
  • qBCProd (str) – Opcional. Se informado deverá ser também informado o parâmetro vAliqProd.
  • vAliqProd (str) – Opcional. Se informado deverá ser também informado o parâmetro qBCProd.

Nota

Os parâmetros vBC e qBCProd são mutuamente exclusivos, e um ou outro devem ser informados.

class satcfe.entidades.ProdutoServico(observacoes_fisco=None, **kwargs)

Produto ou serviço do CF-e (prod, grupo I01).

Parâmetros:
  • cProd (str) –
  • cEAN (str) – Opcional.
  • xProd (str) –
  • NCM (str) – Opcional.
  • CFOP (str) –
  • uCom (str) –
  • qCom (Decimal) –
  • vUnCom (Decimal) –
  • indRegra (str) –
  • vDesc (Decimal) – Opcional.
  • vOutro (Decimal) – Opcional.
  • observacoes_fisco (list) – Opcional. Lista de objetos ObsFiscoDet representando os campos de uso livre do fisco.