-
Notifications
You must be signed in to change notification settings - Fork 178
Consulta Distribuição
Leonardo Gregianin edited this page Oct 4, 2022
·
8 revisions
A Distribuição de DF-e suporta três tipos de consultas:
- distNSU – Distribuição de Conjunto de DF-e a partir do NSU informado
- consNSU – Consulta DF-e vinculado ao NSU informado
- consChNFe – Consulta de NF-e por chave de acesso informada
Observações:
- Se o retorno do status (tag cStat) for 138 quer dizer que existe mais documentos após a última consulta, portanto, grave o número do último NSU localizado e re-faça a consulta.
- Se o retorno do status (tag cStat) for 137 quer dizer que não existe novos documentos após o último NSU consultado.
from pynfe.processamento.comunicacao import ComunicacaoSefaz
certificado = "/home/user/certificado.pfx"
senha = 'senha'
uf = 'pr'
homologacao = True
CNPJ = 'CPNJ_DA_EMPRESA'
CHAVE = '' # deixar a chave de acesso vazia
ULT_NSU = 0
con = ComunicacaoSefaz(uf, certificado, senha, homologacao)
xml = con.consulta_distribuicao(cnpj=CNPJ, chave='', nsu=ULT_NSU, consulta_nsu_especifico=False)
from pynfe.processamento.comunicacao import ComunicacaoSefaz
certificado = "/home/user/certificado.pfx"
senha = 'senha'
uf = 'pr'
homologacao = True
CNPJ = 'CPNJ_DA_EMPRESA'
CHAVE = '' # deixar a chave de acesso vazia
NSU = 50123 # baixar o xml do NSU especifico
con = ComunicacaoSefaz(uf, certificado, senha, homologacao)
xml = con.consulta_distribuicao(cnpj=CNPJ, chave='', nsu=NSU, consulta_nsu_especifico=True)
from pynfe.processamento.comunicacao import ComunicacaoSefaz
certificado = "/home/user/certificado.pfx"
senha = 'senha'
uf = 'pr'
homologacao = True
CNPJ = 'CPNJ_DA_EMPRESA'
CHAVE = 'CHAVE_DA_NOTA_DA_CONSULTA'
con = ComunicacaoSefaz(uf, certificado, senha, homologacao)
xml = con.consulta_distribuicao(cnpj=CNPJ, chave=CHAVE)
from pynfe.utils.descompactar import DescompactaGzip
from pynfe.utils.flags import NAMESPACE_NFE
from lxml import etree
resposta = etree.fromstring(xml.content)
ns = {'ns': NAMESPACE_NFE}
zip_resposta = resposta.xpath('//ns:retDistDFeInt/ns:loteDistDFeInt/ns:docZip', namespaces=ns)[0].text
des_resposta = DescompactaGzip.descompacta(zip_resposta)