Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erro ao assinar o arquivo .xml #373

Open
Alexandre-Dev1010 opened this issue Dec 11, 2024 · 1 comment
Open

Erro ao assinar o arquivo .xml #373

Alexandre-Dev1010 opened this issue Dec 11, 2024 · 1 comment

Comments

@Alexandre-Dev1010
Copy link

Boa noite pessoal alguem poderia me ajudar com esse erro ? from pynfe.processamento.comunicacao import ComunicacaoSefaz
from pynfe.entidades.cliente import Cliente
from pynfe.entidades.emitente import Emitente
from pynfe.entidades.notafiscal import NotaFiscal
from pynfe.entidades.fonte_dados import _fonte_dados
from pynfe.processamento.serializacao import SerializacaoXML
from pynfe.processamento.assinatura import AssinaturaA1
from pynfe.utils.flags import CODIGO_BRASIL
from decimal import Decimal
import datetime

certificado = "certificado_digital_16_07_2024.pfx"
senha = '124816tS@'
uf = 'ba'
homologacao = True

emitente

emitente = Emitente(
razao_social='TECH SILVA TECNOLOGIA LTDA',
nome_fantasia='TECH SILVA SEGURANCA ELETRONICA',
cnpj='38158054000152', # cnpj apenas números
codigo_de_regime_tributario='1', # 1 para simples nacional ou 3 para normal
inscricao_estadual='170288972', # numero de IE da empresa
inscricao_municipal=None,
cnae_fiscal='4321500', # cnae apenas números
endereco_logradouro='10AV RUA OTAVIO TOSTA',
endereco_numero='288',
endereco_bairro='MANTEIGA',
endereco_municipio='MURITIBA',
endereco_uf='BA',
endereco_cep='44340000',
endereco_pais=CODIGO_BRASIL
)

cliente

cliente = Cliente(
razao_social='Alexandre Ferreira Cardoso',
tipo_documento='CPF', #CPF ou CNPJ
email='xande09010@email.com',
numero_documento='07308099512', # numero do cpf ou cnpj
indicador_ie=9, # 9=Não contribuinte
endereco_logradouro='Rua Laurencio Moreira',
endereco_numero='01',
endereco_complemento='casa',
endereco_bairro='centro',
endereco_municipio='Governador Mangabeira',
endereco_uf='BA',
endereco_cep='44350000',
endereco_pais=CODIGO_BRASIL,
endereco_telefone='75983635533',
)

Nota Fiscal

nota_fiscal = NotaFiscal(
emitente=emitente,
cliente=cliente,
uf=uf.upper(),
natureza_operacao='VENDA', # venda, compra, transferência, devolução, etc
forma_pagamento=0, # 0=Pagamento à vista; 1=Pagamento a prazo; 2=Outros.
tipo_pagamento=1,
modelo=55, # 55=NF-e; 65=NFC-e
serie='1',
numero_nf='111', # Número do Documento Fiscal.
data_emissao=datetime.datetime.now(),
data_saida_entrada=datetime.datetime.now(),
tipo_documento=1, # 0=entrada; 1=saida
municipio='2911600', # Código IBGE do Município
tipo_impressao_danfe=1, # 0=Sem geração de DANFE;1=DANFE normal, Retrato;2=DANFE normal Paisagem;3=DANFE Simplificado;4=DANFE NFC-e;
forma_emissao='1', # 1=Emissão normal (não em contingência);
cliente_final=1, # 0=Normal;1=Consumidor final;
indicador_destino=1,
indicador_presencial=1,
finalidade_emissao='1', # 1=NF-e normal;2=NF-e complementar;3=NF-e de ajuste;4=Devolução de mercadoria.
processo_emissao='0', #0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco='Mensagem complementar',
totais_tributos_aproximado=Decimal('21.06'),
)

Produto

nota_fiscal.adicionar_produto_servico(
codigo='1', # id do produto
descricao='Notebook Asus',
ncm='84713012',
#cest='0100100', # NT2015/003
cfop='5102',
unidade_comercial='UN',
ean='SEM GTIN',
ean_tributavel='SEM GTIN',
quantidade_comercial=Decimal('1'), # 12 unidades
valor_unitario_comercial=Decimal('500'), # preço unitário
valor_total_bruto=Decimal('500'), # preço total
unidade_tributavel='UN',
quantidade_tributavel=Decimal('1'),
valor_unitario_tributavel=Decimal('1'),
ind_total=1,
# numero_pedido='12345', # xPed
# numero_item='123456', # nItemPed
icms_modalidade='102',
icms_origem=0,
icms_csosn='400',
pis_modalidade='07',
cofins_modalidade='07',
valor_tributos_aprox='21.06'
)

responsável técnico

nota_fiscal.adicionar_responsavel_tecnico(
cnpj='99999999000199',
contato='TadaSoftware',
email='tadasoftware@gmail.com',
fone='11912341234'
)

exemplo de nota fiscal referenciada (devolução/garantia)

nfRef = NotaFiscalReferenciada(

chave_acesso='99999999999999999999999999999999999999999999')

nota_fiscal.notas_fiscais_referenciadas.append(nfRef)

exemplo de grupo de pessoas autorizadas a baixar xml

autxml_lista = ['99999999000199', '00000000040']

for index, item in enumerate(autxml_lista, 1):

nota_fiscal.adicionar_autorizados_baixar_xml(CPFCNPJ=item)

serialização

serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao)
nfe = serializador.exportar()

assinatura

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

envio

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

em caso de sucesso o retorno será o xml autorizado

Ps: no modo sincrono, o retorno será o xml completo ( = + )

no modo async é preciso montar o nfeProc, juntando o retorno com a NFe

from lxml import etree
if envio[0] == 0:
print('Sucesso!')
print(etree.tostring(envio[1], encoding="unicode").replace('\n','').replace('ns0:','').replace(':ns0', ''))

em caso de erro o retorno será o xml de resposta da SEFAZ + NF-e enviada

else:
print('Erro:')
print(envio[1].text) # resposta
print('Nota:')
print(etree.tostring(envio[2], encoding="unicode")) # nfe

PS D:\nfe_teste> & C:/Users/User/AppData/Local/Programs/Python/Python312/python.exe d:/nfe_teste/app_nfe.py
Traceback (most recent call last):
File "d:\nfe_teste\app_nfe.py", line 131, in
xml = a1.assinar(nfe)
^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\pynfe\processamento\assinatura.py", line 51, in assinar
signed_root = signer.sign(
^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\signxml\signer.py", line 202, in sign
raise InvalidInput("No PEM-encoded certificates found in string cert input data")
signxml.exceptions.InvalidInput: No PEM-encoded certificates found in string cert input data
PS D:\nfe_teste>

@leandrogrupozani
Copy link

Estou com o mesmo erro. Estava funcionando na sexta e hoje parou

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants