# Change the status of an in-progress booking Confirms or rejects an unconfirmed booking request, allowing an operator to accept or decline it. Set status to Confirmed to accept the booking, or Rejected to decline it. Only a booking that is still awaiting a decision (Pending or InProgress) can be actioned; attempting to change the status of a booking in any other state returns 422. When rejecting, you may include an optional free-text reason explaining the decision, which is recorded against the booking. This endpoint requires the venue-booking:update:status permission, which is granted separately and is not available to all integration partners by default. If your client is not authorised for it, the request returns 403. Contact Bookable to request access. Endpoint: PUT /venues/bookings/{bookingId}/status Version: 7.6.0 Security: Live, Sandbox ## Path parameters: - `bookingId` (string, required) The unique identifier of the booking. ## 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. - `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" ## Request fields (application/json): - `status` (string, required) The target status transition for the in-progress booking. Confirmed completes the booking; Rejected declines it (reflected locally as Cancelled). Enum: "Confirmed", "Rejected" - `reason` (string,null) Optional free-text reason for rejecting the booking (e.g. why the request was declined). Recorded against the booking. Ignored when status is Confirmed. Example: "Requested slot no longer available" ## Response 200 fields (application/json): - `id` (string,null) A globally unique identifier for the booking. - `compositeId` (string,null) A globally unique identifier for the venue/product. - `date` (string,null) The date of the booking. - `time` (string,null) The time of the booking. - `partySize` (integer,null) Number of guests for the booking. - `status` (string,null) Indicates the current status of the booking: - Pending: The booking request has been received but not yet processed. - InProgress: The enquiry has been received and assigned but is not yet confirmed. - Confirmed: The booking has been confirmed. - Cancelled: The booking was cancelled or rejected. - Deleted: The booking has been deleted from the system. - Lost: The booking was not completed before its scheduled date. Enum: "Pending", "InProgress", "Confirmed", "Cancelled", "Deleted", "Lost" - `firstName` (string,null) Guest's first name. - `lastName` (string,null) Guest's last name. - `email` (string,null) Email address of the guest. - `phone` (string,null) Phone number of the guest. - `venueGroupName` (string,null) The name of the venue group that the booked venue belongs to. - `location` (object,null) - `location.area` (string,null) The general area where the venue is located Can be more than one separated by |. - `location.city` (string,null) The city where the venue is located. - `location.lat` (number,null) The latitude coordinate of the venue. - `location.lng` (number,null) The longitude coordinate of the venue. - `location.street` (string,null) The street address of the venue. - `location.postCode` (string,null) The postal code of the venue. - `location.gPlace` (string,null) The Google Place ID associated with the venue. - `duration` (integer,null) Duration of the booking in minutes. - `productName` (string,null) Name of the product or service reserved. - `notes` (string,null) Additional notes for the booking. - `rejectionReason` (string,null) The reason the booking was rejected, if a reason was provided when it was declined. Null otherwise. - `createdDate` (string,null) Timestamp when the booking record was created in Bookable. - `tmsCreatedDate` (string,null) Timestamp reported by the originating TMS for when the booking was created. Null when unavailable. - `lastUpdate` (string,null) Timestamp of the last booking update. - `preorders` (object,null) Preordered items for the booking - `preorders.packages` (array,null) List of preordered packages - `preorders.packages.id` (string,null) Package identifier - `preorders.packages.name` (string,null) Package name Example: "*Pan roasted Padron peppers (V)" - `preorders.packages.description` (string,null) Package description Example: "5 items per guest: Salmon & celeriac on rye, Buttermilk fries chicken..." - `preorders.packages.type` (string,null) Package type Example: "food" - `preorders.packages.quantity` (integer,null) Quantity ordered - `preorders.packages.price` (number,null) Package price Example: 5.57 - `preorders.menus` (array,null) List of preordered menus with items - `preorders.menus.id` (string,null) Menu identifier - `preorders.menus.name` (string,null) Menu name - `preorders.menus.quantity` (integer,null) Number of menus ordered - `preorders.menus.submitted` (string,null) Describes the timing of menu item selection relative to the booking workflow. pre indicates items supplied during the booking and therefore included in this menu object. post indicates that no items were provided at booking time, and a link was generated to allow item selection after submission. Enum: "post", "pre" - `preorders.menus.link` (string,null) URL generated to allow menu item selection for this booking menu. Example: "set-menu" - `preorders.menus.price` (number,null) Price per person / fixed price for this menu. Example: 35 - `preorders.menus.items` (array,null) Menu items selected - `preorders.menus.items.id` (string,null) Menu item (package) identifier - `preorders.menus.items.name` (string,null) Item name - `preorders.menus.items.quantity` (integer,null) Item quantity - `preorders.menus.items.price` (number,null) Price of this menu item. Example: 12.5 - `preorders.menus.items.options` (array,null) Selected configurable option values for this menu item. - `partnerBookingId` (string,null) A custom booking identifier provided by the distributor (partner). This ID is submitted when creating a booking via API or Portal and serves as the partner's own reference code for cross-system tracking. - `operatorBookingId` (string,null) The booking identifier generated by the operator's TMS platform (e.g., SevenRooms, Collins, Zonal). This ID uniquely identifies the reservation within the operator's system and is displayed in the portal instead of the composite ID. - `depositAmount` (number,null) The deposit amount already collected for this booking at the time of reservation. This value is captured from the operator's TMS (e.g., Zonal) and reflects any per-person or per-booking deposit charged to the guest. - `area` (object,null) Represents the area or zone assigned to a booking within a venue, as reported by the operator's TMS. - `area.id` (string,null) The internal area identifier used by the TMS. Example: "42" - `area.name` (string,null) Human-readable name of the area or zone. Example: "Main Dining Room" - `reference` (string,null) Legacy reference code for the booking. This field is deprecated and will be removed in future versions. Please use operatorBookingId instead. ## Response 400 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "VALID-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" - `errors` (object,null) Validation errors dictionary mapping field names to arrays of error messages. Only present for validation errors (VALID-N-001). Example: {"Date":["Availability date cannot be in the past."],"EndTime":["EndTime must be after StartTime."]} ## Response 401 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "VALID-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" - `errors` (object,null) Validation errors dictionary mapping field names to arrays of error messages. Only present for validation errors (VALID-N-001). Example: {"Date":["Availability date cannot be in the past."],"EndTime":["EndTime must be after StartTime."]} ## Response 403 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "VALID-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" - `errors` (object,null) Validation errors dictionary mapping field names to arrays of error messages. Only present for validation errors (VALID-N-001). Example: {"Date":["Availability date cannot be in the past."],"EndTime":["EndTime must be after StartTime."]} ## Response 404 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "VALID-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" - `errors` (object,null) Validation errors dictionary mapping field names to arrays of error messages. Only present for validation errors (VALID-N-001). Example: {"Date":["Availability date cannot be in the past."],"EndTime":["EndTime must be after StartTime."]} ## Response 409 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "VALID-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" - `errors` (object,null) Validation errors dictionary mapping field names to arrays of error messages. Only present for validation errors (VALID-N-001). Example: {"Date":["Availability date cannot be in the past."],"EndTime":["EndTime must be after StartTime."]} ## Response 422 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "VALID-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" - `errors` (object,null) Validation errors dictionary mapping field names to arrays of error messages. Only present for validation errors (VALID-N-001). Example: {"Date":["Availability date cannot be in the past."],"EndTime":["EndTime must be after StartTime."]} ## Response 429 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "VALID-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" - `errors` (object,null) Validation errors dictionary mapping field names to arrays of error messages. Only present for validation errors (VALID-N-001). Example: {"Date":["Availability date cannot be in the past."],"EndTime":["EndTime must be after StartTime."]} ## Response 500 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "BOOK-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" ## Response 503 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "BOOK-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" ## 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. - `code` (string, required) Error code in the format RESOURCE-X-NNN where X is R (retryable) or N (non-retryable). See ErrorCatalog.md for all error codes. Example: "BOOK-N-001" - `isRetryable` (boolean, required) Indicates whether the error is retryable. If true, the request may succeed if retried. If false, the request will fail again with the same input. - `traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001"