---
title: "Record a check-in punch"
method: POST
path: "/api/v1/staff_check_ins"
tags: ["Staff Check-Ins"]
---

# Record a check-in punch

`POST /api/v1/staff_check_ins`

## Request

- Base URL: `https://api.checkcherry.com`
- URL: `https://api.checkcherry.com/api/v1/staff_check_ins`
- Auth: none declared. Required headers: `Api-Key`

Records a staff punch for the authenticated user. One endpoint drives all three actions via `kind`:

- `check_in` — open a new shift. Fails if the user already has an open shift.
- `check_out` — close the user's currently-open shift.
- `status_update` — add a note and/or photo to the open shift (a note or attachment is required).

`event_id` optionally links the shift to a booking (there is no assignment gate — any staffer may check in to any event, or none). Location (`latitude`, `longitude`, `location_accuracy`) is best-effort — omit it and the punch still succeeds. Times are always server-stamped; any client-supplied time is ignored. `note` and `attachments` (ActiveStorage signed ids) may accompany a check-in or check-out too, and are stored as a note on the shift.

Available only when the franchise has staff check-in enabled, and only to staff/admin users.

## Headers

- `Api-Key` string, required

## Request body

- object
  - `kind` 'check_in' | 'check_out' | 'status_update', required: The punch type
  - `event_id` integer: Optional booking (Event) to link the shift to
  - `latitude` number: Best-effort latitude at the moment of the punch
  - `longitude` number: Best-effort longitude at the moment of the punch
  - `location_accuracy` number: Best-effort location accuracy in meters
  - `note` string: Optional note (required for status_update if no attachment)
  - `attachments` string[]: ActiveStorage signed ids for photos/files

## Response `200`

checked in

## Other responses

- `422`: already checked in

---

[API](https://skmtc.dev/checkcherry/apis/check-cherry-business-api.md) · [All operations](https://skmtc.dev/checkcherry/apis/check-cherry-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/checkcherry/apis/check-cherry-business-api/revisions/84a9aabdf519?raw)
