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 💡

APIs Opcionais 🥈

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: Retorno true;

  • acoes: cancelar: Retorno true.

{
  "dadosDoDocumento": null,
  "acoes": {
    "corrigirDocumento": false,
    "cancelar": true,
    "enviarContingencia": true,
    "tentarNovamenteMaisTarde": false,
    "entrarEmContatoComSuporteImediatamente": false,
    "emitirProximoDocumentoNormal": null
  },
  "excecao": "The request failed with HTTP status 404: Not Found."
}

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.

{
  "dadosDoDocumento": {
    ...
    "dataDeAutorizacao": null,
    "documentoComErro": false,
    "codigoStatusSEFAZ": null,
    "descricaoStatusSEFAZ": null,
    ...
    "documentoJaEmitidoAnteriormente": false,
    "status": {
      "key": 4,
      "value": "Aguardando envio para SEFAZ"
    }
  },
  "acoes": {
    "corrigirDocumento": false,
    "cancelar": false,
    "enviarContingencia": false,
    "tentarNovamenteMaisTarde": false,
    "entrarEmContatoComSuporteImediatamente": false,
    "emitirProximoDocumentoNormal": true
  },
  "excecao": null
}

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