Passer à la navigation

Update Service

Update an existing service. Only the fields sent are changed.

Paramètres de chemin

service_idstringRequis

En-têtes

xi-api-keystringOptionnel
xi-workspace-idstring or nullOptionnel
The customer workspace a reseller's API key acts on.

Requête

This endpoint expects an object.
pricing_modeenumOptionnelPar défaut fixed

‘fixed’ (default): the item has a known price the agent can quote, and customers can book or order it directly. ‘quote’: the price depends on the job (renovation, catering, custom work), so no price or slot is offered; the agent collects the intake_questions and files a quote request instead. Takes effect only while quotes are enabled for the business. Group services cannot use ‘quote’.

Valeurs autorisées:
intake_questionslist of objectsOptionnel

Questions the agent asks before booking or ordering this item. Required for a useful pricing_mode='quote' item — without them a quote request arrives with nothing to price — but also valid on fixed-price items that need extra detail (current hair color before a dye job, allergies before a treatment).

groupslist of objectsOptionnel

Group memberships for this item. Each entry carries the group label and the item’s 0-based rank within that group.

ungrouped_rankinteger or nullOptionnel

Display position among items with no group; null sorts last. Change it with the reorder endpoint.

namestringOptionnel
descriptionstringOptionnel
variantslist of objectsOptionnel

Bookable options for this service. Always non-empty; variants[0] is the default option shown when callers don’t pick a specific variant. Each entry has its own duration and (optional) price, and uniqueness is keyed by duration.

kindenumOptionnelPar défaut classic

Classic = staff-delivered; rental = asset-based; group = multi-participant session.

Valeurs autorisées:
buffer_minutesintegerOptionnel

Turnover/cleanup time reserved after each booking. Applies to every service kind; default 0 means no buffer.

service_locationenumOptionnelPar défaut business

Where the service is delivered. business = client visits the business location (default); customer = staff travels to the client. Only meaningful for kind='classic'.

Valeurs autorisées:
add_onslist of objectsOptionnel
Optional extras that can be added to a booking of this service.
max_participantsinteger or nullOptionnel2-200

Capacity for kind='group': how many seats a single session can sell across all registrations. Must be null for classic and rental services (those are always exclusive to one client per booking).

capacityinteger or nullOptionnel
is_activebooleanOptionnel
any_staff_memberbooleanOptionnel
staff_idslist of stringsOptionnel

Staff assigned to this service; must be empty for kind=‘rental’.

asset_idslist of stringsOptionnel
advance_booking_minutesintegerOptionnel

How far into the future customer-facing channels (public booking page, voice agent) may book this service. Applies to every kind.

location_idslist of stringsOptionnel

Locations where this service is offered; empty list means all locations.

display_on_booking_pagebooleanOptionnel
travel_minutesintegerOptionnel

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_beforebooleanOptionnel

Add travel time before the appointment (outbound trip).

travel_afterbooleanOptionnel

Add travel time after the appointment (return trip).

promotionslist of objectsOptionnel

Time-bound discounts applicable to this service or specific variants.

duration_minutesinteger or nullOptionnel<=43200

Sets the first variant’s duration. Ignored when variants is sent.

pricedouble or nullOptionnel>=0

Sets the first variant’s price. Ignored when variants is sent.

Réponse

Réponse réussie

has_affected_eventsboolean
serviceobject or nullOptionnel

Represents a bookable service (e.g., haircut, massage, consultation).

Erreurs

422
Unprocessable Entity Error