nfephp-org / sped-efdreinf Goto Github PK
View Code? Open in Web Editor NEWAPI para geração e comunicação dos eventos relativos ao projeto EFD-Reinf da Receita Federal do Brasil
License: Other
API para geração e comunicação dos eventos relativos ao projeto EFD-Reinf da Receita Federal do Brasil
License: Other
Ajuste no regex dos valores permitidos para o atributo infocadastro -> classtrib
De
"pattern": "^(01|02|03|04|06|07|08|09|10|11|13|14|21|22|60|70|80|85|99)$"
Para
"pattern": "^(00|01|02|03|04|06|07|08|09|10|11|13|14|21|22|60|70|80|85|99)$"
Valor "00" é usado para limpar a base de produção restrita.
Arquivo: evtInfoContribuinte.schema
vide manual http://sped.rfb.gov.br/pagina/show/5988
Boa tarde!
Pessoal, estou precisando de ajuda, já pesquisei bastante na internet e não encontrei solução.
Ao gerar um evento R4020 estou recebendo a mensagem de erro abaixo:
Ocorreu um exceção no arquivo /home/siafc/efd-reinf-project/vendor/nfephp-org/sped-common/src/Exception/ValidatorException.php na linha:22 Erro:Este XML não é válido. Element '{http://www.reinf.esocial.gov.br/schemas/evt4020PagtoBeneficiarioPJ/v2_01_02}evtRetPJ', attribute 'id': 'ID106554026000000202310111514149,874' is not a valid value of the local atomic type.
Como corrigir este problema?
vide http://sped.rfb.gov.br/pagina/show/5988
Produção Restrita :
Endpoint Recepção (POST) : https://pre-reinf.receita.economia.gov.br/recepcao/lotes
Endpoint Consulta (GET) : https://pre-reinf.receita.economia.gov.br/consulta/lotes/{numeroProtocolo}
Documentação swagger (disponível somente em produção restrita) :
API Recepção : https://pre-reinf.receita.economia.gov.br/recepcao/swagger/index.html
API Consulta : https://pre-reinf.receita.economia.gov.br/consulta/swagger/index.html
Produção :
Endpoint Recepção (POST) : https://reinf.receita.economia.gov.br/recepcao/lotes
Endpoint Consulta (GET) : https://reinf.receita.economia.gov.br/consulta/lotes/{numeroProtocolo}
(* Atenção : As APIs de produção acima ainda não estão disponíveis para uso. Estarão disponíveis
na data a ser informada no portal do Sped)
Boa tarde.
Encontrei um possível problema ao tentar emitir um evento de retificação R-1070, estou tentando da seguinte maneira
// deve existir um evento TabProcesso para cada processo com sentença favorável ao
// declarante na redução ou suspenção de recolhimento da contribuição
$std = new \stdClass();
// $std->sequencial = 1; //Opcional se não informado será gerado automaticamente
$std->tpproc = 2; // Obrigatório 1 - Administrativo; 2 - Judicial.
$std->nrproc = '06154724520098200001'; // Obrigatório numero do processo
$std->inivalid = '2024-02'; // Obrigatório inico da validade
$std->fimvalid = '2024-04'; // Opcional não deve ser declarado a não ser na ALTERAÇÃO
$std->indautoria = 1; // Obrigatório 1 - Próprio Contribuinte 2 - Outra Entidade ou Empresa
$std->modo = 'ALT'; // Obrigatório INC-inclusao ALT-alteraçaão EXC-exclusao
// indicar somente quando for uma alteração com novo periodo de validade
$std->novavalidade = new \stdClass(); // Opcional
$std->novavalidade->inivalid = '2024-02'; // Obrigatório inicio da validade dessa nova informação
$std->novavalidade->fimvalid = '2024-04'; // Opcional não deve ser declarado o fim da validade, isso é usado em casos RAROS onde se sabe a data que o evento será modificado
// Informações de Suspensão de Exigibilidade de tributos podem existir de 1 até 50
$std->infosusp[0] = new \stdClass(); // Obrigatório
$std->infosusp[0]->codsusp = '234567890123'; // Opcional Código do Indicativo da Suspensão
$std->infosusp[0]->indsusp = '01'; // Obrigatório Indicativo de suspensão da exigibilidade:
// 01 - Liminar em Mandado de Segurança;
// 02 - Depósito Judicial do Montante Integral
// 03 - Depósito Administrativo do Montante Integral
// 04 - Antecipação de Tutela;
// 05 - Liminar em Medida Cautelar;
// 08 - Sentença em Mandado de Segurança Favorável ao Contribuinte;
// 09 - Sentença em Ação Ordinária Favorável ao Contribuinte e Confirmada pelo TRF;
// 10 - Acórdão do TRF Favorável ao Contribuinte;
// 11 - Acórdão do STJ em Recurso Especial Favorável ao Contribuinte;
// 12 - Acórdão do STF em Recurso Extraordinário Favorável ao Contribuinte;
// 13 - Sentença 1ª instância não transitada em julgado com efeito suspensivo;
// 90 - Decisão Definitiva a favor do contribuinte (Transitada em Julgado);
// 92 - Sem suspensão da exigibilidade
$std->infosusp[0]->dtdecisao = '2024-03-11'; // Obrigatório Data da decisão, sentença ou despacho administrativo
$std->infosusp[0]->inddeposito = 'S'; // Obrigatório Indicativo de Depósito do Montante Integral
// S - Sim;
// N - Não.
// Informações Complementares do Processo Judicial
$std->dadosprocjud = new \stdClass(); // Opcional
$std->dadosprocjud->ufvara = 'SP'; // Obrigatório UF da vara judicial
$std->dadosprocjud->codmunic = '3550308'; // Obrigatório codigo municipio IBGE
$std->dadosprocjud->idvara = '133'; // Obrigatório Código de Identificação da Vara
MS1194 - Em caso de alteração, deve existir registro, na tabela de processos, com o mesmo tipo, número de processo e período de validade informados no evento nas tags iniValid e fimValid do grupo alteração.
Nesse caso tanto tipo, número processo e período de validade, correspondem a chave única desse registro.
E como a inclusão do evento em questão, foi feito da seguinte maneira, acaba ocorrendo o problema pois essa chave não existe
$std = new \stdClass();
// $std->sequencial = 1; //Opcional se não informado será gerado automaticamente
$std->tpproc = 2; // Obrigatório 1 - Administrativo; 2 - Judicial.
$std->nrproc = '06154724520098200001'; // Obrigatório numero do processo
$std->inivalid = '2024-02'; // Obrigatório inico da validade
// $std->fimvalid = '2024-03'; // (Aqui mesmo inserindo o campo o sistema não adiciona esse valor ao XML)
$std->indautoria = 1; // Obrigatório 1 - Próprio Contribuinte 2 - Outra Entidade ou Empresa
$std->modo = 'INC'; // Obrigatório INC-inclusao ALT-alteraçaão EXC-exclusao
Opss
Olá,
estava olhando o config do R-1000
$config = [
'tpAmb' => 2, //tipo de ambiente 1 - Produção; 2 - Produção restrita
'verProc' => '0_1_3', //Versão do processo de emissão do evento. Informar a versão do aplicativo emissor do evento.
'eventoVersion' => '1_03_02', //versão do layout do evento
'serviceVersion' => '1_03_02',//versão do webservice
'empregador' => [
'tpInsc' => 1, //1-CNPJ, 2-CPF
'nrInsc' => '99999999', //numero do documento
'nmRazao' => 'Razao Social'
],
'transmissor' => [
'tpInsc' => 1, //1-CNPJ, 2-CPF
'nrInsc' => '99999999999999' //numero do documento
]
];
E vi que nos eventos do Reinf, não existe a figura "Empregador" e sim "Contribuinte", na configuração deveria ser contribuinte, correto?
Ao gerar um evento R-2010 e tentar transmiti-lo utilizando o método enviaLoteXmlAssincrono, está lançando uma exceção, só que estou informando o grupo correto, segue trecho do código.
$xml = Event::evtServTom($configJson, $std, $certificate)->toXml();
$axml[] = $xml;
$response = $tools->enviaLoteXmlAssincrono($tools::EVT_PERIODICOS, $axml);
Resultado:
Exception O grupo correto deve ser declarado e não pode diferirdo grupo dos eventos
Pelo que identifiquei o mapeamento dos ids no método getIdFromXml está errado.
Na classe ToolsBase o mapeamento dos grupos está da seguinte maneira
Provável falha no XSD do evento. Que diverge da documentação fornecida.
Vide campo infoRecEv, ele consta no grupo ideRecRetorno e também no grupo evtTotal no XSD, mas não ocorre na documentação.
Não estou encontrando algum guia sobre a biblioteca (EFD-ReInf em específico) ou sobre a transmissão desse evento (R-2070) em específico, não me refiro à como clonar ou fazer coisas de php/composer ou organização de projetos, mas à um "fluxo obrigatório" ou guia/pacote de informações/validações necessários para que o pacote seja validado e enviado.
Sobre o evento R-2070, vi que até a versão 1.03.02 esta biblioteca possuía o factory e schemes, mas na 1.04 ele tem somente o Fake (talvez por ter sido suspenso até o fim de 2018).
Após algumas pesquisas, vi que o fluxo poderia ser como:
(Os eventos posteriores como correção e re-envio seriam opcionais)
Boa tarde,
Sou analista judiciário e trabalho no projeto efd-reinf no Superior Tribunal Militar. Estamos utilizando esse projeto para construção das mensagens XML a serem enviadas para a Receita Federal. Recentemente, notei que parece haver um bug na alteração do evento R1000.
No arquivo https://github.com/nfephp-org/sped-efdreinf/blob/master/src/Factories/EvtInfoContri.php, na linha 88, é gerada uma exceção caso a mensagem seja ALT para evento R1000 possua o campo data final nulo. Nos nossos testes, enviamos um evento INC do R1000 passando a data inicial = '2022-04' e sem a data final. Para enviar a operação ALT de R1000 para o referido evento, precisamos enviar a data inicial = '2022-04' e sem a data final (exatamente como a original, para identificar o evento), e nos campos nova data inicial e nova data final, os valores novos, no meu exemplo, passei nova_data_inicial = '2022-04' e nova_data_final = '2022-07'.
O "if" que gera a exception citada, a meu ver, deve ser removido.
Prezados,
qual consulta ou qual método que produz esse retorno? Preciso recuperar o recibo e protocolo, mas não consigo obter esse resulta do XSD nos metodos que estou utilizando.
Aguardo, grato pelo apoio.
Não consigo verificar os retornos do web service. Alguem teria algum modelo de implementação.
Boa noite.
Ao testar a API foi disparado um erro na linha 518 informando não reconhecer o atributo "cod".
. "<sped:nrInsc>{$this->cod}</sped:nrInsc>";
Acredito que deveria ser
. "<sped:nrInsc>{$this->doc}</sped:nrInsc>";
Seria isso mesmo?
Agradeço.
Boa tarde, estou com um novo problema, montei o evento 4010, abaixo está o std que foi gerado. {
"modo": "INC",
"perapur": "2023-08",
"indretif": 1,
"tpinscestab": "1",
"nrinscestab": "26205129",
"ideBenef": {
"cpfBenef": "41242524392",
"nmBenef": "Arthur teste"
},
"idePgto": [
{
"natRend": "12001",
"infoPgto": [
{
"dtFG": "2023-08-31",
"vlrRendBruto": "10.00",
"rendIsento": [
{
"tpIsencao": "5",
"vlrIsento": "10.00"
}
]
}
]
}
]
}
Porém quando vai comparar com o schema informador ele me retorna esse erro:
[2023-10-27 20:10:37] local.ERROR: Undefined property: stdClass::$vlrrendtrib
ela representa um campo que não é obrigatório, se puder dar uma olhada agradeço.
Boa tarde Roberto. Estou desenvolvendo um programa semelhante em C# para envio do REINF, porém não estou conseguindo enviar os eventos em lote (http://www.reinf.esocial.gov.br/schemas/envioLoteEventosAssincrono/v1_00_00).
Você consegue fazer o envio de XML para esse serviço? Poderia me enviar um exemplo de XML?
Obrigado!!
Boa tarde!
Estou tentando gerar o evento R-4020 e está me retornando o erro abaixo.
Fatal error: Declaration of NFePHP\EFDReinf\Common\Soap\SoapBase::proxy($ip, $port, $user, $password) must be compatible with NFePHP\EFDReinf\Common\Soap\SoapInterface::proxy(string $ip, int $port, string $user, string $password) in C:\xampp\htdocs\efdReinfBaseTeste\vendor\nfephp-org\sped-efdreinf\src\Common\Soap\SoapCurl.php on line 24
Sabem dizer o que pode ser?
Grato!
Bom dia!
Encontrei um problema no método buildUrlConsultaAssincona que é chamado no consultarEventoAssincono.
O parâmetro {nrInsc} na URL, deve conter apenas a base do CNPJ, conforme regra do manual (Manual de Orientação do Desenvolvedor 2.4):
Ao consultar estou recebendo a seguinte mensagem:
Para correção, acredito que seja só utilizar a variável {$this->doc}, que já faz o tratamento correto
Gerar tag v1.0.2 contendo a correção da última issue fechada (issue #96).
'tpinscestab' => [
'required' => true,
'type' => 'integer',
'min' => 1,
'max' => **4**
Tools.php
Olá, Existe a possibilidade de usar somente a função de assinatura do XML?
Pois o XML será gerado de outro sistema, e o php será responsável somente pela assinatura e transmissão
Bom Dia! Estou realizando o cadastro de um novo evento R-1000 no layout V2, mas me deparei com uma situação em que a data de geração deveria ser anterior a data real e o parametro data não estava sendo levado em consideração.
Verificando na classe Common/Factory, no __construct, o parametro da $date não esta sendo atribuido, existe um comentario dizendo que é para proposito de DEBUG, seria possivel alterar isso para utilizar o parametro?
Posteriormente, na geração do id existe uma verificação da presença do date, mas sempre será nulo.
Estava implementado o evento R-2020 e estava recebendo um erro de xml por eu não estar informando a tag nrRecibo, olhando na relação do campos do reinf vi que a tag do nrRecibo só deveria ser informada caso indRetif = 2 , porém na classe que monta o xml o nrRecibo está sendo marcado como obrigatório independente da situação.
Bom dia! Desculpa o erro anterior referente ao repositório. Estou com um problema no evento R2020. Estou recebendo a seguinte mensagem de erro no momento de comparação do com xml do evento.
Este XML não é válido. Element '{http://www.reinf.esocial.gov.br/schemas/evtPrestadorServicos/v2_01_02}vlrServicos25': [facet 'pattern'] The value '1' is not accepted by the pattern '[0-9]{1,12}[,][0-9]{2}'.
Esse campo "vlrServicos25" não é um campo obrigatório, e não faço o envio dele, porém está me retornando que ele não segue o padrão correto, a baixo está os dados que estou enviando para o evento. Agradeço se tiver como me ajudar.
{
"modo": "INC",
"perapur": "2023-08",
"indretif": 1,
"tpInscEstabPrest": 1,
"nrInscEstabPrest": "26205129000120",
"tpInscTomador": "1",
"nrInscTomador": "31901174000159",
"indobra": 0,
"vlrTotalBruto": 1000,
"vlrTotalBaseRet": 1000,
"vlrTotalRetPrinc": 100,
"nfs": [
{
"serie": "BOB12",
"numDocto": "1234567890",
"dtEmissaoNF": "2023-08-01",
"vlrBruto": 1000,
"infoTpServ": [
{
"tpServico": "100000007",
"vlrBaseRet": 1000,
"vlrRetencao": 100
}
]
}
]
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.