TUI Cruise OTA Booking APIs v1.0

Cruise booking flow for OTA partners, documented as three sequential operations — Validate Holiday (validates the booking with customer and travel details and returns the latest prices) at /cruise-ota-book/validate-holiday, Checkout Holiday (reserves inventory for a fixed period) at /cruise-ota-book/checkout-holiday, and Confirm Holiday (creates the booking) at /cruise-ota-book/confirm-holiday.

OpenAPI Specification

tui-group-tui-cruise-booking-apis-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TUI Cruise Booking APIs
  description: APIs for validating cruise holidays and create bookings for cruises within the TUI system
  version: "1.0.0"
  contact:
    email: NRCruiseTeam@TUIGroup.onmicrosoft.com
    name: "Cruise NR API Support"
  x-header: |
    APIs for validating cruise holidays and create bookings for cruises within the TUI system
  x-summary: |
    APIs for validating cruise holidays and create bookings for cruises within the TUI system

  

servers:
  - url: https://prod.api.tui/cruise-ota-book
    description: Production server
  - url: https://pre-prod.api.tui/cruise-ota-book
    description: Non-production server


paths:
  /validate-holiday:
    parameters:

      - name: x-business-relationship
        in: header
        required: false
        schema:
          type: string
          example: 'InfoBooking_v3_Action'
        description: Validate holiday for cruises

    post:
      summary: Validate holiday for cruises
      description: Validates the booking details in the system with customer and travel details
      operationId: validateHoliday
      tags:
        - Bookings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ValidateHolidayRequest'
      responses:
        '200':
          description: Booking validated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateHolidayResponse'
        '400':
          description: Bad request - invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: Unauthorized - authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'

  /confirm-holiday:
    parameters:

      - name: x-business-relationship
        in: header
        required: false
        schema:
          type: string
          example: 'CreateBooking_v3_Action'
        description: Confirm to book holiday for cruises

    post:
      summary: Confirm to book holiday for cruises
      description: Creates a new booking in the system with customer and travel details
      operationId: confirmHoliday
      tags:
        - Bookings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmHolidayRequest'
      responses:
        '200':
          description: Booking created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfirmHolidayResponse'
        '400':
          description: Bad request - invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: Unauthorized - authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'

components:
  schemas:

    ConfirmHolidayRequest:
      type: object
      properties:
        CreateBookingRequest:
          type: object
          required:
            - Adm
            - CusDet
          properties:
            Adm:
              type: object
              required:
                - SessId
                - ReqId
              properties:
                SessId:
                  type: string
                  description: Session identifier
                  example: "497dcaf8-e113-454b-902c-5dc924c51b1f@0"
                ReqId:
                  type: string
                  description: Request identifier
                  example: "node1-db9HGCGi"

            CusDet:
              type: object
              required:
                - Person
                - TrvDox
              properties:
                Person:
                  type: object
                  properties:
                    Add:
                      type: object
                      properties:
                        Name:
                          type: string
                          example: "T U I Wigmore House,"
                        Street:
                          type: string
                          example: "Wigmore Lane"
                        ZipCode:
                          type: string
                          example: "LU2 9TN"
                        City:
                          type: string
                          example: "LUTON"
                        CountryISOCode:
                          type: string
                          example: "GB"
                    Comm:
                      type: object
                      properties:
                        CommType:
                          type: string
                          example: "TYPE_MOBILE"
                        Sphere:
                          type: string
                          example: "SPHERE_PRIVATE"
                        AreaCode:
                          type: string
                          example: ""
                        Num:
                          type: string
                          example: "07555889000"
                    Email:
                      type: object
                      properties:
                        Address:
                          type: string
                          format: email
                          example: "sudharshan.mb@tui.co.uk"
                        Sphere:
                          type: string
                          example: "SPHERE_PRIVATE"
                    Marketing:
                      type: object
                      properties:
                        Mailshot:
                          type: string
                          example: "true"
                        Tel:
                          type: string
                          example: "true"
                        By_Email:
                          type: string
                          example: "true"
                        By_SMS:
                          type: string
                          example: "true"
                TrvDox:
                  type: object
                  properties:
                    DocumentReceiver:
                      type: string
                      example: "AGENCY"
                    DoxLang:
                      type: string
                      example: "en_EN"

    ConfirmHolidayResponse:
      type: object
      properties:
        TILCreateBookingResponse:
          type: object
          properties:
            TUITILResponse:
              type: object
              properties:
                Result:
                  type: object
                  properties:
                    ResponseCode:
                      type: string
                      example: '0000'
                    Description:
                      type: string
                      example: 'SUCCESS'
                    CorrelationID:
                      type: string
                      example: '03e47977-eb73-41e9-97eb-7be3d13eee4a'
                    Service_version:
                      type: string
                      example: 'v3'
                    Xsd_version:
                      type: string
                      example: 'T3.22.19.1'
            CreateBookingResponse:
              type: object
              properties:
                Adm:
                  type: object
                  properties:
                    "Debug":
                      type: boolean
                      description: Debug flag
                      example: false
                    "IncludeDetailedPerfStats":
                      type: boolean
                      description: Flag to include detailed performance statistics
                      example: false
                    "Xsd_Ver":
                      type: string
                      description: XSD version
                      example: "T3.22.20.1"
                    ReqId:
                      type: string
                      description: Request identifier
                      example: "node1-db9HGCGi"
                    Tm:
                      type: string
                      format: date-time
                      description: Timestamp
                      example: "2025-04-29T10:45:40.362918+01:00"
                    Trk:
                      type: object
                      properties:
                        "From":
                          type: string
                          description: Source system
                          example: "atcomres"
                        "To":
                          type: string
                          description: Target system
                          example: "phoenix"
                        TEXT:
                          type: string
                          description: Additional text information
                          example: "NULL"
                CltInfo:
                  type: object
                  properties:
                    Locale:
                      type: string
                      description: Client locale
                      example: "en_EN"
                    CltSysContext:
                      type: integer
                      description: Client system context
                      example: 3
                    Agt_No:
                      type: string
                      description: Agent number
                      example: "MARCR"
                    TermCode:
                      type: string
                      description: Terminal code
                      example: "VTX"
                    User_Name:
                      type: string
                      description: Username
                      example: "MCUSER"
                    Chan:
                      type: integer
                      description: Channel number
                      example: 1100
                    Channel_Type:
                      type: string
                      description: Channel type
                      example: "VRP"
                    User_Role:
                      type: string
                      description: User role
                      example: "INTERNAL"
                    Payment_VTID:
                      type: integer
                      description: Payment VTID
                      example: 99000140
                    Bkg_Owner_Tp_Mth:
                      type: string
                      description: Booking owner type method
                      example: "TO"
                    Payment_OrgID:
                      type: string
                      description: Payment organization ID
                      example: "ba96ae31Ace67A4004Aa78aAdae2eec844a2"
                BkgNum:
                  type: object
                  properties:
                    BkgId:
                      type: integer
                      example: 43005201
                    CurrentVersion:
                      type: integer
                      example: 1
                    AtcomresBkgVersion:
                      type: integer
                      example: 557769208
                    DH_Queue_Sts:
                      type: string
                      example: WAIT
                BkgSts:
                  type: string
                  example: "BOOKING"
                ResSts:
                  type: string
                  example: "CONFIRMED"
                HasAgt_Notice:
                  type: boolean
                  description: Flag indicating if there are agent notices
                  example: false
                His:
                  type: object
                  description: Booking history information
                  properties:
                    Bkg_Dt_Tm:
                      type: string
                      format: date-time
                      description: Booking date and time
                      example: "2025-04-29T10:45:20+01:00"
                    Bkg_User:
                      type: string
                      description: User who created the booking
                      example: "MCUSER"
                    Bkg_Term_Code:
                      type: string
                      description: Terminal code used for booking
                      example: "VTX"
                    Bkg_Chan:
                      type: integer
                      description: Booking channel
                      example: 1100
                Bkg_Ent:
                  type: object
                  properties:
                    "Amend_Mth":
                      type: string
                      description: Amendment method
                      example: "ALL"
                    Package:
                      type: object
                      properties:
                        Accom:
                          type: object
                          properties:
                            "Is_Adhoc":
                              type: boolean
                              description: Flag indicating if accommodation is ad-hoc
                              example: false
                            "Error":
                              type: boolean
                              description: Error flag
                              example: false
                            Id:
                              type: integer
                              description: Accommodation ID
                              example: 1
                            St_Dt:
                              type: string
                              format: date
                              description: Start date
                              example: "2026-08-01"
                            End_Dt:
                              type: string
                              format: date
                            HtlPrd:
                              type: object
                              description: Hotel product information
                              properties:
                                Name:
                                  type: string
                                  description: Hotel product name
                                  example: "Mediterranean Medley (Explorer)"
                                Prom:
                                  type: object
                                  description: Promotion information
                                  properties:
                                    "Code":
                                      type: string
                                      description: Promotion code
                                      example: "BGCR"
                                    "Issue":
                                      type: integer
                                      description: Issue number
                                      example: 1
                                    "Name":
                                      type: string
                                      description: Promotion name
                                      example: "Marella Cruises"
                                    "Brand":
                                      type: string
                                      description: Brand code
                                      example: "S"
                                    TEXT:
                                      type: string
                                      description: Additional text information
                                      example: "NULL"
                                Acc_Cd:
                                  type: object
                                  description: Accommodation code
                                  properties:
                                    "Accom_Id":
                                      type: string
                                      description: Accommodation ID
                                      example: "6311920741/3"
                                    TEXT:
                                      type: string
                                      description: Accommodation code text
                                      example: "XXXX0028/078"
                                Acc_InvState:
                                  type: string
                                  description: Accommodation inventory state
                                  example: "INTERNAL"
                                Hotel:
                                  type: object
                                  description: Hotel information
                                  properties:
                                    Add:
                                      type: object
                                      description: Hotel address
                                      properties:
                                        Name:
                                          type: string
                                          description: Hotel name
                                          example: "Mediterranean Medley (Explorer)"
                                        City:
                                          type: string
                                          description: City
                                          example: "Palma Port"
                                        Region:
                                          type: string
                                          description: Region
                                          example: "Majorca"
                                        CountryISOCode:
                                          type: string
                                          description: ISO country code
                                          example: "ES"
                                    Comm:
                                      type: object
                                      description: Communication information
                                      properties:
                                        CommType:
                                          type: string
                                          description: Communication type
                                          example: "TYPE_PHONE"
                                        Sphere:
                                          type: string
                                          description: Communication sphere
                                          example: "SPHERE_BUSINESS"
                                        AreaCode:
                                          type: string
                                          description: Area code
                                          example: "NULL"
                                        Num:
                                          type: string
                                          description: Phone number
                                          example: "01234567890"
                                    Loc:
                                      type: object
                                      description: Location information
                                      properties:
                                        Loc_Cd:
                                          type: string
                                          description: Location code
                                          example: "ESMJPB"
                                        Loc_Tp:
                                          type: string
                                          description: Location type
                                          example: "CITY"
                                        Loc_Name:
                                          type: string
                                          description: Location name
                                          example: "Palma Port"
                                Cat_Page:
                                  type: object
                                  description: Catalog page information
                                  properties:
                                    Catalog:
                                      type: object
                                      description: Catalog information
                                      properties:
                                        "Code":
                                          type: string
                                          description: Catalog code
                                          example: "GCR"
                                        "Name":
                                          type: string
                                          description: Catalog name
                                          example: "Marella Cruises UK NEW"
                                        TEXT:
                                          type: string
                                          description: Additional text information
                                          example: "NULL"
                                    Cat_Page_No:
                                      type: integer
                                      description: Catalog page number
                                      example: 0
                                    Prc_Cat_Page_No:
                                      type: integer
                                      description: Price catalog page number
                                      example: 0
                                Ship_Cd:
                                  type: string
                                  description: Ship code
                                  example: "XXXX0028"
                                Ship_Name:
                                  type: string
                                  description: Ship name
                                  example: "Marella Explorer"
                                Corporate_Cd:
                                  type: integer
                                  description: Corporate code
                                  example: 101762
                            Rm_Cd:
                              type: object
                              description: Room code information
                              properties:
                                "Is_Adhoc":
                                  type: boolean
                                  description: Flag indicating if room is ad-hoc
                                  example: false
                                Rm_No:
                                  type: integer
                                  description: Room number
                                  example: 1
                                Code:
                                  type: string
                                  description: Room code
                                  example: "ZI01"
                                Desc:
                                  type: string
                                  description: Room description
                                  example: "Decks 4/5 Inside Cabin"
                                Fac_List:
                                  type: string
                                  description: Facility list text
                                  example: "Decks 4/5, Shower, WC"
                                Facility_List:
                                  type: object
                                  description: Detailed facility list
                                  properties:
                                    Facility:
                                      type: array
                                      description: List of facilities
                                      items:
                                        type: object
                                        properties:
                                          "Code":
                                            type: string
                                            description: Facility code
                                            example: "DK5"
                                          "Name":
                                            type: string
                                            description: Facility name
                                            example: "Decks 4/5"
                                          TEXT:
                                            type: string
                                            description: Additional text information
                                            example: "NULL"
                                StopSaleOverridden:
                                  type: boolean
                                  description: Flag indicating if stop sale is overridden
                                  example: false
                                Inf_Inc_Occ:
                                  type: boolean
                                  description: Flag indicating if infants are included in occupancy
                                  example: true
                                Min_Pax:
                                  type: integer
                                  description: Minimum number of passengers
                                  example: 1
                                Max_Pax:
                                  type: integer
                                  description: Maximum number of passengers
                                  example: 2
                                Max_Adu:
                                  type: integer
                                  description: Maximum number of adults
                                  example: 2
                                Max_Chd:
                                  type: integer
                                  description: Maximum number of children
                                  example: 2
                                Max_Inf:
                                  type: integer
                                  description: Maximum number of infants
                                  example: 1
                                BB_Cd:
                                  type: string
                                  description: Board basis code
                                  example: "AI"
                                BB_Name:
                                  type: string
                                  description: Board basis name
                                  example: "All Inclusive"
                                Alt_BB_Cd:
                                  type: string
                                  description: Alternative board basis code
                                  example: "PI"
                                Ser_Sts:
                                  type: string
                                  description: Service status
                                  example: "FIX"
                                SubServPaxs:
                                  type: object
                                  description: Sub-service passengers information
                                  properties:
                                    SubServPax:
                                      type: array
                                      description: List of sub-service passengers
                                      items:
                                        type: object
                                        properties:
                                          Pax_Id:
                                            type: integer
                                            description: Passenger ID
                                            example: 1
                                          Pax_Tp:
                                            type: string
                                            description: Passenger type
                                            example: "ADULT"
                                          Pax_Srv_Prc_Ex:
                                            type: object
                                            description: Passenger service price excluding taxes
                                            properties:
                                              "CurISO":
                                                type: string
                                                description: Currency ISO code
                                                example: "GBP"
                                              TEXT:
                                                type: number
                                                format: float
                                                description: Price amount
                                                example: 1724.16
                                Prices:
                                  type: object
                                  description: Price information
                                  properties:
                                    Price:
                                      type: array
                                      description: List of prices
                                      items:
                                        type: object
                                        properties:
                                          Prc_Cd:
                                            type: string
                                            description: Price code
                                            example: "AA"
                                          Prc_Cd_Name:
                                            type: string
                                            description: Price code name
                                            example: "Adult Package Price"
                                          Prc_Cd_Tp:
                                            type: string
                                            description: Price code type
                                            example: "ACRMAD"
                                          Qty:
                                            type: integer
                                            description: Quantity
                                            example: 2
                                          Prc:
                                            type: object
                                            description: Price information
                                            properties:
                                              "CurISO":
                                                type: string
                                                description: Currency ISO code
                                                example: "GBP"
                                              TEXT:
                                                type: number
                                                format: float
                                                description: Price amount
                                                example: 1796.0
                                          Prc_Dt:
                                            type: string
                                            format: date-time
                                            description: Price date
                                            example: "2025-04-29T10:45:20+01:00"
                                          PricePaxs:
                                            type: object
                                            description: Price passengers information
                                            properties:
                                              Pax_Id:
                                                type: array
                                                description: List of passenger IDs
                                                items:
                                                  type: integer
                                                  example: 1
                                          Visible:
                                            type: boolean
                                   

# --- truncated at 32 KB (145 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tui-group/refs/heads/main/openapi/tui-group-tui-cruise-booking-apis-openapi.yml