Tyro Payments Bookings API

The Bookings API from Tyro Payments — 2 operation(s) for bookings.

Operations 3

POST /bookings Create Booking #
GET /bookings/{bookingId} Get Booking #
PATCH /bookings/{bookingId} Update Booking #

Documentation

📖
Documentation
https://docs.connect.tyro.com/app/apis/pay
📖
APIReference
https://docs.connect.tyro.com/app/apis/pay/0.9
📖
Authentication
https://docs.connect.tyro.com/app/authentication
📖
Documentation
https://docs.connect.tyro.com/pos/apis/pay-terminal
📖
APIReference
https://docs.connect.tyro.com/pos/apis/pay-terminal/0.9
📖
Documentation
https://docs.connect.tyro.com/pos/apis/embedded-payments
📖
APIReference
https://docs.connect.tyro.com/pos/apis/embedded-payments/1.0
📖
Documentation
https://docs.connect.tyro.com/app/apis/booking
📖
APIReference
https://docs.connect.tyro.com/app/apis/booking/1.0
📖
Documentation
https://docs.connect.tyro.com/app/apis/ordering
📖
APIReference
https://docs.connect.tyro.com/app/apis/ordering/1.0
📖
Documentation
https://docs.connect.tyro.com/app/apis/menu-management
📖
APIReference
https://docs.connect.tyro.com/app/apis/menu-management/1.0
📖
Documentation
https://docs.connect.tyro.com/app/apis/tables
📖
APIReference
https://docs.connect.tyro.com/app/apis/tables/1.0
📖
Documentation
https://docs.connect.tyro.com/app/apis/sales
📖
APIReference
https://docs.connect.tyro.com/app/apis/sales/1.1
📖
Documentation
https://docs.connect.tyro.com/app/apis/reporting
📖
APIReference
https://docs.connect.tyro.com/app/apis/reporting/1.0
📖
Documentation
https://docs.connect.tyro.com/app/apis/loyalty
📖
APIReference
https://docs.connect.tyro.com/app/apis/loyalty/0.9
📖
Documentation
https://docs.connect.tyro.com/app/apis/refunds
📖
APIReference
https://docs.connect.tyro.com/app/apis/refunds/1.0
📖
Documentation
https://docs.connect.tyro.com/app/apis/locations
📖
APIReference
https://docs.connect.tyro.com/app/apis/locations/1.0
📖
Documentation
https://docs.connect.tyro.com/app/apis/referrals
📖
APIReference
https://docs.connect.tyro.com/app/apis/referrals/1.0

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tyro-bookings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tyro-bookings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bookings API
  version: '1.0'
  contact: {}
  description: 'The API allows the APP and POS to send and receive information about bookings. Currently the API supports creating, updating and retrieving bookings in the POS or the booking system.

    '
servers:
- url: https://api.tyro.com/connect
  description: Production
tags:
- name: Bookings
paths:
  /bookings:
    post:
      summary: Create Booking
      operationId: create-booking-request
      responses:
        '201':
          description: Created
          content:
            application/vnd.tyro.connect+json;version=1.0:
              schema:
                $ref: '#/components/schemas/booking'
              examples:
                Created Booking:
                  value:
                    id: 2688fcf2-44dd-4c72-88ac-79d0910f2983
                    locationId: merchant:abc123
                    bookingStatus: CREATED
                    origin:
                      bookingReference: some-booking-reference
                    asset:
                      type: TABLE
                      tables:
                      - number: '1'
                    numberOfPeople: 2
                    payments:
                    - amount: 4321
                      currency: AUD
                      description: Reservation payment
                    startTime: '2020-03-01T18:00:00Z'
          links:
            GetBooking:
              operationId: get-booking
              description: Retrieve the booking details
          headers: {}
        '400':
          description: When the provided payload is not valid.
          content:
            application/vnd.tyro.connect+json;version=1.0:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: The validation error message.
              examples:
                Bad Status:
                  value:
                    error: '"asset.tableStatus" must be [SEATED]'
                Missing property:
                  value:
                    error: '"origin.bookingReference" is required'
        '403':
          description: When you don't have the right permissions to seat a booking for the provided location.
      description: 'This endpoint is used to create a booking within Tyro Connect. This call will create a booking in the POS system.


        The id that is returned as a part of the response should be used to identify the booking for subsequent events or retrieving the details via the [`GET`](#operation/get-booking) endpoint.'
      security:
      - JWT: []
      requestBody:
        content:
          application/vnd.tyro.connect+json;version=1.0:
            schema:
              $ref: '#/components/schemas/new-booking-request'
            examples:
              New Booking:
                value:
                  locationId: merchant:abc123
                  origin:
                    bookingReference: some-booking-reference
                  asset:
                    type: TABLE
                    tables:
                    - number: '1'
                  numberOfPeople: 2
                  startTime: '2020-03-01T18:00:00Z'
                  bookingStatus: CREATED
        description: ''
      parameters:
      - $ref: '#/components/parameters/header-bearer-token'
      - schema:
          $ref: '#/components/schemas/acceptHeaderBooking1_0'
        in: header
        name: Accept
        required: true
      - $ref: '#/components/parameters/header-content-json'
      tags:
      - Bookings
  /bookings/{bookingId}:
    get:
      responses:
        '200':
          description: The booking response
          content:
            application/vnd.tyro.connect+json;version=1.0:
              schema:
                $ref: '#/components/schemas/booking'
              examples:
                Simple Booking:
                  value:
                    id: 2688fcf2-44dd-4c72-88ac-79d0910f2983
                    locationId: merchant:abc123
                    bookingStatus: CREATED
                    origin:
                      bookingReference: some-booking-reference
                    asset:
                      type: TABLE
                      tables:
                      - number: '1'
                    numberOfPeople: 2
                    startTime: '2020-03-01T18:00:00Z'
        '403':
          description: When you don't have the right permissions to create a booking for the provided location.
        '404':
          description: When the provided `bookingId` does not match a booking stored in the system.
          content:
            application/vnd.tyro.connect+json;version=1.0:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: The validation error message.
              examples:
                Bad Request:
                  value:
                    error: No booking found for 2688fcf2-44dd-4c72-88ac-79d0910f2983
      description: This endpoint is for fetching the details of a booking.
      parameters:
      - in: path
        description: Id of the booking in Tyro Connect that should be retrieved
        name: bookingId
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/header-bearer-token'
      - schema:
          $ref: '#/components/schemas/acceptHeaderBooking1_0'
        in: header
        name: Accept
        required: true
      operationId: get-booking
      summary: Get Booking
      security:
      - JWT: []
      tags:
      - Bookings
    patch:
      responses:
        '204':
          description: No body content
        '400':
          description: When the provided request is not valid.
          content:
            application/vnd.tyro.connect+json;version=1.0:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: The validation error message.
              examples:
                Bad Request:
                  value:
                    error: '"asset.tableStatus" must be one of [SEATED, DINING, FINALISED, CLOSING]'
        '403':
          description: When you don't have the right permissions to update the booking.
        '404':
          description: When the provided `bookingId` does not match a booking stored in the system.
          content:
            application/vnd.tyro.connect+json;version=1.0:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: The validation error message.
              examples:
                Bad Request:
                  value:
                    error: No booking found for 2688fcf2-44dd-4c72-88ac-79d0910f2983
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/update-booking-request'
            examples:
              Customer cancelled booking:
                value:
                  bookingStatus: CANCELLED_BY_CUSTOMER
                  reason: Illness
              Update Booking details:
                value:
                  numberOfPeople: 3
        description: ''
      description: This endpoint is for updating a booking.
      parameters:
      - in: path
        description: Id of the booking in Tyro Connect that should be updated
        name: bookingId
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/header-bearer-token'
      - schema:
          $ref: '#/components/schemas/acceptHeaderBooking1_0'
        in: header
        name: Accept
        required: true
      - $ref: '#/components/parameters/header-content-json'
      operationId: patch-booking
      summary: Update Booking
      security:
      - JWT: []
      tags:
      - Bookings
components:
  schemas:
    section:
      type: object
      description: The section within the venue
      properties:
        id:
          type: string
          description: The POS system's Id of the section
        name:
          type: string
          description: The readable name of the section. E.g. Front bar, drive through for hospitality or for retail men's clothes, womens shoes etc
    room:
      type: object
      properties:
        number:
          type: string
          description: The room number or room id. This field accepts alphanumeric characters e.g `MAIN-33`
          example: MAIN-33
      required:
      - number
    new-booking-request:
      title: New booking request
      type: object
      description: The message to be sent to Tyro Connect in order to mark the booking as seated.
      properties:
        locationId:
          type: string
          description: The id of the location as specified by the Tyro Connect system.
        origin:
          type: object
          description: Information relevant to the booking partner that this booking was created with
          properties:
            bookingReference:
              $ref: '#/components/schemas/bookingReference'
          required:
          - bookingReference
        bookingStatus:
          $ref: '#/components/schemas/bookingStatus'
        numberOfPeople:
          $ref: '#/components/schemas/numberOfPeople'
        payments:
          $ref: '#/components/schemas/payments'
        startTime:
          type: string
          description: The date and time the booking starts at the venue. The format of the date time is the notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6)
          example: '2018-05-02T17:30:00.000Z'
          format: date-time
        endTime:
          type: string
          description: The date and time the booking ends at the venue. The format of the date time is the notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6)
          example: '2018-05-02T18:30:00.000Z'
          format: date-time
        customer:
          $ref: '#/components/schemas/customer'
        notes:
          type: string
          minLength: 1
          maxLength: 500
          description: 'Notes specific to the booking. Example: ''Window seat please'''
        asset:
          description: Contains asset information of the booking
          oneOf:
          - $ref: '#/components/schemas/roomAsset'
          - $ref: '#/components/schemas/tableAsset'
      required:
      - locationId
      - numberOfPeople
      - startTime
      - asset
    table:
      type: object
      properties:
        number:
          type: string
          minLength: 1
          description: The table number or table id. This field accepts alphanumeric characters e.g `MAIN-33`
          example: MAIN-33
    payment:
      title: Payment
      type: object
      properties:
        amount:
          type: integer
          description: This is the amount in cents. e.g 12520 is $125.20
          minimum: 0
        currency:
          type: string
          default: AUD
          enum:
          - AUD
          example: AUD
          description: This is always AUD
    tableAsset:
      type: object
      properties:
        type:
          type: string
          enum:
          - TABLE
        tableStatus:
          $ref: '#/components/schemas/tableStatus'
        arrivalStatus:
          $ref: '#/components/schemas/arrivalStatus'
        tables:
          type: array
          minItems: 1
          description: The tables used for the booking
          items:
            $ref: '#/components/schemas/table'
        section:
          $ref: '#/components/schemas/section'
        discounts:
          type: array
          minItems: 1
          items:
            type: string
        preOrders:
          type: array
          minItems: 1
          items:
            type: string
      required:
      - type
    tableStatus:
      type: string
      description: 'The current table status of the booking

        The supported statuses are:

        * `SEATED` - indicates that the customer connected to the booking has been seated.

        * `DINING` - indicate that the customer connected to the booking has started dining.

        * `CLOSING` - indicates that the customer connected to the booking is close to finishing their meal (e.g. when the bill has been printed).

        * `FINALISED` - indicates that the booking has been finalised (e.g. when the bill has been finalised).'
      enum:
      - SEATED
      - DINING
      - CLOSING
      - FINALISED
    arrivalStatus:
      type: string
      description: The customer's arrival status in relation to the booking
      enum:
      - ON_TIME
      - EARLY
      - RUNNING_LATE
      - NO_SHOW
    acceptHeaderBooking1_0:
      type: string
      enum:
      - application/vnd.tyro.connect+json;version=1.0
      - application/vnd.tyro.connect+json;version=0.1
      default: application/vnd.tyro.connect+json;version=0.1
      description: Specifies which version of the API to use. If no value is provided then 0.1 version will be used
    booking:
      title: Booking
      type: object
      properties:
        id:
          type: string
          description: The id of the booking in the Tyro Connect system
          example: 0f448ac1-862a-4c7b-bdb4-a3b7cdbf6149
        locationId:
          type: string
          description: The id of the location as specified by the Tyro Connect system
        origin:
          $ref: '#/components/schemas/origin'
        asset:
          oneOf:
          - $ref: '#/components/schemas/tableAsset'
          - $ref: '#/components/schemas/roomAsset'
        bookingStatus:
          $ref: '#/components/schemas/bookingStatus'
        numberOfPeople:
          $ref: '#/components/schemas/numberOfPeople'
        payments:
          $ref: '#/components/schemas/payments'
        startTime:
          type: string
          description: The date and time the booking starts at the venue. The format of the date time is the notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6)
          example: '2018-05-02T17:30:00.000Z'
          format: date-time
        endTime:
          type: string
          description: The date and time the booking ends at the venue. The format of the date time is the notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6)
          example: '2018-05-02T18:30:00.000Z'
          format: date-time
        customer:
          $ref: '#/components/schemas/customer'
        notes:
          type: string
          minLength: 1
          maxLength: 500
          description: 'Notes specific to the booking. Example: ''Window seat please'''
        reason:
          $ref: '#/components/schemas/reason'
      required:
      - id
      - locationId
      - numberOfPeople
      - asset
    bookingReference:
      type: string
      description: Reference for the booking. It is used to facilitate identification of the booking in the app and pos systems and must be unique per location and booking partner.
    reason:
      type: string
      maxLength: 50
      description: The reason the booking was rejected or cancelled. Provided only when bookingStatus is `REJECTED`, `CANCELLED_BY_MERCHANT` or `CANCELLED_BY_CUSTOMER`
    bookingStatus:
      type: string
      description: The current status of the booking
      enum:
      - CREATED
      - ACCEPTED
      - CANCELLED_BY_CUSTOMER
      - CANCELLED_BY_MERCHANT
      - REJECTED
      default: CREATED
    address:
      title: address
      type: object
      description: The customer address
      properties:
        line1:
          type: string
        line2:
          type: string
        suburb:
          type: string
        state:
          type: string
        postcode:
          type: string
        country:
          type: string
    assetUpdate:
      type: object
      properties:
        tableStatus:
          $ref: '#/components/schemas/tableStatus'
        arrivalStatus:
          $ref: '#/components/schemas/arrivalStatus'
        tables:
          type: array
          minItems: 1
          description: The tables used for the booking
          items:
            $ref: '#/components/schemas/table'
        section:
          $ref: '#/components/schemas/section'
        rooms:
          type: array
          minItems: 1
          description: The rooms in the booking
          items:
            $ref: '#/components/schemas/room'
        discounts:
          type: array
          minItems: 1
          items:
            type: string
        preOrders:
          type: array
          minItems: 1
          items:
            type: string
    payments:
      type: array
      description: A list of payments applied to the booking.
      items:
        $ref: '#/components/schemas/payment-with-description'
    customer:
      type: object
      description: The customer making the booking
      properties:
        id:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
          description: Customer's name
        notes:
          type: string
          minLength: 1
          maxLength: 500
          description: Notes specific to the customer. For example, 'Loves red wine'.
        email:
          type: string
          minLength: 1
          description: Customer's email address
        address:
          allOf:
          - $ref: '#/components/schemas/address'
          - minLength: 1
        phoneNumber:
          type: string
          minLength: 1
          description: Customer's phone number
        birthday:
          type: string
          minLength: 1
          description: Customer's birthday
    time:
      type: string
      description: The format of the date time is the notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6)
      example: '2018-05-02T17:30:00.000Z'
      format: date-time
    payment-with-description:
      title: Payment With Description
      allOf:
      - $ref: '#/components/schemas/payment'
      - properties:
          description:
            type: string
            description: A description of what this payment amount represents
            example: Deposit for booking
    origin:
      type: object
      description: Information relevant to the booking partner that this booking was created with
      properties:
        name:
          type: string
          description: Name of the booking app
        bookingReference:
          $ref: '#/components/schemas/bookingReference'
      required:
      - bookingReference
    update-booking-request:
      title: Update booking request
      type: object
      description: The message to be sent to Tyro Connect in order to update the booking
      properties:
        asset:
          $ref: '#/components/schemas/assetUpdate'
        bookingStatus:
          $ref: '#/components/schemas/bookingStatus'
        numberOfPeople:
          $ref: '#/components/schemas/numberOfPeople'
        payments:
          $ref: '#/components/schemas/payments'
        reason:
          $ref: '#/components/schemas/reason'
        customer:
          $ref: '#/components/schemas/customer'
        notes:
          type: string
          minLength: 1
          maxLength: 500
          description: 'Notes specific to the booking. Example: ''Window seat please'''
        startTime:
          $ref: '#/components/schemas/time'
        endTime:
          $ref: '#/components/schemas/time'
        origin:
          $ref: '#/components/schemas/origin'
    roomAsset:
      type: object
      description: The section within the venue
      properties:
        type:
          type: string
          enum:
          - ROOM
        rooms:
          type: array
          minItems: 1
          description: The rooms used for the booking
          items:
            $ref: '#/components/schemas/room'
      required:
      - type
      - rooms
    numberOfPeople:
      type: number
      minimum: 1
      description: The number of expected guests
  parameters:
    header-content-json:
      schema:
        type: string
        enum:
        - application/json
      in: header
      name: Content-Type
      required: true
    header-bearer-token:
      schema:
        type: string
        default: Bearer {$$.env.access_token}
      in: header
      name: Authorization
      required: true
  securitySchemes:
    JWT:
      type: openIdConnect
      openIdConnectUrl: https://auth.connect.tyro.com/.well-known/openid-configuration