Skip to main content
POST
Create Booking

Authorizations

Authorization
string
header
required

All requests must include the static API Key in the Authorization header using the Bearer scheme.

Headers

Restoo-Partner-Id
string
required

Unique identifier of your Partner account (defined by Restoo).

Restoo-Account-Id
string
required

Unique identifier of the Tenant.

Body

application/json

CreateBookingRequest

Request payload for creating a new Booking.

customer
BookingCustomerRequest · object
required

Request payload with the Booking Customer details.

date
string<date>
required

The date of the Booking in ISO 8601 format YYYY-MM-DD

Example:

"2025-03-20"

time
string
required

The time of the Booking in ISO 8601 format HH:MM:SS

Example:

"22:30:00"

paxChildren
integer
required

The number of children in the Booking. Available only if the Tenant setting for differentiating adults and children is enabled

Required range: 0 <= x <= 100
Example:

0

pax
integer
required

The number of people (or adults, depending on Tenant settings) in the Booking

Required range: 1 <= x <= 100
Example:

2

status
enum<string>
required

Desired status of the Booking.

This value determines how availability should be evaluated and how the Booking should be handled if created.

  • CONFIRMED — The Booking should be immediately confirmed.
  • REQUESTED — The Booking requires manual review and confirmation by the venue.
  • PENDING_WAIT_LIST_BOOKING — The customer wishes to join the wait list and may be confirmed if availability becomes available.

Availability requests should initially be performed using the CONFIRMED status. If no availability is found, alternative statuses may be offered depending on the availability result and venue configuration.

Not all statuses are available for every availability request

Available options:
REQUESTED,
PENDING_MERCHANT_CONFIRMATION,
PENDING_WAIT_LIST_BOOKING,
CONFIRMED,
WAIT_LIST_WALK_IN,
ARRIVED,
SEATED,
DESSERTS,
ACCOUNT_SENT,
ACCOUNT_PAID,
ATTENDED,
CANCELED,
NO_SHOW,
DECLINED_BY_MERCHANT,
DELETED
Example:

"CONFIRMED"

floorPlanAreaId
integer | null

The ID of the Floor Plan Area requested, taken from the chosen Time Slot's floorPlanAreaId. Required when the Shift offers Floor Plan Areas open to online booking

Required range: x >= 1
Example:

123

experience
ExperienceRequest · object | null

The Experience requested

customerSpecialRequests
string | null

Free-text field for customer special requests. The Venue will try to accommodate them but cannot guarantee fulfillment

Maximum string length: 1024
Example:

"Table near the window"

hasAllergies
boolean

Indicates whether any of the guests have allergies (e.g., peanut, chocolate, nuts, etc.)

Example:

true

allergiesDescription
string | null

Free-text description of allergies

Maximum string length: 1024
Example:

"Peanuts, shellfish, lactose intolerance"

specialOccasion
enum<string> | null

The special occasion associated with the booking

Available options:
WEDDING,
BIRTHDAY,
ROMANTIC,
FRIENDS,
FAMILY,
BUSINESS,
OTHER
Example:

"BIRTHDAY"

needsAccessibleSeating
boolean

Indicates whether the guest requires an accessible seating (e.g., suitable for wheelchairs or reduced mobility)

Example:

true

hotelRoom
string | null

Hotel room number or identifier associated with the Booking

Maximum string length: 50
Example:

"Room 305"

redemptionCode
string | null

The redemption code requested for the reservation

Required string length: 6
Example:

"ABC123"

promoCode
string | null

The promotion code requested for the reservation

Required string length: 6 - 255
Example:

"promo2x1"

highChairs
integer

The number of high chairs requested

Required range: x >= 0
Example:

1

addOns
AddOnRequest · object[]

The Shift Add-ons requested

strollers
integer

The number of strollers requested

Required range: x >= 0
Example:

1

utmSource
string

UTM Source. Identifies the traffic source

Example:

"google"

utmMedium
string

UTM Medium. Identifies the medium, such as email or cost-per-click

Example:

"cpc"

utmCampaign
string

UTM Campaign. Identifies a specific product promotion or strategic campaign

Example:

"summer_promo"

utmTerm
string

UTM Term. Identifies paid search keywords for the campaign

Example:

"dinner+offers"

utmContent
string

UTM Content. Differentiates similar content or links.

Used for A/B testing of links that point to the same URL

Example:

"cta_button_top"

Response

CreatePrivateBookingResponse

CreatePublicBookingResponse

redirectUrl
string<uri> | null
required

The URL to redirect the customer after creating the booking

Example:

"https://example.com/widget/?view=reservation/confirmed&uuid=..."

privateNotes
string | null
required

Internal notes visible only to the venue staff

Maximum string length: 2048
Example:

"Customer requested a table near the window."

quotedWaitMinutes
integer | null
required

Estimated waiting time in minutes quoted to the customer

Required range: x >= 5
Example:

15

isWalkIn
boolean
required

Indicates whether the booking was created as a Walk-in

Example:

true

hasFixedTables
boolean
required

Indicates whether the booking has fixed table assignments that cannot be changed

Example:

false

isHighlighted
boolean
required

Indicates whether the booking is highlighted

Example:

false

channel
enum<string>
required

The booking creation channel

Available options:
WIDGET,
OFFLINE,
API
Example:

"API"

ticketPartner
enum<string> | null
required

The partner system that created or manages the ticket (if applicable)

Available options:
DEFAULT,
REVO,
HOSTELTACTIL,
AGORA,
WINEX,
SIMPHONY,
CUINER,
BDP,
GLOP,
FRONT_REST,
YANTAR,
MADISA,
LASTAPP,
SQUARE,
HIOPOS,
API,
WE_WELCOM
ticketExternalId
string | null
required

The external identifier of the ticket in the POS or third-party system

Maximum string length: 64
Example:

"POS-98234"

ticketTotalAmount
integer | null
required

The total amount of the ticket in cents

Required range: x >= 0
Example:

12500

tableReadyAt
string<date-time> | null
required

The datetime when the table was ready for the customer in ISO 8601 format

Example:

"2025-03-20T20:15:00+02:00"

arrivedAt
string<date-time> | null
required

The datetime when the customer arrived in ISO 8601 format

Example:

"2025-03-20T20:25:00+02:00"

seatedAt
string<date-time> | null
required

The datetime when the customer was seated in ISO 8601 format

Example:

"2025-03-20T20:30:00+02:00"

endedAt
string<date-time> | null
required

The datetime when the booking ended in ISO 8601 format

Example:

"2025-03-20T22:15:00+02:00"

ip
string | null
required

The IP address of the device or system that created the booking

Example:

"192.168.0.25"

customer
PrivateCustomer · object | null
required

Full Customer details, including private properties

tables
BookingTable · object[]
required

The list of tables assigned to the booking

uuid
string
required

UUID of the Booking

Example:

"50b5571be67b477baa9dead4b290c555"

bookingAt
string<date-time>
required

The Booking date and time in ISO 8601 format

Example:

"2025-03-20T23:00:00+02:00"

status
enum<string>
required

The Booking status

Available options:
REQUESTED,
PENDING_MERCHANT_CONFIRMATION,
PENDING_WAIT_LIST_BOOKING,
CONFIRMED,
WAIT_LIST_WALK_IN,
ARRIVED,
SEATED,
DESSERTS,
ACCOUNT_SENT,
ACCOUNT_PAID,
ATTENDED,
CANCELED,
NO_SHOW,
DECLINED_BY_MERCHANT,
DELETED
Example:

"CONFIRMED"

isTimeLimited
boolean
required

Indicates whether the Booking has a time limit that must be notified and accepted by the customer

Example:

true

customerSpecialRequests
string | null
required

Free-text field for customer special requests. The Venue will try to accommodate them but cannot guarantee fulfillment

Maximum string length: 1024
Example:

"Table near the window"

hasAllergies
boolean
required

Indicates whether any of the guests have allergies (e.g., peanut, chocolate, nuts, etc.)

Example:

true

allergiesDescription
string | null
required

Free-text description of allergies

Maximum string length: 1024
Example:

"Peanuts, shellfish, lactose intolerance"

specialOccasion
enum<string> | null
required

The special occasion associated with the booking

Available options:
WEDDING,
BIRTHDAY,
ROMANTIC,
FRIENDS,
FAMILY,
BUSINESS,
OTHER
Example:

"BIRTHDAY"

needsAccessibleSeating
boolean
required

Indicates whether the guest requires an accessible seating (e.g., suitable for wheelchairs or reduced mobility)

Example:

true

hotelRoom
string | null
required

Hotel room number or identifier associated with the Booking

Maximum string length: 50
Example:

"Room 305"

publicNotes
string | null
required

Public notes defined by the venue and visible to the customer

Maximum string length: 2048
Example:

"Your reservation includes a birthday cake."

isReconfirmed
boolean
required

Indicates whether the booking was manually reconfirmed by the customer after the venue contacted them to request reconfirmation

Example:

true

isReconfirmedByCustomer
boolean
required

Indicates whether the booking was automatically reconfirmed by the customer through Restoo’s automated reconfirmation service

Example:

false

cancelReason
enum<string> | null
required

The reason provided when canceling the booking (if applicable)

Available options:
CALL_TO_CANCEL,
UPDATE_BOOKING,
UNEXPECTED_SITUATION,
BOOKED_ANOTHER_PLACE,
CHANGED_PLANS,
OTHER,
REVOKE_LEGAL_CONSENT
Example:

"CHANGED_PLANS"

bookingPartner
enum<string> | null
required

The partner through which the Booking was made (if any)

Available options:
DEFAULT,
GOOGLE,
BOOKLINE,
BOOKY_BOT,
FLIP_EAT,
FACEBOOK,
MAYBEIN,
LASTAPP,
PRIMA
Example:

"GOOGLE"

bookingExternalId
string | null
required

The Booking ID provided by the external partner (if applicable). Required if bookingPartner is present

Maximum string length: 64
Example:

"book_123456"

shiftType
ShiftType · object
required

The Shift Type in which the Booking takes place

floorPlanArea
BookingFloorPlanArea · object | null
required

The Floor Plan Area details related to a Booking.

promo
BookingPromo · object | null
required

The Promotion details related to a Booking.

product
BookingProduct · object | null
required

The Product details related to a Booking.

experience
BookingExperience · object | null
required

The Experience details related to a Booking.

cancellationPolicy
BookingCancellationPolicy · object | null
required

The Cancellation Policy details associated with a Booking.

Represents the persisted and authoritative state of the Cancellation Policy for a Booking.

addOns
BookingAddOn · object[]
required

List of add-ons associated with the Booking (if any)

accountId
string
required

The unique Restoo Account identifier for the Tenant

Example:

"best-burger"

highChairs
integer
required

The number of high chairs

Required range: x >= 0
Example:

1

paxChildren
integer
required

The number of children in the Booking. Available only if the Tenant setting for differentiating adults and children is enabled

Required range: 0 <= x <= 100
Example:

0

pax
integer
required

The number of people (or adults, depending on Tenant settings) in the Booking

Required range: 1 <= x <= 100
Example:

2

strollers
integer
required

The number of strollers

Required range: x >= 0
Example:

1

turnMinutes
integer
required

The duration of the Booking in minutes

Required range: 15 <= x <= 720
Example:

90

createdAt
string<date-time> | null
required

The creation timestamp in ISO 8601 format

Example:

"2025-03-20T18:45:00+02:00"

updatedAt
string<date-time> | null
required

The last update timestamp in ISO 8601 format

Example:

"2025-03-21T09:30:00+02:00"