{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Booking API","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"booking-api","__idx":0},"children":["Booking API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This version of the Booking API allows a POS to retrieve a filtered list of bookings from the Booking App and update a booking, this allows POS who do not have native booking functionality to support booking integrations via Tyro Connect. We have also introduced the ability to add new asset types."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create a new Booking from the App"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create walk-in from the POS"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Update an existing Booking"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retrieve & filter a list of bookings from the POS"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retrieve a list of changes that have been made to a booking"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview-of-booking-scenarios","__idx":1},"children":["Overview of booking scenarios"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"new-booking-from-app-partner","__idx":2},"children":["New booking from App partner"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a customer makes a booking through a Booking partner the sequence is as follows:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tyro Connect receives the booking and notifies the Point of Sale of the booking."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Depending on the integration the POS is notified either via webhooks or websockets about the booking."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["It is then up to the POS to fetch the booking details using the provided ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tcBookingId"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The sequence diagram below depicts this flow:"]},{"$$mdtype":"Tag","name":"p","attributes":{"style":{"textAlign":"center"}},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/1-new-booking-from-app.d0eef9a71943fc2f974f9ea18e337544e13aef015ac29f4da61a2d005be68310.d9f5f441.png","alt":"New booking from App"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"new-walk-in-booking","__idx":3},"children":["New walk-in booking"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In scenarios where a customer walks in to the restaurant without a booking, the POS will need to inform the Booking partner about the booking. The sequence is as follows:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Customer walks into the restaurant"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["POS user creates a booking on the system which creates the booking on Tyro Connect"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tyro Connect then pushes this information to the Booking partner through their webhook integration"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The sequence diagram below depicts this flow:"]},{"$$mdtype":"Tag","name":"p","attributes":{"style":{"textAlign":"center"}},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/2-walk-in-booking.d833eaa1f4bf0bfa0f04fe82528a7d917380bc10796453bdab8f5096807a8fe0.d9f5f441.png","alt":"Walk in booking from App"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"during-the-meal","__idx":4},"children":["During the meal"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once the customer has arrived for the booking and started dining. The POS starts sending Tyro Connect all updates about the order:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Customer is seated at the table, the POS publishes the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SEATED"]}," event to Tyro Connect"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Once the customer starts ordering items the table status is set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DINING"]}," status on the POS. If integrated with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sales API"]}," the POS also sends the order information with their SKUs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The table status is set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CLOSING"]}," when the customer has asked for the bill/check and then to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FINALISED"]}," when the table is available again."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tyro Connect then pushes all order updates to the Booking partner through their webhook integration."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Note that the App can also send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SEATED"]}," event to Tyro Connect."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The sequence diagram below depicts this flow:"]},{"$$mdtype":"Tag","name":"p","attributes":{"style":{"textAlign":"center"}},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/3-in-progress-booking.f37c4f052fb31e2b1a7cf7f512a5ece09e289b1677f77ca1ddc42838bb2c3370.d9f5f441.png","alt":"In progress booking from App"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"table-statuses","__idx":5},"children":["Table statuses"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Status"},"children":["Status"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["SEATED"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer is seated at the table"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["DINING"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer has started ordering their meal"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CLOSING"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer has asked for the check/bill"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["FINALISED"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The customer has paid the bill and the table is available again"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"booking-status-lifecycle","__idx":6},"children":["Booking status lifecycle"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The booking object has a predefined set of statuses it can progress through. The status is reflected by the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bookingStatus"]}," field on the booking. These can be viewed from the diagram below:"]},{"$$mdtype":"Tag","name":"p","attributes":{"style":{"textAlign":"center"}},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/4-booking-lifecycle.99af08cdafee22ddcd98846c421931ba5c08f17e23268d92ec31304f1d3901e5.d9f5f441.png","alt":"Lifecycle of booking from App"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"api-reference","__idx":7},"children":["API reference"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Endpoint"},"children":["Endpoint"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-explorer/booking/1.0/other/create-booking-request"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /bookings"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create a booking (reservation, or POS walk-in)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-explorer/booking/1.0/other/list-bookings"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /bookings"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List bookings for a location — POS only"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-explorer/booking/1.0/other/get-booking"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /bookings/{bookingId}"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Get the details of a booking"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-explorer/booking/1.0/other/patch-booking"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PATCH /bookings/{bookingId}"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Update a booking"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-explorer/booking/1.0/other/get-booking-events"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /bookings/{bookingId}/events"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Get the events associated with a booking — POS only"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Full request and response schemas, including error responses, are in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-explorer/booking/1.0/other/create-booking-request"},"children":["API Explorer"]},"."]}]},"headings":[{"value":"Booking API","id":"booking-api","depth":1},{"value":"Overview of booking scenarios","id":"overview-of-booking-scenarios","depth":2},{"value":"New booking from App partner","id":"new-booking-from-app-partner","depth":3},{"value":"New walk-in booking","id":"new-walk-in-booking","depth":3},{"value":"During the meal","id":"during-the-meal","depth":3},{"value":"Table statuses","id":"table-statuses","depth":4},{"value":"Booking status lifecycle","id":"booking-status-lifecycle","depth":2},{"value":"API reference","id":"api-reference","depth":2}],"frontmatter":{"seo":{"title":"Booking API"}},"lastModified":"2026-09-03T03:45:44.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/business-operations/hospitality/booking/overview","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}