Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

CONTEÚDO

  1. Visão Geral
  2. Menu
  3. Integração
  4. Atualização/Dicionário
  5. Informações Técnicas APIs
  6. Vídeos
  7. Documentos Relacionados
  8. Vídeos

...

Poderá ser enviado dessa forma

[
  {
    "matricula": "0101000002",
    "motivo": "004",
    "inicio": "2024-08-01",
    "fim": "2024-08-10",
    "cod_interno": "01.01.000002.001",
    "operation": "DEL"
  }
]

Ou enviar apenas o código interno e a operação

 [
  {
    "cod_interno": "01.01.000002.001",
    "operation": "DEL"
  }
]

Retorno do código unique e do subunique de processamento retornado pela Ahgora

Totvs custom tabs box
tabs1.Visão Geral,2.Menu,3.Integração,4.Atualização/Dicionário,5.Informações Técnicas - APIs,6.Documentos Relacionados,75.Vídeos
idsvisao,menu,naveg,dicionario,tech,doc,vídeos
Totvs custom tabs box items
defaultyes
referenciavisao

Desenvolvimento da interface no POUI e das APIs, convergente nas 3 linhas para realizar o controle e gestão dos períodos onde foram retificados em Janeiro do ano (infoIRComplem/perAnt) .

Importante

Requisito para a rotina funcionar:


Totvs custom tabs box items
defaultno
referenciamenu
Totvs custom tabs box items
defaultno
referencianaveg
Totvs custom tabs box items
defaultno
referenciamenudicionario

Image Added

Totvs custom tabs box items
defaultno
referenciatechnaveg

Ao acessar o novo menu criado, abre-se uma nova tela.

Nessa nova tela, serão exibidos os funcionários que tiveram evento S-1210 transmitidos ao governo no ano anterior ao ano informado no parâmetro Ano Retificação que deve ser informado.


Image Added

No parâmetro Ano Retificação, deve ser informado o ano que que será gerado o evento S-1210 com retificação de períodos anteriores, por exemplo ao informar Ano Retificação 2026, serão listados funcionários que tiveram evento S-1210 transmitidos ao governo no ano de 2025 que possuam informações complementares (dedução dependente, pensão alimentícia, previdência privada ou despesas médicas/reembolsos) e que seja necessário fazer a retificação em Janeiro de 2026 no bloco <perAnt> conforme prevê o leiaute S-1.3.


O parâmetro CPF é opcional.

O botão aplicar filtros só ficará habilitado após informar o parâmetro Ano Retificação que deve ser no formado de 4 dígitos e maior ou igual a 2026 conforme o exemplo abaixo:

Image Added

Na lista, são exibidas as seguintes colunas: CPF, Nome, Tipo, Meses Retificados/a Retificar em XXXX e o botão Editar (detalhado mais adiante neste documento).

O campo Tipo apresenta as seguintes classificações:

  • Funcionário – Exibe apenas funcionários.

  • Funcionário/Prestador – Refere-se a funcionários que também possuem registro como prestador no programa FP2160.

  • Prestador – Prestadores com registro no programa FP2160.

  • Prestador – Outros Sistemas – Prestadores integrados de outros sistemas ou módulos, como, por exemplo, BackOffice.

⚠️ Observação: Para os casos classificados como Prestador – Outros Sistemas, só será possível consultar os meses a serem retificados. A definição dos meses a serem retificados deve ser realizada no programa CD2014.


Exemplo informando os parâmetros Ano Retificação e CPF:


Image Added

No botão Filtros Avançados é possível informar o Estabelecimento além do Ano Retificação e CPF, porém o Ano Retificação é obrigatório.


Image Added


Image Added


Para cada registro da lista de funcionários está disponível o botão Editar, com ícone de um lápis, onde será possível informar quais meses serão retificados.

Image Added

Ao clicar no botão Editar, a seguinte tela será exibida:

  • Somente estarão habilitados os meses em que o funcionário possui o evento S-1210 transmitido ao governo.

Image Added


Ao selecionar os meses desejados, o sistema registrará os períodos que deverão ser retificados.

Image Added

Image Added


Exemplos de situações em que será necessário fazer retificações:

  • Quando for necessário alterar o CPF do beneficiário da pensão alimentícia, por exemplo, em situações em que anteriormente era informado ao eSocial o CPF do responsável, mas no processo judicial consta o CPF do alimentado:
    • Anteriormente, era obrigatório informar o nome e CPF do responsável, por fins de líquido bancário, onde o depósito é realizado em sua conta.
    • Com a alteração implementada no programa FP1740 - Manutenção Beneficiários Pensão Alimentícia, passou a ser possível informar o responsável pelo recebimento da pensão (nesse caso, o responsável) apenas para fins de líquido bancário.
    • Já para o eSocial, será considerado o CPF do alimentado.

Exemplo:

Image Added

Image Added

Gerou o S-1210 dos meses de 06/2025 a 09/2025 com a informação incorreta no bloco <penAlim>

Image Added


Para corrigir a informação retroativamente, deve ser realizado os seguintes procedimentos em Janeiro de 2026.

Antes do cálculo da folha, deve ser alterado o programa FP1740 da seguinte forma:

Deve ser criada uma nova pessoa física no programa FP1440 com os dados do pensionista 

Image Added

Informar o código da pessoa física no programa FP1740 

Image Added

Informar o nome e CPF do responsável na aba Forma Pagt quadro Responsável para Depósito Bancário

Image Added

Image Added

No programa FP6100 ficará dessa forma:


Marcar na nova tela os meses que deseja retificar as informações no evento S-1210, por exemplo , agosto e setembro de 2025

Image Added


Após o cálculo da folha, gerar o evento S-1210 de Janeiro de 2026 onde serão gerados os blocos de <perAnt> com a informação do CPF ajustado

Image Added


Outra situação em que as informações do evento S-1210 podem ser retificadas é para os casos em que algum valor de informações complementares (enviado no S-1210, no bloco infoIRComplem) estejam diferentes do que foi tramitado na folha de pagamento, cujo o ajuste de valor seja necessário somente nas informações complementares do IR, e não haja necessidade de ajustes e retificação do S-1200.

Exemplo: O valor de despesas médicas do titular tramitado na folha de pagamento de Mai/2025, com pagamento em Jun/2025 do funcionário foi de R$50,00, porém no prgorama FP9912, para o mês de pagamento Jun/2025 está informado um valor de R$ 40,00, no evento S-1210 de Jun/2025, no bloco infoIRComplem foi enviado valor de  R$40,00 como despesas médicas do titular, nesse caso pode ser realizado o ajuste  e realizado a retificação em Jan/2026.


Para funcionários desligados e que seja necessária a retificação do evento S-1210 o processo deve ser feito da seguinte forma:

  • Na nova tela, marcar os meses que deseja retificar;
  • Corrigir a informação no produto, ou seja, alterar o FP1740 ou FP9912 por exemplo;
  • Executar somente o programa FR9824 para gerar o S-1210 com os blocos de <perAnt>

Em relação à tag <nrRec1210Orig>, o conteúdo varia conforme a forma de integração utilizada:

  • Middleware: é preenchida diretamente com o número do recibo do evento S-1210 de origem.

  • TAF: é preenchida inicialmente com o número da mensagem de origem do evento S-1210. O TAF então realiza a conversão dessa informação para o número do recibo, que é transmitido ao governo.

Objetivo: Busca dos dados para listagem dos afastamentos excluídos e envio dos afastamentos excluídos selecionados para o back-end.

Tipo de requisição: GET/POST

Endpoint: /api/rh/v1/ahgora/afastamentos/exclusao

Get:

Query Params:

Totvs custom tabs box items
defaultno
referenciatech

Informações Técnicas da API

Este detalhamento tem como objetivo registrar os endpoints da interface da integração da tela desenvolvida utilizando PO-UI.


Deck of Cards
idIntegracaoAhgora
Card
idIntegAhgoraLista
labelIntegração Funcionário

Objetivo: Busca dos dados para listagem dos funcionários e envio dos funcionários selecionados para o back-end.

Importante: 

Caso utilize proxy reverso na configuração do servidor, deve ser adicionada a entrada na configuração do proxy reverso:

<LocationMatch "^/api/rh/v1/RetifPerAnt/">

    SecRuleRemoveById 911100

    SecRuleRemoveById 920420

</LocationMatch>



Tipo de requisição: GET/PUT

Endpoint: /api/rh/v1/RefificaPerAnt


Get:

Query Params:

Nome

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

Sim

1

pageSize

Tamanho da página

number

Sim

20

yearRectif

Ano retificação

number

Sim

Maior ou igual a 2026

registrationNumber

CPF

number

Não

59303411099

branchCode

Filial (Multi Valores separados por vírgula)

string

Não

“D MG 01,D MG 02”


Estrutura de Retorno:

Campo

Tipo

Exemplo

id (obrigatório)

string

"2026-59303411099"

yearRectif(obrigatório)

number

2026

companyCode

string

"1"

branchCode(obrigatório)

string

“02”

type

string

"Funcionário" ou "Prestador" ou "Funcionário/Prestador"

registrationNumber

string

"59303411099"

name

string

"Nome do funcionário"

enableMonths

array

[1,5,6,7,9,12]

Months

array

[5,9,12]


Exemplo de Requisição:

GET: api/rh/v1/RefificaPerAnt?page=1&pageSize=20&yearRectif=2026

Se atentar com a paginação

Informações Técnicas da API

Este detalhamento tem como objetivo registrar os endpoints da interface da integração da tela desenvolvida utilizando PO-UI.

Objetivo: Busca dos dados para listagem dos afastamentos e envio dos afastamentos selecionados para o back-end.

Tipo de requisição: GET/POST

Endpoint: /api/rh/v1/ahgora/afastamentos

Get:

Query Params:

Deck of Cards
idIntegracaoAhgora

Objetivo: Busca dos dados para listagem dos funcionários e envio dos funcionários selecionados para o back-end.

Tipo de requisição: GET/POST

Endpoint: /api/rh/v1/RefificaPerAnt

Get:

Query Params:

Card
idIntegAhgoraLista
labelIntegração Funcionário

Nome

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

Sim

1

pageSize

Tamanho da página

number

Sim

20

yearRectif

Ano retificação

number

Sim

Maior ou igual a 2026

registrationNumber

CPF

number

Não

59303411099

branchCode

Filial (Multi Valores separados por vírgula)

string

Não

“D MG 01,D MG 02”

Estrutura de Retorno:

Campo

Tipo

Exemplo

id (obrigatório)

string

"2026-59303411099"

yearRectif(obrigatório)

number

2026

branchCode(obrigatório)

string

“02”

type

string

"Funcionário" ou "Prestador" ou "Funcionário/Prestador"

registrationNumber

string

59303411099

name

string

"Nome do funcionário"

enableMonths

array

[1,5,6,7,9,12]

Months

array

[5,9,12]

Exemplo de Requisição:

GET: api/rh/v1/RefificaPerAnt?page=1&pageSize=20&yearRectif=2026

Se atentar com a paginação.

Expandir
titleExemplo de retorno

{
  "items": [
      {
          "statusAhgora": "NI",
          "matricula": "0101040924",
          "nome": "John Doe",
          "dataAdmissao": "2024-01-01",
          "dataDemissao": "",
          "escala_padrao": "001",
          "cargo": "001 - BIOMEDICO ASSIST. II",
          "departamento": "",
          "centroCusto": "001 - CC Tecnologia da Informac",
          "codInterno": "01|01|040924",
          "tpMovimento": "I",
          "dtMovimento": "2024-09-05"
      },
      {
          "statusAhgora": "NI",
          "matricula": "0101999557",
          "nome": "Jane Doe",
          "dataAdmissao": "2024-01-01",
          "dataDemissao": "",
          "escala_padrao": "001",
          "cargo": "001 - BIOMEDICO ASSIST. II",
          "departamento": "",
          "centroCusto": "001 - CC Tecnologia da Informac",
          "codInterno": "01|01|999557",
          "tpMovimento": "I",
          "dtMovimento": "2024-09-05"
      }
  ],
  "hasNext": false
}

Post: /api/rh/v1/ahgora/funcionarios

Nome

Descrição

Tipo

Obrigatório

Exemplo

codInterno

Código interno do funcionário

string

Sim

01|01|210824

dtMovimento

Data do movimento

string

Sim

2024-09-05

tpMovimento

Tipo do movimento

string

Sim

I(Inclusão)

A partir do filtro realizado, ao clicar em integrar funcionário, os dados serão enviados para o back-end.

Expandir
titleExemplo do post

{
  "items":
  [
    {
      "codInterno":"01|01|210824",
      "tpMovimento":"I",
      "dtMovimento":"2024-09-05"
    }
  ]
}

Com os dados postados, o back-end se encarregará de montar o body para requisição de envio para o Ahgora: https://api.ahgora.com.br/people

Expandir
titleExemplo de envio para Ahgora

[
  {
    "matricula": "0101210824",
    "nome": "John Doe",
    "pis": "",
    "matricula_esocial": "010121082420240821162913      ",
    "dataAdmissao": "2024-01-01",
    "dataDemissao": "",
    "escala_padrao": "001",
    "lastChangeDefaultSchedule": "",
    "tipo_escala": "",
    "ctps": "       ",
    "cargo": "001 - BIOMEDICO ASSIST. II",
    "departamento": "",
    "sexo": "M",
    "email": "                                                  ",
    "cpf": "           ",
    "rg": "               ",
    "cnpj": "53113791000122",
    "dataCnpj": "",
    "centroCusto": "001",
    "regimeTrabalho": "CLT",
    "dataNascimento": "1990-01-01",
    "dataCargo": "",
    "carga_horaria": 220,
    "bate_ponto": "Ponto Obrigatorio",
    "data_troca_elegibilidade_ponto": "2024-01-01",
    "matricula_chefia": "",
    "nome_chefia": "",
    "email_chefia": "",
    "codSindicato": "01",
    "dataCodSindicato": "",
    "telefone": "                    ",
    "sem_pis": true,
    "codInterno": "01|01|210824",
    "matricula_anterior": ""
  }
]

Retorno do código unique e do subunique de processamento retornado pela Ahgora

Expandir
titleRertorno do unique criado pela Ahgora

{
  "company":"a148176",
  "message":"Employee's Integration on progress",
  "unique":"b6ca283f",

   "subunique":"b6ca283f"
}

Devolver o retorno para o POUI com o status da integração para que seja atualizado a lista, nesse caso 'AR' (Aguardando retorno), pois ainda não foi feita a consulta do subunique.

Estrutura de Retorno:

Campo

Tipo

Exemplo

codInterno

string

01|01|210824

statusAhgora

string

AR

Expandir
titleRertorno da integração para o POUI

{
  "items":
  [
    {
      "codInterno":"01|01|210824",
      "statusAhgora":"AR"
      }
  ]
}

Card documentos
InformacaoCom o código unique em mãos, será necessário consultar o status do processamento na Ahgora. Pode ser feito após o envio antes do retorno para o POUI ou através do botão 'Atualizar Status' que está disponível na tela
TituloImportante

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idIntegAhgoraAfast
labelIntegração Afastamento

Nome

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

Sim

1

pageSize

Tamanho da página

number

Sim

100

dataAfastDe

Data Afastamento De

string

Sim

"2019-01-02T16:37:02-03:00"

dataAfastAte

Data Afastamento Até

string

Não

"2024-01-02T16:37:02-03:00"

branchCode

Filial (Multi Valores separados por vírgula)

string

Sim

"01,02"

matCode

Matrícula De

string

Não

000004

matCodeAte

Matrícula Até

string

Não

000004

situacao

Situação do funcionário (Multi Valores separados por vírgula)

string

Não

N,A

categoria

Categoria do funcionário (Multi Valores separados por vírgula)

string

Não

M,E

tipostatus

Tipo do status (Multi Valores separados por vírgula)

string

Não

0,6

codCC

Centro de custo De 

string

Não

001

codCCAte

Centro de Custo Até

string

Não

001

codFuncao

Função De

string

Não

001

codFuncaoAte

Função Até

string

Não

001

codDepto

Departamento De

string

Não

000000061

codDeptoAte

Departamento Até

string

Não

000000061

turnoCode

Turno De

string

Não

001

turnoCodeAte

Turno Até

string

Não

001

Estrutura de Retorno:

Campo

Tipo

Exemplo

statusAhgora(obrigatório)

string

NI(Não Integrado), IN(Integrado), CI(Com inconsistência), AR(Aguardando retorno)

matricula(obrigatório)

string

0101000001

nome

string

John Doe

motivo

string

004 - Afastamento Temporário por Doença

inicio

string

2019-01-01

fim

string

2019-01-02

cod_interno(obrigatório)

string

01.01.000004.001

tpMovimento(obrigatório)

string

I(Inclusão)

dtMovimento(obrigatório)

string

2024-09-06

Exemplo de Requisição:

GET: api/rh/v1/ahgora/afastamentos?page=1&pageSize=100&dataAfastDe=2000-01-01T08:39:02-03:00&dataAfastAte=2024-09-06T08:39:02-03:00&branchCode=01&

matCode=&matCodeAte=&situacao=&categoria=&tipostatus=&codCC=&codCCAte=&codFuncao=&codFuncaoAte=&codDepto=&codDeptoAte=&turnoCode=&turnoCodeAte=

Se atentar com a paginação.

Expandir
titleExemplo de retorno

{
  "items": [
      {
          "statusAhgora": "NI",
          "matricula": "0101000004",
          "nome": "John Doe",
          "motivo": "004 - Afastamento Temporário por Doença",
          "inicio": "2019-01-01",
          "fim": "2019-01-02",
          "cod_interno": "01.01.000004.001",
          "tpMovimento": "I",
          "dtMovimento": "2024-09-06"
      },
      {
          "statusAhgora": "NI",
          "matricula": "0101000962",
          "nome": "John Doe",
          "motivo": "004 - Afastamento Temporário por Doença",
          "inicio": "2023-01-01",
          "fim": "2023-01-02",
          "cod_interno": "01.01.000962.003",
          "tpMovimento": "I",
          "dtMovimento": "2024-09-06"
      }
  ],
  "hasNext": true
}

Post: /api/rh/v1/ahgora/afastamentos

Nome

Descrição

Tipo

Obrigatório

Exemplo

cod_interno

Código interno do afastamento

string

Sim

01.01.000004.001

dtMovimento

Data do movimento

string

Sim

2024-09-06

tpMovimento

Tipo do movimento

string

Sim

I(Inclusão)

A partir do filtro realizado, ao clicar em integrar afastamento, os dados serão enviados para o back-end.

Expandir
titleExemplo do post

{
  "items":
  [
    {
      "cod_interno":"01.01.000004.001",
      "tpMovimento":"I",
      "dtMovimento":"2024-09-06"
    }
  ]
}

Com os dados postados, o back-end se encarregará de montar o body para requisição de envio para o Ahgora: https://api.ahgora.com.br/absences

Obs* Caso não exista data fim, enviar uma fictícia, exemplo: 31/12/2099 

Expandir
titleExemplo de envio para Ahgora

[
  {
    "matricula": "0101000004",
    "motivo": "004",
    "inicio": "2019-01-01",
    "fim": "2019-01-02",
    "cod_interno": "01.01.000004.001",
    "operation": "INS"
  }
]

Retorno do código unique e o subunique de processamento retornado pela Ahgora

Expandir
titleRertorno do unique criado pela Ahgora

{
  "company":"a148176",
  "message":"Employee's Integration on progress",
  "unique":"c5ga345h",

 "subunique":"g5ca253j"
}

Devolver o retorno para o POUI com o status da integração para que seja atualizado a lista, nesse caso 'AR' (Aguardando retorno), pois ainda não foi feita a consulta do subunique.

Estrutura de Retorno:

Campo

Tipo

Exemplo

codInterno

string

01.01.000004.001

statusAhgora

string

AR

Expandir
titleRertorno da integração para o POUI

{
  "items":
  [
    {
      "codInterno":"01.01.000004.001",
      "statusAhgora":"AR"
    }
  ]
}

Card documentos
InformacaoCom o código unique em mãos, será necessário consultar o status do processamento na Ahgora. Pode ser feito após o envio antes do retorno para o POUI ou através do botão 'Atualizar Status' que está disponível na tela
TituloImportante

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idIntegAhgoraExclu
labelIntegração Exclusão Afastamento

Nome

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

Sim

1

pageSize

Tamanho da página

number

Sim

100

dataExcDe

Data Exclusão De

string

Sim

"2019-01-02T16:37:02-03:00"

dataExcAte

Data Exclusão Até

string

Não

"2024-01-02T16:37:02-03:00"

branchCode

Filial (Multi Valores separados por vírgula)

string

Sim

"01,02"

matCode

Matrícula De

string

Não

000002

matCodeAte

Matrícula Até

string

Não

000002

situacao

Situação do funcionário (Multi Valores separados por vírgula)

string

Não

N,A

categoria

Categoria do funcionário (Multi Valores separados por vírgula)

string

Não

M,E

tipostatus

Tipo do status (Multi Valores separados por vírgula)

string

Não

0,6

codCC

Centro de custo De 

string

Não

001

codCCAte

Centro de Custo Até

string

Não

001

codFuncao

Função De

string

Não

001

codFuncaoAte

Função Até

string

Não

001

codDepto

Departamento De

string

Não

000000061

codDeptoAte

Departamento Até

string

Não

000000061

turnoCode

Turno De

string

Não

001

turnoCodeAte

Turno Até

string

Não

001

Estrutura de Retorno:

Campo

Tipo

Exemplo

statusAhgora(obrigatório)

string

NI(Não Integrado), IN(Integrado), CI(Com inconsistência), AR(Aguardando retorno)

matricula(obrigatório)

string

0101000001

nome

string

John Doe

motivo

string

004 - Afastamento Temporário por Doença

inicio

string

2019-01-01

fim

string

2019-01-02

cod_interno(obrigatório)

string

01.01.000004.001

tpMovimento(obrigatório)

string

E(Inclusão)

dtMovimento(obrigatório)

string

2024-09-06

Exemplo de Requisição:

GET: api/rh/v1/ahgora/afastamentos/exclusao?page=1&pageSize=100&dataExcDe=2000-01-01T09:03:57-03:00&dataExcAte=2024-09-06T09:03:57-03:00&

branchCode=01&matCode=&matCodeAte=&situacao=&categoria=&tipostatus=&codCC=&codCCAte=&codFuncao=&codFuncaoAte=&codDepto=&codDeptoAte=&turnoCode=&turnoCodeAte=

Se atentar com a paginação.

Expandir
titleExemplo de retorno

{
  "items": [
      {
          "statusAhgora": "NI",
          "matricula": "0101000002",
          "nome": "Jane Doe",
          "motivo": "004 - Afastamento Temporário por Doença",
          "inicio": "2024-08-01",
          "fim": "2024-08-10",
          "cod_interno": "01.01.000002.001",
          "tpMovimento": "E",
          "dtMovimento": "2024-08-29"
      }
  ],
  "hasNext": false
}

Post:  /api/rh/v1/ahgora/afastamentos/exclusao

Nome

Descrição

Tipo

Obrigatório

Exemplo

cod_interno

Código interno do afastamento

string

Sim

01.01.000002.001

dtMovimento

Data do movimento

string

Sim

2024-08-29

tpMovimento

Tipo do movimento

string

Sim

E(Exclusão)

A partir do filtro realizado, ao clicar em integrar afastamento, os dados serão enviados para o back-end.

Expandir
titleExemplo do post

{
  "items":
  [
    {
      "cod_interno":"01.01.000002.001",
      "tpMovimento":"E",
      "dtMovimento":"2024-08-29"
    }
  ]
}

Com os dados postados, o back-end se encarregará de montar o body para requisição de envio para o Ahgora: https://api.ahgora.com.br/absences 

Expandir
titleExemplo de envio para Ahgora
Expandir
titleRertorno do unique criado pela Ahgora

{
  "company":"a148176",
  "message":"Employee's Integration on progress",
  "unique":"d6jb378d",

 "subunique":"a4ga453k"
}

Devolver o retorno para o POUI com o status da integração para que seja atualizado a lista, nesse caso 'AR' (Aguardando retorno), pois ainda não foi feita a consulta do subunique.

Estrutura de Retorno:

Campo

Tipo

Exemplo

codInterno

string

01.01.000002.001

statusAhgora

string

AR

Expandir
titleRertorno da integração para o POUI

{
  "items":
  [
    {
      "codInterno":"01.01.000002.001",
      "statusAhgora":"AR"
    }
  ]
}

Card documentos
InformacaoCom o código unique em mãos, será necessário consultar o status do processamento na Ahgora. Pode ser feito após o envio antes do retorno para o POUI ou através do botão 'Atualizar Status' que está disponível na tela
TituloImportante

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idstatus
labelStatus/Consulta
Totvs custom tabs box items
defaultno
referenciastatus
Deck of Cards
idStatus/Consulta
Card
idstatus
labelAtualizar Status

Objetivo: Obter o status da integração

Tipo de requisição: POST

Endpoint: /api/rh/v1/ahgora/status/

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

cApi

Tipo da API: 1-People; 2-Absences;

string

SIM

1

Ao selecionar os registros com status 'Aguardando retorno' e clicar no botão atualizar Status, os registros serão enviados para o back-end.

Exemplo de Requisição:

POST: api/rh/v1/ahgora/status/?cApi=1

Expandir
titleExemplo do post

{
  "items": [
   {
    "codInterno":"01|01|000002"
   }
  ]
}

POST: api/rh/v1/ahgora/status/?cApi=2

Expandir
titleExemplo de retorno

{
  "items":
  [
   {
    "codInterno":"01.01.000002.001"
   }
  ]
}

Com o código interno em mãos, será necessário encontrar o código subunique gravado anteriormente para fazer o get na API da Ahgora:  https://api.ahgora.com.br/process/?subunique=1837fb40

Retorno do status da Ahgora para o subunique pesquisado.

Veja que nesse caso o retorno veio com 2 erros, que devem ser gravados para posterior consulta na tela.

Os erros precisam ser gravados separados por pipe quando existir mais de um, exemplo: Centro de custo inválido | CNPJ inválido

Expandir
titleRertorno do status da integração pela Ahgora

{
  "data": {
    "errors": [
      {
        "identifier": "0101000004",
        "message": [
          "Centro de custo inválido",

          "CNPJ inválido"

        ]
      }
    ]
  },
  "company": "a148176",

  "unique": "0b8ef0cc",
  "subunique": "1837fb40",
  "status": "error",
  "progress": {
    "done": "1",
    "total": "1"
  }
}

Estrutura de Retorno para o POUI:

Campo

Tipo

codInterno

string

statusAhgora

string

Como o retorno está com inconsistência, devolvo com status 'CI'

Expandir
titleExemplo de retorno

{
  "items": [
    {
      "codInterno":  "01.01.000004.001",
      "statusAhgora":"CI"
      }
    ]
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idregistro
labelStatus do registro

Objetivo: Consulta status do registro com inconsistência posicionado na linha

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/status/:codInterno

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

cApi

Tipo da API: 1-People; 2-Absences;

string

SIM

1

Estrutura de Retorno:

Campo

Tipo

status

string

Exemplo de Requisição:

GET: api/rh/v1/ahgora/status/010100004?cApi=1

Buscamos o status do registro com inconsistência, no retorno da Ahgora caso exista mais de um erro deve ser separado por pipe conforme explicado na seção 'Atualizar Status'

Expandir
titleExemplo de retorno

{
  "items": [
    {
      "status":"Centro de custo inválido | CNPJ inválido"
      }
    ]
  }

O pipe é necessário para a quebra de linha e visualização em tela conforme imagem abaixo.

Obs* A numeração é feita pelo POUI.

Image Removed

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idlote
labelConsulta Lote

Objetivo: Consulta do lote de envio

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/lote/:codInterno

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

cApi

Tipo da API: 1-People; 2-Absences;

string

SIM

2

Estrutura de Retorno:

Campo

Tipo

lote

string

data

string

hora

string

Exemplo de Requisição:

GET: api/rh/v1/ahgora/lote/01.01.125803.001?cApi=2

Passamos o código interno do funcionário e o tipo da API para que possam encontrar o lote salvo anteriormente para o registro.

Expandir
titleExemplo de retorno

{
  "items": [
      {
          "lote": "[{\"matricula\": \"0101125803\",\"motivo\": \"001\",\"inicio\": \"2024-01-29\",\"fim\": \"2024-02-17\",\"cod_interno\": \"01.01.125803.001\",\"operation\": \"INS\"}]",
          "data": "2024-08-30",
          "hora": "19:44:02"
      }
  ]
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idfiltros
labelFiltros
Totvs custom tabs box items
defaultno
referenciafiltros
Deck of Cards
idFiltros
Card
idbranches
labelBranches

Objetivo: Listagem de Filiais 

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/branches

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

SIM

1

pageSize

Tamanho da página

numer

SIM

50

filter

Campo automático do lookup. Pode filtrar o código ou nome da filial

string

Não

“Filial X”

Estrutura de Retorno:

Para conseguirmos abranger todas as áreas, utilizamos a nomenclatura abaixo.

Campo

Tipo

branchCode

string

branchName

string

Exemplo de Requisição:

GET: api/rh/v1/ahgora/branches?filter=&page=1&pageSize=50

Expandir
titleExemplo de retorno

{
  "items": [
      {
          "branchCode": "01",
          "branchName": "Matriz"
      },
      {
          "branchCode": "02",
          "branchName": "Suporte-Suporte"
      },
      {
          "branchCode": "03",
          "branchName": "Santos"
      },
      {
          "branchCode": "04",
          "branchName": "São Vicente"
      }
  ],
  "hasNext": false
}

É possível também digitar no campo sem entrar no lookup para buscar uma filial.

Get: api/rh/v1/ahgora/branches/01

Expandir
titleExemplo de retorno

{
  "items": [
      {
          "branchCode": "01",
          "branchName": "Matriz"
      }
  ]
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idmatricula
labelMatrícula

Objetivo: Listagem das Matrículas

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/matricula

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

SIM

1

pageSize

Tamanho da página

numer

SIM

50

filter

Campo automático do lookup. Pode filtrar a matrícula

string

Não

“Matrícula X”

branchCode

Código da filial que está no filtro

string

Não

04

Obs* O filtro da filial é obrigatório, ele vai estar no filtro da matrícula caso queira retornar apenas as matrículas das filiais selecionadas.

Estrutura de Retorno:

Para conseguirmos abranger todas as áreas, utilizamos a nomenclatura abaixo.

Campo

Tipo

branchCode

string

branchName

string

Exemplo de Requisição:

GET: api/rh/v1/ahgora/matricula?filter=&page=1&pageSize=50&branchCode=04 

Expandir
titleExemplo de retorno

Como passei a filial 04 que está no filtro, optei por carregar apenas matrículas dessa filial

{
  "items": [
      {
          "filMat": "04",
          "matCode": "000001",
          "matName": "John Doe"
      },
      {
          "filMat": "04",
          "matCode": "152062",
          "matName": "Jane Doe"
      }
  ],
  "hasNext": false
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idturno
labelTurno

Objetivo: Listagem dos Turnos

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/turno

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

SIM

1

pageSize

Tamanho da página

numer

SIM

50

filter

Campo automático do lookup. Pode filtrar o turno

string

Não

“Turno X”

branchCode

Código da filial que está no filtro

string

Não

02

Obs* O filtro da filial é obrigatório, ele vai estar no filtro do turno caso queira retornar apenas os turnos das filiais selecionadas.

Estrutura de Retorno:

Campo

Tipo

filTurno

string

turnoCode

string

turnoDesc

string

Exemplo de Requisição:

GET: api/rh/v1/ahgora/turno?filter=&page=1&pageSize=50&branchCode=02

Expandir
titleExemplo de retorno

Como passei a filial 02 que está no filtro, optei por carregar apenas os turnos dessa filial

{
  "items": [
      {
          "filTurno": "02",
          "turnoCode": "001",
          "turnoDesc": "001"
      }
  ],
  "hasNext": false
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idccusto
labelCentro de Custo

Objetivo: Listagem dos Centros de Custo

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/ccusto

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

SIM

1

pageSize

Tamanho da página

numer

SIM

50

filter

Campo automático do lookup. Pode filtrar o C.Custo

string

Não

“CCusto X”

branchCode

Código da filial que está no filtro

string

Não

02

Obs* O filtro da filial é obrigatório, ele vai estar no filtro do centro de custo caso queira retornar apenas os centros de custo das filiais selecionadas.

Estrutura de Retorno:

Campo

Tipo

filCC

string

codCC

string

ccDesc

string

Exemplo de Requisição:

GET: api/rh/v1/ahgora/ccusto?filter=&page=1&pageSize=10&branchCode=02

Expandir
titleExemplo de retorno

Como a tabela de Centro de Custo é compartilhada, mesmo com a filial, eu retorno todos

{
  "items": [
      {
          "filCC": "  ",
          "codCC": "000000003",
          "ccDesc": "03"
      },
      {
          "filCC": "  ",
          "codCC": "000000010",
          "ccDesc": "010"
      },
      {
          "filCC": "  ",
          "codCC": "000000022",
          "ccDesc": "22"
      },
      {
          "filCC": "  ",
          "codCC": "00001    ",
          "ccDesc": "TESTE TITULO"
      },
      {
          "filCC": "  ",
          "codCC": "012      ",
          "ccDesc": "CONC 012"
      }
  ],
  "hasNext": true
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idfuncao
labelFunção

Objetivo: Listagem das Funções

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/funcao

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

SIM

1

pageSize

Tamanho da página

numer

SIM

50

filter

Campo automático do lookup. Pode filtrar o C.Custo

string

Não

“Funcao X”

branchCode

Código da filial que está no filtro

string

Não

02

Obs* O filtro da filial é obrigatório, ele vai estar no filtro da função caso queira retornar apenas as funções das filiais selecionadas.

Estrutura de Retorno:

Campo

Tipo

filFuncao

string

codFuncao

string

funcaoDesc

string

Exemplo de Requisição:

GET: api/rh/v1/ahgora/funcao?filter=&page=1&pageSize=10&branchCode=02

Expandir
titleExemplo de retorno

Como passei a filial 02 que está no filtro, optei por carregar apenas as funções dessa filial

{
  "items": [
      {
          "filFuncao": "02",
          "codFuncao": "00001",
          "funcaoDesc": "CP038"
      },
      {
          "filFuncao": "02",
          "codFuncao": "00002",
          "funcaoDesc": "65456"
      }
  ],
  "hasNext": false
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
iddepto
labelDepartamento

Objetivo: Listagem dos Departamentos

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/departamento

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

page

Número da página

number

SIM

1

pageSize

Tamanho da página

numer

SIM

50

filter

Campo automático do lookup. Pode filtrar o C.Custo

string

Não

“Departamento X”

branchCode

Código da filial que está no filtro

string

Não

02

Obs* O filtro da filial é obrigatório, ele vai estar no filtro da função caso queira retornar apenas os departamentos das filiais selecionadas.

Estrutura de Retorno:

Campo

Tipo

filDepto

string

codDepto

string

deptoDesc

string

Exemplo de Requisição:

GET: api/rh/v1/ahgora/departamento?filter=&page=1&pageSize=10&branchCode=02

Expandir
titleExemplo de retorno

Como passei a filial 02 que está no filtro, optei por carregar apenas os departamentos dessa filial

{
  "items": [
      {
          "filDepto": "02",
          "codDepto": "000000060",
          "deptoDesc": "DEP MAT 002042"
      },
      {
          "filDepto": "02",
          "codDepto": "000000061",
          "deptoDesc": "DEP DELETADO"
      },
      {
          "filDepto": "02",
          "codDepto": "0002     ",
          "deptoDesc": "Depto Vendas"
      }
  ],
  "hasNext": false
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Card
idsitcateg
labelSituação/Categoria

Objetivo: Listagem da situação do funcionário e categoria

Tipo de requisição: GET

Endpoint: /api/rh/v1/ahgora/opcoes

Obs* Sempre será retornado os dois conjuntos de dados na requisição, após a primeira requisição, os dois conjuntos ficaram em memória para consulta;

Estrutura de Retorno:

Para o retorno, utilizamos a forma abaixo.

Campo

Tipo

label

string

value

string

Exemplo de Requisição:

GET: /api/rh/v1/ahgora/opcoes

O retorno precisa ser uma lista com a propriedade 'items', com os dois arrays 'SitOptions' para a situação e 'catOptions' para as categorias

.

Expandir
titleExemplo de retorno

{
    "

items

id":

{

"2026-59303411099",
    "yearRectif": 2026,


      "sitOptions": [
          {
              "value": "N",
              "label": "SITUACAO NORMAL"
          },
          {
              "value": "A",
              "label": "AFASTADO TEMP."
          },
          {
              "value": "D",
              "label": "DEMITIDO"
          },

    "companyCode": "1",
    "branchCode": "1",
    "type": "Funcionário",
    "registrationNumber": "59303411099",
    "name": "Admitido Antes da Retificação e Ativo",
    "enableMonths": [


         

{

     

        "value": "F"

1,
               

"label": "FERIAS"

2,
         

}

     

]

3,
     

"catOptions": [

         

{

6,
             

"value": "A"

  7,
             

"label": "AUTONOMO"

  8,
               

}

10,
         

{

      11
    ],
    "

value

months":

"C"

[
                3,
               

"label": "COMISSIONADO"

6,
           

}

    7,
           

{

    8,
             

"value": "D"

  10,
               

"label": "DIARISTA"

11
   

 

]   

}

,
    "hasNext": false,
   

  {
              "value": "E",
              "label": "ESTAGIARIO MENSALISTA"
          },
          {
              "value": "M",
              "label": "MENSALISTA"
          }
      ]
  }
}

Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}

Totvs custom tabs box items
defaultno
referenciadoc

"total": 1
}


PUT:  /api/rh/v1/RefificaPerAnt

Nome

Descrição

Tipo

Obrigatório

Exemplo

id (obrigatório)

Código interno do funcionário

string

Sim

"2026-59303411099"

companyCode

Empresa ou Coligada

string

Sim

"10"

branchCode

Estabelecimento ou Filial

string

Sim

"1"

months

Meses retificados

array

Sim

[1,3,5,9,12]

name

Nome do funcionário

string

Não

"Sabrina"

registrationNumber

CPF do funcionário

string

Não

13175924689

type

Tipo do funcionário

string

Não

"Funcionário"

yearREctif

Ano da retificação

integer

Não

2026


A partir do filtro realizado, ao clicar editar e confirmar, os dados serão enviados para o back-end.

Expandir
titleExemplo de retorno

{
    

branchCode: "1"

companyCode: "eSo"

enableMonths: [2, 3, 5, 6, 7, 8, 9]

id: "2026-13175924689"

months: [6]

name: "Sabrina Ayla Mariana Santos"

registrationNumber: "13175924689"

type: "Funcionário"

yearRectif: 2026


}


Para o retorno de erro, seguir a estrutura abaixo.

Campo

Tipo

code

number

message

string

detailedMessage

string

type

string (“error”, “warning”, “success”)

Expandir
titleExemplo de retorno

{
    "code": 500,
    "detailedMessage": "",
    "message": "Internal Server Error",
    "type": "error"
}







How To | MP - SIGAGPE integração com a Ahgora Parte 1

How To | MP - SIGAGPE integração com a Ahgora Parte 2

How To | MP - SIGAGPE integração com a Ahgora Parte 3

How To | MP - SIGAGPE integração com a Ahgora Parte 4

How To | MP - SIGAGPE integração com a Ahgora Parte 5

How To | MP - SIGAGPE integração com a Ahgora Parte 6

How To | MP - SIGAGPE integração de localizações com a Ahgora Parte 7

Totvs custom tabs box items
defaultno
referenciavídeos

Video How-To

  • Este video demonstra um exemplo do uso da nova tela, realizando a retificação do S-1210 de períodos anteriores.

Conector de Widget
urlhttps://www.youtube.com/watch?v=QcdyH7eXKmE

Totvs custom tabs box items
defaultno
referenciavídeos

Toggle Cloak
idHow To | MP - SIGAGPE integração com a Ahgora
How To | MP - SIGAGPE integração com a Ahgora

Cloak
idHow To | MP - SIGAGPE integração com a Ahgora
Toggle Cloak
idHow To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE
How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE

Cloak
idHow To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE
How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 1

How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 2

How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 3

How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 4

How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 5

How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 6

       


Templatedocumentos

...