Skip to content

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-CommunityId Send 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

NameTypeDescription
X-CommunityIdoptionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Request body application/json

NameTypeDescription
spaceIdoptionalstring (uuid)
memberIdoptionalstring (uuid)
effectiveFromrequiredstring (date)
rulesrequiredobjectRegras 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.scheduleoptionalobjectHorá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.weekStartsOnoptionalintegerPrimeiro dia da semana para a extra semanal (1 = segunda). · ≥ 0, ≤ 6
rules.toleranceoptionalobjectArt. 58, §1º da CLT: dentro dos dois limites o dia conta como o contrato; acima, conta a diferença inteira.
rules.tolerance.perPunchMinutesoptionalinteger
rules.tolerance.dailyMinutesoptionalinteger
rules.overtimeoptionalobject
rules.overtime.dailyoptionalobject
rules.overtime.weeklyoptionalobject
rules.overtime.nonWorkingDayoptionalobject
rules.overtime.holidayoptionalobject
rules.overtime.dailyLimitMinutesoptionalintegerAcima disso o dia é sinalizado (não recusa nada).
rules.overtime.destinationoptionalpaid | bankPara 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.hourBankoptionalobjectBanco 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.validityMonthsoptionalinteger≥ 1, ≤ 12
rules.weeklyRestDayoptionalintegerDia do descanso semanal remunerado (DSR, AEJ registro 07 tipo 1); 0 = domingo (padrão), null = nenhum. · ≥ 0, ≤ 6
rules.nightoptionalobjectNoturno (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.enabledoptionalboolean
rules.night.startoptionalstring
rules.night.endoptionalstring
rules.night.reducedHouroptionalboolean
rules.night.multiplieroptionalnumber
rules.minimumBreakoptionalobjectArt. 71 da CLT; só sinaliza.
rules.minimumBreak.over6hMinutesoptionalinteger
rules.minimumBreak.from4to6hMinutesoptionalinteger

Responses

StatusDescription
201Versão gravada.
401Token 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`).
403Só 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`.
404Recurso não encontrado.
422Regra 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":{}}'