Bookings
Appointments your customers booked, and the kinds of appointment on offer. Read them, enter one on a customer's behalf, book a follow-up for a customer who already has one, and move, cancel or close one out — cancelling refunds and mails the customer the same way the planner does. Availability and schedules stay in the planner.
List bookings
Returns your appointments, latest start first. Filter with `status`, `paymentStatus`, `source`, `typeSlug`, `customer` and the period `from`/`to`; sort with `sort` and page with `limit` and `offset`. Phone, address, billing details and notes are only filled in for an API key that also has `read:customers`. Requires the `read:bookings` scope.
Create a booking
Books an appointment for a customer, as if your team entered it in the planner (`source: PLANNER`). It is confirmed at once and the customer gets the usual confirmation email. No payment is taken: a paid appointment type stays `UNPAID` until you mark it paid (`POST /v1/bookings/{id}/mark-paid`). `startsAt` must be a free time of that type; otherwise the call answers `409 slot_unavailable`. Requires the `write:bookings` scope.
Get a booking
Returns one booking. Phone, address, billing details and notes are only filled in for an API key that also has `read:customers`. Requires the `read:bookings` scope.
List appointment types
Returns the kinds of appointment your customers can book. Use a type's `slug` as `typeSlug` when booking. Requires the `read:bookings` scope.
Book a follow-up
Books the next appointment for the customer of an existing booking. Name, contact details and offer request come from that booking, so you only say when, and if it should differ, which appointment type and which team member. A follow-up is confirmed at once, counts as entered by your team (`source: PLANNER`), is free of charge whatever its type costs, and names the booking it follows in `followUpOf`. The customer gets the usual confirmation email. Only a confirmed, completed or no-show booking can be followed up. Requires the `write:bookings` scope.
Cancel a booking
Cancels a pending or confirmed appointment, frees the time and emails the customer. With `refund: true`, a payment made through Stripe goes back to the customer. Requires the `write:bookings` scope.
Reschedule a booking
Moves a confirmed appointment in the future to another time, updates the connected calendar and sends the customer a new confirmation. Requires the `write:bookings` scope.
Mark a booking completed
Records that the appointment took place. Only a confirmed booking changes; for any other the call changes nothing. Requires the `write:bookings` scope.
Mark a booking as a no-show
Records that the customer did not come. Only a confirmed booking changes; for any other the call changes nothing. Requires the `write:bookings` scope.
Mark a booking paid
Records that an unpaid booking was paid outside Stripe, e.g. in cash or by bank transfer. Only an `UNPAID` booking changes; for any other the call changes nothing. Requires the `write:bookings` scope.