---
title: "Correct a check-in"
method: PATCH
path: "/api/v1/staff_check_ins/{id}"
tags: ["Staff Check-Ins"]
---

# Correct a check-in

`PATCH /api/v1/staff_check_ins/{id}`

## Request

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

Corrects a recorded shift's times or the booking it is linked to. This is an after-the-fact correction, not a punch -- send `POST /api/v1/staff_check_ins` to record a live check-in or check-out.

Requires `own_staff_check_in_write` for your own shift, or `all_staff_check_in_write` for anyone's. Both grants are admin-only by default, matching the web, where corrections are an admin surface.

The shift's staff member cannot be changed -- moving a shift between people would rewrite a timesheet with no record of who actually worked it. Every correction is recorded in the audit trail with the user who made it.

## Path parameters

- `id` integer, required

## Headers

- `Api-Key` string, required

## Request body

- object
  - `check_in_at` string: Corrected check-in time (ISO 8601)
  - `check_out_at` string: Corrected check-out time (ISO 8601). Clearing it reopens the shift.
  - `event_id` integer: The booking (Event) the shift is linked to, or null to unlink it

## Response `200`

check-in corrected

## Other responses

- `422`: check-out before check-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)
