erro xml 225

47 views
Skip to first unread message

joao sousa

unread,
Dec 27, 2023, 7:23:17 PM12/27/23
to PyNFe
pessoal boa noite, conto com o apoio e inteligencia de voces para encontra o 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, SerializacaoQrcode
from pynfe.processamento.assinatura import AssinaturaA1
from pynfe.utils.flags import CODIGO_BRASIL
from decimal import Decimal
import datetime


certificado = "J. J. DE SOUSA VARIEDADES_12126604000168.pfx"
senha = '123456'
uf = 'sp'
homologacao = True

# emitente
emitente = Emitente(
    razao_social='NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL',
    nome_fantasia='j j instalacoes',
    cnpj='12126604000168',           # cnpj apenas números
    codpgo_de_regime_tributario='1', # 1 para simples nacional ou 3 para normal
    inscricao_estadual='999999999999', # numero de IE da empresa
    inscricao_municipal='5073',
    cnae_fiscal='471',           # cnae apenas números
    endereco_logradouro='av antenor pimentel',
    endereco_numero='440',
    endereco_bairro='Morrinhos',
    endereco_municipio='Guaruja',
    endereco_uf='SP',
    endereco_cep='11495007',
    endereco_pais=CODIGO_BRASIL
)

# cliente
cliente = Cliente(
    razao_social='NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL',
    tipo_documento='CPF',           #CPF ou CNPJ
    email='',
    numero_documento='99999999999', # numero do cpf ou cnpj
    indicador_ie=9,                 # 9=Não contribuinte
    endereco_logradouro='Rua dos Bobos',
    endereco_numero='Zero',
    endereco_complemento='Ao lado de lugar nenhum',
    endereco_bairro='Aquele Mesmo',
    endereco_municipio='Brasilia',
    endereco_uf='DF',
    endereco_cep='12345123',
    endereco_pais=CODIGO_BRASIL,
    endereco_telefone='11912341234',
)

# 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=65,                 # 55=NF-e; 65=NFC-e
   serie='1',
   numero_nf='41175',           # Número do Documento Fiscal.
   data_emissao=datetime.datetime.now(),
   data_saida_entrada=datetime.datetime.now(),
   tipo_documento=1,          # 0=entrada; 1=saida
   municipio='3518701',       # 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=9, # 9=Sem Ocorrência de Transporte.
   informacoes_adicionais_interesse_fisco='Mensagem complementar',
   totais_tributos_aproximado=Decimal('21.06'),
)

# Produto
nota_fiscal.adicionar_produto_servico(
    codigo='000328',                           # id do produto
    descricao='NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL',
    ncm='99999999',
    cfop='5102',
    unidade_comercial='UN',
    ean='SEM GTIN',
    ean_tributavel='SEM GTIN',
    quantidade_comercial=Decimal('12'),        # 12 unidades
    valor_unitario_comercial=Decimal('9.75'),  # preço unitário
    valor_total_bruto=Decimal('117.00'),       # preço total
    unidade_tributavel='UN',
    quantidade_tributavel=Decimal('12'),
    valor_unitario_tributavel=Decimal('9.75'),
    ind_total=1,
    icms_modalidade='102',
    icms_origem=0,
    icms_csosn='400',
    pis_modalidade='07',
    cofins_modalidade='07',
    valor_tributos_aprox=Decimal('21.06')
    )

# responsável técnico
nota_fiscal.adicionar_responsavel_tecnico(
    cnpj='99999999000199',
    contato='TadaSoftware',
    email='',
    fone='11912341234'
  )

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

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

# token de homologacao
token = '000002'

# csc de homologação
csc = '7a678fe9-bef3-4acb-9e2d-634ce9149a5c'

# gera e adiciona o qrcode no xml NT2015/003
xml_com_qrcode = SerializacaoQrcode().gerar_qrcode(token, csc, xml)

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

# em caso de sucesso o retorno será o xml autorizado
# Ps: no modo sincrono, o retorno será o xml completo (<nfeProc> = <NFe> + <protNFe>)
# 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:',''))

# 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

Miguel Vellasco

unread,
Dec 27, 2023, 8:13:35 PM12/27/23
to py...@googlegroups.com
Boa noite João,

Sugiro o uso do validador de xml da SEFAZ-RS para identificar em qual campo se encontra o problema: https://www.sefaz.rs.gov.br/nfe/nfe-val.aspx

Para pegar o xml, basta fazer um print da variavel 'xml_com_qrcode'.

Qualquer dúvida estou à disposição.

Att,

Miguel Oliveira Vellasco
Programador de Computadores / Computer Programmer

(PT) Esta mensagem contém informação confidencial ou privilegiada, sendo
seu sigilo protegido por lei. Se você não for o destinatário ou a pessoa
autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as
informações nela contidas ou tomar qualquer ação baseada nessas
informações. Se você recebeu esta mensagem por engano, por favor, avise
imediatamente ao remetente, respondendo o e-mail e em seguida
apague-a. Agradecemos sua cooperação.

(EN) This message contains confidential or privileged information and its
confidentiality is protected by law. If you are not the addressed or
authorized person to receive this message, you must not use, copy, disclose
or take any action based on it or any information herein. If you have
received this message by mistake, please advise the sender immediately by
replying to the e-mail and then delete it. Thank you for your cooperation.




--
You received this message because you are subscribed to the Google Groups "PyNFe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pynfe+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pynfe/00f89657-4607-47a1-8235-fb93235bc92fn%40googlegroups.com.

joao sousa

unread,
Dec 31, 2023, 10:54:36 AM12/31/23
to PyNFe
ok ibrigado pela dica, vou tar uma olhada
Reply all
Reply to author
Forward
0 new messages