Search the Community
Showing results for tags 'reinf'.
-
A Receita Federal do Brasil - RFB publicou em 15/05/2024 a versão 2.5 do Manual de Orientação ao Desenvolvedor da EFD-Reinf que contém a atualização de url para consulta de recibos para produção. Segue link da publicação. Segue link da versão 2.5 do Manual de Orientação ao Desenvolvedor. Já estamos analisando a mudança para adequar o Componente, a Lib e o Monitor e atualizaremos o tópico quando as alterações estiverem disponíveis.
-
Olá pessoal, Ficamos felizes em dizer que foi disponibilizada a mais nova biblioteca do pacote ACBrLib, a ACBrLibReinf !! O projeto havia sido iniciado há um tempo e, por fazer parte do grupo de componentes de DFe, logicamente tem a assinatura inicial do @Italo Giurizzato Junior .... Méritos também para o @antonio.carlos que contribuiu nas implementações... A ACBrLibReinf está disponível para download e já estão no SVN os programas de exemplo em c# e node.js. Segue o link da documentação da biblioteca e contamos com a comunidade, caso tenham disponbilidade e possam compartilhar exemplos em outras linguagens, que venham a ajudar outros colegas. Até mais!!!
-
Olá pessoal, A seguir colocamos os tópicos deste workshop do Dia do ACBr 2023 e um resumo do que foi abordado. 1. Documentação, Manuais e NTs Sempre indicamos a leitura dos Manuais e NTs, pois são as fontes de onde o ACBr extrai informações para o desenvolvimento dos componentes 1.1. Todos os documentos relacionados ao Reinf https://svn.code.sf.net/p/acbr/code/tools/DFe/Reinf/ 1.2. Manual de Orientação ao Desenvolvedor: Leitura essencial para entender como funciona o Reinf e seus métodos https://svn.code.sf.net/p/acbr/code/tools/DFe/Reinf/ManDesenvolvedor/ManualOrientacaoDesenvolvedor-REINF-v2.3.pdf 2. Sequência lógica: Consta no Manual de Orientação ao Desenvolvedor (item 1.2) 3. TLS 1.2 A partir de janeiro de 2024 a comunicação será exclusiva com TLS 1.2 Isso seria implementado em outubro de 2023, mas foi postergado Existem relatos de certificados A3 que não estão funcionando com o TLS 1.2 e isso é um problema recorrente com alguns DFes e alguns certificados 4. Qual a diferença entre as versões? A versão 1.5 é Síncrona e SOAP, a 2.1 é Assíncrona e REST Ambas trabalham com envio e retorno via XML A versão 1.5 seguirá ativa por 6 meses após o início da versão 2.1, que foi em 09/2023 A versão 1.5, por ser síncrona, recebe o retorno do processamento automaticamente ao enviar os eventos e a versão 2.1, por ser assíncrona, devolve o número do protocolo para ser consultado posteriormente e obter o resultado do processamento A consulta de protocolo já existia na versão 1.5 para o registro R2099, que era o único assíncrono nesta versão 5. Registros 4000 São exclusivos da versão 2.1, não sendo possível o envio na versão 1.5 6. Consulta de Recibo O número do recibo, além de um comprovante do processamento, será necessário para a retificação ou exclusão de um evento Ao consultar o protocolo, o número do recibo e devolvido e se for armazenado neste momento, não será necessária a utilização da Consulta de Recibo para este fim O método possui diversos parâmetros, pois para cada tipo de registro são necessários dados específicos. No Manual de Orientação ao Desenvolvedor (item 1.2) é possível iedntificar os parâmetros para cada tipo de registro 7. Processo padrão Na versão o processo é dividido em: Preenchimento do Componente, Envio e Consulta do Protocolo 7.1. Preenchimento do componente Pode ser feito via código alimentando as propriedades do componente, através de leitura de arquivo INI seguindo o padrão ACBr ou de XML seguindo o leiaute do Reinf O preenchimento através de arquivo INI, suporta o limite de 50 eventos por lote e o preenchimento lendo XML no leiaute do Reinf exige que seja lote de apenas 1 evento 7.2. Envio Quando o componente estiver preenchido com uma das opções do item 7.1 o lote deverá ser enviado Ao enviar o lote, será recebido o número do protocolo para que seja feita a consulta, que retornará o resultado do processamento 7.3. Consulta do Protocolo Ao consultar o protocolo recebido no item 7.2 será recebido o retorno do processamento Caso ocorram erros, será retornada uma lista contendo 1 ou mais erros identificados pelo serviço Caso o lote tenha sido processado com sucesso, será retornado o número do recibo e demais informações relacionadas a cada tipo de evento 8. Método de Limpeza da base de Produção Restrita (Homologação) Lembrando que este método só é possível ser utilizado na base de testes, conforme destacado no item Enviar o Registro R1000 Como evento de Alteração IdeEvento.VerProc = 'RemoverContribuinte' ClassTrib = ct00 // ct00 é um enumerado utilizado somente para este fim 9. Informações adicionais Existe um limite estipulado pelo serviço de 50 eventos por lote A RFB recomenda que os Registros R2099 e R4099, de fechamento, sejam enviados em lotes isolados, após a consulta e confirmação de processamento de todos os demais registros
-
Olá, sou novo aqui no fórum, esta é a minha primeira postagem. Se estiver no local incorreto peço desculpas. Estou enfrentando um problema ao atualizar nosso sistema próprio para a versão 2.01.02 do EFD-REINF. O problema parece estar relacionado à estrutura do XML enviado para o webservice do EFD-REINF. Antes de enviar o XML, fazemos uma validação para garantir que a estrutura está correta, de acordo com o arquivo XLSX fornecido pelo EFD-REINF. Até agora, não encontrei uma solução adequada para esse problema nos fóruns e sites relacionados, pois as mensagens de erro retornadas são bastante genéricas. Em resumo, após consultar o protocolo da situação do documento no endpoint https://reinf.receita.economia.gov.br/recepcao/lotes, recebemos um retorno que indica que o arquivo não foi enviado corretamente. Aqui está o XML enviado para o endpoint: <Reinf xmlns="http://www.reinf.esocial.gov.br/schemas/envioLoteEventosAssincrono/v1_00_00"> <envioLoteEventos> <ideContribuinte> <tpInsc>1</tpInsc> <nrInsc>00000000</nrInsc> </ideContribuinte> <eventos> <evento Id="IDXXXXXXXXXXXXXXXXXXXXXXXXXXX"> <ns2:Reinf xmlns:ns2="http://www.reinf.esocial.gov.br/schemas/evtInfoContribuinte/v2_01_02" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#"> <ns2:evtInfoContri id="IDXXXXXXXXXXXXXXX"> <ns2:ideEvento> <ns2:tpAmb>1</ns2:tpAmb> <ns2:procEmi>1</ns2:procEmi> <ns2:verProc>2.01.02</ns2:verProc> </ns2:ideEvento> <ns2:ideContri> <ns2:tpInsc>1</ns2:tpInsc> <ns2:nrInsc>00000000</ns2:nrInsc> </ns2:ideContri> <ns2:infoContri> <ns2:inclusao> <ns2:idePeriodo> <ns2:iniValid>2023-10</ns2:iniValid> <ns2:fimValid>2023-10</ns2:fimValid> </ns2:idePeriodo> <ns2:infoCadastro> <ns2:classTrib>99</ns2:classTrib> <ns2:indEscrituracao>0</ns2:indEscrituracao> <ns2:indDesoneracao>0</ns2:indDesoneracao> <ns2:indAcordoIsenMulta>0</ns2:indAcordoIsenMulta> <ns2:indSitPJ>0</ns2:indSitPJ> <ns2:contato> <ns2:nmCtt>THAIS XXXXXX</ns2:nmCtt> <ns2:cpfCtt>00000000000</ns2:cpfCtt> <ns2:foneFixo>0032000000</ns2:foneFixo> <ns2:foneCel>0032000000</ns2:foneCel> <ns2:email>[email protected]</ns2:email> </ns2:contato> <ns2:softHouse> <ns2:cnpjSoftHouse>80400000000000</ns2:cnpjSoftHouse> <ns2:nmRazao>XXXXXX INFORMATICA LTDA</ns2:nmRazao> <ns2:nmCont>SUPORTE</ns2:nmCont> <ns2:telefone>0003006611</ns2:telefone> <ns2:email>[email protected]</ns2:email> </ns2:softHouse> </ns2:infoCadastro> </ns2:inclusao> </ns2:infoContri> </ns2:evtInfoContri> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /> <Reference URI="#ID18260000000000000000000000001"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> <DigestValue>zdnff+xXXXXXXXXXXXXA1y8KVXQvTrk436Z8=</DigestValue> </Reference> </SignedInfo> <SignatureValue>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 </X509Certificate> </X509Data> </KeyInfo> </Signature> </ns2:Reinf> </evento> </eventos> </envioLoteEventos> </Reinf> E aqui está o XML de retorno da consulta do protocolo: https://reinf.receita.economia.gov.br/consulta/lotes/ <Reinf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.reinf.esocial.gov.br/schemas/retornoLoteEventosAssincrono/v1_00_00"> <retornoLoteEventosAssincrono> <ideContribuinte> <tpInsc>1</tpInsc> <nrInsc>XXXXXXXXX</nrInsc> </ideContribuinte> <status> <cdResposta>3</cdResposta> <descResposta>Lote processado com sucesso - Possui um ou mais eventos com ocorrências de erro.</descResposta> </status> <dadosRecepcaoLote> <dhRecepcao>2023-10-25T14:58:51.447</dhRecepcao> <versaoAplicativoRecepcao>2.0.1-1600512</versaoAplicativoRecepcao> <protocoloEnvio>1.202310.0000000</protocoloEnvio> </dadosRecepcaoLote> <dadosProcessamentoLote> <versaoAplicativoProcessamentoLote>2.0.1-1608191</versaoAplicativoProcessamentoLote> </dadosProcessamentoLote> <retornoEventos> <evento Id="IDXXXXXXXXXXXXXXX5000001"> <retornoEvento> <Reinf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.reinf.esocial.gov.br/schemas/evtTotal/v2_01_02"> <evtTotal id="IDXXXXXXXXXXXX0294038679"> <ideEvento> <perApur /> </ideEvento> <ideContri> <tpInsc>1</tpInsc> <nrInsc>00000000</nrInsc> </ideContri> <ideRecRetorno> <ideStatus> <cdRetorno>1</cdRetorno> <descRetorno>ERRO</descRetorno> <regOcorrs> <tpOcorr>1</tpOcorr> <localErroAviso> - Campo: xmlns - XPATH: /Reinf/@xmlns</localErroAviso> <codResp>MS0055</codResp> <dscResp>O campo 'xmlns' é obrigatório e não foi informado.</dscResp> </regOcorrs> <regOcorrs> <tpOcorr>1</tpOcorr> <localErroAviso>Registro: idePeriodo - XPATH: /Reinf/evtInfoContri/infoContri/inclusao/idePeriodo</localErroAviso> <codResp>MS1005</codResp> <dscResp>Já existe outro registro com período conflitante com o período informado.</dscResp> </regOcorrs> </ideStatus> </ideRecRetorno> <infoRecEv> <dhRecepcao>2023-10-25T14:58:51.447</dhRecepcao> <dhProcess>2023-10-25T14:58:51.5717635-03:00</dhProcess> <tpEv>1000</tpEv> <idEv>ID1213XXXXXXXXXXXXXXX14584900001</idEv> <hash>1jxSew1pZmXXXXXXXXXXXXXXXXyg87jkYn03PqQ2/teE=</hash> </infoRecEv> </evtTotal> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /> <Reference URI="#ID90010000000XXXXXXXXXXXX679"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> <DigestValue>989hxPJXXXXXXXXXXXXXXXOcVLUy+N2Q=</DigestValue> </Reference> </SignedInfo> <SignatureValue>F716jvXXXXXXXXXXXXXXXXXXXXXXXXXZTQvwtbNp7lnMRj6R2G14biNqOu+zbDwS4LMlActrgy/974u8i0u44VFdrqd3wIaUng+xXx30u+skKyp1OOpc3fOa804RdOPT+4QnxwvVOcW6KrF3FdbU5U4NV9fK8BZYXiH5KGzLdR93uKP1ERpOBErmn+iQv0CbTT6xf5TgTyQLEEv1iheIXfivA2FHKKGw8V1Vns0yQNW3qMp0RO8n3wNNX6RfVZsooA0oZkl41RZGW8Bcc3x2BHH7iQZmYRD62GqZBw==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIIcDCCBligAwIBAgIMLwj8Ba6fwpuyKikgMXXXXXXXXXXXXXXXXXGA1UECwwsQXV0b3JpZGFkZSBDZXJ0aWZpY2Fkb3JhIFJhaXogQnJhc2lsZWlyYSB2MTAxMTAvBgNVBAMMKEF1dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBkbyBTRVJQUk8gU1NMdjEwHhcNMjMwNzA0MTY1MzM1WhcNMjQwNzAzMTY1MzM1WjCB4DELMAkGA1UEBhMCQlIxCzAJBgNVBAgMAk1HMRcwFQYDVQQHDA5CRUxPIEhPUklaT05URTE7MDkGA1UECgwyU0VSVklDTyBGRURFUkFMIERFIFBST0NFU1NBTUVOVE8gREUgREFET1MgKFNFUlBSTykxFzAVBgNVBAUTDjMzNjgzMTExMDAwMTA3MSYwJAYDVQQDDB1yZWluZi5yZWNlaXRhLmVjb25vbWlhLmdvdi5icjEYMBYGA1UEDxMPQnVzaW5lc3MgRW50aXR5MRMwEQYLKwYBBAGCNzwCAQMTAkJSMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw/JL5f6YLKJn04L+Vq+K9hB8BU7KAO29ESl6vwuM9oN74gJJUOOeaSUdFA1MPrxyEbV3X60cFzPUeekF6reqvcLMnvLObjGF3x1vdcGllu58f2UXW9R12Dx83h6QUz33nUbleHUS2mppWzFhDfkviyKjGhif2fdx+8oZb4Hk4N8B9tammGVNFoe+76mQnZkDZggsb6PEXqOWaC5ksO3mLxKmNtuF5lhgWzwXJSS/bZfDAoPb+x/SLZt6SZjInxgK7nGP4LO+d9uH7E0lmbnZTCZGMs89/T9R6CBRSZJfGnbdm7aVGlzwFmp0A5V9PQEsX6xkx04c1gEzxrqgBUWO1QIDAQABo4IDejCCA3YwHwYDVR0jBBgwFoAUrRZPS/EMvsKKooUY1w1GJZMi480wgYgGA1UdHwSBgDB+MDygOqA4hjZodHRwOi8vcmVwb3NpdG9yaW8uc2VycHJvLmdvdi5ici9sY3IvYWNzZXJwcm9zc2x2MS5jcmwwPqA8oDqGOGh0dHA6Ly9jZXJ0aWZpY2Fkb3MyLnNlcnByby5nb3YuYnIvbGNyL2Fjc2VycHJvc3NsdjEuY3JsMIGHBggrBgEFBQcBAQR7MHkwQgYIKwYBBQUHMAKGNmh0dHA6Ly9yZXBvc2l0b3Jpby5zZXJwcm8uZ292LmJyL2NhZGVpYXMvc2VycHJvc3NsLnA3YjAzBggrBgEFBQcwAYYnaHR0cDovL29jc3Auc2VycHJvLmdvdi5ici9hY3NlcnByb3NzbHYxMCgGA1UdEQQhMB+CHXJlaW5mLnJlY2VpdGEuZWNvbm9taWEuZ292LmJyMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwYwYDVR0gBFwwWjAIBgZngQwBAgIwTgYGYEwBAgFpMEQwQgYIKwYBBQUHAgEWNmh0dHA6Ly9yZXBvc2l0b3Jpby5zZXJwcm8uZ292LmJyL2RvY3MvZHBjc2VycHJvc3NsLnBkZjCCAX4GCisGAQQB1nkCBAIEggFuBIIBagFoAHcA7s3QZNXbGs7FXLedtM0TojKHRny87N7DUUhZRnEftZsAAAGJIdMnDwAABAMASDBGAiEA+5xCsS1hRXm52Xok9PXS2/SDDs+/P13buqyJwHP43mUCIQCsZiap0oPwZAonHHciWFrWA0gj5qD4HrHrP12MUqyg6gB1AHb/iD8KtvuVUcJhzPWHujS0pM27KdxoQgqf5mdMWjp0AAABiSHTLDsAAAQDAEYwRAIgPCpKFidq70sXCZS2rOaqJllFmF+CI3Q85jec1tPmrZECIC1lauZMb+yM7XsJwxQ5+2/aPa+6GwnuoqxFmZf0BeloAHYAh0+1DcAp2ZMd5XPp8omejkUzs5LTiwpGJXS/D+6y/B4AAAGJIdNfDQAABAMARzBFAiBowWmCQfnFdyOYlqhjanZDQoI6tHzekX3pCz7jdy5uRwIhAN42kXqpKQKzEhgwHg4C1S/97bKoGexfWFwav3MlPZl8MA0GCSqGSIb3DQEBCwUAA4ICAQBMdJYqCCTHH+sjz+RZujkWVzm6LKY2OhdRzMjXnE/3TLz84uZIt4RvbWdd2s8JCMJpkcrTHsS059Uia1TOsTRgWlJU8iD+ttRIYtY2OcSgIWiBnF4dP02hGB7OfERDImSewjuBxeNHGr69NmMUwkYm+wqfBF/IPTNkr846YHYv9e8c5SgWjvb8OtPm/ZmibPYE6kzV9iMJ4pTHlTcBYj4ihmNe0hFP+cK3yyiPflpJCmxipvf7MyVRV4oadZcXhA2s7R76Uly9BWcqbP0UHriYL9l8tnyGN1EsVnu6q1E4Uhp7t7dtL3Yy4ZSsBR6+XTFESvl0eofh4JdqH+z99e3howAM0IfF5I6+FUqwIDW6ASIeKwLsLlhIp+6fGBfoIBUD+XxjrOOUZfBSo7A6SVX6ez1zRctwJAEb6ZO/pyNnMQRGVmuhJXnSTjJsNRqNaWOhg1IjHY0REkIvnJ8d+6ZlTUsGYEGtqk012wILpol5x8PQzyWxXyWr56ULJBMWzORgmW2Y/p6OVHc8xIs2hKas7frfHaZxQZLRRbfJ7BIUzwxR2M7l4zjSEFmajPuxea1mZ4J6KlZbm4WFJOHc4sSBgyPMetfOH0xopyiRAhnWWxI0kVp0pbLHSEUNq0/Jqo5PiQgMH9F3epeH5xpX72thPP4ic5YHskr5KOT1IbkyQw==</X509Certificate> </X509Data> </KeyInfo> </Signature> </Reinf> </retornoEvento> </evento> <evento Id="ID121301475XXXXXXXXXXXXXX4585000002"> <retornoEvento> <Reinf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.reinf.esocial.gov.br/schemas/evtTotal/v2_01_02"> <evtTotal id="ID90010XXXXXXXXXX509XXXX9"> <ideEvento> <perApur>2023-10</perApur> </ideEvento> <ideContri> <tpInsc>1</tpInsc> <nrInsc>21XXXXXXXX5</nrInsc> </ideContri> <ideRecRetorno> <ideStatus> <cdRetorno>1</cdRetorno> <descRetorno>ERRO</descRetorno> <regOcorrs> <tpOcorr>1</tpOcorr> <localErroAviso> - Campo: xmlns - XPATH: /Reinf/@xmlns</localErroAviso> <codResp>MS0055</codResp> <dscResp>O campo 'xmlns' é obrigatório e não foi informado.</dscResp> </regOcorrs> </ideStatus> </ideRecRetorno> <infoRecEv> <dhRecepcao>2023-10-25T14:58:51.447</dhRecepcao> <dhProcess>2023-10-25T14:58:51.6791257-03:00</dhProcess> <tpEv>2010</tpEv> <idEv>ID1213XXXXXXXXXXX005243</idEv> <hash>+6FSHh5dXXXXXXXXXXXXuFQ5dTIXMu4=</hash> </infoRecEv> </evtTotal> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /> <Reference URI="#ID90010000000XXXXXXXXXXXXX629"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> <DigestValue>xuGXjE61AVyXXXXXXXXXXXXXXv6jU++hlBE/4=</DigestValue> </Reference> </SignedInfo> <SignatureValue>aCr6JEfE18HvGwU2tXXXXXXXXXXXXXXXXXXXXidFg305X+tCFOXOHPHT2LOP5WF6x/EGARPC5snOKFyaqpt1W0D7pkFyMHOgsB2WJnKnGGjKYW7PgMwUAC7Q/uiOuIhQmSPTTKIK/zQsEkNcf0080Wx9EEaA2o2ezEgTSrrEyxLD/Aq4+WTCTykGhlgBugtUSTcuCzoIqtD4n4c/0lQS4ZB74VJltvwC5iBftfUrJgv82luAuOo9Gt8sqq+e53qYimawA/R1fsAHzHFRKGYhrNA==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>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</X509Certificate> </X509Data> </KeyInfo> </Signature> </Reinf> </retornoEvento> </evento> </retornoEventos> </retornoLoteEventosAssincrono> </Reinf> A parte do erro que preciso corrigir inicialmente seria: <localErroAviso> - Campo: xmlns - XPATH: /Reinf/@xmlns</localErroAviso> <codResp>MS0055</codResp> <dscResp>O campo 'xmlns' é obrigatório e não foi informado.</dscResp> Gostaria de saber se alguém já enfrentou esse problema ou tem alguma sugestão sobre como corrigi-lo. Todas as informações e dicas são muito bem-vindas. Agradeço desde já pela ajuda!
-
Bom dia, No sistema que implementamos a Geração/Envio/Controle dos eventos EFD-Reinf é implantado em dois modelos em nossos clientes: 1º: Sistema desktop padrão, 2º: Sistema virtualizado em nuvem. Em ambos os casos, a assinatura A1 funciona corretamente no componente do ACBR; o A3 por motivos de segurança não funciona em sistema virtualizado em nuvem, somente funcionando em sistema desktop. Para realizar a assinatura com certificado A3, possuímos um sistema a parte, que roda fora da nuvem virtualizada, e que realiza as assinaturas. A dúvida é: Com o componente ACBReinf, é possível desvincular totalmente a assinatura dos eventos Reinf para uma assinatura em um outro componente interno? Nesse caso, o componente ACBR seria responsável pela geração dos XML e envio, todo o processamento de assinaturas deveria ser realizado por meio de outro componente interno nosso. Isso deveria funcionar para a geração do eventos periódicos, geração de eventos de lote, geração de eventos de consulta, etc...
-
Estou realizando a homologação do Reinf 2.1.2 e no evento R2099 consulta de protocolo parece estar retornando a estrutura do XML diferente dos demais eventos com isso não esta carregando as informações do evtTotal onde contem um dos dados mais importantes que é o Recibo (nrRecArqBase) no trecho a seguir da função LerRetornoEventos: if leitor.rExtrai(4, 'evtTotal') <> '' then ele não encontra o evtTotal no XML, eu tentei mudar o nível e o nome conforme olhei no XML pra ver se conseguia retornar o dado correto mas sem sucesso. Segue um exemplo da consulta de protocolo do evento R1000 onde funciona corretamente na 1ª imagem: e segue outro exemplo da consulta de protocolo do evento R2099 onde não retorna na 2º imagem: os fonte estão atualizados na data de hoje 30/09/2023 e o teste foi feito na minha aplicação e no ACBrReinf_Exemplo ambos ocorre o mesmo problema. alguém já passou por isso ?
-
Estamos utilizando o componente ACBRReinf para a geração, envio e controle de retornos dos eventos Reinf. Se for enviado um evento à EFD-REINF que possua algum tipo de erro, são retornadas ocorrências com uma mensagem de erro e com a localização do erro. Por exemplo: Na maioria das vezes as mensagem são bem explicativas, sendo fácil de analisar a origem do problema e corrigir a geração dos evento. Mas em alguns casos as mensagem da ocorrência são breves e somente com isso não é possível identificar o problema. Existe alguma documentação nas mensagens de erro que retornam da reinf? que possa ser usada de forma à facilitar a análise do problema.
-
Bom dia, Acho que há um erro nas funções de conversão tpDependenteToStr e StrToTpDependente da unit pcnConversaoReinf. O elemento "8" não existe no tipo TtpDependente: TtpDependente = ( ttdConjuge, // 1 - Cônjuge ttdUniaoEstavel, // 2 - Companheiro(a) com o(a) qual tenha filho ou viva há mais de 5 (cinco) anos ou possua declaração de união estável; ttdFilhoOuEnteado, // 3 - Filho(a) ou enteado(a); ttdIrmaoNetoBisneto, // 6 - Irmão(ã), neto(a) ou bisneto(a) sem arrimo dos pais, do(a) qual detenha a guarda judicial do(a) qual detenha a guarda judicial; ttdPaisAvoBisavo, // 9 - Pais, avós e bisavós; ttdMenorComGuarda, // 10 - Menor pobre do qual detenha a guarda judicial; ttdIncapaz, // 11 - A pessoa absolutamente incapaz, da qual seja tutor ou curador; ttdExConjuge, // 12 - Ex-cônjuge; ttdAgregadoOutros // 99 - Agregado/Outros ); O correto seria: function tpDependenteToStr(const t: TtpDependente): string; begin result := EnumeradoToStr2(t, ['1', '2', '3', '6', '9', '10', '11', '12', '99']); end; function StrToTpDependente(var ok: boolean; const s: string): TtpDependente; begin result := TtpDependente(StrToEnumerado2(ok , s, ['1', '2', '3', '6', '9', '10', '11', '12', '99'])); end;
-
Pessoal, eu tenho uma software house onde eu gero os arquivos Sintegra e Sped Fiscal/Contribuições, mas até o momento não sabia do arquivo Reinf. A minha dúvida é em relação a obrigatoriedade da Software House gerar em seu ERP. Estas informações algumas são oriundas de nota fiscal de entrada, outras de serviços prestados ou tomados e alguns dos registros são para situações específicas, nichos de negócios específicos. Poderiam me tirar esta dúvida, como vocês fazem? Geram isto em seus ERP vinculado as notas fiscais de entradas, saída, serviços ou é um cadastro a parte onde a pessoa informa os valores e gera pelo sistema? Link: https://fenacon.org.br/noticias/empresas-que-usam-maquina-de-cartao-de-credito-estao-obrigadas-a-entregar-a-efd-reinf/
-
Oi pessoal recentemente tenho recebido esse retorno do Reinf ao tentar enviar eventos, onde o retorno do webservice retorna nulo! Alguém já passou por algo parecido ? Desde ja agradeço a atenção!
-
Foi criado no dia 16/08/2022 tópico para correção do erro MS1010 ID inválido: ACBrReinf Evento R-1000 - Erro MS1010 ID inválido Conforme conversado com os consultores a correção estava certa e foi para o SVN: revision 27675 dia 06/12/2022 porem foi revertida no dia 26/12/2022 esse caso foi o mesmo do tópico: Reinf - MS1528 - O Grupo infoEFR não pode ser informado para natureza jurídica do contribuinte declarante Onde a correção aprovada subiu para o SVN dia 06/12/2022 e revertida 26/12/2022 Realizei as correções novamente, só que desta vez de uma forma diferente, ao invés de verificar se o Contribuinte é órgão publico foi verificado o tipo de documento CPF ou CNPJ, para ficar mais claro a condição. Na função que gera a chave foi adicionado o tipo de inscrição TpInsc function GerarChaveReinf(const emissao: TDateTime; const CNPJF: string; sequencial: Integer; --------> TpInsc: TtpInsc): String; desta forma em todas as units de cada evento (pcnReinfR1000.pas, pcnReinfR1050.pas, pcnReinfR1070.pas, pcnReinfR2010.pas, pcnReinfR2020.pas, pcnReinfR2030.pas, pcnReinfR2040.pas, pcnReinfR2050.pas, pcnReinfR2055.pas, pcnReinfR2060.pas, pcnReinfR2070.pas, pcnReinfR2098.pas, pcnReinfR2099.pas, pcnReinfR3010.pas, pcnReinfR4010.pas, pcnReinfR4020.pas, pcnReinfR4040.pas, pcnReinfR4080.pas, pcnReinfR4099.pas, pcnReinfR9000.pas) que usa a função foi alterada para passar o novo parâmetro GerarChaveReinf(now, self.ideContri.NrInsc, self.Sequencial, self.ideContri.TpInsc); e na função verificando esse tipo para definição de 1 ou 2 (Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF)) if TpInsc = tiCNPJ then Result := Result + IntToStr(1) else Result := Result + IntToStr(2); Verificar viabilidade da correção. Obrigado. reinf.rar
-
Exemplo do nome de arquivo que é gerado: “20230227160030-sit.xml” O componente ACBrReinf1 gera esse nome automaticamente com Data/Hora. Tem alguma propriedade que fica guardado esse nome de arquivo após a execução da Consulta? Na versão de layout anterior a 2.01.01 que era de forma síncrona sempre retornava o nome de arquivo “Reinf-sit.xml” Eu consigo pegar o Numero do recibo, numero do protocolo, etc... e com isso eu atualizo meu Banco de Dados... Só que eu quero pegar também o nome do arquivo XML que veio essas informações para que caso o usuário queira ver como realmente o XML foi retornado da Receita. Eu deixo um Label link para abrir esse XML.
-
Ao definir na propriedade TipoContribuinte o enum tcOrgaoPublico do evento R-1000 é gerado a tag infoEFR conforme código abaixo: procedure TevtInfoContri.GerarInfoEFR; begin if TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte in [tcOrgaoPublico] then begin Gerador.wGrupo('infoEFR'); Gerador.wCampo(tcStr, '', 'ideEFR', 1, 1, 1, SimNaoToStr(infoContribuinte.infoCadastro.infoEFR.ideEFR)); Gerador.wCampo(tcStr, '', 'cnpjEFR', 14, 14, 0, infoContribuinte.infoCadastro.infoEFR.cnpjEFR); Gerador.wGrupo('/infoEFR') end; end; porem na regra esta faltando outra verificação de acordo com o manual de resposta do webservice: MS1184 - O CNPJ do Ente Federativo Responsável é obrigatório se o Órgão Público {ideContri} não é o Ente Federativo Responsável e não pode ser informado caso contrário. O CNPJ informado deverá ser validado com a informação referente ao Ente Federativo Responsável (EFR) existente no cadastro do CNPJ da RFB. MS1185 - O grupo infoEFR é Obrigatório se a Natureza Jurídica = [102-3, 103-1, 105-8, 106-6, 108-2, 117-1, 118-0, 123-6, 124-4]. Não deverá ser informado nos demais casos. e conforme a mensagem adicionada no titulo: MS1528 - O Grupo infoEFR não pode ser informado para natureza jurídica do contribuinte declarante a tag não deveria ser informada por conta da validação da Natureza Jurídica. quem puder ajudar com alguma solução. Obrigado
-
Estou realizando uma integração com ACBrReinf versão 1.5.1 para Órgão Público e me deparei com o erro MS1010 - ID inválido o motivo do erro tem a ver com a validação da receita que esta no documento "Anexo II dos leiautes da EFD-Reinf - Regras de validação Versão 1.5.1" REGRA_VALIDA_ID_EVENTO "A identificação única do evento (Id) é composta por 36 caracteres, conforme disposto a seguir: IDTNNNNNNNNNNNNNNAAAAMMDDHHMMSSQQQQQ ID - Texto Fixo "ID"; T - Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF); NNNNNNNNNNNNNN - Número do CNPJ ou CPF do contribuinte - Completar com zeros à direita. No caso de pessoas jurídicas, o CNPJ informado deve conter 8 ou 14 posições de acordo com o enquadramento do contribuinte para preenchimento do campo {ideContri/nrInsc} do evento R-1000, completando-se com zeros à direita, se necessário. AAAAMMDD - Ano, mês e dia da geração do evento; HHMMSS - Hora, minuto e segundo da geração do evento; QQQQQ - Número sequencial da chave. Incrementar somente quando ocorrer geração de eventos na mesma data/hora, completando com zeros à esquerda. OBS.: No caso de pessoas jurídicas, o CNPJ informado deverá conter 8 ou 14 posições de acordo com o enquadramento do contribuinte para preenchimento do campo {ideContri/nrInsc} do evento S-1000, completando-se com zeros à direita, se necessário " O ID gerado esta com a informação incorreta da opção T - Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF); esta saindo como 2 sendo que o correto é 1 o motivo disso é o seguinte: no arquivo pcnGeradorReinf.pas linha 321 valida o tamanho da variável CNPJF: if (Length(CNPJF) = 14) then Result := Result + IntToStr(1) else Result := Result + IntToStr(2); Porem existe um regra para órgão público no campo nrInsc da tag ideContri "Informar o número de inscrição do contribuinte de acordo com o tipo de inscrição indicado no campo {tpInsc}. Se for um CNPJ deve ser informada a raiz/base de oito posições, exceto se a natureza jurídica do contribuinte declarante for de administração pública direta federal ([101-5], [104-0], [107- 4], [116-3], situação em que o campo deve ser informado com o CNPJ completo (14 posições). Validação: Se {tpInsc} for igual a [1], deve ser um número de CNPJ válido" no caso órgão público se enquadra na definição de informar apenas a raiz/base de oito posições do CNPJ assim a verificação acima é definida como 2 pois a variável CNPJF não é igual a 14 assim gerando o ID incorreto. A solução foi acrescentar nessa verificação um or com o TipoContribuinte = tcOrgaoPublico: if (Length(CNPJF) = 14) or (TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte = tcOrgaoPublico) then Result := Result + IntToStr(1) else Result := Result + IntToStr(2); desta forma o ID é gerado corretamente, anexei o arquivo pcnGeradorReinf.pas com a correção e um comentário a respeito sobre as 8 posições caso a correção seja a correta para atualizarem no repositório oficial. se tiver alguma outra sugestão podem sugerir Obrigado pcnGeradorReinf.pas
-
Olá, Fiz a adição de mais uma propriedade, agora referente ao retorna da consulta do evento R-1000, onde o mesmo possui uma tag <fimValid>, na qual não estava sendo retornada pelo componente. Segue a imagem do XML de retorno e também em anexo a unit com a alteração. pcnReinfRetConsulta.pas
-
olá, Estava realizando testes envolvendo a consulta de recibo do evento R-2055, no qual sempre estava retornando paramêtros incorretos. Analisando a unit responsável pela alimentação da propertys para a requisição ao webservice estava errada. A consulta do R-2055 foi aproveitada da consulta R-2020, entretanto o R-2020 possui 2 tipos diferentes de inscrição do tomador que seria 1=cnpj e 4 = CNO, já a consulta do R-2055 considera ou 1-CNPJ ou 2-CPF, dessa forma ocorria um retorno inválido devido ao tipo 4 (inexistente no R2055). Desta forma, criei uma nova property seguindo a mesma lógica das demais já implementadas na unit pcnReinfConsulta.pas e ajuste a geração do R-2055. Para isso foi criado a property FtpInscProd. Segue em anexo a unit com as correções. Obrigado pcnReinfConsulta.pas
-
Olá, Fiz uma correção referente a Consulta recibo do Sped Reinf. Dependendo do tipo de inscrição do Estabelecimento (tpInscEstab) ou do tomador (tpInscTomador), os valores devem ser 1 = CNPJ ou 4 = CNO. A unit pcnReinfConsulta, responsável pelo preenchimento do tpInscricao está alimentando com 2 ao invés de 4, quando este é um documento do tipo CNO. Segue em anexo 2 imagens exemplificando, e também a Unit com a correção. Link da documentação do manual do desenvolvedor (ver páginas 41 e 43) : http://sped.rfb.gov.br/arquivo/show/5801 Obrigado pcnReinfConsulta.pas
-
- reinf
- sped reinf
-
(and 3 more)
Tagged with:
-
Boa tarde pessoal. Sempre que tento gerar o arquivo para enviar um evento de exclusão, R-9000, me apresenta esse erro de Schema inválido, tanto pelo programa exemplo quanto pela aplicação aqui da empresa. Quando baixo os pacotes de XSDs de eventos para a versão 1.5.1 lá no site da EFD-REINF só tem o XSD evt9000Exclusao-v1_05_01.xsd referenciando esse evento R-9000. Não encontrei o evtExclusao-v1_05_01.xsd em nenhuma das opções de download lá do site da EFD-REINF. Alguém mais passou por esse problema?
-
Está sendo gerado o item vlrSenarSusp no lugar de vlrSenarNRet, causando erro ao gerar xml. Erro retornado: Falha na validação dos dados do evento: evtAquisicaoProdRural-v1_05_01 1871 - Element '{http://www.reinf.esocial.gov.br/schemas/evt2055AquisicaoProdRural/v1_05_01}vlrSenarSusp': This element is not expected. Expected is ( {http://www.reinf.esocial.gov.br/schemas/evt2055AquisicaoProdRural/v1_05_01}vlrSenarNRet ). Linha que causa o problema: Gerador.wCampo(tcDe2, '', 'vlrSenarSusp', 1, 14, 0, item.vlrSenarNRet); Agradeço desde já! Segue em anexo arquivo com a correção. pcnReinfR2055.pas
-
Olá, ao enviar um reinf no arquivo de retorno está com esse erro: The 'URI' attribute is invalid - The value '' is invalid according to its datatype 'AnyUri' - The actual length is less than the MinLength value. O que pode ser? Desde já agradeço.
-
Olá, tem uma situação em que esta retornando o erro na imagem em anexo. O que pode ser? Desde já agradeço.
-
Boa tarde Fiz algumas adaptações no código-fonte para habilitar o envio do Evento R-2055 - Aquisição de Produção Rural através do ACBrMonitor Plus. Verifiquei que já existia uma implementação para leitura do arquivo INI para este Evento, mas ainda faltavam alguns detalhes para funcionar corretamente. Compartilhando com vocês as alterações que fiz para enviar o evento R-2055 corretamente através leitura de arquivo INI pelo Monitor. As alterações estão localizadas entre as linhas com o texto "//28/04/2021 * Fábio *" ). 1ª Alteração: unit pcnEventosReinf function TReinfEventos.LoadFromIni(const AIniString: String): Boolean; var Ok: Boolean; begin case StringINIToTipoEvento(Ok, AIniString) of teR1000: Self.R1000.New.evtInfoContri.LerArqIni(AIniString); teR1070: Self.R1070.New.evtTabProcesso.LerArqIni(AIniString); teR2010: Self.R2010.New.evtServTom.LerArqIni(AIniString); teR2020: Self.R2020.New.evtServPrest.LerArqIni(AIniString); teR2030: Self.R2030.New.evtAssocDespRec.LerArqIni(AIniString); teR2040: Self.R2040.New.evtAssocDespRep.LerArqIni(AIniString); teR2050: Self.R2050.New.evtComProd.LerArqIni(AIniString); //28/04/2021 * Fábio * teR2055: Self.R2055.New.evtAqProd.LerArqIni(AIniString); //28/04/2021 * Fábio * teR2060: Self.R2060.New.evtCPRB.LerArqIni(AIniString); teR2070: Self.R2070.New.evtPgtosDivs.LerArqIni(AIniString); teR2098: Self.R2098.New.evtReabreEvPer.LerArqIni(AIniString); teR2099: Self.R2099.New.evtFechaEvPer.LerArqIni(AIniString); teR3010: Self.R3010.New.evtEspDesportivo.LerArqIni(AIniString); teR9000: Self.R9000.New.evtExclusao.LerArqIni(AIniString); end; Result := (GetCount > 0); end; 2ª Alteração unit pcnReinfR2055 TinfoProcCollectionItem = class(TObject) private //28/04/2021 * Fábio * FtpProc: TtpProc; //28/04/2021 * Fábio * FcodSusp: String; FvlrSenarNRet: double; FnrProc: String; FvlrRatNRet: double; FvlrCPNRet: double; public //28/04/2021 * Fábio * property tpProc: TtpProc read FtpProc write FtpProc; //28/04/2021 * Fábio * property nrProc: String read FnrProc write FnrProc; property codSusp: String read FcodSusp write FcodSusp; property vlrCPNRet: double read FvlrCPNRet write FvlrCPNRet; property vlrRatNRet: double read FvlrRatNRet write FvlrRatNRet; property vlrSenarNRet: double read FvlrSenarNRet write FvlrSenarNRet; end; 3ª Alteração unit pcnReinfR2055 function TevtAqProd.LerArqIni(const AIniString: String): Boolean; var INIRec: TMemIniFile; Ok: Boolean; sSecao, sFim, sSecaoF: String; I, J: Integer; begin Result := True; INIRec := TMemIniFile.Create(''); try LerIniArquivoOuString(AIniString, INIRec); // ******************************************** // Precisa checar se não esta faltando nada // ******************************************** with Self do begin sSecao := 'evtAqProd'; Id := INIRec.ReadString(sSecao, 'Id', ''); Sequencial := INIRec.ReadInteger(sSecao, 'Sequencial', 0); sSecao := 'ideEvento'; ideEvento.indRetif := StrToIndRetificacao(Ok, INIRec.ReadString(sSecao, 'indRetif', '1')); ideEvento.NrRecibo := INIRec.ReadString(sSecao, 'nrRecibo', EmptyStr); ideEvento.perApur := INIRec.ReadString(sSecao, 'perApur', EmptyStr); ideEvento.ProcEmi := StrToProcEmiReinf(Ok, INIRec.ReadString(sSecao, 'procEmi', '1')); ideEvento.VerProc := INIRec.ReadString(sSecao, 'verProc', EmptyStr); { Indicativo de retificação de informação enviada ao ambiente nacional do eSocial. Validação: Informação permitida apenas se perApur for anterior ao início de vigência do evento R-2055 na EFD-Reinf. Só pode ser informado se indRetif = [1]. Valores válidos: S. } ideEvento.retifS1250 := INIRec.ReadString(sSecao, 'retifS1250', EmptyStr); sSecao := 'ideContri'; ideContri.OrgaoPublico := (TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte = tcOrgaoPublico); ideContri.TpInsc := StrToTpInscricao(Ok, INIRec.ReadString(sSecao, 'tpInsc', '1')); ideContri.NrInsc := INIRec.ReadString(sSecao, 'nrInsc', EmptyStr); sSecao := 'ideEstabAdq'; FinfoAquisProd.ideEstabAdquir.tpInscAdq := StrToTpInscricao(Ok, INIRec.ReadString(sSecao, 'tpInscAdq', '1')); FinfoAquisProd.ideEstabAdquir.nrInscAdq := INIRec.ReadString(sSecao, 'nrInscAdq', EmptyStr); //28/04/2021 * Fábio * FinfoAquisProd.ideEstabAdquir.tpInscProd := StrToTpInscricao(Ok, INIRec.ReadString(sSecao, 'tpInscProd', '1')); FinfoAquisProd.ideEstabAdquir.nrInscProd := INIRec.ReadString(sSecao, 'nrInscProd', EmptyStr); FinfoAquisProd.ideEstabAdquir.indOpcCP := INIRec.ReadString(sSecao, 'indOpcCP', EmptyStr); //28/04/2021 * Fábio * with FinfoAquisProd.ideEstabAdquir do begin I := 1; while true do begin // de 1 até 3 sSecao := 'tipoCom' + IntToStrZero(I, 1); sFim := INIRec.ReadString(sSecao, 'indCom', 'FIM'); if (sFim = 'FIM') or (Length(sFim) <= 0) then break; with detAquis.New do begin indAquis := StrToDetAquis(Ok, sFim); vlrBruto := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrBruto', ''), 0); //28/04/2021 * Fábio * vlrCPDescPR := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrCPDescPR', ''), 0); vlrRatDescPR := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrRatDescPR', ''), 0); vlrSenarDesc := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrSenarDesc', ''), 0); //28/04/2021 * Fábio * J := 1; while true do begin // de 01 até 50 sSecao := 'infoProcJud' + IntToStrZero(I, 1) + IntToStrZero(J, 2); //28/04/2021 * Fábio * sFim := INIRec.ReadString(sSecao, 'tpProc', 'FIM'); //28/04/2021 * Fábio * if (sFim = 'FIM') or (Length(sFim) <= 0) then break; with infoProc.New do begin //28/04/2021 * Fábio * tpProc := StrToTpProc(Ok, sFim); //28/04/2021 * Fábio * nrProc := INIRec.ReadString(sSecao, 'nrProc', ''); codSusp := INIRec.ReadString(sSecao, 'codSusp', ''); vlrCPNRet := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrCPNRet', ''), 0); vlrRatNRet := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrRatNRet', ''), 0); vlrSenarDesc := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrSenarDesc', ''), 0); end; Inc(J); end; end; Inc(I); end; end; end; GerarXML; XML := FXML; finally INIRec.Free; end; end; Realizei os envios em Ambiente de Homologação utilizando a seguinte estrutura no arquivo INI: [evtAqProd] Id= Sequencial= [ideEvento] indRetif= perApur= tpAmb= procEmi= verProc= [ideContri] tpInsc= nrInsc= [ideEstabAdq] tpInscAdq= nrInscAdq= tpInscProd= nrInscProd= indOpcCP= [tipoCom1] indCom= vlrBruto= vlrCPDescPR= vlrRatDescPR= vlrSenarDesc= [infoProcJud101] tpProc nrProc= codSusp= vlrCPNRet= vlrRatNRet= vlrSenarDesc= Conclusão: Após estas adaptações, todos testes foram enviados com sucesso através do ACBrMonitor Plus 1.4.0.2. Espero ter contribuído de alguma forma com a comunidade ACBr. Obs: Units em Anexo para avaliação/validação pela equipe ACBr. pcnEventosReinf.pas pcnReinfR2055.pas
-
Prezados, hoje ao realizar alguns testes em produção restrita em preparação para maio, verifiquei que o evento R-9000 deixou de funcionar. Depois de um bom tempo, verifiquei que na versão do SVN 21191 foi adicionado o novo schema do evento 2055, aumentando o tamanho da array TReinfSchemaStr, porém na implementação do arquivo pcnConversaoReinf.pas, na função StringXMLToTipoEvento está fixo o tamanho da iteração com o FOR usando essa Array. A função StringXMLToTipoEvento é usada para descobrir de qual schema de evento se trata o xml que está sendo assinado pelas LIB de Assinatura de XML, logo como o evento de exclusão é o último da array, a assinatura dele passou a não ser possível mais (Provável que afete a produção também). Segue a correção, eu já fiz o envio de um r-9000 e foi normalmente. pcnConversaoReinf.pas
-
Boa tarde amigos, Preciso de um apoio pois não estou conseguindo informar mais de um evento no mesmo arquivo ".ini" para o eSocial. Exemplo quando gerou o arquivo de rubricas, desejo enviar mais de uma rubrica no mesmo arquivo, porém não deu certo. Alguém pode exemplificar a estrutura do arquivo ".ini" já com exemplo prático? (Assim posso comparar com o que eu estou gerando) Obrigado!
-
Olá pessoal! Depois de atualizar os fontes do ACBr com a Trunk2 desse dia 15/01/2020, passei a receber o erro MS0016 ao tentar transmitir os eventos do Reinf. Quando o meu aplicativo é compilado com uma versão da Trunk2 de dezembro/2019, os eventos são transmitidos normalmente. O que será que mudou e eu não percebi para ajustar minha aplicação?