pricing_mode'fixed' | 'quote'
Whether a catalog item's price and duration are known up front.
Orthogonal to :class:SMBServiceKind, which describes the resource
model (staff / asset / seats) rather than the price. A quotable service
can still be staff-delivered or asset-based, so this cannot be folded
into the kind discriminator.
- FIXED: catalog price and duration apply (the default, and every
pre-existing item).
- QUOTE: neither is knowable until the owner has seen the job. The
agent collects intake answers and files a quote request instead of
booking a slot or taking an order.
ungrouped_rankinteger nullable
Display position among items with no group; null sorts last. Change it with the reorder endpoint.
kind'classic' | 'rental' | 'group'
Discriminator for the bookable-service shape.
- CLASSIC: staff-delivered service (haircut, consultation, massage, ...).
- RENTAL: asset-based reservation (court, room, equipment).
- GROUP: multi-participant session (class, workshop, tour).
buffer_minutesinteger
Turnover/cleanup time reserved after each booking. Applies to every service kind; default 0 means no buffer.
service_location'business' | 'customer'
Where a classic service is delivered.
max_participantsinteger nullable
Capacity for kind='group': how many seats a single session can sell across all registrations. Must be None for classic and rental services (those are always exclusive to one client per booking).
staff_idsstring[]
Staff assigned to this service; must be empty for kind='rental'.
advance_booking_minutesinteger
How far into the future customer-facing channels (public booking page, voice agent) may book this service. Applies to every kind.
location_idsstring[]
Locations where this service is offered; empty list means all locations.
display_on_booking_pageboolean
travel_minutesinteger
Travel time in minutes added before/after appointments for customer-location services. Blocks the staff member's calendar but is not visible to the customer. Ignored when service_location='business'.
travel_beforeboolean
Add travel time before the appointment (outbound trip).
travel_afterboolean
Add travel time after the appointment (return trip).
created_at_unixinteger
Unix timestamp (seconds since epoch)
updated_at_unixinteger
Unix timestamp (seconds since epoch)
duration_minutesinteger required
Default option's duration; serialized for read compatibility.
pricenumber nullable required
Default option's price; serialized for read compatibility.