Resumo:
1. O artigo explica a importância de compreender a estrutura e leitura de arquivos XML no contexto do eSocial.
2. Detalhando como identificar e interpretar grupos, tags e campos, facilitando a conferência de informações e a resolução de erros entre folha de pagamento e o sistema do governo.
🎯 Pré-requisitos
- Possuir conta de relacionamento no Connectcont (link para uma nova aba);
- Efetuar o login no Contmatic nuvem (link para uma nova aba).
Todas as informações enviadas ao eSocial e à EFD-Reinf são concentradas em um arquivo XML.
O XML - Extensible Markup Language, em tradução, significa Linguagem de Marcação Estendida. Ele é um arquivo que transporta dados e informações de forma centralizada e estruturada para um outro ambiente digital, como é o caso do eSocial, por exemplo.
Um XML não é um arquivo de visualização agradável, e por esta razão, seu entendimento e interpretação tornam-se complexos. Portanto, o objetivo deste artigo é simplificar a leitura e análise de XML, para que você consiga realizar as devidas conferências.
Estrutura do XML
Para que um XML seja estruturado, é necessário que exista uma documentação origem com as instruções de preenchimento do arquivo.
No eSocial, por exemplo, essas instruções são determinadas através dos leiautes.
Para visualizar o leiaute, acesso a documentação técnica (link para uma nova aba) do eSocial e clique no leiaute mais recente.
No leiaute do eSocial, existem diversos grupos de informações que são delimitados através das tags. As tags, quando o assunto é XML, são abreviaturas de termos específicos do dia a dia operacional utilizados para armazenar determinados dados.
Exemplo: A tag IdeRubr no evento S-1010 - Tabela de Rubricas, se refere à Identificação da Rubrica. Apesar de um termo abreviado, é possível relacionar a tag com o seu significado real.
Os grupos de informações que iniciam a montagem de um XML são:
Grupo Pai: É o elemento que engloba outros subgrupos ou campos. Na hierarquia, ele está um nível acima.
- Função: Serve para organizar logicamente as informações relacionadas.
- Exemplo: No evento S-2200 (Cadastramento Inicial), o grupo trabalhador é o Pai do grupo dependente.
Grupo Filho: É o elemento que está contido dentro de um Grupo Pai. Ele detalha uma informação específica dentro do grupo principal.
- Função: Segmentar os dados. Um Grupo Pai pode ter múltiplos Grupos Filhos diferentes.
- Exemplo: Dentro do grupo remuneracao (Pai), temos o grupo itensRemun (Filho), que contém as verbas individualizadas.
Nível: Indica a profundidade do grupo ou campo na estrutura hierárquica, começando do nível 1 (raiz).
- Nível 1: O próprio evento (ex: eSocial).
- Nível 2: O evento específico (ex: evtTabRubrica).
- Nível 3 em diante: Subdivisões técnicas (ideEvento, ideEmpregador, etc.).
Descrição: Explicação, na íntegra, do significado da tag, podendo incluir muitas vezes algum reforço sobre a condição e a regra de validação para o preenchimento.
Tamanho: Define a quantidade mínima ou máxima de caracteres, sejam eles alfanuméricos ou não.
Ocorrência: Define a quantidade de vezes que um grupo ou campo pode ou deve aparecer no arquivo. É expressa em um intervalo (mínimo - máximo).
- 1-1: Obrigatório e deve ocorrer apenas uma vez.
- 0-1: Opcional, mas se ocorrer, deve ser apenas uma vez.
- 1-N: Obrigatório, podendo se repetir indefinidamente (como os itens de remuneração de um holerite).
- 0-N: Opcional, podendo se repetir várias vezes (como a lista de dependentes).
Chave: é o conjunto de campos que identifica de forma única aquele registro dentro de um grupo, impedindo duplicidade.
- No eSocial: Para uma rubrica (S-1010), a chave é composta pelo codRubr + ideTabRubr + IniValid + FimValid
Condição: Refere-se à obrigatoriedade do preenchimento de um campo ou grupo baseada em uma regra lógica.
- O (Obrigatório): Sempre deve ser preenchido.
- N (Não Obrigatório): Preenchimento opcional.
-
OC (Obrigatório Condicional): Torna-se obrigatório apenas se uma condição anterior for atendida.
-
Exemplo: O grupo aprendiz no S-2200 só é obrigatório se o campo tpContr (Tipo de Contrato) indicar que o funcionário é um aprendiz.
-
Leitura de um XML na prática:
O entendimento do XML se torna mais simples quando observado com calma e com atenção aos detalhes. Portanto, iremos destrinchar algumas informações de um XML para melhor compreensão.
Acima, foi relacionado parte do XML de envio do evento S-1200 - Remuneração de Trabalhador Vinculado ao RGPS. Entenda como são divididas as tags, informações e valores:
- eSocial: Sempre o primeiro grupo pai do XML do eSocial. Junto a essa tag, existe um link interno denominando de qual evento se trata e em qual leiaute do eSocial ele está sendo enviado.
- evtRemunID: É o número de identificação do evento de remuneração.
A partir de agora, vêm os grupos - pai trazendo um montante específico de informações:
IdeEvento: Grupo pai que trata a identificação do evento e seus respectivos grupos - filho:
IndRetif: Indica se o evento é de inclusão (primeiro envio) ou de retificação (está sendo enviado novamente). No XML de exemplo, o valor 1 representa um evento de inclusão.
IndApuracao: Indica o tipo de apuração do cálculo. O valor 1 representa a apuração mensal.
perApur: Indica o período de apuração da folha.
tpAmb: Indica o tipo de ambiente de envio do evento.
procEmi: Indica o processo de emissão do evento, ou seja, se foi gerado via sistema ERP ou diretamente no portal do eSocial.
verProc: Indica a versão de processamento do sistema utilizado para envio, no caso, a versão do sistema Contmatic.
IdeEmpregador: Grupo pai que traz as informações do empregador e seus respectivos grupos - filho.
tpInsc: Tipo de inscrição do empregador.
nrInsc: Número de inscrição do empregador.
IdeTrabalhador: Grupo pai de identificação do trabalhador e seu respectivo grupo filho.
cpf: Preenchimento com o CPF do trabalhador.
dmDev: Grupo demonstrativo de valores devidos, se refere ao escopo de cálculo da folha de pagamento, e seus respectivos grupos - filho.
IdeDmDev: Código interno com o tipo de cálculo de folha.
codCateg: Preenchimento do código de categoria do trabalhador, conforme tabela 01 do eSocial.
infoPerApur: Grupo pai relacionado ao período de apuração.
IdeEstabLot: Grupo pai relacionado à lotação tributária.
tpInsc: Tipo de inscrição do empregador, relacionado à lotação tributária.
nrInsc: Número de inscrição do empregador, relacionado à lotação tributária.
codLotacao: Código de lotação tributária.
remunPerApur: Grupo pai contendo as Informações de remuneração por período de apuração.
matricula: Matrícula do trabalhador determinada pela empresa.
itensRemun: As rubricas calculadas na folha de pagamento, ou seja, é o próprio holerite.
codRubr: Código do evento utilizado para o cálculo da verba em folha de pagamento.
IdeTabRubr: Identificador da tabela de rubricas.
vrRubr: Valor da verba.
indApurIR: Indicativo de apuração de IR.
Observe que o eSocial possui um detalhamento de cada uma das tags dentro do leiaute, facilitando a leitura e o entendimento delas.
Desta forma, a interpretação de um arquivo XML se torna mais simples, e consequentemente as conferência entre portal do eSocial e folha de pagamento também.
Qual a importância de compreender as informações do XML?
Saber ler um XML é essencial porque ele funciona como a tradução real de tudo o que você faz dentro do sistema Contmatic. Quando o eSocial retorna um erro, entender a estrutura dessas informações permite que você identifique exatamente qual campo ou regra foi descumprida, economizando tempo e evitando o retrabalho de procurar falhas sem saber por onde começar.
É a maneira mais rápida de garantir que o que você calculou na folha de pagamento foi exatamente o que o governo recebeu. Além disso, torna-se mais efetivo analisar uma reprovação de algum evento do eSocial. Pois a plataforma analisa o XML, se você fizer o mesmo, a garantia de correção será ainda mais.
Caso você ainda possua dúvidas sobre como realizar a leitura de um XML, acesse o vídeo do canal Autoatendimento Contmatic.
3 - Introdução à leitura do XML (link para uma nova aba)
Relativo a