Ir para conteúdo
  • Cadastre-se

dev botao

Problema com Assinatura e-Social


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 2075 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 para o comentário
Compartilhar em outros 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."

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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 para o comentário
Compartilhar em outros sites

é 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.

 

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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.

  • Curtir 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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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.

  • Curtir 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

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

×
×
  • 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.

The popup will be closed in 10 segundos...