Marca o ponto
POST/api/time-tracking/punches
- Auth
- Richiede un token
- Chiave API:
- Non accetta chiavi API
- X-CommunityId
X-CommunityIdInvia l’X-CommunityId della community in cui avviene l’operazione.
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
| Nome | Tipo | Descrizione |
|---|---|---|
X-CommunityIdfacoltativo | string (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
| Nome | Tipo | Descrizione |
|---|---|---|
spaceIdfacoltativo | string (uuid) | |
clientRequestIdfacoltativo | string | max 64 |
collectorfacoltativo | 01 | 02 | |
latitudefacoltativo | number | |
longitudefacoltativo | number | |
accuracyMetersfacoltativo | number |
Risposte
| Codice | Descrizione |
|---|---|
200 | Toque duplo: a marcação do mesmo `clientRequestId`, já gravada (`replayed: true`). |
201 | Marcaçã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. |
409 | Aviso de IP e localização não visto (`noticeRequired`) ou espaço sem estabelecimento (`noEstablishment`). |
422 | Dado 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 '{}'