Saltar al contenido

Grava uma nova versão das regras do ponto

POST/api/time-tracking/rules

Auth
Requiere token
Clave de API:
No acepta clave de API
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

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

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

Cuerpo de la solicitud application/json

NombreTipoDescripción
spaceIdopcionalstring (uuid)
memberIdopcionalstring (uuid)
effectiveFromobligatoriostring (date)
rulesobligatorioobjectRegras 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.scheduleopcionalobjectHorá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.weekStartsOnopcionalintegerPrimeiro dia da semana para a extra semanal (1 = segunda). · ≥ 0, ≤ 6
rules.toleranceopcionalobjectArt. 58, §1º da CLT: dentro dos dois limites o dia conta como o contrato; acima, conta a diferença inteira.
rules.tolerance.perPunchMinutesopcionalinteger
rules.tolerance.dailyMinutesopcionalinteger
rules.overtimeopcionalobject
rules.overtime.dailyopcionalobject
rules.overtime.weeklyopcionalobject
rules.overtime.nonWorkingDayopcionalobject
rules.overtime.holidayopcionalobject
rules.overtime.dailyLimitMinutesopcionalintegerAcima disso o dia é sinalizado (não recusa nada).
rules.overtime.destinationopcionalpaid | 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.hourBankopcionalobjectBanco 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.validityMonthsopcionalinteger≥ 1, ≤ 12
rules.weeklyRestDayopcionalintegerDia do descanso semanal remunerado (DSR, AEJ registro 07 tipo 1); 0 = domingo (padrão), null = nenhum. · ≥ 0, ≤ 6
rules.nightopcionalobjectNoturno (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.enabledopcionalboolean
rules.night.startopcionalstring
rules.night.endopcionalstring
rules.night.reducedHouropcionalboolean
rules.night.multiplieropcionalnumber
rules.minimumBreakopcionalobjectArt. 71 da CLT; só sinaliza.
rules.minimumBreak.over6hMinutesopcionalinteger
rules.minimumBreak.from4to6hMinutesopcionalinteger

Respuestas

CódigoDescripción
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`).

Ejemplo con curl

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":{}}'