---
title: "Create a Check-in"
method: POST
path: "/customers/check-ins"
tags: ["CheckIns"]
---

# Create a Check-in

`POST /customers/check-ins`

Records a new check-in for a customer at the given site.

## Request body

- object
  - `customer_id` string, required — The customer ID associated with this check-in
  - `membership_id` string — The membership ID associated with this check-in
  - `site_id` string, required — The site ID where this check-in happened
  - `method_id` string, nullable — Identifier of the method that produced the check-in. Use one of the generic string codes (`scanned`, `check_in_button`) for human-driven check-ins, or the ID of an integrated resource such as a Gantner device for hardware-driven check-ins. When passing a resource ID, also set `method_type` accordingly.
  - `method_type` 'gantner', nullable — The type of method used to create this check-in. Omit this field for a generic method, or set to `gantner` when the method is an allowed resource such as a Gantner Device.

## Response `201`

The check-in was successfully retrieved

- object
  - `data` CheckIn, required — A `CheckIn` represents an instance of a customer arriving at a site. Check-ins are typically created when a customer scans an associated barcode, taps a wearable on a Gantner reader, or is checked in manually via the Trybe app.
    - `id` string, required — The ID of this check-in
    - `customer` CheckInCustomer, required — Summary details of the customer who checked in.
      - `id` string, uuid, required — The customer ID associated with this check-in
      - `first_name` string, required — The customer's first name
      - `last_name` string, required — The customer's last name
      - `full_name` string, required — The customer's full name
      - `email` string, required — The customer's email address
    - `membership_id` string, required — The membership ID associated with this check-in
    - `site_id` string, required — The site ID where this check-in happened
    - `method` CheckInMethod, required — Details of the method used to record the check-in.
      - `name` string, required — The name of the method used to create this check-in
    - `source` 'app' | 'kiosk' | 'gantner' | 'null', nullable, required — Where the check-in/out originated: `app` (staff app check-in button), `kiosk` (self-service kiosk), or `gantner` (Gantner access gate). Null for records created before source tracking existed.
    - `checked_in_at` string, date-time, nullable, required — The datetime when this check-in happened
    - `checked_out_at` string, date-time, nullable, required — The datetime when this check-out happened

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `422` — The request didn't pass validation

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
