# Cancel bookings within an order, or the entire order Cancels the bookings listed in bookingIds. When bookingIds is omitted or empty, cancels every booking belonging to orderId. Each cancellation is independent — one failure does not block the others. Endpoint: DELETE /v1/orders/{orderId} Version: 1.0.0 Security: Live, Sandbox ## Header parameters: - `X-Correlation-ID` (string) Optional ID for cross-system transaction tracking. Example: "11C46F5F-CDEF-4865-94B2-0EE0EDCC26DA" - `X-Partner-Reference` (string) Required for Bookable Agents — identifies the partner on whose behalf the request is made. Example: "bottomlessbrunch.com" ## Path parameters: - `orderId` (string, required) Example: "ORD-9980140810" ## Request fields (application/json): - `bookingIds` (array,null) Booking ids to cancel. Omitted or empty → cancel every booking in the order. Example: ["1|TN|423458"] ## Response 200 fields (application/json): - `id` (string, required) Platform-generated unique order identifier. Example: "ORD-9980140810" - `partnerOrderId` (string,null) - `customer` (object, required) - `customer.firstName` (string, required) Example: "John" - `customer.lastName` (string, required) Example: "Doe" - `customer.email` (string, required) Example: "john.doe@example.com" - `customer.phone` (string, required) E.164 format. Example: "+441234567890" - `customer.dateOfBirth` (string,null) - `createdAt` (string, required) Example: "2026-04-21T14:22:00Z" - `results` (array, required) One result per requested item, in request order. - `results.compositeId` (string, required) The compositeId this result refers to — the product for a table-reservation item, or the ticket-type line for an event-ticket line. Example: "29|CO|275cc44dd2e2496fba44857c9257443a|e4d909c290d0fb1ca068ffaddf22cbd0" - `results.date` (string, required) The date this result refers to. Example: "2026-06-15" - `results.booking` (object) Confirmed booking detail for a single order item. Common fields (including quantity — covers or ticket count) always apply; time/duration/ preorders apply to table reservations only, unitPriceAmount/ priceCurrency to event tickets only. Check capability to know which. - `results.booking.id` (string, required) Booking CompositeId assigned by the platform — the bookingId to pass back in OrderItemUpdate.bookingId / OrderCancelRequest.bookingIds for a subsequent PATCH/DELETE /v1/orders/{orderId} call. Opaque and platform-specific in shape — e.g. Collins/Zonal append a booking-type flag (B/R) as a 4th segment, Tonic uses a plain 3-segment purchase reference. Never equal to the compositeId that was booked (a different resource — the booking itself vs. the product/ticket type); treat it as an opaque token and round-trip it exactly as received. Example: "29|CO|BKG-8841203|B" - `results.booking.capability` (string, required) Identifies a booking capability. Enum: "table_reservation", "event_ticket" - `results.booking.reference` (string,null) Human-readable reference (e.g. DMN-9980140810). Example: "DMN-9980140810" - `results.booking.operatorOrderId` (string,null) Booking reference assigned by the operator's RMS (Collins, Zonal, Tonic, etc.). - `results.booking.status` (string, required) Enum: "Pending", "InProgress", "Confirmed", "Cancelled", "Deleted", "Lost" - `results.booking.productName` (string,null) - `results.booking.quantity` (integer, required) Covers for a table reservation, or ticket count for an event-ticket line. Example: 2 - `results.booking.notes` (string,null) Free-text note or special request for the booking. Applies to either capability — table reservation notes or an event-ticket purchase comment. Example: "Birthday celebration" - `results.booking.partnerBookingId` (string,null) External reference supplied by the caller at creation time, used to cross-link this booking with records in another system. Applies to either capability. Example: "ext-ref-123" - `results.booking.time` (string,null) Example: "19:30" - `results.booking.duration` (integer,null) - `results.booking.preorders` (object) Pre-order items attached to a table reservation. - `results.booking.preorders.packages` (array,null) - `results.booking.preorders.packages.id` (string, required) Example: "3f9a1c20-5b7e-4c1a-9e2d-1a2b3c4d5e6f" - `results.booking.preorders.packages.quantity` (integer, required) Example: 2 - `results.booking.preorders.menus` (array,null) - `results.booking.preorders.menus.items` (array,null) - `results.booking.spaceId` (integer,null) Space/area booked — either the requested OrderItem.spaceId or the one assigned by the RMS. Matches an id from AvailabilityResult.availability.times[].product.spaces[].id. Example: 12 - `results.booking.depositAmount` (number,null) Deposit amount charged for this booking, when applicable. Example: 10 - `results.booking.unitPriceAmount` (number,null) Example: 25 - `results.booking.priceCurrency` (string,null) Example: "GBP" - `results.error` (object) - `results.error.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". - `results.error.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. - `results.error.status` (integer, required) The HTTP status code [rfc9457, Section 3.1.12] generated by the origin server for this occurrence of the problem. - `results.error.detail` (string) A human-readable explanation specific to this occurrence of the problem. - `results.error.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" - `results.error.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. - `results.error.traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" ## Response 207 fields (application/json): - `id` (string, required) Platform-generated unique order identifier. Example: "ORD-9980140810" - `partnerOrderId` (string,null) - `customer` (object, required) - `customer.firstName` (string, required) Example: "John" - `customer.lastName` (string, required) Example: "Doe" - `customer.email` (string, required) Example: "john.doe@example.com" - `customer.phone` (string, required) E.164 format. Example: "+441234567890" - `customer.dateOfBirth` (string,null) - `createdAt` (string, required) Example: "2026-04-21T14:22:00Z" - `results` (array, required) One result per requested item, in request order. - `results.compositeId` (string, required) The compositeId this result refers to — the product for a table-reservation item, or the ticket-type line for an event-ticket line. Example: "29|CO|275cc44dd2e2496fba44857c9257443a|e4d909c290d0fb1ca068ffaddf22cbd0" - `results.date` (string, required) The date this result refers to. Example: "2026-06-15" - `results.booking` (object) Confirmed booking detail for a single order item. Common fields (including quantity — covers or ticket count) always apply; time/duration/ preorders apply to table reservations only, unitPriceAmount/ priceCurrency to event tickets only. Check capability to know which. - `results.booking.id` (string, required) Booking CompositeId assigned by the platform — the bookingId to pass back in OrderItemUpdate.bookingId / OrderCancelRequest.bookingIds for a subsequent PATCH/DELETE /v1/orders/{orderId} call. Opaque and platform-specific in shape — e.g. Collins/Zonal append a booking-type flag (B/R) as a 4th segment, Tonic uses a plain 3-segment purchase reference. Never equal to the compositeId that was booked (a different resource — the booking itself vs. the product/ticket type); treat it as an opaque token and round-trip it exactly as received. Example: "29|CO|BKG-8841203|B" - `results.booking.capability` (string, required) Identifies a booking capability. Enum: "table_reservation", "event_ticket" - `results.booking.reference` (string,null) Human-readable reference (e.g. DMN-9980140810). Example: "DMN-9980140810" - `results.booking.operatorOrderId` (string,null) Booking reference assigned by the operator's RMS (Collins, Zonal, Tonic, etc.). - `results.booking.status` (string, required) Enum: "Pending", "InProgress", "Confirmed", "Cancelled", "Deleted", "Lost" - `results.booking.productName` (string,null) - `results.booking.quantity` (integer, required) Covers for a table reservation, or ticket count for an event-ticket line. Example: 2 - `results.booking.notes` (string,null) Free-text note or special request for the booking. Applies to either capability — table reservation notes or an event-ticket purchase comment. Example: "Birthday celebration" - `results.booking.partnerBookingId` (string,null) External reference supplied by the caller at creation time, used to cross-link this booking with records in another system. Applies to either capability. Example: "ext-ref-123" - `results.booking.time` (string,null) Example: "19:30" - `results.booking.duration` (integer,null) - `results.booking.preorders` (object) Pre-order items attached to a table reservation. - `results.booking.preorders.packages` (array,null) - `results.booking.preorders.packages.id` (string, required) Example: "3f9a1c20-5b7e-4c1a-9e2d-1a2b3c4d5e6f" - `results.booking.preorders.packages.quantity` (integer, required) Example: 2 - `results.booking.preorders.menus` (array,null) - `results.booking.preorders.menus.items` (array,null) - `results.booking.spaceId` (integer,null) Space/area booked — either the requested OrderItem.spaceId or the one assigned by the RMS. Matches an id from AvailabilityResult.availability.times[].product.spaces[].id. Example: 12 - `results.booking.depositAmount` (number,null) Deposit amount charged for this booking, when applicable. Example: 10 - `results.booking.unitPriceAmount` (number,null) Example: 25 - `results.booking.priceCurrency` (string,null) Example: "GBP" - `results.error` (object) - `results.error.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". - `results.error.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. - `results.error.status` (integer, required) The HTTP status code [rfc9457, Section 3.1.12] generated by the origin server for this occurrence of the problem. - `results.error.detail` (string) A human-readable explanation specific to this occurrence of the problem. - `results.error.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" - `results.error.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. - `results.error.traceId` (string) Request trace identifier for debugging and correlation purposes. Example: "0HNJ2BG2TU3BU:00000001" ## 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 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 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"