get/api/v1/time-clock/entries
Checadas por rango de días
Rango en la zona horaria de la empresa, máximo 62 días. Las checadas nunca se modifican; las correcciones son eventos aparte.
Permiso: time_entries:read (Consultar checadas)
Parámetros
employeeId (query, string (uuid)) from (query, string, obligatorio) to (query, string, obligatorio) needsReview (query, "true" | "false")
Errores: 400 Datos inválidos (VALIDATION_ERROR, con `fields`). · 401 Llave inválida, revocada o vencida (API_KEY_INVALID, API_KEY_REVOKED, API_KEY_EXPIRED). · 402 El plan de la empresa no incluye la API pública o la función (PLAN_LIMIT). · 403 La llave no tiene el alcance (API_SCOPE_MISSING) o la ruta no es pública. · 404 No existe o es de otra empresa (responden igual). · 429 Límite por minuto de la llave (RATE_LIMITED). Ver `Retry-After`.
post/api/v1/time-clock/entries
Registrar una checada (method=api)
La hora oficial la pone el servidor; `deviceTimestamp` es solo informativa. Reintentar con la misma `idempotencyKey` devuelve la misma checada (200). Responde 201 si es nueva.
Permiso: time_entries:write (Registrar checadas (method=api))
Respuesta 200 Ya existía (idempotencia).
Errores: 400 Datos inválidos (VALIDATION_ERROR, con `fields`). · 401 Llave inválida, revocada o vencida (API_KEY_INVALID, API_KEY_REVOKED, API_KEY_EXPIRED). · 402 El plan de la empresa no incluye la API pública o la función (PLAN_LIMIT). · 403 La llave no tiene el alcance (API_SCOPE_MISSING) o la ruta no es pública. · 404 No existe o es de otra empresa (responden igual). · 429 Límite por minuto de la llave (RATE_LIMITED). Ver `Retry-After`.