Como realizar a leitura de um XML?

Maria das Graças P. Rariz Godinho
Maria das Graças P. Rariz Godinho
  • ✎ Criado em:
  • ✔ Atualizado em:

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.

Ícone em formato de nuvem azul representando o produto Contmatic Nuvem.

🎯 Pré-requisitos


 

 

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.

Trecho de XML do eSocial com anotações coloridas indicando as seções: identificação do evento, do empregador, do trabalhador e detalhamento das verbas.

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.

Tabela técnica definindo o campo indRetif (Indicativo de Retificação). Valores válidos: 1 para Arquivo original e 2 para Arquivo de retificação.

IndApuracao: Indica o tipo de apuração do cálculo. O valor 1 representa a apuração mensal.

Tabela técnica definindo o campo indApuracao (Indicativo de período de apuração). Valores válidos: 1 para Mensal e 2 para Anual (13º salário).

perApur: Indica o período de apuração da folha.

Tabela definindo o campo perApur. Informar mês/ano (AAAA-MM) se apuração mensal, ou apenas ano (AAAA) se anual. É a referência das informações.

tpAmb: Indica o tipo de ambiente de envio do evento. 

Tabela definindo o campo tpAmb (Identificação do ambiente). Valores válidos: 1 (Produção), 2 (Produção restrita), 7, 8 e 9 (Ambientes de uso interno).

procEmi: Indica o processo de emissão do evento, ou seja, se foi gerado via sistema ERP ou diretamente no portal do eSocial. 

Tabela definindo o campo procEmi (Processo de emissão do evento). Lista os valores válidos referentes ao tipo de aplicativo usado pelo empregador.

verProc: Indica a versão de processamento do sistema utilizado para envio, no caso, a versão do sistema Contmatic.

Tabela eSocial campo verProc (12), pai ideEvento. Versão do processo de emissão do evento e do aplicativo emissor.

IdeEmpregador: Grupo pai que traz as informações do empregador e seus respectivos grupos - filho. 

tpInsc: Tipo de inscrição do empregador. 

Tabela eSocial: Grupo ideEmpregador (13) e campo tpInsc (14). Define tipo de inscrição: 1-CNPJ ou 2-CPF.

nrInsc: Número de inscrição do empregador.Tabela eSocial campo nrInsc (15), pai ideEmpregador. Número de inscrição do contribuinte de acordo com o tipo (tpInsc).
IdeTrabalhador: Grupo pai de identificação do trabalhador e seu respectivo grupo filho.

cpf: Preenchimento com o CPF do trabalhador.

Tabela eSocial: Grupo ideTrabalhador (16) e campo cpfTrab (17). Número do CPF válido 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.Tabela eSocial: Grupo dmDev (41) e campo ideDmDev (42). Identificador único do demonstrativo de valores devidos.

codCateg: Preenchimento do código de categoria do trabalhador, conforme tabela 01 do eSocial.

Tabela eSocial campo codCateg (43), pai dmDev. Código da categoria do trabalhador conforme Tabela 01.

infoPerApur: Grupo pai relacionado ao período de apuração.

Tabela eSocial grupo infoPerApur (58), pai dmDev. Informações relativas ao período de apuração.

IdeEstabLot: Grupo pai relacionado à lotação tributária.

Tabela eSocial grupo ideEstabLot (59), pai infoPerApur. Identificação do estabelecimento e lotação com remuneração.

tpInsc: Tipo de inscrição do empregador, relacionado à lotação tributária.

Tabela eSocial campo tpInsc (60), pai ideEstabLot. Tipo inscrição do estabelecimento: 1-CNPJ, 3-CAEPF, 4-CNO.

nrInsc: Número de inscrição do empregador, relacionado à lotação tributária.

Tabela eSocial linha 61 campo nrInsc: Informar o número de inscrição do estabelecimento do contribuinte conforme tipo indicado.

codLotacao: Código de lotação tributária.

Tabela eSocial linha 62 campo codLotacao: Informar o código atribuído pelo empregador para a lotação tributária.

remunPerApur: Grupo pai contendo as Informações de remuneração por período de apuração.

Tabela eSocial linha 64 campo remunPerApur: Grupo com informações relativas à remuneração do trabalhador no período de apuração.

matricula: Matrícula do trabalhador determinada pela empresa.

Tabela eSocial linha 65 campo matricula: Matrícula atribuída ao trabalhador pela empresa ou órgão público.

itensRemun: As rubricas calculadas na folha de pagamento, ou seja, é o próprio holerite.

Tabela eSocial linha 67 campo itensRemun: Grupo de rubricas que compõem a remuneração do trabalhador.

codRubr: Código do evento utilizado para o cálculo da verba em folha de pagamento.

Tabela eSocial linha 68 campo codRubr: Informar código que identifica a rubrica na folha ou na Tabela de Rubricas Padrão.

IdeTabRubr: Identificador da tabela de rubricas.

Tabela eSocial linha 69 campo ideTabRubr: Preencher com o identificador da Tabela de Rubricas para a rubrica definida em codRubr.

vrRubr: Valor da verba.

Tabela eSocial linha 72 campo vrRubr: Valor total da rubrica. Validação exige que seja maior que zero.

indApurIR: Indicativo de apuração de IR.

folha_esocial_leitura_xml_24.png

 

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

Compartilhe nas redes sociais:

Esse artigo foi útil?