Orders

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.

post/shop/orders/{orderId}/submit

Request body

skip_availability_checksboolean

When true, bypasses the second-pass availability recheck normally run at submission time. Only takes effect for users that hold the RESERVATIONS_OVERRIDE_RULES permission — operators without it have the flag silently ignored. Useful when an operator has manually confirmed availability outside the system and wants to push a borderline booking through.

Response

The Order was successfully retrieved

Changes

No recorded changes to this endpoint across all 1 revision of this API.