openapi: 3.1.0
info:
  title: Holiday Taxis Supplier Connect
  version: 17 Jan 2025
  description: |-
    Holiday Taxis Supplier Connect is an API for transfer companies that require an easy way to connect to Holiday Taxis
    and retrieve booking information.
    This document is aimed at developers and technical personnel who will be integrating the API.

    For the detail overview documentation, see https://developer.holidaytaxis.com/supplier-connect/overview.html
servers:
  - url: 'https://suppliers.holidaytaxis.com'
    description: Production
  - url: 'https://suppliers.htxstaging.com'
    description: Staging / Integration Testing
security:
  - "ApiKeyAuth": []
tags:
  - name: search
  - name: booking-retrieve
  - name: booking-update
  - name: driver-events
  - name: metadata
paths:
  "/bookings/search/since/{dateFrom}/until/{dateTo}/page/{pageNumber}":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/dateFrom'
      - $ref: '#/components/parameters/dateTo'
      - $ref: '#/components/parameters/pageNumber'
      - $ref: '#/components/parameters/accept-header-get-delete'
    get:
      operationId: SearchByLastAction
      summary: Search bookings by last action date
      tags:
        - search
      description: |-
        To search for bookings based on their last action date, such as booked date, last modification or cancellation date, the following url should be used as a base using a simple GET request:

        > HTTP GET:  /bookings/search

        Results can be refined by passing additional parameters in the url. Use just the “since” parameter, or use the “since” parameter together with the optional “until” parameter to obtain a list of results.

        * HTTP GET: /bookings/search/since/:datefrom
        * HTTP GET: /bookings/search/since/:datefrom/until/:dateto

        e.g. /bookings/search/since/2026-01-01T00:00/until/2026-01-10T00:00
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-last-action-search-response'
        '204':
          $ref: '#/components/responses/no-content-search-response'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
  "/bookings/search/arrivals/since/{dateFrom}/until/{dateTo}/page/{pageNumber}":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/dateFrom'
      - $ref: '#/components/parameters/dateTo'
      - $ref: '#/components/parameters/pageNumber'
      - $ref: '#/components/parameters/accept-header-get-delete'
    get:
      operationId: SearchByArrivalDate
      summary: Search bookings by arrival date
      tags:
        - search
      description: |-
        To search for bookings based on their arrival date, the following url should be used as a base using a simple GET request:

        > HTTP GET:  /bookings/search/arrivals

        Results can be refined by passing additional parameters in the url. Use just the “since” parameter, or use the “since” parameter together with the optional “until” parameter to obtain a list of results.

        * HTTP GET: /bookings/search/arrivals/since/:datefrom
        * HTTP GET: /bookings/search/arrivals/since/:datefrom/until/:dateto

        e.g. /bookings/search/arrivals/since/2026-01-01T00:00/until/2026-01-10T00:00
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-arrivals-search-response'
        '204':
          $ref: '#/components/responses/no-content-search-response'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
  "/bookings/search/departures/since/{dateFrom}/until/{dateTo}/page/{pageNumber}":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/dateFrom'
      - $ref: '#/components/parameters/dateTo'
      - $ref: '#/components/parameters/pageNumber'
      - $ref: '#/components/parameters/accept-header-get-delete'
    get:
      operationId: SearchByDepartureDate
      summary: Search bookings by departure date
      tags:
        - search
      description: |2-
        To search for bookings based on their departure date, the following url should be used as a base using a simple GET request:

        > HTTP GET:  /bookings/search/departures

        Results can be refined by passing additional parameters in the url. Use just the “since” parameter, or use the “since” parameter together with the optional “until” parameter to obtain a list of results.

        * HTTP GET: /bookings/search/departures/since/:datefrom
        * HTTP GET:  /bookings/search/departures/since/:datefrom/until/:dateto

        e.g. /bookings/search/departures/since/2026-01-01T00:00/until/2026-01-10T00:00
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-departures-search-response'
        '204':
          $ref: '#/components/responses/no-content-search-response'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
  "/bookings/search/tailormade/since/{dateFrom}/until/{dateTo}/page/{pageNumber}":
    x-version: '2026-A'
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/dateFrom'
      - $ref: '#/components/parameters/dateTo'
      - $ref: '#/components/parameters/pageNumber'
      - $ref: '#/components/parameters/accept-header-get-delete'
    get:
      operationId: SearchTailormadeByPickupDate
      summary: Search tailormade bookings by pickup date
      tags:
        - search
      description: |2-
        **This is only available from Version 2026-A or later.** To search for tailormade bookings based on their pickup date, the following url should be used as a base using a simple GET request:

        > HTTP GET:  /bookings/search/tailormade

        Results can be refined by passing additional parameters in the url. Use just the “since” parameter, or use the “since” parameter together with the optional “until” parameter to obtain a list of results.

        * HTTP GET: /bookings/search/tailormade/since/:datefrom
        * HTTP GET:  /bookings/search/tailormade/since/:datefrom/until/:dateto

        e.g. /bookings/search/tailormade/since/2026-01-01T00:00/until/2026-01-10T00:00
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-tailormade-search-response'
        '204':
          $ref: '#/components/responses/no-content-search-response'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
  "/bookings/{bookingRef}":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/bookingRef'
    get:
      operationId: RetrieveIndividualBooking
      summary: Retrieve details of an individual booking
      parameters:
        - $ref: '#/components/parameters/accept-header-get-delete'
      tags:
        - booking-retrieve
      description: |-
        # Basic Usage
        In order to get the details of a booking, the following url must be used via a simple GET request (substituting :ref with a known booking reference in the format AAA(AA)-11111111):

        > HTTP GET:  /bookings/:ref

        # Example - Booking Data
        > HTTP GET:  /bookings/TEST-4290672
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-get-booking-response'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/invalid-ref-response'
    put:
      operationId: UpdateIndividualBooking
      summary: Update details and notes of an individual booking
      parameters:
        - $ref: '#/components/parameters/accept-header'
        - $ref: '#/components/parameters/content-type-header'
      tags:
        - booking-update
      description: "\n# Basic Usage\n\nIn order to update the details of a booking, the following url must be used via a PUT request (substituting :ref with a known booking reference in the format AAA(AA)-11111111):\n\n* /bookings/:ref\n\n# Request Details\nThe details to be updated must be included as the RAW PUT DATA in either XML or JSON.\n\nYou can update any of the below details of a booking:\n\n# Booking Status\nBooking statuses can be updated to confirm changes in the Holiday Taxis system. \n\nThe Details below shows which status a booking can be updated to based on it's current status.\n\n* Current Status  :  PCON\n* New Status : ACON\n##\n* Current Status : PAMM\t\n* New Status : AAMM\n##\n* Current Status : PCAN \n* New Status : ACAN\n\n# Pick-up Details\n## For shuttles/shared transfers\nYou must confirm the pick-up date, time (in local timezone) and meeting point for the shuttle services ideally 48 to 24 hours before departure time. Once submitted, it should not be altered, unless the departure details get amended, in that case the pickup details must be updated accordingly to fit the new values.\n\nThe pick-up date and pick-up address fields should be sent inside of a departure block as per the examples at the bottom of this page.\n\n## For private transfers\nYou should review the pick-up date and time sent to ensure all passengers get to their destination in plenty of time. If there are issues with the supplied pick-up date and time you should raise a query by opening a \"note\" query\n\n# Booking Queries\nYou can raise a query against a booking by setting the specific query type to 1 and adding details to the notecontent if you need to include further information. By setting the query to 1, a query of that type will be opened with HolidayTaxis and will remain open until resolved. **Important** - Please note that you should **only send one query at a time** e.g. if you need to raise a flight number query and a wrong resort query for the same booking, please send these as two separate requests."
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-update-booking-response'
        '400':
          $ref: '#/components/responses/update-error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/invalid-ref-response'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/booking-request-update-individual'
            examples:
              'Update status':
                value:
                  status: "AAMM"
              'New pickup address and date':
                value:
                  newpickupaccom: "Hotel Tiffany"
                  newpickupaddress1: "Egilsgade 76"
                  newpickupaddress2: "2300 Kobenhavn"
                  newpickupaddress3: null
                  departure:
                    pickupdate: '2026-05-14T20:00:00'
          application/xml:
            schema:
              $ref: '#/components/schemas/booking-request-update-individual'
            examples:
              'Update status':
                value: |-
                  <?xml version="1.0" encoding="UTF-8"?>
                  <request>
                    <status>ACON</status>
                  </request>
              'New pickup address and date':
                value: |-
                  <?xml version="1.0" encoding="UTF-8"?>
                  <request>
                    <newpickupaccom>Hotel Tiffany</newpickupaccom>
                    <newpickupaddress1>Egilsgade 76</newpickupaddress1>
                    <newpickupaddress2>2300 Kobenhavn</newpickupaddress2>
                    <newpickupaddress3/>
                    <departure>
                      <pickupdate>2025-05-14T20:00:00</pickupdate>
                    </departure>
                  </request>
  "/bookings/notes/{bookingRef}":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/bookingRef'
      - $ref: '#/components/parameters/accept-header-get-delete'
    get:
      operationId: RetrieveBookingNotes
      summary: Retrieve the notes on a booking
      tags:
        - booking-retrieve
      description: |-
        ### Notes
        To retrieve the notes for a booking, use /bookings/notes/:ref  (substituting :ref with a known booking reference in the format AAA(AA)-11111111):

        ### Example - Booking Data
        * /bookings/notes/TEST-4290672
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-booking-note-response'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/invalid-ref-response'
  "/bookings":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/accept-header'
      - $ref: '#/components/parameters/content-type-header'
    post:
      operationId: UpdateMultipleBookings
      summary: Update details and notes of multiple bookings
      tags:
        - booking-update
      description: "# Basic Usage\nIn order to update the details of multiple bookings, the following url must be used via a POST request:\n\n> HTTP POST: /bookings\n\n# Request Details\nThe details to be updated must be included as the RAW POST DATA in either XML or JSON.\n\nYou can update any of the below details of a booking:\n\n# Booking Status\nBooking statuses can be updated to confirm changes in the Holiday Taxis system. The details below shows which status a booking can be updated to based on it's current status.\n\n* Current Status  :  PCON\n* New Status : ACON\n##\n* Current Status : PAMM\t\n* New Status : AAMM\n##\n* Current Status : PCAN \n* New Status : ACAN\n\n# Pick-up Details\n## For shuttles/shared transfers\nYou must confirm the pick-up date, time (in local timezone) and meeting point for the shuttle services ideally 48 to 24 hours before departure time. Once submitted, it should not be altered, unless the departure details get amended, in that case the pickup details must be updated accordingly to fit the new values.\n\nThe pick-up date and pick-up address fields should be sent inside of a departure block as per the examples at the bottom of this page.\n\n## For private transfers\nYou should review the pick-up date and time sent to ensure all passengers get to their destination in plenty of time. If there are issues with the supplied pick-up date and time you should raise a query by opening a \"note\" query\n\n# Booking Queries\nYou can raise a query against a booking by setting the specific query type to 1 and adding details to the notecontent if you need to include further information. By setting the query to 1, a query of that type will be opened with HolidayTaxis and will remain open until resolved. **Important** - Please note that you should **only send one query at a time** e.g. if you need to raise a flight number query and a wrong resort query for the same booking, please send these as two separate requests.\n\n# Partial Success\nWhen you send an update for multiple bookings, if one or more of the updates fail, we will return a 400 response. This response will include details in the ‘errors’ object about which bookings failed and why. Any bookings from your request which are not included in the errors details will have been updated successfully and do not need any further action."
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-booking-update-multiple-response'
        '400':
          $ref: '#/components/responses/multi-booking-error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/booking-request-update-multiple'
            examples:
              'Status only':
                value:
                  bookings:
                    - ref: "TEST-26767397"
                      status: "ACON"
                    - ref: "TEST-26754972"
                      status: "AAMM"
                    - ref: "TEST-26684917"
                      status: "ACON"
              'New pickup date only':
                value:
                  bookings:
                    - ref: "TEST-26767397"
                      departure:
                        pickupdate: "2026-03-07T14:20:00"
                    - ref: "TEST-26754972"
                      departure:
                        pickupdate: "2026-07-19T11:45:00"
                    - ref: "TEST-26684917"
                      departure:
                        pickupdate: "2026-04-12T07:35:00"
              'Combination of updates':
                value:
                  bookings:
                    - ref: "TEST-26767397"
                      status: "ACON"
                    - ref: "TEST-26754972"
                      departure:
                        pickupdate: "2026-06-03T10:00:00"
                    - ref: "TEST-26684917"
                      newpickupaccom: "Atlantis Hotel"
                      newpickupaddress1: "300 Spencer Street"
                      newpickupaddress2: "Melbourne"
                      newpickupaddress3: "VIC 3000"
                      departure:
                        pickupdate: "2026-04-12T08:00:00"
                    - ref: "TEST-26718573"
                      notes:
                        note:
                          notecontent: "Wrong resort note"
                          wrongresort: 1
          application/xml:
            schema:
              $ref: '#/components/schemas/booking-request-update-multiple'
            examples:
              'Status only':
                value: |-
                  <?xml version="1.0" encoding="UTF-8"?>
                  <request>
                    <bookings>
                      <booking>
                        <ref>TEST-26767397</ref>
                        <status>ACON</status>
                      </booking>
                      <booking>
                        <ref>TEST-26754972</ref>
                        <status>AAMM</status>
                      </booking>
                      <booking>
                        <ref>TEST-26684917</ref>
                        <status>ACAN</status>
                      </booking>
                    </bookings>
                  </request>
              'New pickup date only':
                value: |-
                  <?xml version="1.0" encoding="UTF-8"?>
                  <request>
                    <bookings>
                      <booking>
                        <ref>TEST-26767397</ref>
                        <departure>
                          <pickupdate>2026-03-07T14:20:00</pickupdate>
                        </departure>
                      </booking>
                      <booking>
                        <ref>TEST-26754972</ref>
                        <departure>
                          <pickupdate>2026-07-19T11:45:00</pickupdate>
                        </departure>
                      </booking>
                      <booking>
                        <ref>TEST-26684917</ref>
                        <departure>
                          <pickupdate>2026-04-12T07:35:00</pickupdate>
                        </departure>
                      </booking>
                    </bookings>
                  </request>
              'Combination of updates':
                value: |-
                  <?xml version="1.0" encoding="UTF-8"?>
                  <request>
                    <bookings>
                      <booking>
                        <ref>TEST-26767397</ref>
                        <status>ACON</status>
                      </booking>
                      <booking>
                        <ref>TEST-26754972</ref>
                        <departure>
                          <pickupdate>2025-07-09T21:10:00</pickupdate>
                        </departure>
                      </booking>
                      <booking>
                        <ref>TEST-26684917</ref>
                        <newpickupaccom>Atlantis Hotel</newpickupaccom>
                        <newpickupaddress1>300 Spencer Street</newpickupaddress1>
                        <newpickupaddress2>Melbourne</newpickupaddress2>
                        <newpickupaddress3>VIC 3000</newpickupaddress3>
                        <departure>
                          <pickupdate>2025-07-09T21:10:00</pickupdate>
                        </departure>
                      </booking>
                      <booking>
                        <ref>TEST-26718573</ref>
                        <notes>
                          <note>
                            <notecontent>Wrong resort note</notecontent>
                            <wrongresort>1</wrongresort>
                          </note>
                        </notes>
                      </booking>
                    </bookings>
                  </request>
  "/bookings/reconfirm":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/accept-header'
      - $ref: '#/components/parameters/content-type-header'
    post:
      operationId: ReconfirmMultipleBookings
      summary: Reconfirm multiple bookings
      tags:
        - booking-update
      description: |-
        # Basic Usage
        In order to reconfirm multiple bookings, the following url must be used via a POST request:


        > HTTP POST: /bookings/reconfirm

        # Request Details
        The details to be updated must be included as the **RAW POST DATA**  in either XML or JSON.

        You can update any of the below details of a booking:

        # Pick-up time
        A booking's pick-up time (in local timezone) can be confirmed or updated. The default pickup time on bookings is based on the estimated travel time to the destination and the check-in time required at the destination airport, port, train station, etc. (if applicable).

        It is **highly recommended** that the pick-up time is reviewed on ALL bookings to ensure all passengers get to their destination in plenty of time.

        # Name and Address of Pick-up Accommodation
        The name and address of a booking's pick-up accommodation can be updated if they are different from the details currently on the booking.
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/successful-booking-reconfirm-response'
        '400':
          $ref: '#/components/responses/reconfirm-partial-success-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/booking-request-reconfirm'
            example:
              bookings:
                - ref: TEST-26673678
                  newpickuphour: "10"
                  newpickupmin: "15"
                - ref: TEST-26783196
                  newpickuphour: "22"
                  newpickupmin: "20"
                - ref: TEST-25275265
                  newpickuphour: "10"
                  newpickupmin: "10"
                  newpickupaccom: "Le Meridien Barcelona"
                  newpickupaddress1: "La Rambla 111"
                  newpickupaddress2: "Carrer del Pinto Fortuny"
                  newpickupaddress3: "Barcelona"
          application/xml:
            schema:
              $ref: '#/components/schemas/booking-request-reconfirm'
            example: |-
              <?xml version="1.0" encoding="UTF-8"?>
              <request>
                <booking>
                  <ref>TEST-26673678</ref>
                  <newpickuphour>10</newpickuphour>
                  <newpickupmin>15</newpickupmin>
                </booking>
                <booking>
                  <ref>TEST-26783196</ref>
                  <newpickuphour>22</newpickuphour>
                  <newpickupmin>20</newpickupmin>
                </booking>
                <booking>
                  <ref>TEST-25275265</ref>
                  <newpickuphour>10</newpickuphour>
                  <newpickupmin>10</newpickupmin>
                  <newpickupaccom>Le Meridien Barcelona</newpickupaccom>
                  <newpickupaddress1>La Rambla 111</newpickupaddress1>
                  <newpickupaddress2>Carrer del Pinto Fortuny</newpickupaddress2>
                  <newpickupaddress3>Barcelona</newpickupaddress3>
                </booking>
              </request>
  "/bookings/{bookingRef}/vehicles/{vehicleIdentifier}":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-min-2025-01'
      - $ref: '#/components/parameters/bookingRef-syntheticTesting'
      - $ref: '#/components/parameters/vehicleIdentifier'
    put:
      operationId: SetDriverAndVehicle
      summary: Provide driver and vehicle details for a booking
      parameters:
        - $ref: '#/components/parameters/accept-header'
        - $ref: '#/components/parameters/content-type-header'
      tags:
        - driver-events
      description: |-
        This request allows the supplier to provide information about the driver(s) and vehicle(s) assigned to a booking.
        Holiday Taxis will then share this directly with the customer, so that they can contact or locate the driver
        at the pickup point.

        Details of how this will be communicated to the customer are subject to change, and suppliers are encouraged
        to supply as much information as they have available to avoid needing later changes as recommendations evolve.

        Please inform [spm@holidaytaxis.com](mailto:spm@holidaytaxis.com) if you are planning to start sending any Driver Events data.

        This request should normally be sent once per vehicle per booking.

        It is requested that details are provided in English where applicable, e.g. for the "color" and "description" fields.

        Please also see the [Driver events booking flow](/supplier-connect/booking-flow.html)
        ### Vehicle Identifiers

        The `vehicleIdentifier` allows the system to distinguish between multiple vehicles fulfilling one booking,
        and to link the contact, vehicle, status, and location for that vehicle.

        The identifier for each physical vehicle or driver should be unique within a booking, but does not need to be
        consistent between bookings.

        Integrators are free to use any identifier that is convenient, subject to the following constraints:

        - Each identifier must be no longer than 40 characters.
        - Each identifier must contain only characters unreserved in URIs (as defined by RFC 3986): uppercase and lowercase
          letters, decimal digits, hyphen, period, underscore, and tilde.

        Integrators must store (or be able to predictably regenerate) this vehicleIdentifier in their system for future requests.

        Examples of identifiers which could be used:

        - A number incremented within the booking for each vehicle added or replaced, e.g. `/bookings/HTX-12345678/vehicles/3`
        - An internal identifier for the vehicle or transfer from a fleet management system, e.g. `/bookings/HTX-12345678/vehicles/to_pr_jo_03`
          or `/bookings/HTX-12345678/vehicles/bc9f89ab-285f-410e-913e-464d4adbaa53`
        - The registration plate of the vehicle, e.g. `/bookings/HTX-12345678/vehicles/AB-123-XYZ`
        - The driver's internal username, e.g. `/bookings/HTX-12345678/vehicles/j.smith`
        - A hash of an identifier which you do not want to expose, or which would not meet the length and character requirements,
          e.g. calculate `sha_256('minnie.driver@example.com')` and shorten to `/bookings/HTX-12345678/vehicles/81c35bb182ed10e371b0`

        If the allocated vehicle is no longer able to fulfill the booking then a DELETE /bookings/{bookingRef}/vehicles/{vehicleIdentifier} request MUST be sent.
        A new vehicle should be allocated with a new identifier.

        Additional requests for the same vehicle identifier on the same booking will overwrite all previous values, even if a field is omitted or null
        in the new request. For example, if no driver name is provided in the request, any previous driver name for that
        vehicle on that booking will be deleted.

        ### Example flow: Provide contact details when driver is assigned

        ```
        PUT /bookings/HTX-12345678/vehicles/81c35bb182ed10e371b0
        { "driver": { "phoneNumber": "+441273828200" } }
        ```

        ### Example flow: Extended driver and vehicle details

        ```
        PUT /bookings/HTX-12345678/vehicles/AB-123-XYZ
        {
          "driver": {
            "name": "Joe", "licenseNumber": "A42", "phoneNumber": "+441273828200", "preferredContactMethod": "VOICE", "contactMethods": ["VOICE", "SMS", "WHATSAPP"]
          },
          "vehicle": { "brand": "Toyota", "model": "Prius", "color": "blue", "description": "Branded with 'Acme Transfers'", "registration": "AB-123-XYZ" }
        }
        ```

        ### Example flow: Provide details of each vehicle and driver when customer has requested 3 taxis

        ```
        PUT /bookings/HTX-12345678/vehicles/1
        {
          "driver": { "name": "Joe", "phoneNumber": "+4401111222333", "preferredContactMethod": "VOICE", "contactMethods": ["VOICE", "SMS", "VIBER"] },
          "vehicle": { "brand": "Toyota", "model": "Prius", "color": "blue", "description": "Branded with 'Acme Transfers'", "registration": "AB-123-XYZ" }
        }
        PUT /bookings/HTX-12345678/vehicles/2
        {
          "driver": { "name": "Sue", "phoneNumber": "+4401111444555", "preferredContactMethod": "VOICE", "contactMethods": ["VOICE", "SMS", "VIBER"] },
          "vehicle": { "brand": "Toyota", "model": "Prius", "color": "red", "description": "Branded with 'Acme Transfers'", "registration": "AB-456-JKL" }
        }
        PUT /bookings/HTX-12345678/vehicles/3
        {
          "driver": { "name": "Alex", "phoneNumber": "+4401111666777", "preferredContactMethod": "VOICE", "contactMethods": ["VOICE", "SMS", "VIBER"] },
          "vehicle": { "brand": "Vauxhall", "model": "Astra", "color": "pink", "registration": "AB-789-PQR" }
        }
        ```

        #### Example flow: Re-allocating a driver/vehicle in a two-vehicle booking

        ```
        PUT /bookings/HTX-12345678/vehicles/jo_03
        { "driver": { "name": "Joe", "phoneNumber": "+4401111222333" } }
        PUT /bookings/HTX-12345678/vehicles/sa_07
        { "driver": { "name": "Sam", "phoneNumber": "+4401111444555" } }
        ...
        DELETE /bookings/HTX-12345678/vehicles/sa_07
        PUT /bookings/HTX-12345678/vehicles/al_01
        { "driver": { "name": "Alex", "phoneNumber": "+4401111666777" } }
        ```

        ### XML request example

        ```xml
        <?xml version="1.0" encoding="UTF-8"?>
        <request>
          <driver>
            <phoneNumber>+441273828200</phoneNumber>
            <preferredContactMethod>VOICE</preferredContactMethod>
            <contactMethods>
              <contactMethod>VOICE</contactMethod>
              <contactMethod>SMS</contactMethod>
            </contactMethods>
          </driver>
          <vehicle>
            <color>Red</color>
            <description>White stripe on front &amp; sides</description>
          </vehicle>
        </request>
        ```
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              xml:
                name: request
              required:
                - driver
              properties:
                driver:
                  type: object
                  additionalProperties: false
                  required:
                    - phoneNumber
                    - preferredContactMethod
                  properties:
                    name:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: The name of the driver assigned to the booking
                      example: Joe
                    phoneNumber:
                      type: string
                      description: A phone number which the customer can use to contact the driver directly, in international E.164 format
                      pattern: "^\\+[1-9]\\d{1,14}$"
                      example: "+441273828200"
                    preferredContactMethod:
                      $ref: "#/components/schemas/contact-method"
                      description: The driver's preferred contact method
                    contactMethods:
                      type: array
                      xml:
                        wrapped: true
                      items:
                        $ref: "#/components/schemas/contact-method"
                    licenseNumber:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: A license number issued to the driver by a relevant local authority
                      example: A42
                vehicle:
                  type: object
                  additionalProperties: false
                  minProperties: 1
                  properties:
                    brand:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: The manufacturer or brand of the vehicle
                      example: Toyota
                    model:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: The model of the vehicle
                      example: Prius
                    color:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: The main color of the vehicle (in English)
                      example: blue
                    description:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: Any additional description of the vehicle (in English)
                      example: Branded with 'Acme Transfers'
                    registration:
                      type: string
                      minLength: 1
                      maxLength: 256
                      description: The registration / license plate of the vehicle
                      example: AB-123-XYZ
            example: {"driver": {"name": "Joe", "licenseNumber": "42", "phoneNumber": "+441273828200", "preferredContactMethod": "VOICE", "contactMethods": ["VOICE", "SMS", "WHATSAPP"]}, "vehicle": {"brand": "Toyota", "model": "Prius", "color": "blue", "description": "Branded with 'Acme Transfers'", "registration": "AB-123-XYZ"}}
          application/xml:
            schema:
              # This long reference allows us to re-use the JSON definition for XML ("~1" is the escape for "/" in JSON Pointer)
              $ref: "#/paths/~1bookings~1{bookingRef}~1vehicles~1{vehicleIdentifier}/put/requestBody/content/application~1json/schema"
            example: |-
              <?xml version="1.0" encoding="UTF-8"?>
              <request>
                <driver>
                  <phoneNumber>+441273828200</phoneNumber>
                  <preferredContactMethod>VOICE</preferredContactMethod>
                  <contactMethods>
                    <contactMethod>VOICE</contactMethod>
                    <contactMethod>SMS</contactMethod>
                  </contactMethods>
                </driver>
                <vehicle>
                  <color>Red</color>
                  <description>White stripe on front &amp; sides</description>
                </vehicle>
              </request>
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/success-acknowledgement'
        '202':
          $ref: '#/components/responses/success-non-committal'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
    delete:
      operationId: DeallocateVehicleAndDriver
      summary: De-allocate a vehicle and driver from a booking
      parameters:
        - $ref: '#/components/parameters/accept-header-get-delete'
      tags:
        - driver-events
      description: "As described under `PUT /bookings/{bookingRef}/vehicles/{vehicleIdentifier}`, a vehicle identifier is associated\nwith all vehicle, driver, status, and location information, to distinguish multiple vehicles fulfilling one booking.\n\nIf a change in circumstances means that a new vehicle is being allocated to the booking, this operation can be used\nto indicate that information associated with a vehicle identifier is no longer applicable.\nThe replacement vehicle can then be allocated by sending a new vehicle identifier in a\n`PUT /bookings/{bookingRef}/vehicles/{vehicleIdentifier}` or\n`POST /bookings/{bookingRef}/vehicles/{vehicleIdentifier}/location` request.\n\nPlease inform [spm@holidaytaxis.com](mailto:spm@holidaytaxis.com) if you are planning to start sending any Driver Events data.\n\nNo information for a de-allocated vehicle will be shown to the customer, but some anonymised history may be retained\nfor use in later investigations, in line with the Holiday Taxis data protection policy.\n\nNote that it is only necessary to de-allocate vehicles from future or in progress bookings. Once a booking has \nbeen completed, the information will no longer be shown to the customer, and will be automatically deleted or \nanonymised in line with the Holiday Taxis data protection policy.\n\n### Example flow: Re-allocating a vehicle after providing both contact and location\n\n```\nPUT /bookings/HTX-12345678/vehicles/jo_03\n{ \"driver\": { \"name\": \"Joe\", \"phoneNumber\": \"+4401111222333\" } }\nPOST /bookings/HTX-12345678/vehicles/jo_03/location\n{ \"timestamp\": \"2025-08-17T12:30:00+00:00\", \"location\": {\"lat\": 50.82109, \"lng\": -0.141366 } }\n...\nPOST /bookings/HTX-12345678/vehicles/jo_03/location\n{ \"timestamp\": \"2025-08-17T12:30:05+00:00\", \"location\": {\"lat\": 50.82108, \"lng\": -0.141367 } }\n...\nDELETE /bookings/HTX-12345678/vehicles/jo_03\nPUT /bookings/HTX-12345678/vehicles/al_01\n{ \"driver\": { \"name\": \"Alex\", \"phoneNumber\": \"+4401111666777\" } }\nPOST /bookings/HTX-12345678/vehicles/al_01/location\n{ \"timestamp\": \"2025-08-17T12:30:06+00:00\", \"location\": {\"lat\": 35.815875, \"lng\": -85.363947 } }\n```"
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/success-acknowledgement'
        '202':
          $ref: '#/components/responses/success-non-committal'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
  "/bookings/{bookingRef}/vehicles/{vehicleIdentifier}/location":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-min-2025-01'
      - $ref: '#/components/parameters/bookingRef-syntheticTesting'
      - $ref: '#/components/parameters/vehicleIdentifier'
      - $ref: '#/components/parameters/accept-header'
      - $ref: '#/components/parameters/content-type-header'
    post:
      operationId: SetVehicleLocation
      summary: Provide current location of a vehicle
      tags:
        - driver-events
      description: |-
        This operation is used to provide live status and location information, which will be shared with the customer,
        and may be stored for use in later enquiries.

        Each request must include either a status, a location, or both.

        Please inform [spm@holidaytaxis.com](mailto:spm@holidaytaxis.com) if you are planning to start sending any Driver Events data.

        If available, a new status should be sent when the driver arrives at the pickup point (WAITING_FOR_CUSTOMER),
        once the customer is on board (AFTER_PICKUP), and once the customer has been dropped off (COMPLETED).

        If available, a new location should be sent every 5 seconds until the transfer is completed. However, if this
        update frequency is not possible, you must provide a location at least every 60 seconds.
        Each request may include a status, even if it has not changed; if the status is not provided, it is assumed
        that the last status sent is still accurate.

        The `vehicleIdentifier` must be used to distinguish status and location information when a booking is fulfilled
        by multiple vehicles (as indicated by `novehicle` when retrieving the booking information). For details, see
        the description of `PUT /bookings/{bookingRef}/vehicles/{vehicleIdentifier}`.

        It is not required to send a `PUT /bookings/{bookingRef}/vehicles/{vehicleIdentifier}` request before sending
        status or location information, but the `vehicleIdentifier` values used must be consistent across both operations.

        Please also see the [Driver events booking flow](/supplier-connect/booking-flow.html)

        ### Example flow: Update status at key points in the transfer

        ```
        POST /bookings/HTX-12345678/vehicles/81c35bb182ed10e371b0/location
        { "timestamp": "2025-08-17T12:30:00+00:00", "status": "BEFORE_PICKUP" }
        ...
        POST /bookings/HTX-12345678/vehicles/81c35bb182ed10e371b0/location
        { "timestamp": "2025-08-17T12:55:15+00:00", "status": "WAITING_FOR_CUSTOMER" }
        ...
        POST /bookings/HTX-12345678/vehicles/81c35bb182ed10e371b0/location
        { "timestamp": "2025-08-17T13:10:50+00:00", "status": "AFTER_PICKUP" }
        ...
        POST /bookings/HTX-12345678/vehicles/81c35bb182ed10e371b0/location
        { "timestamp": "2025-08-17T13:57:25+00:00", "status": "COMPLETED" }
        ```

        ### Example flow: Location tracking - send a vehicle location every 5-60 seconds

        ```
        POST /bookings/HTX-12345678/vehicles/AB-123-XYZ/location
        { "timestamp": "2025-08-17T12:30:00+00:00", "location": {"lat": 50.82109, "lng": -0.141366 } }
        POST /bookings/HTX-12345678/vehicles/AB-123-XYZ/location
        { "timestamp": "2025-08-17T12:30:05+00:00", "location": {"lat": 50.82108, "lng": -0.141367 } }
        ...
        POST /bookings/HTX-12345678/vehicles/AB-123-XYZ/location
        { "timestamp": "2025-08-17T12:55:15+00:00", "location": {"lat": 50.82107, "lng": -0.141368 } }
        ...
        POST /bookings/HTX-12345678/vehicles/AB-123-XYZ/location
        { "timestamp": "2025-08-17T13:10:50+00:00", "location": {"lat": 50.82106, "lng": -0.141369 } }
        ...
        POST /bookings/HTX-12345678/vehicles/AB-123-XYZ/location
        { "timestamp": "2025-08-17T13:57:25+00:00", "location": {"lat": 50.82105, "lng": -0.141370 } }
        ```

        ### Example flow: Combined status and location

        ```
        POST /bookings/HTX-12345678/vehicles/bc9f89ab-285f-410e-913e-464d4adbaa53/location
        { "timestamp": "2025-08-17T12:30:00+00:00", "location": {"lat": 50.82109, "lng": -0.141366 }, "status": "BEFORE_PICKUP" }
        POST /bookings/HTX-12345678/vehicles/bc9f89ab-285f-410e-913e-464d4adbaa53/location
        { "timestamp": "2025-08-17T12:30:05+00:00", "location": {"lat": 50.82108, "lng": -0.141367 }, "status": "BEFORE_PICKUP" }
        ...
        POST /bookings/HTX-12345678/vehicles/bc9f89ab-285f-410e-913e-464d4adbaa53/location
        { "timestamp": "2025-08-17T12:55:15+00:00", "location": {"lat": 50.82107, "lng": -0.141368 }, "status": "WAITING_FOR_CUSTOMER" }
        ...
        POST /bookings/HTX-12345678/vehicles/bc9f89ab-285f-410e-913e-464d4adbaa53/location
        { "timestamp": "2025-08-17T13:10:50+00:00", "location": {"lat": 50.82106, "lng": -0.141369 }, "status": "AFTER_PICKUP" }
        ...
        POST /bookings/HTX-12345678/vehicles/bc9f89ab-285f-410e-913e-464d4adbaa53/location
        { "timestamp": "2025-08-17T13:57:25+00:00", "location": {"lat": 50.82105, "lng": -0.141370 }, "status": "COMPLETED" }
        ```

        ### Example flow: Separate status and location updates

        ```
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T12:30:00+00:00", "status": "BEFORE_PICKUP" }
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T12:30:00+00:00", "location": {"lat": 50.82109, "lng": -0.141366 } }
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T12:30:05+00:00", "location": {"lat": 50.82108, "lng": -0.141367 } }
        ...
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T12:55:15+00:00", "status": "WAITING_FOR_CUSTOMER" }
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T12:55:15+00:00", "location": {"lat": 50.82107, "lng": -0.141368 } }
        ...
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T13:10:50+00:00", "status": "AFTER_PICKUP" }
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T13:10:50+00:00", "location": {"lat": 50.82106, "lng": -0.141369 } }
        ...
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T13:57:25+00:00", "location": {"lat": 50.82105, "lng": -0.141370 } }
        POST /bookings/HTX-12345678/vehicles/j.smith/location
        { "timestamp": "2025-08-17T13:57:25+00:00", "status": "COMPLETED" }
        ```

        ### Example flow: Location requests for two vehicles fulfilling the same booking

        Note that requests can be sent in any order, as long as each vehicle is consistently identified.

        ```
        POST /bookings/HTX-12345678/vehicles/1/location
        { "timestamp": "2025-08-17T12:30:00+00:00", "location": {"lat": 50.82109, "lng": -0.141366 } }
        POST /bookings/HTX-12345678/vehicles/2/location
        { "timestamp": "2025-08-17T12:30:01+00:00", "location": {"lat": -77.850001, "lng": 166.715469 } }
        ...
        POST /bookings/HTX-12345678/vehicles/1/location
        { "timestamp": "2025-08-17T12:30:05+00:00", "location": {"lat": 50.82108, "lng": -0.141367 } }
        POST /bookings/HTX-12345678/vehicles/2/location
        { "timestamp": "2025-08-17T12:30:06+00:00", "location": {"lat": -77.850002, "lng": 166.715468 } }
        ...
        POST /bookings/HTX-12345678/vehicles/2/location
        { "timestamp": "2025-08-17T12:30:11+00:00", "location": {"lat": -77.850003, "lng": 166.715469 } }
        POST /bookings/HTX-12345678/vehicles/1/location
        { "timestamp": "2025-08-17T12:30:12+00:00", "location": {"lat": 50.82107, "lng": -0.141368 } }
        ```

        ### Example flow: Re-allocating a driver/vehicle in a two-vehicle booking

        ```
        POST /bookings/HTX-12345678/vehicles/jo_03/location
        { "timestamp": "2025-08-17T12:30:00+00:00", "location": {"lat": 50.82109, "lng": -0.141366 } }
        POST /bookings/HTX-12345678/vehicles/sa_07/location
        { "timestamp": "2025-08-17T12:30:01+00:00", "location": {"lat": -77.850001, "lng": 166.715469 } }
        ...
        POST /bookings/HTX-12345678/vehicles/jo_03/location
        { "timestamp": "2025-08-17T12:30:05+00:00", "location": {"lat": 50.82108, "lng": -0.141367 } }
        DELETE /bookings/HTX-12345678/vehicles/sa_07
        POST /bookings/HTX-12345678/vehicles/al_01/location
        { "timestamp": "2025-08-17T12:30:06+00:00", "location": {"lat": 35.815875, "lng": -85.363947 } }
        ```

        ### XML request example

        ```
        <?xml version="1.0" encoding="UTF-8"?>
        <request>
          <timestamp>2025-08-17T12:55:15+00:00</timestamp>
          <location><lat>-77.850001</lat><lng>166.715469</lng></location>
          <status>WAITING_FOR_CUSTOMER</status>
        </request>
        ```
      requestBody:
        content:
          application/json:
            schema:
              type: object
              xml:
                name: request
              additionalProperties: false
              required:
                - timestamp
              minProperties: 2
              properties:
                timestamp:
                  type: string
                  description: |-
                    The time at which the vehicle reported the given location, in UTC (+00:00).

                    Times in the future, or more than 10 seconds in the past, will be rejected.
                  format: date-time
                  example: "2025-08-17T13:05:42+00:00"
                location:
                  type: object
                  description: Location of the vehicle. Must be provided if "status" is not.
                  additionalProperties: false
                  required:
                    - lat
                    - lng
                  properties:
                    lat:
                      type: number
                      description: |-
                        The decimal latitude of the vehicle's current location.

                        Expected accuracy is between 4 and 6 decimal places.
                      minimum: -90
                      maximum: 90
                      example: 50.821090
                    lng:
                      type: number
                      description: |-
                        The decimal longitude of the vehicle's current location.

                        Expected accuracy is between 4 and 6 decimal places.
                      minimum: -180
                      maximum: 180
                      example: -0.141366
                status:
                  type: string
                  description: |-
                    Describes the current status of the transfer relative to the customer pickup.
                    Must be provided if "location" is not.

                    Values accepted:

                    * BEFORE_PICKUP: initial status, while driving to the pickup location
                    * WAITING_FOR_CUSTOMER: the driver has reached the pickup location, but the customer is not yet on board
                    * AFTER_PICKUP: the customer has boarded the vehicle, and it is driving to the dropoff location
                    * COMPLETED: the vehicle has reached the dropoff location, and no more location information will be sent
                    * NO_SHOW: the customer has not shown up at the pickup point, and the vehicle will no longer wait for them
                  enum:
                    - BEFORE_PICKUP
                    - WAITING_FOR_CUSTOMER
                    - AFTER_PICKUP
                    - COMPLETED
                    - NO_SHOW
            example: {"timestamp": "2025-08-17T12:30:00+00:00", "location": {"lat": 50.82109, "lng": -0.141366}, "status": "BEFORE_PICKUP"}
          application/xml:
            schema:
              # This long reference allows us to re-use the JSON definition for XML ("~1" is the escape for "/" in JSON Pointer)
              $ref: "#/paths/~1bookings~1{bookingRef}~1vehicles~1{vehicleIdentifier}~1location/post/requestBody/content/application~1json/schema"
            example: |-
              <?xml version="1.0" encoding="UTF-8"?>
              <request>
                <timestamp>2025-08-17T12:55:15+00:00</timestamp>
                <location><lat>-77.850001</lat><lng>166.715469</lng></location>
                <status>WAITING_FOR_CUSTOMER</status>
              </request>
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/success-acknowledgement'
        '202':
          $ref: '#/components/responses/success-non-committal'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
  "/bookings/{bookingRef}/vehicles":
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-min-2025-01'
      - $ref: '#/components/parameters/bookingRef-syntheticTesting'
      - $ref: '#/components/parameters/accept-header-get-delete'
    delete:
      operationId: DeallocateAllVehiclesAndDrivers
      summary: De-allocate all vehicles and drivers from a booking
      tags:
        - driver-events
      description: "As described under `PUT /bookings/{bookingRef}/vehicles/{vehicleIdentifier}`, a vehicle identifier is associated\nwith all vehicle, driver, status, and location information, to distinguish multiple vehicles fulfilling one booking.\nThis identifier must then be re-used to update details, or \"de-allocated\" from the booking by calling \n`DELETE /bookings/{bookingRef}/vehicles/{vehicleIdentifier}`\n\nIn some situations, it may be necessary or convenient to de-allocate all vehicles from a booking in a single call.\nFor example, the original vehicle identifier used may have been lost, and a new set of data needs to be provided.\n\nIn this case, a `DELETE /bookings/{bookingRef}/vehicles` request (with no vehicle identifier) may be used. This\nhas the same effect as calling `DELETE /bookings/{bookingRef}/vehicles/{vehicleIdentifier}` for each vehicle\nidentifier previously used on that booking: no information previously sent will be shown to the customer, \nbut some anonymised history may be retained for use in later investigations, in line with the Holiday Taxis \ndata protection policy.\n\nNote that it is only necessary to de-allocate vehicles from future or in progress bookings. Once a booking has \nbeen completed, the information will no longer be shown to the customer, and will be automatically deleted or \nanonymised in line with the Holiday Taxis data protection policy.\n\nPlease inform [spm@holidaytaxis.com](mailto:spm@holidaytaxis.com) if you are planning to start sending any Driver Events data.\n\n### Example flow: Re-allocating both drivers/vehicles in a two-vehicle booking\n\n```\nPUT /bookings/HTX-12345678/vehicles/jo_03\n{ \"driver\": { \"name\": \"Joe\", \"phoneNumber\": \"+4401111222333\" } }\nPUT /bookings/HTX-12345678/vehicles/sa_07\n{ \"driver\": { \"name\": \"Sam\", \"phoneNumber\": \"+4401111444555\" } }\n...\nDELETE /bookings/HTX-12345678/vehicles\nPUT /bookings/HTX-12345678/vehicles/al_01\n{ \"driver\": { \"name\": \"Alex\", \"phoneNumber\": \"+4401111666777\" } }\nPUT /bookings/HTX-12345678/vehicles/na_01\n{ \"driver\": { \"name\": \"Nathalie\", \"phoneNumber\": \"+4401111888999\" } }\n```\n\nDe-allocating each vehicle in turn has exactly the same result:\n\n```\nPUT /bookings/HTX-12345678/vehicles/jo_03\n{ \"driver\": { \"name\": \"Joe\", \"phoneNumber\": \"+4401111222333\" } }\nPUT /bookings/HTX-12345678/vehicles/sa_07\n{ \"driver\": { \"name\": \"Sam\", \"phoneNumber\": \"+4401111444555\" } }\n...\nDELETE /bookings/HTX-12345678/vehicles/sa_07\nDELETE /bookings/HTX-12345678/vehicles/jo_03\nPUT /bookings/HTX-12345678/vehicles/al_01\n{ \"driver\": { \"name\": \"Alex\", \"phoneNumber\": \"+4401111666777\" } }\nPUT /bookings/HTX-12345678/vehicles/na_01\n{ \"driver\": { \"name\": \"Nathalie\", \"phoneNumber\": \"+4401111888999\" } }\n```"
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          $ref: '#/components/responses/success-acknowledgement'
        '202':
          $ref: '#/components/responses/success-non-committal'
        '400':
          $ref: '#/components/responses/error-response'
        '401':
          $ref: '#/components/responses/unauthorized-response'
        '404':
          $ref: '#/components/responses/notfound-response'
  /products/resorts/areas:
    parameters:
      - $ref: '#/components/parameters/api-key-header'
      - $ref: '#/components/parameters/version-header-any'
      - $ref: '#/components/parameters/accept-header-get-delete'
      - schema:
          type: integer
          default: 1
          example: 19928
          minimum: 1
        in: query
        name: startAt
        description: First ResortId to be returned in batch
    get:
      operationId: get-products-resorts-areas
      summary: List resorts with related geographical area data
      description: |-
        Describes the geographic areas which can be searched in the Holiday Taxis system.
        For each "resort" in the Holiday Taxis system, lists one or more shapes in WKT format which describe the geographic areas which are included in that resort.

        Results are returned in batches of 500 and ordered by ResortId (unique ID for a HolidayTaxis resort).

        If a `startAt` value is provided, results will be returned starting at this ResortId. Use the next and previous links in the response to navigate through batches.
      tags:
        - metadata
      security:
        - ApiKeyAuth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          next:
                            type:
                              - string
                              - 'null'
                            pattern: '^\/products\/resorts\/areas\?startAt=[1-9]\d*$'
                            description: URI for next batch of 500 resorts
                          previous:
                            type:
                              - string
                              - 'null'
                            pattern: '^\/products\/resorts\/areas\?startAt=[1-9]\d*$'
                            description: URI for previous batch of 500 resorts
                  resorts:
                    type: object
                    minProperties: 0
                    patternProperties:
                      "resort_[0-9]+":
                        type: object
                        description: List of resorts, formatted as an object with sequential keys (resort_0, resort_1, etc)
                        properties:
                          resortid:
                            type: integer
                            minimum: 1
                            description: Unique ID for HolidayTaxis resort
                          areas:
                            type: object
                            description: List of areas which define the resort, formatted as an object with sequential keys (area_0, area_1, etc)
                            patternProperties:
                              "area_[0-9]+":
                                type: string
                                description: Shape description in WKT (well-known text) format, formatted as an object with sequential keys (area_0, area_1, etc). See https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry. Includes Polygon and MultiPolygon types.'
                  warnings:
                    $ref: '#/components/schemas/warnings'
              examples:
                JSON response for first page:
                  value: {"metadata": {"links": {"next": "/products/resorts/areas?startAt=964", "previous": null}}, "resorts": {"resort_0": {"resortid": 1, "areas": {"area_0": "POLYGON ((1.0661400000000003 41.0701, 1.0690400000000002 41.0702, 1.07095 41.0706, 1.07345 41.0716, 1.0770100000000002 41.073, 1.0820100000000001 41.0725, 1.09343 41.0719, 1.10128 41.0719, 1.10112 41.071, 1.09974 41.0648, 1.08601 41.0636, 1.0711824172318287 41.064590028638861, 1.08772 41.0721, 1.0665400000000003 41.0649, 1.0711824172318287 41.064590028638861, 1.0665800000000003 41.0625, 1.0661400000000003 41.0701))", "area_1": "POLYGON ((1.10874 41.0713, 1.10842 41.0731, 1.10838 41.0733, 1.10835 41.0734, 1.10803 41.0734, 1.10201 41.0721, 1.10132 41.0719, 1.10101 41.0705, 1.10068 41.069, 1.10874 41.0713))", "area_2": "POLYGON ((1.1111 41.0717, 1.11314 41.0721, 1.11484 41.0726, 1.1179 41.0736, 1.11763 41.074, 1.11721 41.0744, 1.1167 41.0748, 1.11528 41.0755, 1.11357 41.0763, 1.11179 41.0751, 1.10836 41.0735, 1.10876 41.0713, 1.1111 41.0717))"}}, "resort_1": {"resortid": 2, "areas": {"area_0": "POLYGON ((1.0661400000000003 41.0701, 1.0690400000000002 41.0702, 1.07095 41.0706, 1.07345 41.0716, 1.0770100000000002 41.073, 1.0820100000000001 41.0725, 1.09343 41.0719, 1.10128 41.0719, 1.10112 41.071, 1.09974 41.0648, 1.08601 41.0636, 1.0711824172318287 41.064590028638861, 1.08772 41.0721, 1.0665400000000003 41.0649, 1.0711824172318287 41.064590028638861, 1.0665800000000003 41.0625, 1.0661400000000003 41.0701))", "area_1": "POLYGON ((1.10874 41.0713, 1.10842 41.0731, 1.10838 41.0733, 1.10835 41.0734, 1.10803 41.0734, 1.10201 41.0721, 1.10132 41.0719, 1.10101 41.0705, 1.10068 41.069, 1.10874 41.0713))", "area_2": "POLYGON ((1.1111 41.0717, 1.11314 41.0721, 1.11484 41.0726, 1.1179 41.0736, 1.11763 41.074, 1.11721 41.0744, 1.1167 41.0748, 1.11528 41.0755, 1.11357 41.0763, 1.11179 41.0751, 1.10836 41.0735, 1.10876 41.0713, 1.1111 41.0717))"}}}, "warnings": ["Example Warning"]}
            application/xml:
              schema:
                type: object
                xml:
                  name: response
                properties:
                  metadata:
                    type: object
                    properties:
                      links:
                        type: object
                        properties:
                          next:
                            type:
                              - string
                              - 'null'
                            pattern: '^\/products\/resorts\/areas\?startAt=[1-9]\d*$|^$'
                            description: URI for next batch of 500 resorts
                          previous:
                            type:
                              - string
                              - 'null'
                            pattern: '^\/products\/resorts\/areas\?startAt=[1-9]\d*$|^$'
                            description: URI for previous batch of 500 resorts
                  resorts:
                    type: array
                    xml:
                      wrapped: true
                    minItems: 0
                    items:
                      type: object
                      xml:
                        name: resort
                      properties:
                        resortid:
                          type: integer
                          minimum: 1
                          description: Unique ID for HolidayTaxis resort
                        areas:
                          type: array
                          xml:
                            wrapped: true
                          description: 'Array of strings in WKT (well-known text) format. See https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry. Includes Polygon and MultiPolygon types.'
                          items:
                            type: string
                            xml:
                              name: area
              examples:
                XML response for first page:
                  value: |-
                    <?xml version="1.0" encoding="UTF-8"?>
                    <response>
                      <metadata>
                        <links>
                          <next>/products/resorts/areas?startAt=964</next>
                          <previous/>
                        </links>
                      </metadata>
                      <resorts>
                        <resort>
                          <resortid>1</resortid>
                          <areas>
                            <area>
                                POLYGON ((1.0661400000000003 41.0701, 1.0690400000000002 41.0702, 1.07095 41.0706, 1.07345 41.0716, 1.0770100000000002 41.073, 1.0820100000000001 41.0725, 1.09343 41.0719, 1.10128 41.0719, 1.10112 41.071, 1.09974 41.0648, 1.08601 41.0636, 1.0711824172318287 41.064590028638861, 1.08772 41.0721, 1.0665400000000003 41.0649, 1.0711824172318287 41.064590028638861, 1.0665800000000003 41.0625, 1.0661400000000003 41.0701))
                            </area>
                             <area>
                                POLYGON ((1.0661400000000003 41.0701, 1.0690400000000002 41.0702, 1.07095 41.0706, 1.07345 41.0716, 1.0770100000000002 41.073, 1.0820100000000001 41.0725, 1.09343 41.0719, 1.10128 41.0719, 1.10112 41.071, 1.09974 41.0648, 1.08601 41.0636, 1.0711824172318287 41.064590028638861, 1.08772 41.0721, 1.0665400000000003 41.0649, 1.0711824172318287 41.064590028638861, 1.0665800000000003 41.0625, 1.0661400000000003 41.0701))
                            </area>
                             <area>
                                POLYGON ((1.0661400000000003 41.0701, 1.0690400000000002 41.0702, 1.07095 41.0706, 1.07345 41.0716, 1.0770100000000002 41.073, 1.0820100000000001 41.0725, 1.09343 41.0719, 1.10128 41.0719, 1.10112 41.071, 1.09974 41.0648, 1.08601 41.0636, 1.0711824172318287 41.064590028638861, 1.08772 41.0721, 1.0665400000000003 41.0649, 1.0711824172318287 41.064590028638861, 1.0665800000000003 41.0625, 1.0661400000000003 41.0701))
                            </area>
                          </areas>
                        </resort>
                      </resorts>
                    </response>
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: API_KEY
      description: |
        Use your API key to access this API. Include it in the `API-KEY` header of your requests.
  parameters:
    api-key-header:
      in: header
      name: API_KEY
      description: |
        The API Key provided to you to by Holiday Taxis, which authenticates you to the system and authorises you to view and manage your bookings. Documentation can be found <a href="/supplier-connect/overview.html#auth"> [ Here ]</a>
      required: true
      schema:
        type: string
    version-header-any:
      in: header
      name: VERSION
      description: The version of the API you wish to use; as new features are released, you will need to send new values to access them
      required: false
      schema:
        type: string
        enum: ['2026-A']
    version-header-min-2025-01:
      in: header
      name: VERSION
      description: |-
        The version of the API you wish to use; as new features are released, you will need to send new values to access them.
        This operation requires at least version '2025-01'.
      required: true
      schema:
        type: string
        enum: ['2025-01', '2026-A']
    content-type-header:
      in: header
      name: Content-Type
      description: Selects the format of the provided request (JSON or XML); must match the Accept header
      required: true
      schema:
        type: string
        enum:
          - 'application/xml'
          - 'application/json'
    accept-header:
      in: header
      name: Accept
      description: Selects the preferred format for responses (JSON or XML); for POST and PUT requests, you must also set the HTTP Content-Type header to the same value.
      required: true
      schema:
        type: string
        enum:
          - 'application/xml'
          - 'application/json'
    accept-header-get-delete:
      in: header
      name: Accept
      description: Selects the preferred format for responses (JSON or XML).
      required: true
      schema:
        type: string
        enum:
          - 'application/xml'
          - 'application/json'
    bookingRef:
      in: path
      name: bookingRef
      description: The Holiday Taxis Booking Reference.
      required: true
      schema:
        type: string
        pattern: "^[a-zA-Z0-9]{2,5}-[0-9]{6,}$"
        example: HTX-12345678
    bookingRef-syntheticTesting:
      in: path
      name: bookingRef
      description: |
        The Holiday Taxis Booking Reference.

        As part of your testing you can use the following reserved booking references to simulate error and success responses:

        TEST-111111 will return an OK response with status code 200

        TEST-222222 will return a NOT FOUND response with status code 404

        TEST-333333 will return a CANCELLED response with status code 400

        TEST-444444 will return a BOOKING_TRAVELLED_TOO_LONG_AGO response with status code 400

        TEST-555555 will return a BOOKING_TRAVELS_TOO_LONG_IN_THE_FUTURE response with status code 400

        TEST-666666 will return an INFORMATION_NOT_EXPECTED_FOR_THIS_BOOKING_TYPE response with status code 400

        TEST-888888 will return an ATTEMPT_TO_DE_ALLOCATE_A_VEHICLE_IDENTIFIER_THAT_DOES_NOT_EXIST response with status code 400

        TEST-999999 will return an BOOKING_DATA_PROVIDED_TOO_EARLY response with status code 202
      required: true
      schema:
        type: string
        pattern: "^[a-zA-Z0-9]{2,5}-[0-9]{6,}$"
        example: HTX-12345678
    vehicleIdentifier:
      in: path
      name: vehicleIdentifier
      description: |-
        A free-form value to distinguish multiple vehicles fulfilling the same booking.
        This should be set consistently for a particular vehicle / in all requests for a particular booking.
      required: true
      schema:
        type: string
        pattern: "^[A-Za-z0-9._~-]{1,40}$"
        example: bc9f89ab-285f-410e-913e-464d4adbaa53
    dateFrom:
      in: path
      name: dateFrom
      description: Start date of your search, in the local timezone of the transfer (may be omitted if not using "/since/" in URL)
      required: true
      schema:
        type: string
        example: 2025-05-14T09:30:00
        pattern: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}
    dateTo:
      in: path
      name: dateTo
      description: End date of your search, in the local timezone of the transfer (may be omitted if not using "/until/" in URL)
      required: true
      schema:
        type: string
        example: 2025-05-14T09:30:00
        pattern: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}
    pageNumber:
      in: path
      name: pageNumber
      description: Page number, default 1 (may be omitted if not using "/page/" in URL)
      required: true
      schema:
        type: integer
        minimum: 1
        default: 1
  responses:
    no-content-search-response:
      description: |-
        Response returned when no bookings are available
      content: {}
    success-acknowledgement:
      description: |-
        Acknowledgement of receipt of a valid request.
      content:
        application/json:
          schema:
            type: object
            required:
              - status
              - warnings
            properties:
              status:
                type: string
                const: "OK"
              warnings:
                $ref: '#/components/schemas/warnings'
          examples:
            'Successful Response':
              value:
                status: OK
                warnings: ["Example Warning"]
        application/xml:
          schema:
            type: object
            xml:
              name: response
            required:
              - status
            properties:
              status:
                type: string
                const: "OK"
              warnings:
                $ref: '#/components/schemas/warnings'
          examples:
            'Successful Response':
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <response>
                  <status>OK</status>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    successful-last-action-search-response:
      description: |-
        Response Returning bookings available for specified date and time
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/search-last-action-booking-response'
          examples:
            'Successful Response':
              x-version: '2026-A'
              value:
                bookings:
                  booking_0:
                    ref: "TEST-25733803"
                    status: "PCON"
                    bookingtype: "Arrival"
                    lastactiondate: "2026-01-15T08:22:29"
                    arrivaldate: "2026-11-13T11:00:00"
                    departuredate: ""
                    transferdate: ""
                    passengername: "Mr James Brown"
                    passengertitle: "Mr"
                    passengerfirstname: "James"
                    passengerlastname: "Brown"
                    passengertelno: "+447123456789"
                    vehicle: "Speedy Shuttle"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-25733803"
                    orderref: "ABC-123"
                  booking_1:
                    ref: "TEST-25732803"
                    status: "PAMM"
                    bookingtype: "Departure"
                    lastactiondate: "2026-01-17T08:29:23"
                    arrivaldate: ""
                    departuredate: "2026-12-20T14:45:00"
                    transferdate: ""
                    passengername: "Miss Rachel Green"
                    passengertitle: "Miss"
                    passengerfirstname: "Rachel"
                    passengerlastname: "Green"
                    passengertelno: "0011 987 6543"
                    vehicle: "Private Standard Car 1 - 3"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-25732803"
                    orderref: "QW-131-567"
                  booking_2:
                    ref: "TEST-25729627"
                    status: "ACON"
                    bookingtype: "Tailormade"
                    lastactiondate: "2026-01-17T23:53:34"
                    arrivaldate: ""
                    departuredate: ""
                    transferdate: "2026-10-20T18:40:00"
                    passengername: "Mr David Black"
                    passengertitle: "Mr"
                    passengerfirstname: "David"
                    passengerlastname: "Black"
                    passengertelno: "02031118877"
                    vehicle: "Private Transfer"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-25732803"
                    orderref: "5678AGF"
                  more: "https://suppliers.holidaytaxis.com/bookings/search/since/2026-01-01T00:00:00/until/2026-01-31T23:59:59/page/2"
                warnings: ["Example Warning"]
        application/xml:
          schema:
            $ref: '#/components/schemas/search-booking-response'
          examples:
            'Successful Response':
              x-version: '2026-A'
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <response>
                  <bookings>
                    <booking>
                      <ref>TEST-25733803</ref>
                      <status>ACON</status>
                      <bookingtype>Arrival</bookingtype>
                      <lastactiondate>2026-01-15T08:22:29</lastactiondate>
                      <arrivaldate>2026-11-13T11:00:00</arrivaldate>
                      <departuredate/>
                      <transferdate/>
                      <passengername>Mr James Brown</passengername>
                      <passengertitle>Mr</passengertitle>
                      <passengerfirstname>James</passengerfirstname>
                      <passengerlastname>Brown</passengerlastname>
                      <passengertelno>+447123456789</passengertelno>
                      <vehicle>Speedy Shuttle</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-25733803</link>
                      <orderref>ABC-123</orderref>
                    </booking>
                    <booking>
                      <ref>TEST-25732803</ref>
                      <status>PAMM</status>
                      <bookingtype>Departure</bookingtype>
                      <lastactiondate>2026-01-17T08:29:23</lastactiondate>
                      <arrivaldate/>
                      <departuredate>2026-12-20T14:45:00</departuredate>
                      <transferdate/>
                      <passengername>Miss Rachel Green</passengername>
                      <passengertitle>Miss</passengertitle>
                      <passengerfirstname>Rachel</passengerfirstname>
                      <passengerlastname>Green</passengerlastname>
                      <passengertelno>0011 987 6543</passengertelno>
                      <vehicle>Private Standard Car 1 - 3</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-25732803</link>
                      <orderref>QW-131-567</orderref>
                    </booking>
                    <booking>
                      <ref>TEST-25729627</ref>
                      <status>ACON</status>
                      <bookingtype>Tailormade</bookingtype>
                      <lastactiondate>2026-01-17T23:53:34</lastactiondate>
                      <arrivaldate/>
                      <departuredate/>
                      <transferdate>2026-10-20T18:40:00</transferdate>
                      <passengername>Mr David Black</passengername>
                      <passengertitle>Mr</passengertitle>
                      <passengerfirstname>David</passengerfirstname>
                      <passengerlastname>Black</passengerlastname>
                      <passengertelno>02031118877</passengertelno>
                      <vehicle>Private Transfer</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-25729627</link>
                      <orderref>5678AGF</orderref>
                    </booking>
                  </bookings>
                  <more>https://suppliers.holidaytaxis.com/bookings/search/since/2026-01-01T00:00:00/until/2026-01-31T23:59:59/page/2</more>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    successful-arrivals-search-response:
      description: |-
        Response Returning bookings available for specified date and time
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/search-booking-response'
          examples:
            'Successful Response':
              x-version: '2026-A'
              value:
                bookings:
                  booking_0:
                    ref: "TEST-25733803"
                    status: "PCON"
                    bookingtype: "Arrival"
                    lastactiondate: "2026-01-17T06:35:17"
                    arrivaldate: "2026-02-19T11:00:00"
                    departuredate: ""
                    passengername: "Mr James Brown"
                    passengertitle: "Mr"
                    passengerfirstname: "James"
                    passengerlastname: "Brown"
                    passengertelno: "+447123456789"
                    vehicle: "Speedy Shuttle"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-25733803"
                    orderref: "ABC-123"
                  booking_1:
                    ref: "TEST-22302575"
                    status: "PAMM"
                    bookingtype: "Arrival"
                    lastactiondate: "2025-06-21T08:29:23"
                    arrivaldate: "2026-02-19T14:45:00"
                    departuredate: ""
                    passengername: "Miss Rachel Green"
                    passengertitle: "Miss"
                    passengerfirstname: "Rachel"
                    passengerlastname: "Green"
                    passengertelno: "0011 987 6543"
                    vehicle: "Private Standard Car 1 - 3"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-22302575"
                    orderref: "QW-131-567"
                  booking_2:
                    ref: "TEST-20924846"
                    status: "ACAN"
                    bookingtype: "Arrival"
                    lastactiondate: "2025-11-17T23:53:34"
                    arrivaldate: "2026-02-20T18:40:00"
                    departuredate: ""
                    passengername: "Mr David Black"
                    passengertitle: "Mr"
                    passengerfirstname: "David"
                    passengerlastname: "Black"
                    passengertelno: "02031118877"
                    vehicle: "Private Premium Car 1 - 4"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-20924846"
                    orderref: "5678AGF"
                  more: "https://suppliers.holidaytaxis.com/bookings/search/arrivals/since/2026-02-01T00:00:00/until/2026-02-28T23:59:59/page/2"
                warnings: ["Example Warning"]
        application/xml:
          schema:
            $ref: '#/components/schemas/search-booking-response'
          examples:
            'Successful Response':
              x-version: '2026-A'
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <response>
                  <bookings>
                    <booking>
                      <ref>TEST-25733803</ref>
                      <status>PCON</status>
                      <bookingtype>Arrival</bookingtype>
                      <lastactiondate>2026-01-17T06:35:17</lastactiondate>
                      <arrivaldate>2026-02-19T11:00:00</arrivaldate>
                      <departuredate/>
                      <passengername>Mr James Brown</passengername>
                      <passengertitle>Mr</passengertitle>
                      <passengerfirstname>James</passengerfirstname>
                      <passengerlastname>Brown</passengerlastname>
                      <passengertelno>+447123456789</passengertelno>
                      <vehicle>Speedy Shuttle</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-25733803</link>
                      <orderref>ABC-123</orderref>
                    </booking>
                    <booking>
                      <ref>TEST-22302575</ref>
                      <status>PAMM</status>
                      <bookingtype>Arrival</bookingtype>
                      <lastactiondate>2025-06-21T08:29:23</lastactiondate>
                      <arrivaldate>2026-02-19T14:45:00</arrivaldate>
                      <departuredate/>
                      <passengername>Miss Rachel Green</passengername>
                      <passengertitle>Miss</passengertitle>
                      <passengerfirstname>Rachel</passengerfirstname>
                      <passengerlastname>Green</passengerlastname>
                      <passengertelno>0011 987 6543</passengertelno>
                      <vehicle>Private Standard Car 1 - 3</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-22302575</link>
                      <orderref>QW-131-567</orderref>
                    </booking>
                    <booking>
                      <ref>TEST-20924846</ref>
                      <status>ACAN</status>
                      <bookingtype>Arrival</bookingtype>
                      <lastactiondate>2025-11-17T23:53:34</lastactiondate>
                      <arrivaldate>2026-02-20T18:40:00</arrivaldate>
                      <departuredate/>
                      <passengername>Mr David Black</passengername>
                      <passengertitle>Mr</passengertitle>
                      <passengerfirstname>David</passengerfirstname>
                      <passengerlastname>Black</passengerlastname>
                      <passengertelno>02031118877</passengertelno>
                      <vehicle>Private Premium Car 1 - 4</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-20924846</link>
                      <orderref>5678AGF</orderref>
                    </booking>
                  </bookings>
                  <more>https://suppliers.holidaytaxis.com/bookings/search/arrivals/since/2026-02-01T00:00:00/until/2026-02-28T23:59:59/page/2</more>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    successful-departures-search-response:
      description: |-
        Response Returning bookings available for specified date and time
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/search-booking-response'
          examples:
            'Successful Response':
              x-version: '2026-A'
              value:
                bookings:
                  booking_0:
                    ref: "TEST-25733803"
                    status: "PCON"
                    bookingtype: "Departure"
                    lastactiondate: "2025-09-06T14:02:03"
                    arrivaldate: ""
                    departuredate: "2026-02-19T11:00:00"
                    passengername: "Mr James Brown"
                    passengertitle: "Mr"
                    passengerfirstname: "James"
                    passengerlastname: "Brown"
                    passengertelno: "+447123456789"
                    vehicle: "Speedy Shuttle"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-25733803"
                    orderref: "ABC-123"
                  booking_1:
                    ref: "TEST-22302575"
                    status: "PAMM"
                    bookingtype: "Departure"
                    lastactiondate: "2026-01-21T08:29:23"
                    arrivaldate: ""
                    departuredate: "2026-02-19T14:45:00"
                    passengername: "Miss Rachel Green"
                    passengertitle: "Miss"
                    passengerfirstname: "Rachel"
                    passengerlastname: "Green"
                    passengertelno: "0011 987 6543"
                    vehicle: "Private Standard Car 1 - 3"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-22302575"
                    orderref: "QW-131-567"
                  booking_2:
                    ref: "TEST-20924846"
                    status: "ACAN"
                    bookingtype: "Departure"
                    lastactiondate: "2025-11-17T23:53:34"
                    arrivaldate: ""
                    departuredate: "2026-02-20T18:40:00"
                    passengername: "Mr David Black"
                    passengertitle: "Mr"
                    passengerfirstname: "David"
                    passengerlastname: "Black"
                    passengertelno: "02031118877"
                    vehicle: "Private Premium Car 1 - 4"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-20924846"
                    orderref: "5678AGF"
                  more: "https://suppliers.holidaytaxis.com/bookings/search/departures/since/2026-02-01T00:00:00/until/2026-02-28T23:59:59/page/2"
                warnings: ["Example Warning"]
        application/xml:
          schema:
            $ref: '#/components/schemas/search-booking-response'
          examples:
            'Successful Response':
              x-version: '2026-A'
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <response>
                  <bookings>
                    <booking>
                      <ref>TEST-25733803</ref>
                      <status>PCON</status>
                      <bookingtype>Arrival</bookingtype>
                      <lastactiondate>2025-09-06T14:02:03</lastactiondate>
                      <arrivaldate/>
                      <departuredate>2026-02-19T11:00:00</departuredate>
                      <passengername>Mr James Brown</passengername>
                      <passengertitle>Mr</passengertitle>
                      <passengerfirstname>James</passengerfirstname>
                      <passengerlastname>Brown</passengerlastname>
                      <passengertelno>+447123456789</passengertelno>
                      <vehicle>Speedy Shuttle</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-25733803</link>
                      <orderref>ABC-123</orderref>
                    </booking>
                    <booking>
                      <ref>TEST-22302575</ref>
                      <status>PAMM</status>
                      <bookingtype>Arrival</bookingtype>
                      <lastactiondate>2026-01-21T08:29:23</lastactiondate>
                      <arrivaldate/>
                      <departuredate>2026-02-19T14:45:00</departuredate>
                      <passengername>Miss Rachel Green</passengername>
                      <passengertitle>Miss</passengertitle>
                      <passengerfirstname>Rachel</passengerfirstname>
                      <passengerlastname>Green</passengerlastname>
                      <passengertelno>0011 987 6543</passengertelno>
                      <vehicle>Private Standard Car 1 - 3</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-22302575</link>
                      <orderref>QW-131-567</orderref>
                    </booking>
                    <booking>
                      <ref>TEST-20924846</ref>
                      <status>ACAN</status>
                      <bookingtype>Arrival</bookingtype>
                      <lastactiondate>2025-11-17T23:53:34</lastactiondate>
                      <arrivaldate/>
                      <departuredate>2026-02-20T18:40:00</departuredate>
                      <passengername>Mrs Emily White</passengername>
                      <passengertitle>Mrs</passengertitle>
                      <passengerfirstname>Emily</passengerfirstname>
                      <passengerlastname>White</passengerlastname>
                      <passengertelno>+33 654345654</passengertelno>
                      <vehicle>Private Premium Car 1 - 4</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-20924846</link>
                      <orderref>5678AGF</orderref>
                    </booking>
                  </bookings>
                  <more>https://suppliers.holidaytaxis.com/bookings/search/departures/since/2026-02-01T00:00:00/until/2026-02-28T23:59:59/page/2</more>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    successful-tailormade-search-response:
      x-version: '2026-A'
      description: |-
        Response returning bookings available for specified date and time
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/search-tailormade-booking-response'
          examples:
            'Successful Response':
              value:
                bookings:
                  booking_0:
                    ref: "TEST-25387681"
                    status: "AAMM"
                    bookingtype: "Tailormade"
                    lastactiondate: "2025-12-15T08:22:10"
                    transferdate: "2026-01-04T15:15:00"
                    passengername: "Mrs Emily White"
                    passengertitle: "Mrs"
                    passengerfirstname: "Emily"
                    passengerlastname: "White"
                    passengertelno: "+31610392434"
                    vehicle: "Private Transfer"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-25387681"
                    orderref: "AH-256-37"
                  booking_1:
                    ref: "TEST-25918533"
                    status: "PCON"
                    bookingtype: "Tailormade"
                    lastactiondate: "2026-01-07T15:25:00"
                    transferdate: "2026-02-08T16:00:00"
                    passengername: "Mr James Brown"
                    passengertitle: "Mr"
                    passengerfirstname: "James"
                    passengerlastname: "Brown"
                    passengertelno: "+447123456789"
                    vehicle: "Private Standard Minibus"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-25918533"
                    orderref: ""
                  booking_2:
                    ref: "TEST-23662813"
                    status: "ACON"
                    bookingtype: "Tailormade"
                    lastactiondate: "2026-01-19T11:36:22"
                    transferdate: "2026-03-14T10:00:00"
                    passengername: "Miss Rachel Green"
                    passengertitle: "Miss"
                    passengerfirstname: "Rachel"
                    passengerlastname: "Green"
                    passengertelno: "0011 987 6543"
                    vehicle: "Combined Private Standard Car/Shared Water Transfer"
                    link: "https://suppliers.holidaytaxis.com/bookings/TEST-25918533"
                    orderref: "87654831"
                  more: "https://suppliers.holidaytaxis.com/bookings/search/tailormade/since/2026-01-01T00:00:00/until/2026-03-31T23:59:59/page/2"
                warnings: ["Example Warning"]
        application/xml:
          schema:
            $ref: '#/components/schemas/search-tailormade-booking-response'
          examples:
            'Successful Response':
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <response>
                  <bookings>
                    <booking>
                      <ref>TEST-25387681</ref>
                      <status>AAMM</status>
                      <bookingtype>Tailormade</bookingtype>
                      <lastactiondate>2025-12-15T08:22:10</lastactiondate>
                      <transferdate>2026-01-04T15:15:00</transferdate>
                      <passengername>Mrs Emily White</passengername>
                      <passengertitle>Mrs</passengertitle>
                      <passengerfirstname>Emily</passengerfirstname>
                      <passengerlastname>White</passengerlastname>
                      <passengertelno>+31610392434</passengertelno>
                      <vehicle>Private Transfer</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-25387681</link>
                      <orderref>AH-256-37</orderref>
                    </booking>
                    <booking>
                      <ref>TEST-25918533</ref>
                      <status>PCON</status>
                      <bookingtype>Tailormade</bookingtype>
                      <lastactiondate>2026-01-07T15:25:00</lastactiondate>
                      <transferdate>2026-02-08T16:00:00</transferdate>
                      <passengername>Mr James Brown</passengername>
                      <passengertitle>Mr</passengertitle>
                      <passengerfirstname>James</passengerfirstname>
                      <passengerlastname>Brown</passengerlastname>
                      <passengertelno>+447123456789</passengertelno>
                      <vehicle>Private Standard Minibus</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-25918533</link>
                      <orderref/>
                    </booking>
                    <booking>
                      <ref>TEST-23662813</ref>
                      <status>ACON</status>
                      <bookingtype>Tailormade</bookingtype>
                      <lastactiondate>2026-01-19T11:36:22</lastactiondate>
                      <transferdate>2026-03-14T10:00:00</transferdate>
                      <passengername>Miss Rachel Green</passengername>
                      <passengertitle>Miss</passengertitle>
                      <passengerfirstname>Rachel</passengerfirstname>
                      <passengerlastname>Green</passengerlastname>
                      <passengertelno>0011 987 6543</passengertelno>
                      <vehicle>Combined Private Standard Car/Shared Water Transfer</vehicle>
                      <link>https://suppliers.holidaytaxis.com/bookings/TEST-23662813</link>
                      <orderref>87654831</orderref>
                    </booking>
                  </bookings>
                  <more>https://suppliers.holidaytaxis.com/bookings/search/tailormade/since/2026-01-01T00:00:00/until/2026-03-31T23:59:59/page/2</more>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    successful-booking-update-multiple-response:
      description: |-
        Response for Update details and notes of multiple bookings
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/multiple-booking-update-response'
          examples:
            'Successful Response':
              x-version: '2026-A'
              value:
                bookings:
                  - booking:
                      general:
                        ref: "TEST-26767397"
                        bookingreference: "J4U78T"
                        orderref: "RHGF-32546"
                        status: "PCON"
                        bookingtype: "Arrival"
                        leadpassenger:
                          name: "Dr David Black"
                          title: "Dr"
                          firstname: "David"
                          lastname: "Black"
                          telephone: "02031118877"
                        vehicle:
                          name: "Private Standard Car 1 - 3"
                          unittype: "vehicle"
                          unitcount: 1
                        passengers:
                          adults: 2
                          children: 1
                          infants: 0
                        language: "en"
                        datebooked: "2026-01-01T15:46:40"
                        datelastmodified: "2026-02-07T21:18:33"
                        datecancelled: null
                      costs:
                        currencycode: "EUR"
                        decimalplaces: 2
                        transfer: 12780
                        optionalextras: 1000
                        credits: 0
                      arrival:
                        pickup:
                          arrivaldate: "2026-07-03T07:35:00"
                          gateway:
                            type: "Airport"
                            name: "Barcelona Airport"
                            code: "BCN"
                          flightnumber: "VYY7832"
                          accommodation: null
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightorigingateway:
                            type: "Airport"
                            name: "London Gatwick Airport"
                            code: "LGW"
                        dropoff:
                          gateway:
                            type: "Resort"
                            name: "Barcelona city centre"
                            code: "352"
                          flightnumber: null
                          accommodation:
                            name: "Le Meridien Barcelona"
                            address1: "La Rambla 111"
                            address2: "Carrer del Pinto Fortuny"
                            address3: "Barcelona"
                            telephone: "34 933 187301"
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightdestinationgateway: null
                        optionalextras:
                          - extra: "Child Seat (9 - 18kg, 20 - 40lb, 9mths - 4yr)"
                            quantity: 1
                      notes: "https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26767397"
                      hasopenquery: ""
                  - booking:
                      general:
                        ref: "TEST-26569027"
                        bookingreference: "GT56KD"
                        orderref: null
                        status: "PCON"
                        bookingtype: "Departure"
                        leadpassenger:
                          name: "Miss Rachel Green"
                          title: "Miss"
                          firstname: "Rachel"
                          lastname: "Green"
                          telephone: "0011 987 6543"
                        vehicle:
                          name: "Shared Standard Shuttle"
                          unittype: "passenger"
                          unitcount: 3
                        passengers:
                          adults: 2
                          children: 1
                          infants: 0
                        language: "en"
                        datebooked: "2026-01-07T21:18:33"
                        datelastmodified: "2026-03-17T12:35:28"
                        datecancelled: null
                      costs:
                        currencycode: "EUR"
                        decimalplaces: 2
                        transfer: 6390
                        optionalextras: 0
                        credits: 500
                      departure:
                        pickup:
                          pickupdate: "2026-08-06T23:40:00"
                          gateway:
                            type: "Resort"
                            name: "Copenhagen City Centre"
                            code: "4375"
                          flightnumber: null
                          accommodation:
                            name: "Hotel Copenhagen"
                            address1: "Egilsgade 33"
                            address2: "2300 Kobenhavn"
                            address3: null
                            telephone: "+45 32 96 22 22"
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightorigingateway: null
                        dropoff:
                          departuredate: "2026-08-07T02:35:00"
                          gateway:
                            type: "Airport"
                            name: "Copenhagen Airport"
                            code: "CPH"
                          flightnumber: "NSZ3513"
                          accommodation: null
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightdestinationgateway:
                            type: "Airport"
                            name: "London Gatwick Airport"
                            code: "LGW"
                        optionalextras: null
                      notes: "https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26569027"
                      hasopenquery: "Y"
                  - booking:
                      general:
                        ref: "TEST-23558153"
                        bookingreference: "E3JQFE"
                        orderref: "TF6837248"
                        status: "PCON"
                        bookingtype: "Return transfer"
                        leadpassenger:
                          name: "Mrs Emily White"
                          title: "Mrs"
                          firstname: "Emily"
                          lastname: "White"
                          telephone: "+33 654345654"
                        vehicle:
                          name: "Shared Standard Shuttle"
                          unittype: "passenger"
                          unitcount: 4
                        passengers:
                          adults: 2
                          children: 2
                          infants: 0
                        language: "en"
                        datebooked: "2026-02-05T01:18:17"
                        datelastmodified: "2026-02-05T01:18:17"
                        datecancelled: null
                      costs:
                        currencycode: "EUR"
                        decimalplaces: 2
                        transfer: 6780
                        optionalextras: 0
                        credits: -1000
                      arrival:
                        pickup:
                          arrivaldate: "2026-06-20T11:15:00"
                          gateway:
                            type: "Airport"
                            name: "Melbourne Tullamarine Airport"
                            code: "MEL"
                          flightnumber: "QFA30"
                          accommodation: null
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightorigingateway:
                            type: "Airport"
                            name: "London Heathrow Airport"
                            code: "LHR"
                        dropoff:
                          gateway:
                            type: "Resort"
                            name: "Melbourne city centre"
                            code: "6065"
                          flightnumber: null
                          accommodation:
                            name: "Atlantis Hotel"
                            address1: "300 Spencer Street"
                            address2: "Melbourne"
                            address3: "VIC 3000"
                            telephone: "613 9600 0019"
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightdestinationgateway: null
                        optionalextras: null
                      departure:
                        pickup:
                          pickupdate: "2026-08-06T23:40:00"
                          gateway:
                            type: "Resort"
                            name: "Melbourne city centre"
                            code: "344"
                          flightnumber: null
                          accommodation:
                            name: "Atlantis Hotel"
                            address1: "300 Spencer Street"
                            address2: "Melbourne"
                            address3: "VIC 3000"
                            telephone: "613 9600 0019"
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightorigingateway: null
                        dropoff:
                          departuredate: "2026-08-07T02:35:00"
                          gateway:
                            type: "Airport"
                            name: "Melbourne Tullamarine Airport"
                            code: "MEL"
                          flightnumber: "CPA254"
                          accommodation: null
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightdestinationgateway:
                            type: "Airport"
                            name: "London Heathrow Airport"
                            code: "LHR"
                        optionalextras: null
                      notes: "https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-23558153"
                      hasopenquery: ""
                  - booking:
                      general:
                        ref: "TEST-26738511"
                        bookingreference: "TM-191413"
                        orderref: null
                        status: "PCON"
                        bookingtype: "Tailormade"
                        leadpassenger:
                          name: "Mr James Brown"
                          title: "Mr"
                          firstname: "James"
                          lastname: "Brown"
                          telephone: "+447123456789"
                        vehicle:
                          name: "Private Transfer"
                          unittype: "vehicle"
                          unitcount: 1
                        passengers:
                          adults: 2
                          children: 1
                          infants: 1
                        language: "en"
                        datebooked: "2026-01-07T21:18:33"
                        datelastmodified: null
                        datecancelled: null
                      costs:
                        currencycode: "EUR"
                        decimalplaces: 2
                        transfer: 15000
                        optionalextras: 0
                        credits: 0
                      tailormade:
                        countrycode: "US"
                        additionalinfo: "Additional notes for tailormade transfer"
                        pickup:
                          transferdate: "2026-08-21T15:00:00"
                          gateway: null
                          address:
                            line1: "82 Cloudcrest"
                            line2: ""
                            city: "Aliso Viejo"
                            postcode: "CA 92656"
                        dropoff:
                          gateway: null
                          address:
                            line1: "One Ritz Carlton Dr"
                            line2: ""
                            city: "Dana Point"
                            postcode: "CA 92629"
                      notes: "https://suppliers-internal.mitchw.ireland.dev.htxg.it/bookings/notes/TEST-26738511"
                      hasopenquery: ""
                warnings: ["Example Warning"]
        application/xml:
          schema:
            $ref: '#/components/schemas/multiple-booking-update-response'
          examples:
            'Successful Response':
              x-version: '2026-A'
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <bookings>
                    <booking>
                        <general>
                            <ref>TEST-26767397</ref>
                            <bookingreference>J4U78T</bookingreference>
                            <orderref>RHGF-32546</orderref>
                            <status>PCON</status>
                            <bookingtype>Arrival</bookingtype>
                            <leadpassenger>
                                <name>Dr David Black</name>
                                <title>Dr</title>
                                <firstname>David</firstname>
                                <lastname>Black</lastname>
                                <telephone>02031118877</telephone>
                            </leadpassenger>
                            <vehicle>
                                <name>Private Standard Car 1 - 3</name>
                                <unittype>vehicle</unittype>
                                <unitcount>1</unitcount>
                            </vehicle>
                            <passengers>
                                <adults>2</adults>
                                <children>1</children>
                                <infants>0</infants>
                            </passengers>
                            <language>en</language>
                            <datebooked>2026-01-01T15:46:40</datebooked>
                            <datelastmodified>2026-02-07T21:18:33</datelastmodified>
                            <datecancelled/>
                        </general>
                        <costs>
                            <currencycode>EUR</currencycode>
                            <decimalplaces>2</decimalplaces>
                            <transfer>12780</transfer>
                            <optionalextras>1000</optionalextras>
                            <credits>0</credits>
                        </costs>
                        <arrival>
                            <pickup>
                                <arrivaldate>2026-07-03T07:35:00</arrivaldate>
                                <gateway>
                                    <type>Airport</type>
                                    <name>Barcelona Airport</name>
                                    <code>BCN</code>
                                </gateway>
                                <flightnumber>VYY7832</flightnumber>
                                <accommodation/>
                                <shipname/>
                                <cruiseline/>
                                <trainnumber/>
                                <busnumber/>
                                <flightorigingateway>
                                    <type>Airport</type>
                                    <name>London Gatwick Airport</name>
                                    <code>LGW</code>
                                </flightorigingateway>
                            </pickup>
                            <dropoff>
                                <gateway>
                                    <type>Resort</type>
                                    <name>Barcelona city centre</name>
                                    <code>352</code>
                                </gateway>
                                <flightnumber/>
                                <accommodation>
                                    <name>Le Meridien Barcelona</name>
                                    <address1>La Rambla 111</address1>
                                    <address2>Carrer del Pinto Fortuny</address2>
                                    <address3>Barcelona</address3>
                                    <telephone>34 933 187301</telephone>
                                </accommodation>
                                <shipname/>
                                <cruiseline/>
                                <trainnumber/>
                                <busnumber/>
                                <flightdestinationgateway/>
                            </dropoff>
                            <optionalextras>
                                <optionalextra>
                                    <extra>Child Seat (9 - 18kg, 20 - 40lb, 9mths - 4yr)</extra>
                                    <quantity>1</quantity>
                                </optionalextra>
                            </optionalextras>
                        </arrival>
                        <notes>https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26767397</notes>
                        <hasopenquery/>
                    </booking>
                    <booking>
                        <general>
                            <ref>TEST-26569027</ref>
                            <bookingreference>GT56KD</bookingreference>
                            <orderref/>
                            <status>PCON</status>
                            <bookingtype>Departure</bookingtype>
                            <leadpassenger>
                                <name>Miss Rachel Green</name>
                                <title>Miss</title>
                                <firstname>Rachel</firstname>
                                <lastname>Green</lastname>
                                <telephone>0011 987 6543</telephone>
                            </leadpassenger>
                            <vehicle>
                                <name>Shared Standard Shuttle</name>
                                <unittype>passenger</unittype>
                                <unitcount>3</unitcount>
                            </vehicle>
                            <passengers>
                                <adults>2</adults>
                                <children>1</children>
                                <infants>0</infants>
                            </passengers>
                            <language>en</language>
                            <datebooked>2026-01-07T21:18:33</datebooked>
                            <datelastmodified>2026-03-17T12:35:28</datelastmodified>
                            <datecancelled/>
                        </general>
                        <costs>
                            <currencycode>EUR</currencycode>
                            <decimalplaces>2</decimalplaces>
                            <transfer>6390</transfer>
                            <optionalextras>0</optionalextras>
                            <credits>500</credits>
                        </costs>
                        <departure>
                            <pickup>
                                <pickupdate>2026-08-06T23:40:00</pickupdate>
                                <gateway>
                                    <type>Resort</type>
                                    <name>Copenhagen City Centre</name>
                                    <code>4375</code>
                                </gateway>
                                <flightnumber/>
                                <accommodation>
                                    <name>Hotel Copenhagen</name>
                                    <address1>Egilsgade 33</address1>
                                    <address2>2300 Kobenhavn</address2>
                                    <address3/>
                                    <telephone>+45 32 96 22 22</telephone>
                                </accommodation>
                                <shipname/>
                                <cruiseline/>
                                <trainnumber/>
                                <busnumber/>
                                <flightorigingateway/>
                            </pickup>
                            <dropoff>
                                <departuredate>2026-08-07T02:35:00</departuredate>
                                <gateway>
                                    <type>Airport</type>
                                    <name>Copenhagen Airport</name>
                                    <code>CPH</code>
                                </gateway>
                                <flightnumber>NSZ3513</flightnumber>
                                <accommodation/>
                                <shipname/>
                                <cruiseline/>
                                <trainnumber/>
                                <busnumber/>
                                <flightdestinationgateway>
                                    <type>Airport</type>
                                    <name>London Gatwick Airport</name>
                                    <code>LGW</code>
                                </flightdestinationgateway>
                            </dropoff>
                            <optionalextras/>
                        </departure>
                        <notes>https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26569027</notes>
                        <hasopenquery>Y</hasopenquery>
                    </booking>
                    <booking>
                        <general>
                            <ref>TEST-23558153</ref>
                            <bookingreference>E3JQFE</bookingreference>
                            <orderref>TF6837248</orderref>
                            <status>PCON</status>
                            <bookingtype>Return transfer</bookingtype>
                            <leadpassenger>
                                <name>Mrs Emily White</name>
                                <title>Mrs</title>
                                <firstname>Emily</firstname>
                                <lastname>White</lastname>
                                <telephone>+33 654345654</telephone>
                            </leadpassenger>
                            <vehicle>
                                <name>Shared Standard Shuttle</name>
                                <unittype>passenger</unittype>
                                <unitcount>4</unitcount>
                            </vehicle>
                            <passengers>
                                <adults>2</adults>
                                <children>2</children>
                                <infants>0</infants>
                            </passengers>
                            <language>en</language>
                            <datebooked>2026-02-05T01:18:17</datebooked>
                            <datelastmodified>2026-02-05T01:18:17</datelastmodified>
                            <datecancelled/>
                        </general>
                        <costs>
                            <currencycode>EUR</currencycode>
                            <decimalplaces>2</decimalplaces>
                            <transfer>6780</transfer>
                            <optionalextras>0</optionalextras>
                            <credits>-1000</credits>
                        </costs>
                        <arrival>
                            <pickup>
                                <arrivaldate>2026-06-20T11:15:00</arrivaldate>
                                <gateway>
                                    <type>Airport</type>
                                    <name>Melbourne Tullamarine Airport</name>
                                    <code>MEL</code>
                                </gateway>
                                <flightnumber>QFA30</flightnumber>
                                <accommodation/>
                                <shipname/>
                                <cruiseline/>
                                <trainnumber/>
                                <busnumber/>
                                <flightorigingateway>
                                    <type>Airport</type>
                                    <name>London Heathrow Airport</name>
                                    <code>LHR</code>
                                </flightorigingateway>
                            </pickup>
                            <dropoff>
                                <gateway>
                                    <type>Resort</type>
                                    <name>Melbourne city centre</name>
                                    <code>6065</code>
                                </gateway>
                                <flightnumber/>
                                <accommodation>
                                    <name>Atlantis Hotel</name>
                                    <address1>300 Spencer Street</address1>
                                    <address2>Melbourne</address2>
                                    <address3>VIC 3000</address3>
                                    <telephone>613 9600 0019</telephone>
                                </accommodation>
                                <shipname/>
                                <cruiseline/>
                                <trainnumber/>
                                <busnumber/>
                                <flightdestinationgateway/>
                            </dropoff>
                            <optionalextras/>
                        </arrival>
                        <departure>
                            <pickup>
                                <pickupdate>2026-08-06T23:40:00</pickupdate>
                                <gateway>
                                    <type>Resort</type>
                                    <name>Melbourne city centre</name>
                                    <code>344</code>
                                </gateway>
                                <flightnumber/>
                                <accommodation>
                                    <name>Atlantis Hotel</name>
                                    <address1>300 Spencer Street</address1>
                                    <address2>Melbourne</address2>
                                    <address3>VIC 3000></address3>
                                    <telephone>613 9600 0019</telephone>
                                </accommodation>
                                <shipname/>
                                <cruiseline/>
                                <trainnumber/>
                                <busnumber/>
                                <flightorigingateway/>
                            </pickup>
                            <dropoff>
                                <departuredate>2026-08-07T02:35:00</departuredate>
                                <gateway>
                                    <type>Airport</type>
                                    <name>Melbourne Tullamarine Airport</name>
                                    <code>MEL</code>
                                </gateway>
                                <flightnumber>CPA254</flightnumber>
                                <accommodation/>
                                <shipname/>
                                <cruiseline/>
                                <trainnumber/>
                                <busnumber/>
                                <flightdestinationgateway>
                                    <type>Airport</type>
                                    <name>London Heathrow Airport</name>
                                    <code>LHR</code>
                                </flightdestinationgateway>
                            </dropoff>
                            <optionalextras/>
                        </departure>
                        <notes>https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-23558153</notes>
                        <hasopenquery/>>
                    </booking>
                    <booking>
                        <general>
                            <ref>HTXA-26729681</ref>
                            <bookingreference>TM-186718</bookingreference>
                            <orderref/>
                            <status>ACON</status>
                            <bookingtype>Tailormade</bookingtype>
                            <leadpassenger>
                                <name>Mr Chris Smith26729681</name>
                                <title>Mr</title>
                                <firstname>Chris</firstname>
                                <lastname>Smith26729681</lastname>
                                <telephone>07123 26729681</telephone>
                            </leadpassenger>
                            <vehicle>
                                <name>Private Standard Coach</name>
                                <unittype>vehicle</unittype>
                                <unitcount>1</unitcount>
                            </vehicle>
                            <passengers>
                                <adults>33</adults>
                                <children>0</children>
                                <infants>0</infants>
                            </passengers>
                            <language>en</language>
                            <datebooked>2025-09-03T12:39:03</datebooked>
                            <datelastmodified/>
                            <datecancelled/>
                        </general>
                        <costs>
                            <currencycode>EUR</currencycode>
                            <decimalplaces>2</decimalplaces>
                            <transfer>55000</transfer>
                            <optionalextras>0</optionalextras>
                            <credits>0</credits>
                        </costs>
                        <tailormade>
                            <countrycode>GR</countrycode>
                            <additionalinfo>t&#xE9;r&#xE9;</additionalinfo>
                            <pickup>
                                <transferdate>2025-10-30T10:00:00</transferdate>
                                <gateway/>
                                <address>
                                    <line1>Acropolis Athens</line1>
                                    <line2/>
                                    <city>Athens</city>
                                    <postcode/>
                                </address>
                            </pickup>
                            <dropoff>
                                <gateway/>
                                <address>
                                    <line1>Athens International Airport</line1>
                                    <line2/>
                                    <city>Athens</city>
                                    <postcode/>
                                </address>
                            </dropoff>
                        </tailormade>
                        <notes>https://suppliers-internal.mitchw.ireland.dev.htxg.it/bookings/notes/HTXA-26729681</notes>
                        <hasopenquery/>
                    </booking>
                  </bookings>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
    successful-booking-reconfirm-response:
      description: |-
        Response for Reconfirm multiple bookings
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/reconfirm-multiple-booking-response'
          examples:
            'Successful Response':
              value:
                bookings:
                  - ref: "TEST-26783196"
                    message: "Update Successful"
                  - ref: "TEST-25275265"
                    message: "Update Successful"
                warnings: ["Example Warning"]
        application/xml:
          schema:
            $ref: '#/components/schemas/reconfirm-multiple-booking-response'
          examples:
            'Successful Response':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <bookings>
                    <booking>
                      <ref>TEST-26783196</ref>
                      <message>Update Successful</message>
                    </booking>
                    <booking>
                      <ref>TEST-25275265</ref>
                      <message>Update Successful</message>
                    </booking>
                  </bookings>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    successful-get-booking-response:
      description: |-
        Response Returning for a single booking
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/booking-details-response'
          examples:
            'Arrival - Airport to Resort':
              $ref: '#/components/examples/booking-single-outbound'
              x-version: '2026-A'
            'Departure - Resort to Airport':
              $ref: '#/components/examples/booking-single-inbound'
              x-version: '2026-A'
            'Return transfer - Airport Resort':
              $ref: '#/components/examples/booking-single-return'
              x-version: '2026-A'
            'Tailormade booking':
              $ref: '#/components/examples/booking-single-tailormade'
              x-version: '2026-A'
        application/xml:
          schema:
            $ref: '#/components/schemas/booking-details-response'
          examples:
            'Arrival - Airport to Resort':
              $ref: '#/components/examples/booking-single-outbound-xml'
              x-version: '2026-A'
            'Departure - Resort to Airport':
              $ref: '#/components/examples/booking-single-inbound-xml'
              x-version: '2026-A'
            'Return transfer - Airport Resort':
              x-version: '2026-A'
              $ref: '#/components/examples/booking-single-return-xml'
            'Tailormade booking':
              $ref: '#/components/examples/booking-single-tailormade-xml'
              x-version: '2026-A'
    successful-update-booking-response:
      description: |-
        Response Returning for a single booking
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/booking-details-response'
          examples:
            'Arrival - Airport to Resort':
              $ref: '#/components/examples/booking-single-outbound'
              x-version: '2026-A'
            'Departure - Resort to Airport':
              $ref: '#/components/examples/booking-single-inbound'
              x-version: '2026-A'
            'Return transfer - Airport Resort':
              $ref: '#/components/examples/booking-single-return'
              x-version: '2026-A'
            'Tailormade booking':
              $ref: '#/components/examples/booking-single-tailormade'
              x-version: '2026-A'
        application/xml:
          schema:
            $ref: '#/components/schemas/booking-details-xml-response'
          examples:
            'Arrival - Airport to Resort':
              $ref: '#/components/examples/booking-single-outbound-xml'
              x-version: '2026-A'
            'Departure - Resort to Airport':
              $ref: '#/components/examples/booking-single-inbound-xml'
              x-version: '2026-A'
            'Return transfer - Airport Resort':
              x-version: '2026-A'
              $ref: '#/components/examples/booking-single-return-xml'
            'Tailormade booking':
              $ref: '#/components/examples/booking-single-tailormade-xml'
              x-version: '2026-A'
              value: |-
                <?xml version="1.0"?>
                <response>
                    <booking>
                        <general>
                            <ref>HTXA-26729681</ref>
                            <bookingreference>TM-186718</bookingreference>
                            <orderref/>
                            <status>ACON</status>
                            <bookingtype>Tailormade</bookingtype>
                            <leadpassenger>
                                <name>Mr Chris Smith26729681</name>
                                <title>Mr</title>
                                <firstname>Chris</firstname>
                                <lastname>Smith26729681</lastname>
                                <telephone>07123 26729681</telephone>
                            </leadpassenger>
                            <vehicle>
                                <name>Private Standard Coach</name>
                                <unittype>vehicle</unittype>
                                <unitcount>1</unitcount>
                            </vehicle>
                            <passengers>
                                <adults>33</adults>
                                <children>0</children>
                                <infants>0</infants>
                            </passengers>
                            <language>en</language>
                            <datebooked>2025-09-03T12:39:03</datebooked>
                            <datelastmodified/>
                            <datecancelled/>
                        </general>
                        <costs>
                            <currencycode>EUR</currencycode>
                            <decimalplaces>2</decimalplaces>
                            <transfer>55000</transfer>
                            <optionalextras>0</optionalextras>
                            <credits>0</credits>
                        </costs>
                        <tailormade>
                            <countrycode>GR</countrycode>
                            <additionalinfo>t&#xE9;r&#xE9;</additionalinfo>
                            <pickup>
                                <transferdate>2025-10-30T10:00:00</transferdate>
                                <gateway/>
                                <address>
                                    <line1>Acropolis Athens</line1>
                                    <line2/>
                                    <city>Athens</city>
                                    <postcode/>
                                </address>
                            </pickup>
                            <dropoff>
                                <gateway/>
                                <address>
                                    <line1>Athens International Airport</line1>
                                    <line2/>
                                    <city>Athens</city>
                                    <postcode/>
                                </address>
                            </dropoff>
                        </tailormade>
                        <notes>https://suppliers-internal.mitchw.ireland.dev.htxg.it/bookings/notes/HTXA-26729681</notes>
                        <hasopenquery/>
                    </booking>
                    <warnings/>
                </response>
    successful-booking-note-response:
      description: |-
        Response Returning note for a single booking
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/note-details-response'
          examples:
            'Multiple notes':
              x-version: '2026-A'
              value:
                notes:
                  note_0:
                    notedate: "2026-05-21T11:46:56"
                    user: "John Brown"
                    note: "Rate discrepancy query resolved."
                  note_1:
                    notedate: "2026-04-21T11:46:23"
                    user: "Supplier: Supplier Connect API"
                    note: "Rate Discrepancy Query: rate discrepancy test"
                  note_2:
                    notedate: "2026-04-21T11:46:15"
                    user: "Supplier: Supplier Connect API"
                    note: "Wrong Resort Note: wrong resort test"
                  note_3:
                    notedate: "2026-04-21T11:46:07"
                    user: "Supplier: Supplier Connect API"
                    note: "Flight Number Query email sent."
                  note_4:
                    notedate: "2026-04-09T11:45:48"
                    user: "Supplier: Supplier Connect API"
                    note: "Confirmed Booking"
                booking: "https://suppliers.holidaytaxis.com/bookings/TEST-26937526"
                warnings: ["Example Warning"]
        application/xml:
          schema:
            $ref: '#/components/schemas/note-details-response'
          examples:
            'Multiple notes':
              x-version: '2026-A'
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <response>
                  <notes>
                    <note>
                      <notedate>2026-05-21T11:46:56</notedate>
                      <user>John Brown</user>
                      <note>Rate discrepancy query resolved.</note>
                    </note>
                    <note>
                      <notedate>2026-04-21T11:46:23</notedate>
                      <user>Supplier: Supplier Connect API</user>
                      <note>Rate Discrepancy Query: rate discrepancy test</note>
                    </note>
                    <note>
                      <notedate>2026-04-21T11:46:15</notedate>
                      <user>Supplier: Supplier Connect API</user>
                      <note>Wrong Resort Note: wrong resort test</note>
                    </note>
                    <note>
                      <notedate>2026-04-21T11:46:07</notedate>
                      <user>Supplier: Supplier Connect API</user>
                      <note>Flight Number Query email sent.</note>
                    </note>
                    <note>
                      <notedate>2026-04-09T11:45:48</notedate>
                      <user>Supplier: Supplier Connect API</user>
                      <note>Confirmed Booking</note>
                    </note>
                  </notes>
                  <booking>https://suppliers.holidaytaxis.com/bookings/TEST-26937526</booking>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    success-non-committal:
      description: "The request has been accepted for processing, but the processing has not been completed. \nThe request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place."
      content:
        application/json:
          schema:
            type: object
            required:
              - status
              - warnings
            properties:
              status:
                type: string
                const: "OK"
              warnings:
                $ref: '#/components/schemas/warnings'
          examples:
            'Successful Response':
              value:
                status: OK
                warnings: ["Example Warning"]
        application/xml:
          schema:
            type: object
            xml:
              name: response
            required:
              - status
            properties:
              status:
                type: string
                const: "OK"
              warnings:
                $ref: '#/components/schemas/warnings'
          examples:
            'Successful Response':
              value: |-
                <?xml version="1.0" encoding="UTF-8"?>
                <response>
                  <status>OK</status>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    error-response:
      description: Standard format for all errors and unsuccessful responses.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Unsupported Accept header':
              value:
                errors:
                  unsupported: "You have sent an unsupported HTTP-ACCEPT header (application/json, text/plain, */*), please request either 'application/xml' or 'application/json'."
                warnings: []
        application/xml:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Unsupported Accept header':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <errors>
                    <unsupported>You have sent an unsupported HTTP-ACCEPT header (application/xmlvbcb), please request either 'application/xml' or 'application/json'.</unsupported>
                  </errors>
                  <warnings/>
                </response>
    update-error-response:
      description: Standard format for all errors and unsuccessful responses.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Invalid status':
              value:
                errors:
                  invalidstatus: "Invalid booking status."
                warnings: []
            'Invalid pickup date':
              value:
                errors:
                  dateformat: "All dates must be in the format 'YYYY-MM-DDTHH:MM:SS', 'pickupdate' is in the incorrect format."
                warnings: []
        application/xml:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Invalid status':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <errors>
                    <invalidstatus>Invalid booking status.</invalidstatus>
                  </errors>
                  <warnings/>
                </response>
            'Invalid pickup date':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <errors>
                    <dateformat>All dates must be in the format 'YYYY-MM-DDTHH:MM:SS', 'pickupdate' is in the incorrect format.</dateformat>
                  </errors>
                  <warnings/>
                </response>
    unauthorized-response:
      description: Standard format for all errors and unsuccessful responses.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Incorrect authentication header':
              value:
                errors:
                  unauthorised: "You have provided either an invalid API Key or you are out of IP range, please send valid credentials."
                warnings: []
        application/xml:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Incorrect authentication header':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <errors>
                    <unauthorised>You have provided either an invalid API Key or you are out of IP range, please send valid credentials.</unauthorised>
                  </errors>
                  <warnings/>
                </response>
    multi-booking-error-response:
      description: Standard format for all errors and unsuccessful responses.
      content:
        application/json:
          schema:
            description: One or more error messages. Refer to ‘Partial Success’ section for further information.
            type: object
            required:
              - errors
            properties:
              bookings:
                $ref: '#/components/schemas/multiple-booking-bookings-response'
              errors:
                type: object
                description: Object containing one or more error messages, each with a distinct key indicating its category, or the field to which it applies. Note, if any booking from your request is not included in the errors, then it has been updated successfully (partial success).
                minProperties: 1
                additionalProperties:
                  type: string
                  description: Details of an error. The key is a code indicating its category, or the field to which it applies; the value is a human-readable error message.
              warnings:
                $ref: '#/components/schemas/warnings'
          examples:
            'Invalid booking reference':
              x-version: '2026-A'
              value:
                bookings:
                  - booking:
                      general:
                        ref: "TEST-26767397"
                        bookingreference: "J4U78T"
                        orderref: "RHGF-32546"
                        status: "PCON"
                        bookingtype: "Arrival"
                        leadpassenger:
                          name: "Dr David Black"
                          title: "Dr"
                          firstname: "David"
                          lastname: "Black"
                          telephone: "02031118877"
                        vehicle:
                          name: "Private Standard Car 1 - 3"
                          unittype: "vehicle"
                          unitcount: 1
                        passengers:
                          adults: 2
                          children: 1
                          infants: 0
                        language: "en"
                        datebooked: "2026-01-01T15:46:40"
                        datelastmodified: "2026-02-07T21:18:33"
                        datecancelled: null
                      costs:
                        currencycode: "EUR"
                        decimalplaces: 2
                        transfer: 12780
                        optionalextras: 1000
                        credits: 0
                      arrival:
                        pickup:
                          arrivaldate: "2026-07-03T07:35:00"
                          gateway:
                            type: "Airport"
                            name: "Barcelona Airport"
                            code: "BCN"
                          flightnumber: "VYY7832"
                          accommodation: null
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightorigingateway:
                            type: "Airport"
                            name: "London Gatwick Airport"
                            code: "LGW"
                        dropoff:
                          gateway:
                            type: "Resort"
                            name: "Barcelona city centre"
                            code: "352"
                          flightnumber: null
                          accommodation:
                            name: "Le Meridien Barcelona"
                            address1: "La Rambla 111"
                            address2: "Carrer del Pinto Fortuny"
                            address3: "Barcelona"
                            telephone: "34 933 187301"
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightdestinationgateway: null
                        optionalextras:
                          - extra: "Child Seat (9 - 18kg, 20 - 40lb, 9mths - 4yr)"
                            quantity: 1
                      notes: "https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26767397"
                      hasopenquery: ""
                errors:
                  notfound: "Invalid Booking Reference supplied, booking doesn't exist: TEST-26754972"
                warnings: []
            'Invalid pickup date':
              x-version: '2026-A'
              value:
                bookings:
                  - booking:
                      general:
                        ref: "TEST-26569027"
                        bookingreference: "GT56KD"
                        orderref: null
                        status: "PCON"
                        bookingtype: "Departure"
                        leadpassenger:
                          name: "Miss Rachel Green"
                          title: "Miss"
                          firstname: "Rachel"
                          lastname: "Green"
                          telephone: "0011 987 6543"
                        vehicle:
                          name: "Shared Standard Shuttle"
                          unittype: "passenger"
                          unitcount: 3
                        passengers:
                          adults: 2
                          children: 1
                          infants: 0
                        language: "en"
                        datebooked: "2026-01-07T21:18:33"
                        datelastmodified: "2026-03-17T12:35:28"
                        datecancelled: null
                      costs:
                        currencycode: "EUR"
                        decimalplaces: 2
                        transfer: 6390
                        optionalextras: 0
                        credits: 500
                      departure:
                        pickup:
                          pickupdate: "2026-08-06T23:40:00"
                          gateway:
                            type: "Resort"
                            name: "Copenhagen City Centre"
                            code: "4375"
                          flightnumber: null
                          accommodation:
                            name: "Hotel Copenhagen"
                            address1: "Egilsgade 33"
                            address2: "2300 Kobenhavn"
                            address3: null
                            telephone: "+45 32 96 22 22"
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightorigingateway: null
                        dropoff:
                          departuredate: "2026-08-07T02:35:00"
                          gateway:
                            type: "Airport"
                            name: "Copenhagen Airport"
                            code: "CPH"
                          flightnumber: "NSZ3513"
                          accommodation: null
                          shipname: null
                          cruiseline: null
                          trainnumber: null
                          busnumber: null
                          flightdestinationgateway:
                            type: "Airport"
                            name: "London Gatwick Airport"
                            code: "LGW"
                        optionalextras: null
                      notes: "https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26569027"
                      hasopenquery: "Y"
                errors:
                  dateformat: "All dates must be in the format 'YYYY-MM-DDTHH:MM:SS', 'pickupdate' is in the incorrect format: TEST-26769017"
                warnings: []
            'Multiple errors':
              x-version: '2026-A'
              value:
                bookings:
                  - booking:
                      general:
                        ref: "TEST-26738511"
                        bookingreference: "TM-191413"
                        orderref: null
                        status: "PCON"
                        bookingtype: "Tailormade"
                        leadpassenger:
                          name: "Mr James Brown"
                          title: "Mr"
                          firstname: "James"
                          lastname: "Brown"
                          telephone: "+447123456789"
                        vehicle:
                          name: "Private Transfer"
                          unittype: "vehicle"
                          unitcount: 1
                        passengers:
                          adults: 2
                          children: 1
                          infants: 1
                        language: "en"
                        datebooked: "2026-01-07T21:18:33"
                        datelastmodified: null
                        datecancelled: null
                      costs:
                        currencycode: "EUR"
                        decimalplaces: 2
                        transfer: 15000
                        optionalextras: 0
                        credits: 0
                      tailormade:
                        countrycode: "US"
                        additionalinfo: "Additional notes for tailormade transfer"
                        pickup:
                          transferdate: "2026-08-21T15:00:00"
                          gateway: null
                          address:
                            line1: "82 Cloudcrest"
                            line2: ""
                            city: "Aliso Viejo"
                            postcode: "CA 92656"
                        dropoff:
                          gateway: null
                          address:
                            line1: "One Ritz Carlton Dr"
                            line2: ""
                            city: "Dana Point"
                            postcode: "CA 92629"
                      notes: "https://suppliers-internal.mitchw.ireland.dev.htxg.it/bookings/notes/TEST-26738511"
                      hasopenquery: ""
                errors:
                  invalidstatus: "Invalid booking status: TEST-26767397"
                  dateformat: "All dates must be in the format 'YYYY-MM-DDTHH:MM:SS', 'pickupdate' is in the incorrect format: TEST-26769017"
                warnings: []
        application/xml:
          schema:
            description: One or more error messages. Refer to ‘Partial Success’ section for further information.
            type: object
            properties:
              response:
                required:
                  - errors
                type: object
                properties:
                  bookings:
                    $ref: '#/components/schemas/multiple-booking-bookings-response'
                  errors:
                    type: object
                    description: Object containing one or more error messages, each with a distinct key indicating its category, or the field to which it applies. Note, if any booking from your request is not included in the errors, then it has been updated successfully (partial success).
                    minProperties: 1
                    additionalProperties:
                      type: string
                      description: Details of an error. The key is a code indicating its category, or the field to which it applies; the value is a human-readable error message.
                  warnings:
                    $ref: '#/components/schemas/warnings'
          examples:
            'Invalid booking reference':
              x-version: '2026-A'
              value: |-
                <?xml version="1.0"?>
                <response>
                  <bookings>
                    <booking>
                      <general>
                        <ref>TEST-26767397</ref>
                        <bookingreference>J4U78T</bookingreference>
                        <orderref>RHGF-32546</orderref>
                        <status>PCON</status>
                        <bookingtype>Arrival</bookingtype>
                        <leadpassenger>
                          <name>Dr David Black</name>
                          <title>Dr</title>
                          <firstname>David</firstname>
                          <lastname>Black</lastname>
                          <telephone>02031118877</telephone>
                        </leadpassenger>
                        <vehicle>
                          <name>Private Standard Car 1 - 3</name>
                          <unittype>vehicle</unittype>
                          <unitcount>1</unitcount>
                        </vehicle>
                        <passengers>
                          <adults>2</adults>
                          <children>1</children>
                          <infants>0</infants>
                        </passengers>
                        <language>en</language>
                        <datebooked>2026-01-01T15:46:40</datebooked>
                        <datelastmodified>2026-02-07T21:18:33</datelastmodified>
                        <datecancelled/>
                      </general>
                      <costs>
                        <currencycode>EUR</currencycode>
                        <decimalplaces>2</decimalplaces>
                        <transfer>12780</transfer>
                        <optionalextras>1000</optionalextras>
                        <credits>0</credits>
                      </costs>
                      <arrival>
                        <pickup>
                          <arrivaldate>2026-07-03T07:35:00</arrivaldate>
                          <gateway>
                            <type>Airport</type>
                            <name>Barcelona Airport</name>
                            <code>BCN</code>
                          </gateway>
                          <flightnumber>VYY7832</flightnumber>
                          <accommodation/>
                          <shipname/>
                          <cruiseline/>
                          <trainnumber/>
                          <busnumber/>
                          <flightorigingateway>
                            <type>Airport</type>
                            <name>London Gatwick Airport</name>
                            <code>LGW</code>
                          </flightorigingateway>
                        </pickup>
                        <dropoff>
                          <gateway>
                            <type>Resort</type>
                            <name>Barcelona city centre</name>
                            <code>352</code>
                          </gateway>
                          <flightnumber/>
                          <accommodation>
                            <name>Le Meridien Barcelona</name>
                            <address1>La Rambla 111</address1>
                            <address2>Carrer del Pinto Fortuny</address2>
                            <address3>Barcelona</address3>
                            <telephone>34 933 187301</telephone>
                          </accommodation>
                          <shipname/>
                          <cruiseline/>
                          <trainnumber/>
                          <busnumber/>
                          <flightdestinationgateway/>
                        </dropoff>
                        <optionalextras>
                          <optionalextra>
                            <extra>Child Seat (9 - 18kg, 20 - 40lb, 9mths - 4yr)</extra>
                            <quantity>1</quantity>
                          </optionalextra>
                        </optionalextras>
                      </arrival>
                      <notes>https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26767397</notes>
                      <hasopenquery/>
                    </booking>
                  </bookings>
                  <errors>
                    <invalidstatus>Invalid Booking Reference supplied, booking doesn't exist: TESTC-26754972</invalidstatus>
                  </errors>
                  <warnings/>
                </response>
            'Invalid pickup date':
              x-version: '2026-A'
              value: |-
                <?xml version="1.0"?>
                <response>
                  <bookings>
                    <booking>
                      <general>
                        <ref>TEST-26569027</ref>
                        <bookingreference>GT56KD</bookingreference>
                        <orderref/>
                        <status>PCON</status>
                        <bookingtype>Departure</bookingtype>
                        <leadpassenger>
                          <name>Miss Rachel Green</name>
                          <title>Miss</title>
                          <firstname>Rachel</firstname>
                          <lastname>Green</lastname>
                          <telephone>0011 987 6543</telephone>
                        </leadpassenger>
                        <vehicle>
                          <name>Shared Standard Shuttle</name>
                          <unittype>passenger</unittype>
                          <unitcount>3</unitcount>
                        </vehicle>
                        <passengers>
                          <adults>2</adults>
                          <children>1</children>
                          <infants>0</infants>
                        </passengers>
                        <language>en</language>
                        <datebooked>2026-01-07T21:18:33</datebooked>
                        <datelastmodified>2026-03-17T12:35:28</datelastmodified>
                        <datecancelled/>
                      </general>
                      <costs>
                        <currencycode>EUR</currencycode>
                        <decimalplaces>2</decimalplaces>
                        <transfer>6390</transfer>
                        <optionalextras>0</optionalextras>
                        <credits>500</credits>
                      </costs>
                      <departure>
                        <pickup>
                          <pickupdate>2026-08-06T23:40:00</pickupdate>
                          <gateway>
                            <type>Resort</type>
                            <name>Copenhagen City Centre</name>
                            <code>4375</code>
                          </gateway>
                          <flightnumber/>
                          <accommodation>
                            <name>Hotel Copenhagen</name>
                            <address1>Egilsgade 33</address1>
                            <address2>2300 Kobenhavn</address2>
                            <address3/>
                            <telephone>+45 32 96 22 22</telephone>
                          </accommodation>
                          <shipname/>
                          <cruiseline/>
                          <trainnumber/>
                          <busnumber/>
                          <flightorigingateway/>
                        </pickup>
                        <dropoff>
                          <departuredate>2026-08-07T02:35:00</departuredate>
                          <gateway>
                            <type>Airport</type>
                            <name>Copenhagen Airport</name>
                            <code>CPH</code>
                          </gateway>
                          <flightnumber>NSZ3513</flightnumber>
                          <accommodation/>
                          <shipname/>
                          <cruiseline/>
                          <trainnumber/>
                          <busnumber/>
                          <flightdestinationgateway>
                            <type>Airport</type>
                            <name>London Gatwick Airport</name>
                            <code>LGW</code>
                          </flightdestinationgateway>
                        </dropoff>
                        <optionalextras/>
                      </departure>
                      <notes>https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26569027</notes>
                      <hasopenquery>Y</hasopenquery>
                    </booking>
                  </bookings>
                  <errors>
                    <dateformat>All dates must be in the format 'YYYY-MM-DDTHH:MM:SS', 'pickupdate' is in the incorrect format: TEST-26769017</dateformat>
                  </errors>
                  <warnings/>
                </response>
            'Multiple errors':
              x-version: '2026-A'
              value: "<?xml version=\"1.0\"?>\n<response>\n  <bookings>\n    <booking>\n      <general>\n        <ref>HTXA-26729681</ref>\n        <bookingreference>TM-186718</bookingreference>\n        <orderref/>\n        <status>ACON</status>\n        <bookingtype>Tailormade</bookingtype>\n        <leadpassenger>\n          <name>Mr Chris Smith26729681</name>\n          <title>Mr</title>\n          <firstname>Chris</firstname>\n          <lastname>Smith26729681</lastname>\n          <telephone>07123 26729681</telephone>\n        </leadpassenger>\n        <vehicle>\n          <name>Private Standard Coach</name>\n          <unittype>vehicle</unittype>\n          <unitcount>1</unitcount>\n        </vehicle>\n        <passengers>\n          <adults>33</adults>\n          <children>0</children>\n          <infants>0</infants>\n        </passengers>\n        <language>en</language>\n        <datebooked>2025-09-03T12:39:03</datebooked>\n        <datelastmodified/>\n        <datecancelled/>\n      </general>\n      <costs>\n        <currencycode>EUR</currencycode>\n        <decimalplaces>2</decimalplaces>\n        <transfer>55000</transfer>\n        <optionalextras>0</optionalextras>\n        <credits>0</credits>\n      </costs>\n      <tailormade>\n        <countrycode>GR</countrycode>\n        <additionalinfo>t&#xE9;r&#xE9;</additionalinfo>\n        <pickup>\n          <transferdate>2025-10-30T10:00:00</transferdate>\n          <gateway/>\n          <address>\n            <line1>Acropolis Athens</line1>\n            <line2/>\n            <city>Athens</city>\n            <postcode/>\n          </address>\n        </pickup>\n        <dropoff>\n          <gateway/>\n          <address>\n            <line1>Athens International Airport</line1>\n            <line2/>\n            <city>Athens</city>\n            <postcode/>\n          </address>\n        </dropoff>\n      </tailormade>\n      <notes>https://suppliers-internal.mitchw.ireland.dev.htxg.it/bookings/notes/HTXA-26729681</notes>\n      <hasopenquery/>\n    </booking>\n  </bookings>\n  <errors>\n    <invalidstatus>Invalid booking status: TEST-26767397</invalidstatus>                  \n    <dateformat>All dates must be in the format 'YYYY-MM-DDTHH:MM:SS', 'pickupdate' is in the incorrect format: TEST-26769017</dateformat>\n  </errors>\n  <warnings/>\n</response>"
    reconfirm-partial-success-response:
      description: Standard format for all errors and unsuccessful responses.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/reconfirm-partial-success'
          examples:
            'Invalid booking reference':
              value:
                bookings:
                  - ref: TEST-26673678
                    message: Update Successful
                  - ref: TEST-26783196
                    message: Update Successful
                errors:
                  notfound: "Invalid Booking Reference supplied, booking doesn't exist: TEST-25275265"
                warnings: ["Example Warning"]
            'Invalid pickup hour':
              value:
                bookings:
                  - ref: TEST-26673678
                    message: Update Successful
                  - ref: TEST-25275265
                    message: Update Successful
                errors:
                  invalidhour: "Invalid hour specified: TEST-26783196"
                warnings: ["Example Warning"]
            'Multiple errors':
              value:
                bookings:
                  - ref: TEST-26673678
                    message: Update Successful
                errors:
                  invalidhour: "Invalid hour specified: TEST-26783196"
                  notfound: "Invalid Booking Reference supplied, booking doesn't exist: TEST-25275265"
                warnings: ["Example Warning"]
        application/xml:
          schema:
            $ref: '#/components/schemas/reconfirm-partial-success'
          examples:
            'Invalid booking reference':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <bookings>
                    <booking>
                      <ref>TEST-26673678</ref>
                      <message>Update Successful</message>
                    </booking>
                    <booking>
                      <ref>TEST-26783196</ref>
                      <message>Update Successful</message>
                    </booking>
                  </bookings>
                  <errors>
                    <notfound>Invalid Booking Reference supplied, booking doesn't exist: TEST-25275265</notfound>
                  </errors>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
            'Invalid pickup hour':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <bookings>
                    <booking>
                      <ref>TEST-26673678</ref>
                      <message>Update Successful</message>
                    </booking>
                    <booking>
                      <ref>TEST-25275265</ref>
                      <message>Update Successful</message>
                    </booking>
                  </bookings>
                  <errors>
                    <invalidhour>Invalid hour specified: TEST-26783196</invalidhour>
                  </errors>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
            'Multiple errors':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <bookings>
                    <booking>
                      <ref>TEST-26673678</ref>
                      <message>Update Successful</message>
                    </booking>
                  </bookings>
                  <errors>
                    <invalidhour>Invalid hour specified: TEST-26783196</invalidhour>
                    <notfound>Invalid Booking Reference supplied, booking doesn't exist: TEST-25275265</notfound>
                  </errors>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    notfound-response:
      description: Standard format for all errors and unsuccessful responses.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Invalid request supplied':
              value:
                errors:
                  error: "Your request does not match any valid operation. Please check the documentation."
                warnings: []
        application/xml:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Invalid request supplied':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <errors>
                    <error>Your request does not match any valid operation. Please check the documentation.</error>
                  </errors>
                  <warnings>
                    <warning>Example Warning</warning>
                  </warnings>
                </response>
    invalid-ref-response:
      description: Standard format for all errors and unsuccessful responses.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Invalid request supplied':
              value:
                errors:
                  notfound: "0 - Invalid Booking Reference supplied, booking doesn't exist."
                warnings: []
        application/xml:
          schema:
            $ref: '#/components/schemas/error-standard'
          examples:
            'Invalid request supplied':
              value: |-
                <?xml version="1.0"?>
                <response>
                  <errors>
                    <notfound>0 - Invalid Booking Reference supplied, booking doesn't exist.</notfound>
                  </errors>
                  <warnings/>
                </response>
  schemas:
    contact-method:
      type: string
      xml:
        name: contactMethod
      description: |-
        Methods of contact which the driver can be contacted on:

        * 'VOICE' - Direct voice calls on the provided number
        * 'SMS' - SMS text message
        * 'VIBER' - Text messaging via Rakuten Viber
        * 'WHATSAPP' - Text messaging via WhatsApp
      enum:
        - VOICE
        - SMS
        - VIBER
        - WHATSAPP
    error-standard:
      type: object
      description: One or more error messages
      xml:
        name: response
      required:
        - errors
        - warnings
      properties:
        errors:
          type: object
          description: Object containing one or more error messages, each with a distinct key indicating its category, or the field to which it applies
          minProperties: 1
          additionalProperties:
            type: string
            description: Details of an error. The key is a code indicating its category, or the field to which it applies; the value is a human-readable error message.
        warnings:
          $ref: '#/components/schemas/warnings'
    warnings:
      type: array
      xml:
        wrapped: true
      description: "May contain messages about requests which, whilst they may not error, may produce unintended results or may be unsupported in the future \n* Available from Version 2021-09 or later only"
      items:
        type: string
        xml:
          name: warning
    warnings-no-version-check:
      x-version: '2026-A'
      type: array
      xml:
        wrapped: true
      description: |-
        May contain messages about requests which, whilst they may not error, may produce unintended results or may be unsupported in the future
      items:
        type: string
        xml:
          name: warning
    search-booking-response:
      description: "This is the Response for Booking searching, the response is for search criteria; \n* Arrival Date\n* Departure Date"
      type: object
      required:
        - bookings
        - warnings
      xml:
        name: response
      properties:
        bookings:
          type: object
          patternProperties:
            "^booking_[0-9]+$":
              type: object
              required:
                - ref
                - status
                - bookingtype
                - lastactiondate
                - arrivaldate
                - departuredate
                - passengername
                - passengerfirstname
                - passengerlastname
                - passengertitle
                - passengertelno
                - vehicle
                - link
                - orderref
              properties:
                ref:
                  type: string
                  description: This is the booking reference number. In the following format (ABC-1234567)
                  example: HTX-4859500
                status:
                  type: string
                  description: "The current status of the booking. This include one of the following Pending Booking Voucher (PCON), \nBooking Voucher Approved (ACON), Pending Amendment (PAMM), Amendment Approved (AAMM), Pending Cancellation (PCAN),\nCancellation Approved (ACAN).\n"
                  example: PCON
                  enum:
                    - PCON
                    - ACON
                    - PAMM
                    - AAMM
                    - PCAN
                    - ACAN
                bookingtype:
                  x-version: '2026-A'
                  type: string
                  description: This defines the type of booking - whether it is an arrival leg only, departure leg only, return transfer, or tailormade transfer.
                  example: Arrival
                  enum:
                    - Return transfer
                    - Arrival
                    - Departure
                    - Tailormade
                lastactiondate:
                  type: string
                  format: date-time
                  description: Last action datetime of the booking, in UTC
                  example: '2025-10-15T08:22:10'
                arrivaldate:
                  type: string
                  format: date-time
                  description: The date and time on which the passengers flight, cruise ship, train or bus will arrive at the 'airport' associated to the booking, in the following format 'YYYY-MM-DDTHH:MM' (in the local time zone of the transfer). One of arrival or departure date is provided for single journeys. For return journeys, both fields are provided.
                  example: '2025-11-13T11:00:00'
                departuredate:
                  type: string
                  format: date-time
                  description: The date and time on which the passengers flight, cruise ship, train or bus will leave the 'airport' associated to the booking, in the following format 'YYYY-MM-DDTHH:MM:SS' (in the local time zone of the transfer). One of arrival or departure date is provided for single journeys. For return journeys, both fields are provided.
                  example: '2025-11-20T08:30:00'
                passengername:
                  type: string
                  description: This is the name of the lead passenger travelling on the booking.
                  example: MRS R BOOKER
                passengertitle:
                  x-version: '2026-A'
                  type: string
                  description: This is the title of the lead passenger travelling on the booking.
                  example: MRS
                passengerfirstname:
                  x-version: '2026-A'
                  type: string
                  description: This is the first name of the lead passenger travelling on the booking.
                  example: R
                passengerlastname:
                  x-version: '2026-A'
                  type: string
                  description: This is the last name of the lead passenger travelling on the booking.
                  example: BOOKER
                passengertelno:
                  type: string
                  description: Telephone number of the passenger. Customers are advised to provide this in E.164 format, however there will be instances where this is in a different format (string)
                  example: '+447123456789, 44(0)123456789'
                vehicle:
                  type: string
                  description: The vehicle requested by the passenger. E.g. Shuttle, Private Taxi or Minibus.
                  example: Speedy Shuttle
                link:
                  type: string
                  format: url
                  description: This link will provide the full details of the booking.
                orderref:
                  type: [string, "null"]
                  description: The reference used by the affiliate client or travel agency that made the booking. Available from Version 2023-06 or later only
                  example: abc123
            more:
              type: string
              format: url
              description: When more than 50 items are matched by a method, we include this field. This contains the location for the next 50 items that are matched. This is designed to allow each response to be small and lightweight. If this field is not included in the response then there are no more matches.
        warnings:
          $ref: '#/components/schemas/warnings'
    search-last-action-booking-response:
      description: "This is the Response for Booking searching, the response is for search criteria; \n* Last Action Date"
      type: object
      required:
        - bookings
        - warnings
      xml:
        name: response
      properties:
        bookings:
          type: object
          patternProperties:
            "^booking_[0-9]+$":
              type: object
              required:
                - ref
                - status
                - bookingtype
                - lastactiondate
                - arrivaldate
                - departuredate
                - transferdate
                - passengername
                - passengerfirstname
                - passengerlastname
                - passengertitle
                - passengertelno
                - vehicle
                - link
                - orderref
              properties:
                ref:
                  type: string
                  description: This is the booking reference number. In the following format (ABC-1234567)
                  example: HTX-4859500
                status:
                  type: string
                  description: "The current status of the booking. This include one of the following Pending Booking Voucher (PCON), \nBooking Voucher Approved (ACON), Pending Amendment (PAMM), Amendment Approved (AAMM), Pending Cancellation (PCAN),\nCancellation Approved (ACAN).\n"
                  example: PCON
                  enum:
                    - PCON
                    - ACON
                    - PAMM
                    - AAMM
                    - PCAN
                    - ACAN
                bookingtype:
                  x-version: '2026-A'
                  type: string
                  description: This defines the type of booking - whether it is an arrival leg only, departure leg only, return transfer, or tailormade transfer.
                  example: Arrival
                  enum:
                    - Return transfer
                    - Arrival
                    - Departure
                    - Tailormade
                lastactiondate:
                  type: string
                  format: date-time
                  description: Last action datetime of the booking, in UTC
                  example: '2025-10-15T08:22:10'
                arrivaldate:
                  type: string
                  format: date-time
                  description: The date and time on which the passengers flight, cruise ship, train or bus will arrive at the 'airport' associated to the booking, in the following format 'YYYY-MM-DDTHH:MM' (in the local time zone of the transfer). One of arrival or departure date is provided for single journeys. For return journeys, both fields are provided.
                  example: '2025-11-13T11:00:00'
                departuredate:
                  type: string
                  format: date-time
                  description: The date and time on which the passengers flight, cruise ship, train or bus will leave the 'airport' associated to the booking, in the following format 'YYYY-MM-DDTHH:MM:SS' (in the local time zone of the transfer). One of arrival or departure date is provided for single journeys. For return journeys, both fields are provided.
                  example: '2025-11-20T08:30:00'
                transferdate:
                  x-version: '2026-A'
                  type: string
                  format: date-time
                  description: The date and time when the passenger will be picked up for their transfer, in the following format ‘YYYY-MM-DDTHH:MM:SS’ (in the local time zone of the transfer)
                  example: '2025-11-13T11:00:00'
                passengername:
                  type: string
                  description: This is the name of the lead passenger travelling on the booking.
                  example: MRS R BOOKER
                passengertitle:
                  x-version: '2026-A'
                  type: string
                  description: This is the title of the lead passenger travelling on the booking.
                  example: MRS
                passengerfirstname:
                  x-version: '2026-A'
                  type: string
                  description: This is the first name of the lead passenger travelling on the booking.
                  example: R
                passengerlastname:
                  x-version: '2026-A'
                  type: string
                  description: This is the last name of the lead passenger travelling on the booking.
                  example: BOOKER
                passengertelno:
                  type: string
                  description: Telephone number of the passenger. Customers are advised to provide this in E.164 format, however there will be instances where this is in a different format (string)
                  example: '+447123456789, 44(0)123456789'
                vehicle:
                  type: string
                  description: The vehicle requested by the passenger. E.g. Shuttle, Private Taxi or Minibus.
                  example: Speedy Shuttle
                link:
                  type: string
                  format: url
                  description: This link will provide the full details of the booking.
                orderref:
                  type: [string, "null"]
                  description: The reference used by the affiliate client or travel agency that made the booking. Available from Version 2023-06 or later only
                  example: abc123
            more:
              type: string
              format: url
              description: When more than 50 items are matched by a method, we include this field. This contains the location for the next 50 items that are matched. This is designed to allow each response to be small and lightweight. If this field is not included in the response then there are no more matches.
        warnings:
          $ref: '#/components/schemas/warnings'
    search-tailormade-booking-response:
      x-version: '2026-A'
      description: |-
        This is the Response for searching tailormade bookings by Pickup Date
      type: object
      required:
        - bookings
        - warnings
      xml:
        name: response
      properties:
        bookings:
          type: object
          patternProperties:
            "^booking_[0-9]+$":
              type: object
              required:
                - ref
                - status
                - bookingtype
                - lastactiondate
                - transferdate
                - passengername
                - passengertitle
                - passengerfirstname
                - passengerlastname
                - passengertelno
                - vehicle
                - link
                - orderref
              properties:
                ref:
                  type: string
                  description: This is the booking reference number. In the following format (ABC-1234567)
                  example: HTX-4859500
                status:
                  type: string
                  description: "The current status of the booking. This include one of the following Pending Booking Voucher (PCON), \nBooking Voucher Approved (ACON), Pending Amendment (PAMM), Amendment Approved (AAMM), Pending Cancellation (PCAN),\nCancellation Approved (ACAN).\n"
                  example: PCON
                  enum:
                    - PCON
                    - ACON
                    - PAMM
                    - AAMM
                    - PCAN
                    - ACAN
                bookingtype:
                  type: string
                  description: This defines the type of booking - whether it is an arrival leg only, departure leg only, return transfer, or tailormade transfer.
                  example: Tailormade
                  enum:
                    - Return transfer
                    - Arrival
                    - Departure
                    - Tailormade
                lastactiondate:
                  type: string
                  format: date-time
                  description: Last action datetime of the booking, in UTC
                  example: '2025-10-15T08:22:10'
                transferdate:
                  type: string
                  format: date-time
                  description: The date and time when the passenger will be picked up for their transfer, in the following format ‘YYYY-MM-DDTHH:MM:SS’ (in the local time zone of the transfer)
                  example: '2025-11-13T11:00:00'
                passengername:
                  type: string
                  description: This is the name of the lead passenger travelling on the booking.
                  example: MRS R BOOKER
                passengertitle:
                  type: string
                  description: |-
                    This is the title of the lead passenger travelling on the booking.
                  example: MRS
                passengerfirstname:
                  type: string
                  description: |-
                    This is the first name of the lead passenger travelling on the booking.
                  example: R
                passengerlastname:
                  type: string
                  description: |-
                    This is the last name of the lead passenger travelling on the booking.
                  example: BOOKER
                passengertelno:
                  type: string
                  description: Telephone number of the passenger. Customers are advised to provide this in E.164 format, however there will be instances where this is in a different format (string)
                  example: '+447123456789, 44(0)123456789'
                vehicle:
                  type: string
                  description: The vehicle requested by the passenger. E.g. Private Taxi or Private Minibus.
                  example: Private Taxi
                link:
                  type: string
                  format: url
                  description: If only a summary of an item is returned, then this returns the location of the full details. E.g. when requesting a list of bookings travelling between particular dates, we only return a small amount of information about each booking. This link, if followed will return the full booking details.
                orderref:
                  type: [string, "null"]
                  description: The reference used by the affiliate client or travel agency that made the booking.
                  example: abc123
            more:
              type: string
              format: url
              description: When more than 50 items are matched by a method, we include this field. This contains the location for the next 50 items that are matched. This is designed to allow each response to be small and lightweight. If this field is not included in the response then there are no more matches.
        warnings:
          $ref: '#/components/schemas/warnings-no-version-check'
    multiple-booking-bookings-response:
      type: array
      xml:
        wrapped: true
        name: bookings
      items:
        type: object
        xml:
          name: booking
        properties:
          booking:
            $ref: '#/components/schemas/booking'
    multiple-booking-update-response:
      description: |-
        This is the Response for Multiple booking
      type: object
      xml:
        name: response
      required:
        - bookings
        - warnings
      properties:
        bookings:
          $ref: '#/components/schemas/multiple-booking-bookings-response'
        warnings:
          $ref: '#/components/schemas/warnings'
    reconfirm-multiple-booking-response:
      description: |-
        This is the Response for Multiple booking Reconfirmation
      type: object
      required:
        - bookings
        - warnings
      xml:
        name: response
      properties:
        bookings:
          type: array
          xml:
            wrapped: true
          description: List of booking details
          items:
            type: object
            xml:
              name: booking
            required:
              - ref
              - message
            properties:
              ref:
                type: string
                description: Reference number of the booking
                example: TESTC-17685273
              message:
                type: string
                description: Message related to the booking status
                example: Update Successful
        warnings:
          $ref: '#/components/schemas/warnings'
    reconfirm-partial-success:
      description: |-
        This is the Response for Multiple booking Reconfirmation
      type: object
      required:
        - bookings
        - errors
        - warnings
      xml:
        name: response
      properties:
        bookings:
          type: array
          xml:
            wrapped: true
          description: List of booking details
          items:
            type: object
            xml:
              name: booking
            required:
              - ref
              - message
            properties:
              ref:
                type: string
                description: Reference number of the booking
                example: TESTC-17685273
              message:
                type: string
                description: Message related to the booking status
                example: Update Successful
        errors:
          type: object
          description: Object containing one or more error messages, each with a distinct key indicating its category, or the field to which it applies. Note, if any booking from your request is not included in the errors, then it has been updated successfully (partial success).
          minProperties: 1
          additionalProperties:
            type: string
            description: Details of an error. The key is a code indicating its category, or the field to which it applies; the value is a human-readable error message.
        warnings:
          $ref: '#/components/schemas/warnings'
    booking-details-response:
      description: |-
        This is the Response for booking details
      type: object
      required:
        - booking
        - warnings
      xml:
        name: response
      properties:
        booking:
          $ref: '#/components/schemas/booking'
        warnings:
          $ref: '#/components/schemas/warnings'
    booking-details-xml-response:
      x-version: '2026-A'
      description: |-
        This is the Response for booking details
      type: object
      required:
        - booking
        - warnings
      xml:
        name: response
      properties:
        booking:
          $ref: '#/components/schemas/booking'
        warnings:
          $ref: '#/components/schemas/warnings'
    note-details-response:
      description: |-
        This is the Response for booking details with Note information
      type: object
      required:
        - notes
        - booking
        - warnings
      xml:
        name: response
      properties:
        notes:
          type: object
          patternProperties:
            "^note_[0-9]+$":
              type: object
              required:
                - notedate
                - user
                - note
              properties:
                notedate:
                  type: string
                  format: date-time
                  description: Date of the note in UTC
                  example: '2025-04-02T08:31:50'
                user:
                  type: string
                  description: User who made the note
                  example: 'Supplier: Nevada Agullo'
                note:
                  type: string
                  description: Content of the note
                  example: Confirmed Booking
        booking:
          type: string
          format: url
          description: Link to the booking details
          example: https://suppliers.holidaytaxis.com/bookings/TEST-4290672
        warnings:
          $ref: '#/components/schemas/warnings'
    booking-request-update-individual:
      description: |-
        This is the Request for single booking update
      type: object
      xml:
        name: request
      properties:
        status:
          type: string
          description: Status of the request
          example: AAMM
        newpickupaccom:
          type: string
          description: The new name of accommodation or building at which the passengers will be picked up. This field must be populated if you are updating the pickup date or new address, even if the accommodation has not changed, otherwise it will be updated to Null. You must ensure that the pickupdate is populated if you are updating this field.
          example: Hotel Hilton
        newpickupaddress1:
          type: string
          description: The new first line of the address of the accommodation or building at which the passengers will be picked up. This field must be populated if you are updating the pickup date or new accommodation, even if the address has not changed, otherwise it will be updated to Null. You must ensure that the pickupdate is populated if you are updating this field.
          example: Sandreen street
        newpickupaddress2:
          type: [string, "null"]
          description: The new second line of the address of the accommodation or building at which the passengers will be picked up. This field must be populated if you are updating the pickup date or new accommodation, even if the address has not changed, otherwise it will be updated to Null. You must ensure that the pickupdate is populated if you are updating this field.
          example: TEST
        newpickupaddress3:
          type: [string, "null"]
          description: The new second line of the address of the accommodation or building at which the passengers will be picked up. This field must be populated if you are updating the pickup date or new accommodation, even if the address has not changed, otherwise it will be updated to Null. You must ensure that the pickupdate is populated if you are updating this field.
          example: TEST
        departure:
          type: object
          properties:
            pickupdate:
              type: string
              format: date-time
              description: The date and time on which the passenger will be picked up from the 'resort' associated to the booking in order for them to arrive at the 'airport' on time, in the following format 'YYYY-MM-DDTHH:MM:SS' (in the local time zone of the transfer). This field is required if you are updating the newpickupaccom and newpickupaddress fields, even if it has not changed.
              example: '2025-05-14T20:00:00'
        notes:
          type: array
          items:
            type: object
            properties:
              notecontent:
                x-version: '2026-A'
                type: string
                description: This field is mandatory when setting query types 'wrongresort' and 'ratediscrepancy' to 1 and should be used to provide additional information. It is optional for all other query types. If you populate this field without setting any query type to 1, it will open a general query.
                example: ''
              flightnoquery:
                type: integer
                description: Indicates that the flight number on the booking is incorrect, incomplete or missing. If set to 1, a flight number query will be raised. 'notecontent' is optional for this query type.
                enum:
                  - 1
                example: 1
              wrongresort:
                type: integer
                description: Indicates that the resort associated to the booking is incorrect. If set to 1, a wrong resort query will be raised. You must add details to 'notecontent' to explain what is wrong with the resort and which resort it should be updated to.
                enum:
                  - 1
              ratediscrepancy:
                x-version: '2026-A'
                type: integer
                description: Indicates that the rate associated to the booking is incorrect. If set to 1, a rate discrepancy query will be raised. You must add details to 'notecontent' to explain what is wrong with the rate and what you believe it should be updated to.
                enum:
                  - 1
              mandatorychildseat:
                type: integer
                description: Indicates that the booking is missing mandatory child seat(s) and that it should be added or provided by the customer. If set to 1, a mandatory child seat query will be raised. 'notecontent' is optional for this query type.
                enum:
                  - 1
              missingaccommodation:
                type: integer
                description: Indicates that the booking is missing accommodation name or details. If set to 1, a missing accommodation query will be raised. 'notecontent' is optional for this query type.
                enum:
                  - 1
              missingcruiseshipname:
                type: integer
                description: Indicates that the booking is missing the cruise ship name or details. If set to 1, a missing cruise ship name query will be raised. 'notecontent' is optional for this query type.
                enum:
                  - 1
              shuttletoprivateaddress:
                type: integer
                description: Indicates that the booking needs to be upgraded from a shuttle to a private transfer due to being booked to a private address or other non-compliant address. If set to 1, a shuttle to private address query will be raised. 'notecontent' is optional for this query type.
                enum:
                  - 1
              noshowarrival:
                type: integer
                description: Indicates that the passenger did not board their arrival journey transfer. If set to 1, a no show query will be raised. This may only be used after the pick-up time for the arrival journey has passed. If raised too early, you will receive an error and the query will not be raised. 'notecontent' is optional for this query type.
                enum:
                  - 1
              noshowdeparture:
                type: integer
                description: Indicates that the passenger did not board their departure journey transfer. If set to 1, a no show query will be raised. This may only be used after the pick-up time for the departure journey has passed. If raised too early, you will receive an error and the query will not be raised. 'notecontent' is optional for this query type.
                enum:
                  - 1
    booking-request-update-multiple:
      description: |-
        This is the Request for multiple booking update
      type: object
      xml:
        name: request
      required:
        - bookings
      properties:
        bookings:
          type: array
          xml:
            name: bookings
            wrapped: true
          items:
            type: object
            xml:
              name: booking
            required:
              - ref
            properties:
              ref:
                type: string
                description: Reference number of the booking
                example: TEST-12341234
              status:
                type: string
                description: Status of the booking
                example: PCON
                enum:
                  - PCON
                  - ACON
                  - PAMM
                  - AAMM
                  - PCAN
                  - ACAN
              newpickupaccom:
                type: string
                description: The new name of accommodation or building at which the passengers will be picked up. This field must be populated if you are updating the pickup date or new address, even if the accommodation has not changed, otherwise it will be updated to Null. You must ensure that the pickupdate is populated if you are updating this field.
                example: United Kingdom
              newpickupaddress1:
                type: string
                description: The new first line of the address of the accommodation or building at which the passengers will be picked up. This field must be populated if you are updating the pickup date or new accommodation, even if the address has not changed, otherwise it will be updated to Null. You must ensure that the pickupdate is populated if you are updating this field.
                example: Suite B 2nd Floor TEST
              newpickupaddress2:
                type: [string, "null"]
                description: The new second line of the address of the accommodation or building at which the passengers will be picked up. This field must be populated if you are updating the pickup date or new accommodation, even if the address has not changed, otherwise it will be updated to Null. You must ensure that the pickupdate is populated if you are updating this field.
                example: 13 TEST Street
              newpickupaddress3:
                type: [string, "null"]
                description: The new third line of the address of the accommodation or building at which the passengers will be picked up. This field must be populated if you are updating the pickup date or new accommodation, even if the address has not changed, otherwise it will be updated to Null. You must ensure that the pickupdate is populated if you are updating this field.
                example: TEST
              departure:
                type: object
                properties:
                  pickupdate:
                    type: string
                    format: date-time
                    description: The date and time on which the passenger will be picked up from the 'resort' associated to the booking in order for them to arrive at the 'airport' on time, in the following format 'YYYY-MM-DDTHH:MM:SS' (in the local time zone of the transfer). This field is required if you are updating the newpickupaccom and newpickupaddress fields, even if it has not changed.
                    example: '2025-06-08T11:45:00'
              notes:
                type: object
                properties:
                  note:
                    type: object
                    properties:
                      notecontent:
                        x-version: '2026-A'
                        type: string
                        description: This field is mandatory when setting query types 'wrongresort' and 'ratediscrepancy' to 1 and should be used to provide additional information. It is optional for all other query types. If you populate this field without setting any query type to 1, it will open a general query.
                        example: ''
                      flightnoquery:
                        type: integer
                        description: Indicates that the flight number on the booking is incorrect, incomplete or missing. If set to 1, a flight number query will be raised. 'notecontent' is optional for this query type.
                        enum:
                          - 1
                        example: 1
                      wrongresort:
                        type: integer
                        description: Indicates that the resort associated to the booking is incorrect. If set to 1, a wrong resort query will be raised. You must add details to 'notecontent' to explain what is wrong with the resort and which resort it should be updated to.
                        enum:
                          - 1
                      ratediscrepancy:
                        x-version: '2026-A'
                        type: integer
                        description: Indicates that the rate associated to the booking is incorrect. If set to 1, a rate discrepancy query will be raised. You must add details to 'notecontent' to explain what is wrong with the rate and what you believe it should be updated to.
                        enum:
                          - 1
                      mandatorychildseat:
                        type: integer
                        description: Indicates that the booking is missing mandatory child seat(s) and that it should be added or provided by the customer. If set to 1, a mandatory child seat query will be raised. 'notecontent' is optional for this query type.
                        enum:
                          - 1
                      missingaccommodation:
                        type: integer
                        description: Indicates that the booking is missing accommodation name or details. If set to 1, a missing accommodation query will be raised. 'notecontent' is optional for this query type.
                        enum:
                          - 1
                      missingcruiseshipname:
                        type: integer
                        description: Indicates that the booking is missing the cruise ship name or details. If set to 1, a missing cruise ship name query will be raised. 'notecontent' is optional for this query type.
                        enum:
                          - 1
                      shuttletoprivateaddress:
                        type: integer
                        description: Indicates that the booking needs to be upgraded from a shuttle to a private transfer due to being booked to a private address or other non-compliant address. If set to 1, a shuttle to private address query will be raised. 'notecontent' is optional for this query type.
                        enum:
                          - 1
                      noshowarrival:
                        type: integer
                        description: Indicates that the passenger did not board their arrival journey transfer. If set to 1, a no show query will be raised. This may only be used after the pick-up time for the arrival journey has passed. If raised too early, you will receive an error and the query will not be raised. 'notecontent' is optional for this query type.
                        enum:
                          - 1
                      noshowdeparture:
                        type: integer
                        description: Indicates that the passenger did not board their departure journey transfer. If set to 1, a no show query will be raised. This may only be used after the pick-up time for the departure journey has passed. If raised too early, you will receive an error and the query will not be raised. 'notecontent' is optional for this query type.
                        enum:
                          - 1
    booking-request-reconfirm:
      description: |-
        This is the Request for booking reconfirmation
      type: object
      xml:
        name: request
      properties:
        bookings:
          type: array
          xml:
            name: booking
            wrapped: true
          items:
            type: object
            required:
              - ref
              - newpickuphour
              - newpickupmin
            properties:
              ref:
                type: string
                description: Reference number of the booking
                example: HTX-1444774
              newpickuphour:
                type: string
                description: New pickup hour. newpickupmin must also be populated. This field is required if you are updating the newpickupaccom and newpickup address fields.
                example: '10'
              newpickupmin:
                type: string
                description: New pickup minute. newpickuphour must also be populated. This field is required if you are updating the newpickupaccom and newpickupaddress fields.
                example: '10'
              newpickupaccom:
                type: string
                description: The new name of accommodation or building at which the passengers will be picked up. You must ensure that newpickuphour and newpickupmin are populated if you are updating this field.
                example: Suite B 2nd Floor TEST
              newpickupaddress1:
                type: string
                description: The new first line of the address of the accommodation or building at which the passengers will be picked up. You must ensure that newpickuphour and newpickupmin are populated if you are updating this field.
                example: 13 TEST Street
              newpickupaddress2:
                type: [string, "null"]
                description: The new second line of the address of the accommodation or building at which the passengers will be picked up. You must ensure that newpickuphour and newpickupmin are populated if you are updating this field.
                example: TEST
              newpickupaddress3:
                type: [string, "null"]
                description: The new second line of the address of the accommodation or building at which the passengers will be picked up. You must ensure that newpickuphour and newpickupmin are populated if you are updating this field.
                example: TEST
    booking:
      x-version: 2026-A
      type: object
      required:
        - general
        - costs
        - notes
        - hasopenquery
      properties:
        general:
          $ref: '#/components/schemas/booking-general'
        costs:
          $ref: '#/components/schemas/costs'
        arrival:
          $ref: '#/components/schemas/arrival'
        departure:
          $ref: '#/components/schemas/departure'
        tailormade:
          $ref: '#/components/schemas/tailormade'
        notes:
          type: string
          format: url
          description: Link to the booking notes
          example: https://suppliers.holidaytaxis.com/bookings/notes/TEST-4290672
        hasopenquery:
          type: string
          description: Indicates a booking as a query that is unresolved. "Y" if, one is present, otherwise empty. Available from Version 2021-09 or later only
          example: Y
    booking-general:
      x-version: '2026-A'
      type: object
      required:
        - ref
        - bookingreference
        - orderref
        - status
        - bookingtype
        - leadpassenger
        - vehicle
        - passengers
        - language
        - datebooked
        - datelastmodified
        - datecancelled
      description: General booking information
      properties:
        ref:
          type: string
          description: This is the booking reference number of the individual booking leg.
          example: "TEST-4290672"
        bookingreference:
          type: string
          description: This represents the booking reference that the customer sees for their whole booking. It is a randomly generated string, unique to each booking, but shared across all legs of that booking.
          example: "BCKKAL"
        orderref:
          type: [string, "null"]
          description: This is the reference used by the affiliate client or travel agency that made the booking.
          example: abc123
        status:
          type: string
          description: "The current status of the booking. This include one of the following Pending Booking Voucher (PCON), \nBooking Voucher Approved (ACON), Pending Amendment (PAMM), Amendment Approved (AAMM), Pending Cancellation (PCAN),\nCancellation Approved (ACAN).\n"
          example: PCON
          enum:
            - PCON
            - ACON
            - PAMM
            - AAMM
            - PCAN
            - ACAN
        bookingtype:
          type: string
          description: This defines the type of booking - whether it is an arrival leg only, departure leg only, return transfer, or tailormade transfer.
          example: "Arrival"
          enum:
            - Arrival
            - Departure
            - Return transfer
            - Tailormade
        leadpassenger:
          type: object
          description: These are details of the lead passenger travelling on the booking.
          required:
            - name
            - title
            - firstname
            - lastname
            - telephone
          properties:
            name:
              type: string
              description: This is the name of the lead passenger travelling on the booking.
              example: "Mr James Brown"
            title:
              type: string
              description: This is the title of the lead passenger travelling on the booking.
              example: "Mr"
            firstname:
              type: string
              description: This is the first name of the lead passenger travelling on the booking.
              example: "James"
            lastname:
              type: string
              description: This is the last name of the lead passenger travelling on the booking.
              example: "Brown"
            telephone:
              type: string
              description: Telephone number of the lead passenger. Customers are advised to provide this in E.164 format, however there will be instances where this is in a different format (string).
              example: '+447123456789, 44(0)123456789'
        vehicle:
          type: object
          description: These are the details of the vehicle(s) for the booking.
          required:
            - name
            - unittype
            - unitcount
          properties:
            name:
              type: string
              description: The type of vehicle booked by the passenger e.g. Shuttle, Private Taxi, Minibus.
              example: "Speedy Shuttle"
            unittype:
              type: string
              description: This determines whether the booking is being charged at the vehicle level or at the passenger level. This will be 'vehicle' for private bookings and the unitcount will be the total number of vehicles required for the booking. This will be 'passenger' for shuttle bookings and the unitcount will be the total number of chargeable passengers travelling on the booking.
              enum:
                - "passenger"
                - "vehicle"
              example: passenger
            unitcount:
              type: integer
              description: If unittype is 'vehicle', then this is the total number of vehicles required for the booking. If unittype is 'passenger' then this is the total number chargeable of passengers travelling on the booking.
              example: 2
        passengers:
          type: object
          description: These are details of all passengers travelling on the booking.
          required:
            - adults
            - children
            - infants
          properties:
            adults:
              type: integer
              description: The number of adults travelling on the booking.
              example: 2
            children:
              type: integer
              description: The number of children travelling on the booking.
              example: 0
            infants:
              type: integer
              description: The number of infants travelling on the booking.
              example: 0
        language:
          type: string
          description: The language the booking was made in, using a 2 letter language code e.g. en, fr, es, de, etc.
          example: "en"
        datebooked:
          type: string
          format: date-time
          description: The date and time in which the booking was made, in the following format 'YYYY-MM-DDTHH:MM:SS' (in UTC)
          example: "2026-01-03T20:12:55"
        datelastmodified:
          type: [string, "null"]
          format: date-time
          description: The date and time of the most recent update to the booking, in the following format 'YYYY-MM-DDTHH:MM' (in UTC). This field is null if the booking has not been modified.
          example: "2026-01-15T14:15:06"
        datecancelled:
          type: [string, "null"]
          format: date-time
          description: The date and time when the booking is cancelled, in the following format 'YYYY-MM-DDTHH:MM' (in UTC). This field is null if the booking is not cancelled.
          example: "2026-02-24T08:21:30"
    costs:
      x-version: '2026-A'
      type: object
      description: These are the costs associated with the booking leg
      required:
        - currencycode
        - decimalplaces
        - transfer
        - optionalextras
        - credits
      properties:
        currencycode:
          type: string
          description: This is the currency in which the costs are returned, as per agreement with the supplier.
          example: "EUR"
        decimalplaces:
          type: integer
          description: This is the number of decimal places which should be applied to the whole number value of the costs provided. If 'currencycode' = EUR, 'decimalplaces' = 2, and 'transfer' = 2350, this means the transfer cost is €23.50.
          example: 2
        transfer:
          type: integer
          description: This is the cost of the transfer after all discounts (profile cost and promotions) have been applied, BUT excluding optional extras and credits (increasing or decreasing). This will be returned as a whole number - please refer to the 'decimalplaces' response to understand the value against the currency. If 'currencycode' = EUR, 'decimalplaces' = 2, and 'transfer' = 2350, this means the transfer cost is €23.50.
          example: 2350
        optionalextras:
          type: integer
          description: This is the sum of the optional extras costs included on the booking. This will be returned as a whole number - please refer to the 'decimalplaces' response to understand the value against the currency.
          example: 500
        credits:
          type: integer
          description: This is the sum of all supplier credits applied to the booking. This will be returned as a whole number - please refer to the 'decimalplaces' response to understand the value against the currency.
          example: 1175
    arrival:
      x-version: '2026-A'
      type: object
      description: Arrival details
      required:
        - pickup
        - dropoff
        - optionalextras
      properties:
        pickup:
          type: object
          description: "These are the details of the pickup."
          required:
            - arrivaldate
            - gateway
            - flightnumber
            - accommodation
            - shipname
            - cruiseline
            - trainnumber
            - busnumber
            - flightorigingateway
          properties:
            arrivaldate:
              type: string
              format: date-time
              description: The date and time on which the passengers flight, cruise ship, train or bus will arrive at the gateway associated to the booking, in the following format 'YYYY-MM-DDTHH:MM' (in the local time zone of the transfer).
              example: "2026-07-03T07:35:00"
            gateway:
              type: object
              required:
                - type
                - name
                - code
              properties:
                type:
                  type: string
                  description: The type of gateway from which the passenger will be picked up.
                  enum:
                    - "Airport"
                    - "Port"
                    - "Train Station"
                    - "Bus Station"
                  example: "Airport"
                name:
                  type: string
                  description: The name of the specific gateway (airport, resort, port, train station, or bus station) from which the passenger will be picked up.
                  example: "Barcelona-El Prat Airport"
                code:
                  type: string
                  description: The code of the gateway from which the passenger will be picked up. For airports, this will be the 3-letter IATA code. For resorts, this will be the resort ID. For ports, train stations and bus stations, this will be an internal code.
                  example: "BCN"
            flightnumber:
              type: [string, "null"]
              description: The flight number of the passengers incoming flight. This will be null if the gateway is not airport.
              example: "LS271"
            accommodation:
              type: [object, "null"]
              description: Details of the accommodation from which the passenger will be picked up. This will be null if the gateway is not resort.
              required:
                - name
                - address1
                - address2
                - address3
                - telephone
              properties:
                name:
                  type: [string, "null"]
                  description: Name of the accommodation from which the passenger will be picked up.
                  example: "Le Meridien Barcelona"
                address1:
                  type: [string, "null"]
                  description: The first line of the address of the accommodation or building at which the passenger will be picked up.
                  example: "La Rambla 111"
                address2:
                  type: [string, "null"]
                  description: The second line of the address of the accommodation or building at which the passenger will be picked up.
                  example: "Carrer del Pintor Fortuny"
                address3:
                  type: [string, "null"]
                  description: The third line of the address of the accommodation or building at which the passenger will be picked up.
                  example: "Barcelona"
                telephone:
                  type: [string, "null"]
                  description: The telephone number of the accommodation or building at which the passengers will be picked up and dropped off. (Depending on whether it is included in the 'arrival' or 'departure' section.)
                  example: "34 933 187301"
            newpickupaddress:
              $ref: '#/components/schemas/newpickupaddress'
            shipname:
              type: [string, "null"]
              description: The name of the cruise ship or ferry on which the passenger will be travelling on, when the pickup is from a port. This will be null if the gateway is not port.
              example: "Silver Seas"
            cruiseline:
              type: [string, "null"]
              description: The name of the cruise line operating the ship on which the passenger will be travelling on, when the pickup is from a port. This will be null if the gateway is not port.
              example: "P&O Cruises"
            trainnumber:
              type: [string, "null"]
              description: The service number of the bus or coach on which the passenger will be travelling, when the pickup is from a bus station. This will be null if the gateway is not bus.
              example: "4567787632"
            busnumber:
              type: [string, "null"]
              description: The service number of the bus or coach on which the passenger will be travelling, when the pickup is from a bus station. This will be null if the gateway is not bus.
              example: "700"
            flightorigingateway:
              type: [object, "null"]
              description: This is the gateway which the passenger originated their journey from. For example if their transfer is from Barcelona Airport to a Barcelona Resort, these fields will be related to where their flight originated from e.g. London Gatwick. This will be null if the pickup gateway is not airport.
              required:
                - type
                - name
                - code
              properties:
                type:
                  type: string
                  description: This is the gateway type which the passenger originated their journey from. This will be Airport or null.
                  enum:
                    - "Airport"
                  example: Airport
                name:
                  type: string
                  description: This is the gateway name from which the passenger originated their journey from. This will be null if they did not originate from an airport.
                  example: "London Gatwick"
                code:
                  type: string
                  description: This is the gateway code from which the passenger originated their journey from. This will be null if they did not originate from an airport.
                  example: "LGW"
        dropoff:
          type: object
          description: These are the details of the drop-off.
          required:
            - gateway
            - flightnumber
            - accommodation
            - shipname
            - cruiseline
            - trainnumber
            - busnumber
            - flightdestinationgateway
          properties:
            gateway:
              type: object
              required:
                - type
                - name
                - code
              properties:
                type:
                  type: string
                  description: The type of gateway at which the passenger will be dropped off.
                  enum:
                    - "Airport"
                    - "Resort"
                    - "Port"
                    - "Train Station"
                    - "Bus Station"
                  example: "Airport"
                name:
                  type: string
                  description: The name of the specific gateway (airport, resort, port, train station, or bus station) at which the passenger will be dropped off.
                  example: "Barcelona-El Prat Airport"
                code:
                  type: string
                  description: The code of the gateway at which the passenger will be dropped off. For airports, this will be the 3-letter IATA code. For resorts, this will be the resort ID. For ports, train stations and bus stations, this will be an internal code.
                  example: "BCN"
            flightnumber:
              type: [string, "null"]
              description: The flight number of the passengers ongoing flight. This will be null if the gateway is not airport.
              example: "LS271"
            accommodation:
              type: [object, "null"]
              description: Details of the accommodation at which the passenger will be dropped off. This will be null if the dropoff gateway is not resort.
              required:
                - name
                - address1
                - address2
                - address3
                - telephone
              properties:
                name:
                  type: [string, "null"]
                  description: Name of the accommodation at which the passenger will be dropped off.
                  example: "Le Meridien Barcelona"
                address1:
                  type: [string, "null"]
                  description: The first line of the address of the accommodation or building at which the passenger will be dropped off.
                  example: "La Rambla 111"
                address2:
                  type: [string, "null"]
                  description: The second line of the address of the accommodation or building at which the passenger will be dropped off.
                  example: "Carrer del Pintor Fortuny"
                address3:
                  type: [string, "null"]
                  description: The third line of the address of the accommodation or building at which the passenger will be dropped off.
                  example: "Barcelona"
                telephone:
                  type: [string, "null"]
                  description: TThe telephone number of the accommodation or building at which the passenger will be dropped off.
                  example: "34 933 187301"
            shipname:
              type: [string, "null"]
              description: The name of the cruise ship or ferry on which the passenger will be travelling on, when the drop-off is at a port. This will be null if the gateway is not port.
              example: "Silver Seas"
            cruiseline:
              type: [string, "null"]
              description: The name of the cruise line operating the ship on which the passenger will be travelling on, when the drop-off is at a port. This will be null if the gateway is not port.
              example: "P&O Cruises"
            trainnumber:
              type: [string, "null"]
              description: The service number of the train on which the passenger will be travelling on, when the drop-off is at a train station. This will be null if the gateway is not train station.
              example: "4567"
            busnumber:
              type: [string, "null"]
              description: The service number of the bus or coach on which the passenger will be travelling, when the drop-off is at a bus station. This will be null if the gateway is not bus station.
              example: "700"
            flightdestinationgateway:
              type: [object, "null"]
              description: This is the destination gateway at which the passenger will complete their journey. For example, if their transfer is from a Barcelona Resort to Barcelona Airport, these fields will be related to where their ongoing flight will end e.g. London Gatwick. This will be null if drop-off gateway is not airport.
              required:
                - type
                - name
                - code
              properties:
                type:
                  type: string
                  description: This is the gateway type to which the passenger is travelling on to as their end destination. This will be Airport or null.
                  example: Airport
                  enum:
                    - "Airport"
                name:
                  type: string
                  description: This is the gateway name to which the passenger is travelling on to as their end destination. This will be null if they are not travelling on to an airport.
                  example: "London Gatwick"
                code:
                  type: string
                  description: This is the gateway code to which the passenger is travelling on to as their end destination. This will be null if they are not travelling on to an airport.
                  example: "LGW"
        optionalextras:
          $ref: '#/components/schemas/optional-extras'
    departure:
      x-version: '2026-A'
      type: object
      required:
        - pickup
        - dropoff
        - optionalextras
      properties:
        pickup:
          type: object
          description: These are the details of the pickup.
          required:
            - pickupdate
            - gateway
            - flightnumber
            - accommodation
            - shipname
            - cruiseline
            - trainnumber
            - busnumber
          properties:
            pickupdate:
              type: string
              format: date-time
              description: The date and time at which the passenger will be picked up, in the following format 'YYYY-MM-DDTHH:MM' (in the local time zone of the transfer).
              example: "2026-06-20T11:15:00"
            gateway:
              type: object
              required:
                - type
                - name
                - code
              properties:
                type:
                  type: string
                  description: The type of gateway from which the passenger will be picked up.
                  enum:
                    - "Airport"
                    - "Port"
                    - "Train Station"
                    - "Bus Station"
                    - "Resort"
                  example: "Airport"
                name:
                  type: string
                  description: The name of the specific gateway (airport, resort, port, train station, or bus station) from which the passenger will be picked up.
                  example: "Barcelona-El Prat Airport"
                code:
                  type: string
                  description: The code of the gateway from which the passenger will be picked up. For airports, this will be the 3-letter IATA code. For resorts, this will be the resort ID. For ports, train stations and bus stations, this will be an internal code.
                  example: "BCN"
            flightnumber:
              type: [string, "null"]
              description: The flight number of the passengers incoming flight. This will be null if the gateway is not airport.
              example: "LS271"
            accommodation:
              type: [object, "null"]
              description: Details of the accommodation from which the passenger will be picked up. This will be null if the gateway is not resort.
              required:
                - name
                - address1
                - address2
                - address3
                - telephone
              properties:
                name:
                  type: [string, "null"]
                  description: Name of the accommodation from which the passenger will be picked up.
                  example: "Le Meridien Barcelona"
                address1:
                  type: [string, "null"]
                  description: The first line of the address of the accommodation or building at which the passenger will be picked up.
                  example: "La Rambla 111"
                address2:
                  type: [string, "null"]
                  description: The second line of the address of the accommodation or building at which the passenger will be picked up.
                  example: "Carrer del Pintor Fortuny"
                address3:
                  type: [string, "null"]
                  description: The third line of the address of the accommodation or building at which the passenger will be picked up.
                  example: "Barcelona"
                telephone:
                  type: [string, "null"]
                  description: The telephone number of the accommodation or building at which the passengers will be picked up and dropped off. (Depending on whether it is included in the 'arrival' or 'departure' section.)
                  example: "34 933 187301"
            newpickupaddress:
              $ref: '#/components/schemas/newpickupaddress'
            shipname:
              type: [string, "null"]
              description: The name of the cruise ship or ferry on which the passenger will be travelling on, when the pickup is from a port. This will be null if the gateway is not port.
              example: "Silver Seas"
            cruiseline:
              type: [string, "null"]
              description: The name of the cruise line operating the ship on which the passenger will be travelling on, when the pickup is from a port. This will be null if the gateway is not port.
              example: "P&O Cruises"
            trainnumber:
              type: [string, "null"]
              description: The service number of the train on which the passenger will be travelling on, when the pickup is from a train station. This will be null if the gateway is not train.
              example: "4567787632"
            busnumber:
              type: [string, "null"]
              description: The service number of the bus or coach on which the passenger will be travelling, when the pickup is from a bus station. This will be null if the gateway is not bus.
              example: "700"
            flightorigingateway:
              type: [object, "null"]
              description: This is the gateway which the passenger originated their journey from. For example if their transfer is from Barcelona Airport to a Barcelona Resort, these fields will be related to where their flight originated from e.g. London Gatwick. This will be null if the pickup gateway is not airport.
              required:
                - type
                - name
                - code
              properties:
                type:
                  type: string
                  description: This is the gateway type which the passenger originated their journey from. This will be Airport or null.
                  enum:
                    - "Airport"
                  example: Airport
                name:
                  type: string
                  description: This is the gateway name from which the passenger originated their journey from. This will be null if they did not originate from an airport.
                  example: "London Gatwick"
                code:
                  type: string
                  description: This is the gateway code from which the passenger originated their journey from. This will be null if they did not originate from an airport.
                  example: "LGW"
        dropoff:
          type: object
          description: These are the details of the drop-off.
          required:
            - departuredate
            - gateway
            - flightnumber
            - accommodation
            - shipname
            - cruiseline
            - trainnumber
            - busnumber
            - flightdestinationgateway
          properties:
            departuredate:
              type: string
              format: date-time
              description: The departure date and time of the passengers ongoing transport (e.g. flight departure time), in the following format 'YYYY-MM-DDTHH:MM' (in the local time zone of the transfer).
              example: "2026-06-20T11:15:00"
            gateway:
              type: object
              required:
                - type
                - name
                - code
              properties:
                type:
                  type: string
                  description: The type of gateway at which the passenger will be dropped off.
                  enum:
                    - "Airport"
                    - "Port"
                    - "Train Station"
                    - "Bus Station"
                    - "Resort"
                  example: "Airport"
                name:
                  type: string
                  description: The name of the specific gateway (airport, resort, port, train station, or bus station) at which the passenger will be dropped off.
                  example: "Barcelona-El Prat Airport"
                code:
                  type: string
                  description: The code of the gateway at which the passenger will be dropped off. For airports, this will be the 3-letter IATA code. For resorts, this will be the resort ID. For ports, train stations and bus stations, this will be an internal code.
                  example: "BCN"
            flightnumber:
              type: [string, "null"]
              description: The flight number of the passengers ongoing flight. This will be null if the gateway is not airport.
              example: "LS271"
            accommodation:
              type: [object, "null"]
              description: Details of the accommodation at which the passenger will be dropped off. This will be null if the dropoff gateway is not resort.
              required:
                - name
                - address1
                - address2
                - address3
                - telephone
              properties:
                name:
                  type: [string, "null"]
                  description: Name of the accommodation at which the passenger will be dropped off.
                  example: "Le Meridien Barcelona"
                address1:
                  type: [string, "null"]
                  description: The first line of the address of the accommodation or building at which the passenger will be dropped off.
                  example: "La Rambla 111"
                address2:
                  type: [string, "null"]
                  description: The second line of the address of the accommodation or building at which the passenger will be dropped off.
                  example: "Carrer del Pintor Fortuny"
                address3:
                  type: [string, "null"]
                  description: The third line of the address of the accommodation or building at which the passenger will be dropped off.
                  example: "Barcelona"
                telephone:
                  type: [string, "null"]
                  description: TThe telephone number of the accommodation or building at which the passenger will be dropped off.
                  example: "34 933 187301"
            shipname:
              type: [string, "null"]
              description: The name of the cruise ship or ferry on which the passenger will be travelling on, when the drop-off is at a port. This will be null if the gateway is not port.
              example: "Silver Seas"
            cruiseline:
              type: [string, "null"]
              description: The name of the cruise line operating the ship on which the passenger will be travelling on, when the drop-off is at a port. This will be null if the gateway is not port.
              example: "P&O Cruises"
            trainnumber:
              type: [string, "null"]
              description: The service number of the train on which the passenger will be travelling on, when the drop-off is at a train station. This will be null if the gateway is not train station.
              example: "4567"
            busnumber:
              type: [string, "null"]
              description: The service number of the bus or coach on which the passenger will be travelling, when the drop-off is at a bus station. This will be null if the gateway is not bus station.
              example: "700"
            flightdestinationgateway:
              type: [object, "null"]
              description: This is the destination gateway at which the passenger will complete their journey. For example, if their transfer is from a Barcelona Resort to Barcelona Airport, these fields will be related to where their ongoing flight will end e.g. London Gatwick. This will be null if drop-off gateway is not airport.
              required:
                - type
                - name
                - code
              properties:
                type:
                  type: string
                  enum:
                    - Airport
                  description: This is the gateway type to which the passenger is travelling on to as their end destination. This will be Airport or null.
                  example: Airport
                name:
                  type: string
                  description: This is the gateway name to which the passenger is travelling on to as their end destination. This will be null if they are not travelling on to an airport.
                  example: London Gatwick
                code:
                  type: string
                  description: This is the gateway code to which the passenger is travelling on to as their end destination. This will be null if they are not travelling on to an airport.
                  example: "LGW"
        optionalextras:
          $ref: '#/components/schemas/optional-extras'
    tailormade:
      x-version: '2026-A'
      type: object
      required:
        - countrycode
        - additionalinfo
        - pickup
        - dropoff
      properties:
        countrycode:
          type: string
          description: This is the country code of the transfer.
          example: "ES"
        additionalinfo:
          type: string
          description: This will include any additional information against the tailormade booking, such as specific requirements for the vehicle.
          example: "Please provide Mercedes vehicle for the transfer"
        pickup:
          type: object
          description: These are the details of the pickup.
          required:
            - transferdate
            - gateway
            - address
          properties:
            transferdate:
              type: string
              format: date-time
              description: The date and time when the passenger will be picked up for their transfer, in the following format ‘YYYY-MM-DDTHH:MM:SS’ (in the local time zone of the transfer).
              example: "2026-01-25T10:30:00"
            gateway:
              type: [object, "null"]
              description: Details of the gateway at which the passenger will be picked up. This will be null if the pickup point is not an airport, port or train station.
              required:
                - type
                - code
                - name
              properties:
                type:
                  type: string
                  enum:
                    - Airport
                    - Port
                    - Train Station
                  description: The type of gateway at which the passenger will be picked up if the pickup point is a gateway. This will be null for tailormade bookings if the pickup point is not an Airport, Port or Train Station.
                  example: "Airport"
                code:
                  type: string
                  description: The name of the specific gateway at which the passenger will be picked up. This will be null if the pickup point is not an airport, port or train station.
                  example: "Barcelona-El Prat Airport"
                name:
                  type: string
                  description: The code of the gateway at which the passenger will be picked up. For airports, this will be the 3-letter IATA code. For ports and train stations, this will be an internal code. This will be null if the pickup point is not an airport, port or train station.
                  example: "BCN"
            address:
              type: object
              description: Details of the address from which the passenger will be picked up.
              required:
                - line1
                - line2
                - city
                - postcode
              properties:
                line1:
                  type: [string, "null"]
                  description: The first line of the address at which the passenger will be picked up.
                  example: "Camp Nou"
                line2:
                  type: [string, "null"]
                  description: The second line of the address at which the passenger will be picked up.
                  example: "C/Aristedes Maillol"
                city:
                  type: [string, "null"]
                  description: The city of where the passenger will be picked up.
                  example: "Barcelona"
                postcode:
                  type: [string, "null"]
                  description: The postcode of where the passenger will be picked up.
                  example: "08028"
        dropoff:
          type: object
          description: These are the details of the drop-off.
          required:
            - gateway
            - address
          properties:
            gateway:
              type: [object, "null"]
              description: Details of the gateway at which the passenger will be dropped off. This will be null if the dropoff point is not an airport, port or train station.
              required:
                - type
                - code
                - name
              properties:
                type:
                  type: string
                  enum:
                    - Airport
                    - Port
                    - Train Station
                  description: The type of gateway at which the passenger will be dropped off if the drop-off point is a gateway. This will be null for tailormade bookings if the drop-off point is not an Airport, Port or Train Station.
                  example: "Airport"
                code:
                  type: string
                  description: The name of the specific gateway at which the passenger will be dropped off. This will be null if the drop-off point is not an airport, port or train station.
                  example: "Barcelona-El Prat Airport"
                name:
                  type: string
                  description: The code of the gateway at which the passenger will be dropped off. For airports, this will be the 3-letter IATA code. For ports and train stations, this will be an internal code. This will be null if the drop-off point is not an airport, port or train station.
                  example: "BCN"
            address:
              type: object
              description: Details of the address at which the passenger will be dropped off.
              required:
                - line1
                - line2
                - city
                - postcode
              properties:
                line1:
                  type: [string, "null"]
                  description: The first line of the address at which the passenger will be dropped off.
                  example: "Basilica de la Sagrada"
                line2:
                  type: [string, "null"]
                  description: The second line of the address at which the passenger will be dropped off.
                  example: "Carrer de Mallorca"
                city:
                  type: [string, "null"]
                  description: The city of where the passenger will be dropped off.
                  example: "Barcelona"
                postcode:
                  type: [string, "null"]
                  description: The postcode of where the passenger will be dropped off.
                  example: "08013"
    optional-extras:
      type: [array, "null"]
      xml:
        wrapped: true
      description: Optional extras Available from Version 2021-09 or later only. This will be null if no optional extras.
      items:
        type: object
        xml:
          name: optionalextra
        required:
          - extra
          - quantity
        properties:
          extra:
            type: string
            description: Description of the extra
            example: Child Seat (9 - 18kg, 20 - 40lb, 9mths - 4yr)
          quantity:
            type: integer
            description: Quantity of the extra
            example: 2
    newpickupaddress:
      x-version: '2026-A'
      type: [object, "null"]
      description: The details of the updated pickup address. This will be null if the pickup gateway is not resort or if the address has not been updated.
      properties:
        location:
          type: [string, "null"]
          description: The updated name of the pickup point at which the passengers will be picked up.
          example: Outside hotel, by bus stop A14
        address1:
          type: [string, "null"]
          description: The updated first line of the address of the accommodation or building at which the passenger will be picked up.
          example: CL LEPANTO 19
        address2:
          type: [string, "null"]
          description: The updated second line of the address of the accommodation or building at which the passenger will be picked up.
          example: Benidorm
        address3:
          type: [string, "null"]
          description: The updated third line of the address of the accommodation or building at which the passenger will be picked up.
          example: Playa Levante
  examples:
    booking-single-outbound:
      x-version: '2026-A'
      value:
        booking:
          general:
            ref: "TEST-26767397"
            bookingreference: "J4U78T"
            orderref: "RHGF-32546"
            status: "PCON"
            bookingtype: "Arrival"
            leadpassenger:
              name: "Dr David Black"
              title: "Dr"
              firstname: "David"
              lastname: "Black"
              telephone: "02031118877"
            vehicle:
              name: "Private Standard Car 1 - 3"
              unittype: "vehicle"
              unitcount: 1
            passengers:
              adults: 2
              children: 1
              infants: 0
            language: "en"
            datebooked: "2026-01-01T15:46:40"
            datelastmodified: "2026-02-07T21:18:33"
            datecancelled: null
          costs:
            currencycode: "EUR"
            decimalplaces: 2
            transfer: 12780
            optionalextras: 1000
            credits: 0
          arrival:
            pickup:
              arrivaldate: "2026-07-03T07:35:00"
              gateway:
                type: "Airport"
                name: "Barcelona Airport"
                code: "BCN"
              flightnumber: "VYY7832"
              accommodation: null
              shipname: null
              cruiseline: null
              trainnumber: null
              busnumber: null
              flightorigingateway:
                type: "Airport"
                name: "London Gatwick Airport"
                code: "LGW"
            dropoff:
              gateway:
                type: "Resort"
                name: "Barcelona city centre"
                code: "352"
              flightnumber: null
              accommodation:
                name: "Le Meridien Barcelona"
                address1: "La Rambla 111"
                address2: "Carrer del Pinto Fortuny"
                address3: "Barcelona"
                telephone: "34 933 187301"
              shipname: null
              cruiseline: null
              trainnumber: null
              busnumber: null
              flightdestinationgateway: null
            optionalextras:
              - extra: "Child Seat (9 - 18kg, 20 - 40lb, 9mths - 4yr)"
                quantity: 1
          notes: "https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26767397"
          hasopenquery: ""
        warnings: []
    booking-single-inbound:
      x-version: '2026-A'
      value:
        booking:
          general:
            ref: "TEST-26569027"
            bookingreference: "GT56KD"
            orderref: null
            status: "PCON"
            bookingtype: "Departure"
            leadpassenger:
              name: "Miss Rachel Green"
              title: "Miss"
              firstname: "Rachel"
              lastname: "Green"
              telephone: "0011 987 6543"
            vehicle:
              name: "Shared Standard Shuttle"
              unittype: "passenger"
              unitcount: 3
            passengers:
              adults: 2
              children: 1
              infants: 0
            language: "en"
            datebooked: "2026-01-07T21:18:33"
            datelastmodified: "2026-03-17T12:35:28"
            datecancelled: null
          costs:
            currencycode: "EUR"
            decimalplaces: 2
            transfer: 6390
            optionalextras: 0
            credits: 500
          departure:
            pickup:
              pickupdate: "2026-08-06T23:40:00"
              gateway:
                type: "Resort"
                name: "Copenhagen City Centre"
                code: "4375"
              flightnumber: null
              accommodation:
                name: "Hotel Copenhagen"
                address1: "Egilsgade 33"
                address2: "2300 Kobenhavn"
                address3: null
                telephone: "+45 32 96 22 22"
              shipname: null
              cruiseline: null
              trainnumber: null
              busnumber: null
              flightorigingateway: null
            dropoff:
              departuredate: "2026-08-07T02:35:00"
              gateway:
                type: "Airport"
                name: "Copenhagen Airport"
                code: "CPH"
              flightnumber: "NSZ3513"
              accommodation: null
              shipname: null
              cruiseline: null
              trainnumber: null
              busnumber: null
              flightdestinationgateway:
                type: "Airport"
                name: "London Gatwick Airport"
                code: "LGW"
            optionalextras: null
          notes: "https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26569027"
          hasopenquery: "Y"
        warnings: []
    booking-single-return:
      x-version: '2026-A'
      value:
        booking:
          general:
            ref: "TEST-23558153"
            bookingreference: "E3JQFE"
            orderref: "TF6837248"
            status: "PCON"
            bookingtype: "Return transfer"
            leadpassenger:
              name: "Mrs Emily White"
              title: "Mrs"
              firstname: "Emily"
              lastname: "White"
              telephone: "+33 654345654"
            vehicle:
              name: "Shared Standard Shuttle"
              unittype: "passenger"
              unitcount: 4
            passengers:
              adults: 2
              children: 2
              infants: 0
            language: "en"
            datebooked: "2026-02-05T01:18:17"
            datelastmodified: "2026-02-05T01:18:17"
            datecancelled: null
          costs:
            currencycode: "EUR"
            decimalplaces: 2
            transfer: 6780
            optionalextras: 0
            credits: -1000
          arrival:
            pickup:
              arrivaldate: "2026-06-20T11:15:00"
              gateway:
                type: "Airport"
                name: "Melbourne Tullamarine Airport"
                code: "MEL"
              flightnumber: "QFA30"
              accommodation: null
              shipname: null
              cruiseline: null
              trainnumber: null
              busnumber: null
              flightorigingateway:
                type: "Airport"
                name: "London Heathrow Airport"
                code: "LHR"
            dropoff:
              gateway:
                type: "Resort"
                name: "Melbourne city centre"
                code: "6065"
              flightnumber: null
              accommodation:
                name: "Atlantis Hotel"
                address1: "300 Spencer Street"
                address2: "Melbourne"
                address3: "VIC 3000"
                telephone: "613 9600 0019"
              shipname: null
              cruiseline: null
              trainnumber: null
              busnumber: null
              flightdestinationgateway: null
            optionalextras: null
          departure:
            pickup:
              pickupdate: "2026-08-06T23:40:00"
              gateway:
                type: "Resort"
                name: "Melbourne city centre"
                code: "344"
              flightnumber: null
              accommodation:
                name: "Atlantis Hotel"
                address1: "300 Spencer Street"
                address2: "Melbourne"
                address3: "VIC 3000"
                telephone: "613 9600 0019"
              shipname: null
              cruiseline: null
              trainnumber: null
              busnumber: null
              flightorigingateway: null
            dropoff:
              departuredate: "2026-08-07T02:35:00"
              gateway:
                type: "Airport"
                name: "Melbourne Tullamarine Airport"
                code: "MEL"
              flightnumber: "CPA254"
              accommodation: null
              shipname: null
              cruiseline: null
              trainnumber: null
              busnumber: null
              flightdestinationgateway:
                type: "Airport"
                name: "London Heathrow Airport"
                code: "LHR"
            optionalextras: null
          notes: "https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-23558153"
          hasopenquery: ""
        warnings: []
    booking-single-tailormade:
      x-version: '2026-A'
      value:
        booking:
          general:
            ref: "TEST-26738511"
            bookingreference: "TM-191413"
            orderref: null
            status: "PCON"
            bookingtype: "Tailormade"
            leadpassenger:
              name: "Mr James Brown"
              title: "Mr"
              firstname: "James"
              lastname: "Brown"
              telephone: "+447123456789"
            vehicle:
              name: "Private Transfer"
              unittype: "vehicle"
              unitcount: 1
            passengers:
              adults: 2
              children: 1
              infants: 1
            language: "en"
            datebooked: "2026-01-07T21:18:33"
            datelastmodified: null
            datecancelled: null
          costs:
            currencycode: "EUR"
            decimalplaces: 2
            transfer: 15000
            optionalextras: 0
            credits: 0
          tailormade:
            countrycode: "US"
            additionalinfo: "Additional notes for tailormade transfer"
            pickup:
              transferdate: "2026-08-21T15:00:00"
              gateway: null
              address:
                line1: "82 Cloudcrest"
                line2: ""
                city: "Aliso Viejo"
                postcode: "CA 92656"
            dropoff:
              gateway: null
              address:
                line1: "One Ritz Carlton Dr"
                line2: ""
                city: "Dana Point"
                postcode: "CA 92629"
          notes: "https://suppliers-internal.mitchw.ireland.dev.htxg.it/bookings/notes/TEST-26738511"
          hasopenquery: ""
        warnings: []
    booking-single-outbound-xml:
      x-version: '2026-A'
      value: |-
        <?xml version="1.0"?>
        <response>
            <booking>
                <general>
                    <ref>TEST-26767397</ref>
                    <bookingreference>J4U78T</bookingreference>
                    <orderref>RHGF-32546</orderref>
                    <status>PCON</status>
                    <bookingtype>Arrival</bookingtype>
                    <leadpassenger>
                        <name>Dr David Black</name>
                        <title>Dr</title>
                        <firstname>David</firstname>
                        <lastname>Black</lastname>
                        <telephone>02031118877</telephone>
                    </leadpassenger>
                    <vehicle>
                        <name>Private Standard Car 1 - 3</name>
                        <unittype>vehicle</unittype>
                        <unitcount>1</unitcount>
                    </vehicle>
                    <passengers>
                        <adults>2</adults>
                        <children>1</children>
                        <infants>0</infants>
                    </passengers>
                    <language>en</language>
                    <datebooked>2026-01-01T15:46:40</datebooked>
                    <datelastmodified>2026-02-07T21:18:33</datelastmodified>
                    <datecancelled/>
                </general>
                <costs>
                    <currencycode>EUR</currencycode>
                    <decimalplaces>2</decimalplaces>
                    <transfer>12780</transfer>
                    <optionalextras>1000</optionalextras>
                    <credits>0</credits>
                </costs>
                <arrival>
                    <pickup>
                        <arrivaldate>2026-07-03T07:35:00</arrivaldate>
                        <gateway>
                            <type>Airport</type>
                            <name>Barcelona Airport</name>
                            <code>BCN</code>
                        </gateway>
                        <flightnumber>VYY7832</flightnumber>
                        <accommodation/>
                        <shipname/>
                        <cruiseline/>
                        <trainnumber/>
                        <busnumber/>
                        <flightorigingateway>
                            <type>Airport</type>
                            <name>London Gatwick Airport</name>
                            <code>LGW</code>
                        </flightorigingateway>
                    </pickup>
                    <dropoff>
                        <gateway>
                            <type>Resort</type>
                            <name>Barcelona city centre</name>
                            <code>352</code>
                        </gateway>
                        <flightnumber/>
                        <accommodation>
                            <name>Le Meridien Barcelona</name>
                            <address1>La Rambla 111</address1>
                            <address2>Carrer del Pinto Fortuny</address2>
                            <address3>Barcelona</address3>
                            <telephone>34 933 187301</telephone>
                        </accommodation>
                        <shipname/>
                        <cruiseline/>
                        <trainnumber/>
                        <busnumber/>
                        <flightdestinationgateway/>
                    </dropoff>
                    <optionalextras>
                        <optionalextra>
                            <extra>Child Seat (9 - 18kg, 20 - 40lb, 9mths - 4yr)</extra>
                            <quantity>1</quantity>
                        </optionalextra>
                    </optionalextras>
                </arrival>
                <notes>https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26767397</notes>
                <hasopenquery/>
            </booking>
            <warnings/>
        </response>
    booking-single-inbound-xml:
      x-version: '2026-A'
      value: |-
        <?xml version="1.0"?>
        <response>
            <booking>
                <general>
                    <ref>TEST-26569027</ref>
                    <bookingreference>GT56KD</bookingreference>
                    <orderref/>
                    <status>PCON</status>
                    <bookingtype>Departure</bookingtype>
                    <leadpassenger>
                        <name>Miss Rachel Green</name>
                        <title>Miss</title>
                        <firstname>Rachel</firstname>
                        <lastname>Green</lastname>
                        <telephone>0011 987 6543</telephone>
                    </leadpassenger>
                    <vehicle>
                        <name>Shared Standard Shuttle</name>
                        <unittype>passenger</unittype>
                        <unitcount>3</unitcount>
                    </vehicle>
                    <passengers>
                        <adults>2</adults>
                        <children>1</children>
                        <infants>0</infants>
                    </passengers>
                    <language>en</language>
                    <datebooked>2026-01-07T21:18:33</datebooked>
                    <datelastmodified>2026-03-17T12:35:28</datelastmodified>
                    <datecancelled/>
                </general>
                <costs>
                    <currencycode>EUR</currencycode>
                    <decimalplaces>2</decimalplaces>
                    <transfer>6390</transfer>
                    <optionalextras>0</optionalextras>
                    <credits>500</credits>
                </costs>
                <departure>
                    <pickup>
                        <pickupdate>2026-08-06T23:40:00</pickupdate>
                        <gateway>
                            <type>Resort</type>
                            <name>Copenhagen City Centre</name>
                            <code>4375</code>
                        </gateway>
                        <flightnumber/>
                        <accommodation>
                            <name>Hotel Copenhagen</name>
                            <address1>Egilsgade 33</address1>
                            <address2>2300 Kobenhavn</address2>
                            <address3/>
                            <telephone>+45 32 96 22 22</telephone>
                        </accommodation>
                        <shipname/>
                        <cruiseline/>
                        <trainnumber/>
                        <busnumber/>
                        <flightorigingateway/>
                    </pickup>
                    <dropoff>
                        <departuredate>2026-08-07T02:35:00</departuredate>
                        <gateway>
                            <type>Airport</type>
                            <name>Copenhagen Airport</name>
                            <code>CPH</code>
                        </gateway>
                        <flightnumber>NSZ3513</flightnumber>
                        <accommodation/>
                        <shipname/>
                        <cruiseline/>
                        <trainnumber/>
                        <busnumber/>
                        <flightdestinationgateway>
                            <type>Airport</type>
                            <name>London Gatwick Airport</name>
                            <code>LGW</code>
                        </flightdestinationgateway>
                    </dropoff>
                    <optionalextras/>
                </departure>
                <notes>https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-26569027</notes>
                <hasopenquery>Y</hasopenquery>
            </booking>
            <warnings/>
        </response>
    booking-single-return-xml:
      x-version: '2026-A'
      value: |-
        <?xml version="1.0"?>
        <response>
            <booking>
                <general>
                    <ref>TEST-23558153</ref>
                    <bookingreference>E3JQFE</bookingreference>
                    <orderref>TF6837248</orderref>
                    <status>PCON</status>
                    <bookingtype>Return transfer</bookingtype>
                    <leadpassenger>
                        <name>Mrs Emily White</name>
                        <title>Mrs</title>
                        <firstname>Emily</firstname>
                        <lastname>White</lastname>
                        <telephone>+33 654345654</telephone>
                    </leadpassenger>
                    <vehicle>
                        <name>Shared Standard Shuttle</name>
                        <unittype>passenger</unittype>
                        <unitcount>4</unitcount>
                    </vehicle>
                    <passengers>
                        <adults>2</adults>
                        <children>2</children>
                        <infants>0</infants>
                    </passengers>
                    <language>en</language>
                    <datebooked>2026-02-05T01:18:17</datebooked>
                    <datelastmodified>2026-02-05T01:18:17</datelastmodified>
                    <datecancelled/>
                </general>
                <costs>
                    <currencycode>EUR</currencycode>
                    <decimalplaces>2</decimalplaces>
                    <transfer>6780</transfer>
                    <optionalextras>0</optionalextras>
                    <credits>-1000</credits>
                </costs>
                <arrival>
                    <pickup>
                        <arrivaldate>2026-06-20T11:15:00</arrivaldate>
                        <gateway>
                            <type>Airport</type>
                            <name>Melbourne Tullamarine Airport</name>
                            <code>MEL</code>
                        </gateway>
                        <flightnumber>QFA30</flightnumber>
                        <accommodation/>
                        <shipname/>
                        <cruiseline/>
                        <trainnumber/>
                        <busnumber/>
                        <flightorigingateway>
                            <type>Airport</type>
                            <name>London Heathrow Airport</name>
                            <code>LHR</code>
                        </flightorigingateway>
                    </pickup>
                    <dropoff>
                        <gateway>
                            <type>Resort</type>
                            <name>Melbourne city centre</name>
                            <code>6065</code>
                        </gateway>
                        <flightnumber/>
                        <accommodation>
                            <name>Atlantis Hotel</name>
                            <address1>300 Spencer Street</address1>
                            <address2>Melbourne</address2>
                            <address3>VIC 3000</address3>
                            <telephone>613 9600 0019</telephone>
                        </accommodation>
                        <shipname/>
                        <cruiseline/>
                        <trainnumber/>
                        <busnumber/>
                        <flightdestinationgateway/>
                    </dropoff>
                    <optionalextras/>
                </arrival>
                <departure>
                    <pickup>
                        <pickupdate>2026-08-06T23:40:00</pickupdate>
                        <gateway>
                            <type>Resort</type>
                            <name>Melbourne city centre</name>
                            <code>344</code>
                        </gateway>
                        <flightnumber/>
                        <accommodation>
                            <name>Atlantis Hotel</name>
                            <address1>300 Spencer Street</address1>
                            <address2>Melbourne</address2>
                            <address3>VIC 3000></address3>
                            <telephone>613 9600 0019</telephone>
                        </accommodation>
                        <shipname/>
                        <cruiseline/>
                        <trainnumber/>
                        <busnumber/>
                        <flightorigingateway/>
                    </pickup>
                    <dropoff>
                        <departuredate>2026-08-07T02:35:00</departuredate>
                        <gateway>
                            <type>Airport</type>
                            <name>Melbourne Tullamarine Airport</name>
                            <code>MEL</code>
                        </gateway>
                        <flightnumber>CPA254</flightnumber>
                        <accommodation/>
                        <shipname/>
                        <cruiseline/>
                        <trainnumber/>
                        <busnumber/>
                        <flightdestinationgateway>
                            <type>Airport</type>
                            <name>London Heathrow Airport</name>
                            <code>LHR</code>
                        </flightdestinationgateway>
                    </dropoff>
                    <optionalextras/>
                </departure>
                <notes>https://suppliers.mitchw.htgdev.cloud/bookings/notes/TEST-23558153</notes>
                <hasopenquery/>>
            </booking>
            <warnings/>
        </response>
    booking-single-tailormade-xml:
      x-version: '2026-A'
      value: |-
        <?xml version="1.0"?>
        <response>
            <booking>
                <general>
                    <ref>HTXA-26729681</ref>
                    <bookingreference>TM-186718</bookingreference>
                    <orderref/>
                    <status>ACON</status>
                    <bookingtype>Tailormade</bookingtype>
                    <leadpassenger>
                        <name>Mr Chris Smith26729681</name>
                        <title>Mr</title>
                        <firstname>Chris</firstname>
                        <lastname>Smith26729681</lastname>
                        <telephone>07123 26729681</telephone>
                    </leadpassenger>
                    <vehicle>
                        <name>Private Standard Coach</name>
                        <unittype>vehicle</unittype>
                        <unitcount>1</unitcount>
                    </vehicle>
                    <passengers>
                        <adults>33</adults>
                        <children>0</children>
                        <infants>0</infants>
                    </passengers>
                    <language>en</language>
                    <datebooked>2025-09-03T12:39:03</datebooked>
                    <datelastmodified/>
                    <datecancelled/>
                </general>
                <costs>
                    <currencycode>EUR</currencycode>
                    <decimalplaces>2</decimalplaces>
                    <transfer>55000</transfer>
                    <optionalextras>0</optionalextras>
                    <credits>0</credits>
                </costs>
                <tailormade>
                    <countrycode>GR</countrycode>
                    <additionalinfo>t&#xE9;r&#xE9;</additionalinfo>
                    <pickup>
                        <transferdate>2025-10-30T10:00:00</transferdate>
                        <gateway/>
                        <address>
                            <line1>Acropolis Athens</line1>
                            <line2/>
                            <city>Athens</city>
                            <postcode/>
                        </address>
                    </pickup>
                    <dropoff>
                        <gateway/>
                        <address>
                            <line1>Athens International Airport</line1>
                            <line2/>
                            <city>Athens</city>
                            <postcode/>
                        </address>
                    </dropoff>
                </tailormade>
                <notes>https://suppliers-internal.mitchw.ireland.dev.htxg.it/bookings/notes/HTXA-26729681</notes>
                <hasopenquery/>
            </booking>
            <warnings/>
        </response>
