Ir para conteúdo
  • Cadastre-se

dev botao

Cancelar Nfse Sem O Xml Original.


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

Recommended Posts

Olá Pessoal. 

 

Estou com uma situação um tanto fora do normal. Estou trabalhando com o provedor Equiplano para cidade de Francisco Beltrão - PR. E este provedor não trabalha com envio síncrono, não permite também as funcionalidades de gerar NFSe, e pra completar também não fornece os XMLs das notas fiscais de serviço. Quando envio um lote de recibos eles são convertidos para notas fiscais de serviço e me retorna uma lista em formato XML apenas com o números das notas e código de autorização, não consigo obter o XML da NFSe, estou tentando contornar a falta do XML. Agora estou tentando realizar o cancelamento de uma NFSe sem ter o XML dela, fiz algumas tentativas acredito que até de forma um tanto errada, mas por fim estou tentando encontrar uma saída. Fiz o seguinte.Ao invés de carregar o componente a partir do arquivo XML eu limpei o componente e adicionei um novo registro de nota fiscal vazio nele:

 

   ACBrNFSe1.NotasFiscais.Clear;

   ACBrNFSe1.NotasFiscais.Add; 

 

Em seguida alimentei este registro novo com os dados de identificação da NFSe que pretendo cancelar da seguinte forma:

 

with ACBrNFSe1.NotasFiscais.Items[0].NFSe do begin
     Numero := '43';
     SeriePrestacao := '1';
     PrestadorServico.IdentificacaoPrestador.Cnpj := edtEmitCNPJ.Text;
     PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal := edtEmitIM.Text;
     PrestadorServico.Endereco.CodigoMunicipio := edtCodCidade.Text;
end;
 
Depois disso como se faz necessário um motivo para o cancelamento no caso do provedor Equiplano, então inclui um motivo da seguinte forma:
 
 ACBrNFSe1.NotasFiscais.Items[0].NFSe.MotivoCancelamento:= 'TESTE DE HOMOLOGAÇÃO';
 
Depois disso tentei cancelar a NFSe chamado o método CancelaNFSe e passando o código de cancelamento 1 que vem ser "Erro de emissão" apenas para teste... O cancelamento iniciou, depois de alguns instantes me retornou a seguinte mensagem de erro:
 
---------------------------
Código Erro : 1056
Mensagem... : Rejeicao: Assinatura - Digest difere do calculado.
Correção... : 
Provedor... : Equiplano
---------------------------
 
Eu acredito que sei do que se trata, no XML original da NFSe a assinatura do arquivo era uma, agora como estou gerando um novo registro no componente e alimentando este registro ele vai gerar uma nova assinatura no arquivo quando eu tentar cancelar. Já se eu fosse ter o arquivo XML eu poderia carregar o arquivo original e manter a mesma assinatura carregada no componente dai sim mandar cancelar. Pode ser que não seja isso também, mas estou desconfiado que seja. O mais curioso de tudo, é que mesmo com esta mensagem ele parece que cancelou a NFSe pois se eu tento cancelar novamente a mesma numeração o erro muda me dizendo que a NFSe já está cancelada. Resumindo tudo ta cancelando mas talvez de forma errada.
 
Alguém teria alguma ideia, alguma dica de como fazer isso?
 
Fico agradecido a todos pela atenção.
 
 
Link para o comentário
Compartilhar em outros sites

Olá

 

Desenvolvi a integração com este provedor, e para cancelar não tenho nenhum problema (pelo menos quando fiz os testes estava tudo ok). 

Faço mais ou menos que você fez.

ACBrNFSe1.NotasFiscais.Clear;
with ACBrNFSe1.NotasFiscais.Add, Ds_Tabela.DataSet do
  begin
    NFSe.Numero                                                    := FieldByName('numeronota').AsString;
    NFSe.IdentificacaoRps.Numero                                   := FieldByName('numerorps').AsString;
    NFSe.IdentificacaoRps.Serie                                    := FieldByName('serierps').AsString;
    NFSe.IdentificacaoRps.Tipo                                     := trRPS;
    NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj              := 'CNPJ DO PRESTADOR';
    NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal:= 'IM DO PRESTADOR';
    NFSe.PrestadorServico.Endereco.CodigoMunicipio                 := 'CIDADE DO PRESTADOR';
    NFSe.MotivoCancelamento                                        := 'MOTIVO CANCELAMENTO';
  end;
ACBrNFSe1.WebServices.CancelaNFSe('2');

Editado por Michel Ouriques
Link para o comentário
Compartilhar em outros sites

Olá Michel Ouriques. Primeiramente obrigado pela resposta.

 

No seu exemplo o que eu estava fazendo diferente era deixar de informar a identificação do RPS número, série e tipo dele. Agora passei a informar, tanto que copiei seu exemplo só alternando para os meus dados. Porém não obtive sucesso o erro persiste. 

 

Se possível me informe algo, você teve que mudar algo no componente quando trabalhou com este provedor Equiplano? aqui até agora ja alterei em vários locais, dava erro inicialmente ao consultar os lotes, ao enviar os lotes, agora com algumas alterações ta fazendo isso tudo, mas não consigo obter o XML das NFSe geradas, me retorna apenas um XML com uma listagem das notas geradas, pra você também foi desta forma?

Link para o comentário
Compartilhar em outros sites

Na verdade eu que fiz as alterações para deixar o provedor funcionando, depois disso anexei  o Italo revisou e subiu (rev. 6094 14/11/2013), e em seguida atualizei e testei ficou tudo funcionando (depois disso não atualizei mais o ACBr)... 

 

Até verifiquei agora e o meu cliente continua emitindo NFSe normalmente, emitiu várias ontem inclusive.

 

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

Amigo Michel Ouriques, seria possível realizar um teste em seu fonte com o ambiente de homologação? Estou desconfiando que no ambiente de homologação este erro ocorre. E no seu caso usou OpenSSL ou Capicom? 

 

Já passei horas lidando neste fonte, tentei até salvar o Digest original do Recibo e depois aplicar ele no XML de cancelamento para ver, mas mesmo assim o erro persiste "Assinatura - Digest difere do calculado."

Link para o comentário
Compartilhar em outros sites

Abri um novo chamado na Equiplano enviando em anexo os XMLs de envio e resposta de cancelamento. Então me responderam que posso estar fazendo errado o XML na questão dos enconding eles falaram que deve ficar no padrão UTF-8 pelo que vi no arquivo gerado pelo componente não encontrei a tag onde define o enconding. Alguém sabe me informar em qual fonte se faz necessário alterar para incluir essas tags?

Link para o comentário
Compartilhar em outros sites

Realmente não tinha a tag UTF-8 no inicio do xml que era enviado, porém o erro persiste, salvei em arquivo e comparei, o arquivo que é enviado ao provedor é idêntico ao de exemplo de cancelamento publicado por eles. Não sei o que pode estar havendo, qualquer ideia é bem vinda.

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

 

Olá

 

Desenvolvi a integração com este provedor, e para cancelar não tenho nenhum problema (pelo menos quando fiz os testes estava tudo ok). 

Faço mais ou menos que você fez.

ACBrNFSe1.NotasFiscais.Clear;
with ACBrNFSe1.NotasFiscais.Add, Ds_Tabela.DataSet do
  begin
    NFSe.Numero                                                    := FieldByName('numeronota').AsString;
    NFSe.IdentificacaoRps.Numero                                   := FieldByName('numerorps').AsString;
    NFSe.IdentificacaoRps.Serie                                    := FieldByName('serierps').AsString;
    NFSe.IdentificacaoRps.Tipo                                     := trRPS;
    NFSe.PrestadorServico.IdentificacaoPrestador.Cnpj              := 'CNPJ DO PRESTADOR';
    NFSe.PrestadorServico.IdentificacaoPrestador.InscricaoMunicipal:= 'IM DO PRESTADOR';
    NFSe.PrestadorServico.Endereco.CodigoMunicipio                 := 'CIDADE DO PRESTADOR';
    NFSe.MotivoCancelamento                                        := 'MOTIVO CANCELAMENTO';
  end;
ACBrNFSe1.WebServices.CancelaNFSe('2');

 

Usando desse modo eu consegui efetuar o cancelamento para o provedor Coplan, aqui no MT.

Muito obrigado.

Editado por Leandro Araújo
  • Curtir 1

Leandro Araújo, Analista de Sistemas.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3631 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.