Histórico da Página
INTEGRAÇÃO
Contexto de Negócio (Introdução)
Cada vez mais o mercado exige que as operações complexas e manipulação de dados ainda mais ágeis e com custos reduzidos. Com o RH não é diferente, por isso os pagamentos pertinentes aos autônomos que foram cadastrados no EMS, precisam ser enviados para o eSocial de forma transparente para o usuário.
Frente a esta necessidade, foi criada uma interface que possibilite automatizar o envio do arquivo S-1200/S-1210 para o eSocial, através de uma interface de integração.
Sistemas Envolvidos
HCM (módulo Folha de Pagamento): O módulo Folha de Pagamento visa efetuar os cálculos da folha de pagamento para os funcionários, mantendo o controle sobre os valores referentes aos eventos relativos a estes funcionários.
- EMS (módulo Recebimento): O módulo Recebimento visa agilizar e assegurar o recebimento dos materiais da empresa, possibilitando todos os controles necessários dos materiais.
Integração
O objetivo desta integração é permitir que a área do RH, recebam os arquivos S-1200/S-1210 de outros sistemas especializados na área, reduzindo assim o trabalho de inclusão manual de todas as informações dentro do sistema;
- Arquitetura (Tecnologia)
- Esta integração é feita por intermédio de comunicação direta com os Web Services REST (Representation State Transfer) utilizando o formato JSON (JavaScript Object Notation) de serialização de dados.
A partir do leiaute S-1.2 o S-1210 passou a integrar os dependentes no programa FP0840 na nova aba de dependentes que é acessada pelo botão eSocial, e para que o botão eSocial fique habilitado é necessário que o parâmetro Envio Movimentos Autônomos pela Folha de Pagamento (FP2160) esteja marcado mesmo que utilize a forma de integração de autônomos pelo backoffice.
eSocial - XML S-1200 - Válido apenas para a geração do Layout S-1.0 ou superior:
No bloco <itensRemun> irão constar todas as Rubricas, inclusive as de IR.
A tag <indApurIR> será gerada pela Folha e com valor fixo igual a 0.
A tag <indGuia> será gerada pela Folha de acordo com a regra de validação do layout, porém somente quando a Classificação Tributária for igual a 22 e a Inscrissão diferente de CNO.
Sistemas Envolvidos
HCM (módulo Folha de Pagamento): O módulo Folha de Pagamento visa efetuar os cálculos da folha de pagamento para os funcionários, mantendo o controle sobre os valores referentes aos eventos relativos a estes funcionários.
- EMS (módulo Recebimento): O módulo Recebimento visa agilizar e assegurar o recebimento dos materiais da empresa, possibilitando todos os controles necessários dos materiais.
Integração
O objetivo desta integração é permitir que a área do RH, recebam os
Escopo
Por intermédio desta integração será disponibilizada a seguinte funcionalidade:
A validação das informações contida nosarquivos S-1200/S-1210
antes do envio para o Governo.Fora do escopo
- Eliminação de Autônomos ou Pessoas Físicas via integração.
- Gerar a mensagem com XML para envio ao Governo - a mensagem com XML deverá ser gerada após integração no FP9824 Geração Mensagem Periódico Remuneração, uma vez que o autônomo pode ser um funcionário também do empregado e as mensagens S-1200 e S-1210 são consolidadas por CPF e por mês/ano de apuração.
Pré-requisitos instalação/implantação/utilização
- Versões mínima do TOTVS/Datasul: 12.1.27
- Estrutura de rede estável, para que haja trafego de dados sem interrupção
- Datasul devidamente configurado e serviço Rest habilitado em seu server, com acesso à internet.
Processos
O Sistema requisitante enviará as informações via Json para a interface de integração, desta forma será validado as informações contidas no Json, e caso necessário, irá cadastrar o autônomo no HCM. Caso tenha êxito na geração do registro, será retornado o status 201, com a mesma estrutura de Json confirmando sua gravação, caso contrário enviará as informações de inconsistências citadas nos próximos tópicos.
Limitações / Restrições Gerais
- Com o objetivo de manter a estrutura e a agilidade da estrutura Rest, o Web Service Rest receberá registro individual de cada pagamento (S-1210) ou remuneração (S-1200). Sendo que cada pagamento ou remuneração pode ter mais uma ou mais notas do autônomo, desde que sejam do mesmo mês/ano de apuração.
- A integração não contemplará exclusão de Pessoas Físicas (FP1440) ou Prestadores (FP0840) no HCM - para isso o usuário deverá acessar o HCM e excluir manualmente o mesmo e seus devidos relacionamentos.
Como realizar a chamada da API REST
Para realizar a integração, é necessário as seguintes informações básicas:
- Preenchimento do EndPoint da API esocialPayments;
- Utilizar a chamada do método POST e do Serviço esocialPayments;
- Preenchimento dos parâmetros obrigatórios da API;
de outros sistemas especializados na área, reduzindo assim o trabalho de inclusão manual de todas as informações dentro do sistema;
- Arquitetura (Tecnologia)
- Esta integração é feita por intermédio de comunicação direta com os Web Services REST (Representation State Transfer) utilizando o formato JSON (JavaScript Object Notation) de serialização de dados.
Escopo
Por intermédio desta integração será disponibilizada a seguinte funcionalidade:
- A validação das informações contida nos arquivos S-1200/S-1210 antes do envio para o Governo.
- Caso o Autônomo mencionado nos arquivos não estiver cadastrado no FP1440/FP0840, através da integração será cadastrado o Autônomo no FP1440/FP0840 conforme informações contidas nos arquivos.
- A integração irá gerar as tabelas intermediárias de remuneração ou de pagamento conforme arquivo integrado. Estes registros podem ser consultados no FP9825 Conferência Remuneração/Pagamentos eSocial.
Fora do escopo
- Eliminação de Autônomos ou Pessoas Físicas via integração.
- Gerar a mensagem com XML para envio ao Governo - a mensagem com XML deverá ser gerada após integração no FP9824 Geração Mensagem Periódico Remuneração, uma vez que o autônomo pode ser um funcionário também do empregado e as mensagens S-1200 e S-1210 são consolidadas por CPF e por mês/ano de apuração.
Pré-requisitos instalação/implantação/utilização
- Versões mínima do TOTVS/Datasul: 12.1.27
- Estrutura de rede estável, para que haja trafego de dados sem interrupção
- Datasul devidamente configurado e serviço Rest habilitado em seu server, com acesso à internet.
Processos
O Sistema requisitante enviará as informações via Json para a interface de integração, desta forma será validado as informações contidas no Json, e caso necessário, irá cadastrar o autônomo no HCM. Caso tenha êxito na geração do registro, será retornado o status 201, com a mesma estrutura de Json confirmando sua gravação, caso contrário enviará as informações de inconsistências citadas nos próximos tópicos.
Limitações / Restrições Gerais
- Com o objetivo de manter a estrutura e a agilidade da estrutura Rest, o Web Service Rest receberá registro individual de cada pagamento (S-1210) ou remuneração (S-1200). Sendo que cada pagamento ou remuneração pode ter mais uma ou mais notas do autônomo, desde que sejam do mesmo mês/ano de apuração.
- A integração não contemplará exclusão de Pessoas Físicas (FP1440) ou Prestadores e Dependentes (FP0840) no HCM - para isso o usuário deverá acessar o HCM e excluir manualmente o mesmo e seus devidos relacionamentos.
Como realizar a chamada da API REST
Para realizar a integração, é necessário as seguintes informações básicas:
- Preenchimento do EndPoint da API esocialPayments;
- Utilizar a chamada do método POST e do Serviço esocialPayments;
- Preenchimento dos parâmetros obrigatórios da API;
Parâmetros de Entrada:
Parâmetro | Valor de Exemplo | Obrigatório | Tipo | Valor Default | Descrição |
authorization | usuario:senha | Sim | header | autenticação é importante para o funcionamento correto da API em casos de ambientes com autenticação Http Basic. | |
content | request da api | sim | body | Estrutura json com informações para poder gerar as tabelas intermediárias de remuneração (S-1200) ou pagamento (S-1210): Propriedades Obrigatórias: Dados do S-1200 e S-1210:
Dados do S-1200:
Dados do S-1210:
|
Tipo/Naturezas de Rúbricas vinda do EMS:
Valor | Tipo/Naturezas de Rúbricas |
1 | Valor Prestação Serviço |
2 | Retenção de IRRF |
3 | Retenção de INSS |
4 | Retenção SEST |
5 | Outros Impostos (ISS e CIDE) |
6 | Adiantamento de Autônomo |
7 | Desconto de Adiantamento |
8 | Base de Cálculo IRRF |
9 | Base de Cálculo INSS |
10 | Pensão Alimenticia |
11 | Valor Pago a Expatriado |
12 | Retenção SENAT |
13 | Valor Frete Remuneração |
14 | Base Cálculo INSS Frete |
15 | Base Cálculo IRRF Frete |
16 | Retenção de INSS Frete |
17 | Pró-labore de diretores |
18 | Pró-labore de sócios |
19 | Honorário a conselheiro |
20 | Remuneração cooperado |
21 | Remuneração religioso |
22 | Dedução Dependente |
23 | Dedução Simplificada |
A rubrica enviada na integração deverá estar cadastrada no HCM no programa FP0020.
Parâmetros e Chamada do Método:
Autenticação do tipo básica.
Método POST.
{protocolo}://{host}/api/rh/v1/esocialPayments
Request da API: Exemplo do S-1200:
Dados utilizados da API
Propriedade API REST | CAMPO HCM | DESCRIÇÃO | Formato / Exemplo |
---|---|---|---|
file | Não se aplica | Tipo do evento | S-1200 |
companyId | cod_id_feder | CNPJ do estabelecimento para o qual o autônomo prestou serviço. O CNPJ somente será verificado, se o Json não tiver preenchido o companyCode e branchCode. | "12345670000134" |
companyCode | cdn_empresa | Empresa para o qual o autônomo emitiu a nota. | "123" |
branchCode | cdn_estab | Estabelecimento para o qual o autônomo emitiu a nota. | "1" |
autonomousName | nom_pessoa_fisic | Nome da pessoa física do autônomo. | "José da Silva" |
dateOfBirth | dat_nascimento | Data de nascimento do autônomo. | "1950-02-01" |
autonomousId | cod_id_feder | CPF do autônomo. | 67886374070 |
registrationNumber | cdd_func_inss | Matrícula INSS do autônomo. | 12096399850 |
perApur | Não se aplica | Data de apuração dos movimentos enviados no arquivo. | "2019-06-17" |
layout | sped_param_taf.cod_vers_layout_sped | Indica qual versão eSocial que serão gerados os XML's; | Se não enviar a tag ou enviar em branco, o HCM irá considerar como 2.5 (significa que o cliente não atualizou os programas no backoffice para o layout S-1.0). Quando não informado o leiaute, porém no sistema HCM estiver informado o layout, será apresentada a mensagem: "Leiaute não informado. No eSocial esta sendo utilizado o leiaute XXX" (layout informado no FP0560, botão eSocial, campo leiaute eSocial)". Se o leiaute informado na tag estiver divergente do sistema HCM (layout informado no FP0560, botão eSocial, campo leiaute eSocial), será emitida a mensagem: "O leiaute informado, XXX é diferente do que está cadastrado no eSocial, YYY" |
InternalId (listMov) | Não se aplica | Número do documento no HCM | "556366367" |
seriesKey | Não se aplica | Série do documento no HCM | "Des55" |
sourceId | Não se aplica | Chave do título no financeiro. | "vog-1-123456-01" |
indMV (nfoMV) | Não se aplica | Indicativo se o autônomo é múltiplo vinculo na empresa da nota. | 1 |
tpInsc (remunOutrEmpr) | Não se aplica | Tipo de inscrição. | 1 |
nrInsc | Não se aplica | Número da inscrição | 32155966288 |
codCateg | cdn_categoria | Código da categoria do autônomo perante o eSocial. | 701 |
vlrRemunOE | Não se aplica | Valor de remuneração em outra empresa referente ao mês/ano de apuração. | 3250.00 |
vlrRecolhidoOE | Não se aplica | Valor de INSS recolhido em outra empresa. | 120.00 |
tpTrib (procJudTrab) | Não se aplica | Tipo de tributação caso o autônomo tenha processo trabalhista. | 1 |
nrProcJud | Não se aplica | Número do processo jurídico. | 55779911334466550123 |
codSusp | Não se aplica | Código de suspensão do processo trabalhista | 11 |
ideDmDev (dmDev) | Não se aplica | Identificação do Demonstrativo. | "014|5663|8292" |
codCateg (dmDev) | Não se aplica | Código da categoria que o autônomo perante o eSocial. | 701 |
tpInsc (ideEstabLot) | Não se aplica | Tipo de inscrição | 1 |
nrInsc | Não se aplica | Número da inscrição | 123456790 |
codLotacao | Não se aplica | Código da lotação do autônomo | "1-002-5656-22-1'" |
qtdDiasAv | Não se aplica | Quantidade de dias aviso | 30 |
identRubr (itensRemun) | Não se aplica | Identificador da rubrica | 1 No bloco <itensRemun> vão constar todas as Rubricas, inclusive as de IR. |
codRubr | Não se aplica | Código da rubrica | 1604 |
vrRubr | Não se aplica | Valor da rubrica | 5000.00 |
ideTabRubr | Não se aplica | Identificação tabela de rubrica | 000001 |
codCBO (infoComplCont) | Não se aplica | Código do CBO | 99999 |
natAtividade | Não se aplica | Natureza da atividade do autônomo | 1 |
qtdDiasTrab | Não se aplica | Quantidade de dias trabalhados | 0 |
Request da API: Exemplo do S-1210:
Dados utilizados da API
Propriedade API REST | CAMPO HCM | DESCRIÇÃO | Formato / Exemplo |
---|---|---|---|
file | Não se aplica | Tipo do evento | S-1210 |
layout | sped_param_taf.cod_vers_layout_sped | Indica qual versão eSocial que serão gerados os XML's; | Se não enviar a tag ou enviar em branco, o HCM irá considerar como 2.5 (significa que o cliente não atualizou os programas no backoffice para o layout S-1.0). Quando não informado o leiaute, porém no sistema HCM estiver informado o layout, será apresentada a mensagem: "Leiaute não informado. No eSocial esta sendo utilizado o leiaute XXX" (layout informado no FP0560, botão eSocial, campo leiaute eSocial)". Se o leiaute informado na tag estiver divergente do sistema HCM (layout informado no FP0560, botão eSocial, campo leiaute eSocial), será emitida a mensagem: "O leiaute informado, XXX é diferente do que está cadastrado no eSocial, YYY" |
companyId | cod_id_feder | CNPJ do estabelecimento para o qual o autônomo prestou serviço. O CNPJ somente será verificado, se o Json não tiver preenchido o companyCode e branchCode. | "12345670000134" |
companyCode | cdn_empresa | Empresa para o qual o autônomo emitiu a nota. | "123" |
branchCode | cdn_estab | Estabelecimento para o qual o autônomo emitiu a nota. | "1" |
autonomousName | nom_pessoa_fisic | Nome da pessoa física do autônomo. | "José da Silva" |
dateOfBirth | dat_nascimento | Data de nascimento do autônomo. | "1950-02-01" |
autonomousId | cod_id_feder | CPF do autônomo. | 67886374070 |
registrationNumber | cdd_func_inss | Matrícula INSS do autônomo. | 12096399850 |
eSocialAutonomousCategory | cdn_categoria | Código da categoria que o autônomo perante o eSocial. | 721 |
perApur | Não se aplica | Data de apuração dos movimentos enviados no arquivo. | "2019-06-17" |
perAnt | Não se Aplica | Indica se o registro se refere a retificação para janeiro do ano posterior | true/false |
internalId (listMov) | Não se aplica | Número do documento no HCM | "556366367" |
seriesKey | Não se aplica | Série do documento no HCM | "Des55" |
sourceId | Não se aplica | Chave do título no financeiro. | "vog-1-123456-01" |
dtPgto (infoPgto) | Não se aplica | Data de pagamento | "05-01-2019" |
tpPgto | Não se aplica | Tipo de pagamento. | 1 |
perRef | Não se aplica | Período de referência. | "01-2019" |
ideDmDev | Não se aplica | Identificador do Demonstrativo. | "014|5663|8292" |
vrLiq | Não se aplica | Valor líquido. | 11223.11 |
cpfDep (infoIRComplem)(infoDep) | Não se aplica | CPF do Dependente. | 0505656987 |
dtNascto | Não se aplica | Data Nascimento Dependente | 1800-01-21 |
nome | Não se aplica | Nome Dependente | "Dependente 1" |
depIRRF | Não se aplica | Indicativo se o dependente é dependente IRRF | "S" |
tpDep | Não se aplica | Tipo Dependente (tabela 7 eSocial - Obrigatório se depIRRF = "S") | "1" |
descrDep | Não se aplica | Descrição Dependente. (Obrigatório se tpDep = "99") | "Agregado" |
tpCR (infoIRCR) | Não se aplica | Tipo Receita. | "056107" |
tpRend (dedDepen) | Não se aplica | Tipo Rendimento | 11 |
cpfDep | Não se aplica | CPF do Dependente de IRRF | 62702479006 |
vlrDedDep | Não se aplica | Valor Dedução Dependente | 120.0 |
tpRend (penAlim) | Não se aplica | Tipo Rendimento | 11 |
cpfDep | Não se aplica | CPF do Dependente de Pensão Alimentícia | 62702479006 |
vlrDedDep | Não se aplica | Valor Dedução Dependente | 223.3 |
Parâmetros de Entrada:
Parâmetro
Valor de Exemplo
Obrigatório
Valor Default
header
Estrutura json com informações para poder gerar as tabelas intermediárias de remuneração (S-1200) ou pagamento (S-1210):
Propriedades Obrigatórias:
Dados do S-1200 e S-1210:
- file : Indicativo de qual arquivo o Json se refere.
- companyId : CNPJ do estabelecimento para o qual o autônomo prestou serviço.
- companyCode: Código da Empresa a qual o autônomo prestou serviço.
- branchCode: Estabelecimento o qual o autônomo prestou serviço.
- dateOfBirth: Data de nascimento do autônomo.
- autonomousId: CPF do Autônomo.
- registrationNumber: Número da matrícula do INSS
- perApur: Período de apuração do valores contidos nos arquivos.
Dados do S-1200:
- codCateg: Código da categoria que o autônomo se enquadra dentro do eSocial.
Dados do S-1210:
- esocialAutonomousCategory: Código da categoria que o autônomo se enquadra dentro do eSocial.
Parâmetros e Chamada do Método:
Autenticação do tipo básica.
Método POST.
{protocolo}://{host}/api/rh/v1/esocialPayments
Request da API: Exemplo do S-1200:
Dados utilizados da API
"12345670000134"
Se não enviar a tag ou enviar em branco, o HCM irá considerar como 2.5 (significa que o cliente não atualizou os programas no backoffice para o layout S-1.0).
Quando não informado o leiaute, porém no sistema HCM estiver informado o layout, será apresentada a mensagem:
"Leiaute não informado. No eSocial esta sendo utilizado o leiaute XXX" (layout informado no FP0560, botão eSocial, campo leiaute eSocial)".
Se o leiaute informado na tag estiver divergente do sistema HCM (layout informado no FP0560, botão eSocial, campo leiaute eSocial), será emitida a mensagem: "O leiaute informado, XXX é diferente do que está cadastrado no eSocial, YYY"
1
120.00
1
No bloco <itensRemun> vão constar todas as Rubricas, inclusive as de IR.
Request da API: Exemplo do S-1210:
Dados utilizados da API
12096399850
Valores válidos:
1 - Documento de Arrecadação do eSocial - DAE
Será gerado pela Folha de acordo com a regra de validação do layout
Será gerado somente quando a Classificação Tributária for igual a 22 e a Inscrição diferente de CNO.
1
Situações de Erros Tratados
O envio de dados inesperados nos parâmetros de entrada da API REST pode ocasionar alguns erros. Desta forma, foram criados alguns tratamentos de erros, listados abaixo, cada um com sua respectiva mensagem e solução.
Tratamento de erros de integração Datasul HCM:
Mensagens de Pré-Validação
Erro | Mensagem | Solução | API RESPONSE | |||||||||
17006 | Parâmetro 'companyCode' não informado | Verificar se a propriedade json companyCode está preenchida no pacote enviado . |
| |||||||||
17006 | Parâmetro 'branchCode' não informado. | Verificar se a propriedade json branchCode existe e está com valor válido conforme leiaute do eSocial. |
| |||||||||
17006 | Empresa EMP e/ou Estabelecimento 100 informados como parâmetro não foram encontrados na tabela do TOTVS Datasul HCM. | Verificar se as propriedades json companyCode e branchCode estão preenchido corretamente e se os valores existem na base de dados do RH. |
| |||||||||
17006 | Parâmetro 'codCateg' da tag 'dmDev' não informado. | Verificar no json do S-1200 se a propriedade 'codCateg' filha da propriedade 'dmDev' está preenchida. |
| |||||||||
17006 | Parâmetro 'eSocialAutonomousCategory' não informado. | Verificar no json do S-1210 se a propriedade 'eSocialAutonomousCategory' está preenchida. |
| |||||||||
17006 | Não foi encontrado a categoria: 'xyz' na tabela de Categoria do eSocial. | Verificar se a categoria informada corresponde as categorias da tabela do eSocial. |
| |||||||||
17006 | Para categoria informada é obrigatório o envio da mensagem S-2300 ao eSocial , sendo assim, seu cadastro e envio devem ser realizados através da Folha de Pagamento. | Verificar se o autônomo é MV e se está cadastrado no FP1500. Algumas categorias do eSocial exige o S-2300. Segue link explicativo: e-Social - Geração do Evento S-2300 - Trabalhador sem Vínculo de Empregado |
| |||||||||
17006 | Parâmetro 'identRubr' não informado ou está com o valor igual a zero. | Verificar se a propriedade do json 'identRubr' está preenchido, esse campo é obrigatório. |
| |||||||||
17006 | Parâmetro 'qtdDiasAv' não informado ou está com o valor igual a zero. | Verificar se a propriedade do json 'qtdDiasAv' está sendo preenchido quando a classificação tributária do empregador for igual a "22". |
| |||||||||
17006 | Número da Matrícula INSS já está cadastrada para o Autônomo " 99999 | Verificar se a propriedade do json 'registrationNumber' está preenchido com o valor correto, pois na base de dados do RH já deve ter outro CPF usando a mesma Matrícula INSS |
| |||||||||
17006 | Não encontrado o Processo Judicial: 55779911334466550123, informado no parâmetro 'nrProcJud'. | Verificar se a propriedade do json 'nrProcJud' está preenchido com o valor correto, também verificar o cadastro FP0030 |
| |||||||||
56714 | Remuneração/Pagamento em período incorreto | Verificar se a propriedade do json 'perApur' está com a data que se encaixe dentro da data da 3º fase cadastrada no FP0560. |
| |||||||||
158 | Valor Dedução Dependente está diferente da tabela de IRF/INSS Geral do período | Verificar se a propriedade do json 'vrDedDep' tem o valor correspondente ao cadastrado no FP2500 por dependente. O programa dividi o valor informado no Json pelo valor cadastrado no FP2500 para chegar na quantidade de dependentes de IR. |
|
OBS: Estas mensagens de validações serão retornadas sempre que algum campo passado que seja obrigatório ou que algum campo enviado tenha sua origem de dados em outra tabela e não seja localizado na mesma ou não estejam de acordo com o leiaute do eSocial. Vale lembrar que são apenas exemplos de mensagens de erros e podendo variar o nome da propriedade enviada.
Checklist de suporte da aplicação
Itens a serem verificados durante o atendimento:
- Verificar se os pré-requisitos foram atendidos para a chamada da API;
- Verificar se na chamada da API o EndPoint, o nome do serviço e todos os campos obrigatórios foram informados;
- Verificar se o retorno da API apresenta algum erro tratado (códigos e mensagens de erro citados neste documento) e consultar a solução na mesma tabela que descreve o erro;
- Em caso de Erro não tratado, verificar se possui alguma informação de banco de dados, conexão com o servidor, clientlog, log do appServer ou algo que possa identificar a origem do problema.