A transmissão da NFC-e online é realizada através do client do Fiscal Flow, esse client é quem realiza toda interface de comunicação entre o PDV e os servidores de autorização que consomem os webservices da SEFAZ . Ao receber uma requisição, o serviço de autorização do Fiscal Flow complementa as informações do xml, inserindo os dados do emissor, Chave do documento, URL de consulta e assinatura, deixando o documento pronto para autorização. Após montagem do do XML o mesmo é transmitido para o webservice que atenderá o serviço de autorização de acordo com a UF do emissor, cabendo a SEFAZ validar as informações e autorizar ou rejeitar a nota. Nota rejeitada Quando uma NFC-e emitida online é rejeitada, o retorno do webservice é devolvido para o PDV na mesma requisição, após essa rejeição cabe ao PDV realizar a inutilização desta nota, evitando assim a quebra de numeração e divergências fiscais.
Guarda do XML A guarda do XML é realizada pelo Fiscal Flow e os XML's são disponibilizados para os usuários da plataforma através de nosso portal, não havendo necessidade do PDV realizar a guarda em sua base de dados, desonerando assim a infraestrutura do cliente. Caso o PDV necessite do XML para obtenção de dados fiscais, o mesmo deverá enviar a tag "devolveXML" com o valor "true" no JSON de autorização, indicando que deseja receber o XML na requisição de autorização.
Impressão DANFE O Fiscal Flow retornar o DANFE no formato PDV em um array de bytes no formato base64, podendo ser utilizado para impressão da NFC-e, sem a necessidade de implementar a impressão no PDV, para receber o PDF basta enviar a tag "GeraDanfe" com o valor "true" no JSON de autorização, caso o PDV utilize um DANFE personalizado, basta informar o valor "false" que o PDF não será encaminhado no retorno da autorização. Caso opte por não utilizar o DANFE do gerado pelo Fiscal Flow, caberá ao time de desenvolvimento do PDV implementar seu proprio DANFE seguindo todas as regras do manual de especificação do DANFE NFC-e.
|
Em situações onde não for possível obter a autorização da nota no momento do envio, o envio em contingência é ativado, permitindo que a nota seja emitida sem a autorização da sefaz, essa modalidade de emissão é chamada de contingência offline. No processo de emissão em contingência offline, o XML e o DANFE da NFC-e são gerados pelo Fiscal Flow Client e devolvidos para o PDV logo após seu registro na base de dados do Fiscal Flow Client, sem a necessidade de conexão com a internet ou comunicação com o ambiente do Fiscal Flow Client.
As notas emitidas em contingência são transmitidas ao Fiscal Flow Cloud para que sejam enviadas a sefaz, entrando em uma fila de emissão, neste momento não é possível determinar se a nota será ou não autorizada pela SEFAZ, cabendo ao PDV realizar consultas periódicas ao Fiscal Flow até a obtenção de um retorno da SEFAZ. Essas consultas devem ser realizadas em intervalos regulares de mínimo 10 minutos, evitando o consumo excessivo dos recursos de infra e consequentemente o bloqueio da nota por consumo indevido. Caso uma nota emitida em contingência seja rejeitada, a mesma deverá ser corrigida e autorizada , após autorização, o PDV poderá cancelar a nota caso a operação não tenha sido realizada.
Exemplo Prático1- Tentativa de TransmissãoHá a tentativa de transmissão de uma NFC-e com numeração 20. Há um problema técnico na comunicação ou processamento das informações. Não há retorno da SEFAZ . 2- Emissão off-lineA NFC-e é emitida offline com numeração diferente, n° 21, para evitar a duplicidade da nota. Deve-se imprimir o DANFE-NFCe, em duas vias ou manter em local seguro, o arquivo digital, sendo impresso para apresentar ao fisco quando solicitado. 3- TransmissãoSuperado o problema técnico, a NFC-e n°21 é transmitida para obtenção da autorização de uso. Se vier a ser rejeitada, gerar novamente o arquivo com a mesma numeração e série, sanando a irregularidade e transmitir novamente. |
Durante o processo de envio podem ocorrer falhas de comunicação, impedindo o Fiscal Flow de determinar o status da NFC-e, para esses casos foi criado o serviço de processo incompleto M0020, permitindo ao PDV identificar situações onde será necessário emitir uma segunda nota para finalizar a operação. Caso a nota receba o retorno M0020, a mesma não poderá ser utilizada em nenhuma outra operação pois a mesma será inutilizada e cancelada pelo MID-e Client, para essas notas o PDV deve apenas consultar a nota até que receba a inutilização ou cancelamento dessas notas. Para finalizar a venda após a ocorrência do M0020 o PDV deverá emitir uma segunda nota que será gerada em contingência.
O serviço de processo incompleto realiza a consulta das notas junto a SEFAZ, dependendo do funcionamento dos webservices para determinar se a nota será inutilizada ou cancelada, onde as notas que foram autorizadas serão canceladas e as notas que não constarem na base da SEFAZ serão inutilizadas. Como o serviço de processo incompleto depende do funcionamento dos webservices da SEFAZ, o PDV deve realizar consultas repeitando o intervalo mínimo de 30 minutos, não realizando consultas desnecessárias para notas que ainda se encontram pendentes de processamento. As consultas devem ocorrer de forma automática, gerando alertas para notas que estão a mais de 24h sem retorno. |
Cancelamento O cancelamento de uma NFC-e deve ser utilizado sempre que a nota for autorizada e a operação não houver sido realizada, seja por desistência ou erro operacional, para realizar o cancelamento basta passar os dados da nota autorizada e justificativa de cancelamento para a API especifica para este serviço, o prazo para o cancelamento de uma NFC-e é de 30 minutos após a autorização da nota, podendo ser estendido até 24h a critério da UF. O Serviço de cancelamento funciona de maneira síncrona, onde o retorno é devolvido na mesma requisição, por esse motivo a venda somente deve ser desfeita caso o PDV receba a confirmação do cancelamento junto a SEFAZ, sendo essa a única garantia que o cancelamento foi realizado com sucesso. Caso o cancelamento da nota não tenha sido processado com sucesso e a venda seja desfeita, é necessário que o PDV faça uma nota de devolução para desfazer a operação. Além do cancelamento normal existe o cancelamento por substituição, que tem a finalidade de cancelar notas que tenham sido autorizadas em duplicidade devido a falha em sua transmissão. O MID-e já utiliza essa modalidade para cancelar as notas que tenham sido colocadas em processo incompleto, contudo, caso seja necessário o PDV pode utilizar esse cancelamento informando o tpEvento 110112 e a chave da nota emitida online quando for cancelar a nota.
Inutilização A Inutilização de notas visa garantir o registro sequencial das notas, eliminando lacunas na numeração de notas devido a falhas técnicas ou operacionais, onde as notas transmitidas não tenham sido autorizadas junto a SEFAZ. antes de solicitar a inutilização é recomendado que o PDV realize a consulta da nota a fim de garantir que a nota que está sendo inutilização não tenha sido autorizada junto a sefaz. Caso o PDV envie um pedido de inutilização para uma nota que tenha sido autorizada, o PDV receberá a rejeição 241, sendo necessário realizar uma nova consulta para obter os dados da nota autorizada. |
Toda comunicação com o Fiscal Flow é realizada através do Fiscal Flow Client por meio de API REST, utilizando o formato JSON, para se comunicar com o client. Para se comunicar com o Client, o PDV deve sempre utilizar a porta 8089 e o host da máquina em que o Client foi instalado, utilizando preferencialmente o client de maneira local, evitando a utilização de um client para diversos PDV's, para autorizar uma nota por exemplo o PDV utilizará o endpoint http://localhost:8089/NFCe/Autoriza, passando os dados da nota que deseja autorizar. O Fiscal Flow Client funciona de maneira síncrona, sempre devolvendo o retorno na mesma chamada, mesmo em situações onde a nota for emitida em contingência devido a falha técnica ou em contingência, nunca deixando o PDV sem um retorno, exceto em casos onde o Client possuir algum problema na sua instalação ou de funcionamento.
|