Fluxo - Cancelamento/Inutilização da NFC-e
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 cancelamento e da inutilização:
Cancelamento
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
Inutilização
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.
API's Essenciais 💡
Cancelar documento por ID Estabelecimento: /api/nfce/cancelarnfce
Cancelar documento por CNPJ: /api/nfce/cancelarnfcecnpj
API's Opcionais 🥈
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}
Consulta do documento por ID: /api/nfce/{id}
Gerar DANFE: /api/nfce/getdanfe/{id}
Etapas e API's
Para detalharmos melhor a operação, a separamos em tópicos, porém você consegue ver o fluxo completo aqui 📝.
1) Emitindo o cancelamento/inutilização
Da mesma maneira que no Envio Normal da NFC-e, também precisamos nos atentar para termos um token de acesso válido.
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.
2) Retorno da chamada
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.
Assim como no envio normal, 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.
Com base no retorno podemos chegar a 3 cenários:
a) Cancelamento ou inutilização da NFC-e (Sucesso); b) Rejeição no cancelamento; c) Exceção na comunicação com a SEFAZ
a) Cancelamento ou Inutilização da NFC-e (Sucesso)
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.
a.1) Cancelamento
Para identificarmos o cancelamento, podemos checar o retorno desta forma::
dadosDoDocumento:
codigoStatusSEFAZ
: Retorno101
descricaoStatusSEFAZ
: RetornoCancelamento de NF-e homologado
.status: key
: Retorno1
;status: value
: Retornocancelado
.
a.2) Inutilização
Já no caso de inutilização, veremos o seguinte retorno:
dadosDoDocumento: codigoStatusSEFAZ
: Retorno102
(Inutilização);descricaoStatusSEFAZ
: RetornoInutilização de número homologadodo
.status: key
: Retorno1
;status: value
: Retornoinutilizado
.
b) Rejeição no Cancelamento
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
: Retornotrue
;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.
Minha nota passou do prazo! E agora?
Existem algumas maneiras de lidar com esse cenário, como, por exemplo, fazer uma solicitação formal para a SEFAZ da sua UF pedindo o cancelamento extemporâneo se esta disponibilizar.
Nós recomendamos que, quando isso acontecer, verifique com o departamento fiscal ou contabilidade sobre o que poderá ser feito.
Caso sua NFC-e normal tenha passado por falha de comunicação com a SEFAZ, verifique o tópico Cancelamento por Substituição
c) Exceção na comunicação com a SEFAZ
Assim como falamos no envio normal, no cancelamento também podem haver exceções na comunicação com a SEFAZ.
Quando isso ocorrer, você verá a seguinte informação:
acoes: tentarNovamenteMaisTarde
: Retornotrue
.
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
As possíveis APIs utilizadas para o cancelamento pro substituição são as mesmas descritas no tópico Emitindo o cancelamento/inutilização, 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:
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.
Lembre-se do prazo de 7 dias para o envio do cancelamento por substituição! Portanto, não deixe de reenviar uma NFC-e em contingência represada ou pendente de ajuste por conta de alguma rejeição.
b) Retorno do cancelamento por substituição
O retorno será o mesmo indicado no fluxo do tópico "Retorno da chamada". 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.
Last updated