Ir para conteúdo
  • Cadastre-se

dev botao

Erro Cancelamento Nfs-E Curitiba-Pr


Ver Solução Respondido por Rodrigo Crovador,
  • Este tópico foi criado há 3874 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia!

 

Ao tentar cancelar uma NFS-e é gerado o seguinte erro:

 

Erro: Não foi possível carregar o arquivo: <CancelarNfseEnvio><IdentificacaoNfse><Numero>13235</Numero><Cnpj>03145706000130</Cnpj><InscricaoMunicipal>14010441833</InscricaoMunicipal><CodigoMunicipio>4106902</CodigoMunicipio></IdentificacaoNfse><CodigoCancelamento>2</CodigoCancelamento></InfPedidoCancelamento><Signature xmlns= http://www.w3.org/2000/09/xmldsig# ><SignedInfo><CanonicalizationMethod Algorithm= http://www.w3.org/TR/2001/REC-xml-c14n-20010315  /><SignatureMethod Algorithm= http://www.w3.org/2000/09/xmldsig#rsa-sha1  /><Reference URI=  ><Transforms><Transform Algorithm= http://www.w3.org/2000/09/xmldsig#enveloped-signature  /><Transform Algorithm= http://www.w3.org/TR/2001/REC-xml-c14n-20010315  /></Transforms><DigestMethod Algorithm= http://www.w3.org/2000/09/xmldsig#sha1  /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo><X509Data><X509Certificate></X509Certificate></X509Data></KeyInfo></Signature></CancelarNfseEnvio>

 

O código utilizado para o cancelamento é o seguinte:

ACBrNFSe.NotasFiscais.Clear;

with ACBrNFSe.NotasFiscais.Add do
begin
  NFSe.Numero := lvNotasCanc.Items[vintConte].SubItems[0];
  NFSe.IdentificacaoRps.Numero := lvNotasCanc.Items[vintConte].SubItems[3];
  NFSe.IdentificacaoRps.Serie  := lvNotasCanc.Items[vintConte].SubItems[0];
  NFSe.IdentificacaoRps.Tipo   := trRPS;
  NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj              := '03145706000130';
  NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal:= '14010441833';
  NFSe.PrestadorServico.Endereco.CodigoMunicipio                 := '4106902';
  NFSe.MotivoCancelamento                                        := 'TESTE DE CANCELAMENTO';
end;

ACBrNFSe.CancelarNFSe('2'); 

Alguém teria alguma dica acerca do problema?

 
Grato,
 
Andreas
Postado

Andreas, por acaso você tem os arquivos -nfse.xml das notaas a serem canceladas?

 

Caso positivo, utilize:

ACBrNFSe.NotasFiscais.LoadFromFile(Arquivo);
ACBrNFSe.NotasFiscais.Items[0].NFSe.MotivoCancelamento := 'MOTIVO';
ACBrNFSe.CancelarNFSe('1');

Utilizo em Curitiba e funciona Ok.

Postado

Boa tarde Tiago!

 

Já havia tentado da forma como você demonstrou mas foi gerado o mesmo erro.

 

Seria melhor no meu caso que fosse feito sem o XML pois o mesmo não fica armazenado no cliente é gerado apenas para o envio do lote das NFS-e.

 

Obrigado.

Postado

 

Bom dia!

 

Ao tentar cancelar uma NFS-e é gerado o seguinte erro:

 

Erro: Não foi possível carregar o arquivo: <CancelarNfseEnvio><IdentificacaoNfse><Numero>13235</Numero><Cnpj>03145706000130</Cnpj><InscricaoMunicipal>14010441833</InscricaoMunicipal><CodigoMunicipio>4106902</CodigoMunicipio></IdentificacaoNfse><CodigoCancelamento>2</CodigoCancelamento></InfPedidoCancelamento><Signature xmlns= http://www.w3.org/2000/09/xmldsig# ><SignedInfo><CanonicalizationMethod Algorithm= http://www.w3.org/TR/2001/REC-xml-c14n-20010315  /><SignatureMethod Algorithm= http://www.w3.org/2000/09/xmldsig#rsa-sha1  /><Reference URI=  ><Transforms><Transform Algorithm= http://www.w3.org/2000/09/xmldsig#enveloped-signature  /><Transform Algorithm= http://www.w3.org/TR/2001/REC-xml-c14n-20010315  /></Transforms><DigestMethod Algorithm= http://www.w3.org/2000/09/xmldsig#sha1  /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo><X509Data><X509Certificate></X509Certificate></X509Data></KeyInfo></Signature></CancelarNfseEnvio>

 

O código utilizado para o cancelamento é o seguinte:

ACBrNFSe.NotasFiscais.Clear;

with ACBrNFSe.NotasFiscais.Add do
begin
  NFSe.Numero := lvNotasCanc.Items[vintConte].SubItems[0];
  NFSe.IdentificacaoRps.Numero := lvNotasCanc.Items[vintConte].SubItems[3];
  NFSe.IdentificacaoRps.Serie  := lvNotasCanc.Items[vintConte].SubItems[0];
  NFSe.IdentificacaoRps.Tipo   := trRPS;
  NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj              := '03145706000130';
  NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal:= '14010441833';
  NFSe.PrestadorServico.Endereco.CodigoMunicipio                 := '4106902';
  NFSe.MotivoCancelamento                                        := 'TESTE DE CANCELAMENTO';
end;

ACBrNFSe.CancelarNFSe('2'); 

Alguém teria alguma dica acerca do problema?

 
Grato,
 
Andreas

 

Andreas, boa tarde. Verifique o XML. Senti a falta da abertura da TAG </InfPedidoCancelamento>. 

Rodrigo de Souza Crovador

Analista / Desenvolvedor Delphi
contato: [email protected]

São José do Rio Preto - SP

Postado

Boa tarde Rodrigo!

 

A geração das tabelas não seria  por conta to ACBr? Ou devo manipular o XML de envio do Cancelamento da NFS-e? Se devo manipula-lo, onde e como fazê-lo?

 

Desculpe as perguntas em demasia, é que sou estou iniciando nos componente ACBr e não possuo profundo conhecimento de seu funcionamento ou de suas funcionalidades.

 

Grato,

 

Andreas.

Postado

Andreas, parece que o ambiente de homologação de curitiba está meio instável pois agora está me retornando erro ao enviar e cancelar a nfs-e.

 

A estrutura do XML está certo a princípio pois gerei um com o código que lhe passei e o que você está usando e ambos estão sendo gerados iguais.

Postado

Tiago, o servidor piloto de Curitiba (homologação) tem problemas realmente e eu já havia sido avisado disso pelo suporte deles, mas o problema que estou tendo ocorre antes de enviar a solicitação de cancelamento ou após enviar a solicitação de cancelamento e receber um retorno equivocado por parte do servidor de homologação?

 

Grato,

 

Andreas

Postado (editado)

Boa tarde Rodrigo!

 

A geração das tabelas não seria  por conta to ACBr? Ou devo manipular o XML de envio do Cancelamento da NFS-e? Se devo manipula-lo, onde e como fazê-lo?

 

Desculpe as perguntas em demasia, é que sou estou iniciando nos componente ACBr e não possuo profundo conhecimento de seu funcionamento ou de suas funcionalidades.

 

Grato,

 

Andreas.

 

Sim, o componente gera todo o XML sem necessidade de manipula-lo, mas o que acho estranho e que o exemplo que postou está sem o fechamento da TAG que citei. Veja se no XML que está gerando para enviar ao cancelamento tem a abertura e fechamento da TAG </InfPedidoCancelamento>. Pode ser que ao copiar aqui no forum tenha ficado para tras :)

 

Se realmente não tiver esta tag, verifique no arquivo pnfsNFSeG.pas tem o seguinte trecho na linha 430:

 

  proIssCuritiba: DadosMsg := '<InfPedidoCancelamento>' +
                               '<IdentificacaoNfse>' +
                                '<Cnpj>' + Cnpj + '</Cnpj>' +
                                '<InscricaoMunicipal>' + IM + '</InscricaoMunicipal>' +
                                '<Numero>' + NumeroNFse + '</Numero>' +
                               '</IdentificacaoNfse>' +
                              '</InfPedidoCancelamento>';
 

 

 

Tiago, o servidor piloto de Curitiba (homologação) tem problemas realmente e eu já havia sido avisado disso pelo suporte deles, mas o problema que estou tendo ocorre antes de enviar a solicitação de cancelamento ou após enviar a solicitação de cancelamento e receber um retorno equivocado por parte do servidor de homologação?

 

Grato,

 

Andreas

Pela mensagem de erro acredito que está ocorrendo antes de enviar, uma vez que não consegue sequer carregar o XML, mas é difícil dizer, teria de debugar o componente.

 

Editado por Rodrigo Crovador

Rodrigo de Souza Crovador

Analista / Desenvolvedor Delphi
contato: [email protected]

São José do Rio Preto - SP

Postado

Andreas, até pensei que não tinha alterado o meu código quando falei que funcionou, mas fiz novamente aqui agora e novamente cancelou a nota e não gerou nenhum erro!

 

O que me chamou a atenção foi que os campos <SignedInfo></SignedInfo> estão praticamente vazios no código que postou! Está informando o certificado válido para o estado do Paraná?

Postado

Bom dia Rodrigo!

 

O fonte pnfsNFSeG.pas esta de acordo com o que você postou e o problema é realmente este, o erro ocorre quando se tenta carregar o texto com o código XML dentro de um componente TXMLDocument.

 

----

 

Bom dia Tiago!

 

Realmente o XML gerado não possui informações de assinatura, estou informando um certificado especifico que é gerado apenas para o servidor piloto de Curitiba conforme instruções do suporte.

 

 

Grato,

 

Andreas

Postado

Fiz a depuração do código e o erro ocorre especificamente na linha 1130 do fonte ACBrNFSeUtil.pas conforme código abaixo:

 if (not xmldoc.loadXML(AXML) )
  then raise Exception.Create('Não foi possível carregar o arquivo: '+AXML);

Postado

 

Fiz a depuração do código e o erro ocorre especificamente na linha 1130 do fonte ACBrNFSeUtil.pas conforme código abaixo:

 if (not xmldoc.loadXML(AXML) )
  then raise Exception.Create('Não foi possível carregar o arquivo: '+AXML);

 

 Poste o conteúdo da variável AXML.

Rodrigo de Souza Crovador

Analista / Desenvolvedor Delphi
contato: [email protected]

São José do Rio Preto - SP

Postado

Rodrigo, o conteúdo da variável AXML é:

 

'<CancelarNfseEnvio><IdentificacaoNfse><Numero>13235</Numero><Cnpj>03145706000130</Cnpj><InscricaoMunicipal>14010441833</InscricaoMunicipal><CodigoMunicipio>4106902</CodigoMunicipio></IdentificacaoNfse><CodigoCancelamento>2</CodigoCancelamento></InfPedidoCancelamento><Signature xmlns= http://www.w3.org/2000/09/xmldsig# ><SignedInfo><CanonicalizationMethod Algorithm= http://www.w3.org/TR...l-c14n-20010315  /><SignatureMethod Algorithm= http://www.w3.org/20...mldsig#rsa-sha1  /><Reference URI=  ><Transforms><Transform Algorithm= http://www.w3.org/20...loped-signature  /><Transform Algorithm= http://www.w3.org/TR...l-c14n-20010315  /></Transforms><DigestMethod Algorithm= http://www.w3.org/2000/09/xmldsig#sha1  /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo><X509Data><X509Certificate></X509Certificate></X509Data></KeyInfo></Signature></CancelarNfseEnvio>'

 

Grato!

Postado

Rodrigo, o conteúdo da variável AXML é:

 

'<CancelarNfseEnvio><IdentificacaoNfse><Numero>13235</Numero><Cnpj>03145706000130</Cnpj><InscricaoMunicipal>14010441833</InscricaoMunicipal><CodigoMunicipio>4106902</CodigoMunicipio></IdentificacaoNfse><CodigoCancelamento>2</CodigoCancelamento></InfPedidoCancelamento><Signature xmlns= http://www.w3.org/2000/09/xmldsig# ><SignedInfo><CanonicalizationMethod Algorithm= http://www.w3.org/TR...l-c14n-20010315  /><SignatureMethod Algorithm= http://www.w3.org/20...mldsig#rsa-sha1  /><Reference URI=  ><Transforms><Transform Algorithm= http://www.w3.org/20...loped-signature  /><Transform Algorithm= http://www.w3.org/TR...l-c14n-20010315  /></Transforms><DigestMethod Algorithm= http://www.w3.org/2000/09/xmldsig#sha1  /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo><X509Data><X509Certificate></X509Certificate></X509Data></KeyInfo></Signature></CancelarNfseEnvio>'

 

Grato!

 

Andreas, você terá que depurar a formação do conteúdo da variável AXML. Faço todo o retrocesso até o momento que ela é iniciada e deste ponto acompanhe até o ponto em que ocorre o erro. Em algum momento o texto está perdendo a abertura da TAG <InfPedidoCancelamento>, gerando assim o xml incorreto e impossível de ser carregado. Veja passo a passo do processo de envio a fim de identificar o ponto onde ocorre o problema. 

Abaixo seu XML de forma que consiga visualizar melhor o motivo do erro:

 

<CancelarNfseEnvio>
    -- Neste ponto deveria ter a tag de abertura <InfPedidoCancelamento>
    <IdentificacaoNfse>
      <Numero>13235</Numero>
      <Cnpj>03145706000130</Cnpj>
      <InscricaoMunicipal>14010441833</InscricaoMunicipal>
      <CodigoMunicipio>4106902</CodigoMunicipio>
    </IdentificacaoNfse>
    <CodigoCancelamento>2</CodigoCancelamento> 
  </InfPedidoCancelamento>
  <Signature xmlns= http://www.w3.org/2000/09/xmldsig# >
    <SignedInfo>
      <CanonicalizationMethod Algorithm= http://www.w3.org/TR...l-c14n-20010315  />
      <SignatureMethod Algorithm= http://www.w3.org/20...mldsig#rsa-sha1  />
      <Reference URI=  >
        <Transforms>
          <Transform Algorithm= http://www.w3.org/20...loped-signature  />
          <Transform Algorithm= http://www.w3.org/TR...l-c14n-20010315  />
        </Transforms>
        <DigestMethod Algorithm= http://www.w3.org/2000/09/xmldsig#sha1  />
        <DigestValue></DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue></SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509Certificate></X509Certificate>
      </X509Data>
    </KeyInfo>
  </Signature>
</CancelarNfseEnvio>

 

Rodrigo de Souza Crovador

Analista / Desenvolvedor Delphi
contato: [email protected]

São José do Rio Preto - SP

Postado

Boa tarde Rodrigo!

 

Depurando o código detectei necessidade de alteração no fonte pnfsNFSeG.pas linha 336 conforme segue abaixo:

 else DadosMsg := '<InfPedidoCancelamento>' + // A ABERTURA DA TAG FOI INCLUÍDA
                   '<' + Prefixo4 + 'IdentificacaoNfse>' +
                    '<' + Prefixo4 + 'Numero>' +
                      NumeroNFse +
                    '</' + Prefixo4 + 'Numero>' +

                    // alterado por joel takei 05/07/2013
                   DFeUtil.SeSenao(AProvedor in [pro4R, proISSe, proFiorilli],

                    '<' + Prefixo4 + 'CpfCnpj>' +
                     '<' + Prefixo4 + 'Cnpj>' +
                      Cnpj +
                     '</' + Prefixo4 + 'Cnpj>' +
                    '</' + Prefixo4 + 'CpfCnpj>',

                    '<' + Prefixo4 + 'Cnpj>' +
                      Cnpj +
                    '</' + Prefixo4 + 'Cnpj>') +

                    '<' + Prefixo4 + 'InscricaoMunicipal>' +
                      IM +
                    '</' + Prefixo4 + 'InscricaoMunicipal>' +
                    '<' + Prefixo4 + 'CodigoMunicipio>' +
                      CodMunicipio +
                    '</' + Prefixo4 + 'CodigoMunicipio>' +
                   '</' + Prefixo4 + 'IdentificacaoNfse>' +
                   '<' + Prefixo4 + 'CodigoCancelamento>' +

                     // Codigo de Cancelamento
                     // 1 - Erro de emissão
                     // 2 - Serviço não concluido
                     // 3 - RPS Cancelado na Emissão

                     CodCancelamento +

                   '</' + Prefixo4 + 'CodigoCancelamento>' +
                  '</' + Prefixo4 + 'InfPedidoCancelamento>';

Após incluir a abertura da Tag o erro de carregamento do XML no ponto anterior não ocorreu mais, porém o evento não esta funcionando, ou seja, mesmo enviando corretamente a nota continua em aberto no servidor Piloto além de gerar erro ao tentar executar o evento consulta da NFSe (ConsNfseRps).

Postado (editado)

Boa tarde Rodrigo!

 

Depurando o código.......

 

 

 

Andreas, boa tarde. Em qual revisão está seu fonte? Se o provedor que você está atendendo é de Curitiba, o processamento não deveria acessar estar parte e sim este trecho:

 

proIssCuritiba: DadosMsg := '<InfPedidoCancelamento>' +
                               '<IdentificacaoNfse>' +
                                '<Cnpj>' + Cnpj + '</Cnpj>' +
                                '<InscricaoMunicipal>' + IM + '</InscricaoMunicipal>' +
                                '<Numero>' + NumeroNFse + '</Numero>' +
                               '</IdentificacaoNfse>' +
                              '</InfPedidoCancelamento>';
Editado por Juliomar Marchetti

Rodrigo de Souza Crovador

Analista / Desenvolvedor Delphi
contato: [email protected]

São José do Rio Preto - SP

  • Este tópico foi criado há 3874 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.