Pular para o conteúdo principal

MNF005 — Cancelamento de Notas Fiscais (enriquecimento)

Menu: Faturamento > Movimentações > Notas Fiscais > Cancelamento de Notas Fiscais

Objetivo​

A tela MNF005 cancela uma Nota Fiscal já emitida e válida (ST_NOTA = 'V'), revertendo seus efeitos fiscais, financeiros e de estoque no sistema. Quando a nota é uma NF-e/NFC-e, CT-e ou SAT-CFe já transmitida, a tela primeiro conduz o usuário ao cancelamento junto ao órgão fiscal (SEFAZ/SAT) antes de liberar o cancelamento interno. A tela também é aberta automaticamente por outras telas (CNF001, MNF032, CNF011), que já preenchem os campos de busca da nota a ser cancelada.

Fluxo principal​

  1. Ao abrir a tela (ou ser chamada por CNF001/MNF032/CNF011), o sistema já inicia um novo registro e posiciona o cursor na Empresa; se aberta a partir de outro módulo, os campos Empresa, Pessoa, Tipo de Nota, Lançamento e Série já vêm preenchidos. (MNF005 - Cancelamento de Notas Fiscais) — source/MNF005/UMNF005.pas:101-191 (iniciar)
  2. Informar Empresa e Pessoa Física/Jurídica; o sistema valida se ambas existem (e se a Pessoa está ativa). (MNF005) — source/MNF005/UdmMNF005.pas:62-103 (TdmMNF005.tabEMPRESACD_EMPRESAValidate)
  3. Selecionar o Tipo de Nota (Entrada/Saída) e informar o Nº de Lançamento ou o Nº da Nota Fiscal (pode pesquisar com F9) e a Série. (MNF005) — source/MNF005/UMNF005.pas:1106-1204 (TfrmMNF005.edtNR_LANCAMENTOKeyDown)
  4. O sistema busca automaticamente a nota, o(s) pedido(s) vinculado(s) e avisa se a nota (NF-e/NFC-e) ainda não foi transmitida, perguntando se deseja continuar mesmo assim. (MNF005) — source/MNF005/UdmMNF005.pas:126-244 (carregaPedido)
  5. Informar o Motivo do Cancelamento (obrigatoriamente cadastrado como tipo Cancelamento). (MNF005) — source/MNF005/UdmMNF005.pas:105-124 (TdmMNF005.tabEMPRESACD_MOTIVOValidate)
  6. Clicar em Excluir (F7); o sistema pede confirmação 'Deseja Cancelar a Nota Fiscal?' e revalida todos os campos obrigatórios. (MNF005) — source/MNF005/UMNF005.pas:366-415 (TfrmMNF005.btnExcluirClick)
  7. Se houver boletos ativos registrados via API bancária vinculados à nota, o sistema pede confirmação e solicita a baixa desses boletos ao banco antes de prosseguir. (MNF005) — source/MNF005/UMNF005.pas:1311-1392 (TfrmMNF005.BaixaBoletosAPINota)
  8. O sistema executa uma simulação (dry-run) da procedure CANCELA_NOTAFISCAL para verificar se o cancelamento é permitido, antes de mexer em dados fiscais. (MNF005) — source/MNF005/UMNF005.pas:549-568 (TfrmMNF005.btnExcluirClick)
  9. O sistema executa efetivamente a CANCELA_NOTAFISCAL (que também cancela contas, estoque e mestras), grava o cancelamento, oferece reimpressão da nota e exibe mensagem de sucesso com orientação sobre próximas telas. (MNF005) — source/MNF005/UMNF005.pas:988-1088 (TfrmMNF005.btnExcluirClick)

Campos obrigatórios​

CampoCondiçãoMensagemFonte
Empresa (CD_EMPRESA)sempre, para localizar e cancelar a notaÉ obrigatório informar a Empresa!source/MNF005/UMNF005.pas:383-387 (TfrmMNF005.btnExcluirClick)
Pessoa Física/Jurídica (CD_PESSOA)sempreÉ Obrigatório informar a Pessoa!source/MNF005/UMNF005.pas:389-393 (TfrmMNF005.btnExcluirClick)
Nº Lançamento ou Nº Nota Fiscalpelo menos um dos dois deve estar preenchidoÉ Obrigatório Informar o Número do Lançamento ou o Número da Nota Fiscal!source/MNF005/UMNF005.pas:395-399 (TfrmMNF005.btnExcluirClick)
Série da Nota Fiscal (CD_SERIE)sempreÉ Obrigatório Informar a Série da Nota Fiscal!source/MNF005/UMNF005.pas:401-405 (TfrmMNF005.btnExcluirClick)
Motivo do Cancelamento (CD_MOTIVO)sempre, e deve ser um motivo cadastrado com TP_MOTIVO = 'C'É Obrigatório Informar o Motivo do Cancelamento!source/MNF005/UMNF005.pas:407-415 (TfrmMNF005.btnExcluirClick)

Mensagens: causa e ação​

A Empresa não está Cadastrada [ADM002]!​

Causa: O código de Empresa informado não existe na tabela EMPRESA.

Ação: Corrigir o código ou cadastrar a empresa na tela ADM002.

Fonte: source/MNF005/UdmMNF005.pas:62-78 (TdmMNF005.tabEMPRESACD_EMPRESAValidate)

A NF-e Deve ser Cancelada na Receita Federal. Verifique!​

Causa: Após a tentativa de cancelamento na SEFAZ, não foi encontrado protocolo de cancelamento gravado na NFE (e nenhum protocolo foi informado por outra tela).

Ação: Concluir a transmissão do cancelamento da NF-e junto à SEFAZ antes de repetir a operação nesta tela.

Fonte: source/MNF005/UMNF005.pas:640-682 (TfrmMNF005.btnExcluirClick)

A NF-e Esta com a Situação de em Processamento Pela Receita Federal. Favor Consultar sua Situação a Tela CNF001!​

Causa: O status da NF-e (CSTAT) é '105', indicando lote em processamento pela SEFAZ.

Ação: Consultar a situação atualizada na tela CNF001 e aguardar antes de tentar cancelar.

Fonte: source/MNF005/UMNF005.pas:622-634 (TfrmMNF005.btnExcluirClick)

A NF-e foi Transmitida Somente em EPEC. Favor Realizar a Transmissão em Modo Normal Antes de Realizar o Cancelamento.​

Causa: A NF-e foi emitida em contingência EPEC (TPEMISS = 4) e ainda não tem protocolo de autorização normal.

Ação: Realizar a transmissão em modo normal da NF-e antes de cancelar.

Fonte: source/MNF005/UMNF005.pas:635-637 (TfrmMNF005.btnExcluirClick)

A Nota %s está vinculada à Ordem de Carregamento nº %s. Deseja Reabrir?​

Causa: A nota pertence a um Embarque com Ordem de Carregamento ativa (ST_EMBARQUE = 'A').

Ação: Confirmar para reabrir a Ordem/Embarque (o pedido volta à fila de faturamento ou de recap); recusar interrompe o cancelamento da nota.

Fonte: source/MNF005/UMNF005.pas:774-847 (TfrmMNF005.btnExcluirClick)

A Nota Fiscal não está Cadastrada. Verifique!​

Causa: Não foi encontrada nota Válida com os dados de Empresa, Pessoa, Série, Tipo e Lançamento/Nº Nota informados.

Ação: Conferir os dados informados ou pesquisar a nota correta com F9 no campo Lançamento.

Fonte: source/MNF005/UMNF005.pas:417-435 (TfrmMNF005.btnExcluirClick)

A Nota não Pode ser Cancelada Pois Pertence a um Contrato de Leite. Verifique!​

Causa: A nota tem movimentação de leite vinculada a um Contrato de Leite fechado (ST_CONTRATOLEITE = 'F').

Ação: Não é possível cancelar por esta tela; tratar via módulo de Contrato de Leite.

Fonte: source/MNF005/UMNF005.pas:573-588 (TfrmMNF005.btnExcluirClick)

A Nota Possui Controle de Entrega, Deseja Continuar e Cancelar os Controles de Entrega?​

Causa: Existe registro de Controle de Entrega ativo (ST_ENTREGUE <> 'N') para a nota, e os parâmetros de faturamento indicam controle manual.

Ação: Confirmar para prosseguir (os controles de entrega serão cancelados) ou recusar para não cancelar a nota.

Fonte: source/MNF005/UMNF005.pas:443-462 (TfrmMNF005.btnExcluirClick)

A Pessoa Física / Jurídica não está Ativa [TFA001]!​

Causa: O cadastro da pessoa informada está com ST_ATIVA = 'N'.

Ação: Reativar o cadastro na tela TFA001 ou usar outra pessoa.

Fonte: source/MNF005/UdmMNF005.pas:80-103 (TdmMNF005.tabEMPRESACD_PESSOAValidate)

A Pessoa Física / Jurídica não está Cadastrada [TFA001]!​

Causa: O código de pessoa informado não existe na tabela PESSOA.

Ação: Cadastrar ou corrigir o código da pessoa na TFA001.

Fonte: source/MNF005/UdmMNF005.pas:80-103 (TdmMNF005.tabEMPRESACD_PESSOAValidate)

ECF não Implementado!​

Causa: A nota tem cupom fiscal e o parâmetro PARMNOTA.ST_CUPOMFISCAL exige controle de cancelamento do último cupom no ECF, integração não implementada nesta tela.

Ação: Nenhuma ação disponível pela tela; contatar o suporte para avaliar o cenário específico deste cupom fiscal.

Fonte: source/MNF005/UMNF005.pas:1007-1022 (TfrmMNF005.btnExcluirClick)

Esta Nota Fiscal possui %s boleto(s) registrado(s) no banco. Ao continuar, será solicitada a baixa ao banco. Continuar?​

Causa: A nota tem duplicatas com boleto ativo registrado via API bancária (BOLETO.ST_APIBOLETOS = 'AC').

Ação: Confirmar para que o sistema envie a instrução de baixa desses boletos ao banco antes do cancelamento.

Fonte: source/MNF005/UMNF005.pas:1321-1392 (TfrmMNF005.BaixaBoletosAPINota)

Esta Nota Fiscal possui Boleto registrado no banco e pertence a outra Empresa. Acesse o sistema com a Empresa da Nota para cancelar, ou baixe o Boleto manualmente. Verifique! [MFC033]​

Causa: A empresa da nota é diferente da empresa da sessão logada; a rotina de baixa só funciona com a empresa da sessão.

Ação: Acessar o sistema com a empresa da nota, ou baixar o boleto manualmente no financeiro antes de cancelar.

Fonte: source/MNF005/UMNF005.pas:1380-1387 (TfrmMNF005.BaixaBoletosAPINota)

Informe o Motivo Para o Cancelamento!​

Causa: O usuário confirmou continuar cancelando uma nota não transmitida sem preencher o campo Motivo antes.

Ação: Preencher o campo Motivo do Cancelamento.

Fonte: source/MNF005/UdmMNF005.pas:212-221 (carregaPedido)

Nota Fiscal Selecionada Não Transmitida. Deseja Continuar o Cancelamento?​

Causa: A NF-e/NFC-e vinculada à nota está com situação 'Pendente' (sem protocolo de autorização).

Ação: Confirmar para prosseguir mesmo assim, ou cancelar e regularizar a transmissão antes.

Fonte: source/MNF005/UdmMNF005.pas:207-221 (carregaPedido)

Não foi possível baixar no banco o(s) boleto(s) abaixo, por isso a Nota Fiscal não foi cancelada: Baixe o(s) boleto(s) manualmente e tente novamente. Verifique! [MFC033]​

Causa: O banco não confirmou a baixa do(s) boleto(s) enviada via API (o campo de controle continua preenchido, indicando falha).

Ação: Baixar manualmente o(s) boleto(s) no módulo financeiro e tentar cancelar novamente.

Fonte: source/MNF005/UMNF005.pas:1508-1549 (TfrmMNF005.BaixaBoletosAPINota)

Não é possível cancelar esta Nota Fiscal: a duplicata nº %s / parcela %s está Liquidada e possui Boleto registrado no banco. Estorne a liquidação antes de cancelar a Nota. Verifique! [MFC004]​

Causa: A duplicata da nota já foi liquidada (ST_CONTAS = 'L') mas ainda tem boleto ativo registrado no banco.

Ação: Estornar a liquidação da duplicata no financeiro antes de cancelar a nota.

Fonte: source/MNF005/UMNF005.pas:1361-1370 (TfrmMNF005.BaixaBoletosAPINota)

O CT-e Deve ser Cancelada na Receita Federal. Verifique!​

Causa: Após a tentativa de cancelamento, não foi encontrado protocolo de cancelamento gravado para o CT-e.

Ação: Concluir o cancelamento do CT-e junto à SEFAZ antes de repetir a operação.

Fonte: source/MNF005/UMNF005.pas:965-980 (TfrmMNF005.btnExcluirClick)

O Motivo de Cancelamento não está Cadastrado [TFA009]!​

Causa: O código de motivo informado não existe na tabela MOTIVO.

Ação: Cadastrar ou corrigir o motivo na tela TFA009.

Fonte: source/MNF005/UdmMNF005.pas:105-124 (TdmMNF005.tabEMPRESACD_MOTIVOValidate)

O Motivo não é do Tipo Cancelamento [TFA009]!​

Causa: O motivo existe, mas seu TP_MOTIVO não é 'C' (Cancelamento).

Ação: Selecionar um motivo cadastrado como tipo Cancelamento na TFA009.

Fonte: source/MNF005/UdmMNF005.pas:105-124 (TdmMNF005.tabEMPRESACD_MOTIVOValidate)

O SAT-CFe Deve ser Cancelada. Verifique!​

Causa: Após a tentativa de cancelamento, não foi encontrado protocolo de cancelamento gravado para o SAT-CFe.

Ação: Concluir o cancelamento do SAT-CFe antes de repetir a operação.

Fonte: source/MNF005/UMNF005.pas:731-746 (TfrmMNF005.btnExcluirClick)

Os Pedido(s) [%s] Associados a Nota Fiscal Possui Controle de Entrega Agendado/Entregue. Verifique! [MNF016]​

Causa: Algum item de pedido vinculado à nota tem quantidade em Controle de Entrega maior que a quantidade atendida pelo pedido.

Ação: Verificar e ajustar o controle de entrega do pedido na tela MNF016 antes de cancelar a nota.

Fonte: source/MNF005/UMNF005.pas:466-533 (TfrmMNF005.btnExcluirClick)

É Obrigatório Informar a Empresa para Listar as Notas Fiscais!​

Causa: O usuário pressionou F9 no campo Nº Lançamento sem preencher o campo Empresa.

Ação: Preencher o campo Empresa antes de pesquisar as notas.

Fonte: source/MNF005/UMNF005.pas:1115-1123 (TfrmMNF005.edtNR_LANCAMENTOKeyDown)

É obrigatório informar a Empresa! / É Obrigatório informar a Pessoa! / É Obrigatório Informar a Série da Nota Fiscal! / É Obrigatório Informar o Número do Lançamento ou o Número da Nota Fiscal! / É Obrigatório Informar o Motivo do Cancelamento!​

Causa: Um dos campos obrigatórios do cabeçalho (Empresa, Pessoa, Lançamento/Nº Nota, Série ou Motivo) não foi preenchido ao confirmar o cancelamento.

Ação: Preencher o campo indicado pelo cursor antes de confirmar novamente o cancelamento.

Fonte: source/MNF005/UMNF005.pas:383-415 (TfrmMNF005.btnExcluirClick)

Operação Cancelada pelo Usuário. / Operação Cancelada!​

Causa: O usuário respondeu Não a uma das confirmações do processo (baixa de boleto no banco ou continuidade da entrega/reabertura de Ordem).

Ação: Nenhuma ação necessária; a nota permanece Válida. Repita a operação se realmente desejar cancelar.

Fonte: source/MNF005/UMNF005.pas:1389-1392 (TfrmMNF005.BaixaBoletosAPINota), source/MNF005/UMNF005.pas:461-462 (TfrmMNF005.btnExcluirClick)

Regras de negócio​

  • MNF005.R001 (ver regras/MNF005/MNF005.R001.md)
  • MNF005.R002 (ver regras/MNF005/MNF005.R002.md)
  • MNF005.R003 (ver regras/MNF005/MNF005.R003.md)
  • MNF005.R004 (ver regras/MNF005/MNF005.R004.md)
  • MNF005.R005 (ver regras/MNF005/MNF005.R005.md)
  • MNF005.R006 (ver regras/MNF005/MNF005.R006.md)
  • MNF005.R007 (ver regras/MNF005/MNF005.R007.md)
  • MNF005.R008 (ver regras/MNF005/MNF005.R008.md)
  • MNF005.R009 (ver regras/MNF005/MNF005.R009.md)
  • MNF005.R010 (ver regras/MNF005/MNF005.R010.md)
  • MNF005.R011 (ver regras/MNF005/MNF005.R011.md)
  • MNF005.R012 (ver regras/MNF005/MNF005.R012.md)
  • MNF005.R013 (ver regras/MNF005/MNF005.R013.md)
  • MNF005.R014 (ver regras/MNF005/MNF005.R014.md)
  • MNF005.R015 (ver regras/MNF005/MNF005.R015.md)
  • MNF005.R016 (ver regras/MNF005/MNF005.R016.md)
  • MNF005.R017 (ver regras/MNF005/MNF005.R017.md)
  • MNF005.R018 (ver regras/MNF005/MNF005.R018.md)
  • MNF005.R019 (ver regras/MNF005/MNF005.R019.md)
  • MNF005.R020 (ver regras/MNF005/MNF005.R020.md)
  • MNF005.R021 (ver regras/MNF005/MNF005.R021.md)
  • MNF005.R022 (ver regras/MNF005/MNF005.R022.md)
  • MNF005.R023 (ver regras/MNF005/MNF005.R023.md)

Perguntas frequentes​

P: Por que não consigo cancelar a nota, dando a mensagem 'A NF-e Deve ser Cancelada na Receita Federal'? R: Porque a NF-e está transmitida (autorizada) e o sistema não encontrou protocolo de cancelamento gravado. Conclua o cancelamento da NF-e junto à SEFAZ (a tela abre automaticamente) e depois repita o cancelamento na MNF005. Fonte: source/MNF005/UMNF005.pas:640-682 (TfrmMNF005.btnExcluirClick)

P: O usuário diz que a nota está 'Liquidada' e não consegue cancelar por causa de boleto. O que fazer? R: A duplicata da nota já foi liquidada mas ainda tem um boleto ativo registrado no banco (via API). É preciso estornar a liquidação dessa duplicata no financeiro antes de cancelar a nota. Fonte: source/MNF005/UMNF005.pas:1361-1370 (TfrmMNF005.BaixaBoletosAPINota)

P: Por que aparece a mensagem sobre 'Boleto registrado no banco e pertence a outra Empresa'? R: A baixa automática de boletos ao cancelar a nota só funciona quando o usuário está logado na mesma empresa da nota. Se a empresa logada for diferente, é preciso trocar de empresa no sistema ou baixar o boleto manualmente antes de cancelar. Fonte: source/MNF005/UMNF005.pas:1380-1387 (TfrmMNF005.BaixaBoletosAPINota)

P: A nota está vinculada a uma Ordem de Carregamento; o que acontece se eu confirmar a reabertura? R: A Ordem de Carregamento (ou o registro em ORDEMCARREGRECAP, se for fluxo de recap) é reaberta e, se não sobrar outra Ordem ativa no Embarque, o Embarque também é cancelado. O pedido volta a aparecer na fila de faturamento (MNF033) ou de recap (MRC020) para nova emissão. Fonte: source/MNF005/UMNF005.pas:774-847 (TfrmMNF005.btnExcluirClick)

P: Deu a mensagem 'ECF não Implementado!' ao tentar cancelar uma nota com cupom fiscal. Isso é normal? R: Sim, é uma limitação conhecida: quando o parâmetro da série permite cancelar apenas o último cupom fiscal emitido, a tela não tem a integração necessária com o ECF implementada e bloqueia o cancelamento nesse cenário. Fonte: source/MNF005/UMNF005.pas:1007-1022 (TfrmMNF005.btnExcluirClick)

P: Por que a tela pergunta se quero continuar dizendo que a nota não foi transmitida? R: Porque a NF-e/NFC-e vinculada à nota ainda está pendente de autorização na SEFAZ (sem protocolo). O sistema avisa antes de deixar prosseguir, já que cancelar sem transmissão pode exigir tratamento diferente depois. Fonte: source/MNF005/UdmMNF005.pas:200-228 (carregaPedido)

P: Por que não consigo pesquisar as notas fiscais com F9 no campo Nº Lançamento? R: É preciso preencher primeiro os campos Empresa e Pessoa Física/Jurídica; a pesquisa das notas depende desses dois filtros. Fonte: source/MNF005/UMNF005.pas:1115-1123 (TfrmMNF005.edtNR_LANCAMENTOKeyDown)

P: Deu a mensagem sobre 'Pedido(s) ... Possui Controle de Entrega Agendado/Entregue [MNF016]'. Como resolver? R: Algum item do pedido vinculado à nota já tem mais quantidade marcada como entregue/agendada do que a quantidade atendida pelo próprio pedido. É preciso revisar o controle de entrega desse pedido na tela MNF016 antes de conseguir cancelar a nota. Fonte: source/MNF005/UMNF005.pas:466-533 (TfrmMNF005.btnExcluirClick)

P: Por que o cancelamento é bloqueado dizendo que existe uma Conferência válida? R: A procedure de cancelamento não permite cancelar uma nota que ainda tenha uma Conferência de Nota (MFN035) em situação diferente de Cancelada. É preciso cancelar a Conferência nessa tela antes. Fonte: Scripts/CANCELA_NOTAFISCAL.sql:269-284 (CANCELA_NOTAFISCAL)

Dúvidas em aberto (o código não responde)​

  • Quais são os valores possíveis de PARMFATUR.TP_EXCLUSAOENTREGADEVOLUCAO além de 'M' (Manual), e o que a rotina automática GERA_CONTROLEENTREGA faz exatamente nesse caso? — No MNF005, o Controle de Entrega só é verificado manualmente (com pergunta ao usuário) quando ST_CONFIRMAENTREGAREMESSA='N' e TP_EXCLUSAOENTREGADEVOLUCAO='M' (UMNF005.pas:446). Nos demais casos o tratamento fica a cargo de GERA_CONTROLEENTREGA, que não foi lido nesta sessão.
  • Quais valores PARMFATUR.ST_CONFIRMAENTREGAREMESSA pode assumir além de 'N', e qual o efeito de cada um? — Só o valor 'N' foi observado sendo testado explicitamente no módulo (UMNF005.pas:446); não há evidência no MNF005 do comportamento para outros valores.
  • Existe alguma tela/rotina que implementa hoje o cancelamento de cupom fiscal (ECF), já que o MNF005 explicitamente não implementa? — A mensagem 'ECF não Implementado!' sugere lacuna funcional (UMNF005.pas:1007-1022), mas o módulo não referencia nenhuma tela alternativa para esse cenário.
  • Onde o usuário configura o limite de tempo para cancelamento de nota própria (PARMUSUARIO.NR_TEMPOCANCELAMENTONF/TP_TEMPOCANCELAMENTONF)? — A regra de prazo está na procedure CANCELA_NOTAFISCAL (linhas 243-267), mas a tela de configuração desse parâmetro por usuário não faz parte do módulo MNF005.