Grava uma nova versão das regras do ponto
POST/api/time-tracking/rules
- Auth
- Requires a token
- API key:
- No API key accepted
- X-CommunityId
X-CommunityIdSend the X-CommunityId of the community the operation happens in.
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.
Gestão do ponto. Só inserção: corrigir é gravar outra versão (para a mesma vigência, vale a última gravada). Com `memberId`, é a exceção daquela pessoa. Vigência dentro de um mês fechado (ou antes dele) é recusada com 422 (`monthClosed`). Nenhuma regra recusa marcação.
Headers
| Name | Type | Description |
|---|---|---|
X-CommunityIdoptional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Request body application/json
| Name | Type | Description |
|---|---|---|
spaceIdoptional | string (uuid) | |
memberIdoptional | string (uuid) | |
effectiveFromrequired | string (date) | |
rulesrequired | object | Regras do ponto (PTRP). Todo número é um padrão configurável; nenhuma regra recusa marcação (art. 74, I). Campos ausentes recebem o padrão; campo desconhecido é recusado (422). |
rules.scheduleoptional | object | Horário contratual: pares de entrada e saída por dia da semana (`"0"` domingo a `"6"` sábado), `hh:mm`. Saída antes da entrada cruza a meia-noite. Dia sem pares é dia não útil. |
rules.weekStartsOnoptional | integer | Primeiro dia da semana para a extra semanal (1 = segunda). · ≥ 0, ≤ 6 |
rules.toleranceoptional | object | Art. 58, §1º da CLT: dentro dos dois limites o dia conta como o contrato; acima, conta a diferença inteira. |
rules.tolerance.perPunchMinutesoptional | integer | |
rules.tolerance.dailyMinutesoptional | integer | |
rules.overtimeoptional | object | |
rules.overtime.dailyoptional | object | |
rules.overtime.weeklyoptional | object | |
rules.overtime.nonWorkingDayoptional | object | |
rules.overtime.holidayoptional | object | |
rules.overtime.dailyLimitMinutesoptional | integer | Acima disso o dia é sinalizado (não recusa nada). |
rules.overtime.destinationoptional | paid | bank | Para onde vai a extra dos dias em que esta versão vale: `paid` (paga, padrão) ou `bank` (banco de horas, minuto a minuto; no banco, o que faltar do contrato depois da tolerância é debitado). |
rules.hourBankoptional | object | Banco de horas: um lote por mês de origem, que vence ao fim do mês de origem + validade - 1 (janeiro com 6 vence no fim de junho). O débito consome os lotes mais antigos primeiro (FIFO); o que vence sai como `expiredMinutes`, para pagar. |
rules.hourBank.validityMonthsoptional | integer | ≥ 1, ≤ 12 |
rules.weeklyRestDayoptional | integer | Dia do descanso semanal remunerado (DSR, AEJ registro 07 tipo 1); 0 = domingo (padrão), null = nenhum. · ≥ 0, ≤ 6 |
rules.nightoptional | object | Noturno (art. 73 da CLT): os minutos na janela (padrão 22h a 5h) sempre contam. `enabled` aplica o adicional (`multiplier`) e, com `reducedHour`, a hora noturna reduzida de 52min30s (8 horas contadas para 7 de relógio), na jornada trabalhada e na contratual. |
rules.night.enabledoptional | boolean | |
rules.night.startoptional | string | |
rules.night.endoptional | string | |
rules.night.reducedHouroptional | boolean | |
rules.night.multiplieroptional | number | |
rules.minimumBreakoptional | object | Art. 71 da CLT; só sinaliza. |
rules.minimumBreak.over6hMinutesoptional | integer | |
rules.minimumBreak.from4to6hMinutesoptional | integer |
Responses
| Status | Description |
|---|---|
201 | Versão gravada. |
401 | Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`). |
403 | Só a gestão do ponto (owner, admin, financeiro): `timeTracking.errors.managementOnly`; quem não tem cadastro de empregado: `notEmployee`; sessão de suporte do SuperAdmin: `supportSession`. |
404 | Recurso não encontrado. |
422 | Regra inválida (`rulesInvalid`, com o caminho do campo em `errors[0].param`), horário de mais de 16 h num dia (`scheduleTooLong`) ou mês fechado (`monthClosed`). |
curl example
curl -X POST "https://api.memberfy.net/api/time-tracking/rules" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"effectiveFrom":"string","rules":{}}'