Manage active customer tickets, calling, serving, and transfers.
Once a customer is in a queue, operators can manage their progression through the service lifecycle.
| Field | Type | Description |
|---|---|---|
id | string | Unique ticket identifier. |
queueId | string | Queue the ticket belongs to. |
userId | string | User who owns the ticket (or operator ID for ghost tickets). |
number | number | Sequential ticket number within the queue. |
displayCode | string | Human-readable code shown to the customer (e.g., A-015). |
status | string | Current status: waiting, called, serving, served, skipped, expired, cancelled. |
partySize | number | Number of people in the group. Defaults to 1. |
isPriority | boolean | Whether this is a priority/VIP ticket. |
isGhostMode | boolean | true for operator-created tickets (offline/VIP). Ghost tickets do not trigger user notifications. |
visitorName | string | Name of the visitor (for ghost/offline tickets). |
assignedToId | string | Operator assigned to serve this ticket. |
calledAt | string | ISO 8601 timestamp when the ticket was called. |
servedAt | string | ISO 8601 timestamp when the ticket was served. |
createdAt | string | ISO 8601 timestamp when the ticket was created. |
Automatically call the next available customer in a specific queue.
POST /v1/queues/{queueId}/call-next
X-API-Key: your_api_key_here
Content-Type: application/json
{
"serviceId": "ser_xyz..."
}Mark a ticket as "currently being served" after the customer has arrived at the counter.
POST /v1/tickets/{ticketId}/serve
X-API-Key: your_api_key_hereConfirm customer presence (usually via QR scan at the desk).
POST /v1/tickets/{ticketId}/present
X-API-Key: your_api_key_hereMark a customer as absent if they don't show up when called.
POST /v1/tickets/{ticketId}/skip-absent
X-API-Key: your_api_key_here
Content-Type: application/json
{
"reason": "Customer did not show up after 3 calls"
}Move a ticket to another queue or another operator.
POST /v1/tickets/{ticketId}/transfer-queue
X-API-Key: your_api_key_here
Content-Type: application/json
{
"targetQueueId": "que_vip...",
"prioritize": true
}POST /v1/tickets/{ticketId}/transfer
X-API-Key: your_api_key_here
Content-Type: application/json
{
"targetOperatorId": "user_456..."
}Restore an expired or skipped ticket back to an active state.
POST /v1/tickets/{ticketId}/recover
X-API-Key: your_api_key_here
Content-Type: application/json
{
"recoveryOption": "rejoin"
}