Parâmetros e Chamada do Método:
Autenticação
A api recordClockMarkings utiliza Basic Authentication.
- Para autenticação com o RH Datasul, basta ter um usuário cadastrado no sistema, e utilizar o Basic Authentication usuário e senha.
- Sugerimos que seja um usuário genérico, para evitar recadastro caso ocorra alteração de permissões de usuário.
Endpoint
api/rh/v1/recordClockMarkings
Método
O método a ser utilizado é o POST.
Chamada do Médodo
{protocolo}://{host}/api/rh/v1/recordClockMarkings
A API REST recordClockMarkings será consumida pelo Ahgora PontoWeb by TOTVS e poderá receber os seguintes parâmetros:
| Propriedade | Descrição | Tipo | Obrigatório? | Observação |
|---|
| items | Array das marcações | Array | Sim | Nas linhas abaixo estão detalhadas as informações que devem ser envidas no array items. |
| codCCT | Código da convenção coletiva | Caracter | Não | Preencher com o número do processo do último acordo ou convenção coletiva depositado. Caso não haja, informar "99999999999999999". |
| codCPF | Número do CPF do funcionário | Caracter | Sim | Preencher somente com os números do CPF. |
| codFuncMsa | Número da matrícula do funcionário | Array - Caracter | Sim | Preencher com a matrícula do funcionário. Usar como referência o codInterno enviado na integração do funcionário. Quando se tratar de múltiplo vínculo no mesmo estabelecimento deve ser preenchido com as matrículas do funcionário de cada vínculo no estabelecimento. |
| codFuso | Fuso horário | Caracter | Sim | Preencher com a informação do fuso horário que consta na data e hora da marcação do ponto registrada no REP-P/REP-A. Formato da data e hora de marcação: "AAAA-MM-ddThh:mm:00ZZZZZ", onde: ZZZZZ: fuso horário, onde o primeiro digito representa o sinal (positivo ou negativo) e os outros quatro dígitos representam a hora e os minutos. |
| codNsr | Número sequencial de registro | Caracter | Sim | Preencher com o NSR gerado pelo REP-P/REP-A quando ocorre o registro da marcação de ponto. |
| codRelogioExtChave | Identifica a integração Ahgora | Caracter | Sim | Preencher com a palavra "PONTOWEB". |
| codRep | Código do REP | Caracter | Sim | Para REP-P: preencher com o número de registro no INPI. Para REP-A: - preencher com o número do processo do último acordo ou convenção coletiva depositado. Caso não haja, informar "99999999999999999". |
| codUsuarExtChave | Chave externa do funcionário | Array - Caracter | Sim | Preencher com o código da empresa , do estabelecimento e aa matrícula do funcionário, separados por ";". Usar como referência o codInterno enviado na integração do funcionário. Quando se tratar de múltiplo vínculo no mesmo estabelecimento deve ser preenchido o código da empresa , do estabelecimento e a matrícula do funcionário, separados por ";" de cada vínculo no estabelecimento. |
| datMarcacAces | Data da marcação | Caracter | Sim | Preencher com a informação da data e hora da marcação do ponto registrada no REP-P/REP-A. Formato da data e hora de marcação: "AAAA-MM-ddThh:mm:00ZZZZZ". |
| inscrEmp | CNPJ ao qual o REP-P está vinculado | Caracter | Sim | Preencher somente com os números do CNPJ do estabelecimento ao qual o REP-P está relacionado. |
| numHorarMarcacAces | Hora da marcação em segundos | Numérico | Sim | Preencher com a hora e minutos da marcação de ponto, convertidos para segundos. |
| numVersLayout | Versão do layout do arquivo AFD | Caracter | Sim | Preencher com o valor "3", que indica que a marcação atende ao layout da portaria 671. |
Exemplos do Json de Request da API:
| Deck of Cards |
|---|
| id | Exemplos de Json da Requisição da API |
|---|
|
| Card |
|---|
| label | Marcação REP-A - Portaria 671 |
|---|
| { "items": [ {
|
|
| Propriedade | Descrição | Tipo | Obrigatório? | Observação |
|---|
items | Array das marcações | Array | Sim | | codRelogioExtChave | Código Relógio | Caracter | Sim | Preenchido com a palavra "PONTO WEB". |
| codFuncMsa | Código da Matrícula do funcionário | Caracter | Sim | Preenchido com a matrícula do funcionário conforme |
codNsr | Código NSR | Numérico | Sim | | codPisMsa | Código do PIS do Funcionário | Caracter | Sim | Obrigatório para marcações realizadas em dispositivos que atendem à portaria 1510. |
datMarcacAces | Data da marcação | Caracter | Sim | numHorarMarcacAces | Hora da marcação em segundos | Numérico | Sim | | codRep | Código do REP | Caracter | Não | Preenchido com o número informado no programa PE0620, campo Número REP |
| codUsuarExtChave | Código do usuário | Caracter | Sim | Preenchido com o código da empresa, estabelecimento e matrícula. Ex.: "99;99;4" |
| codFuso | Fuso Horário | Caracter | Sim | Obrigatório para marcações realizadas em dispositivos que atendem à portaria 671. |
| codCPF | Código do CPF do Funcionário | Caracter | Sim | Obrigatório para marcações realizadas em dispositivos que atendem à portaria 671. |
| numVersLayout | Versão Layout Arquivo AFD | Numérico | Sim | Quando preenchido com o valor: 0 - marcações de refeitório 1 - marcações da portaria 1510 3 - marcações da portaria 671 |
inscrEmp | CNPJ ou CPF do empregador | Decimal | Não | | codCCT | Código Convenção Coletiva | Decimal | Não | Preenchido com o valor vazio (branco), quando a marcação for originada de um REP da portaria antiga (1510 ou 1510 INMETRO). Preenchido com o valor do acordo coletivo, quando a marcação for originada de um REP A. Preenchido com o valor vazio (branco), quando a marcação for originada de um equipamento de controle de acesso em refeitório. Preenchido sem zeros a esquerda. |
Exemplos do Json de Request da API:
| Expandir |
|---|
| title | Marcações Portaria 1510 |
|---|
|
{ "items": [ { "codRelogioExtChave": "", "codFuncMsa": "529", "codNsr": 1, "codCPF:"", "codPisMsa": "15423654711", "datMarcacAces": "2021-10-21 09:30:00.000", "numHorarMarcacAces": 34200, "codRep": "5009940099846", "codUnidExtChave": "10;1", "codUsuarExtChave": "10;1;529", "codCCT":"" }, { "codRelogioExtChave": "", "codFuncMsa": "1356", "codNsr": 2, "codCPF:"", "codPisMsa": "15423654711", "datMarcacAces": "2021-10-23 22:00:00.999", "numHorarMarcacAces": 79200, "codRep": "5009940099846", "codUnidExtChave": "10;1", "codUsuarExtChave": "10;1", "codCCT":"" } ] } |
| Expandir |
|---|
| title | Marcação Portaria 671 REP-A |
|---|
|
{ "items": [ { "codRelogioExtChave": "", "codFuncMsa": "4", "codNsr": 1000, "codCPF": "02709509903", "codFuso": "-0300", "numVersLayout": 3, "inscrEmpr": "012457856000158", "datMarcacAces": "2022-09-08 09:30:00.000", "numHorarMarcacAces": 34200, "codRep": "858585565656", "codUnidExtChave": "99;99", "codUsuarExtChave": "99;99;4", "codCCT": "19269592961497986" }, { "codRelogioExtChave": "", "codFuncMsa": "4", "codNsr": 1002, "codCPF": "02709509903", "datMarcacAces": "2022-09-08 22:00:00.999", "numHorarMarcacAces": 79200, "codFuso": "-0300", "numVersLayout": 3, "inscrEmpr": "012457856000158", "datMarcacAces": "2022-09-08 09:30:00.000", "codRep": "858585565656", "codUnidExtChave": "99;99", "codUsuarExtChave": "99;99;4" "codCCT": "19269592961497986" } ] } |
| Expandir |
|---|
| title | Marcação Portaria 671 REP-C |
|---|
|
{ "items": [ { "codRelogioExtChave": "", "codFuncMsa": "4", "codNsr": 1000, "codCPF": "02709509903", "codFuso": "-0300", "numVersLayout": 3, "inscrEmpr": "012457856000158", "datMarcacAces": "2022-09-08 09:30:00.000", "numHorarMarcacAces": 34200, "codRep": "858585565656", "codUnidExtChave": "99;99", "codUsuarExtChave": "99;99;4", "codCCT": "" }, { "codRelogioExtChave": "", "codFuncMsa": "4", "codNsr": 1002, "codCPF": "02709509903", "datMarcacAces": "2022-09-08 22:00:00.999", "numHorarMarcacAces": 79200, "codFuso": "-0300", "numVersLayout": 3, "inscrEmpr": "012457856000158", "datMarcacAces": "2022-09-08 09:30:00.000", "codRep": "858585565656", "codUnidExtChave": "99;99", "codUsuarExtChave": "99;99;4" "codCCT": "" } ] } |
| Expandir |
|---|
|
{ "items": [ { "codRelogioExtChave": "10;1", "codFuncMsa": "529", "codNsr": 0, "codCPF":"", "numVersLayout": 0, "codPisMsa": "15423654711", "codFuso": "", "datMarcacAces": "2021-10-21 09:30:00.000", "numHorarMarcacAces": 34200, "codRep": "", "codUnidExtChave": "10;1", "codUsuarExtChave": "10;1;529", "codCCT":"" }, { codRelogioExtChave10;1 1356 codNsr 0 codCPF numVersLayout 0 codPisMsa15423654711 codFusocodUsuarExtChave": ["10;1;1"],
| 20211023 22999 79200 codRep", "codUnidExtChave": "10;1 codUsuarExtChave10;1 codCCTinscrEmp":"11112222333344" | } ] } |
Situações de Erros Tratados
A API irá retornar a lista com o indicativo individual de sucesso ou erro na gravação. Os retornos possíveis estão na lista abaixo:
| status | errorCode | message | OBS |
|---|
200 | Marcação gravada com sucesso. | 400 | 00001 | PIS em formato inválido ou inexistente no cadastro. | 400 | 00002 | NSR duplicado. Número já foi importado na tabela marcac_nova_integr . | 400 | 00003 | NSR não foi informado e é obrigatório. | 400 | 00006 | É obrigatório informar o campo codRelogioExtChave. | 400 | 00006 | É obrigatório informar o campo codFuncMsa. | | 400 | 00006 | É obrigatório informar o campo codPisMsa. | Somente quando não estiverem informados os campos: codPisMsa e codCPF |
400 | 00006 | É obrigatório informar o campo datMarcacAces. | 400 | 00006 | É obrigatório informar o campo numHorarMarcacAces. | 400 | 00006 | É obrigatório informar o campo codRep. | 400 | 00006 | É obrigatório informar o campo codUnidExtChave. | 400 | 00006 | É obrigatório informar o campo codUsuarExtChave. | 400 | 00006 | Campo 'codRelogioExtChave' no formato incorreto. Deve ser preenchido como texto e conter o código da empresa e do relógio no ERP. | 400 | 00006 | Campo 'codNsr' no formato incorreto. Deve ser preenchido como numérico. | 400 | 00006 | Campo 'numHorarMarcacAces' no formato incorreto. Deve ser preenchido como numérico. | 400 | 00006 | Campo 'codUnidExtChave' no formato incorreto. Deve ser preenchido como texto e conter o código da empresa e do estabelecimento no ERP. | 400 | 00006 | Campo 'codUsuarExtChave' no formato incorreto. Deve ser preenchido como texto e conter o código da empresa, do estabelecimento e matricula do funcionário no ERP. | 400 | 00006 | Foi enviado marcações de um relógio que não está cadastrado no ERP | | 400 | 00006 | Verifique codCPF informado | Somente quando o campo codCPF estiver informado e seu dígito verificador estiver incorreto. |
}, { "codCPF": "88888888888", "codFuncMsa": ["1"], "codFuso": "+0300", "codNsr": "120025", "codRelogioExtChave":"PONTOWEB", "codRep": "80008000800080008", "codUsuarExtChave": ["10;1;1"], "datMarcacAces": "2025-08-04T16:00:00.000", "numHorarMarcacAces": 57600, "numVersLayout": "3", "codCCT": "80008000800080008", "inscrEmp":"11112222333344" } ] } |
| Card |
|---|
| label | Marcação REP-P - Portaria 671 |
|---|
| { "items": [ { "codCPF": "88888888888", "codFuncMsa": ["1"], "codFuso": "+0300", "codNsr": "120024", "codRelogioExtChave":"PONTOWEB", "codRep": "77744455522211177", "codUsuarExtChave": ["10;1;1"], "datMarcacAces": "2025-08-04T08:00:00.000", "numHorarMarcacAces": 28800, "numVersLayout": "3", "inscrEmp":"11112222333344" }, { "codCPF": "88888888888", "codFuncMsa": ["1"], "codFuso": "+0300", "codNsr": "120025", "codRelogioExtChave":"PONTOWEB", "codRep": "77744455522211177", "codUsuarExtChave": ["10;1;1"], "datMarcacAces": "2025-08-04T16:00:00.000", "numHorarMarcacAces": 57600, "numVersLayout": "3", "inscrEmp":"11112222333344" },
|
|
Exemplo de retorno da API recordClockMarkings:
| Expandir |
|---|
| title | Retorno Portaria 1510 |
|---|
|
{ "items": [ codRelogioExtChave codFuncMsa529 1 codPisMsa17962727770 datMarcacAces2021-10-21 09:30:00.000 numHorarMarcacAces 34200 codRep "5009940099846" codUnidExtChave10;12024-07-21T08:00:00.000",
| codUsuarExtChave "10;1;529" status 200 errorCodeinscrEmp":"77778888999944" | ,"codCCT":"", "message": "Marcação gravada com sucesso" }, { "codRelogioExtChave": "", "codFuncMsa": "1356", "codNsr": 2, "codPisMsa": "10699643292", "datMarcacAces": "2021-10-22 22:00:00.999", "numHorarMarcacAces": 79200, "codRep": "5009940099846", "codUnidExtChave": "10;1", "codUsuarExtChave": "10;1", "status": 400, "errorCode": "00006", "codCCT":"", "message": "Campo 'codUsuarExtChave' no formato incorreto. Deve ser preenchido como texto e conter o código da empresa, do estabelecimento e matricula do funcionário no ERP." } ] } |
| Expandir |
|---|
| title | Retorno Portaria 671 REP-A |
|---|
|
|