Neste artigo iremos falar um pouco sobre o fluxo correto de emissão de uma nota fiscal de serviço através do componente NFS-e versão 2.0.
Mas antes de falarmos sobre a emissão propriamente dita, precisamos entender alguns conceitos básicos sobre as formas de comunicação de transmissão.
Existem duas formas de comunicação entre o nosso software e o WebService das prefeituras, sendo eles a comunicação síncrona e assíncrona, e dependendo do padrão que o em questão municipio adota, essa comunicação pode ocorrer de uma forma ou de outra, ou em alguns casos, o padrão pode adotar ambas as formas de comunicação.
Comunicação Síncrona:
Na modalidade de envio síncrono, WebService da prefeitura para qual a nota foi enviada, retorna a situação da nota imediatamente após o envio. Você receberá um comunicado com status, informando se a nota foi autorizada ou se foi rejeitada.
Fluxo de emissão de uma nota síncrona:
Comunicação Assíncrona:
No envio assíncrono, a nota não será autorizada imediatamente, ficando em processamento por tempo indeterminado (algumas prefeituras demoram apenas alguns segundos para concluir o processamento das notas, enquanto outras podem demorar horas ou ter um horário especifico do dia em que as notas são processadas).
Diferente do envio síncrono, o retorno do envio assíncrono, na maioria dos casos, não retorna rejeições caso a nota venha a ter algum erro, mas sim um protocolo que deve ser consultado posteriormente, após o processamento da nota, e é nesta consulta que podemos verificar a real situação da nota (autorizada ou rejeitada).
Fluxo de emissão de uma nota assíncrona:
Agora que já falamos um pouco sobre os meios de comunicação, vamos falar um pouco sobre o fluxo do componente.
O fluxo da NFSe 2.0
Inicialmente, precisamos configurar o componente NFSe. Feito isso, podemos chamar o método Enviar informando o Tx2 como parâmetro do método, nessa estapa o componente se encarregara de gerar o xml, assinar e enviar de forma automática.
Feito o envio, precisamos verificar qual a situação do Lote através da propriedade instância da NFSe 2.0, Exemplo: NFSe.RetornoWS.Items[i].Status.
A partir desse momento, podem existir 3 possíveis casos de Status, são eles:
SUCESSO:
A nota foi autorizada no WebService da prefeitura e não é necessário realizar nenhuma consulta.
EMPROCESSAMENTO
Caso o status da nota seja "EMPROCESSAMENTO", já sabemos que se trata de um envio assíncrono, e será necessário chamar o método de Consultar para obter a NFSe.
- Ao Consultar a nota, podemos ter 3 possíveis casos, são eles:
- SUCESSO, a nota foi Autorizada pelo WebService da Prefeitura.
- EMPROCESSAMENTO, é necessário realizar a consulta novamente pois a nota ainda não foi processada.
- ERRO, é necessário aplicar as correções descritas no parâmetro Motivo, Exemplo: NFSe.RetornoWS.Items[i].Motivo e chamar o método Enviar novamente.
ERRO
A nota foi Rejeitada pelo WebService da prefeitura, é necessário aplicar as correções descritas no parâmetro Motivo, Exemplo: NFSe.RetornoWS.Items[i].Motivo e chamar o método Enviar novamente.
Todos as configurações necessárias para o funcionamento do componente e os métodos mencionados neste artigo, podem ser encontrados neste link do Guia Geral do Componente NFS-e 2.0.
Comentários
0 comentário
Por favor, entre para comentar.