2014
Como consultar uma NFS-e?
25 de março de 2014Neste 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 “<”, “>” e “"” 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: