Fluxo - Envio Contingência SEFAZ NFC-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 19/16:
Cláusula décima primeira Quando em decorrência de problemas técnicos não for possível transmitir a NFC-e para a unidade federada do emitente, ou obter resposta à solicitação de Autorização de Uso da NFC-e, o contribuinte deverá operar em contingência, mediante a adoção, a critério da unidade federada, de uma das seguintes alternativas:
I - efetuar geração prévia do documento fiscal eletrônico em contingência e autorização posterior, conforme definições constantes no MOC.
II - utilizar equipamento Emissor de Cupom Fiscal - ECF ou Sistema Autenticador e Transmissor - SAT;
III - transmitir Evento Prévio de Emissão em Contingência - EPEC (NFC-e), para a unidade federada autorizadora, nos termos da cláusula décima quarta, e imprimir pelo menos uma via do DANFE NFC-e que deverá conter a expressão “DANFE NFC-e impresso em contingência - EPEC regularmente recebido pela administração tributária autorizadora”, presumindo-se inábil o DANFE NFC-e impresso sem a regular recepção do EPEC pela unidade federada autorizadora.
Nós trabalhamos com a emissão do documento fiscal eletrônico emitido em contingência.
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.
APIs Essenciais 💡
Envio Completo em contingência do documento: /api/nfce/envioxmlcontingencia
Envio Híbrido em contingência do documento: /api/nfce/enviohibridacontingencia
Gerar DANFE: /api/nfce/getdanfe/{id}
APIs Opcionais 🥈
Envio Completo do documento: /api/nfce/envioxmlnormal
Envio Híbrido do documento: /api/nfce/enviohibridanormal
Consulta do documento por ID: /api/nfce/{id}
Consulta do documento por Chave de Acesso: /api/nfce/getbychavedeacesso/{chave}
Consulta do documento por Número/Série: /api/nfce/getby_numero_serie_cnpj/{numero}/{serie}/{cnpj}/{ambiente}
Cancelar documento por ID Estabelecimento: /api/nfce/cancelarnfce
Cancelar documento por CNPJ: /api/nfce/cancelarnfcecnpj
Etapas e suas APIs
Para detalharmos melhor a operação, a separamos em tópicos, porém você consegue ver o fluxo completo aqui 📝.
1) Emissão da NFC-e
Antes de iniciamos a emissão da nota, é necessário estar com um token de acesso válido, pois este será utilizado no cabeçalho da chamada da API de Envio. Tendo ele em mãos, podemos partir para a emissão da nota.
A sua missão é gerar os dados da operação, como Produtos, Pagamentos, etc., e criar um XML (Modelo Completo) ou JSON (Modelo Híbrido) que será mandado em nossas APIs.
Assim que recebermos a chamada, faremos algumas validações no XML. Se estiver correto, assinaremos o mesmo e o transmitiremos à SEFAZ.
Aqui você irá enviar a operação de venda para nós, utilizando a API de Envio Completo ou API de Envio Híbrida. Iremos montar e assinar o XML, e vamos enviá-lo à SEFAZ.
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.
A intermitência será captada por nós, e em seguida retornamos as seguintes tags:
acoes: enviarContingencia
: Retornotrue
;acoes: cancelar
: Retornotrue
.
3) Emissão em contingência
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, pois a própria SEFAZ não nos informou. Sendo assim, acaba sendo um risco enviar na mesma numeração, pois pode ocorrer uma duplicidade ou rejeição do documento e, por consequência, o atraso na 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 ... § 2º É vedada: A reutilização, em contingência, de número de NFC-e transmitida com tipo de emissão “Normal”;
Resumindo a Operação:
- Emissão na numeração 1/1; - Timeout na operação; - Emissão da mesma nota em contingência na numeração 2/1; - Cancelamento da nota de numeração 1/1.
O segundo passo é adicionar as tags:
dhCont
que terá a data e hora de entrada em contingência;xJust
que terá a justificativa da entrada em contingência.
Após ajustarmos, podemos realizar a chamada da API para Envio em Contingência Completo ou API para Envio em Contingência Híbrido. 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 o id
do documento criado em nossa base, pois são utilizados em outras APIs.
Resumidamente, com base no retorno podemos chegar a 3 cenários:
a) Autorização da NF-e; b) Rejeição da NF-e; c) Exceção na comunicação com a SEFAZ;
a) Autorização
Para verificarmos se nota foi autorizada, devemos seguir os mesmos passos descritos no fluxo do envio normal.
Cancelamento por Substituição A NFC-e emitida em contingência serve para acobertar a NFC-e que não teve retorno da SEFAZ. Nós explicamos no fluxo de Cancelamento/Inutilização da NFC-e
b) Rejeição
Assim como na autorização, também seguiremos o mesmos passos do Fluxo de Envio Normal para identificar se a nota foi rejeitada e qual rejeição a nota recebeu.
c) Exceção na Comunicação com a SEFAZ
Este cenário é tratato por nossa solução. Quando ocorre o Timeout no envio deste documento, nós fazemos o reagendamento automático.
Neste caso, você poderá utilizar as APIs abaixo para checar periodicamente se o documento teve o status atualizado:
Terminamos esta etapa 😁. Para seguir, basta selecionar a card abaixo.
Last updated