NFeCancelar

A função NFeCancelar é usada para cancelar uma NF-e já autorizada pela SEFAZ.

Tipo de Retorno

Integer

Pacote

A função NFeCancelar está definida dentro do pacote NF-eCancelar.pkg.

Sintaxe

Move (NFeCancelar({sSiglaWS}, {iTpAmbiente}, {sCertificado}, &{sMsgCabec}, ;
                  &{sMsgDados}, &{sMsgRetWS}), &{sMsgResultado}, ;
                  {sChaveNFe}, {sProtocoloAutNFe}, {sJustificativa}, ;
                  &{snProt}, &{sdhRecbto}, &{sMotivo}, &{scStat}, ;
                  {sProxy}, {sUsuario}, {sSenha}, {sLicencaNFeUtil}, ;
                  {bExibeErro}, {sDirNFeCancel}, &{sXMLRet} [, ;
                  {sDiretorioPedido}, {bEvento}, {sDtCancelamento}, ;
                  {dDataHoraAutorizacao}]) to {iRet}

Onde:

  • {sSiglaWS} é a sigla do Web Service para o qual será enviada a solicitação. Veja mais detalhes aqui.
  • {iTpAmbiente} ambiente de trabalho, podendo ser 1-Produção ou 2-Homologação;
  • {sCertificado} é a string que representa o certificado digital que será usado na transmissão dos dados. Se não for informado, uma tela será exibida para o usuário escolher um dos certificados instalados para o usuário corrente. Veja mais detalhes sobre como informar este parâmetro clicando aqui;
  • &{sMsgCabec} é uma variável do tipo String que precisa ser passada por referência, porém uma string nula pode ser informada visto que este parâmetro é legado e não é mais usado. Ele perdeu sua utilizada na versão 2.0 da Library, mas não foi removido para que o processo de atualização fosse simplificado para os desenvolvedores;
  • &{sMsgDados} é um variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o XML completo do pedido de cancelamento que foi enviado ao Web Service. Normalmente esta informação é útil somente para o propósito de depuração pois na prática não é usada pelo emitente;
  • &{sMsgRetWS} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a mensagem XML de resposta do Web Service. Normalmente esta informação é útil somente para o propósito de depuração pois não é usada na prática pelo emitente;
  • &(sMsgResultado} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a mensagem literal do resultado da chamada do Web Service;
  • {sChaveNFe} é a chave de acesso da NF-e que será cancelada;
  • {sProtocoloAutNFe} é o número do protocolo de autorização da NF-e que será cancelada;
  • {sJustificativa} é a justificativa do cancelamento da NF-e e conforme descrito no manual de integração deve ter no mínimo 15 caracteres;
  • &{snProt} é uma variável do tipo String que  precisa ser passada por referência e que após a execução da função receberá o número do protocolo de cancelamento, caso o cancelamento seja autorizado;
  • &{sdhRecbto} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a data e hora do cancelamento, caso o cancelamento seja autorizado;
  • &{sMotivo} é uma variável do tipo String que  precisa ser passada por referência, porém uma string nula pode ser informada visto que este parâmetro é legado e não é mais usado. Ele era usado na versão 1.0, mas perdeu sua função e foi mantido apenas para evitar que os desenvolvedores tivessem que alterar a chamada da função ao migrar da versão 1.0 para a versão 2.0;
  • &{scStat} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o código cStat do Web Service. Consulte o manual de integração do contribuinte para obter a lista completa de códigos cStat que podem ser devolvidos pelo Web Service;
  • {sProxy} é usado para informar o endereço do servidor proxy, se necesário. Por exemplo ’http://proxyserver:port’. Verificar com o cliente qual é o endereço do servidor proxy e a porta https, pois a porta padrão do https é 443, e sendo assim teríamos algo como ’http://192.168.15.1:443’;
  • {sUsuario} é usado para informar o usuário para autenticação no proxy, se necessário;
  • {sSenha} é usado informar a senha de autenticação no proxy, se necessário;
  • {sLicencaNFeUtil} é usado para informar a chave da licença de uso ou registro quando a função é utilizada em ambiente de produção;
  • {bExibeErro} é usado para indicar se a função deve exibir ou não os erros que ocorrerem na execução;
  • {sDirNFeCancel} é o diretório onde será gerado o arquivo XML com os dados da autorização do cancelamento. Este arquivo deverá ser disponibilizado ao destinatário e ao transportador da NF-e, se houver;
  • &{sXMLRet} é uma variável do tipo String que precisa ser passada por referência. Este parâmetro é opcional e se for informado receberá o conteúdo do arquivo XML de cancelamento. É especialmente útil para empresas que desejam armazenar na base de dados os arquivos XML de solicitação de cancelamento da NF-e;
  • {sDiretorioPedido} é um parâmetro opcional e caso seja informado deve conter o diretório onde a função salvará o XML de pedido de cancelamento que enviado à SEFAZ. O XML de pedido de cancelamento não precisa ser armazenado e pode ser descartado se o pedido de cancelamento for bem sucedido. Em caso raros onde a comunicação entre a aplicação e a SEFAZ é perdida a aplicação pode não receber o XML de retorno com a autorização do cancelamento, e nesses casos é possível recuperar o XML com a autorização do cancelamento a partir do XML de pedido de cancelamento usando a função NFeCriaProcCancNFe. O arquivo de pedido que será salvo neste diretório terá o seguinte nome: {ChaveNFe}-ped-can.xml;
  • {bEvento} é um parâmetro opcional legado e não mais usado pela função a partir da versão 2018/01. A partir de 01/12/2012 o cancelamento sempre será feito por evento. O valor informado pelo desenvolvedor para este parâmetro será ignorado. O densevolvedor precisará informar um valor para este parâmetro, caso deseje informar um valor para qualquer parâmetro seguintea ele;
  • {sDtCancelamento} disponível a partir da liberação 2013/02, é uma variável do tipo String contendo a data e hora do cancelamento no formato "AAAA-MM-DD HH:MM:SS", sendo este parâmetro opcional. Internamente a data e hora informada será convertida para o formato do schema e complementada com o UTC. Para que isso funcione, a máquina precisa estar configurada para ajustar automaticamente a hora para o horário de versão. Se o desenvolvedor informar a data no formato "AAAA-MM-DDTHH:MM:SS-HH:MM", o valor informado será mantido e gerado no XML;
  • {dDataHoraAutorizacao} disponível a partir da liberação 2013/02, é um parâmetro opcional do tipo DateTime contendo a data e hora da autorização da NF-e para validar se o cancelamento pode ser feito dentro do limite de 24 hrs estipulado pelo governo. Se a sua UF permite um prazo maior ou menor para o cancelamento este parâmetro não deve ser usado;
  • {iRet} é o código do retorno da chamada da função. 0 (zero) indica que a NF-e foi cancelada e o arquivo XML cancelado foi gerado em {sDirNFeCancel}. Qualquer código diferente de 0 indica que houve algum problema na tentativa de cancelamento. Neste caso, será necessário analisar o código devolvido em {scStat} e a descrição devolvida em {sMsgResultado}.

Exemplo

Um exemplo de uso da função pode ser encontrado dentro da Workspace de Exemplo na função NFeCancelarNFExemplo no arquivo cNotaDataDictionary.dd. Abaixo a função citada e a chamada da função da Library na linha 75.

NFeCancelar

Observações

  • Esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro. Entre em contato para mais informações.
  • O cancelamento é possível apenas para notas já autorizadas junto à SEFAZ.
  • Uma nota rejeitada não pode ser cancelada, sendo que neste caso a NF-e deve ser enviada novamente após corrigido o problema que causou a rejeição.
  • O arquivo XML gerado com o protocolo de autorização da NF-e deverá ser disponibilizado ao destinatário e ao transportador da NF-e, se houver.
  • A partir de 01/12/2012 a SEFAZ o WS de cancelamento será desabilitado, sendo o cancelamento por evento obrigatório a partir desta data.

Não encontrou o que precisava, entre em contato conosco.