Skip to content

Booking API

Munu Booking is a per-premise service that is closely integrated with Munu POS. It offers self-service booking via a web interface as well as booking through the POS. Some functionality have been made available to external partners through the Booking API.

Overview

The Booking API allows you to:

  • List venues and their booking scenarios
  • View available time slots
  • Create, update, and manage bookings
  • Handle waitlists

Venues & TimeSlots

A venue is typically a restaurant, a bar or any other type of entity where one would like to place bookings. A restaurant could in turn have multiple floors or sections, each with separate offerings. In cases like this it makes sense to split a restaurant into several venues. Bookings are placed in venues and an establishment could have one or more venues.

A venue contains resources which can be booked, such as a table. These resources are highly adjustable, combinable and part of what is called a capacityPlan. The capacityPlan is not exposed directly in the API, but requests for available timeSlots can be made on it.

TimeSlots are not objects but rather references for which bookings can be placed. They are derived from a capacityPlan based on a large number of settings, both static and realtime data. A reference to a timeSlot is not static, but can change if the venue decides to change the time granularity of the timeSlots.

Booking

A booking is the reservation within a timeSlot coupled with information such as number of guests, contact information and optional custom comments on the reservation. There is also the ability to add external references, for example a room number or an id to link to the external system.

Standard CRUD operations are supported on the booking object. They are done on venue level with venueId as part of the path. An additional list method also exists where you can list all bookings independent of venue but where at least one of the external references are supplied as query parameter.

Authentication

OAuth2

The Booking API uses OAuth2 and OIDC with Microsoft identity platform. All auth is performed on a per-tenant basis as it is a single tenant service. A unique URL following the pattern below will be provided along with a Client ID and Client Secret.

https://login.microsoftonline.com/<issuer>/oauth2/v2.0/token

More detailed information can be found in the Microsoft identity platform documentation.

X-API-KEY

Each tenant can have one or more instances of the service. Each server instance can in turn have one or more venues. This allows per-premise instances with multiple venues such as a food court or a hotel where each restaurant are venues running in a booking instance.

These instances are addressable by using a custom header X-API-KEY with the key(s) provided by Munu. The venues are in turn addressable within the context of the API resources.

http
X-API-KEY: your-api-key-here

API Reference

Key Endpoints

EndpointMethodDescription
/venuesGETList all available venues
/venues/{venueId}/timeslotsGETList available time slots
/venues/{venueId}/availabilityGETCheck availability for date range
/venues/{venueId}/bookingsPOSTCreate a new booking
/venues/{venueId}/bookings/{bookingId}GETGet booking details
/venues/{venueId}/bookings/{bookingId}PUTUpdate a booking
/venues/{venueId}/bookings/{bookingId}PATCHUpdate booking status
/venues/{venueId}/bookings/{bookingId}DELETEDelete a booking
/bookingsGETList bookings by external reference

Booking States

Bookings progress through various states during their lifecycle:

StateLevelAccessDescription
REGISTERED0-Default state for a newly created booking
UNCONFIRMED1ExternalConfirmation message sent, awaiting response
CONFIRMED2ExternalGuest has confirmed the booking
WAITING3InternalBooking is active, blocked from API changes
SEATED4InternalGuest is seated, blocked from API changes
BILL_PRINTED5InternalBill has been printed
CLOSED6InternalBooking completed
NO_SHOW6InternalGuest did not arrive
CANCELLED6ExternalBooking was cancelled

State Flow

States can only increase in level. Use the PATCH endpoint to change booking status.

Technical documentation for partners and integrators