Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

Problema com Assinatura e-Social


Go to solution Solved by Italo Giurizzato Junior,
  • Este tópico foi criado há 1075 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui

Recommended Posts

Olá!

Tenho o seguinte cenário:  minha aplicação gera os XMLs dos eventos, os quais são gravados no componente ACBreSocial por meio do método LoadFromFile.  Em seguida, o evento é validado, assinado e enviado ao e-Social.  Até aí, tudo transcorre tranquilamente, sem erros.  

Ao consultar a resposta do processamento, o webservice me retorna o código 201 - Lote processado com Sucesso.  Todavia,  há uma ocorrência com o Código 405:  Assinatura inválida. Como pode isso?  O processamento com sucesso não abrange a validação da assinatura?

Veja abaixo, o detalhamento do retorno (ocultando informações inerentes à empresa):

Código Retorno: 201
Mensagem: Lote processado com sucesso.
Empregador
 - Tp.Insc.: 1
 - CNPJ    : XXXXXXXX
Transmissor
 - Tp.Insc.: 2
 - Nr.Insc.: 02165754XXX
Dados Recepcao Lote
 - Data Recepcao.............: 10/08/2018 17:11:58
 - Versao Aplicativo Recepcao: 0.1.0-A0336
 - Protocolo Envio...........: 1.2.201808.0000000000006927617
Processamento
 - Cod. Resposta......: 405
 - Resposta...........: Assinatura inválida.
 - Versao Aplic.Proc..: 10.0.2-A3359
 - Data Processamento : 10/08/2018 17:47:56
Ocorrências do Processamento
 Ocorrencia 0
   Código.....: 142
   Descrição..: Assinatura do evento inválida. Ações Sugeridas: Verificar se houve alteração do evento após a assinatura. Verificar a validade da assinatura.
   Tipo.......: 1
   Localização: /eSocial/Signature
Recibo
 - nrRecibo: 
 - hash....: 

 

Por favor, me esclareçam o ocorrido.

Link to comment
Share on other sites

  • Consultores
14 horas atrás, JUCEMAR DUARTE disse:

Ao consultar a resposta do processamento, o webservice me retorna o código 201 - Lote processado com Sucesso.  Todavia,  há uma ocorrência com o Código 405:  Assinatura inválida. Como pode isso?  O processamento com sucesso não abrange a validação da assinatura?

É preciso confirmar na documentação do E-Social, mas se não me engano, é justamente isso: o processamento não abrange a validação. Quer dizer, processar não significa que foi considerado aprovado. É como se fosse uma resposta: "sim nós processamos, mas não está tudo válido."

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • Consultores

é como @EMBarbosa falou processado significa que a o lote foi recebido e verificado, mas não significa que não tem erros nele, o correto é se foi processado verificar as ocorrências do retorno para ver se não tem algum erro.

Agora sobre a assinatura cheque senão tem espaços em branco ou caracteres não aceito pelo xml.

Consultor SAC ACBr Rafael Dias
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Desenvolvedor ACBrLib.

 

Link to comment
Share on other sites

Compreendi, Rafael e EMBarbosa. No entanto, há de se concordar que é passível de confusão.  A tabela 6.6 do Manual do e-Social traz como possíveis respostas do processamento os códigos 201 (processamento com sucesso) e 405 (erro na assinatura do evento).  Imagina-se que seriam excludentes.  Ou seja, se foi processado com sucesso, não encontrou erros.

Mas, enfim... bola pra frente.

Com relação ao possível erro na assinatura, a situação levantada pelo Rafael pode ser verdadeira.  Meu XML original é gerado com marcas de tabulação que destacam os níveis das tags.  Notei que o carregamento para o componente ACBreSocial mantém essas marcas.  É aconselhável removê-las, então?

 

Link to comment
Share on other sites

  • Consultores

Bom dia Jocemar,

No meu entendimento o pessoal do eSocial errou ao discriminar o código 201 como sendo "Lote processado com sucesso", o correto seria, "Lote recebido com sucesso".

Ai sim, a recepção do lote foi realizada com sucesso, ou seja, a estrutura do lote bem como dos eventos nele contidos esta correto, mas isso não significa que as informações estejam corretas.

  • Like 1
Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

Olá, amigos,

O erro na assinatura não se restringe ao uso de tabulações no XML original.

No método LoadFromFile da classe TEventos, inseri uma rotina para eliminar as marcações do XML original, da seguinte forma (destacada em negrito):

 

function TEventos.LoadFromFile(CaminhoArquivo: String; ArqXML: Boolean = True): Boolean;
var
  ArquivoXML: TStringList;
  XML: String;
  XMLOriginal: AnsiString;
begin
  Result := False;
  
  ArquivoXML := TStringList.Create;
  try
    ArquivoXML.LoadFromFile(CaminhoArquivo);
    XMLOriginal := ArquivoXML.Text;

    // Converte de UTF8 para a String nativa da IDE //
    XML := DecodeToString(XMLOriginal, True);

    // Remove indentação: marcas de tabulação e alinhamento
    RemoveIndentacao (XML);

    if ArqXML then
      Result := LoadFromString(XML)
    else
      Result := LoadFromStringINI(XML);

  finally
    ArquivoXML.Free;
  end;
end;

 

Onde:

procedure RemoveIndentacao(var texto : string);
var 
  i : integer;
  marcadores : TSysCharSet;
begin
  marcadores:= [#13, #10, #9];
  for i := Length(texto) downto 1 do
    if texto in marcadores then 
      Delete(texto, i, 1); 
end;

 

O procedimento aparentemente solucionou a questão, pois o componente ACBr me gerou o xml assinado, mostrado no anexo "xmlAss.png"

No entrando, verifiquei que ao acionar o método ACBreSocial1.Enviar  o mesmo trouxe distorções na acentuação, como mostrado no anexo "xmlLoteEnvio.png".

Poderia ser este o motivo da invalidação na assinatura?

 

xmlAss.PNG

xmlLoteEnvio.PNG

Link to comment
Share on other sites

  • Consultores
  • Solution

Boa tarde Jocemar,

Primeiramente não se deve gerar um XML indentado.

Segundo não devemos usar cedilha ou vogais acentuadas.

Respeitando essas duas regras, você não terá problemas em carregar, assinar, validar e enviar o evento.

  • Like 1
Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.