Submit an order
Convert a basket into a confirmed order. The endpoint runs the final validation pass — checking item availability, payment coverage, intake form completion and any site-specific rules — and then commits the basket: bookings are confirmed, payments are moved out of pending where required, and the order's status advances out of the basket states.
The {orderId} placeholder is interchangeably called basket in legacy clients; the route accepts either an order or a basket ID pointing at the same record.
Pass skip_availability_checks=true to bypass the second-pass availability recheck normally run at submission time. The flag is honoured only for users that hold the RESERVATIONS_OVERRIDE_RULES permission; operators without it have the flag silently ignored.
Failure modes:
- 400 Bad Request — the basket isn't valid for submission (e.g. insufficient payment, expired availability, integration rule violation). The error message describes the specific reason.
- 400 Bad Request with the message "One or more items are now unavailable" — availability changed between basket build and submission.
- 400 Bad Request with the message "The basket was unable to be submitted. Please try again." — a transient lock-timeout occurred and the caller should retry.
On success the freshly submitted order is returned with an intake_form_url field hydrated when one or more items require a pre-arrival intake form to be completed.
Request body
Response
The Order was successfully retrieved
Changes
No recorded changes to this endpoint across all 1 revision of this API.