---
openapi: 3.0.1
info:
  title: NeXTuS B2C API
  description: NeXTuS interface to PSS for B2C booking and amendment
  contact:
    name: Nic Hines
    email: nic.hines@ttsltd.com
  version: 1.0.37
servers:
- url: https://dressel:7373/nexus
security:
- smartciAuth: []
tags:
- name: Process Requests
paths:
  /subroutine/AccountAction:
    post:
      tags:
      - Process Requests
      summary: "Account create, read, update and verify"
      description: |-
        This method is used to create, read, update and verify a Le Shuttle account

        The accountActionResponse.bookings.booking.returnLeg object is optional and will not be returned if PSS returns a blank dateTime.

        In the response, arrays are optional and will not be returned if PSS returns an object with noItems set to 0.
      operationId: _subroutine_AccountAction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountActionRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountActionResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/BookingRecall:
    post:
      tags:
      - Process Requests
      summary: Recall a booking
      description: |-
        This method is used to recall an existing booking

        The bookingRecallResponse.returnVehicle object is optional and will not be returned if PSS returns a blank catHeight.

        The bookingRecallResponse.returnJourney object is optional and will not be returned if PSS returns a blank dateTime.

        The bookingRecallResponse.insurance object is optional and will not be returned if PSS returns a blank product.

        In the response, arrays are optional and will not be returned if PSS returns an object with noItems set to 0.
      operationId: _subroutine_BookingRecall
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingRecallRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingRecallResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/CalendarView:
    post:
      tags:
      - Process Requests
      summary: Retrieve lowest ticket prices for a range of days
      description: |-
        This method is used to retrieve lowest ticket prices for a range of days

        The returnJourney object is optional and will not be returned if PSS returns noItems set to 0.
      operationId: _subroutine_CalendarView
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CalendarViewRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarViewResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/CancelBooking:
    post:
      tags:
      - Process Requests
      summary: Cancel s booking
      description: This method is used to cancel a booking
      operationId: _subroutine_CancelBooking
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelBookingRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelBookingResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/ExactViewQuote:
    post:
      tags:
      - Process Requests
      summary: Retrieve ticket availability for a specific day
      description: |-
        This method is used to retrieve ticket availability for a specific day.

        The returnJourney object is optional and will not be returned if PSS returns blank a dateTime.
      operationId: _subroutine_ExactViewQuote
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExactViewQuoteRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExactViewQuoteResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/FirmBooking:
    post:
      tags:
      - Process Requests
      summary: Create a firm booking
      description: This method is used to create a firm booking
      operationId: _subroutine_FirmBooking
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirmBookingRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirmBookingResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/InsuranceQuote:
    post:
      tags:
      - Process Requests
      summary: Retrieve the insurance packages prices
      description: This method is used to retrieve to get  insurance packages prices
      operationId: _subroutine_InsuranceQuote
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InsuranceQuoteRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsuranceQuoteResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/PostSale:
    post:
      tags:
      - Process Requests
      summary: Notification of payment success or cancellation
      description: This method is used to notify PSS of payment success or cancellation
      operationId: _subroutine_PostSale
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSaleRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSaleResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/ProvisionalBooking:
    post:
      tags:
      - Process Requests
      summary: Create a provisional booking
      description: This method is used to create a provisional booking
      operationId: _subroutine_ProvisionalBooking
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProvisionalBookingRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProvisionalBookingResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/VehicleLookup:
    post:
      tags:
      - Process Requests
      summary: Retrieve vehicle details
      description: This method is used to retrieve vehicle details based on either registration or make and model
      operationId: _subroutine_VehicleLookup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleLookupRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleLookupResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/ViewModifyCalendarView:
    post:
      tags:
      - Process Requests
      summary: Retrieve lowest ticket prices for a range of days for an existing booking
      description: |-
        This method is used to retrieve lowest ticket prices for a range of days for an existing booking
        The returnJourney object is optional and will not be returned if PSS returns noItems set to 0.
      operationId: _subroutine_ViewModifyCalendarView
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewModifyCalendarViewRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewModifyCalendarViewResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/ViewModifyExactViewQuote:
    post:
      tags:
      - Process Requests
      summary: Retrieve ticket availability for a specific day for an existing booking
      description: |-
        This method is used to retrieve ticket availability for a specific day for an existing booking

        The returnJourney object is optional and will not be returned if PSS returns a blank dateTime.
      operationId: _subroutine_ViewModifyExactViewQuote
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewModifyExactViewQuoteRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewModifyExactViewQuoteResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/ViewModifyFirmBooking:
    post:
      tags:
      - Process Requests
      summary: Create create a firm modified booking
      description: This method is used to create a firm modified booking
      operationId: _subroutine_ViewModifyFirmBooking
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewModifyFirmBookingRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewModifyFirmBookingResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
  /subroutine/ViewModifyProvisionalBooking:
    post:
      tags:
      - Process Requests
      summary: Create a provisional modified booking
      description: This method is used to create a provisional modified booking
      operationId: _subroutine_ViewModifyProvisionalBooking
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewModifyProvisionalBookingRequestObject'
        required: false
      responses:
        "200":
          description: The request was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViewModifyProvisionalBookingResponseObject'
        "400":
          description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
          content: {}
        "401":
          description: Incorrect credentials provided.
          content: {}
        "403":
          description: Unauthorized access to resource.
          content: {}
        "405":
          description: The account you are calling is not enabled for REST
          content: {}
        "500":
          description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
          content: {}
      x-codegen-request-body-name: body
components:
  schemas:
    Status:
      properties:
        id:
          type: integer
        desc:
          type: string
    Response:
      properties:
        timeStamp:
          type: string
          format: date-time
    Requester.Cug:
      properties:
        type:
          type: string
          enum:
          - staff
          - fosof
          - shareholder
          - subcontractor
          - retired
        id:
          type: string
        password:
          type: string
    CountryOfResidence:
      type: string
      enum:
      - BE
      - BF
      - DE
      - FR
      - NL
      - GB
      - OT
    Requester:
      properties:
        timeStamp:
          type: string
          format: date-time
    CalendarViewDate:
      properties:
        date:
          type: string
          format: date
        fromPrice:
          type: number
          nullable: true
        busyDay:
          type: boolean
          nullable: true
    Contact:
      properties:
        address:
          $ref: '#/components/schemas/Contact_address'
        city:
          type: string
        county:
          type: string
        country:
          type: string
        postCode:
          $ref: '#/components/schemas/Contact_postCode'
        telephone:
          $ref: '#/components/schemas/Contact_telephone'
        email:
          $ref: '#/components/schemas/Contact_email'
    Name:
      properties:
        title:
          type: string
        firstName:
          type: string
        surname:
          type: string
    LeadPassenger:
      properties:
        contact:
          $ref: '#/components/schemas/LeadPassenger_contact'
        organisationName:
          type: string
        wheelchairs:
          type: integer
        totalPax:
          type: integer
      allOf:
      - $ref: '#/components/schemas/Name'
    CurrencyCode:
      type: string
      nullable: true
      enum:
      - GBP
      - EUR
    Promo:
      properties:
        code:
          type: string
        description:
          type: string
        descriptionFR:
          type: string
        accountLegsAllowed:
          type: integer
        accountLegsUsed:
          type: integer
        bookingDateFrom:
          type: string
          format: date
        bookingDateTo:
          type: string
          format: date
        travelDateFrom:
          type: string
          format: date
        travelDateTo:
          type: string
          format: date
        outboundDirection:
          $ref: '#/components/schemas/Promo.Direction'
    Vehicle.RegistrationCountry:
      type: string
      enum:
      - GB
      - FR
      - OT
    Vehicle.CatType:
      type: string
      enum:
      - CAR
      - BIG
      - MOT
      - CAM
    Vehicle.CatHeight:
      type: string
      enum:
      - H
      - L
    Vehicle.SubCat:
      type: string
      enum:
      - NIL
      - CVS
      - TRS
    Vehicle.SubCatLen:
      type: string
      enum:
      - L0
      - L1
      - L2
      - L3
      - L4
      - L5
      - L6
      - L7
      - L8
    Vehicle.Details:
      type: object
      properties:
        seatingCapacity:
          type: number
          format: integer
        fuel:
          type: string
        bodyStyle:
          type: string
        co2Band:
          type: string
        length:
          type: number
        height:
          type: number
        width:
          type: number
        scrappedStolen:
          type: boolean
        yearOfManufacture:
          type: string
    Vehicle.MasterTableDetails:
      type: object
      properties:
        make:
          type: string
        model:
          type: string
        description:
          type: string
        descriptionFR:
          type: string
        cat:
          $ref: '#/components/schemas/Vehicle.CatType'
        catLen:
          type: string
          enum:
          - L1
          - L2
          - L3
          - L4
          - L5
          - L6
          - L7
          - L8
        catHeight:
          $ref: '#/components/schemas/Vehicle.CatHeight'
        camper:
          type: boolean
        special:
          type: boolean
    Vehicle:
      properties:
        catHeight:
          type: string
          enum:
          - L
          - H
        registration:
          type: string
        registrationCountry:
          $ref: '#/components/schemas/Vehicle.RegistrationCountry'
        masterTable:
          $ref: '#/components/schemas/Vehicle_masterTable'
    AccountDetails:
      type: object
      properties:
        accountId:
          type: string
        vehicle:
          type: boolean
        pet:
          type: boolean
        apis:
          type: boolean
        promotionCode:
          type: string
    FareType:
      type: string
      enum:
      - standard
      - daytrip
      - shortstay
      - flexi-shortstay
      - flexi-longstay
      - frequent-traveller
    QuoteJourney:
      properties:
        dateTime:
          type: string
          format: date-time
        direction:
          type: string
          enum:
          - CAFO
          - FOCA
        scheme:
          type: string
          nullable: true
    BookingJourney:
      properties:
        legPrice:
          type: number
        petPrice:
          type: number
        promoDiscount:
          type: number
        missionId:
          type: integer
        fareType:
          $ref: '#/components/schemas/FareType'
        payPet:
          type: integer
        freePet:
          type: integer
        horses:
          type: integer
        totalPax:
          type: integer
        canxProtectionFee:
          type: number
      allOf:
      - $ref: '#/components/schemas/QuoteJourney'
    BookedJourney:
      properties:
        petUnitPrice:
          type: number
        amendable:
          type: boolean
        refundable:
          type: boolean
        cancelable:
          type: boolean
        upgradeToFlexi:
          type: boolean
        travelled:
          type: boolean
        timeChangeOnly:
          type: boolean
        addPets:
          type: boolean
        removePets:
          type: boolean
        travelReady:
          type: boolean
        maxDateChange:
          type: string
          format: date-time
        maxDuration:
          type: integer
      allOf:
      - $ref: '#/components/schemas/BookingJourney'
    BookedVehicle:
      properties:
        vehicleDetails:
          $ref: '#/components/schemas/Vehicle.Details'
        masterTable:
          $ref: '#/components/schemas/Vehicle.MasterTableDetails'
        verified:
          type: boolean
      allOf:
      - $ref: '#/components/schemas/Vehicle'
    AccountJourney:
      properties:
        totalPax:
          type: integer
        travelReady:
          type: boolean
        eesComplete:
          type: boolean
        vehicle:
          $ref: '#/components/schemas/AccountJourney_vehicle'
      allOf:
      - $ref: '#/components/schemas/QuoteJourney'
    Pet:
      properties:
        name:
          type: string
        type:
          type: string
          enum:
          - Dog
          - Cat
          - Ferret
        microChip:
          type: string
        assistance:
          type: boolean
    JourneyPets:
      properties:
        petPrice:
          type: number
        pet:
          type: array
          items:
            $ref: '#/components/schemas/Pet'
        noItems:
          type: integer
    BookedPet:
      properties:
        name:
          type: string
        type:
          type: string
          enum:
          - Dog
          - Cat
          - Ferret
        microChip:
          type: string
        assistance:
          type: boolean
    BookedPets:
      properties:
        petPrice:
          type: number
        petUnitPrice:
          type: number
        addPets:
          type: boolean
        removePets:
          type: boolean
        pet:
          type: array
          items:
            $ref: '#/components/schemas/BookedPet'
        noItems:
          type: integer
    Voucher:
      properties:
        price:
          type: number
        type:
          type: string
        number:
          type: string
    Pax.Marketing:
      properties:
        email:
          type: boolean
        sms:
          type: boolean
        post:
          type: boolean
    Pax.Gender:
      type: string
      enum:
      - M
      - F
      - U
      - X
    Pax:
      properties:
        surname:
          type: string
        givenNames:
          type: string
        nationality:
          type: string
        gender:
          $ref: '#/components/schemas/Pax.Gender'
        dateOfBirth:
          type: string
          format: date
        eesPermitVisa:
          type: boolean
          nullable: true
        eesLastTravel:
          type: boolean
          nullable: true
        eesCheck:
          type: string
          nullable: true
          enum:
          - "N"
          - P
          - S
          - U
        document:
          $ref: '#/components/schemas/Pax_document'
        store:
          type: boolean
          nullable: true
        default:
          type: boolean
          nullable: true
    ArrayOfPax:
      properties:
        pax:
          type: array
          items:
            $ref: '#/components/schemas/Pax'
        noItems:
          type: integer
    Language:
      type: string
      enum:
      - EN
      - FR
    Account.MarketingLanguage:
      type: string
      enum:
      - GB
      - FR
      - NL
    Promo.Direction:
      type: string
      enum:
      - CAFO
      - FOCA
      - BOTH
    CustomerType:
      type: string
      description: N - normal booking T - TESCO booking S - sharholder booking F - FOSOF booking E - staff booking C - supplier/contractor booking X - retiree booking B - frequemnt traveller
      enum:
      - "N"
      - T
      - S
      - F
      - E
      - C
      - X
      - B
    BookingStatus:
      type: string
      enum:
      - prov
      - pcan
      - firm
      - canx
      - used
      - partused
      - exp
    PostSaleAction:
      type: string
      enum:
      - confirm
      - cancel
    PostSaleType:
      type: string
      enum:
      - create
      - modify
    ExactViewQuoteRequest:
      properties:
        requester:
          $ref: '#/components/schemas/ExactViewQuoteRequest_requester'
        accountDetails:
          $ref: '#/components/schemas/AccountDetails'
        vehicle:
          $ref: '#/components/schemas/Vehicle'
        outboundJourney:
          $ref: '#/components/schemas/QuoteJourney'
        returnJourney:
          $ref: '#/components/schemas/QuoteJourney'
    ExactViewQuoteRequestObject:
      properties:
        exactViewQuoteRequest:
          $ref: '#/components/schemas/ExactViewQuoteRequest'
    ExactViewQuoteResponseJourney.Slot.Mission.TicketType:
      properties:
        price:
          type: number
          nullable: true
        promoDiscount:
          type: number
        description:
          $ref: '#/components/schemas/FareType'
        available:
          type: string
          enum:
          - "true"
          - "false"
          - low-space
        upgrade:
          type: boolean
        flexi:
          type: boolean
    ExactViewQuoteResponseJourney.Slot.Mission:
      properties:
        id:
          type: integer
        dateTime:
          type: string
          format: date-time
        ticketTypes:
          type: array
          items:
            $ref: '#/components/schemas/ExactViewQuoteResponseJourney.Slot.Mission.TicketType'
    ExactViewQuoteResponseJourney.Slot:
      properties:
        startDateTime:
          type: string
          format: date-time
        endDateTime:
          type: string
          format: date-time
        bestPrice:
          type: number
          nullable: true
        petPrice:
          type: number
          nullable: true
        missions:
          type: array
          items:
            $ref: '#/components/schemas/ExactViewQuoteResponseJourney.Slot.Mission'
    ExactViewQuoteResponseJourney:
      properties:
        canxProtectionFee:
          type: number
        canxProtectionFeeDiff:
          type: number
        slots:
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/ExactViewQuoteResponseJourney.Slot'
      allOf:
      - $ref: '#/components/schemas/QuoteJourney'
    ExactViewQuoteResponse:
      properties:
        status:
          $ref: '#/components/schemas/ExactViewQuoteResponse_status'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        singleInsAllowed:
          type: boolean
          nullable: true
        outboundJourney:
          $ref: '#/components/schemas/ExactViewQuoteResponseJourney'
        returnJourney:
          $ref: '#/components/schemas/ExactViewQuoteResponseJourney'
      allOf:
      - $ref: '#/components/schemas/Response'
    ExactViewQuoteResponseObject:
      properties:
        exactViewQuoteResponse:
          $ref: '#/components/schemas/ExactViewQuoteResponse'
    ViewModifyExactViewQuoteRequest:
      properties:
        requester:
          $ref: '#/components/schemas/ViewModifyExactViewQuoteRequest_requester'
      allOf:
      - $ref: '#/components/schemas/ExactViewQuoteRequest'
    ViewModifyExactViewQuoteRequestObject:
      type: object
      properties:
        viewModifyExactViewQuoteRequest:
          $ref: '#/components/schemas/ViewModifyExactViewQuoteRequest'
    ViewModifyExactViewQuoteResponse:
      allOf:
      - $ref: '#/components/schemas/ExactViewQuoteResponse'
    ViewModifyExactViewQuoteResponseObject:
      type: object
      properties:
        viewModifyExactViewQuoteResponse:
          $ref: '#/components/schemas/ViewModifyExactViewQuoteResponse'
    VehicleLookupRequest:
      properties:
        requester:
          $ref: '#/components/schemas/Requester'
        registrationLookup:
          $ref: '#/components/schemas/VehicleLookupRequest_registrationLookup'
        makeModelLookup:
          $ref: '#/components/schemas/VehicleLookupRequest_makeModelLookup'
        combinedLookup:
          type: boolean
          nullable: true
    VehicleLookupRequestObject:
      properties:
        vehicleLookupRequest:
          $ref: '#/components/schemas/VehicleLookupRequest'
    VehicleLookupResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
        vehicleDetails:
          $ref: '#/components/schemas/Vehicle.Details'
        masterTable:
          $ref: '#/components/schemas/Vehicle.MasterTableDetails'
        groupMakeModel:
          type: array
          items:
            $ref: '#/components/schemas/VehicleLookupResponse_groupMakeModel'
      allOf:
      - $ref: '#/components/schemas/Response'
    VehicleLookupResponseObject:
      type: object
      properties:
        vehicleLookupResponse:
          $ref: '#/components/schemas/VehicleLookupResponse'
    InsuranceQuote:
      properties:
        product:
          type: string
          enum:
          - ALLIN1
          - BROC01
          - SKI05
          - ALL1PL
          - BROCPL
          - SKIPPL
          - STFIN1
          - STFINS
          - STFSKI
          - STALPL
          - STBRPL
          - SKISPL
          - FOSIN1
          - FOSINS
          - FOSSKI
          - FSALPL
          - FSBRPL
          - SKIFPL
        motor:
          type: boolean
        personal:
          type: boolean
        ski:
          type: boolean
        golf:
          type: boolean
        petAbroad:
          type: boolean
        yearOfRegistration:
          type: string
          format: date
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        noAdults:
          type: integer
        noChildren:
          type: integer
        noInfants:
          type: integer
    InsuranceQuoteRequest:
      properties:
        requester:
          $ref: '#/components/schemas/ExactViewQuoteRequest_requester'
        vehicle:
          allOf:
          - $ref: '#/components/schemas/Vehicle'
        insuranceQuote:
          $ref: '#/components/schemas/InsuranceQuote'
        outboundJourney:
          $ref: '#/components/schemas/QuoteJourney'
        returnJourney:
          $ref: '#/components/schemas/QuoteJourney'
    InsuranceQuoteRequestObject:
      properties:
        insuranceQuoteRequest:
          $ref: '#/components/schemas/InsuranceQuoteRequest'
    InsuranceQuoteResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
        insurance:
          $ref: '#/components/schemas/InsuranceQuoteResponse_insurance'
      allOf:
      - $ref: '#/components/schemas/Response'
    InsuranceQuoteResponseObject:
      properties:
        insuranceQuoteResponse:
          $ref: '#/components/schemas/InsuranceQuoteResponse'
    ProvisionalBookingRequest:
      properties:
        requester:
          $ref: '#/components/schemas/ProvisionalBookingRequest_requester'
        accountDetails:
          $ref: '#/components/schemas/AccountDetails'
        vehicle:
          $ref: '#/components/schemas/ProvisionalBookingRequest_vehicle'
        outboundJourney:
          $ref: '#/components/schemas/BookingJourney'
        returnJourney:
          $ref: '#/components/schemas/BookingJourney'
        pets:
          $ref: '#/components/schemas/ProvisionalBookingRequest_pets'
        vouchers:
          $ref: '#/components/schemas/ProvisionalBookingRequest_vouchers'
        insurance:
          $ref: '#/components/schemas/ProvisionalBookingRequest_insurance'
    ProvisionalBookingRequestObject:
      properties:
        provisionalBookingRequest:
          $ref: '#/components/schemas/ProvisionalBookingRequest'
    ProvisionalBookingResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
        bookRef:
          type: string
        orderId:
          type: string
        password:
          type: string
        currencyCode:
          type: string
          nullable: true
          enum:
          - GBP
          - EUR
        totalPrice:
          type: number
      allOf:
      - $ref: '#/components/schemas/Response'
    ProvisionalBookingResponseObject:
      properties:
        provisionalBookingResponse:
          $ref: '#/components/schemas/ProvisionalBookingResponse'
    FirmBookingRequest:
      allOf:
      - $ref: '#/components/schemas/ProvisionalBookingRequest'
    FirmBookingRequestObject:
      properties:
        firmBookingRequest:
          $ref: '#/components/schemas/FirmBookingRequest'
    FirmBookingResponse:
      properties:
        pax:
          $ref: '#/components/schemas/FirmBookingResponse_pax'
      allOf:
      - $ref: '#/components/schemas/ProvisionalBookingResponse'
    FirmBookingResponseObject:
      properties:
        firmBookingResponse:
          $ref: '#/components/schemas/FirmBookingResponse'
    AccountAction:
      properties:
        account:
          $ref: '#/components/schemas/AccountAction_account'
        personal:
          $ref: '#/components/schemas/AccountAction_personal'
        pets:
          $ref: '#/components/schemas/AccountAction_pets'
        vehicles:
          $ref: '#/components/schemas/AccountAction_vehicles'
        apis:
          $ref: '#/components/schemas/ArrayOfPax'
        cards:
          $ref: '#/components/schemas/AccountAction_cards'
    AccountActionRequester:
      properties:
        requester:
          $ref: '#/components/schemas/AccountActionRequester_requester'
    AccountActionRequest:
      allOf:
      - $ref: '#/components/schemas/AccountActionRequester'
      - $ref: '#/components/schemas/AccountAction'
    AccountActionRequestObject:
      type: object
      properties:
        accountActionRequest:
          $ref: '#/components/schemas/AccountActionRequest'
    AccountActionResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
        bookings:
          $ref: '#/components/schemas/AccountActionResponse_bookings'
        promos:
          $ref: '#/components/schemas/AccountActionResponse_promos'
      allOf:
      - $ref: '#/components/schemas/Response'
      - $ref: '#/components/schemas/AccountAction'
    AccountActionResponseObject:
      type: object
      properties:
        accountActionResponse:
          $ref: '#/components/schemas/AccountActionResponse'
    PostSaleRequest:
      properties:
        requester:
          allOf:
          - $ref: '#/components/schemas/Requester'
        type:
          $ref: '#/components/schemas/PostSaleType'
        status:
          $ref: '#/components/schemas/PostSaleAction'
        bookRef:
          type: string
        transactionDate:
          type: string
          format: date
        paymentRequest:
          $ref: '#/components/schemas/PostSaleRequest_paymentRequest'
        paymentResponse:
          $ref: '#/components/schemas/PostSaleRequest_paymentResponse'
    PostSaleRequestObject:
      type: object
      properties:
        postSaleRequest:
          $ref: '#/components/schemas/PostSaleRequest'
    PostSaleResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
      allOf:
      - $ref: '#/components/schemas/Response'
    PostSaleResponseObject:
      properties:
        postSaleResponse:
          $ref: '#/components/schemas/PostSaleResponse'
    BookingRecallRequest:
      properties:
        requester:
          allOf:
          - $ref: '#/components/schemas/Requester'
        cug:
          $ref: '#/components/schemas/Requester.Cug'
        accountDetails:
          $ref: '#/components/schemas/AccountDetails'
        bookRef:
          type: string
        surname:
          type: string
        pssSessionId:
          type: string
        webSessionId:
          type: string
        apiOnly:
          type: boolean
          nullable: true
    BookingRecallRequestObject:
      properties:
        BookingRecallRequest:
          $ref: '#/components/schemas/BookingRecallRequest'
    BookingRecallResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
        pssSessionId:
          type: string
        creationDateTime:
          type: string
          format: date-time
        originalTotalPrice:
          type: number
        originalTotalVatPrice:
          type: number
        originalPricePaid:
          type: number
        totalPriceDifference:
          type: number
        cancellationFee:
          type: number
        amendmentFee:
          type: number
        amendable:
          type: boolean
        singleToReturn:
          type: boolean
        cancellable:
          type: boolean
        apisCapture:
          type: boolean
        archived:
          type: boolean
        bookRef:
          type: string
        bookingStatus:
          $ref: '#/components/schemas/BookingStatus'
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
        outboundVehicle:
          $ref: '#/components/schemas/BookedVehicle'
        returnVehicle:
          $ref: '#/components/schemas/BookedVehicle'
        allowedVehicles:
          $ref: '#/components/schemas/BookingRecallResponse_allowedVehicles'
        outboundJourney:
          allOf:
          - $ref: '#/components/schemas/QuoteJourney'
          - $ref: '#/components/schemas/BookingJourney'
          - $ref: '#/components/schemas/BookedJourney'
        returnJourney:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/QuoteJourney'
          - $ref: '#/components/schemas/BookingJourney'
          - $ref: '#/components/schemas/BookedJourney'
        pets:
          $ref: '#/components/schemas/BookingRecallResponse_pets'
        vouchers:
          $ref: '#/components/schemas/BookingRecallResponse_vouchers'
        insurance:
          $ref: '#/components/schemas/ProvisionalBookingRequest_insurance'
        promos:
          $ref: '#/components/schemas/AccountActionResponse_promos'
        name:
          $ref: '#/components/schemas/LeadPassenger'
        pax:
          $ref: '#/components/schemas/FirmBookingResponse_pax'
      allOf:
      - $ref: '#/components/schemas/Response'
    BookingRecallResponseObject:
      properties:
        bookingRecallResponse:
          $ref: '#/components/schemas/BookingRecallResponse'
    CalendarViewRequest:
      properties:
        requester:
          $ref: '#/components/schemas/CalendarViewRequest_requester'
        noDays:
          type: integer
        accountDetails:
          $ref: '#/components/schemas/AccountDetails'
        vehicle:
          $ref: '#/components/schemas/Vehicle'
        outboundJourney:
          $ref: '#/components/schemas/QuoteJourney'
        returnJourney:
          $ref: '#/components/schemas/QuoteJourney'
    CalendarViewRequestObject:
      properties:
        calendarViewRequest:
          $ref: '#/components/schemas/CalendarViewRequest'
    CalendarViewResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
        outboundJourney:
          $ref: '#/components/schemas/CalendarViewResponse_outboundJourney'
        returnJourney:
          $ref: '#/components/schemas/CalendarViewResponse_returnJourney'
      allOf:
      - $ref: '#/components/schemas/Response'
    CalendarViewResponseObject:
      properties:
        calendarViewResponse:
          $ref: '#/components/schemas/CalendarViewResponse'
    ViewModifyCalendarViewRequest:
      properties:
        requester:
          $ref: '#/components/schemas/ViewModifyExactViewQuoteRequest_requester'
      allOf:
      - $ref: '#/components/schemas/CalendarViewRequest'
    ViewModifyCalendarViewRequestObject:
      type: object
      properties:
        viewModifyCalendarViewRequest:
          $ref: '#/components/schemas/ViewModifyCalendarViewResponse'
    ViewModifyCalendarViewResponse:
      allOf:
      - $ref: '#/components/schemas/CalendarViewRequest'
    ViewModifyCalendarViewResponseObject:
      type: object
      properties:
        viewModifyCalendarViewResponse:
          $ref: '#/components/schemas/ViewModifyCalendarViewResponse'
    ViewModifyProvisionalBookingRequest:
      properties:
        requester:
          $ref: '#/components/schemas/ViewModifyProvisionalBookingRequest_requester'
      allOf:
      - $ref: '#/components/schemas/ProvisionalBookingRequest'
    ViewModifyProvisionalBookingRequestObject:
      properties:
        viewModifyProvisionalBookingRequest:
          $ref: '#/components/schemas/ViewModifyProvisionalBookingRequest'
    ViewModifyProvisionalBookingResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
        bookRef:
          type: string
        orderId:
          type: string
        password:
          type: string
        currencyCode:
          type: string
          nullable: true
          enum:
          - GBP
          - EUR
        totalPrice:
          type: number
      allOf:
      - $ref: '#/components/schemas/Response'
    ViewModifyProvisionalBookingResponseObject:
      properties:
        viewModifyProvisionalBookingResponse:
          $ref: '#/components/schemas/ProvisionalBookingResponse'
    ViewModifyFirmBookingRequest:
      properties:
        requester:
          $ref: '#/components/schemas/ViewModifyFirmBookingRequest_requester'
        pax:
          $ref: '#/components/schemas/FirmBookingResponse_pax'
      allOf:
      - $ref: '#/components/schemas/ProvisionalBookingRequest'
    ViewModifyFirmBookingRequestObject:
      properties:
        viewModifyFirmBookingRequest:
          $ref: '#/components/schemas/ViewModifyFirmBookingRequest'
    ViewModifyFirmBookingResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
        bookRef:
          type: string
        orderId:
          type: string
        password:
          type: string
        currencyCode:
          type: string
          nullable: true
          enum:
          - GBP
          - EUR
        totalPrice:
          type: number
      allOf:
      - $ref: '#/components/schemas/Response'
    ViewModifyFirmBookingResponseObject:
      properties:
        viewModifyFirmBookingResponse:
          $ref: '#/components/schemas/FirmBookingResponse'
    CancelBookingRequest:
      properties:
        requester:
          $ref: '#/components/schemas/ViewModifyExactViewQuoteRequest_requester'
    CancelBookingRequestObject:
      properties:
        cancelBookingRequest:
          $ref: '#/components/schemas/CancelBookingRequest'
    CancelBookingResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
      allOf:
      - $ref: '#/components/schemas/Response'
    CancelBookingResponseObject:
      properties:
        cancelBookingResponse:
          $ref: '#/components/schemas/CancelBookingResponse'
    Contact_address:
      properties:
        line:
          type: array
          items:
            type: string
        noItems:
          type: integer
        verified:
          type: boolean
          nullable: true
    Contact_postCode:
      type: object
      properties:
        code:
          type: string
        longitude:
          type: number
        latitude:
          type: number
    Contact_telephone_home:
      type: object
      properties:
        prefix:
          type: string
        number:
          type: string
    Contact_telephone_mobile:
      type: object
      properties:
        prefix:
          type: string
        number:
          type: string
        os:
          type: string
          nullable: true
        browser:
          type: string
          nullable: true
        handset:
          type: string
          nullable: true
        validated:
          type: boolean
          nullable: true
    Contact_telephone:
      type: object
      properties:
        home:
          $ref: '#/components/schemas/Contact_telephone_home'
        mobile:
          $ref: '#/components/schemas/Contact_telephone_mobile'
    Contact_email:
      type: object
      properties:
        address:
          type: string
        verified:
          type: boolean
          nullable: true
      nullable: true
    LeadPassenger_contact:
      properties:
        marketing:
          $ref: '#/components/schemas/Pax.Marketing'
    Vehicle_masterTable:
      properties:
        subcat:
          $ref: '#/components/schemas/Vehicle.SubCat'
        subcatLen:
          $ref: '#/components/schemas/Vehicle.SubCatLen'
        fuel:
          type: string
          enum:
          - CON
          - ELC
          - LPG
          - HYB
        roof:
          type: string
          enum:
          - "N"
          - V
          - X
          - E
        rear:
          type: string
          enum:
          - "N"
          - V
          - X
        selfDeclared:
          type: boolean
        masterTable:
          type: boolean
    AccountJourney_vehicle:
      properties:
        registration:
          type: string
        registrationCountry:
          $ref: '#/components/schemas/Vehicle.RegistrationCountry'
        make:
          type: string
        model:
          type: string
        cat:
          $ref: '#/components/schemas/Vehicle.CatType'
        catHeight:
          $ref: '#/components/schemas/Vehicle.CatHeight'
    Pax_document:
      type: object
      properties:
        type:
          type: string
          enum:
          - P
          - G
          - A
          - C
          - I
          - M
          - D
          - T
          - S
          - PT
          - F
        id:
          type: string
        expiryDate:
          type: string
          format: date
        state:
          type: string
    ExactViewQuoteRequest_requester:
      properties:
        webSessionId:
          type: string
        countryOfResidence:
          $ref: '#/components/schemas/CountryOfResidence'
        cug:
          $ref: '#/components/schemas/Requester.Cug'
    ExactViewQuoteResponse_status:
      properties:
        id:
          type: integer
        desc:
          type: string
        legno:
          type: integer
    ViewModifyExactViewQuoteRequest_requester:
      properties:
        pssSessionId:
          type: string
        bookRef:
          type: string
    VehicleLookupRequest_registrationLookup:
      type: object
      properties:
        registration:
          type: string
        registrationCountry:
          $ref: '#/components/schemas/Vehicle.RegistrationCountry'
    VehicleLookupRequest_makeModelLookup:
      type: object
      properties:
        make:
          type: string
        model:
          type: string
    VehicleLookupResponse_groupMakeModel:
      type: object
      properties:
        make:
          type: string
        model:
          type: string
        cat:
          $ref: '#/components/schemas/Vehicle.CatType'
    InsuranceQuoteResponse_insurance_upgrade:
      required:
      - price
      type: object
      properties:
        price:
          type: number
        product:
          type: string
          enum:
          - ALL1PL
          - BROCPL
          - SKIPPL
          - STALPL
          - STBRPL
          - SKISPL
          - FSALPL
          - FSBRPL
          - SKIFPL
    InsuranceQuoteResponse_insurance:
      properties:
        currencyCode:
          type: string
          enum:
          - GBP
          - EUR
        price:
          type: number
        upgrade:
          $ref: '#/components/schemas/InsuranceQuoteResponse_insurance_upgrade'
    ProvisionalBookingRequest_requester:
      properties:
        orderId:
          type: string
          nullable: true
        webSessionId:
          type: string
        countryOfResidence:
          $ref: '#/components/schemas/CountryOfResidence'
        language:
          type: string
          enum:
          - FR
          - GB
        ipAddress:
          type: string
        deviceType:
          type: string
        deviceDescription:
          type: string
        currencyCode:
          type: string
          enum:
          - GBP
          - EUR
        cug:
          $ref: '#/components/schemas/Requester.Cug'
        name:
          $ref: '#/components/schemas/LeadPassenger'
    ProvisionalBookingRequest_vehicle:
      properties:
        vehicleDetails:
          $ref: '#/components/schemas/Vehicle.Details'
        masterTable:
          $ref: '#/components/schemas/Vehicle.MasterTableDetails'
        verified:
          type: boolean
    ProvisionalBookingRequest_pets:
      type: object
      properties:
        outboundLeg:
          $ref: '#/components/schemas/JourneyPets'
        returnLeg:
          $ref: '#/components/schemas/JourneyPets'
    ProvisionalBookingRequest_vouchers:
      type: object
      properties:
        voucher:
          type: array
          items:
            $ref: '#/components/schemas/Voucher'
        noItems:
          type: integer
    ProvisionalBookingRequest_insurance:
      properties:
        price:
          type: number
    FirmBookingResponse_pax:
      type: object
      properties:
        outboundLeg:
          $ref: '#/components/schemas/ArrayOfPax'
        returnLeg:
          $ref: '#/components/schemas/ArrayOfPax'
    AccountAction_account_security:
      properties:
        password:
          type: string
        token:
          type: string
    AccountAction_account_newSecurity:
      properties:
        password:
          type: string
        email:
          type: string
    AccountAction_account:
      properties:
        id:
          type: string
        internalId:
          type: string
        mfa:
          type: boolean
        recoveryEmail:
          type: string
        defaultLanguage:
          $ref: '#/components/schemas/Language'
        defaultCurrency:
          $ref: '#/components/schemas/CurrencyCode'
        security:
          $ref: '#/components/schemas/AccountAction_account_security'
        newSecurity:
          $ref: '#/components/schemas/AccountAction_account_newSecurity'
    AccountAction_personal_marketing:
      properties:
        email:
          type: boolean
        post:
          type: boolean
        sms:
          type: boolean
        language:
          $ref: '#/components/schemas/Account.MarketingLanguage'
    AccountAction_personal:
      properties:
        name:
          $ref: '#/components/schemas/Name'
        contact:
          $ref: '#/components/schemas/Contact'
        marketing:
          $ref: '#/components/schemas/AccountAction_personal_marketing'
    AccountAction_pets_pet:
      properties:
        default:
          type: boolean
    AccountAction_pets:
      properties:
        pet:
          type: array
          items:
            $ref: '#/components/schemas/AccountAction_pets_pet'
        noItems:
          type: integer
    AccountAction_vehicles_vehicleDetails:
      properties:
        verified:
          type: boolean
    AccountAction_vehicles_vehicle:
      properties:
        default:
          type: boolean
        registration:
          type: string
        registrationCountry:
          $ref: '#/components/schemas/Vehicle.RegistrationCountry'
        fuel:
          type: string
          enum:
          - CON
          - ELC
          - LPG
          - HYB
        adapted:
          type: boolean
        vehicleDetails:
          $ref: '#/components/schemas/AccountAction_vehicles_vehicleDetails'
        masterTable:
          $ref: '#/components/schemas/Vehicle.MasterTableDetails'
    AccountAction_vehicles:
      properties:
        vehicle:
          type: array
          items:
            $ref: '#/components/schemas/AccountAction_vehicles_vehicle'
        noItems:
          type: integer
    AccountAction_cards_card:
      properties:
        type:
          type: string
        name:
          type: string
        expiryDate:
          type: string
        lastFour:
          type: string
        alias:
          type: string
        digest:
          type: string
        default:
          type: boolean
    AccountAction_cards:
      properties:
        card:
          type: array
          items:
            $ref: '#/components/schemas/AccountAction_cards_card'
        noItems:
          type: integer
    AccountActionRequester_requester:
      properties:
        action:
          type: string
          enum:
          - create
          - exists
          - logon
          - update
          - email
          - authorise
          - reauthorise
          - password
          - reset
        webSessionId:
          type: string
        ipAddress:
          type: string
        deviceType:
          type: string
        bookRef:
          type: string
          description: If this an account creation after a booking has been made then fill this field with the booking reference so PSS can add this existing booking to the new account
          nullable: true
    AccountActionResponse_bookings_booking:
      properties:
        bookRef:
          type: string
        bookDate:
          type: string
          format: date
        status:
          $ref: '#/components/schemas/BookingStatus'
        fareType:
          $ref: '#/components/schemas/FareType'
        customerType:
          $ref: '#/components/schemas/CustomerType'
        customerNumber:
          type: string
          description: "The customer number on the booking if the cust_type is B, F, E, C, S, X"
        outboundLeg:
          $ref: '#/components/schemas/AccountJourney'
        returnLeg:
          $ref: '#/components/schemas/AccountJourney'
    AccountActionResponse_bookings:
      properties:
        booking:
          type: array
          items:
            $ref: '#/components/schemas/AccountActionResponse_bookings_booking'
        noItems:
          type: integer
        noBookingsMade:
          type: integer
    AccountActionResponse_promos:
      properties:
        promo:
          type: array
          items:
            $ref: '#/components/schemas/Promo'
        noItems:
          type: integer
    PostSaleRequest_paymentRequest:
      properties:
        pspid:
          type: string
        cardHoldername:
          type: string
        expiryDate:
          type: string
          description: "Format: MMYY"
        ipAddress:
          type: string
        lastFour:
          type: string
          description: Last 4 digits of the card number
        cardNoDigest:
          type: string
        shaSign:
          type: string
        vouchers:
          $ref: '#/components/schemas/ProvisionalBookingRequest_vouchers'
    PostSaleRequest_paymentResponse:
      properties:
        aavCheck:
          type: string
        acceptance:
          type: string
        amount:
          type: number
        brand:
          type: string
        ccCty:
          type: string
        currency:
          $ref: '#/components/schemas/CurrencyCode'
        cvcCheck:
          type: string
        eci:
          type: string
        ipCty:
          type: string
        ncError:
          type: string
        ncErrorPlus:
          type: string
        ncStatus:
          type: string
        orderId:
          type: string
        payId:
          type: string
        pm:
          type: string
          enum:
          - CreditCard
        status:
          type: string
        vc:
          type: string
    BookingRecallResponse_allowedVehicles_allowedVehicle:
      properties:
        cat:
          $ref: '#/components/schemas/Vehicle.CatType'
        catHeight:
          $ref: '#/components/schemas/Vehicle.CatHeight'
        subCat:
          $ref: '#/components/schemas/Vehicle.SubCat'
    BookingRecallResponse_allowedVehicles:
      properties:
        allowedVehicle:
          type: array
          items:
            $ref: '#/components/schemas/BookingRecallResponse_allowedVehicles_allowedVehicle'
        noItems:
          type: integer
    BookingRecallResponse_pets:
      properties:
        outboundLeg:
          $ref: '#/components/schemas/BookedPets'
        returnLeg:
          $ref: '#/components/schemas/BookedPets'
    BookingRecallResponse_vouchers:
      properties:
        voucher:
          type: array
          items:
            $ref: '#/components/schemas/Voucher'
        noItems:
          type: integer
      nullable: true
    CalendarViewRequest_requester:
      properties:
        countryOfResidence:
          $ref: '#/components/schemas/CountryOfResidence'
        cug:
          $ref: '#/components/schemas/Requester.Cug'
    CalendarViewResponse_outboundJourney:
      properties:
        dates:
          type: array
          items:
            $ref: '#/components/schemas/CalendarViewDate'
        noItems:
          type: integer
    CalendarViewResponse_returnJourney:
      properties:
        dates:
          type: array
          items:
            $ref: '#/components/schemas/CalendarViewDate'
        noItems:
          type: integer
      nullable: true
    ViewModifyProvisionalBookingRequest_requester:
      properties:
        pssSessionId:
          type: string
    ViewModifyFirmBookingRequest_requester:
      properties:
        pssSessionId:
          type: string
        apiOnly:
          type: boolean
          nullable: true
  responses:
    "400":
      description: "Caused by one of the following conditions: \n  1) The incorrect number of parameters was sent to the subroutine. \n  2) The incorrect type of parameter was sent to the subroutine. \n  3) The subroutine definition was not found. \n  4) The parameters in the URL you are trying to access are not supported for this request."
      content: {}
    "401":
      description: Incorrect credentials provided.
      content: {}
    "403":
      description: Unauthorized access to resource.
      content: {}
    "405":
      description: The account you are calling is not enabled for REST
      content: {}
    "500":
      description: "Caused by one of the following conditions: \n  1) The server was not able to connect to the port for an unknown reason. \n  2) The server was unable to process your request because the database connection details were not found in the cm.ini file. \n  3) An error occurred in the subroutine input payload, so it could not to be parsed"
      content: {}
  securitySchemes:
    smartciAuth:
      type: http
      scheme: basic
