Vai al contenuto

Marca o ponto

POST/api/time-tracking/punches

Auth
Richiede un token
Chiave API:
Non accetta chiavi API
X-CommunityId
X-CommunityId Invia l’X-CommunityId della community in cui avviene l’operazione.
Le descrizioni degli endpoint provengono dalla specifica dell’API e per ora sono in portoghese. L’interfaccia intorno è tradotta.

Empregado cadastrado no estabelecimento do espaço (sem cadastro: 403 `notEmployee`, com `errors[0].param` = `employee`), depois de ver o aviso (409 `noticeRequired`). Grava o registro tipo 7 com o próximo NSR do estabelecimento, a hora do servidor (o relógio do aparelho não conta), o coletor (`01` app mobile, `02` navegador; padrão `02`), on-line e o hash SHA-256 encadeado. Grava o IP (o último salto do proxy confiável, nunca um `X-Forwarded-For` enviado pelo cliente), a origem e o navegador e, se vierem, latitude, longitude e precisão; sem elas (ou inválidas), a marcação entra como "sem localização". **Nada recusa a marcação por horário ou dia; por localização, só a cerca virtual do espaço no modo `BLOCK`:** fora do raio, 422 `geofenceOutside` (a mensagem traz a distância); sem localização, 422 `geofenceNoLocation` (pede para ativar a localização). No modo `FLAG` a marcação entra com `outsideRadius`. O mesmo `clientRequestId` devolve a marcação já gravada (200, `replayed: true`), sem criar outra. Não existe rota para alterar ou apagar marcação.

Header

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

Corpo della richiesta application/json

NomeTipoDescrizione
spaceIdfacoltativostring (uuid)
clientRequestIdfacoltativostringmax 64
collectorfacoltativo01 | 02
latitudefacoltativonumber
longitudefacoltativonumber
accuracyMetersfacoltativonumber

Risposte

CodiceDescrizione
200Toque duplo: a marcação do mesmo `clientRequestId`, já gravada (`replayed: true`).
201Marcaçã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.
409Aviso de IP e localização não visto (`noticeRequired`) ou espaço sem estabelecimento (`noEstablishment`).
422Dado inválido (CPF ou CNPJ com dígito errado, dia, período, campo obrigatório, pessoa sem acesso ao espaço, CPF do responsável ausente).

Esempio con curl

curl -X POST "https://api.memberfy.net/api/time-tracking/punches" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'