Fluxo - Envio Contingência da NF-e
O que é a emissão em contingência?
A emissão em contingência é um processo criado para que, sempre que hajam problemas na autorização da nota pela SEFAZ, o contribuinte tenha um respaldo para que sua operação prossiga normalmente. Segundo o Ajuste SINIEF 07/05:
Cláusula décima primeira: Quando em decorrência de problemas técnicos não for possível transmitir a NF-e para a unidade federada do emitente, ou obter resposta à solicitação de Autorização de Uso da NF-e, o contribuinte poderá operar em contingência, gerando arquivos indicando este tipo de emissão, conforme definições constantes no MOC, mediante a adoção de uma das seguintes alternativas: I - transmitir a NF-e para a Sefaz Virtual de Contingência - SVC, nos termos das cláusulas quarta, quinta e sexta deste ajuste; II - transmitir Evento Prévio de Emissão em Contingência - EPEC, nos termos da cláusula décima sétima-D; III - imprimir o DANFE em formulário de segurança - Formulário de Segurança para Impressão de Documento Auxiliar de Documento Fiscal Eletrônico (FS-DA), observado o disposto no Convênio ICMS 96/09, de 11 de dezembro de 2009.
Atualmente a InvoiSys possibilita a contingência SVC e FSDA.
Para entender como é o processo de emissão em contingência, o fluxo demonstrado a seguir acoberta a emissão da nota dentro da integração com a InvoiSys.
Endpoints Essenciais 💡
Envio da NF-e: /api/nfe/envio
Obter o DANFE da NF-e: /api/nfe/obterpdf
Endpoints Opcionais 🥈
Consultar NF-e por Chave de Acesso: /api/nfe/getbychavesSTD/{chave}
Obter XML da NF-e: /api/nfe/obterxml
Etapas e Endpoints
Para detalharmos melhor a operação, a separamos em tópicos, porém você consegue ver o fluxo completo aqui 📝.
1) Emissão da NF-e (Normal)
Realizaremos os mesmos procedimentos do fluxo de Envio Normal da NF-e, nos atentando para termos um token de acesso válido e também os dados da operação.
2) Retorno da Chamada (Exceção na comunicação com a SEFAZ)
Diferente do que vimos no Retorno do Envio Normal, dessa vez não temos uma resposta da SEFAZ para emissão da nota, sendo assim, temos uma exceção na comunicação.
Quando isso ocorre, a InvoiSys consulta prontamente qual o status do SVC e nosso retorno será baseado em como ele estiver. O tratamento do retorno poderá variar de acordo com o status do SVC, podendo levar a 2 cenários:
a) Emissão no SVC b) Tentar emitir a nota novamente como normal em um momento posterior c) Emissão FSDA
Vale ressaltar que a escolha pelo método de contingência fica a critério do integrador.
a) SVC Ligada
A SEFAZ Virtual de Contingência (SVC) é um serviço que pode ser ligado pela SEFAZ autorizadora caso esta esteja com problemas na autorização dos documentos ou em uma manutenção.
Este serviço é ligado em casos extremos em que a SEFAZ ficará fora durante horas. Na prática, vemos poucas vezes este sendo ativado.
Para identificarmos se o SVC está ligado, devemos observar as seguintes informações:
acoes: enviarContingencia
: Retornotrue
;acoes: cancelar
: Retornotrue
;
A seguir temos o exemplo do retorno para quando há um timeout na SEFAZ e a SVC está ligado.
Com o SVC ligado, podemos efetuar a Emissão em Contingência do documento, ou, caso deseje, você pode optar por aguardar a estabilização da SEFAZ autorizadora e enviá-la novamente como normal em um momento posterior.
b) SVC Desligada
Como mencionamos no tópico anterior, a SEFAZ Virtual de Contingência não estará ligada 100% do tempo, sendo assim, precisamos ter em mãos um segundo tratamento.
Caso esteja desligada, nós observaremos as seguintes tags:
acoes: tentarNovamenteMaisTarde
: Retornotrue
;excecao
: RetornoFalha de comunicação com a SEFAZ. SVC desabilitado.
Caso o SVC esteja desligado, então teremos que aguardar alguns minutos e tentar reenviar o documento novamente como normal.
c) FSDA (Formulário de Segurança – Documento Auxiliar)
O FSDA (Formulário de Segurança para Impressão de Documentos Auxiliares) é um tipo de documento utilizado para a impressão de DANFE (Documento Auxiliar da Nota Fiscal Eletrônica) em situações em que há indisponibilidade do sistema autorizador da SEFAZ. Ele serve como uma alternativa segura para emissão de documentos fiscais eletrônicos.
Legislação: O FSDA está regulamentado pelo Ajuste SINIEF 07/2005, que estabelece regras para a emissão de NF-e, incluindo situações de contingência.
Estados que aceitam: Alguns dos estados que aceitam o FSDA como forma de contingência incluem São Paulo (SP), Minas Gerais (MG), Rio Grande do Sul (RS), e Paraná (PR).
É possível optar pela emissão via FSDA caso possua o beneficio no estado onde está credenciado, principalmente se sua operação ocorre na rua e não há redundância ou mesmo rede para transmissão online das NF-es
3) Emissão em contingência
Conforme falamos anteriormente, com a SVC ligada temos a possibilidade da emissão em contingência.
Para isso, primeiramente é necessário avançar a numeração da nota. Você deve se perguntar: "Por que devo trocar a numeração se ainda não emiti a nota?". A gente te explica!
Quando ocorre uma exceção na comunicação com a SEFAZ, não temos o retorno da chamada, ou seja, não sabemos se a nota foi autorizada ou não, pois a SEFAZ não nos informou. Sendo assim, acaba sendo um risco enviar na mesma numeração, pois pode acarretar em uma um duplicidade ou rejeição da nota e, assim, atrasando a operação. Para complementar o processo e evitarmos que tenhamos duas notas acobertando a operação, devemos enviar o cancelamento da nota que não obteve retorno da SEFAZ.
Além dessa explicação, também temos o embasamento legal sobre a não reutilização de um número emitido como normal para uma emissão em contingência.
Cláusula décima primeira ... § 14. É vedada a reutilização, em contingência, de número de NF-e transmitida com tipo de emissão “Normal”.
Resumindo Se eu emitir a nota 1/1, receber um timeout e o SVC está ligado, então deverei emiti-lá novamente na numeração 2/1. Depois, preciso fazer o cancelamento da nota 1/1.
O segundo passo, é adicionar ao seu JSON de envio as seguintes tags:
Para SVC
contingencia
: Enviartrue
;dhCont
: Enviar o horário da entrada em contingência no formatoAAAA-MM-DDThh:mm:ssTZD
(Exemplo: 2018-12-27T07:50:52-04:00);xJust
: Enviar uma string justificando o motivo da entrada em contingência.
Para FSDA
fsda
: Enviartrue
;dhCont
: Enviar o horário da entrada em contingência no formatoAAAA-MM-DDThh:mm:ssTZD
(Exemplo: 2018-12-27T07:50:52-04:00);xJust
: Enviar uma string justificando o motivo da entrada em contingência.
Após ajustarmos o JSON, podemos realizar a chamada da API para envio da nota. Também deveremos efetuar o cancelamento da nota que apresentou uma exceção na comunicação com a SEFAZ.
4) Retorno da chamada
Assim como no envio normal, as notas emitidas em contingência também terão uma mensagem de retorno da SEFAZ. Esta mensagem será recebida por nós, e em seguida retornaremos na mesma chamada da API juntamente com os dados do documento e suas respectivas ações. É com base nesse retorno que entendemos o que deve ser feito após a emissão da NF-e.
Nele existem algumas informações que podem ser interessantes você guardar, como a chaveDeAcesso
e, opcionalmente, o id
do documento criado em nossa base, pois são utilizados em outras APIs.
Atenção, pois o envio da nota em contingência ao SVC será sempre síncrono!
Resumidamente, com base no retorno podemos chegar a 4 cenários:
a) Autorização da NF-e; b) Rejeição da NF-e; c) Exceção na comunicação com a SVC; d) SVC desligada.
a) Autorização
Para verificarmos se nota foi autorizada, devemos seguir os mesmos passos descritos no fluxo do envio normal.
b) Rejeição
Assim como na autorização, também seguiremos o mesmos passos para identificar se a nota foi rejeitada e qual rejeição a nota recebeu.
c) Exceção na comunicação com a SVC
Mesmo estando ligada, a SVC não é à prova de falhas e também pode, algumas vezes, não retornar a comunicação.
Nesses casos, como já estamos operando em contingência, deveremos aguardar alguns minutos e tentar enviar novamente. Abaixo vemos como será o retorno para este cenário.
d) SVC desligada
Caso tente fazer o envio em contingência e a SVC estiver desligada, você irá observar as seguintes informações:
corrigirDocumento
: retornotrue
;tentarNovamenteMaisTarde
: retornotrue
.
Seu papel, em seguida, será modificar as seguintes tags em seu envio:
contingência
: Enviarfalse
;dhCont
: Remover do envio;xJust
: Remover do envio.
Por fim, o que você irá fazer éenviar novamente o documento como "normal" sem alterar a numeração.
Neste cenário em específico podemos reutilizar a numeração, pois a nota não chegou a ser enviada para a SVC ou SEFAZ.
Não quer lidar com toda a complexidade da contingência? Confira nossos facilitadores.
Terminamos esta etapa 😁. Para seguir, basta selecionar a card abaixo
Last updated