-
Notifications
You must be signed in to change notification settings - Fork 183
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
Comments
Estou com o mesmo erro. Estava funcionando na sexta e hoje parou |
Olá boa tarde. Também estou com este mesmo problema. Conseguiram resolver? |
fork com a correção https://github.com/WeslenPy/PyNFe |
Olá pip install git+https://github.com/TadaSoftware/PyNFe@master |
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='[email protected]',
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='[email protected]',
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>
The text was updated successfully, but these errors were encountered: