mar
25
2014

Como consultar uma NFS-e?

25 de março de 2014

Índice

-

Neste artigo iremos demonstrar como realizar a consulta de NFS-e através do Web Service do Módulo.

A partir de agora, assumimos que você já leu o artigo Como emitir uma NFS-e?. Caso ainda não tenha lido o artigo, recomendamos que realize a leitura do mesmo, para facilitar o entendimento deste artigo.

A consulta de uma NFS-e é extremamente simples, embora seja vital para o processo, pois na consulta que o emissor pode verificar o status do envio dos RPS. Para que isso se torne possível, siga os seguintes passos:

1. Consumindo o Web Service

Primeiramente, você deve realizar o consumo do Web Service de Consulta de NFS-e  – https://homolog.invoicy.com.br/arecepcao.aspx?wsdl

2. Criar o XML para o envio

O XML de consulta pode conter um ou mais RPS para consulta. Os detalhes de como criar o XML e transmitir estão detalhados abaixo.

Para obter os layouts de envio e retorno do XML de Consulta de NFS-e, faça o download do arquivo Consulta.zip. Nele você encontrará também o arquivo XSD e XML de exemplo.

O XML a ser enviado pode ser divido em duas partes: Cabeçalho (comum a todos os serviços) e os dados do RPS (Tag <inv:Documento>). A Tag Consulta contém os dados do(s) RPS. Para saber como gerar a Tag Consulta corretamente e como gerar a Chave de Comunicação, consulte o artigo Gerar um XML de Envio passo-a-passo.

Após finalizado, o documento XML deve ser inserido entre as TAGS <inv:Documento > </ inv:Documento > do SOAP de envio. Veja abaixo um exemplo:

Nos casos em que for usada uma ferramenta RAD para consumo do Web Service através de componente nativo, por exemplo Visual Studio utilizando Web Reference, a conversão do XML para texto irá ocorrer de forma automática. Para os casos em que o desenvolvedor preferir codificar toda a comunicação sem utilizar componentes, além de ser necessário escrever todo o XML do SOAP, também deverá ser feita a conversão do XML do documento para texto, substituindo os caracteres “<”, “>” e “ “ ” (aspas) por “&lt;”, “&gt;” e “&quot;” respectivamente, de acordo com a tabela da W3C: http://www.w3schools.com/html/html_entities.asp.

Para facilitar a geração do XML de integração, disponibilizamos o XML de envio, bem como um arquivo de esquema XSD que poderá servir como base. É recomendável que após a geração do arquivo XML e antes do consumo do Web Service, o mesmo seja validado contra o arquivo de esquema. Maiores detalhes no artigo Validação de arquivos XML.

3. Realize a leitura do retorno do envio da NFS-e

Após o envio do XML, precisamos realizar a leitura do retorno da consulta de NFS-e, podendo também adicionar alguns parâmetros para a forma do retorno, entre eles estão se deseja a ou não visualizar a situação do RPS, se deseja o XML completo ou só um link para download, o PDF do RPS em base64 e/ou o link para download do PDF. Segue abaixo a estrutura de envio de uma consulta.

O seu sistema deve ler o retorno, validando as informações conforme o layout de retorno. O retorno criará um grupo para cada RPS, contendo o número, série, situação, entre outros. Retornará também o número da NFS-e e o código de verificação, caso o RPS tenha sido convertido em NFS-e.

OBSERVAÇÃO: O InvoiCy conta com um controle das requisições recebidas, onde ao receber várias vezes a mesma requisição de consulta, dentro de um determinado período de tempo, irá bloquear essa requisição, para prevenir que o ERP do cliente não entre em loop e cause lentidão no sistema.

Para evitar esse bloqueio, recomenda-se que em caso de consulta de documento, deve-se adicionar um “sleep” entre uma e outra conexão, de 15 segundos, por exemplo. E também limitar o número total de consultas.

Para mais informações sobre esse processo, leia o artigo Bloqueio do Web Service no InvoiCy.

Seu próximo passo é: Como cancelar uma NFS-e?

Artigos Relacionados: