Start a break on an open shift
Moves the shift to `on_break` and pauses whatever timer the shift was running, so break time never lands on a customer's invoice, then returns the shift. Requires a workspace member with `time_entries:write` and the `time_tracking_v1` control enabled, and only the person on shift may control it. An unknown shift is reported as not found; a shift already on break is returned unchanged, and any other state is refused as a transition conflict.
apiKeyAuthorizationBearer <snoze_sk_…>Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
workspaceId*stringshiftId*stringapplication/json- body
note?string|nullclientMutationId?string|nullSuccess
application/json- response
data*curl -X POST 'https://api.snoze.dev/v1/workspaces/string/shifts/string/break' \ -H 'Content-Type: application/json' \ -d '{}'{ "data": { "shift": { "id": "string", "workspaceId": "string", "userId": "string", "userDisplayName": "string", "status": "open", "startedAt": "string", "endedAt": "string", "breakStartedAt": "string", "accumulatedBreakMs": 0, "workedMs": 0, "closedBy": "user", "note": "string", "createdByUserId": "string", "updatedByUserId": "string", "createdAt": "string", "updatedAt": "string" }, "serverTime": "string", "authoritativeWorkedMs": 0 }}Clock in and open a shift
Opens a shift for the caller with an optional note and returns it with the server clock. Requires a workspace member with `time_entries:write` and the `time_tracking_v1` control enabled. A unique index enforces one open shift per person, so a caller who is already clocked in is refused as a transition conflict. Repeating the same `clientMutationId` replays the original shift rather than opening a second one.
End a break and resume the shift
Returns the shift to `open`, adds the break to its accumulated break time, and resumes the timer the break interrupted if that timer is still paused. Requires a workspace member with `time_entries:write` and the `time_tracking_v1` control enabled, and only the person on shift may control it. An unknown shift is reported as not found; a shift already open is returned unchanged, and any other state is refused as a transition conflict.