Manuais:UniNFe/NFeDistribuicaoDFe
Consulta da relação de documentos fiscais eletrônicos destinados
A SEFAZ disponibilizou um serviço que nos permite consultar os DF-e emitidos que são destinados para o nosso CNPJ/CPF, fornecendo informações resumidas de nosso interesse.
Enviando o arquivo no formato XML
Para enviar o XML de consulta dos DF-e, basta gerar o XML com o nome no seguinte formato:
CNPJ-con-dist-dfe.xml ou CPF-con-dist-dfe.xml
CNPJ ou CPF | CNPJ ou CPF de quem está efetuando a consulta |
-con-dist-dfe.xml | Conteúdo fixo. Sempre será "-con-dist-dfe.xml" |
Exemplo: 99999999999999-con-dist-dfe.xml
O nome do arquivo de retorno é o mesmo do envio, mudando somente a extensão (final) do mesmo, conforme abaixo:
99999999999999-dist-dfe.xml (se tudo ocorreu bem)
ou
99999999999999-dist-dfe.err (se houve algum erro)
Como tratar a tag ultNSU e maxNSU
- Ao efetuar a primeira consulta, o conteúdo da tag ultNSU deve ser igual a zero.
- Exemplo: 0
- Quando obter o retorno da primeira consulta (arquivo com nome -dist-dfe.xml) o ERP deve ler o conteúdo da tag ultNSU e guarda-lo para ser utilizado na próxima consulta. Deve também analisar o conteúdo da tag maxNSU, se o conteúdo desta tag for diferente da ultNSU, o ERP deve gerar uma nova consulta, e assim sucessivamente até que o conteúdo dela seja igual ao da ultNSU.
- Reforçamos que a cada nova consulta o conteúdo da tag ultNSU deve ser sempre o obtido no retorno da consulta anterior.
- Não gere nova consulta se o conteúdo da ultNSU for igual ao maxNSU para evitar o consumo indevido dos serviços da SEFAZ. Aguarde pelo menos uma hora antes de enviar uma nova consulta.
- Quando o conteúdo da tag maxNSU for igual a ultNSU, só efetue nova consulta após 1 hora.
Exemplo do XML de envio
Consultar os DF-e de um CPF a partir do último NSU obtido:
<?xml version="1.0" encoding="utf-8"?> <distDFeInt versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe"> <tpAmb>2</tpAmb> <cUFAutor>35</cUFAutor> <CPF>99999999999</CPF> <distNSU> <ultNSU>000000000000626</ultNSU> </distNSU> </distDFeInt>
Consultar os DF-e de um CNPJ a partir do último NSU obtido:
<?xml version="1.0" encoding="utf-8"?> <distDFeInt versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe"> <tpAmb>1</tpAmb> <cUFAutor>35</cUFAutor> <CNPJ>99999999999999</CNPJ> <distNSU> <ultNSU>123456789012345</ultNSU> </distNSU> </distDFeInt>
Consultar os DF-e de um CNPJ de um NSU específico:
<?xml version="1.0" encoding="utf-8"?> <distDFeInt versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe"> <tpAmb>2</tpAmb> <cUFAutor>35</cUFAutor> <CNPJ>99999999999999</CNPJ> <consNSU> <NSU>123456789012345</NSU> </consNSU> </distDFeInt>
Consultar os DF-e de um CPF de uma CHAVE específica:
<?xml version="1.0" encoding="utf-8"?> <distDFeInt xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"> <tpAmb>2</tpAmb> <cUFAutor>35</cUFAutor> <CPF>99999999999</CPF> <consChNFe> <chNFe>9999999999999999999999999999999999999999999</chNFe> </consChNFe> </distDFeInt>
Consultar os DF-e de um CNPJ de uma CHAVE específica:
<?xml version="1.0" encoding="utf-8"?> <distDFeInt xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"> <tpAmb>2</tpAmb> <cUFAutor>35</cUFAutor> <CNPJ>99999999999</CNPJ> <consChNFe> <chNFe>9999999999999999999999999999999999999999999</chNFe> </consChNFe> </distDFeInt>
Exemplo do XML de retorno
<?xml version="1.0" encoding="utf-8"?> <retDistDFeInt versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe"> <tpAmb>1</tpAmb> <verAplic>1.0.0</verAplic> <cStat>138</cStat> <xMotivo>Documento localizado</xMotivo> <dhResp>2015-06-16T10:04:40</dhResp> <ultNSU>000000000000676</ultNSU> <maxNSU>000000000000752</maxNSU> <loteDistDFeInt> <docZip NSU="000000000000627" schema="procEventoNFe_v1.00.xsd">H4sIAAAAAAAEAOy...</docZip> <docZip NSU="000000000000628" schema="procNFe_v1.00.xsd">H4sIAAAAAAAEA...</docZip> <docZip NSU="000000000000629" schema="procEventoNFe_v1.00.xsd">H4sIAAAAAAAEAOy9B...</docZip> ... ... ... </loteDistDFeInt> </retDistDFeInt>
Observações sobre o arquivo de retorno:
Os conteúdos das tags docZip é descompactado pelo UniNFe e disponibilizado na subpasta DFe que fica dentro da pasta de retorno (pasta configurada no UniNfe). Nesta pasta são gravados os XMLs de eventos, de distribuição das NFe já manifestadas, etc. Nesta subpasta é gravado também o XML com final -nfe.xml, onde é disponibilizado o conteúdo mínimo de cada NFe retornada pela consulta. Este conteúdo pode ser lido pelo ERP para disponibilizar informações para o usuário.
Exemplo do conteúdo do arquivo retornado com final -nfe.xml:
<?xml version="1.0" encoding="utf-8"?> <resNFe versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe"> <chNFe>999999999999999...</chNFe> <CNPJ>99999999999999</CNPJ> <xNome>TESTE</xNome> <IE>99999999</IE> <dhEmi>2015-05-15T08:46:00-03:00</dhEmi> <tpNF>1</tpNF> <vNF>112.50</vNF> <digVal>X8D8F8D8D8SSDSDSDS</digVal> <dhRecbto>2015-05-15T08:56:38-03:00</dhRecbto> <nProt>9239340239393</nProt> <cSitNFe>1</cSitNFe> </resNFe>
Enviando o arquivo no formato TXT
O nome do arquivo de envio no formato TXT deve ser igual ao do XML mudando somente a extensão do arquivo para .txt.
Exemplo:
CNPJ-con-dist-dfe.txt ou CPF-con-dist-dfe.txt
versao|1.00 tpAmb|2 cUFAutor|35 CNPJ|06117723000112 ou CPF|22233366695 ultNSU|123456789012345 ou NSU|123456789012345
A partir do TXT o UniNFe vai criar o XML e efetuar as mesmas operações descritas nos itens anteriores.
O nome do arquivo retornado é igual no processo de envio por XML, mudando somente a extensão para .txt.
Exemplo do TXT de retorno
1;1.0.0;138;Documento localizado;2015-06-16T10:26:35;000000000000481;000000000000752; resNFe;000000000000432;41150315127839000162550010000467091000943213; procEventoNFe;000000000000433;41141206117473000150550010000276541702751436;tpEvCienciaOperacao;01 procEventoNFe;000000000000434;41141206117473000150550010000276541702751436;tpEvConfirmacaoOperacao;01 resNFe;000000000000435;41150302163753000143550010000226611142647403; etc...