Skip to main content

Introduction

The Booking API provides comprehensive endpoints for creating and managing bookings in your reservation system. It supports multiple booking types and workflows for both customers and merchants.

Booking Types

The API supports three types of bookings:

Appointment

One-on-one bookings between a customer and a service provider

Event

Single-occurrence group bookings for special occasions

Class

Recurring group bookings for scheduled classes or sessions

Booking Statuses

Bookings progress through several statuses during their lifecycle:
StatusDescription
bookedInitial booking created
confirmedBooking confirmed by merchant or customer
completedService completed successfully
cancelledBooking cancelled by merchant or customer
no-showCustomer did not show up for the booking

Booking Workflows

Customer Workflow

Customers can:
  • Create bookings for appointments or join group bookings (events/classes)
  • View their booking details
  • Cancel bookings before the cancellation deadline

Merchant Workflow

Merchants have full control over bookings:
  • Create bookings for any customer
  • Update booking times and notes
  • Cancel bookings with a reason
  • View all bookings in a calendar view

Core Data Model

A booking consists of the following core fields:
id
integer
required
Unique booking identifier
status
string
required
Current booking status: booked, confirmed, completed, cancelled, or no-show
booking_type
string
required
Type of booking: appointment, event, or class
is_recurring
boolean
required
Whether this booking is part of a recurring series
merchant_id
uuid
required
ID of the merchant providing the service
employee_id
integer
ID of the assigned employee (for appointments)
service_id
integer
required
ID of the service being booked
location_id
integer
required
ID of the location where service is provided
from_date
timestamp
required
Start date and time of the booking
to_date
timestamp
required
End date and time of the booking
booking_series_id
integer
ID of the recurring booking series (if recurring)

Booking Details

Each booking has associated details for pricing and participants:
price_per_person
Price
required
Price charged per participant
cost_per_person
Price
required
Cost to merchant per participant
total_price
Price
required
Total price for the booking
total_cost
Price
required
Total cost for the booking
min_participants
integer
required
Minimum number of participants required
max_participants
integer
required
Maximum number of participants allowed
current_participants
integer
required
Current number of registered participants
merchant_note
string
Internal notes from the merchant
cancelled_by_merchant_on
timestamp
When the merchant cancelled the booking
cancellation_reason
string
Reason provided for cancellation

Recurring Bookings

Recurring bookings (classes) follow the iCalendar recurrence rule (RRULE) format:
rrule
string
required
iCalendar recurrence rule defining the pattern
dstart
timestamp
required
Start date of the recurring series
timezone
string
required
Timezone for the recurring series
is_active
boolean
required
Whether the recurring series is still active

Next Steps

Create Bookings

Learn how to create appointments and group bookings

Manage Bookings

Update, cancel, and manage existing bookings

Build docs developers (and LLMs) love