Ir para conteúdo
  • Cadastre-se

dev botao

EFD-REINF


Ver Solução Respondido por edu.nazario,
  • Este tópico foi criado há 1855 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>

  • Administradores
Postado

Bom dia.

Sugiro analisar o demo do mesmo.

Att.

  • Curtir 2
Consultora SAC ACBr

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á 1855 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...