Create Reservation
Create a new reservation. Match the Reservations UI: pick a slot from GET/reservation-available-slots and send its start_datetime (end time is derived server-side from the service duration).
Endpoint
POST/reservations
Request
Body fields
| Field | Type | Required | Description |
|---|---|---|---|
organization_id | Number | Yes | Organization ID. |
service_id | Number | Yes | Reservation service ID. |
contact_id | Number | Yes | Contact ID. |
party_size | Number | Yes | Party size (must respect service max_party_size). |
start_datetime | String | Yes | ISO 8601 UTC datetime; should match an available slot. |
source | String | No | Origin label (the app uses "manual" for staff-created reservations). |
customer_notes | String | null | No | Notes visible to the customer where applicable. |
internal_notes | String | null | No | Internal staff notes. |
deal_id | Number | null | No | Related deal. |
company_id | Number | null | No | Related company. |
preferred_resource_id | Number | null | No | Preferred bookable resource when the service has linked resources. |
custom_fields_by_key | Object | No | Reservation custom field values keyed by field key. |
Response
Returns the created reservation object (same shape as Get Reservation), including computed end_datetime and initial status (e.g. pending or confirmed depending on service auto-confirm rules).
Report an issue with this documentation
Please log in to report issues with our documentation.