Submit a Basket
Finalises the basket and turns it into an Order. On success the basket transitions to submitted, an Order is created, appointments and area bookings are confirmed (or queued as enquiries depending on configuration), payments are captured or authorised, and confirmation email + SMS are sent to the customer.
The endpoint is idempotent within a one-hour window for already submitted baskets — a re-submit returns the existing basket with the intake-form URL attached. Beyond the window, submitted baskets respond 404 Not Found.
You can optionally include customer_id or email (and the other guest-checkout fields) directly in the submit payload to set the customer in the same request — this delegates to the same logic as POST /shop/basket/{basketId}/customer.
Returns 400 Bad Request for any submit-time failure: unavailable items, validation errors, payment failures, or a lock timeout when another concurrent submit is in progress.
Request body
Example request
{
"email": "avery.lin@example.com",
"first_name": "Avery",
"last_name": "Lin",
"phone": "+447700900100",
"phone_country": "GB"
}Response
The submitted Basket (with an attached intake-form URL when relevant).