CEST Obrigatório para Modalidade de ICMS 500

41 views
Skip to first unread message

Gustavo Silva

unread,
Aug 18, 2023, 2:14:40 PM8/18/23
to PyNFe
Pessoal, estou vendo que não tem setagem do CEST no código do pynfe, então apesar de eu conseguir emitir notas com produto ICSMSN102 não consigo emitir com produto ICMSSN500 pois a receita retorna que o CEST é obrigatório, mesmo eu setando cest='0100100' não adianta, não ta implementado.
Alguém consegue dar uma luz?

Gustavo Silva

unread,
Aug 18, 2023, 2:29:45 PM8/18/23
to PyNFe
Vi que o código que serializa o CEST ta comentado e queria entender melhor o pq disso


/PyNFe/pynfe/processamento/serializacao.py

Captura de tela de 2023-08-18 15-27-53.png

Gustavo Silva

unread,
Aug 18, 2023, 3:27:50 PM8/18/23
to PyNFe
Resolvi o caso enxertando o CEST no XML logo depois do NCM.
Deixar o código aqui para quem tiver com o mesmo problema que eu, só vc adicionar entre a serialização da nfe e a assinatura (logico que vc vai precisar adaptar pro CEST não ficar fixo):

# serialização
serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
nfe = serializador.exportar()

# ENXERTANTO O CEST NA MARRA LOGO DEPOIS DO NCM DE CADA ITEM:
from lxml import etree
# Levanta os elementos NCM
elements_ncm = nfe.xpath(".//NCM")

# Para cada elemento NCM, crie um novo elemento CEST e insira após o NCM
for element_ncm in elements_ncm:
element_cest = etree.Element("CEST")
element_cest.text = '1003600'
parent = element_ncm.getparent()
index_ncm = parent.index(element_ncm)
parent.insert(index_ncm + 1, element_cest)

# assinatura
a1 = AssinaturaA1(certificado, senha)
xml = a1.assinar(nfe)

# envio
con = ComunicacaoSefaz(uf, certificado, senha, homologacao)
envio = con.autorizacao(modelo='nfe', nota_fiscal=xml)

Reply all
Reply to author
Forward
0 new messages