Saltar al contenido

Marca o ponto

POST/api/time-tracking/punches

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.

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.

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)
clientRequestIdopcionalstringmax 64
collectoropcional01 | 02
latitudeopcionalnumber
longitudeopcionalnumber
accuracyMetersopcionalnumber

Respuestas

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

Ejemplo 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 '{}'