Ir para conteúdo
  • Cadastre-se

EFD-REINF


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

Recommended Posts

Postado

Estou programando a transmissão do REINF, gostaria de saber por onde começar, já tenho ACBR atualizado e configurado e consigo acessar as propriedades pelo componente do REINF porem não consigo assinar ou atribuir o certificado ao mesmo preciso de ajuda.

Estou tentando da seguinte forma:

var
  XML:TStringList;
begin
  ACBrReinf.Configuracoes.Geral.SSLLib := libOpenSSL;
  XML := TStringList.Create;
  XML.LoadFromFile('testesreinf.xml');
  ACBrReinf.Eventos.LoadFromString(XML.Text);
  ACBrReinf.AssinarEventos;
  ACBrReinf.Enviar;

end;

conteudo do testesreinf.XML:

<?xml version="1.0" encoding="UTF-8"?>
<Reinf xmlns="http://www.reinf.esocial.gov.br/schemas/evtInfoContribuinte/v1_03_02">
   <evtInfoContri id="ID1123456780000002018060815345800001">
      <ideEvento>
         <tpAmb>2</tpAmb>
         <procEmi>1</procEmi>
         <verProc>1.0.3</verProc>
      </ideEvento>
      <ideContri>
         <tpInsc>1</tpInsc>
         <nrInsc>12345678</nrInsc>
      </ideContri>
      <infoContri>
         <inclusao>
            <idePeriodo>
               <iniValid>2018-05</iniValid>
            </idePeriodo>
            <infoCadastro>
               <classTrib>99</classTrib>
               <indEscrituracao>1</indEscrituracao>
               <indDesoneracao>0</indDesoneracao>
               <indAcordoIsenMulta>0</indAcordoIsenMulta>
               <indSitPJ>0</indSitPJ>
               <contato>
                  <nmCtt>CONTATO</nmCtt>
                  <cpfCtt>12345678901</cpfCtt>
                  <foneFixo>TEL. CONTATO</foneFixo>
                  <foneCel>CEL. CONTATO</foneCel>
                  <email>EMAIL CONTATO</email>
               </contato>
            </infoCadastro>
         </inclusao>
      </infoContri>
   </evtInfoContri>
</Reinf>

  • Consultores
Postado

Bom dia.

Sugiro analisar o demo do mesmo.

Att.

  • Curtir 2
Consultora ACBr Pro

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado (editado)

Segui os exemplos, porem quando uso a função ACBrReinf.Eventos.LoadFromString(XMLTestes);

me retorna o seguinte erro:

Screenshot_2.jpg.1626ea3861ba8c783ee21bf557925cd5.jpg

MInhas dlls estão atualizadas e funcionam em outros processos como envio de email e nfes.

Sendo que o a variavel XMLTestes segue abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<Reinf xmlns="http://www.reinf.esocial.gov.br/schemas/evtInfoContribuinte/v1_03_02">
   <evtInfoContri id="ID1123456780000002018060815345800001">
      <ideEvento>
         <tpAmb>2</tpAmb>
         <procEmi>1</procEmi>
         <verProc>1.0.3</verProc>
      </ideEvento>
      <ideContri>
         <tpInsc>1</tpInsc>
         <nrInsc>12345678</nrInsc>
      </ideContri>
      <infoContri>
         <inclusao>
            <idePeriodo>
               <iniValid>2018-05</iniValid>
            </idePeriodo>
            <infoCadastro>
               <classTrib>99</classTrib>
               <indEscrituracao>1</indEscrituracao>
               <indDesoneracao>0</indDesoneracao>
               <indAcordoIsenMulta>0</indAcordoIsenMulta>
               <indSitPJ>0</indSitPJ>
               <contato>
                  <nmCtt>CONTATO</nmCtt>
                  <cpfCtt>12345678901</cpfCtt>
                  <foneFixo>TEL. CONTATO</foneFixo>
                  <foneCel>CEL. CONTATO</foneCel>
                  <email>EMAIL CONTATO</email>
               </contato>
            </infoCadastro>
         </inclusao>
      </infoContri>
   </evtInfoContri>
</Reinf>

---------------------------
Debugger Exception Notification
---------------------------
Project Ello_Desenv.exe raised exception class EAccessViolation with message 'Access violation at address 1107C4C9 in module 'libeay32.dll'. Read of address AB922AB9'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

 

Editado por edu.nazario
Postado

O erro acima consegui resolver, assinando o XML antes de enviar, porem quando eu envio da o seguinte erro:

---------------------------
Debugger Exception Notification
---------------------------
Project Ello_Desenv.exe raised exception class EACBrDFeException with message 'WebService: http://sped.fazenda.gov.br/RecepcaoLoteReinf/ReceberLoteEventos
- Inativo ou Inoperante tente novamente.
Erro Interno: 0
Erro HTTP: 404
URL: https://preprodefdreinf.receita.fazenda.gov.br/RecepcaoLoteReinf.svc
'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

Screenshot_3.jpg.dd59a1e288904ab7abd2d9bc63a5de7c.jpg

Ou seja esta alegando que o servidor esta inativo ou inoperante...

além disso gostaria de saber se o componente assina o XML antes de enviar pois tive que encontrar um XML assinado para testar, gostaria de carregar o XML sem assinatura e o componente assinar o mesmo para poder enviar, outra questão é a documentação que não consigo encontrar nada, de informações sobre o componente de REINF do acbr.

Postado

Obrigado pela atenção, consegui resolver depois de muito tentar, vou descrever a solução para que fique de registro para próximas duvidas que surgirem na comunidade.

O que acontece é que o servidor da versão 1.03.00 que segue abaixo:

EnviarLoteEventos_1.30=https://preprodefdreinf.receita.fazenda.gov.br/RecepcaoLoteReinf.svc
ConsultarLoteEventos_1.30=https://preprodefdreinf.receita.fazenda.gov.br/ConsultasReinf.svc

Esta descontinuado ou seja fora do ar o que tive que fazer foi setar no componente do REINF  a propriedade em:

Configurações/Geral/VersaoDF para versão mais recente que é a v1_04_00 conforme imagem abaixo:

Screenshot_4.jpg.4f69e529e40e49f19ecfb51449478366.jpg

Que por sua ver passa a usar o servidor correto que esta no ar segue abaixo:

EnviarLoteEventos_1.40=https://preprodefdreinf.receita.fazenda.gov.br/WsREINF/RecepcaoLoteReinf.svc
ConsultarLoteEventos_1.40=https://preprodefdreinf.receita.fazenda.gov.br/WsREINFConsultas/ConsultasReinf.svc.

Acredito que a versão 1.03.02 também funcione pois usa o mesmo servidor, porem não fiz testes na parte de layout ainda, só na parte de comunicação.

  • Curtir 1
  • Consultores
Postado

Bom dia Edu,

O componente faz tudo, gera, assina e envia os XML dos eventos do Reinf.

Não entendo o porque de alguns desenvolvedores quererem gerar o XML através da sua aplicação e usar o componente para fazer o resto.

Alguns acabam gerando o XML fora do layout esperado e depois ficam batendo cabeça para descobrir o porque a coisa não funciona.

Quanto a documentação, não temos um manual do componente, mas temos um programa exemplo onde você pode estudar nele as funcionalidades que foram implementadas no componente. 

  • Curtir 3
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Estou gerando o XML pois o processo de nosso ERP já esta gerando o mesmo, ja tenho todo processo de geração do XML de acordo com o manual de orientação, quando temos o controle no ERP ficamos livres de componentes de terceiros, então optamos para o componente ACBR ja que utilizamos ele para geração de notas e é um componente muito bom que funciona perfeitamente. Obrigado.

  • Curtir 1
  • Consultores
Postado

Bom dia Edu,

Se a sua aplicação gera o XML, a rotina que gera é validada somente pelos seus clientes.

Por outro lado a rotina do componente que gera o XML é validada por todos os clientes de todos os desenvolvedores que utilizam o componente.

Uma coisa é usar um componente de terceiros onde você não tem acesso aos fontes.

Outra coisa é você usar a suíte ACBr, onde você tem acesso a todos os fontes, ao fórum e se pagar o SAC anual ainda tem direito ao acesso ao Chat exclusivo, onde você tira as suas duvidas diretamente com a equipe ACBr.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Estou recebendo o seguinte retorno do servidor:

'MS0017', 'Assinatura do evento inválida. Erro ao verificar a assinatura (tag ''Signature'') com o certificado (tag ''X509Certificate''). Verifique se houve alteração no arquivo após o mesmo ter sido assinado.'

Verifiquei que já teve um tópico aberto com esse assunto, porem fiz a atualização que sugere no mesmo mas não resolveu meu problema.

Link do tópico: https://www.projetoacbr.com.br/forum/topic/48716-assinatura-do-evento-inválida/

Todos os fontes de todas as pastas atualizados!!!!!

reinstalei a suíte ACBr usando o ACBrInstall_Trunk2 com a opção de apagar arquivos antigos marcada!!!!!

Fiz um teste usando o programa exemplo do componente deu mesmo erro conforme imagem em anexo...

Screenshot_1.jpg.f5e82916ce76a46e8b650a0757138c72.jpg

 

Agora, edu.nazario disse:

Estou recebendo o seguinte retorno do servidor:

'MS0017', 'Assinatura do evento inválida. Erro ao verificar a assinatura (tag ''Signature'') com o certificado (tag ''X509Certificate''). Verifique se houve alteração no arquivo após o mesmo ter sido assinado.'

Verifiquei que já teve um tópico aberto com esse assunto, porem fiz a atualização que sugere no mesmo mas não resolveu meu problema.

Link do tópico: https://www.projetoacbr.com.br/forum/topic/48716-assinatura-do-evento-inválida/

Todos os fontes de todas as pastas atualizados!!!!!

reinstalei a suíte ACBr usando o ACBrInstall_Trunk2 com a opção de apagar arquivos antigos marcada!!!!!

Fiz um teste usando o programa exemplo do componente deu mesmo erro conforme imagem em anexo...

Screenshot_1.jpg.f5e82916ce76a46e8b650a0757138c72.jpg

 

Ja abri outro SAC mais não tenho respostas, preciso de uma solução valida.

  • Consultores
Postado
32 minutos atrás, edu.nazario disse:

'MS0017', 'Assinatura do evento inválida. Erro ao verificar a assinatura (tag ''Signature'') com o certificado (tag ''X509Certificate''). Verifique se houve alteração no arquivo após o mesmo ter sido assinado.'

Se está dando erro de assinatura inválida quer dizer que o processo de assinar não está correto ou talvez esteja havendo modificações no arquivo depois dele ser assinado.

Fica difícil de ajudar se você não conseguir nos fornecer um passo a passo em como reproduzir usando o programa de exemplo ou nos fornecer um programa simples que gere o erro.

[]'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.
Postado (editado)

A imagem esta ali em cima demonstrando como foi feito, utilizei o programa de exemplo e ocorre o mesmo erro que o que estou desenvolvendo, o processo é simples como demonstra na imagem, primeiro carreguei o arquivo conforme o item 1 da imagem depois mandei enviar, não foi feito nenhuma alteração no arquivo,pois o que esta processando o arquivo é o programa de exemplo com componente ACBR, quanto ao passo a passo eu passei na imagem acima duas vezes como o processo de envio foi feito segue os números da imagem vou passar de novo:

Screenshot_1.jpg.f5e82916ce76a46e8b650a0757138c72.jpg

Clico em ler arquivo com o segunte XML:

<Reinf xmlns="http://www.reinf.esocial.gov.br/schemas/evtInfoContribuinte/v1_04_00">
    <evtInfoContri id="ID1XXXXXXXXXXXXXX2019102421281200001">
        <ideEvento>
            <tpAmb>2</tpAmb>
            <procEmi>1</procEmi>
            <verProc>1.04.00</verProc>
        </ideEvento>
        <ideContri>
            <tpInsc>1</tpInsc>
            <nrInsc>XXXXXXXX</nrInsc>
        </ideContri>
        <infoContri>
            <alteracao>
                <idePeriodo>
                    <iniValid>2019-09</iniValid>
                    <fimValid>2019-09</fimValid>
                </idePeriodo>
                <infoCadastro>
                    <classTrib>01</classTrib>
                    <indEscrituracao>0</indEscrituracao>
                    <indDesoneracao>0</indDesoneracao>
                    <indAcordoIsenMulta>0</indAcordoIsenMulta>
                    <contato>
                        <nmCtt>XXXXXXX</nmCtt>
                        <cpfCtt>XXXXXXXXXXX</cpfCtt>
                    </contato>
                    <softHouse>
                        <cnpjSoftHouse>XXXXXXXXXXXXXX</cnpjSoftHouse>
                        <nmRazao>XXXXXX</nmRazao>
                        <nmCont>XXXX</nmCont>
                        <telefone>XXXXXXXXX</telefone>
                        <email>XXXXXXXX</email>
                    </softHouse>
                </infoCadastro>
            </alteracao>
        </infoContri>
    </evtInfoContri>
</Reinf>

estou utilizando o delphi 7 para compilar o exemplo,

Editado por edu.nazario
  • Moderadores
Postado
16 minutos atrás, edu.nazario disse:

Clico em ler arquivo com o segunte XML:

<Reinf xmlns="http://www.reinf.esocial.gov.br/schemas/evtInfoContribuinte/v1_04_00">
    <evtInfoContri id="ID1XXXXXXXXXXXXXX2019102421281200001">
        <ideEvento>

Quando postar conteúdo de arquivos use a opção anexar do fórum, não copie no corpo da mensagem.

Se o seu XML tem quebras de linhas / indentação pode causar erro de leitura pelo componente ou assinatura incorreta.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
6 minutos atrás, BigWings disse:

Quando postar conteúdo de arquivos use a opção anexar do fórum, não copie no corpo da mensagem.

Se o seu XML tem quebras de linhas / indentação pode causar erro de leitura pelo componente ou assinatura incorreta.

O problema não é erro de leitura e nem de assinatura incorreta, pois como já falei carrego um XMLno programa de testes, o XML gerado esta correto inclusive se não estivesse nem carregava no componente, porem esta carregando, quando envio ao servidor da o erro que ja foi citado acima.

Não utilizo o copia e cola e sim a carga do arquivo.xml, como ja foi demostrado na imagem acima, Vou colocar o XML no anexo.

Reinf10002.xml

  • Moderadores
Postado
13 minutos atrás, edu.nazario disse:

O problema não é erro de leitura e nem de assinatura incorreta

Não entendi, não está sendo retornado erro de assinatura pelo webservice?

15 minutos atrás, edu.nazario disse:

o XML gerado esta correto inclusive se não estivesse nem carregava no componente

Não tenho certeza disso.

16 minutos atrás, edu.nazario disse:

Não utilizo o copia e cola e sim a carga do arquivo.xml, como ja foi demostrado na imagem acima

Quis dizer que você copiou o XML no fórum em vez de anexar, como fez agora.

17 minutos atrás, edu.nazario disse:

Reinf10002.xml 1 kB · 0 downloads

Se você gerar o XML pelo componente em vez de carregar um próprio, o problema ocorre?

Se você remover as quebras de linha e indentações (linearizar) o seu XML e tentar enviar, o problema ocorre?

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Solution
Postado (editado)

Consegui resolver removendo os #13#10 do arquivo XML, ou seja tem que remover qualquer enter,espaço e indentação, que tenha entre as tags, antes de carregar no componente. Obrigado!

function enviaReinf(XML):
begin
   XML := StringReplace(trim(XML),#13#10,'',[rfReplaceAll]);
   if ACBrReinf.Eventos.LoadFromString(XML) then begin
       if ACBrReinf.Enviar then
             Result := ACBrReinf.WebServices.EnvioLote.RetWS
   end;
end;

Acredito que tenha que remover espaços também, o código acima é do programa que estou desenvolvendo!

Segue em anexo o arquivo que deu certo no programa de exemplos de REINF ACBR:

Reinf10002.xml

1 hora atrás, EMBarbosa disse:

Se está dando erro de assinatura inválida quer dizer que o processo de assinar não está correto ou talvez esteja havendo modificações no arquivo depois dele ser assinado.

Fica difícil de ajudar se você não conseguir nos fornecer um passo a passo em como reproduzir usando o programa de exemplo ou nos fornecer um programa simples que gere o erro.

De alguma forma o componente ACBR esta fazendo alterações no XML depois de assinado pois conforme citei acima consegui resolver removendo os espaços e a indentação entre as tags,  essa parte esta resolvida. Obrigado.

Editado por edu.nazario
  • Curtir 1
  • Consultores
Postado
6 minutos atrás, edu.nazario disse:

Consegui resolver removendo os #13#10 do arquivo XML, ou seja tem que remover qualquer enter,espaço e indentação, que tenha entre as tags, antes de carregar no componente.

Isso porque você precisa canonicalizar o arquivo antes de trabalhar com ele ou assinar.

Se você está gerando seu próprio arquivo xml, queira por favor estudar o assunto antes de trabalhar o componente.

 

  • 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.
Postado (editado)

 

9 minutos atrás, EMBarbosa disse:

Isso porque você precisa canonicalizar o arquivo antes de trabalhar com ele ou assinar.

Se você está gerando seu próprio arquivo xml, queira por favor estudar o assunto antes de trabalhar o componente.

 

Complicado estudar, já que aqui não possui uma documentação do componente, como já foi citado acima, se você ler esse tópico desde o começo vai entender, estou na tentativa e erro, pois pelo que foi passado só tenho o exemplo para estudar, não existe nada documentado, e se existe por favor me passe que vou estudar com certeza.

Editado por edu.nazario
  • Consultores
Postado
16 minutos atrás, edu.nazario disse:

Complicado estudar, já que aqui não possui uma documentação do componente

Desculpe, mas isso não é documentação do componente. Isso é padrão internacional de XML. Se não me engano está mencionado na documentação do Reinf.

Se você está gerando o seu XML, então passa a ser sua responsabilidade entregar o xml pronto ao componente.

[]'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.
Postado (editado)
6 minutos atrás, EMBarbosa disse:

Desculpe, mas isso não é documentação do componente. Isso é padrão internacional de XML. Se não me engano está mencionado na documentação do Reinf.

Se você está gerando o seu XML, então passa a ser sua responsabilidade entregar o xml pronto ao componente.

Acredito que a maior documentação do ACBR seja o forum, por isso quanto mais solução colocar aqui melhor, pois outras pessoas podem ter a mesma duvida que eu, achei sua resposta um tanto quanto ríspida, acredito que aqui somos uma comunidade e uns devemos ajudar os outros, caso contrario que seria a utilidade desse forum? se não for para expor duvidas e soluções!

Editado por edu.nazario
  • Consultores
Postado
1 minuto atrás, edu.nazario disse:

achei sua resposta um tanto quanto ríspida,

Sinceramente, o tom da minha resposta foi bem mais brando do que a sua colocação anterior, mas tudo bem. Vamos começar novamente...

Veja seu relato:

35 minutos atrás, edu.nazario disse:

Consegui resolver removendo os #13#10 do arquivo XML, ou seja tem que remover qualquer enter,espaço e indentação, que tenha entre as tags, antes de carregar no componente.

36 minutos atrás, edu.nazario disse:

De alguma forma o componente ACBR esta fazendo alterações no XML

Na verdade o componente está canonicalizando o xml para assinar. Se você está gerando o seu próprio XML, você deve fazer isso antes de trabalhar com o componente.

[]'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.
Postado
3 minutos atrás, EMBarbosa disse:

Sinceramente, o tom da minha resposta foi bem mais brando do que a sua colocação anterior, mas tudo bem. Vamos começar novamente...

Veja seu relato:

Na verdade o componente está canonicalizando o xml para assinar. Se você está gerando o seu próprio XML, você deve fazer isso antes de trabalhar com o componente.

Obrigado!

  • Consultores
Postado

Bom dia Edu,

A remoção de mudança de linha, espaços em brancos, identação, entre outras coisa, como já foi dito é regra geral e que já foi exposta acima.

Em vez de você ficar criando as suas próprias rotinas para gerar o XML, porque não utiliza as que o componente lhe oferece, teria muito menos dor de cabeça.

Quem garante que a sua rotina esta correta?

Você e seus clientes, com certeza.

Quem garante que a rotina do componente esta correta?

Todos os clientes de todos os desenvolvedores que utilizam o componente.

Mas em fim, vivendo e aprendendo.

Como o problema referente a assinatura foi sanado assim que você passou a gerar o XML de forma correta, então vou dar esse tópico como encerrado.

Para novas duvidas ou problemas favor criar novas postagens.

 

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Este tópico foi criado há 2422 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...