# Create a new booking Endpoint: POST /venues/{compositeId}/booking Version: 4.10.0 Security: Staging, Production ## Path parameters: - `compositeId` (string, required) The unique identifier of the venue/product. ## Header parameters: - `X-Partner-Reference` (string) Required for Bookable Agents. Specifies the partner reference for whom the booking is being made. This header must contain a valid partner reference when making requests with the agent:write scope. Example: "bottomlessbrunch.com" - `X-Correlation-ID` (string) An optional ID which you can use to track transactions across multiple systems. It can have any value, but we recommend avoiding . characters. Mirrored back in a response header. Example: "11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA" - `X-Booking-Source` (string) Identifies the source or channel through which the booking was created. Valid values include: - "email" - Booking created via email integration - "phone" - Booking created via phone integration - "api" - Booking created via API (default if not provided) - "webhook" - Booking created via webhook integration - "js-tag" - Booking created via JavaScript tag integration - "chatbot" - Booking created via chatbot integration - "puller" - Booking created via puller synchronization - "portal" - Booking created via portal integration If not provided, defaults to "api" in the application logic. Enum: "email", "phone", "api", "webhook", "js-tag", "chatbot", "puller", "portal" ## Request fields (application/json): - `firstName` (string, required) The first name for the booking. Example: "John" - `lastName` (string, required) The last name for the booking. Example: "Doe" - `partySize` (integer, required) The number of people the booking is for. Example: 4 - `date` (string,null, required) The date of the booking, in the format YYYY-MM-DD. Example: "2025-02-15" - `time` (string,null, required) The time of the booking, in the format HH:mm. Example: "18:30" - `type` (string, required) Specifies how an operators time slot can be handled. A value of book indicates the slot is available for instant confirmation, while request means the slot requires manual approval through an enquiry-based process. Enum: "book", "request" - `duration` (integer,null) The duration of the booking in minutes. Example: 90 - `email` (string, required) The guest’s email address. Example: "john.doe@example.com" - `phone` (string, required) The guest’s phone number. Example: 1234567890 - `notes` (string,null) Any additional booking notes or special requests. Example: "Please prepare a birthday cake." - `adminNotes` (array,null) Internal notes or comments specific to the distributor. - `comments` (array,null) Additional comments or notes provided by the distributor. - `labels` (array,null) A list of labels or tags associated with the booking. - `preorders` (array,null) a list of preorder packages associated with the booking. - `preorders.packageId` (string,null) The ID of the package associated with the pre-order. Example: "62692e90d2cf1f163744efc4" - `preorders.quantity` (integer,null, required) The quantity of the product to be pre-ordered. Example: 2 - `preorders.productId` (string,null) The ID of the package associated with the pre-order. This field is deprecated, use packageId instead. Example: "62692e90d2cf1f163744efc4" - `preorderMenus` (array,null) a list of preorder menus associated with the booking. - `preorderMenus.menuId` (string, required) The ID of the menu to be added to the booking. Example: "62692e90d2cf1f163744efc4" - `partnerBookingId` (string,null) Optional field that stores a reference code or unique identifier provided by an external system, used to link or synchronize records across platforms. ## Response 201 fields (application/json): - `id` (string) Example: "29|X9|275cc44dd2e2496fba44857c9257443a|B" ## Response default fields (application/json): - `type` (string) A URI reference [rfc9457] that identifies the problem type. This specification encourages that, when dereferenced, it provides human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be "about:blank". - `title` (string, required) A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization. - `status` (integer, required) The HTTP status code [rfc9457, Section 3.1.12] generated by the origin server for this occurrence of the problem. - `detail` (string) A human-readable explanation specific to this occurrence of the problem. - `instance` (string) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.