O trabalho da TecnoSpeed no EFD-Reinf é com sua mensageria, realizando a geração do XML a partir do TX2 (nosso padrão de arquivos de integração) e facilitando na recepção do retorno dos eventos trazendo de uma forma mais clara (e parseada) o retorno da receita.
É possível utilizar o EFD-Reinf através de uma API, utilizando nossas rotas para fazer todo o processo de envio e autorização dos eventos.
Nos próximos passos iremos demonstrar a melhor forma de realizar todo o fluxo do EFD-Reinf,utilizando nossa API!
- Criando TecnoAccount
- Ferramenta Auxiliar (Postman)
- Montar Requisição
- Fluxo Ideal de Emissão
- Como gerar Arquivo de Integração
- Enviar Evento
- Consultar Evento
- Verificar Ocorrências
- Correção de Informações
- Rotas da versão 2.0
Criando Tecnoaccount
O primeiro passo, é realizar a criação da sua Conta TecnoSpeed. Ela permite gerenciar as configurações e ferramentas para acessar os nossos produtos e serviços em um único lugar, de forma simples e fácil.
Utilizando a conta
Após se cadastrar, você poderá visualizar o seu Token. Juntamente com o seu CNPJ ou CPF, este Token será utilizado para se autenticar na maioria de nossos serviços.
O Token juntamente com o CNPJ ou CPF será utilizado no método ConfigurarSoftwareHouse, onde você deve passar ambos como parâmetro, eles também servem para autenticar a requisição caso utilize nossa API para o envio das informações.
Acesse a sua Conta TecnoSpeed >
Ferramenta Auxiliar (Postman)
Todos os exemplos da utilização da API foram produzidos e testados através do Postman, uma ferramenta que permite realizar requisições de uma forma mais visível, facilitando assim o entendimento das rotinas.
O Postman pode ser baixado e instalado como uma aplicação desktop ou adicionado como uma aplicação do Google Chrome.
Importar a Coleção de Requisições
Após abrir o aplicativo, para importar uma coleção de requisições, basta clicar no botão "Import", no canto esquerdo da barra superior, selecionar a opção "Import From Link", colar o endereço abaixo e clicar novamente no botão "Import".
Endereço da coleção de requisições:
Coleção de Requisições v2 - 2.1
Importar a Coleção de Requisições
O Postman possui uma funcionalidade que permite visualizar uma requisição em algumas linguagens. Com a requisição aberta, basta clicar no botão "Code", no canto direito da tela, conforme é mostrado na imagem abaixo.
Após isso, será aberta uma janela com um trecho de código correspondente àquela requisição. Para alterar a linguagem, basta clicar na seta apontada para baixo, no canto superior esquerdo da janela, e selecionar a linguagem desejada.
Como Montar uma Requisição
Com a API do EFD-Reinf, nós iremos usar apenas 2 tipos de requisições, as do tipo POST e as de tipo GET.
As requisições do tipo POST servem, nesse caso, para o envio das informações para nossa api, para que possamos realizar os tratamentos necessários e a comunicação com a receita.
Já as requisições do tipo GET servem, nesse caso, para a consulta de informações, que no nosso caso será referente aos eventos enviados para a receita.
Montando a URL
A URL sempre será no padrão UrlRaiz + rota + parâmetros, sem contar com o cabeçalho da requisição (Headers) e o Body (quando necessário).
A URL raiz do eSocal é: https://api.tecnospeed.com.br/reinf/v2/evento/ e as rotas são:
Cada rota tem suas especificidades entre parâmetros e body porém, todas possuem os mesmos Headers.
Cabeçalhos de Requisições
Para a comunicação com a API do EFD-Reinf você irá usar os mesmo headers em todas as requisições, são eles:
Nome | Descrição | Exemplo |
empregador | CNPJ do empregador | 29062609000177 |
autorization | Parâmetro token obtido na rota /auth, deve ser informado como um Bearer Token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiIyYjk5YzJlZC01NzFl |
O token utilizado é o gerado através da ContaTecnoSpeed
Body
O body das nossas requisições serão sempre do tipo text, facilitando dessa forma a geração dos arquivos de integração.
Fluxo Ideal de Emissão
Ao utilizar a API da TecnoSpeed, o fluxo de emissão acaba ficando bem mais curto. Após realizar o cadastro do empregador e do certificado em nosso portal, você precisará gerar o arquivos de integração (tx2), utilizar a rota de envio e após isso apenas consultar o evento para verificar o status.
Quando realizar o envio de algum evento, você vai receber um id de lote, que é o identificador único desse lote na em nossa base.
E com esse id de lote que você poderá realizar as consultar e verificar o recibo (em caso de evento autorizado) ou as ocorrências (no caso de eventos rejeitados).
Com a consulta dos eventos autorizados você receberá o retorno dos eventos totalizadores podendo assim verificar se todas as informações enviadas estão corretas.
Como Gerar o Arquivo de Integração
A TecnoSpeed criou um arquivo único de integração (tx2), onde as mudanças de leiaute na receita influencia de forma menos impactante no momento do desenvolvimento, evitando retrabalho e agilizando as atualizações entre versões de leiaute da receita
Existem algumas boas praticas na geração do tx2 que a TecnoSpeed recomenda, para o EFD-Reinf e indispensável colocar todos os valores monetários separados apenas pelo decimal e com a virgula "," .
A geração do arquivo se torna bem simples, sendo necessário seguir as regras da receita e realizar o preenchimento com as informações dos clientes..
Dicionário de Dados
Para gerar o arquivo de integração utilizando um arquivo TX2, é necessário seguir o Dicionário de Dados. Aqui nós veremos como ler as colunas deste dicionário, como iniciar e concluir um arquivo e como informar os grupos que podem se repetir.
O Dicionário de dados é uma tabela com os campos e algumas informações sobre cada campo. A tabela abaixo exemplifica o que significa cada coluna do dicionário.
Coluna | Função |
# | Identificador do campo, é utilizado na montagem do nome do campo no tx2. |
Registro/Campo | Nome do campo |
Registro Pai | Registro que identifica a hierarquia do campo em questão |
Tam | Tamanho máximo que o campo pode possuir |
Ocor | Ocorrência do campo/bloco, identifica os campos e blocos que são obrigatório ou não e quais podem ter múltiplas ocorrências. |
Desc | Descrição do campo e validação que pode ser aplicadas no mesmo. |
O nome do campo do Tx2 seria a junção do Registro/Campo_#, exemplo tpAmb_4.
Inicializando e Finalizando o arquivo de integração
Para indicar o início e o fim dos dados da nota, é necessário utilizar a o comando INCLUIRRXXXX no começo e o comando SALVARRXXXX no final da inclusão dos campos. Entre estes comandos, os campos devem ser incluídos seguindo o formato exemplificado abaixo.
O XXXX é referente ao evento que está enviando, por exemplo, ao enviar o evento R-1000 você irá informar: INCLUIRR1000 e SALVARR1000
Exemplo da estrutura em TX2:
INCLUIRR1000
tpAmb_4=2
procEmi_5=1
verProc_6=1.0
tpInsc_8=1
...
SALVARR1000
Informando os Grupos que podem se repetir
Para indicar o início e o fim dos grupos que podem se repetir, é necessário utilizar a o comando INCLUIR(NOMEDOGRUPO) no começo e o comando SALVAR(NOMEDOGRUPO) no final do grupo. Entre estes comandos, os campos devem ser incluídos seguindo o formato exemplificado abaixo.
O (NOMEDOGRUPO) é referente ao grupo que vou repetir, por exemplo se terei varias ocorrencias do grupo SOFTHOUSE_27 eu colocarei: INCLUIRSOFTHOUSE_27 e SALVARSOFTHOUSE_27
Exemplo da estrutura em TX2:
INCLUIRSOFTHOUSE_27
cnpjSoftHouse_28=
nmRazao_29=
nmCont_30=
telefone_31=
email_32=
SALVARSOFTHOUSE_27
INCLUIRSOFTHOUSE_27
cnpjSoftHouse_28=
nmRazao_29=
nmCont_30=
telefone_31=
email_32=
SALVARSOFTHOUSE_27
Além disso tudo, no começo do lote, as primeiras informações devem ser:
cpfcnpjtransmissor=29062609000177
cpfcnpjempregador=08187168
versaomanual=2.1.02
ambiente=2
Todas essas informações devem obrigatoriamente estar preenchidas em todas as requisições.
Enviar Evento
Para realizar envio do evento para a Receita é necessário possuir o tx2 dos eventos gerados e o cadastro do empregador e do certificado em nosso portal.
Com essas informações basta gerar a requisição de envio utilizando a rota enviar/tx2 e armazenar o id de lote retornado por essa requisição. Essa rota, faz a geração do XML a assinatura e envio para da receita.
Consultar Evento
Com a consulta dos eventos é possível verificar o retorno da receita bem como o XML enviado e o XML de retorno.
A forma mais comum de consultar os eventos é utilizando o Id de lote (que é retornado no envio do evento), também é possível consultar os eventos através do id do evento e do recibo. Veja a diferença deles em nosso post!
A consulta permite também que você verifique o retorno dos eventos totalizadores:
Para recepcionar os seus valores de forma mais fácil, a TecnoSpeed parseia os dados do evento, todo o retorno vem em formato json para facilitar a navegação entre as informações do evento.
Verificar Ocorrências
Quando você receber o retorno da consulta do lote é possível que ele tenha retornado com ocorrências, essas ocorrências, indicam erros no arquivo, tais erros podem ser corrigidos para que o lote seja enviado novamente.
Existem 2 tipos de ocorrências, as ocorrências do lote e do evento.
Ocorrências no Lote
Ocorrências no lote são geradas devido a alguma falha na comunicação ou erro no lote como um todo, não envolve informações dos eventos contidos no lote.
Ocorrências do Evento
Já as ocorrências no evento são geradas devido a algum erro nas informações enviadas, desde regra de negocio da empresa até a informação incorreta de algum valor que a receita consiga consultar. Você pode verificar todos os códigos de retorno da receita em nosso post.
Correção de Informações
No EFD-Reinf é possível realizar a correção de informações já enviadas e a exclusão de eventos que foram enviados erroneamente. Para isso temos as alterações e exclusões dos eventos. Eles são diferentes para os eventos iniciais e de tabela para com os demais eventos.
Alteração Eventos R-1000 e R-1070
Para realizar uma retificação dos eventos R-1000 e R-1070 é necessário utilizar a Tag ALTERAR no lugar da Tag INCLUIR, conforme exemplo de ambos os eventos.
É importante lembrar que os campos de identificação devem ser enviado igual ao do evento que foi previamente autorizado. Os campos de identificação são os campos que não podem se repetir em mais de um evento, geralmente são os primeiros 3 grupo e estão identificados com as 3 tags, INCLUIR, ALTERAR e EXCLUIR.
Exemplo:
Para alterar a data de validade desses eventos é necessário informar os campos:
- R-1000
- iniValid_36
- fimValid_37
- R-1070
- iniValid_28
- fimValid_29
Exemplo
Se você enviar o seguinte arquivo:
INCLUIRR1000
tpAmb_4=2
procEmi_5=1
verProc_6=1.0
tpInsc_8=1
nrInsc_9=08187168
iniValid_13=2017-10
fimValid_14=
classTrib_16=01
indEscrituracao_17=0
indDesoneracao_18=1
indAcordoIsenMulta_19=0
indSitPJ_20=0
nmCtt_22=Nome do Contato Teste
cpfCtt_23=12345678909
foneFixo_24=1123452345
foneCel_25=
email_26=
ideEFR_34=
cnpjEFR_35=
INCLUIRSOFTHOUSE_27
cnpjSoftHouse_28=26764821000198
nmRazao_29=Nome Razao Teste
nmCont_30=Nome Teste
telefone_31=1234567897
email_32=email.teste@gmail.com
SALVARSOFTHOUSE_27
SALVARR1000
E precisar incluir ou alterar as datas de validade do mesmo, você irá enviar o arquivo:
ALTERARR1000
tpAmb_4=2
procEmi_5=1
verProc_6=1.0
tpInsc_8=1
nrInsc_9=08187168
iniValid_13=2017-10
fimValid_14=
classTrib_16=01
indEscrituracao_17=0
indDesoneracao_18=1
indAcordoIsenMulta_19=0
indSitPJ_20=0
nmCtt_22=Nome do Contato Teste
cpfCtt_23=12345678909
foneFixo_24=1123452345
foneCel_25=
email_26=
ideEFR_34=
cnpjEFR_35=
INCLUIRSOFTHOUSE_27
cnpjSoftHouse_28=26764821000198
nmRazao_29=Nome Razao Teste
nmCont_30=Nome Teste
telefone_31=1234567897
email_32=eamil.teste@gmail.com
SALVARSOFTHOUSE_27
iniValid_36=2017-09
fimValid_37=2017-11
SALVARR1000
*Neste exemplo os campos: tpAmb_4, procEmi_5, verProc_6, tpInsc_8, nrInsc_9, iniValid_13, fimValid_14 são utilizados para a identificação do evento pela receita, logo, devem ser iguais ao evento autorizado.
Caso precisa apenas alterar alguma informação, como o classTrib_16 você pode enviar o arquivo da seguinte forma:
ALTERARR1000
tpAmb_4=2
procEmi_5=1
verProc_6=1.0
tpInsc_8=1
nrInsc_9=08187168
iniValid_13=2017-10
fimValid_14=
classTrib_16=11
indEscrituracao_17=0
indDesoneracao_18=1
indAcordoIsenMulta_19=0
indSitPJ_20=0
nmCtt_22=Nome do Contato Teste
cpfCtt_23=12345678909
foneFixo_24=1123452345
foneCel_25=
email_26=
ideEFR_34=
cnpjEFR_35=
INCLUIRSOFTHOUSE_27
cnpjSoftHouse_28=26764821000198
nmRazao_29=Nome Razao Teste
nmCont_30=Nome Teste
telefone_31=1234567897
email_32=eamil.teste@gmail.com
SALVARSOFTHOUSE_27
SALVARR1000
Alteração Eventos R-2010 a R-2060 e R-3010
Para os eventos periódicos e não periódicos é necessário enviar um novo evento com as alterações preenchendo os campos indRetif_4 e nrRecibo_5.
O campo indRetif_4 deve ir com o valor 2, indicando ser uma retificação. O campo nrRecibo_5 deverá conter o número de recibo do evento autorizado que será retificado.
Exemplo
Regras a considerar para a geração do Tx2
INCLUIRR2040
indRetif_4=2
nrRecibo_5=127309-08-2010-1809-128409
perApur_6=2017-11
tpAmb_7=2
procEmi_8=1
verProc_9=1.0
tpInsc_11=1
nrInsc_12=08187168
tpInscEstab_14=1
nrInscEstab_15=29062609000177
INCLUIRRECURSOSREP_16
cnpjAssocDesp_17=26764821000198
vlrTotalRec_18=100,00
vlrTotalRet_19=50,00
vlrTotalNRet_20=
INCLUIRINFOPROC_31
tpProc_21=
nrProc_22=
codSusp_23=
vlrNRet_29=
SALVARINFOPROC_31
INCLUIRINFORECURSO_25
tpRepasse_26=5
vlrBruto_27=100,00
vlrRetApur_28=50,00
descRecurso_30=Teste Evento
SALVARINFORECURSO_25
SALVARRECURSOSREP_16
SALVARR2040
Exclusão Eventos R-1000 e R-1070
Para realizar uma exclusão dos eventos R-1000 e R-1070 é necessário utilizar a Tag EXCLUIR no lugar da Tag INCLUIR, conforme exemplo de ambos os eventos.
Exemplo:
EXCLUIRR1000
tpAmb_4=2
procEmi_5=1
verProc_6=1.0
tpInsc_8=1
nrInsc_9=08187168
iniValid_13=2017-10
fimValid_14=
SALVARR1000
Onde você estará informando apenas os dados de localização do evento. Esses dados devem ser os mesmo do arquivo que foi autorizado.
Exclusão Eventos R-2010 a R-2060 e R-3010
Para os eventos periódicos e não periódicos é necessário enviar o evento R-9000 - Exclusão de Eventos.
Além disso tudo, no começo do lote, as primeiras informações devem ser:
cpfcnpjtransmissor=29062609000177
cpfcnpjempregador=08187168
versaomanual=2.1.02
ambiente=2
Todas essas informações devem obrigatoriamente estar preenchidas em todas as requisições.
Comentários
0 comentário
Por favor, entre para comentar.