---
title: "Get a booking by id"
method: GET
path: "/v1/bookings/{bookingId}"
tags: ["Bookings"]
---

# Get a booking by id

`GET /v1/bookings/{bookingId}`

## Request

- Base URL: `https://api.cliento.com`
- URL: `https://api.cliento.com/v1/bookings/{bookingId}`
- Auth: HTTP bearer

The same booking as under its location, found from its id. For a caller that holds an id and not the location it belongs to. The answer carries `locationId`.

## Path parameters

- `bookingId` string, required

## Response `200`

OK

- Booking: A time on one or more resources, at one location. An appointment or a class has the services that were booked and the customers it is for. A reservation only blocks the time. The services' names, durations and prices are kept as they were when the booking was made, so a later change to a service does not change the booking.
  - `afterTimeMinutes` integer, required: Time kept free on the resource after the services, for cleaning up or resting. It is part of the time between `startsAt` and `endsAt`.
  - `createdAt` string, date-time, required
  - `customFields` CustomField[], required: The location's own fields on the booking, with their values.
    - `key` string, required
    - `label` string
    - `type` string: The kind of field, in lower case, such as `text` or `checkbox`. The list is open.
    - `value` string: The value, of the JSON type the field holds. Left out when not given.
  - `customers` BookingCustomer[], required: The customers the booking is for: persons, companies and vehicles. Empty for a reservation, and for a class nobody has booked yet.
    - `bookedAs` string: The name the customer was booked under, when it differs from the customer's own.
    - `bookedAt` string, date-time, required
    - `cancelledAt` string, date-time
    - `cancelledChannel` string: Where the customer was cancelled from, with the same values as `channel`. Left out for a customer who is not cancelled.
    - `channel` string, required: Where the customer was booked from: `web` for online booking, `calendar` for staff in Cliento, `api` for this API. More values may be added.
    - `customFields` CustomField[], required: The location's own fields for this customer on the booking.
      - `key` string, required
      - `label` string
      - `type` string: The kind of field, in lower case, such as `text` or `checkbox`. The list is open.
      - `value` string: The value, of the JSON type the field holds. Left out when not given.
    - `customerId` string, required: The person, company or vehicle. The id's prefix says which, and that type's API has the rest.
    - `customerNote` string: What the customer wrote when booking online. Only with the scope `customers:read`.
    - `email` string: Only with the scope `customers:read`.
    - `identityNumber` IdentityNumber: A number issued by an authority that identifies a person, such as a personnummer. The accepted format of each type is listed under Persons.
      - `number` string, required: In the format of its type: twelve digits for a Swedish personnummer.
      - `type` string, required: The kind of number, in lower case, such as `se_personnummer` or `foreign`. More values may be added.
    - `name` string: The customer's name; for a vehicle, what it is called in Cliento.
    - `organisationNumber` string: For a company: the organisation number. Only with the scope `customers:read`.
    - `otherPhoneNumber` string: Another phone number. Only with the scope `customers:read`.
    - `phoneNumber` string: Mobile number. Only with the scope `customers:read`.
    - `price` string: This customer's price, where each customer has one, as on a class.
    - `priceFrom` boolean, required: True when the price is a starting price.
    - `registrationNumber` string: For a vehicle: the registration number. Only with the scope `customers:read`.
    - `status` string, required: This customer's status on the booking, with the same values as the booking's `status`. It differs from the booking's on a class, where one customer can cancel and the others stay booked.
    - `type` string, required: `person`, `company` or `vehicle`. More values may be added.
  - `description` string: A text of its own for the booking: what a reservation is for, or what staff wrote in place of a service.
  - `doneAt` string, date-time: When staff set the booking as done. Left out until then.
  - `endsAt` string, date-time, required: When the time held on the resource ends, in UTC. The last `afterTimeMinutes` of it are the time kept free after the services.
  - `id` string, required
  - `locationId` string, required
  - `minPlaces` integer: For a class: the fewest customers it runs with. Left out for other bookings.
  - `note` string: Staff's note on the booking. Not shown to the customer.
  - `payments` BookingPayment[], required: The payments made for the booking.
    - `amount` string, required
    - `customerId` string: The customer the payment was made for, when it was made for one.
    - `paidOn` string, date: The day of the payment, in the location's time zone.
    - `provider` string, required: Who handled the payment, in lower case, such as `stripe` or `klarna`. The list is open, so accept a value you do not know.
    - `reference` string: The payment's reference, as shown to the customer.
    - `refundedAmount` string, required
    - `refundedOn` string, date: The day of the refund, when there is one.
    - `status` string, required: `paid`, `unpaid`, or a refund state such as `refunded` or `refunded_partially`. More values may be added.
    - `type` string, required: `online` for a payment made when booking online, `pre_paid` for one made in advance, `pos` for one made at the point of sale. More values may be added.
  - `places` integer: For a class: how many places it has. Left out for other bookings.
  - `placesBooked` integer: For a class: how many places are booked. Left out for other bookings.
  - `price` string: The price of the booking as a whole, when it has one. Follows "Amounts" in the introduction.
  - `priceFrom` boolean, required: True when the price is a starting price.
  - `reminders` BookingReminder[], required: The SMS reminders for the booking.
    - `customerId` string, required
    - `status` string, required: How far the message has come, in lower case, such as `pending`, `sent` or `delivered`. The list is open, so accept a value you do not know.
    - `statusAt` string, date-time, required: When it got that status.
    - `type` string, required: `pre_reminder` for one sent before the booking; `post_reminder1` and `post_reminder2` for those sent after it. More values may be added.
  - `reservationType` string: For a reservation: what the time is blocked for, in lower case, such as `lunch` or `vacation`. Left out when staff gave none. The list is open.
  - `resources` BookingResource[], required: The resources the booking is on. One of them is the primary resource.
    - `primary` boolean, required: True for the booking's primary resource: the one it was booked with. A booking has exactly one. The others are held for the same time, such as a room.
    - `resourceId` string, required
  - `sales` BookingSale[], required: The sales the booking was sold in.
    - `createdAt` string, date-time: When the sale was created.
    - `customerId` string: The customer the sale was made to, when it names one.
    - `invoiceStatus` string: For a sale with an invoice: whether the invoice is paid, such as `unpaid` or `paid`. The list is open.
    - `paidAmount` string, required: What has been paid in the sale as a whole. A sale can cover more than this booking.
    - `saleId` string, required
    - `status` string, required: The sale's state, in lower case, such as `open`, `paid` or `void`. The list is open, so accept a value you do not know.
    - `type` string, required: `pos_sale`, `order` or `invoice`. More values may be added.
  - `series` BookingSeries: A series of bookings that recur. Each booking in it is a booking of its own and has the series' id. The series has the rule the bookings were made from.
    - `id` string, required
    - `recurrenceRule` string, required: The recurrence rule, as an iCalendar RRULE.
  - `services` BookingService[], required: The services booked, as they were when booked. Empty for a reservation.
    - `durationMinutes` integer, required
    - `name` string, required
    - `price` string
    - `priceFrom` boolean, required: True when the price is a starting price.
    - `serviceId` string, required
  - `startsAt` string, date-time, required: When the booking starts, in UTC.
  - `status` string, required: `booked`; `show` and `no_show`, which staff set when the customer came or did not; `done`, which staff set when the work is finished; or `cancelled`. For a class, each customer has a status of their own. More values may be added.
  - `type` string, required: `appointment`: a time for one customer, or for the customers that come together, such as a person and their vehicle. `class`: a time several customers book a place at. `reservation`: time blocked on the resource, with no customer. The list is open, so accept a value you do not know.
  - `updatedAt` string, date-time, required

## Other responses

- `default`: Any failure. See the Errors section.

---

[API](https://skmtc.dev/cliento/apis/cliento-api.md) · [All operations](https://skmtc.dev/cliento/apis/cliento-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cliento/apis/cliento-api/revisions/29ca811bc061?raw)
