mar
25
2014

Como emitir uma NFS-e?

25 de março de 2014

Índice

-

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

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

Primeiramente, vamos introduzir o conceito de RPS. O RPS – Registro Provisório de Serviços – é um documento fiscal que é gerado na prestação do serviço, sendo que ele deve ser enviado à prefeitura e, caso esteja na estrutura correta e com os dados devidamente preenchidos, é efetivado e convertido em NFS-e. Desta forma, o processo inicia com a geração do RPS, transmissão à prefeitura e posterior conversão em NFS-e.

A emissão de uma NFS-e é relativamente simples em termos de processo, sendo a parte mais complexa os valores que devem ser enviados à prefeitura para que a mesma seja efetivada. 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  Recepção de RPS – https://homolog.invoicy.com.br/arecepcao.aspx?wsdl

     2. Criar os RPSs para o envio

Embora cada prefeitura possua um layout de integração distinto, você sempre vai enviar ao InvoiCy os dados para emissão numa estrutura única, que abrange todos os municípios integrados. Os detalhes de como criar o XML e transmitir estão detalhados abaixo.

Para obter os Layouts de envio e retorno do XML de Recepção de RPS, faça download do arquivo RecepcaoRPS.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 – exceto no cadastro de prestador) e os dados do RPS (Tag <inv:Documento>). Para saber como gerar a Tag Documento 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. OBSERVAÇÃO: A validação de esquema é importante para validar a tipagem dos campos, bem como a ordem dos mesmos e os grupos, mas não é base para obrigatoriedade ou não de campos, pois é baseada no padrão ABRASF, e pode ainda solicitar campos que não são necessários. Determinados padrões não seguem o modelo da ABRASF, então a obrigatoriedade pode divergir. Seu XML será efetivamente validado quando for enviado à prefeitura. 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 Recepção de RPS. O retorno recebido segue a seguinte estrutura SOAP:

A estrutura SOAP acima demonstra o retorno do serviço de Recepção de RPS de apenas um RPS enviado.

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.

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

Artigos Relacionados: