All functions in this section operate against a Seats.io event (identified by
event_id), not a chart. A Seats.io event must be created with create_event_seatsio before any hold or booking calls can be made.Full seat reservation flow
Create the Seats.io event
Call
create_event_seatsio once when setting up a new TMT event to link it to a Seats.io chart. This creates the seat-status tracking layer for that specific event.Hold seats during checkout
When a customer selects seats, call
hold_seats_seatsio. This creates a hold token with a 10-minute expiry and immediately reserves the selected seats against that token. Return the hold token to the client.Process payment
While the seats are held, process the customer’s payment through the TMT order and payment system. The hold token keeps the seats unavailable to other buyers.
Book seats on success — or release on failure
- Payment succeeded: call
book_seats_seatsiowith theevent_id,seats, andhold_token. This permanently marks the seats asbookedin Seats.io. - Payment failed or timed out: call
release_seats_seatsioorexpire_hold_token_seatsioto free the seats immediately.
Create a Seats.io event
create_event_seatsio creates a new event in Seats.io by linking a chart to a TMT event ID. Call this once per TMT event during event setup.
Request parameters
The unique key of the Seats.io chart to use as the venue layout for this event.
The TMT event ID. This becomes the Seats.io event key, linking the two systems.
Display name for the event in the Seats.io dashboard.
Event date in
YYYY-MM-DD format.Response fields
The Seats.io event object created. Includes
id, key (matches the event_id sent), chartKey, name, date, and initial seat status counters.The
event_id you provide becomes the Seats.io event key. Use this same value in all subsequent hold_seats_seatsio, release_seats_seatsio, and book_seats_seatsio calls.List Seats.io events
list_event_seatsio returns all events in the Seats.io workspace.
Response fields
Array of all Seats.io event objects. Each object includes
id, key, chartKey, name, date, and seat status summary fields.Hold seats
hold_seats_seatsio temporarily reserves a set of seats for a customer. It creates a new hold token with a 10-minute expiry and immediately holds the specified seats against that token.
Request parameters
The Seats.io event key (equal to the TMT event ID used when creating the event).
Array of seat labels to hold. Labels must match the object IDs defined in the Seats.io chart (e.g.
"A-1", "B-12").Response fields
The hold result returned by Seats.io. Contains details of the hold operation. The hold token object (with
token and expiresAt) is embedded within this object and should be stored by the caller for use in subsequent book_seats_seatsio or release_seats_seatsio calls.Release seats
release_seats_seatsio releases held seats back to available status. Call this when a customer abandons checkout or payment fails.
Request parameters
The Seats.io event key.
Array of seat labels to release.
The hold token string associated with the hold. If provided, only seats held under this token are released. If omitted, the seats are released regardless of hold token (admin override).
Response fields
The release result returned by Seats.io.
Expire a hold token
expire_hold_token_seatsio immediately expires a hold token, releasing all seats associated with it in a single operation. Use this as a cleanup call when an entire checkout session is abandoned.
Request parameters
The hold token object. Must contain a
token string property with the hold token value.The hold token string value. This is extracted as
hold_token.token internally and passed to holdTokens.expiresInMinutes with a value of 0 to force immediate expiry.Response fields
The hold token object as provided in the request.
Always
true on a successful response, confirming the token has been expired.Book seats
book_seats_seatsio confirms the booking of held seats, marking them as permanently booked in Seats.io. Supports both individually assigned seats and general admission (GA) areas in a single call.
Request parameters
The Seats.io event key.
Array of seats to book. Two element types are supported and can be mixed:
- Assigned seat — a plain string with the seat label (e.g.
"A-1") - GA area — an object with
objectId(string) andquantity(number)
The hold token object returned by
hold_seats_seatsio. Must contain a token string property.The hold token string value used to identify the existing hold.
Response fields
Results broken out by seat type.
The booking result from Seats.io for assigned (non-GA) seats.
null if no assigned seats were in the request.Array of GA booking results. Each entry contains
objectId, quantity, and the raw Seats.io result for that GA area. Empty array if no GA seats were in the request.The event ID from the request, echoed back in the response.
The hold token object from the request, echoed back in the response.
A count breakdown of booked seats.
Count of individually assigned seats booked.
Count of GA area entries (not total GA tickets) booked.
Total number of entries in the
seats array (assigned + GA entries combined).After a successful
book_seats_seatsio call, generate the corresponding TMT tickets using tickets_generate and create the order record. Seats.io and TMT ticket state are not automatically synchronised — the booking step in Seats.io must be followed by ticket generation in TMT to complete the sale.