12. Web Service da NF-e [02-08-15]
12.7. Consulta NF destinadas [03-07-13]
12.6. Consulta Cadastro
« Anterior
12.8. Download de NF-e [31-07-12]
Próximo »

12.7. Consulta NF destinadas [03-07-13]

Consulta NF-e destinadas

Assinatura

string ConsultaNFDest(string siglaWS, string siglaUF, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out int cStat, out string msgResultado, string CNPJ, int indNFe, int indEmi, string ultNSU, out string dhResp, out int indCont, out string ultNSUConsultado, string proxy, string usuario, string senha, string licenca)

Descrição:

Consulta as NF-e que foram emitidas para um CNPJ.

Preenchimento da siglaWS

AN - O WS do Ambiente Nacional (AN) atende qualquer UF. RS - os destinatários do RS, podem consumir o WS do RS.

Preenchimento do nomeCertificado

informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL, formas possíveis:

1. uso de certificado digital existente no repositório MY do CSP do usuário corrente (currentuser)

É a forma de mais comum de uso, cabe ressaltar que é a única forma de uso de certificado digital do tipo A3 que a DLL oferece.
O usuário deve passar como parâmetro o campo assunto do certificado no parâmetro NomeCertificado para que a DLL localize um certificado digital com mesmo assunto no repositório MY do currentuser do equipamento.
Esta forma de uso requer a prévia instalação do certificado digital na conta do usuário do Windows (logon) que irá utilizar o certificado digital.

2. uso de certificado digital em arquivo no formato pfx

Permite o de uso de certificado digital em arquivo formato pfx.
O caminho da localização (path) do arquivo pfx deve ser passado para a DLL no formato: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "ARQUIVO|c:\certificado.pfx|senha".
Esta opção só funciona com certificado digital do tipo A1.

3. uso de certificado digital em string base64

Permite uso o arquivo do certificado digital em formato pfx convertido em uma string base64. O certificado digital em string base64 deve ser passado para a DLL no formato: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha".
Esta opção só funciona com certificado digital do tipo A1. É uma opção de uso que oferece maior versatilidade, pois permite o armazenamento do certificado digital em banco de dados na aplicação. É a forma mais indicada para uso em ASP.NET.

Mecanismo de funcionamento do Web Service: [03-07-13]

O Web Service consulta uma base dados que armazena todas as notas fiscais emitidas no Brasil, as NF-e são organizadas por ordem cronológica de recepção nesto banco de dados, isto quer dizer que as notas fiscais podem não estar em ordem cronológica de emissão, ou seja, as notas fiscais estão organzidas na ordem que o Ambiente Nacional recebeu a NF-e da SEFAZ de origem.

A consulta é realizada de forma sequencial a partir de uma posição do banco de dados que é indicada pelo valor informado no parâmetro ultNSU, a consulta é interrompida quando forem localizados 50 documentos (NF-e ou Eventos da NF-e) ou quando forem percorridos 50 mil registros do banco de dados ou quando for alcaçado o fim do banco de dados.

O Web Service devolve indCont = 0 quando todos os registros do banco de dados tiverem sido pesquisados, caso ainda existam documentos ou registros a serem pesquisados no banco de dados, o Web Service irá devolver indCont = 1 e devemos atualizar o parâmetro ultNSU com o ultNSUConsultado devolvido pelo Web Servicer e realizar nova consulta até que o indCont retorne 0.

Diagrama simplificado do loop de consulta NF-e [03-07-13]

DiagramaRetorno

Parâmetros:

nome tipo fluxo descrição
siglaWS string entrada informar "AN" - o WS do Ambiente Nacional (AN) atende destinatário de qualquer UF.
Os destinatários do RS que desejarem utilizar o WS do RS podem informar "RS".
siglaUF string entrada informar a sigla da UF do destinatário da NF-e.
tipoAmbiente inteiro entrada informar o código do ambiente desejado: 1- produção ou 2-homologação
NomeCertificado string entrada informar o certificado digital que será utilizado para assinatura:
1. informar o assunto do certificado digital que deve existir no repositório MY do current user, ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS".
2. informar: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] para uso do certificado digital em arquivo pfx, ex.: "ARQUIVO|c:\certificado.pfx|senha".
3. informar: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado para passar uma string contendo um certificado digital em base64, ex.:"CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha".
(novas opções)
versao string entrada informar a versão da mensagem do WS - 1.01
msgDados string saída retorna a mensagem XML enviada para o WS
msgRetWS string saída retorna a mensagem XML de resposta do WS
cStat inteiro saída retorna o resultado da chamada do WS
msgResultado string saída retorna a literal do resultado da chamada do WS
CNPJ string entrada informar o CNPJ do destinatário da NF-e que se deseja consultar
indNFe inteiro entrada informar o indicador de NF-e consultada:
0=Todas as NF-e;
1=Somente as NF-e que ainda não tiveram manifestação do destinatário (Desconhecimento da operação, Operação não Realizada ou Confirmação da Operação);
2=Idem anterior, incluindo as NF-e que também não tiveram a Ciência da Operação.
indEmi inteiro entrada informar o indicador do Emissor da NF-e:
0=Todos os Emitentes / Remetentes;
1=Somente as NF-e emitidas por emissores / remetentes que não tenham a mesma raiz do CNPJ do destinatário (para excluir as notas fiscais de transferência entre filiais).
ultNSU string entrada informar o último NSU recebido pela Empresa.
Caso seja informado com zero, ou com um NSU muito antigo, a consulta retornará unicamente as notas fiscais que tenham sido recepcionadas nos últimos 15 dias.
dhResp string saída retorna a Data e hora da mensagem de Resposta.
indCont inteiro saída retorna Indicador de continuação:
0=SEFAZ não possui mais documentos para o CNPJ informado;
1=SEFAZ possui mais documentos para o CNPJ informado, ou ainda não avaliou a totalidade da sua base de dados, atualize o ultNSU com o ultNSUConsultado que foi devolvido pelo Web Service e faça nova consulta, até obter indCont = 0.
ultNSUConsultado string saída retorna o Último NSU pesquisado na SEFAZ. Se for o caso, o solicitante pode continuar a consulta a partir deste NSU para obter novos resultados.
proxy string entrada informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443'
usuario string entrada informar o usuário para autenticação no proxy, se necessário
senha string entrada informar a senha de autenticação no proxy, se necessário
licenca string entrada informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento, para maiores detalhes veja as condições de uso

Retorno:

O resultado da chamada do ConsultaNFDest é TXT gerado com base no XML da resposta do Web Service com uma lista de até 50 NF-e e/ou CC-e com seguinte leiaute:

[resNFe]|NSU|chNFe|CNPJ|CPF|xNome|IE|dEmi|tpNF|vNF|digVal|dhRecibo|cSitNFe|cSitConf
[resCanc]|NSU|chNFe|CNPJ|CPF|xNome|IE|dEmi|tpNF|vNF|digVal|dhRecibo|cSitNFe|cSitConf
[resCCe]|NSU|chNFe|dhEvento|tpEvento|nSeqEvento|descEvento|xCorrecao|tpNF|dhRecibo [10-09-12]

Leiaute de retorno da chamada [06-12-12]

A mensagem XML do retorno da chamada do Web Service está definido na NT 2012/002:

DiagramaRetorno

O parâmetro cStat retorna um código numérico com os seguintes significados:

código Mensagem origem regra
5001 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: o certificado cliente: 1.não é ICP-Brasil; 2.fora do prazo de validade; 3.revogado; 4.certificado cliente não confiável para o Web Service acessado, contatar a SEFAZ) DLL -
5002 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: a cadeia de certificação do Web Service acessado ou do certificado cliente inexistente no repositório de certificados do usuário corrente do Windows) DLL -
5003 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: serviço inexistente, verifique se o nome do serviço da url acessada está correto no arquivo ws2.xml) DLL -
5004 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: método não permitido) DLL -
5005 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: a url não encontrada, verifique se o nome do domínio da url acessada está correto no arquivo ws2.xml) DLL -
5006 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Time-Out, o WS não respondeu a solicitação no tempo estabelecido: [{1:0}]) DLL -
5007 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: mensagem maior que a permitida) DLL -
5008 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Servidor com problemas) DLL -
5009 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço não implementado) DLL -
5010 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço temporariamente indisponível, servidor sem recursos para atender a solicitação) DLL -
5011 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Causa provável da falha na conexão: Rede indisponível) DLL -
5012 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Versão do SOAP não suportada DLL -
5013 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, não houve nenhum retorno ou resposta) DLL -
5014 Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, falha desconhecida) DLL -
5015 Erro: Falha na conexão: Tempo limite de time-out alcançado [TEMPO DE TIME OUT UTILIZADO ms] - [MENSAGEM DE ERRO DO WINDOWS] DLL -
5016 Erro: Falha na conexão: Falha da Biblioteca Criptografica: [MENSAGEM DE ERRO DO WINDOWS] DLL -
5017 Erro: Falha ao tratar o XML de retorno do WS: [MENSAGEM DE ERRO DO WINDOWS] DLL -
5101 Erro: A mensagem de retorno do WS não é um XML válido: [MENSAGEM DE ERRO DO WINDOWS] DLL -
5102 Erro: Tag cStat inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] DLL -
5103 Erro: Tag xMotivo inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] DLL -
5104 Erro: Tag [NOME TAG] inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] DLL -
5105 Erro: O WS não devolveu nenhum resultado DLL -
5403 Erro: Falha ao acessar certificado digital [mensagem de ERRO DO WINDOWS] DLL -
5404 Erro: Nenhum certificado digital selecionado DLL
5405 Erro: Nenhum certificado válido foi encontrado com o nome [NomeCertificado] informado no repositório [MY do CurrentUser] DLL -
5406 Erro: Falha no tratamento do parâmetro nome: [nome informado] DLL -
5407 Erro: Quantidade de parâmetos inválido: [nome informado] DLL -
5408 Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS] DLL -
6101 Erro: O parâmetro versao não foi informado DLL -
6102 Erro: O conteúdo do parâmetro sigla da UF: [conteúdo do parâmetro] é inválido DLL -
6103 Erro: O conteúdo do parâmetro versao informado é inválido: [conteúdo do parâmetro] DLL -
6107 Erro: A chave de acesso deve ter 44 posições: [tamanho da chave] DLL -
6110 Erro: O nome do titular do certificado deve ser informado DLL -
6123 Erro: O parâmetro tipoAmbiente deve ser informado DLL -
6124 Erro: O parâmetro tipoAmbiente [conteúdo do parâmetro] deve ser 1 ou 2 DLL -
6141 Erro: O parâmetro siglaWS deve ser informado DLL -
6153 Erro: O parâmetro tipoEvento deve ser informado DLL -
6154 Erro: O parâmetro tipoEvento [conteúdo do parâmetro] deve ser informado com: 0-Confirmação da Operação, 1-Ciência da Operação, 2-Desconhecimento da Operação, 3-Operação não Realizada DLL -
6159 Erro: O parâmetro siglaWS informado: [conteúdo do parâmetro] é diferente de RS e AN DLL -
6160 Erro: O parâmetro indNFe deve ser informado DLL -
6161 Erro: O parâmetro IndNFe [conteúdo do parâmetro] deve ser informado com: 0, 1 ou 2 DLL -
6162 Erro: O parâmetro indEmi deve ser informado DLL -
6163 Erro: O parâmetro IndEmi [conteúdo do parâmetro] deve ser informado com: 0 ou 1 DLL -
6164 Erro: O parâmetro ultNSU deve ser informado com valor numérico DLL -
6165 Erro: O parâmetro ultNSU informado:[conteúdo do parâmetro] é inválido DLL -
6166 Erro: O parâmetro CNPJ deve ser informado DLL -
6167 Erro: O parâmetro CNPJ informado:[conteúdo do parâmetro] é inválido DLL -
7001 Erro: A licença não foi informada DLL -
7002 Erro: A licença informada: [licença] tem tamanho:[tamanho da licença] diferente de 128 DLL -
7003 Erro: A licença informada: [licença] não pertence ao CNPJ:[CNPJ informado] DLL -
7009 Erro: A licença informada: [licença] não permite o uso da funcionalidade:[ConsultaNFDest], para utilizar a funcionalidade é necessário uma atualização onerosa da licença. DLL -
108 Serviço Paralisado Momentaneamente (curto prazo) WS B03
109 Serviço Paralisado sem Previsão WS B04
137 Nenhum documento localizado para o destinatário WS -
138 Documento localizado para o destinatário WS -
214 Rejeição: Tamanho da mensagem excedeu o limite estabelecido WS B01
225 Rejeição: Falha no schema XML WS D01
238 Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente WS C05
239 Rejeição: Cabeçalho - Versão do arquivo XML não suportada WS C06
242 Rejeição: Cabeçalho - Falha no Schema XML WS C01
243 Rejeição: XML Mal Formado WS B02
252 Rejeição: Ambiente informado diverge do Ambiente de recebimento WS H01
280 Rejeição: Certificado Transmissor inválido WS A01
281 Rejeição: Certificado Transmissor Data Validade WS A02
282 Rejeição: Certificado Transmissor sem CNPJ WS A07
283 Rejeição: Certificado Transmissor - erro Cadeia de Certificação WS A03
284 Rejeição: Certificado Transmissor revogado WS A05
285 Rejeição: Certificado Transmissor difere ICP-Brasil WS A06
286 Rejeição: Certificado Transmissor erro no acesso a LCR WS A04
290 Rejeição: Certificado Assinatura inválido WS E01
291 Rejeição: Certificado Assinatura Data Validade WS E02
292 Rejeição: Certificado Assinatura sem CNPJ WS E03
293 Rejeição: Certificado Assinatura - erro Cadeia de Certificação WS E04
294 Rejeição: Certificado Assinatura revogado WS E06
295 Rejeição: Certificado Assinatura difere ICP-Brasil WS E07
296 Rejeição: Certificado Assinatura erro no acesso a LCR WS E05
297 Rejeição: Assinatura difere do calculado WS F02
298 Rejeição: Assinatura difere do padrão do Projeto WS F01
299 Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8 WS C01a
402 Rejeição: XML da área de dados com codificação diferente de UTF-8 WS D03
404 Rejeição: Uso de prefixo de namespace não permitido WS D02
409 Rejeição: Campo cUF inexistente no elemento nfeCabecMsg do SOAP Header WS C02
410 Rejeição: UF informada no campo cUF não é atendida pelo Web Service WS C03
411 Rejeição: Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP Header WS C04
489 Rejeição: CNPJ informado inválido (DV ou zeros) WS H03
502 Rejeição: Erro na Chave de Acesso - Campo Id não corresponde à concatenação dos campos correspondentes WS H02c
516 Rejeição: Falha no schema XML - inexiste a tag raiz esperada para a mensagem WS D01a
517 Rejeição: Falha no schema XML - inexiste atributo versao na tag raiz da mensagem WS D01b
545 Rejeição: Falha no schema XML - versão informada na versaoDados do SOAPHeader diverge da versão da mensagem WS D01c
587 Rejeição: Usar somente o namespace padrão da NF-e WS D01d
588 Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagem WS D01e
589 Rejeição: Número do NSU informado superior ao maior NSU da base de dados da SEFAZ WS H04
593 Rejeição: CNPJ-Base consultado difere do CNPJ-Base do Certificado Digital WS H03
645 Rejeição: CNPJ do Certificado Digital não é emitente de NF-e WS H05
999 Rejeição: Erro não catalogado (mensagem) WS -

Tratamento de Erro:

Caso ocorra algum erro na chamada do WS (5001-6167) ou a requisição não seja atendida pelo WS (214-999), será gravado um log na pasta log, com as seguintes informações que devem ser úteis para identificação do problema:

Os erros com código > 5000 são erros tratados pela DLL e ocorrem nas seguintes situações:

Histórico de atualização:

Mensagens XML - versão 1.01:

Pedido de Consulta de NF-e

<consNFeDest xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01">
  <tpAmb>2</tpAmb>
  <xServ>CONSULTAR NFE DEST</xServ>
  <CNPJ>10142785000190</CNPJ>
  <indNFe>0</indNFe>
  <indEmi>0</indEmi>
  <ultNSU>0</ultNSU>
</consNFeDest>

Resposta do WS sem resultado cStat=137

<retConsNFeDest versao="1.01" xmlns="http://www.portalfiscal.inf.br/nfe">
  <tpAmb>2</tpAmb>
  <verAplic>RS20120430083814</verAplic>
  <cStat>137</cStat>
  <xMotivo>Nenhum documento localizado para o destinatário</xMotivo>
  <dhResp>2012-07-28T23:29:41</dhResp>
</retConsNFeDest>

Resposta do WS com resultado cStat=138

<retConsNFeDest versao="1.01" xmlns="http://www.portalfiscal.inf.br/nfe">
  <tpAmb>2</tpAmb>
  <verAplic>RS20120430083814</verAplic>
  <cStat>138</cStat>
  <xMotivo>Documento localizado para o destinatário.</xMotivo>
  <dhResp>2012-07-29T18:49:03</dhResp>
  <indCont>0</indCont>
  <ultNSU>100000</ultNSU>
  <ret>
    <resNFe NSU="1234567">
      <chNFe>43120479999975000104550000000884201000884208</chNFe>
      <CNPJ>79999975000104</CNPJ>
      <xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome>
      <IE>123456789</IE>
      <dEmi>2012-05-29</dEmi>
      <tpNF>1</tpNF>
      <vNF>1000.00</vNF>
      <digVal>1eyXp3r2WjqQrATl+kaxz8Pe0bk=</digVal>
      <dhRecbto>2012-05-29T09:30:47</dhRecbto>
      <cSitNFe>1</cSitNFe>
      <cSitConf>0</cSitConf>
    </resNFe>
  </ret>
  <ret>
    <resCCe NSU="1234571">
      <chNFe>43120479999975000104550000000884201000884208</chNFe>
      <dhEvento>22012-05-29T013:10:07-03:00</dhEvento>
      <tpEvento>110110</tpEvento>
      <nSeqEvento>1</nSeqEvento>
      <descEvento>Carta de Correção</descEvento>
      <xCorrecao>A unidade de comercializacao do item 1 deve ser PC</xCorrecao>
      <tpNF>1</tpNF>
      <dhRecbto>22012-05-29T015:10:07</dhRecbto>
    </resCCe>
  </ret>
  <ret>
    <resCanc NSU="1234768">
      <chNFe>43120479999975000104550000000884201000884208</chNFe>
      <CNPJ>79999975000104</CNPJ>
      <xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome>
      <IE>123456789</IE>
      <dEmi>2012-05-29</dEmi>
      <tpNF>1</tpNF>
      <vNF>1000.00</vNF>
      <digVal>1eyXp3r2WjqQrATl+kaxz8Pe0bk=</digVal>
      <dhRecbto>2012-05-30T08:30:00</dhRecbto>
      <cSitNFe>3</cSitNFe>
      <cSitConf>0</cSitConf>
    </resCanc>
  </ret>
  <resNFe NSU="1235555">
    <chNFe>43120479999975000104550000000885201000885201</chNFe>
    <CNPJ>79999975000104</CNPJ>
    <xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome>
    <IE>123456789</IE>
    <dEmi>2012-05-30</dEmi>
    <tpNF>1</tpNF>
    <vNF>2000.00</vNF>
    <digVal>1eyXp3r2WjqQrATl+kaxz8Pe0bk=</digVal>
    <dhRecbto>2012-05-30T07:00:00</dhRecbto>
    <cSitNFe>1</cSitNFe>
    <cSitConf>0</cSitConf>
  </resNFe>
</retConsNFeDest>

TXT correspondente

[resNFe]|1234567|43120479999975000104550000000884201000884208|79999975000104| |NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL|123456789|2012-05-29|1|1000.00|1eyXp3r2WjqQrATl+kaxz8Pe0bk=|2012-05-29T09:30:47|1|0 [resCCe]|1234571|43120479999975000104550000000884201000884208|22012-05-29T013:10:07-03:00|110110|1|Carta de Correção|A unidade de comercializacao do item 1 deve ser PC|1|22012-05-29T015:10:07 [10-09-12] [resCanc]|1234768|43120479999975000104550000000884201000884208|79999975000104| |NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL|123456789|2012-05-29|1|1000.00|1eyXp3r2WjqQrATl+kaxz8Pe0bk=|2012-05-30T08:30:00|3|0

Importante

Os XML acima foram identados para uma melhor visualização, a mensagem original não tem formatação.

Exemplos de uso:

Delphi 7

 
 
uses
 
  (...), ComCtrls, ComObj;          // acrescentar ComCtrls e ComObj no use da unit
 
procedure TForm1.btConsultaNFDestClick(Sender: TObject);
 
var
//--------------------------------------------------------------------------------------
//
//              Funcionalidade para as NF-e destinadas para um CNPJ
//
//
//--------------------------------------------------------------------------------------
objNFeUtil: OleVariant;        // declarar a interface da DLL
//--------------------------------------------------------------------------------------
//          DECLARAÇÃO DE PARÂMETROS DE ENTRADA DA FUNCIONALIDADE
//--------------------------------------------------------------------------------------
siglaWS: widestring;           // sigla do WS: AN para Ambiente Nacional ou RS
siglaUF:widestring;            // sigla da UF do destinatário
tipoAmbiente: integer;         // Ambiente: 1-Produção e 2-Homologação
nomeCertificado: widestring;   // campo assunto do certificado digital
versao: widestring;            // versão= 1.01
CNPJ: widestring;              // CNPJ do desinatário
 
indNFe: integer;               // 0-todas as notas,
                               // 1-somente as que não tiveram manifestação concluisva
                               // 2-todas as que tiveram manifestação
 
indEmi: integer;               // 0-todas as NF-e,
                               // 1-somente as NF-e que não tenham destinatário/remetente
                               //   com a mesma raiz CNPJ
 
ultNSU: widestring;            // último NSU recebido pela empresa
proxy: widestring;             // IP e porta do proxy, informar se existir proxy
usuario: widestring;           // usuario do proxy
senha: widestring;             // senha do proxy
licenca: widestring;           // licenca de uso, necessário informar para produção
//--------------------------------------------------------------------------------------
//          DECLARAÇÃO DE PARÂMETROS DE RETORNO DA FUNCIONALIDADE
//--------------------------------------------------------------------------------------
msgDados: widestring;          // retorna o XML enviado ao WS
msgRetWS: widestring;          // retorna o XML de resposta do WS
cStat:integer;                 // retorna o código do resultado da chamada
msgResultado: widestring;      // retorna o literal do resultado da chamada
dhResp:widestring;             // retorna a data e hora da resposta
indCont:integer;               // retorna o indicador de continuação
                               //   0-não existem mais NF-e
                               //   1-existem mais NF-e
 
ultNSUConsultado:widestring;   // retorna o Último NSU pesquisado na SEFAZ.
                               // Se for o caso, o solicitante pode continuar a consulta
                               // a partir deste NSU para obter novos resultados.                               
 
txtNFe: widestring;            // retorna o TXT com as informações das notas localizadas
 
begin
 
//--------------------------------------------------------------------------------------
//          INICIALIZAÇÃO DE PARÂMETROS
//--------------------------------------------------------------------------------------
siglaWS := 'RS';
siglaUF := 'RS';
tipoAmbiente := 2;
nomeCertificado := 'CN=M R M KATO ASAKURA - EPP:69621187915, OU=AC CAIXA PJ-1 V1, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR';
versao := '1.01';
msgDados := '';
msgRetWS := '';
cStat := 0;
msgResultado := '';
CNPJ := '10142785000190';
indNFe := 0;
indEmi := 0;
ultNSU := '0';
proxy := '';
usuario := '';
senha := '';
licenca := '';
dhResp := '';
indCont := 1;
ultNSUConsultado := '0';
txtNFe := '';
//--------------------------------------------------------------------------------------
//  instancia classe
//--------------------------------------------------------------------------------------
objNFeUtil  := CreateOleObject('NFe_Util_2G.util');
//--------------------------------------------------------------------------------------
//  chama funcionalidade
//--------------------------------------------------------------------------------------
 
While indCont = 1 do
begin
 
   txtNFe := objNFeUtil.ConsultaNFDest(siglaWS, siglaUF, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, cStat, msgResultado, CNPJ, indNFe, indEmi, ultNSU, dhResp, indCont, ultNSUConsultado, proxy, usuario, senha, licenca);
 
   if cStat = 138 then
      begin
      //
      // tratar notas do txtNFe
      //
      MessageDlg( msgResultado + chr(13)+chr(13)+ txtNFe, mtInformation, [mbOk], 0);
      end
   else if cStat <> 137 then
        begin
        //
        //  tratar erro 
        //
        indCont = 9; // forçar fim do loop
        end;
   //
   //  Atualizar ultNSU para persistir na consulta
   //
   ultNSU := UltNSUConsultado;
 
end;      // While indCont = 1 do -> continuar consulta, pois a SEFAZ possui mais documentos para o CNPJ informado, ou ainda não avaliou a totalidade da sua base de dados
 
end;

Visual Basic 6.0

 
'--------------------------------------------------------------------------------------
'
'              Funcionalidade para consultar as NF-e destinadas para um CNPJ
'
'--------------------------------------------------------------------------------------
'          DECLARAÇÃO DE PARÂMETROS DE ENTRADA DA FUNCIONALIDADE
'--------------------------------------------------------------------------------------
Dim siglaWS As String           ' sigla do WS: AN para Ambiente Nacional ou RS
Dim siglaUF As String           ' sigla da UF do destinatário
Dim tipoAmbiente As Long        ' Ambiente: 1-Produção e 2-Homologação
Dim nomeCertificado As String   ' campo assunto do certificado digital
Dim versao As String            ' versão= 1.01
Dim CNPJ As String              ' CNPJ do destinatário da NF-e
Dim indNFe As Long              ' 0-todas as notas,
                                ' 1-somente as que não tiveram manifestação concluisva,
                                ' 2-todas as que tiveram manifestação

Dim indEmi As Long              ' 0-todas as NF-e,
                                ' 1-somente as NF-e que não tenham destinatário/remetente
                                '   com a mesma raiz CNPJ

Dim ultNSU As String            ' último NSU recebido pela empresa
Dim proxy As String             ' IP e porta do proxy, informar se existir proxy
Dim usuario As String           ' usuario do proxy
Dim senha As String             ' senha do proxy
Dim licenca As String           ' licenca de uso, necessário informar para produção
'--------------------------------------------------------------------------------------
'          DECLARAÇÃO DE PARÂMETROS DE RETORNO DA FUNCIONALIDADE
'--------------------------------------------------------------------------------------
Dim msgDados As String          ' retorna o XML enviado ao WS
Dim msgRetWS As String          ' retorna o XML de resposta do WS
Dim cStat As Long               ' retorna o código do resultado da chamada
Dim msgResultado As String      ' retorna o literal do resultado da chamada
Dim dhResp As String            ' retorna a data e hora da resposta
Dim indCont As Long             ' retorna o indicador de continuação
                                '   0-não existem mais NF-e
                                '   1-existem mais NF-e

Dim ultNSUConsultado As String  ' retorna o Último NSU pesquisado na SEFAZ.
                                ' Se for o caso, o solicitante pode continuar a consulta
                                ' a partir deste NSU para obter novos resultados.                               

Dim txtNFe As String            ' retorna o TXT com as informações das notas localizadas
'--------------------------------------------------------------------------------------
'          INICIALIZAÇÃO DE PARÂMETROS
'--------------------------------------------------------------------------------------
siglaWS = "RS"
siglaUF = "RS"
tipoAmbiente = 2
nomeCertificado = "CN=M R M KATO ASAKURA - EPP:69621187915, OU=AC CAIXA PJ-1 V1, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR"
versao = "1.01"
msgDados = ""
msgRetWS = ""
cStat = 0
msgResultado = ""
CNPJ = "10142785000190"
indNFe = 0
indEmi = 0
ultNSU = "0"
proxy = ""
usuario = ""
senha = ""
licenca = ""
dhResp = ""
indCont = 1
ultNSUConsultado = "0"
txtNFe = ""
'--------------------------------------------------------------------------------------
'  instancia classe
'--------------------------------------------------------------------------------------
Dim objNFeUtil As Object
Set objNFeUtil = CreateObject("NFe_Util_2G.util")
'--------------------------------------------------------------------------------------
'  chama funcionalidade
'--------------------------------------------------------------------------------------  

Do While (indCont = 1)
 
   txtNFe = objNFeUtil.ConsultaNFDest(siglaWS, siglaUF, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, cStat, msgResultado, CNPJ, indNFe, indEmi, ultNSU, dhResp, indCont, ultNSUConsultado, proxy, usuario, senha, licenca)
 
   If cStat = 138 then
      '
      ' tratar notas do txtNFe
      '
      MsgBox msgResultado & vbCrLf & vbCrLf & txtNFe, vbInformation, "Resultado"
 
   Else If cStat <> 137
           //
           //  tratar erro 
           //
        indCont = 9; // forçar fim do loop   
   End If
 
   '
   '  Atualizar ultNSU para persistir na consulta
   '
   ultNSU = UltNSUConsultado
 
Loop                  ' While (indCont = 1 ) -> continuar consulta, pois a SEFAZ possui mais documentos para o CNPJ informado, ou ainda não avaliou a totalidade da sua base de dados
'--------------------------------------------------------------------------------------
' libera classe
'--------------------------------------------------------------------------------------
Set objNFeUtil = Nothing

xBase

 
CLEAR
 
&&--------------------------------------------------------------------------------------
&&
&&              Funcionalidade para consultar as NF-e destinadas para um CNPJ
&&
&&--------------------------------------------------------------------------------------
&&          DECLARAÇÃO DE PARÂMETROS DE ENTRADA DA FUNCIONALIDADE
&&--------------------------------------------------------------------------------------
Local siglaWS As String           && sigla do WS: AN para Ambiente Nacional ou RS
Local siglaUF As String           && sigla da UF do destinatário
Local tipoAmbiente As Long        && Ambiente: 1-Produção e 2-Homologação
Local nomeCertificado As String   && campo assunto do certificado digital
Local versao As String            && versão= 1.01
Local CNPJ As String              && CNPJ do destinatário da NF-e
Local indNFe As Long              && 0-todas as notas,
                                  && 1-somente as que não tiveram manifestação concluisva,
                                  && 2-todas as que tiveram manifestação
 
Local indEmi As Long              && 0-todas as NF-e,
                                  && 1-somente as NF-e que não tenham destinatário/remetente
                                  &&   com a mesma raiz CNPJ
 
Local ultNSU As String            && último NSU recebido pela empresa
Local proxy As String             && IP e porta do proxy, informar se existir proxy
Local usuario As String           && usuario do proxy
Local senha As String             && senha do proxy
Local licenca As String           && licenca de uso, necessário informar para produção
&&--------------------------------------------------------------------------------------
&&          DECLARAÇÃO DE PARÂMETROS DE RETORNO DA FUNCIONALIDADE
&&--------------------------------------------------------------------------------------
Local msgDados As String          && retorna o XML enviado ao WS
Local msgRetWS As String          && retorna o XML de resposta do WS
Local cStat As Long               && retorna o código do resultado da chamada
Local msgResultado As String      && retorna o literal do resultado da chamada
Local dhResp As String            && retorna a data e hora da resposta
Local indCont As Long             && retorna o indicador de continuação
                                  &&   0-não existem mais NF-e
                                  &&   1-existem mais NF-e
 
Local ultNSUConsultado As String  && retorna o Último NSU pesquisado na SEFAZ.
                                  && Se for o caso, o solicitante pode continuar a consulta
                                  && a partir deste NSU para obter novos resultados.                               
 
Local txtNFe As String            && retorna o TXT com as informações das notas localizadas
&&--------------------------------------------------------------------------------------
&&          INICIALIZAÇÃO DE PARÂMETROS
&&--------------------------------------------------------------------------------------
siglaWS = "RS"
siglaUF = "RS"
tipoAmbiente = 2
nomeCertificado = "CN=M R M KATO ASAKURA - EPP:69621187915, OU=AC CAIXA PJ-1 V1, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR"
versao = "1.01"
msgDados = ""
msgRetWS = ""
cStat = 0
msgResultado = ""
CNPJ = "10142785000190"
indNFe = 0
indEmi = 0
ultNSU = "0"
proxy = ""
usuario = ""
senha = ""
licenca = ""
dhResp = ""
indCont = 1
ultNSUConsultado = "0"
txtNFe = ""
&&--------------------------------------------------------------------------------------
&&  instancia classe
&&--------------------------------------------------------------------------------------
Local  objNFeUtil As Object
objNFeUtil = CREATEOBJECTEX("NFe_Util_2G.Util","","")
&&--------------------------------------------------------------------------------------
&&  chama funcionalidade
&&--------------------------------------------------------------------------------------
 
DO WHILE (indCont = 1)
 
   txtNFe = objNFeUtil.ConsultaNFDest(siglaWS, siglaUF, tipoAmbiente, nomeCertificado, versao, @msgDados, @msgRetWS, @cStat, @msgResultado, CNPJ, indNFe, indEmi, ultNSU, @dhResp, @indCont, @ultNSUConsultado, proxy, usuario, senha, licenca)
 
   IF cStat = 138
      &&
      &&  tratar txtNFe
      && 
      ? msgResultado
      ? txtNFe
   ELSE IF cStat <>  137
      && 
      && tratar erro da chamada
      &&
      indCont = 9 
   ENDIF
 
   ultNSU = UltNSUConsultado
 
ENDDO
 
&&--------------------------------------------------------------------------------------
&& libera classe
&&--------------------------------------------------------------------------------------
objNFeUtil = null
12.7. Consulta NF destinadas [03-07-13]
12. Web Service da NF-e [02-08-15]
« Anterior
12.6. Consulta Cadastro
Próximo »
12.8. Download de NF-e [31-07-12]