time field selects the mode:time) — the customer joins the live queue immediately and istime) — reserves a specific slot returned byGET /services/{id}/slots. A customer is required — provide exactly one ofcustomerId or customerExternalId.serviceId — an active service in your company.groupOfServiceId — the service group the service belongs to (from the branch tree).time from the slots endpoint and an existing customer.GET /tickets/{id}),queueSize and waitingTime for waiting tickets.time must be a UTC ISO-8601 datetime with a trailing Z and must be in the400 with a localized reason in error.Appointment booked successfully. for appointments andTicket booked successfully. for walk-ins. HTTP status is 201 in both cases.curl --location '/v1/tickets/book' \
--header 'X-Locale;' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"serviceId": "6fe8fb8b12",
"groupOfServiceId": "7c1f9a3b2d"
}'{
"message": "Appointment booked successfully.",
"data": {
"id": "k7m2p9x4q1",
"ticketNumber": "A042",
"status": "upcoming",
"statusAt": "2026-06-23T11:05:22.000Z",
"type": "appointment",
"time": "2026-07-01T09:30:00.000Z",
"branch": {
"id": "802b33af66",
"name": "Seef Mall Branch"
},
"service": {
"id": "802b33af66",
"name": "Account Opening"
},
"groupOfService": {
"id": "7c1f9a3b2d",
"name": "Teller Services"
},
"customer": {
"id": "9f2c8b7a4e1d6c3f0a5b8e2d7c4f1a9b",
"name": "Layla Hassan"
},
"bookedAt": "2026-06-23T11:05:22.000Z"
}
}