---
title: "Check out tickets by key"
method: PUT
path: "/tickets/{key}/check-out"
tags: ["Tickets"]
---

# Check out tickets by key

`PUT /tickets/{key}/check-out`

## Path parameters

- `key` string, required — Transition key. Supports canonical ticket IDs (tkt_*) and order IDs (ord_*).

## Request body

- object
  - `eventId` string — Optional event scope guard for check-in transitions. When provided, check-in fails if the ticket/order event does not match.
  - `deviceId` string — Unique identifier of the scanning device (optional).
  - `allowPartialOrderCheckIn` boolean — Confirms an order-level check-in when some tickets are already redeemed and some remain active.
  - `admissionIds` string[] — Optional scanner admission filters. When provided, check-in only applies to matching ticket admissions.
  - `sectionIds` string[] — Optional scanner section filters. When provided, check-in only applies to matching ticket sections.
  - `idempotencyKey` string — Stable client-generated key used to replay a scan request without turning a timed-out success into a duplicate denial.

## Response `200`

OK

- object
  - `tickets` Ticket[], required — Transition result tickets. Single-item array for ticket targets and full order tickets for order targets.
    - `id` string, required — Unique identifier for the ticket
    - `createdAt` string, date-time, required — Timestamp when the ticket was created in ISO 8601 format
    - `updatedAt` string, date-time, required — Timestamp when the ticket was last updated in ISO 8601 format
    - `scans` object[], required — Array of all scan records for this ticket (check-ins and check-outs)
      - `id` string, required — Unique identifier of the ticket scan record
      - `scannedAt` string, date-time, required — Timestamp when the ticket was scanned in ISO 8601 format
      - `scannedById` string, required — Unique identifier of the user who performed the scan
      - `scannedBy` object, required — Detailed information about the user who performed the scan
        - `id` string, required — Unique identifier of the user who performed the ticket scan
        - `firstName` string, required — First name of the user who performed the scan
        - `lastName` string, required — Last name of the user who performed the scan
        - `email` string, email, required — Email address of the user who performed the scan
      - `deviceId` string, required — Unique identifier of the device used for scanning
      - `kind` 'CHECK_IN' | 'CHECK_OUT', required — Type of scan operation: CHECK_IN for entry, CHECK_OUT for exit
    - `status` 'ACTIVE' | 'REDEEMED' | 'CANCELLED', required — Current status of the ticket: ACTIVE (can be used), REDEEMED (already used), CANCELLED (invalidated or refunded)
    - `attendee` object, required — Attendee information for this ticket - editable by tenant admins
      - `firstName` string, required — First name of the ticket attendee
      - `lastName` string, required — Last name of the ticket attendee
      - `email` string, email, required — Email address of the ticket attendee
      - `phone` string — Phone number of the ticket attendee (optional)
    - `customerId` string, required — Unique identifier of the customer who purchased this ticket (read-only)
    - `eventId` string, required — Unique identifier of the event this ticket grants access to
    - `event` object, required — Event details for this ticket
      - `id` string, required — Event ID reference
      - `name` string, required — The title of the event shown to attendees
      - `slug` string, required — URL-friendly identifier for the event
      - `location` object, required — Structured location details for the event
        - `id` string, required — Location identifier
        - `googlePlaceId` string — Google Place ID for this location
        - `createdAt` string, date-time, required — Timestamp in ISO 8601 format when the location was created
        - `updatedAt` string, date-time, required — Timestamp in ISO 8601 format when the location was last updated
        - `name` string, required — Location name
        - `address` string, required — Formatted address
        - `city` string — City name
        - `state` string — State or region
        - `postcode` string — Postal code
        - `country` string, required — Country name
        - `latitude` number, required — Latitude coordinate
        - `longitude` number, required — Longitude coordinate
        - `timeZone` string, required — IANA timezone identifier (e.g., 'America/New_York', 'Europe/London', 'Australia/Sydney', 'UTC'). Must be validated against the IANA timezone database where used.
        - `types` string[] — Google Place types indicating the category and nature of this location
        - `description` string — AI-generated description of the place, when available
        - `image` object — Primary location photo
          - `src` string, uri, required
          - `alt` string, required
          - `width` number, required
          - `height` number, required
        - `venueId` string — Venue identifier if this location is a managed venue on the platform
      - `entryStartsAt` string, required — Wall clock time when event entry begins (no timezone, displays same everywhere)
      - `entryEndsAt` string, required — Wall clock time when event entry ends (no timezone, displays same everywhere)
      - `images` object, required
        - `mobile` object, required — Mobile-optimized image for the event
          - `src` string, uri, required
          - `alt` string, required
          - `width` number, required
          - `height` number, required
        - `desktop` object, required — Desktop-optimized image for the event
          - `src` string, uri, required
          - `alt` string, required
          - `width` number, required
          - `height` number, required
    - `admissionId` string, required — Unique identifier of the admission type/tier this ticket represents
    - `admission` object, required — Admission details for this ticket
      - `id` string, required — Admission ID reference
      - `name` string, required — Admission type name at time of purchase
      - `price` object, required — Price snapshot at time of purchase
        - `base` number, required — Base price in smallest currency unit (cents)
        - `booking` number, required — Booking fee in smallest currency unit (cents)
        - `currency` string, required — ISO 4217 currency code
      - `entryStartsAt` string, required — Wall clock time when ticket holder can enter (no timezone, displays same everywhere)
      - `entryEndsAt` string, required — Wall clock time when entry period ends (no timezone, displays same everywhere)
    - `section` object — Section details for this ticket (if assigned to a section)
      - `id` string, required — Section ID reference
      - `name` string, required — Section name at time of purchase
      - `location` object, required — Physical location details
        - `name` string, required — Venue or location name
        - `address` string — Street address
        - `city` string — City name
        - `state` string — State or province
        - `postcode` string — Postal/ZIP code
        - `country` string — ISO country code
        - `latitude` number — Geographic latitude coordinate
        - `longitude` number — Geographic longitude coordinate
        - `timeZone` string — IANA timezone identifier
    - `orderId` string, required — Unique identifier of the order this ticket was purchased in
    - `orderItemId` string — Unique identifier of the specific order item this ticket represents
    - `teamId` string, required — Identifier of the team that owns this ticket
    - `promoterId` string, required — Unique identifier of the promoter/organizer who created this event
  - `targetType` 'ticket' | 'order', required — Resolved target scope from the provided key.
  - `order` object
    - `id` string, required — Unique identifier of the order this ticket was purchased in
    - `checkedInCount` integer
    - `items` object[], required
      - `quantity` integer, required

## Other responses

- `400` — 400
- `401` — 401
- `403` — 403
- `404` — 404
- `409` — 409
- `412` — 412
- `422` — 422
- `429` — 429
- `500` — 500
- `501` — 501
- `503` — 503

---

[API](https://skmtc.net/session/apis/session-services-api.md) · [All operations](https://skmtc.net/session/apis/session-services-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/session/session-services-api/versions/a1bb6f6c8a2e/schema)
