Fluxo - Cancelamento/Inutilização da NFC-e
Last updated
Was this helpful?
Last updated
Was this helpful?
Enquanto o cancelamento permite ao contribuinte cancelar uma nota que já havia sido autorizada, mas não houve circulação da mercadoria, a inutilização permite que ele declare que não utilizou uma determinada numeração, assegurando-se de que a SEFAZ não pense que está fraudando. Para ambos os casos temos o embasamento na legislação a respeito do e da :
Cláusula décima quinta O emitente poderá solicitar o cancelamento da NFC-e, desde que não tenha havido a saída da mercadoria, em prazo não superior a 30 minutos, podendo ser reduzido a critério de cada unidade federada, contado do momento em que foi concedida a Autorização de Uso da NFC-e, de que trata o inciso I da cláusula oitava.
Cancelamento por Substituição
Cláusula décima quinta-A Na hipótese prevista no inciso I da cláusula décima segunda, o emitente poderá solicitar o cancelamento da NFC-e, desde que tenha sido emitida uma outra NFC-e em contingência para acobertar a mesma operação, em prazo não superior a 168 horas, podendo ser reduzido a critério de cada unidade federada, contado do momento em que foi concedida a Autorização de Uso da NFC-e, de que trata o inciso I da cláusula oitava
Cláusula décima sexta O contribuinte deverá solicitar, mediante Pedido de Inutilização de Número da NFC-e, até o 10 (décimo) dia do mês subsequente, a inutilização de números de NFC-e não utilizados, na eventualidade de quebra de sequência da numeração da NFC-e
Aí surge a pergunta: "Como sei qual devo utilizar? Tenho que mandar para APIs diferentes?" - Isso a InvoiSys simplifica para você.
Nossa API de Cancelamento pode ser utilizada tanto para o cancelamento quanto para a inutilização do documento e mais, você não precisa mapear do seu lado quando deve ser um e quando deve ser outro.
Logo abaixo vamos descrever para você todo o fluxo para a emissão do cancelamento/inutilização.
Cancelar documento por ID Estabelecimento:
Cancelar documento por CNPJ:
Consulta do documento por Chave de Acesso:
Consulta do documento por Número/Série:
Consulta do documento por ID:
Gerar DANFE:
Tendo ele em mãos devemos então escolher qual API utilizaremos. Atualmente temos duas:
Depois de decidirmos qual API utilizaremos, devemos preparar o JSON com as informações e então realizar a chamada da API.
Ao receber a chamada, a InvoiSys verificará na SEFAZ se será necessário fazer a inutilização ou o cancelamento do documento. E será com base nessa resposta que o retorno chamada será elaborado.
É importante relembrar que o prazo máximo para cancelamento é de 30 minutos contados a partir da autorização da nota!
Conforme falamos no tópico anterior, o retorno da chamada da API variará de acordo com o status do documento na SEFAZ. É com base nesse retorno que entendemos o que deve ser feito após a emissão do mesmo.
Com base no retorno podemos chegar a 3 cenários:
São os dois cenários de sucesso na chamada da API. Para isso devemos observar o seguinte:
Tags do bloco acoes
: Retornofalse
.
A seguir vamos entender como analisar se foi um cancelamento ou uma inutilização.
Para identificarmos o cancelamento, podemos checar o retorno desta forma::
dadosDoDocumento:
codigoStatusSEFAZ
: Retorno 101
descricaoStatusSEFAZ
: Retorno Cancelamento de NF-e homologado
.
status: key
: Retorno 1
;
status: value
: Retorno cancelado
.
Já no caso de inutilização, veremos o seguinte retorno:
dadosDoDocumento: codigoStatusSEFAZ
: Retorno 102
(Inutilização);
descricaoStatusSEFAZ
: Retorno Inutilização de número homologadodo
.
status: key
: Retorno 1
;
status: value
: Retorno inutilizado
.
Caso o cancelamento seja enviado após o período de 30 minutos, a SEFAZ poderá rejeitá-lo, sendo assim, o status da na nota se manterá como autorizado.
Quando isso ocorrer, em nosso retorno você verá
acoes: corrigirDocumento
: Retorno true
;
excecao
: Retorno string com o erro da SEFAZ.
Você verificará que no exemplo acima o codigoStatusSEFAZ
permanece como 100
, pois, entendemos que, mesmo com a rejeição no cancelamento, o status final da nota é de autorizado.
É extremamente importante não enviar mais o cancelamento caso este tenha passado no prazo. Se o envio continuar sendo realizado, a SEFAZ poderá bloquear as emissões com a justificativa de estar consumindo indevidamente o serviço.
Quando isso ocorrer, você verá a seguinte informação:
acoes: tentarNovamenteMaisTarde
: Retorno true
.
Lembre-se, quando há uma exceção na comunicação com a SEFAZ, não sabemos se ela aceitou ou não a requisição, sendo assim, o envio constante pode estar sendo aceito pela e eventualmente poderá ser bloqueado por consumo indevido.
3) Cancelamento por Substituição
Quando existem 2 NFCes representando a mesma venda (uma em emissão normal e outra em contingência) indicando duplicidade, o contribuinte poderá cancelar a anterior indicando que foi feita uma nova emissão.
Normalmente acontece assim:
A empresa envia para a SEFAZ uma NFCe com tipo de emissão Normal (NFCe 1)
Devido a algum problema ou indisponibilidade, não é possível obter o retorno se aquela NFCe foi ou não autorizada
Sendo necessária realizar a venda, a empresa envia outra NFCe representando a mesma operação, porém agora em contingência Offline (NFCe 2)
Quando o problema é resolvido, é verificado que a NFCe 1 havia sido autorizada pela a Sefaz. Porém a NFCe 2 também foi emitida (em contingência) e tem valor legal. Portanto existem 2 notas (NFCe 1 e NFCe 2) acobertando a mesma venda
Neste caso, a empresa deve emitir um Cancelamento por Substituição cancelando a NFCe 1 e referenciando que a NFCe 2 foi emitida em seu lugar e é o documento de posse do consumidor O cancelamento por substituição dará ao contribuinte o prazo de até 168 horas (7 dias) para a efetivação do evento.
a) Chamada do Cancelamento por Substituição
a.1) Fluxo
O fluxo indicado para o envio do Cancelamento por Substituição consiste em aguardar que a NFC-e emitida em contingência na numeração seguinte seja autorizada, garantindo que a venda acobertando a operação que recebeu falha de comunicação com a SEFAZ esteja válida.
Dessa forma, é possível criar uma rotina que verifique as NFC-es sujeitas a timeout e cuja contingência tenha sido autorizada. Outra abordagem é implementar um gatilho que, ao receber a confirmação de autorização durante o processo assíncrono de contingência, prossiga automaticamente com o cancelamento por substituição da faixa normal que sofreu falha de comunicação.
b) Retorno do cancelamento por substituição
Para detalharmos melhor a operação, a separamos em tópicos, 📝.
Da mesma maneira que no , também precisamos nos atentar para termos um token de acesso válido.
;
.
Assim como no , 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.
; ;
Assim como falamos no , no cancelamento também podem haver exceções na comunicação com a SEFAZ.
As possíveis APIs utilizadas para o cancelamento pro substituição são as mesmas descritas notópico , com a diferença que, obrigatoriamente, será necessário enviar o parâmetro "chaveDeAcessoSubstituta" (chave da NFC-e em contingência), como no exemplo a seguir:
O retorno será o mesmo indicado no fluxo do tópico . Caso a NFC-e normal esteja autorizada na SEFAZ, a invoiSys fará a requisição do evento de Cancelamento por Substituição, indicando a chave substituída informada no JSON. Caso contrário (NFC-e normal não autorizada), o registro será inutilizado.