---
title: "Clock in"
method: POST
path: "/time-clock/v1/time-clocks/{timeClockId}/clock-in"
tags: ["Time Clock:v1:TimeClocks:TimeClock:ClockIn"]
---

# Clock in

`POST /time-clock/v1/time-clocks/{timeClockId}/clock-in`

Record the start time for the work period of an employee. The start time is automatically captured when the call is executed.

## Path parameters

- `timeClockId` integer, required — The unique identifier of the time clock

## Request body

- ClockInRequest
  - `userId` integer, required — The unique identifier of the user. Make sure the user is assigned to the specified time clock.
  - `jobId` string — The unique identifier of the associated job or sub-job. Make sure the job is assigned to the specified time clock. This field is required if the setting to enforce job assignment for time clock usage is enabled.
  - `timezone` string — The timezone in Tz format (e.g. America/New_York). If timezone is not specified, it will use the default timezone in the time clock settings.
  - `schedulerShiftId` string — The scheduled shift from the schedule associated with the clocking in event
  - `timestamp` integer — The clock-in time in Unix format (in seconds). If omitted, the server captures the time when the request is received. Must be no more than 12 hours in the past and not in the future. Use to record a clock-in that already happened - typically when a physical clock device is flushing queued punches after recovering from offline mode.
  - `locationData` GpsData
    - `address` string — The address associated with the GPS data.
    - `longitude` number — The longitude coordinate.
    - `latitude` number — The latitude coordinate.

## Response `200`

Successful Response

- APIResponseClockInResponse
  - `requestId` string
  - `data` ClockInResponse, required
    - `shift` V2FeaturesPunchclockExternalApiV1TimeClocksModelsShiftResponseShiftResponse, required
      - `id` string, required — The unique identifier of the time clock
      - `managerNote` string — The manager note providing additional details
      - `employeeNote` string — The employee note providing additional details
      - `start` TimeActivityTimePointResponse, required
        - `timestamp` integer, required — The timestamp in Unix format (in seconds)
        - `timezone` string, required — The timezone in Tz format (e.g. America/New_York)
        - `locationData` GpsData
          - `address` string — The address associated with the GPS data.
          - `longitude` number — The longitude coordinate.
          - `latitude` number — The latitude coordinate.
        - `geofenceId` string — The ID of the geofence the user was inside when this punch was recorded. None if the punch was outside any configured geofence.
        - `source` PunchSourceResponse
          - `id` string — Unique identifier of the source (for NFC or geofence-based sources)
          - `type` 'autoClockOut' | 'nfc' | 'mobile' | 'pc' | 'kiosk' | 'api' | 'admin', required — An enumeration.
          - `mode` 'dailyLimit' | 'hourLimit' | 'schedulerShiftEnded' | 'geofenceExit' | 'disabledGps' | 'disabledGpsPermission' — An enumeration.
          - `name` string — Human-readable name of the source (for NFC or geofence-based sources)
      - `end` TimeActivityTimePointResponse
        - `timestamp` integer, required — The timestamp in Unix format (in seconds)
        - `timezone` string, required — The timezone in Tz format (e.g. America/New_York)
        - `locationData` GpsData
          - `address` string — The address associated with the GPS data.
          - `longitude` number — The longitude coordinate.
          - `latitude` number — The latitude coordinate.
        - `geofenceId` string — The ID of the geofence the user was inside when this punch was recorded. None if the punch was outside any configured geofence.
        - `source` PunchSourceResponse
          - `id` string — Unique identifier of the source (for NFC or geofence-based sources)
          - `type` 'autoClockOut' | 'nfc' | 'mobile' | 'pc' | 'kiosk' | 'api' | 'admin', required — An enumeration.
          - `mode` 'dailyLimit' | 'hourLimit' | 'schedulerShiftEnded' | 'geofenceExit' | 'disabledGps' | 'disabledGpsPermission' — An enumeration.
          - `name` string — Human-readable name of the source (for NFC or geofence-based sources)
      - `createdAt` integer — The creation time of the time activity
      - `modifiedAt` integer — The last modification time of the time activity
      - `userId` integer, required — The unique identifier of the user. Make sure the user is assigned to the specified time clock.
      - `jobId` string — The unique identifier of the associated job or sub-job. Make sure the job is assigned to the specified time clock.
      - `schedulerShiftId` string — The scheduled shift from the schedule associated with the clocking in event

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/connecteam/apis/connecteam-api-documentation.md) · [All operations](https://skmtc.net/connecteam/apis/connecteam-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/connecteam/connecteam-api-documentation/revisions/d8f7f302222e/schema)
