Reservations progress from creation to completion through a series of phases. Each phase is represented by a status, which is stored as an enum in the status
field of a reservation
object.
This article explains the available statuses, and how a reservation can progress using the Reservations API.
Note: Reservations can be created and progress through phases as a result of actions on a Wix site or dashboard. For more information see the Wix Restaurants Table Reservations articles.
The following statuses are listed roughly in order of their position in the reservation lifecycle:
HELD
- The reservation is temporary and will expire in 10 minutes if its status isn’t changed. This phase temporarily reserves the required number of seats and tables for a given party size at a chosen time while a customer enters details and/or confirms their reservation request.REQUESTED
- A customer finished requesting this reservation, meaning they have added all necessary details and confirmed the request. Restaurant staff can now either approve or decline the reservation request.DECLINED
- The restaurant’s owner or staff declined the customer’s request to make the reservation.RESERVED
- The reservation is confirmed.SEATED
- The customer is currently occupying the table.CANCELED
- The reservation is canceled.NO_SHOW
- The customer didn't show up for their reservation.FINISHED
- The reservation completed successfully.This section explains how reservations can be created and progressed through their lifecycle.
This API provides 2 endpoints for creating reservations.
createHeldReservation()
- This function creates a reservation with the HELD
status. Reservations with the HELD
status are only valid for 10 minutes. Trying to change a HELD
reservation’s status after 10 minutes returns an error.
The Reservations page created by the Restaurants app on a Wix site creates held reservations to temporarily reserve time slots selected by customers while they enter further details.
After a customer completes the reservation process, call reserveReservation()
to change the reservation’s status to RESERVED
or REQUESTED
, depending on whether your project requires manual approval for online reservations.
You cannot call updateReservation()
to change a reservation’s status from HELD
. Trying to do so returns an error.
createReservation()
- This endpoint creates a reservation with either the RESERVED
status or the REQUESTED
status if manual approval is required for confirmation (see manual approval below).
If you call createReservation()
with the MANAGE RESERVATIONS (FULL)
permission scope, you can set more properties of the reservation in the request. This allows you to create the reservation with a status of your choice, and gives you the option to override the restaurant’s rules regarding online availability and table management.
To require manual approval for REQUESTED
reservations at a location before they’re confirmed (RESERVED
), set configuration.onlineReservations.manualApproval.enabled
to true
for that reservation location. Manual approval can also be set through a site’s Table Reservations app in the dashboard.
If manual approval is enabled for online reservations at a reservation location, reservations made using the reserveReservation()
endpoint or through the restaurant’s dashboard are automatically created with the REQUESTED
status. This setting does not affect offline reservations.
To use the Reservations API to approve or decline a reservation, call updateReservation()
and change the reservation’s status to RESERVED
or DECLINED
respectively.
Once customers have been seated (or the equivalent if the restaurant doesn’t have seats), change the status of the reservation to SEATED
using updateReservation()
.
A reservation can end as DECLINED
, CANCELED
, NO_SHOW
, or FINISHED
.
In each case, change the status using updateReservation()
. Once any of the above statuses are set, the reservation is considered complete.
The following are examples of possible paths a reservation could take from creation to completion:
Finished
A customer selects a time slot for a reservation on the restaurant’s website. They proceed to enter their details and confirm their reservation request. The restaurant owner approves the reservation. The customer arrives and is seated. They finish their meal, pay, and leave.
This flow would be represented by:
HELD
> REQUESTED
> RESERVED
> SEATED
> FINISHED
Cancelation
A customer calls the restaurant and makes a reservation, but their car breaks down and they call again to cancel.
This flow would be represented by:
RESERVED
> CANCELED
No Show
A customer makes a reservation using the restaurant’s app. The restaurant owner approves the reservation, but the customer never shows up.
This flow would be represented by:
REQUESTED
> RESERVED
> NO_SHOW