NFeBuscar

A função NFeBuscar é usada para buscar o resultado do processamento de uma NF-e enviada para o Web Service da SEFAZ.

Tipo de Retorno

Integer

Pacote

A função NFeBuscar está definida dentro do pacote NF-eBuscar.pkg.

Sintaxe

Move (NFeBuscar({sSiglaWS}, {iTpAmbiente}, {sUF}, {sArquivoXML}, ;
                &{sNroRecibo}, &{sProcNFe}, {sCertificado}, &{sMsgCabec}, ;
                &{sMsgRetWS}, &{sMsgResultado}, &{sNroProtocolo}, ;
                &{sdhProtocolo}, &{scStat}, {sProxy}, {sUsuario}, {sSenha}, ;
                {sLicencaNFeUtil}, {bExibeErro}, &{icMsg}, &{sxMsg} [, ;
                {bGeraIdInfProt}])) to {iRet}
Onde:
  • {sSiglaWS} é a sigla do Web Service para o qual será enviada a solicitação. Veja mais detalhes aqui.
  • {iTpAmbiente} ambiente de trabalho, podendo ser 1-Produção ou 2-Homologação;
  • {sUF} é um parâmetro legado que não é mais usado e pode ser informada uma string nula neste parâmetro, pois ele não foi removido para que os desenvolvedores que usavam a versão 1.0 não tivessem de alterar a chamada da função;
  • {sArquivoXML} é o caminho completo do arquivo XML que foi usado pelo envio, ou seja, o resultado da chamada da função NFeEnviar. Se o resultado da busca indicar que a NF-e foi autorizada, este arquivo será sobreposto pelo arquivo com os dados de autorização que é o arquivo que, segundo a legislação, deve ser armazenado de acordo com os prazos legais estabelecidos e também deve ser disponibilizado ao destinatário e à transportadora, se houver, da NF-e. Recomenda-se que você mantenha também uma cópia do arquivo de envio original. Desta forma, faça uma cópia do arquivo de envio para outro local antes de usar a função de busca. Se o resultado da busca indicar que a NF-e foi denegada, este arquivo será sobreposto pelo arquivo com os dados de denegação;
  • &{sNroRecibo} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o número do recibo de envio que foi devolvido pela função NFeEnviar. O número do recibo não é o protocolo de autorização, mas sim um número que a SEFAZ atribuiu à NF-e enviada, sendo uma informação imprescindível para consultar o resultado do processamento da NF-e;
  • &{sProcNFe} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o XML completo da NF-e, caso ela tenha sido autorizada. Normalmente esta informação é útil somente para o propósito de depuração e não é usada na prática pelo emitente, uma vez que o arquivo XML com os dados da autorização já será salvo no caminho apontado por {sArquivoXML};
  • {sCertificado} é a string que representa o certificado digital que será usado na transmissão dos dados. Se não for informado, uma tela será exibida para o usuário escolher um dos certificados instalados para o usuário corrente. Veja mais detalhes sobre como informar este parâmetro clicando aqui;
  • &{sMsgCabec} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o XML completo do pedido de busca que foi enviado ao Web Service. Normalmente esta informação é útil somente para o propósito de depuração é não é usada na prática pelo emitente;
  • &{sMsgRetWS} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a mensagem XML de resposta do Web Service. Normalmente esta informação é útil somente para o propósito de depuração é não é usada na prática pelo emitente;
  • &(sMsgResultado} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a mensagem literal do resultado da chamada do Web Service. Por exemplo, se foi feito o envio da NF-e para o servidor SP e estiver buscando o resultado na SEFAZ SVRS, a variável sMsgResultado receberá o valor "Rejeição: UF do Recibo diverge da UF autorizadora";
  • &{sNroProtocolo} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o número do protocolo de autorização, caso a NF-e tenha sido autorizada. Esta informação deve ser obrigatoriamente impressa no DANFe e é fortemente recomendado que esta informação seja armazenada em sua base de dados;
  • &{sdhProtocolo} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a data e hora de autorização ou denegação no formato utilizado pela SEFAZ (yyyy-MM-ddThh:mm:ss). Esta informação deve ser obrigatoriamente impressa no DANFe e é fortemente recomendado que esta informação seja armazenada em sua base de dados;
  • &{scStat} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o código cStat do Web Service. Consulte o manual de integração do contribuinte para obter a lista completa de códigos cStat que podem ser devolvidos pelo Web Service;
  • {sProxy} é usado para informar o endereço do servidor proxy, se necesário. Por exemplo ’http://proxyserver:port’. Verificar com o cliente qual é o endereço do servidor proxy e a porta https, pois a porta padrão do https é 443, e sendo assim teríamos algo como ’http://192.168.15.1:443’;
  • {sUsuario} é usado para informar o usuário para autenticação no proxy, se necessário;
  • {sSenha} é usado informar a senha de autenticação no proxy, se necessário;
  • {sLicencaNFeUtil} é usado para informar a chave da licença de uso ou registro quando a função é utilizada em ambiente de produção;
  • {bExibeErro} é usado para indicar se a função deve exibir ou não os erros que ocorrerem na execução;
  • &{icMsg} é uma variável do tipo Integer que precisa ser passada por referência. Eventualmente a SEFAZ poderá enviar mensagens de interesse do emitente ao fazer a busca da NF-e. Quando houver esta comunicação esta variável, após a execução da função, receberá o código da mensagem enviada pela SEFAZ;
  • &{sxMsg} é uma variável do tipo String que precisa ser passada por referência. Eventualmente a SEFAZ poderá enviar mensagens do interesse do emitente ao fazer a busca da NF-e. Quando houver esta comunicação esta variável, após a execução da função, receberá a descrição literal da mensagem enviada pela SEFAZ;
  • {bGeraIdInfProt} é um parâmetro opcional sendo que se informado True, ao gerar o arquivo XML da NF-e autorizada e se a tag infProt não possuir o atributo Id, será forçada a geração deste atributo. Esta alteração foi feita para atender a necessidade de alguns clientes cujos fornecedores estão exigindo a existência deste atributo na tag infProt. Recomendamos que este parâmetro não seja usado;
  • {iRet} é o código do retorno da chamada da função. 0 (zero) indica que a NF-e foi autorizada ou denegada e o arquivo apontado em {sArquivoXML} foi sobreposto pelo arquivo XML autorizado ou denegado obtido pela DLL. Qualquer retorno diferente de 0 indica que a NF-e não foi autorizada ou denegada ou não foi possível consultar o resultado do processamento do lote. Se o código de retorno for maior que 999, indica que o Web Service nem chegou a ser consumido. Se o resultado da busca for a denegação, o arquivo denegado também será gerado em {sArquivoXML}.

Exemplo

Um exemplo de uso da função pode ser encontrado dentro da Workspace de Exemplo na função NFeBuscarNFExemplo no arquivo cNotaDataDictionary.dd.

Observações

  • Esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro. Entre em contato para mais informações;
  • Esta função, se executada com sucesso, sobreescreve as informações do arquivo XML informado com as informações da NF-e autorizada. Sendo assim recomenda-se fortemente que esse processo seja feito com uma cópia do arquivo original de envio, para que o arquivo original do envio não seja perdido;
  • O arquivo de resposta desta função é o arquivo final legalmente aceito que deve ser armazenado dentro do prazo estipulado pela legislação;
  • O arquivo XML da NF-e autorizada gerado por esta função deve ser enviado ao destinatário da nota e, se houver, à transportadora indicada.
  • As notas denegadas são notas aceitas pela SEFAZ mas que não tem autorização para circular, então o arquivo de resposta com as informações da denegação também é gravado sobre o arquivo XML indicado na função como sendo o arquivo de envio.

 

Não encontrou o que precisava, entre em contato conosco.