• Início
  • Cursos
  • Fontes de Aplicativos
  • Downloads
  • Contato
  • Sitemap
  • Sobre

Régys Borges da Silveira

  • Início
  • Cursos
  • Fontes de Aplicativos
  • Downloads
  • Contato
  • Sitemap
  • Sobre
Home  /  ACBr  /  Como enviar um evento de cancelamento utilizando o ACBrNFe
20 novembro 2012

Como enviar um evento de cancelamento utilizando o ACBrNFe

Escrito por Régys Borges da Silveira
20/11/2012 ACBr ACBr, Delphi, NF-e 66 comentários

Devido as alterações que entrarão em vigor em breve, estou postando aqui um trecho de código demostrando como cancelar uma nota utilizando o ACBrNFe e eventos, adicione a unit pcnConversao ao uses porque foram utilizados alguns conversores dessa unit.

    // numero do lote de envio (somente um exemplo, pode-se utilizar seu proprio controle)
    NumeroLote := StrToInt(FormatDateTime('yymmddhhmm', NOW));

    // carregar o xml da nota fiscal eletronica, pode ser omitido
    ACBrNFe.NotasFiscais.Clear;
    if not ACBrNFe.NotasFiscais.LoadFromString(XML) then
      raise Exception.Create('Não foi possível carregar o XML da Nota Fiscal Eletrônica correspondente!');

    // Criar o cancelamento
    ACBrNFe.EventoNFe.Evento.Clear;
    ACBrNFe.EventoNFe.idLote := NumeroLote;

    with ACBrNFe.EventoNFe.Evento.Add do
    begin
      infEvento.chNFe      := ChaveNFE;
      infEvento.CNPJ       := Cnpj;
      infEvento.dhEvento   := NOW;
      infEvento.tpEvento   := teCancelamento;
      infEvento.detEvento.nProt := Protocolo;
      infEvento.detEvento.xJust := <Justificativa para o cancelamento, minimo de 15 caracteres>;
    end;

	// Enviar o evento de cancelamento
    if ACBrNFe.EnviarEventoNFe(NumeroLote) then
    begin
      with ACBrNFe.WebServices.EnvEvento do
      begin
        if EventoRetorno.retEvento.Items[0].RetInfEvento.cStat <> 135 then
        begin
          raise Exception.CreateFmt(
            'Ocorreu o seguinte erro ao cancelar a nota fiscal eletrônica:'  + sLineBreak +
            'Código:%d' + sLineBreak +
            'Motivo: %s', [
              EventoRetorno.retEvento.Items[0].RetInfEvento.cStat,
              EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo
          ]);
        end;

		// retornos 
        DataHoraEvento  := EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
        NumeroProtocolo := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
        XMLCancelamento := EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
		CodigoStatus    := EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;
        MotivoStatus    := EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
      end;
    end
    else
    begin
      with ACBrNFe.WebServices.EnvEvento do
      begin
        raise Exception.Create(
          'Ocorreram erros ao tentar efetuar o cancelamento:' + sLineBreak +
          'Lote: '     + IntToStr(EventoRetorno.idLote) + sLineBreak +
          'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb) + sLineBreak +
          'Orgao: '    + IntToStr(EventoRetorno.cOrgao) + sLineBreak +
          sLineBreak +
          'Status: '   + IntToStr(EventoRetorno.cStat) + sLineBreak +
          'Motivo: '   + EventoRetorno.xMotivo
        );
      end;
    end;

Régys Borges da Silveira
Connect on Facebook Connect on Twitter Connect on Google+ Connect on Linkedin

Artigos relacionados

  • Webinar 30 anos de Delphi

    28/02/2025
  • Delphi: 30 Anos de Inovação e Produtividade

    14/02/2025
  • RAD Studio Live 2023

    21/02/2023

1 comentário

  1. CARLOS Responde a CARLOS para CARLOS" aria-label=" Responde a CARLOS para CARLOS"> Responde a CARLOS
    29/11/2016 at 13:34

    Sr.Regis:

    Qual seria o procedimento para obter a resposta Sefaz Deferindo ou Indeferindo um Lote de Pedido de Prorrogação de Suspensão do Icms ?

    Grato

    Carlos

    • Régys Borges da Silveira Responde a Régys para Régys Borges da Silveira" aria-label=" Responde a Régys para Régys Borges da Silveira"> Responde a Régys
      29/11/2016 at 18:50

      Desculpe mas não entendi a pergunta.

      • CARLOS Responde a CARLOS para CARLOS" aria-label=" Responde a CARLOS para CARLOS"> Responde a CARLOS
        30/11/2016 at 08:42

        Sr. Regys:

        A Nota Técnica 01_2015 criou a possibilidade de efetuar a prorrogação da Suspensão do Icms . Assim, o processo é : Envio do Evento e depois obter a resposta de Deferimento ou Indeferimento do Evento de Prorrogação.
        Assim, eu gostaria lhe questionar se o sr. já implementou este recurso da Pesquisa do Deferimento/Indeferimento.

        Grato

        Carlos
        Franca-Sp

        • Régys Borges da Silveira Responde a Régys para Régys Borges da Silveira" aria-label=" Responde a Régys para Régys Borges da Silveira"> Responde a Régys
          30/11/2016 at 14:54

          Agora entendi, estamos falando do evento, segue exemplo:

          ACBrNFe1.EventoNFe.Evento.Clear;
          with ACBrNFe1.EventoNFe.Evento.Add do
          begin
          infEvento.CNPJ := CNPJEmitente;
          infEvento.chNFe := ChaveNFe;
          infEvento.dhEvento := now;
          infEvento.tpEvento := tePedProrrog1; //< <---- mude conforme o prazo de prorrogação ou pedido de cancelamento infEvento.nSeqEvento := 1; infEvento.detEvento.nProt := NumeroProtocolo; with infEvento.detEvento.itemPedido.Add do begin numItem := NumeroItemNaNota; qtdeItem := QuantidadeItem; end; end; if ACBrNFe1.EnviarEvento(NumeroLote) then begin // retornos ACBrNFe1.WebServices.EnvEvento.EventoRetorno.TpAmb ACBrNFe1.WebServices.EnvEvento.EventoRetorno.verAplic ACBrNFe1.WebServices.EnvEvento.EventoRetorno.cStat ACBrNFe1.WebServices.EnvEvento.EventoRetorno.xMotivo ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.chNFe ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt end;

  2. Silva Responde a Silva para Silva" aria-label=" Responde a Silva para Silva"> Responde a Silva
    19/02/2016 at 16:35

    Olá Régys

    Estou com problema ao tentar imprimir a carta de correção.

    o procedimento que fiz foi o seguinte:

    ACBrNFe.EventoNFe.LerXMLFromString
    (cdsConsultaNotaFiscal.FieldByName(‘XML’).AsString);

    NotaFiscalDM.ACBrNFe.ImprimirEvento;

    Utilizo o fastReport4
    arquivo fr3 EVENTOS.fr3 o que vem do svn.

    Erro que exibe na hora de imprimir:

    Ocorreram os seguintes erros:
    primeiro:

    Classe não encontrada Datasets

    Classe não encontrada Variables

    Segundo:
    Memo1: Erro na expressão ‘Eventos.”DescricaoTipoEvento”‘: Identifier expected

    Variável ou campo desconhecido: Eventos.”TipoEvento”

    Variável ou campo desconhecido: Eventos.”xCondUso”

    • Régys Borges da Silveira Responde a Régys para Régys Borges da Silveira" aria-label=" Responde a Régys para Régys Borges da Silveira"> Responde a Régys
      22/02/2016 at 19:45

      Você deve estar utilizando a versão 4.x do FastReport, o ACBr utiliza a versão 5.x.
      Verifique também se seu repositório ACBr está atualizado e se está utilizando o arquivo .fr3 atualizado conforme o repositório.

  3. Vinícius Responde a Vinícius para Vinícius" aria-label=" Responde a Vinícius para Vinícius"> Responde a Vinícius
    12/05/2014 at 13:32

    Boa tarde, quando executo essa rotina aparece: ‘elemento chNFe nao esperado….esperado CNPJ, CPF’

    sabe o que pode ser?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      12/05/2014 at 13:35

      Seria melhor você perguntar no fórum do projeto ACBr, anexando o arquivo gerado, assim poderia ser feita uma análise do arquivo e entender o que está ocorrendo, também seria interessante postar sua rotina de envio de cancelamento para verificar como você está fazendo.

  4. gustavo rosa Responde a gustavo para gustavo rosa" aria-label=" Responde a gustavo para gustavo rosa"> Responde a gustavo
    10/07/2013 at 00:09

    Régys, fiz a mudança do cancelamento para o evento e esta tudo normal. Só estou com uma dúvida. Como faço para pegar o nome do xml do evento completo (diretorio+arquivo) após confirmação? É que gravo no banco de dados o caminho e não consegui encontrar. A função EventoRetorno.retEvento.Items[0].RetInfEvento.XML é o xml e não o caminho e nome do arquivo salvo.

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      10/07/2013 at 00:23

      Você pode carregar o valor dessa propriedade e gravar em disco ou usar o path do arquivo que é gerado na pasta configurada no componente ACBrNFe, veja a propriedade “Configuracoes.Arquivos.PathEvento”, os arquivos são gerados no path informado nela.

  5. gilsonlongo Responde a gilsonlongo para gilsonlongo" aria-label=" Responde a gilsonlongo para gilsonlongo"> Responde a gilsonlongo
    23/05/2013 at 20:45

    Oi Regys, muito bom o seu trabalho de esclarecimento, pois o cliente relatou que não está mais podendo cancelar NF-E…esta rotina mudou para evento de cancelamento? Estou no RS.

    Enviei msg no fórum ACBR .

    Grato, gilsonlongo

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      23/05/2013 at 23:30

      Obrigado, se você utiliza ACBr vai ser tranquilo então. 🙂

      • gilsonlongo Responde a gilsonlongo para gilsonlongo" aria-label=" Responde a gilsonlongo para gilsonlongo"> Responde a gilsonlongo
        03/06/2013 at 09:56

        Olá Regys,

        Estou atualizando a rotina de “cancelamento nfe – Como enviar um evento de cancelamento utilizando o ACBrNFe”, conforme trecho de code sugerido, mas dá erro logo que entra na rotina…

        …

        if not ACBrNFe1.NotasFiscais.LoadFromString(XML) then

        raise Exception.Create(‘Não foi possível carregar o XML da Nota Fiscal Eletrônica correspondente!’);

        dá erro

        unit pcnNFeR;

        raise Exception.Create(‘Não encontrei inicio do URI: Id=’);

        Tentei usar o método open para pegar o arquivo xml já gerado pelo sistema, mas não deu certo.

        … ACBrNFe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);

        Se puder dar uma olhada, lhe agradeço.

        Obrigado,

        gilsonlongo
        Passo Fundo RS

        • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
          03/06/2013 at 10:03

          O método ACBrNFe1.NotasFiscais.LoadFromString deve ser usado quando você tem o conteúdo do XML, provavelmente você está passando o caminho do XML, se quiser passar o caminho do XML então utilize LoadFromFile.

  6. Marcos Rodrigues Responde a Marcos para Marcos Rodrigues" aria-label=" Responde a Marcos para Marcos Rodrigues"> Responde a Marcos
    10/05/2013 at 12:55

    Desculpa amigo, mas qual seria o camando para salvar o XML?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      10/05/2013 at 13:22

      Após fazer o processo de carga e checagem da situação, bastaria salvar normalmente como um XML normal da NF-e: ACBrNFe.NotasFiscais.Items[X].XML, lembrando que precisa seguir o que falei anteriormente antes.

      • Marcos Rodrigues Responde a Marcos para Marcos Rodrigues" aria-label=" Responde a Marcos para Marcos Rodrigues"> Responde a Marcos
        10/05/2013 at 13:40

        No caso o comando de salvar o XML seria o comando ACBrNFe.Configuracoes.Geral.Save(Diretorio de destino + nome do XML, XML)

        • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
          10/05/2013 at 14:14

          Utilize: ACBrNFe.NotasFiscais.Items[X].SaveToFile(‘‘)

          • Marcos Rodrigues
            10/05/2013 at 16:06

            Amigo, muito obrigado agora entendi!!!

  7. Marcos Rodrigues Responde a Marcos para Marcos Rodrigues" aria-label=" Responde a Marcos para Marcos Rodrigues"> Responde a Marcos
    10/05/2013 at 11:55

    Amigo, estou lendo todas as respostas e consigo efetuar o cancelamento e carregar o XML, mas não estou entendendo a forma de gerar o arquivo XML do cancelamento para armazenar na pasta CAN, uma vez que utilizo comando LoadXML(), tem algum comando direto que consigo salvar o XML do cancelado?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      10/05/2013 at 12:54

      Para ter um XML de NF-e com cancelamento precisa fazer o seguinte, primeiro colocar true na propriedade AtualizaXMLCancelamento do componente ACBrNFe, depois carregar o XML da NF-e, enviar o cancelamento, executar a rotina de verificação da situação da NF-e e ai sim, salvar o XML depois de retornado o status, mas lembre, guarde sempre o XML original porque esse é que é válido.

  8. Davi Responde a Davi para Davi" aria-label=" Responde a Davi para Davi"> Responde a Davi
    09/05/2013 at 17:11

    Para o pessoal de SP, adicionar os código abaixo para o cancelamento por evento.

    Como na NT2012.003 achei que estava confuso o entendimento sobre 101 e 151, direcionei email para Sefaz de SP e obtive o seguinte retorno:
    No caso do cancelamento como evento, o retorno poderá ser:
    “135-Evento registrado e vinculado a NF-e” correspondente a “101” (cancelamento homologado) ou
    “155-Evento registrado fora do prazo e vinculado a NF-e” correspondente a “151” (cancelamento homologado fora de prazo)

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      10/05/2013 at 13:15

      Quando você faz “if ACBrNFe.EnviarEventoNFe(NumeroLote) then” o componente já checa os códigos de retorno necessários, não precisa analisar o retorno, ele se encarrega de checar e retornar sempre verdadeiro ou falso.

  9. ubaldo Responde a ubaldo para ubaldo" aria-label=" Responde a ubaldo para ubaldo"> Responde a ubaldo
    06/05/2013 at 16:42

    ola estou com um problema para gerar uma NFe com o seguinte codigo:

    CST := cst00;
    ICMS.modBC := dbiValorOperacao;
    ICMS.orig := oeNacional;
    ICMS.pICMS := 17.00;
    ICMS.vICMS := (CDSItemMovNota.FieldByName(‘SubTotal’).AsCurrency * 17.00) / 100;
    ICMS.vBC := CDSItemMovNota.FieldByName(‘SubTotal’).AsCurrency;

    esta dando o erro:

    Total da BC ICMS difere do somatorio dos itens.

    alguem pode me ajudar?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      07/05/2013 at 07:23

      Por favor utilize o fórum do projeto ACBr (http://www.projetoacbr.com.br/) para sanar dúvidas, essa dúvida já foi discutida no fórum. Adiantando, você informou um valor diferente para o somatório das bases de icms do que foi calculado.

      • Andersson Responde a Andersson para Andersson" aria-label=" Responde a Andersson para Andersson"> Responde a Andersson
        05/07/2013 at 18:04

        Poderia me ajudar e me dizer se este arquivo está correto os parâmetros amigo?

        • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
          06/07/2013 at 19:08

          Qual arquivo?

    • warley Responde a warley para warley" aria-label=" Responde a warley para warley"> Responde a warley
      09/09/2016 at 09:45

      UBALDO , provavelmente voce está informando base de calculo e icms para uma empresa do simples nacional (crt=1) . verifique !

  10. amconect Responde a amconect para amconect" aria-label=" Responde a amconect para amconect"> Responde a amconect
    30/04/2013 at 11:07

    Existe uma Forma de Cancelar sem ter que carregar o XML, já que tenho CHAVE E NUMERO DO PROTOCOLO ?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      05/05/2013 at 13:34

      Para o cancelamento não é obrigatório carregar o XML, isso é feito para que atualize o XML e coisas do tipo.

  11. Rodrigo Bernal Responde a Rodrigo para Rodrigo Bernal" aria-label=" Responde a Rodrigo para Rodrigo Bernal"> Responde a Rodrigo
    26/04/2013 at 09:19

    Regys.. bom dia fiz a atualização do componente acbr mais quando vo no
    ACBrNFe.EventoNFe meu componente não acho esta propriedade
    tem alguma coisa a setar? me ajudem.. preciso resolver isso..

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      26/04/2013 at 10:40

      Sempre que atualizar recompile todos os pacotes utilizados para que o Delphi atualize as propriedades.

      • Rodrigo Bernal Responde a Rodrigo para Rodrigo Bernal" aria-label=" Responde a Rodrigo para Rodrigo Bernal"> Responde a Rodrigo
        26/04/2013 at 11:42

        BLZ CONSEGUI ATUALIZAR… AGORA TA PEGANDO QUE NÃO TA ENCONTRANDO O CAMINHO DO XML.. TEM ALGUMA OPÇÃO QUE POSSO FAZER.. QUAL O CAMINHO QUE O ACBR VAI BUSCAR ESTE XML..? AGUARDO ABRAÇO

        • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
          26/04/2013 at 13:31

          EventoRetorno.retEvento.Items[0].RetInfEvento.XML;

          Utilize essa propriedade para ler o XML de retorno e gravar no seu Banco de Dados, mas os arquivos são sempre salvos a não ser que você não tenha marcado para salvar (ACBrNFe.Arquivos.Salvar)
          O XML da CCe é gravado no diretório configurado na propriedade PathCCE

          • Rodrigo Bernal
            26/04/2013 at 16:00

            EU TO FAZENDO O CANCELAMENTO DA NFE NÃO CCE.. É A MESMA COISA..

          • Régys
            29/04/2013 at 08:40

            Cancelamento é uma coisa CC-e(Carta de Correção Eletrônica) é outra, cancelamento cancela a nota, a carta de correção corrige a nota.

  12. Eduardo K Responde a Eduardo para Eduardo K" aria-label=" Responde a Eduardo para Eduardo K"> Responde a Eduardo
    17/04/2013 at 09:09

    Li noutro artigo que os campos infEvento.chNFe, infEvento.CNPJ e infEvento.detEvento.nProt não são necessários se o XML for carregado anteriormente.
    Isto é verdade?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      17/04/2013 at 09:23

      Sim, é verdade, se ler o XML ele vai carregar automaticamente.

  13. Gustavo Santos Costa Responde a Gustavo para Gustavo Santos Costa" aria-label=" Responde a Gustavo para Gustavo Santos Costa"> Responde a Gustavo
    15/04/2013 at 22:16

    Entendi..

    eu tinha desabilitado a opção de imprimir o DANFE com mensagem de cancelamento, assim como a atualização do XML na minha aplicação…

    Mas usuário, sabe como é né… quer porque quer que fique da forma antiga.

    Muito obrigado, mais uma vez.

  14. Gustavo Santos Costa Responde a Gustavo para Gustavo Santos Costa" aria-label=" Responde a Gustavo para Gustavo Santos Costa"> Responde a Gustavo
    15/04/2013 at 17:07

    Muito obrigado pelas ajudas que tem nos dado no blog!
    Conteúdo objetivo e muito útil! Parabéns!

    Uma pergunta:
    Com o modo antigo de cancelamento o ACBr permitia imprimir um DANFE com os dizeres “Nota Cancelada” em vermelho, e enviava junto ao XML por email ao cliente.

    Com o cancelamento por evento, a impressão de DANFE Cancelado, e envio de XML de cancelamento não são mais possíveis?

    Mais uma vez,
    Muito Obrigado.

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      15/04/2013 at 19:04

      Com os eventos não existe mais DANFE cancelado, existe sim o evento de cancelamento, você deve enviar o XML da NF-e e também o XML do evento de cancelamento para o destinatário.

      No ACBr se você marcar a propriedade AtualizaXMLCancelamento para True, carregar o XML da NF-e e fazer a consulta ele vai atualizar e ficar da forma antiga.

      Mas lembre de guardar o XML original da NF-e porque o XML válido é ele.

      • Vinicius Responde a Vinicius para Vinicius" aria-label=" Responde a Vinicius para Vinicius"> Responde a Vinicius
        16/04/2013 at 07:41

        eu fiz em homologação e deu certo o cancelamento, mas não gerou XML nenhum, ficou apenas o XML anterior, o que falta fazer para gera-lo?

        • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
          17/04/2013 at 09:24

          Você precisa ler o retorno do evento, como é mostrado no exemplo.

  15. Ubaldo Responde a Ubaldo para Ubaldo" aria-label=" Responde a Ubaldo para Ubaldo"> Responde a Ubaldo
    15/04/2013 at 12:18

    Eu não gravo o numero de protocolo no Banco de Dados, como posso recuperá-lo para passar como parâmetro no código? Obg!

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      15/04/2013 at 12:39

      Você pode lê-lo do XML da nota fiscal.

  16. Ubaldo Responde a Ubaldo para Ubaldo" aria-label=" Responde a Ubaldo para Ubaldo"> Responde a Ubaldo
    15/04/2013 at 11:32

    Caro Regys, esse cnpj é do emissor ou do cliente da nota?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      15/04/2013 at 12:10

      Do emissor.

  17. Ricardo Responde a Ricardo para Ricardo" aria-label=" Responde a Ricardo para Ricardo"> Responde a Ricardo
    14/04/2013 at 20:35

    Boa Noite Regys.

    Cancelei a nf-e por evento igual você fez no exemplo, mas eu consulto a nfe no sefaz e a mesma não consta o protocolo de cancelamento. Sabe dizer o que estou fazendo de errado ?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      15/04/2013 at 12:12

      Você verificou se o evento de cancelamento foi registrado, não existe mais protocolo de cancelamento e sim o evento de cancelamento, todos os eventos são listados no site de consulta da NF-e.

      • Ricardo Responde a Ricardo para Ricardo" aria-label=" Responde a Ricardo para Ricardo"> Responde a Ricardo
        15/04/2013 at 12:17

        Regys.
        O Evento foi registro o Acbr não retornou nenhum erro, antes a gente consultava o cancelamento no site do sefaz. Agora onde eu vejo esse evento cancelado na nf-e ?

        Att.

        • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
          15/04/2013 at 12:40

          Como eu disse anteriormente, a consulta continua igual, o que muda é que agora ao invés de um protocolo de cancelamento você tem o evento de cancelamento, todos os eventos são listados juntamente com os dados da nota durante a consulta.

          • Samuel M. Basso
            31/05/2013 at 10:18

            Estranho que para mim ocorre mesma coisa. E é muito estranho. Eu envio o evento de cancelamento e faço a consulta e me retorna que está autorizado o uso, não está cancelando. E detalhe só está ocorrendo com um único cliente. Eu pegando a base de dados dele e aqui na empresa eu cancelo funciona porém lá interno não faz o cancelamento. Porem consulta, envio, essas coisas tudo funciona normalmente.

          • Régys
            31/05/2013 at 10:30

            Pode ser algum no webservice dele, você deve estar testando em ambiente de homologação, já seu cliente funciona em ambiente de produção, teria que ver melhor o cstat que retorna para seu cliente.

  18. Vinicius Responde a Vinicius para Vinicius" aria-label=" Responde a Vinicius para Vinicius"> Responde a Vinicius
    13/04/2013 at 12:40

    Regys, o que seria esse protocolo?

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      14/04/2013 at 11:09

      Número do protocolo de autorização da Nota Fiscal Eletrônica que você está tentando cancelar.

      • Vinícius Responde a Vinícius para Vinícius" aria-label=" Responde a Vinícius para Vinícius"> Responde a Vinícius
        12/05/2014 at 14:51

        Já vi o erro aqui, obrigado, mas tenho uma duvida, quando eu faço um cancelamento eu tenho que criar algum xml? se sim, é um xml diferendo do padrão de envio?

        Mais uma coisa, essa nota cancelada eu enho que anotar algo no xml dela?

        Grato.

        • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
          12/05/2014 at 15:54

          As regras da nota eletrônica valem também para o cancelamento, você deve enviar para o destinatário e também para a transportadora se houver.
          A anotação que existe no cancelamento é somente o motivo do cancelamento.

  19. Claydeney Responde a Claydeney para Claydeney" aria-label=" Responde a Claydeney para Claydeney"> Responde a Claydeney
    12/04/2013 at 15:20

    Foi de muita ajuda! mas régys, como eu faco pra atualizar meu xml original? mudei aquela propriedade ACBrNFe1.Configuracoes.Geral.AtualizarXMLCancelado para True mas nao mudou :~ ainda permanece ao imprimir Autorizada. Se puder me ajudar..

    • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
      12/04/2013 at 15:52

      Deixe marcado normal como está, e após o cancelamento faça uma consulta da situação da nota, lembrando que o XML precisa estar carregado no componente.

      • Claydeney Responde a Claydeney para Claydeney" aria-label=" Responde a Claydeney para Claydeney"> Responde a Claydeney
        15/04/2013 at 10:47

        entendeu! no caso, depois de cancelar carrego o xml no componente e executo o comando: ACBrNFe1.Consultar;
        seria boa se o componente ja fizesse isso, uma vez que digo pra ele atualizar apos o cancelamento 😉 vlw parceiro deu certinho aqui.

        • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
          15/04/2013 at 12:11

          Veja que atualizar o XML da nota é errado, porque com os eventos, cada coisa passa a ter seu próprio XML, diferente do que era antigamente. O correto seria deixar o XML da nota quieto, sem alterar, e gravar o XML do evento também, eu particularmente gravo tudo, XML da Nota, esse depois de autorizados não mecho mais, XML de cancelamento, também não mecho, e todos os XMLs de eventos.

          • Claydeney
            15/04/2013 at 12:33

            hum.. certo! entao vou apenas setar o danfe pra cancelado na hora da impressao e enviar o xml autorizado junto com o cancelado 😉

  20. MARCOS CARVALHO Responde a MARCOS para MARCOS CARVALHO" aria-label=" Responde a MARCOS para MARCOS CARVALHO"> Responde a MARCOS
    11/04/2013 at 18:25

    Obrigado régys, alterei o meu projeto como voce orientou e deu certo o cancelamento.

  21. Sidnei Responde a Sidnei para Sidnei" aria-label=" Responde a Sidnei para Sidnei"> Responde a Sidnei
    09/04/2013 at 16:28

    Otimo topico de Ajuda…
    Muito bom msm… Nota 10

    • Davi Responde a Davi para Davi" aria-label=" Responde a Davi para Davi"> Responde a Davi
      08/05/2013 at 13:12

      A rotina tem que ser implementada pois quando cancela uma nota fora do prazo retorna o código 155, e a rotina só trata como o código 135.
      Pois também cometi este erro no sistema, o cliente cancelou a nota e o sistema deu o erro e não atualizou, pois saiu com a nota e foi multado por andar com uma nota cancelada.

      RetInfEvento.cStat 135

      • Régys Responde a Régys para Régys" aria-label=" Responde a Régys para Régys"> Responde a Régys
        10/05/2013 at 13:17

        O componente checa ambos os códigos, isso aconteceu porque você está checando a mão e você se esqueceu de checar, ao invés de fazer a checagem a mão, teste o retorno do método “EnviarEventoNFe” ele vai ser verdadeiro ou falso, falso sempre que não conseguir enviar ou o status retornado não for o esperado como aceito, ai sim, você checa o status para saber o que porque não aceitou.

Deixe uma resposta para ClaydeneyCancelar resposta

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Inscreva-se nas nossas redes sociais

  • Connect on Facebook
  • Connect on Twitter
  • Connect on LinkedIn
  • Connect on Instagram
  • Connect on RSS
  • Connect on YouTube
  • Connect on Github

Sites parceiros

  • Carlos H. Cantu
  • Delphi Basics
  • Delphi Feeds
  • Isaque Pinheiro
  • Object Pascal OOP

Social Media

  • Connect on Facebook
  • Connect on Twitter
  • Connect on LinkedIn
  • Connect on RSS
  • Connect on YouTube
  • Connect on Github
© Copyright 2014. Todos os direitos reservados.
Vá para versão mobile