openapi: 3.0.0
info:
  title: Trips
  description: A trip entity allows you to maintain information about the trips of your employees.
  contact: {}
  version: 1.0.0
servers:
  - url: https://www.zohoapis.com/expense/v1
    description: API Endpoint
tags:
  - name: trips
    description: Trips Module
paths:
  /trips:
    x-mcp-group:
      - Trips
    post:
      tags:
        - trips
      operationId: create_trip
      summary: Create a trip
      description: Create a new trip.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/create-a-trip-request'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/create-a-trip-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.trip.CREATE
    get:
      tags:
        - trips
      operationId: list_trips
      summary: Retrieve list of all trips
      description: List all existing trips.
      parameters:
        - name: filter_by
          in: query
          description: For filtering trips based on status.
          required: false
          schema:
            type: object
            properties:
              Type.Trip%2CStatus.Submitted:
                $ref: '#/components/schemas/Type.Trip-Status.Submitted'
              Type.Trip%2CStatus.Approved:
                $ref: '#/components/schemas/Type.Trip-Status.Approved'
              Type.Trip%2CStatus.Rejected:
                $ref: '#/components/schemas/Type.Trip-Status.Rejected'
              Type.Trip%2CStatus.Closed:
                $ref: '#/components/schemas/Type.Trip-Status.Closed'
              Type.Trip%2CStatus.Cancelled:
                $ref: '#/components/schemas/Type.Trip-Status.Cancelled'
          example: ''
        - name: page
          in: query
          description: Page number to be fetched. Default value is 1.
          required: false
          schema:
            type: integer
            default: 1
          example: 1
        - name: per_page
          in: query
          description: Number of records to be fetched per page. Default value is 200.
          required: false
          schema:
            type: integer
            default: 200
          example: 200
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/retrieve-list-of-all-trips-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.trip.READ
    parameters:
      - $ref: '#/components/parameters/organization_id'
  /trips/{trip_id}:
    x-mcp-group:
      - Trips
    get:
      tags:
        - trips
      operationId: get_trip
      summary: Retrieve details of a trip
      description: Retrieve details of an existing trip.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/retrieve-details-of-a-trip-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.trip.READ
    put:
      tags:
        - trips
      operationId: update_trip
      summary: Update a trip
      description: Updates an existing trip with the provided details. Fields not included in the request will retain their current values.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/update-a-trip-request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/update-a-trip-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.trip.UPDATE
    delete:
      tags:
        - trips
      operationId: delete_trip
      summary: Delete a trip request
      description: Delete a trip request. Approved, Closed and Cancelled trips cannot be deleted.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/delete-a-trip-request-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.trip.DELETE
    parameters:
      - name: trip_id
        in: path
        required: true
        description: Unique identifier of the trip.
        schema:
          type: string
        example: '34017000000000103'
      - $ref: '#/components/parameters/organization_id'
  /trips/{trip_id}/approve:
    x-mcp-group:
      - Trips
    post:
      tags:
        - trips
      operationId: approve_trip
      summary: Approve a trip request
      description: Approve a submitted trip request.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/approve-a-trip-request-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.approval.CREATE
    parameters:
      - name: trip_id
        in: path
        required: true
        description: Unique identifier of the trip.
        schema:
          type: string
        example: '34017000000000103'
      - $ref: '#/components/parameters/organization_id'
  /trips/{trip_id}/reject:
    x-mcp-group:
      - Trips
    post:
      tags:
        - trips
      operationId: reject_trip
      summary: Reject a trip request
      description: Reject a submitted trip request.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/reject-a-trip-request-request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/reject-a-trip-request-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.approval.CREATE
    parameters:
      - name: trip_id
        in: path
        required: true
        description: Unique identifier of the trip.
        schema:
          type: string
        example: '34017000000000103'
      - $ref: '#/components/parameters/organization_id'
  /trips/{trip_id}/cancel:
    x-mcp-group:
      - Trips
    post:
      tags:
        - trips
      operationId: cancel_trip
      summary: Cancel a trip
      description: Cancel a trip.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cancel-a-trip-request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cancel-a-trip-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.trip.CREATE
    parameters:
      - name: trip_id
        in: path
        required: true
        description: Unique identifier of the trip.
        schema:
          type: string
        example: '34017000000000103'
      - $ref: '#/components/parameters/organization_id'
  /trips/{trip_id}/close:
    x-mcp-group:
      - Trips
    post:
      tags:
        - trips
      operationId: close_trip
      summary: Close a trip
      description: Close an approved trip.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/close-a-trip-response'
      deprecated: false
      security:
        - Zoho_Auth:
            - ZohoExpense.trip.CREATE
    parameters:
      - name: trip_id
        in: path
        required: true
        description: Unique identifier of the trip.
        schema:
          type: string
        example: '34017000000000103'
      - $ref: '#/components/parameters/organization_id'
components:
  parameters:
    organization_id:
      name: X-com-zoho-expense-organizationid
      description: ID of the organization
      in: header
      required: true
      schema:
        type: string
      example: '10234695'
  schemas:
    gendoc-attributes-schema:
      $ref: '#/components/schemas/trip'
    trip_id:
      description: Unique ID generated by the server. This is used as a identifier.
      type: string
      example: '34017000000000103'
    trip_name:
      description: Name for the trip request.
      type: string
      example: Delhi to New York
    travel_type:
      description: Whether the trip is an <code>international</code> or <code>domestic</code> trip.
      type: string
      enum:
        - domestic
        - international
      example: international
    is_visa_required:
      description: Whether visa is required for the trip. Can only be specified when <code>travel_type</code> is <code>international</code>.
      type: boolean
      example: true
    policy_id:
      description: Unique ID of the policy applied to the trip request.
      type: string
      example: '30082000000003588'
    destination_country_code:
      description: Two-letter ISO country code for the destination country. <strong>Required when <code>travel_type</code> is <code>international</code></strong>
      type: string
      example: US
    start_date:
      description: Start date of the trip.
      type: string
      example: '2017-02-21'
    end_date:
      description: End date of the trip.
      type: string
      example: '2017-02-27'
    trip_number:
      description: Trip's unique number
      type: string
      example: TRIP-00001
    business_purpose:
      description: Purpose of the trip.
      type: string
      example: Meeting with client
    description:
      description: Any comments about the trip.
      type: string
      example: Regarding business proposal
    departure:
      description: Place of departure.
      type: string
      example: ABC International Airport
    destination_country:
      description: Destination Country of the trip.
      type: string
      example: Australia
    destination_city:
      description: Destination City of the trip.
      type: string
      example: melbourne
    is_billable:
      description: Whether the customer needs to be billed for the trip.
      type: boolean
      example: false
    customer_id:
      description: Unique ID of the customer associated with the trip.
      type: string
      example: '16367000000096001'
    project_id:
      description: Unique ID of the project associated with the trip.
      type: string
      example: '16367000000096055'
    project_name:
      description: Name of the project associated with the trip.
      type: string
      example: Brochure Design - Spa
    customer_name:
      description: Name of the customer associated with the trip.
      type: string
      example: Kenny Digital
    status:
      description: Status of the trip.
      type: string
      example: draft
    order:
      description: Order of the itinerary in the trip.
      type: integer
      example: 1
    departure_date:
      description: Date of departure.
      type: string
      example: '2017-09-08'
    departure_country:
      description: Departure Country.
      type: string
      example: india
    departure_state:
      description: Departure State.
      type: string
      example: tamil nadu
    departure_city:
      description: Departure City.
      type: string
      example: chennai
    arrival_date:
      description: Date of arrival.
      type: string
      example: '2017-09-08'
    arrival_country:
      description: Arrival Country
      type: string
      example: australia
    arrival_state:
      description: Arrival State
      type: string
      example: victoria
    arrival_city:
      description: Arrival City
      type: string
      example: melbourne
    travel_mode:
      description: Mode of transportation. Possible values are <code>flight</code>, <code>hotel</code>, <code>car</code>, <code>train</code>, <code>bus</code>, <code>ferry</code>
      type: string
      example: flight
    is_personal_travel:
      description: Whether it is a personal trip.
      type: boolean
      example: true
    is_accomodation:
      description: Whether accomodation is provided.
      type: boolean
      example: false
    name:
      description: Name of the User.
      type: string
      example: Jayson
    email:
      description: Email ID of the User.
      type: string
      example: jayson@gmail.com
    document:
      type: object
      description: Details of a document attached to the trip.
      properties:
        file_name:
          description: Name of the Document.
          type: string
          example: receipt1.jpg
        file_size_formatted:
          description: Formatted value of File Size.
          type: string
          example: 35.6 KB
        attachment_order:
          description: Order of the Attached Document.
          type: integer
          example: 1
        document_id:
          description: Unique Id for the Document.
          type: string
          example: '16367000000078085'
    documents:
      description: Details of Documents attached.
      type: array
      items:
        $ref: '#/components/schemas/document'
    custom_field:
      type: object
      description: Custom field added to the trip.
      properties:
        customfield_id:
          description: Unique ID for the Custom Field.
          type: string
          example: '16367000000093005'
        data_type:
          description: Data Type of the Custom Field.
          type: string
          example: string
        is_active:
          description: Whether the Custom Field is Active. It can either be <code>true</code> or <code>false</code>.
          type: boolean
          example: true
        is_mandatory:
          description: Whether the Custom Field is Mandatory. It can either be <code>true</code> or <code>false</code>.
          type: boolean
          example: false
        label:
          description: Label for the Custom Field.
          type: string
          example: Nick Name
        value:
          description: Value entered in the Custom Field.
          type: string
          example: Tric
    custom_fields:
      description: Custom field added.
      type: array
      items:
        $ref: '#/components/schemas/custom_field'
    comment:
      type: object
      description: Comment associated with the trip.
      properties:
        description:
          description: Any comments about the trip.
          type: string
          example: Regarding business proposal
        commented_by_id:
          description: Unique ID of the person who commented.
          type: string
          example: '34017000000091216'
        commented_by:
          description: Name of the User Commented.
          type: string
          example: Will Smith
    comments:
      type: array
      description: List of comments associated with the trip.
      items:
        $ref: '#/components/schemas/comment'
    trip:
      type: object
      properties:
        trip_id:
          $ref: '#/components/schemas/trip_id'
        travel_type:
          $ref: '#/components/schemas/travel_type'
        trip_name:
          $ref: '#/components/schemas/trip_name'
        destination_country_code:
          $ref: '#/components/schemas/destination_country_code'
        policy_id:
          $ref: '#/components/schemas/policy_id'
        policy_name:
          $ref: '#/components/schemas/policy_name'
        is_visa_required:
          $ref: '#/components/schemas/is_visa_required'
        start_date:
          $ref: '#/components/schemas/start_date'
        end_date:
          $ref: '#/components/schemas/end_date'
        trip_number:
          $ref: '#/components/schemas/trip_number'
        business_purpose:
          $ref: '#/components/schemas/business_purpose'
        departure:
          $ref: '#/components/schemas/departure'
        destination_country:
          $ref: '#/components/schemas/destination_country'
        destination_city:
          $ref: '#/components/schemas/destination_city'
        is_billable:
          $ref: '#/components/schemas/is_billable'
        customer_id:
          $ref: '#/components/schemas/customer_id'
        project_id:
          $ref: '#/components/schemas/project_id'
        project_name:
          $ref: '#/components/schemas/project_name'
        customer_name:
          $ref: '#/components/schemas/customer_name'
        budget:
          $ref: '#/components/schemas/budget'
        status:
          $ref: '#/components/schemas/status'
        custom_fields:
          $ref: '#/components/schemas/custom_fields'
        submitted_date:
          $ref: '#/components/schemas/submitted_date'
        last_submitted_date:
          $ref: '#/components/schemas/last_submitted_date'
        approved_date:
          $ref: '#/components/schemas/approved_date'
        approver_id:
          $ref: '#/components/schemas/approver_id'
        approver_name:
          $ref: '#/components/schemas/approver_name'
        approver_email:
          $ref: '#/components/schemas/approver_email'
        submitted_to_id:
          $ref: '#/components/schemas/submitted_to_id'
        submitted_to_name:
          $ref: '#/components/schemas/submitted_to_name'
        submitted_to_email:
          $ref: '#/components/schemas/submitted_to_email'
        submitted_to_employee_no:
          $ref: '#/components/schemas/submitted_to_employee_no'
        submitted_to_department_name:
          $ref: '#/components/schemas/submitted_to_department_name'
        submitted_by:
          $ref: '#/components/schemas/submitted_by'
        submitter_name:
          $ref: '#/components/schemas/submitter_name'
        submitter_email:
          $ref: '#/components/schemas/submitter_email'
        submitter_employee_no:
          $ref: '#/components/schemas/submitter_employee_no'
        submitter_department_name:
          $ref: '#/components/schemas/submitter_department_name'
        employee_number:
          $ref: '#/components/schemas/employee_number'
        department_id:
          $ref: '#/components/schemas/department_id'
        department_name:
          $ref: '#/components/schemas/department_name'
        next_approver_id:
          $ref: '#/components/schemas/next_approver_id'
        next_approver_email:
          $ref: '#/components/schemas/next_approver_email'
        next_approver_name:
          $ref: '#/components/schemas/next_approver_name'
        approver_employee_no:
          $ref: '#/components/schemas/approver_employee_no'
        approver_department_name:
          $ref: '#/components/schemas/approver_department_name'
        previous_approver_id:
          $ref: '#/components/schemas/previous_approver_id'
        previous_approver_name:
          $ref: '#/components/schemas/previous_approver_name'
        previous_approver_email:
          $ref: '#/components/schemas/previous_approver_email'
        previous_approver_employee_no:
          $ref: '#/components/schemas/previous_approver_employee_no'
        previous_approver_department_name:
          $ref: '#/components/schemas/previous_approver_department_name'
        other_travellers:
          description: Co-travellers on the trip. Returned only in GET detail.
          type: array
          items:
            $ref: '#/components/schemas/other_traveller'
        itineraries:
          description: A list of itineraries for the trip.
          type: array
          items:
            $ref: '#/components/schemas/itinerary'
        no_of_days:
          description: Number of days of the trip.
          type: integer
          example: 45
        comments:
          $ref: '#/components/schemas/comments'
        created_time:
          $ref: '#/components/schemas/created_time'
        created_date:
          $ref: '#/components/schemas/created_date'
        last_modified_time:
          $ref: '#/components/schemas/last_modified_time'
        documents:
          $ref: '#/components/schemas/documents'
        created_by_id:
          $ref: '#/components/schemas/created_by_id'
        created_by_name:
          $ref: '#/components/schemas/created_by_name'
        user_id:
          $ref: '#/components/schemas/user_id'
        user_name:
          $ref: '#/components/schemas/user_name'
        user_email:
          $ref: '#/components/schemas/user_email'
        created_by_email:
          $ref: '#/components/schemas/created_by_email'
    budget:
      description: Budget amount for the trip.
      type: object
      required:
        - amount
        - currency_id
      properties:
        amount:
          description: Budget amount for the trip.
          type: number
          format: double
          example: 100
        currency_id:
          description: Unique ID for currency.
          type: string
          example: '238277000000000097'
        exchange_rate:
          description: Exchange rate of the currency with respect to base currency.
          type: number
          format: double
          example: 94.482237
    other_traveller:
      description: Co-travellers on the trip.
      type: object
      required:
        - user_id
      properties:
        user_id:
          description: Unique ID of the co-traveller of the trip.
          type: integer
          format: int64
          example: '238277000000129433'
    trip_custom_field:
      type: object
      required:
        - customfield_id
        - value
      properties:
        customfield_id:
          description: Unique ID for the Custom Field.
          type: integer
          format: int64
          example: '238277000000641078'
        value:
          description: Value entered in the Custom Field.
          type: string
          example: '1000'
    itinerary:
      description: A single trip itinerary. Each itinerary object must include only the sub-object that matches its <code>travel_mode</code>. For example, include the <code>flight</code> object when <code>travel_mode</code> is <code>flight</code>, the <code>hotel</code> object when <code>travel_mode</code> is <code>hotel</code>, and so on. Including a mismatched sub-object will result in an error.
      type: object
      required:
        - travel_mode
      properties:
        itinerary_id:
          description: Unique ID of the trip itinerary. When provided, the existing itinerary with this ID is updated. When omitted, a new itinerary is created.
          type: integer
          format: int64
        travel_mode:
          description: |-
            The mode of travel and accommodation for this itinerary. Accepted values: <ul>
              <li><code>flight</code></li>
              <li><code>hotel</code></li>
              <li><code>car</code></li>
              <li><code>train</code></li>
              <li><code>bus</code></li>
              <li><code>ferry</code></li>
            </ul> Each itinerary object must include only the sub-object that matches its travel_mode. For example, include the <code>flight</code> object when <code>travel_mode</code> is <code>flight</code>, the <code>hotel</code> object when <code>travel_mode</code> is <code>hotel</code>, and so on. Including a mismatched sub-object will result in an error.
          type: string
          enum:
            - flight
            - hotel
            - car
            - bus
            - train
            - ferry
        is_personal_travel:
          description: Whether it is a personal itinerary booking.
          type: boolean
        description:
          description: Any comments about the trip itinerary.
          type: string
        flight:
          $ref: '#/components/schemas/itinerary-flight'
        car:
          $ref: '#/components/schemas/itinerary-car'
        bus:
          $ref: '#/components/schemas/itinerary-bus'
        train:
          $ref: '#/components/schemas/itinerary-train'
        hotel:
          $ref: '#/components/schemas/itinerary-hotel'
        ferry:
          $ref: '#/components/schemas/itinerary-ferry'
    itinerary-flight:
      type: object
      description: Flight itinerary details. <strong>Required when <code>travel_mode</code> is <code>flight</code></strong> . Must not be included for any other travel mode.
      required:
        - departure_airport_code
        - departure_date
        - arrival_airport_code
      properties:
        departure_airport_code:
          description: Unique three-letter geocode used to identify the departure airport location.
          type: string
          example: DEL
        departure_date:
          description: Date of departure of the flight.
          type: string
          format: date
          example: '2025-09-01'
        arrival_airport_code:
          description: Unique three-letter geocode used to identify the arrival airport location.
          type: string
          example: JFK
        meal_type:
          description: 'Meal preference for the traveller in flight. Allowed values: <code>avml</code> (Asian Vegetarian Meal), <code>vgml</code> (Vegetarian Meal (non-dairy)), <code>vlml</code> (Vegetarian Meal (lacto-ovo)), <code>vjml</code> (Vegetarian Jain Meal), <code>bbml</code> (Baby Meal), <code>chml</code> (Child Meal), <code>dbml</code> (Diabetic Meal), <code>blml</code> (Bland Meal), <code>fpml</code> (Fruit Platter), <code>gfml</code> (Gluten-free Meal), <code>hnml</code> (Hindu (Non-Vegetarian) Meal), <code>ksml</code> (Kosher Meal), <code>moml</code> (Muslim Meal), <code>lfml</code> (Low cholesterol/ Low Fat Meal), <code>lsml</code> (Low Sodium Meal (no salt)), <code>nlml</code> (Non-Lactose Meal), <code>lcml</code> (Low Calories Meal).'
          type: string
          enum:
            - avml
            - vgml
            - vlml
            - vjml
            - bbml
            - chml
            - dbml
            - blml
            - fpml
            - gfml
            - hnml
            - ksml
            - moml
            - lfml
            - lsml
            - nlml
            - lcml
          example: avml
        seat_type:
          description: 'Seat preference for the traveller in flight. Allowed values: <code>window</code>, <code>aisle</code>, <code>middle</code>.'
          type: string
          enum:
            - window
            - aisle
            - middle
        class:
          description: 'Class preference for the traveller in flight. Allowed values: <code>none</code>, <code>first</code>, <code>economy</code>, <code>premium_economy</code>, <code>business</code>.'
          type: string
          enum:
            - none
            - first
            - economy
            - premium_economy
            - business
        time_preference:
          description: 'Time preference for the traveller in flight. Allowed values: <code>morning</code>, <code>afternoon</code>, <code>evening</code>, <code>night</code>.'
          type: string
          enum:
            - morning
            - afternoon
            - evening
            - night
    itinerary-hotel:
      type: object
      description: Hotel itinerary details. <strong>Required when <code>travel_mode</code> is <code>hotel</code></strong>. Must not be included for any other travel mode.
      required:
        - check_in_date
        - check_out_date
        - city
      properties:
        check_in_date:
          description: Check-in date for the hotel.
          type: string
          format: date
          example: '2025-08-01'
        check_out_date:
          description: Check-out date for the hotel.
          type: string
          format: date
          example: '2025-08-14'
        city:
          description: Location of the hotel.
          type: string
          example: New York
    itinerary-car:
      type: object
      description: Car itinerary details. <strong>Required when <code>travel_mode</code> is <code>car</code></strong>. Must not be included for any other travel mode.
      required:
        - pick_up_location
        - pick_up_date
        - drop_off_location
        - drop_off_date
      properties:
        pick_up_location:
          description: Pickup location for the car.
          type: string
          example: New York
        pick_up_date:
          description: Pickup date for car rental.
          type: string
          format: date
          example: '2025-09-02'
        drop_off_location:
          description: Drop-off location for car rental.
          type: string
          example: New Jersey
        drop_off_date:
          description: Drop-off date for car rental.
          type: string
          format: date
          example: '2025-09-02'
        car_type:
          description: 'Car type preference for the traveller. Allowed values: <code>small</code>, <code>medium</code>, <code>large</code>, <code>estate</code>, <code>premium</code>, <code>people_carrier</code>, <code>suv</code>.'
          type: string
          enum:
            - small
            - medium
            - large
            - estate
            - premium
            - people_carrier
            - suv
        driver_type:
          description: 'Whether a driver is required. Allowed values: <code>not_available</code> (No), <code>available_free</code> (Yes).'
          type: string
          enum:
            - not_available
            - available_free
    itinerary-bus:
      type: object
      description: Bus itinerary details. <strong>Required when <code>travel_mode</code> is <code>bus</code></strong>. Must not be included for any other travel mode.
      required:
        - departure_city
        - departure_date
        - arrival_city
      properties:
        departure_city:
          description: Departure point of the bus.
          type: string
          example: New York
        departure_date:
          description: Departure date of the bus.
          type: string
          format: date
          example: '2025-09-04'
        arrival_city:
          description: Arrival point of the bus.
          type: string
          example: New Rochelle
    itinerary-train:
      type: object
      description: Train itinerary details. <strong>Required when <code>travel_mode</code> is <code>train</code></strong>. Must not be included for any other travel mode.
      required:
        - departure_city
        - departure_date
        - arrival_city
      properties:
        departure_city:
          description: Departure point of the train.
          type: string
          example: New York
        departure_date:
          description: Departure date of the train.
          type: string
          format: date
          example: '2025-09-08'
        arrival_city:
          description: Arrival point of the train.
          type: string
          example: New Philadelphia
    itinerary-ferry:
      type: object
      description: Ferry itinerary details. <strong>Required when <code>travel_mode</code> is <code>ferry</code></strong>. Must not be included for any other travel mode.
      required:
        - departure_city
        - departure_date
        - arrival_city
      properties:
        departure_city:
          description: Departure point of the ferry.
          type: string
          example: Ahuas
        departure_date:
          description: Departure date of the ferry.
          type: string
          format: date
          example: '2025-09-24'
        arrival_city:
          description: Arrival point of the ferry.
          type: string
          example: Agrinion
    policy_name:
      description: Name of the Policy.
      type: string
      example: Official Trips
    submitted_date:
      description: Date of trip submission.
      type: string
      example: '2017-02-28'
    last_submitted_date:
      description: Date of previous submission.
      type: string
      example: '2017-02-28'
    approved_date:
      description: Date of trip Approval.
      type: string
      example: '2017-03-01'
    approver_id:
      description: Unique ID for the current approver.
      type: string
      example: '16367000000073001'
    approver_name:
      description: Current approver name.
      type: string
      example: PATRICIA BOYLE
    approver_email:
      description: Email ID of the current approver.
      type: string
      example: patriciab@zillum.com
    approver_department_name:
      description: Department Name of the Approver.
      type: string
      example: Finance
    submitted_to_id:
      description: Unique ID of the person to whom the trip was submitted first.
      type: string
      example: '16367000000073001'
    submitted_to_name:
      description: Name of the person to whom the trip was submitted first.
      type: string
      example: PATRICIA BOYLE
    submitted_to_email:
      description: Email ID of the person to whom the trip was submitted first.
      type: string
      example: patriciab@zillum.com
    submitted_to_employee_no:
      description: Employee Number of the person to whom the trip was submitted first.
      type: string
      example: E001
    submitted_to_department_name:
      description: Department Name of the person to whom the trip was submitted first.
      type: string
      example: Finance
    submitted_by:
      description: Unique ID of the submitter.
      type: string
      example: '34017000000091001'
    submitter_name:
      description: Name of the submitter.
      type: string
      example: Will Smith
    submitter_email:
      description: Email ID of the submitter.
      type: string
      example: will.smith@gmail.com
    submitter_employee_no:
      description: Employee Number of the submitter.
      type: string
      example: E002
    submitter_department_name:
      description: Department Name of the submitter.
      type: string
      example: Maintenance
    next_approver_id:
      description: Unique ID of the Next Approver.
      type: string
      example: '16367000000073001'
    next_approver_email:
      description: Email Id of Next Approver.
      type: string
      example: patriciab@zillum.com
    next_approver_name:
      description: Name of the Next Approver.
      type: string
      example: PATRICIA BOYLE
    employee_number:
      description: Employee Number of the owner of the trip.
      type: string
      example: E003
    department_id:
      description: Unique ID of the department.
      type: string
      example: '16367000000093001'
    department_name:
      description: Name of the department.
      type: string
      example: Finance
    created_time:
      description: Time when the trip was created.
      type: string
      example: 2017-02-28T18:18:03+0530
    created_date:
      description: Date when the trip was created.
      type: string
      example: '2017-02-28'
    last_modified_time:
      description: Time when the trip was last modified.
      type: string
      example: 2017-02-28T18:31:09+0530
    created_by_id:
      description: Unique ID of the person who created the trip.
      type: string
      example: '16367000000073071'
    created_by_name:
      description: Name of the person who created the trip.
      type: string
      example: Will Smith
    created_by_email:
      description: Email ID of the person who created the trip.
      type: string
      example: will.smith@gmail.com
    user_id:
      description: Unique ID of the owner of the trip.
      type: string
      example: '16367000000073001'
    role_id:
      description: Unique ID of the User Role.
      type: string
      example: '16367000000030001'
    user_name:
      description: Name of the User.
      type: string
      example: Will Smith
    user_email:
      description: Email Id of the User.
      type: string
      example: will.smith@gmail.com
    user_employee_no:
      description: Employee number of the user
      type: string
      example: E002
    user_department_name:
      description: Department of the user
      type: string
      example: Maintenance
    report_id:
      description: Unique ID of the report.
      type: string
      example: '34017012500061219'
    date:
      description: Date of Approval.
      type: string
      example: '2017-03-01'
    previous_approver_id:
      description: Unique ID of Previous Approver.
      type: string
      example: '16367000000073001'
    previous_approver_name:
      description: Name of the Previous Approver.
      type: string
      example: Will Smith
    previous_approver_email:
      description: Email ID of the Previous Approver.
      type: string
      example: will.smith@gmail.com
    previous_approver_employee_no:
      description: Employee Number of the Previous Approver.
      type: string
      example: E008
    previous_approver_department_name:
      description: Department Name of the Previous Approver.
      type: string
      example: Marketing
    approver_employee_no:
      description: Employee Number of the Approver.
      type: string
      example: E001
    Type.Trip-Status.Submitted:
      description: List all submitted trip requests
      type: string
    Type.Trip-Status.Approved:
      description: List all approved trip requests
      type: string
    Type.Trip-Status.Rejected:
      description: List all rejected trip requests
      type: string
    Type.Trip-Status.Closed:
      description: List all closed trips
      type: string
    Type.Trip-Status.Cancelled:
      description: List all the cancelled trips.
      type: string
    filter_by:
      description: For filtering trips based on status.
      type: object
      properties:
        Type.Trip%2CStatus.Submitted:
          $ref: '#/components/schemas/Type.Trip-Status.Submitted'
        Type.Trip%2CStatus.Approved:
          $ref: '#/components/schemas/Type.Trip-Status.Approved'
        Type.Trip%2CStatus.Rejected:
          $ref: '#/components/schemas/Type.Trip-Status.Rejected'
        Type.Trip%2CStatus.Closed:
          $ref: '#/components/schemas/Type.Trip-Status.Closed'
        Type.Trip%2CStatus.Cancelled:
          $ref: '#/components/schemas/Type.Trip-Status.Cancelled'
    trips:
      type: object
      properties:
        start_date:
          $ref: '#/components/schemas/start_date'
        end_date:
          $ref: '#/components/schemas/end_date'
        trip_id:
          $ref: '#/components/schemas/trip_id'
        trip_number:
          $ref: '#/components/schemas/trip_number'
        business_purpose:
          $ref: '#/components/schemas/business_purpose'
        description:
          $ref: '#/components/schemas/description'
        departure:
          $ref: '#/components/schemas/departure'
        destination_country:
          $ref: '#/components/schemas/destination_country'
        destination_city:
          $ref: '#/components/schemas/destination_city'
        is_billable:
          $ref: '#/components/schemas/is_billable'
        customer_id:
          $ref: '#/components/schemas/customer_id'
        project_id:
          $ref: '#/components/schemas/project_id'
        customer_name:
          $ref: '#/components/schemas/customer_name'
        project_name:
          $ref: '#/components/schemas/project_name'
        status:
          $ref: '#/components/schemas/status'
        custom_fields:
          $ref: '#/components/schemas/custom_fields'
        submitted_date:
          $ref: '#/components/schemas/submitted_date'
        last_submitted_date:
          $ref: '#/components/schemas/last_submitted_date'
        approver_id:
          $ref: '#/components/schemas/approver_id'
        approver_name:
          $ref: '#/components/schemas/approver_name'
        approver_email:
          $ref: '#/components/schemas/approver_email'
        submitted_to_id:
          $ref: '#/components/schemas/submitted_to_id'
        submitted_to_name:
          $ref: '#/components/schemas/submitted_to_name'
        submitted_to_email:
          $ref: '#/components/schemas/submitted_to_email'
        submitted_to_employee_no:
          $ref: '#/components/schemas/submitted_to_employee_no'
        submitted_to_department_name:
          $ref: '#/components/schemas/submitted_to_department_name'
        submitted_by:
          $ref: '#/components/schemas/submitted_by'
        submitter_name:
          $ref: '#/components/schemas/submitter_name'
        submitter_email:
          $ref: '#/components/schemas/submitter_email'
        submitter_employee_no:
          $ref: '#/components/schemas/submitter_employee_no'
        submitter_department_name:
          $ref: '#/components/schemas/submitter_department_name'
        employee_number:
          $ref: '#/components/schemas/employee_number'
        department_id:
          $ref: '#/components/schemas/department_id'
        department_name:
          $ref: '#/components/schemas/department_name'
        next_approver_id:
          $ref: '#/components/schemas/next_approver_id'
        next_approver_email:
          $ref: '#/components/schemas/next_approver_email'
        next_approver_name:
          $ref: '#/components/schemas/next_approver_name'
        approver_employee_no:
          $ref: '#/components/schemas/approver_employee_no'
        approver_department_name:
          $ref: '#/components/schemas/approver_department_name'
        previous_approver_id:
          $ref: '#/components/schemas/previous_approver_id'
        previous_approver_name:
          $ref: '#/components/schemas/previous_approver_name'
        previous_approver_email:
          $ref: '#/components/schemas/previous_approver_email'
        previous_approver_employee_no:
          $ref: '#/components/schemas/previous_approver_employee_no'
        previous_approver_department_name:
          $ref: '#/components/schemas/previous_approver_department_name'
        comments:
          $ref: '#/components/schemas/comments'
        created_time:
          $ref: '#/components/schemas/created_time'
        created_date:
          $ref: '#/components/schemas/created_date'
        last_modified_time:
          $ref: '#/components/schemas/last_modified_time'
        created_by_id:
          $ref: '#/components/schemas/created_by_id'
        created_by_name:
          $ref: '#/components/schemas/created_by_name'
        created_by_email:
          $ref: '#/components/schemas/created_by_email'
        user_id:
          $ref: '#/components/schemas/user_id'
        policy_id:
          $ref: '#/components/schemas/policy_id'
        policy_name:
          $ref: '#/components/schemas/policy_name'
        user_name:
          $ref: '#/components/schemas/user_name'
        user_email:
          $ref: '#/components/schemas/user_email'
        user_employee_no:
          $ref: '#/components/schemas/user_employee_no'
        user_department_name:
          $ref: '#/components/schemas/user_department_name'
        documents:
          $ref: '#/components/schemas/documents'
    create-a-trip-request:
      required:
        - travel_type
        - trip_name
      type: object
      properties:
        policy_id:
          $ref: '#/components/schemas/policy_id'
        trip_name:
          $ref: '#/components/schemas/trip_name'
        travel_type:
          $ref: '#/components/schemas/travel_type'
        destination_country_code:
          $ref: '#/components/schemas/destination_country_code'
        is_visa_required:
          $ref: '#/components/schemas/is_visa_required'
        business_purpose:
          $ref: '#/components/schemas/business_purpose'
        budget:
          $ref: '#/components/schemas/budget'
        other_travellers:
          description: Co-travellers on the trip.
          type: array
          items:
            $ref: '#/components/schemas/other_traveller'
        customer_id:
          $ref: '#/components/schemas/customer_id'
        project_id:
          $ref: '#/components/schemas/project_id'
        is_billable:
          $ref: '#/components/schemas/is_billable'
        custom_fields:
          description: Custom fields for the trip.
          type: array
          items:
            $ref: '#/components/schemas/trip_custom_field'
      example:
        policy_id: '30082000000003588'
        travel_type: international
        trip_name: Delhi to New York
        destination_country_code: US
        business_purpose: Meeting with client
        budget:
          amount: 100
          currency_id: '238277000000000097'
          exchange_rate: 94.482237
        other_travellers:
          - user_id: '238277000000129433'
          - user_id: '238277000000129513'
        customer_id: '238277000000138461'
        project_id: '238277000000313928'
        is_billable: false
        custom_fields:
          - customfield_id: '238277000000641078'
            value: 1599
          - customfield_id: '238277000000641085'
            value: 1200
          - customfield_id: '238277000000702009'
            value: PO-MKT-250825-0047
    create-a-trip-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: trip created successfully
          readOnly: true
        trip:
          $ref: '#/components/schemas/trip'
    retrieve-list-of-all-trips-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: success
          readOnly: true
        trips:
          type: array
          items:
            type: object
            description: Minimal trip item for list; no itineraries or other_travellers.
            properties:
              trip_id:
                $ref: '#/components/schemas/trip_id'
              travel_type:
                $ref: '#/components/schemas/travel_type'
              trip_name:
                $ref: '#/components/schemas/trip_name'
              destination_country_code:
                $ref: '#/components/schemas/destination_country_code'
              policy_id:
                $ref: '#/components/schemas/policy_id'
              policy_name:
                $ref: '#/components/schemas/policy_name'
              is_visa_required:
                $ref: '#/components/schemas/is_visa_required'
              start_date:
                $ref: '#/components/schemas/start_date'
              end_date:
                $ref: '#/components/schemas/end_date'
              trip_number:
                $ref: '#/components/schemas/trip_number'
              business_purpose:
                $ref: '#/components/schemas/business_purpose'
              description:
                $ref: '#/components/schemas/description'
              departure:
                $ref: '#/components/schemas/departure'
              destination_country:
                $ref: '#/components/schemas/destination_country'
              destination_city:
                $ref: '#/components/schemas/destination_city'
              is_billable:
                $ref: '#/components/schemas/is_billable'
              customer_id:
                $ref: '#/components/schemas/customer_id'
              project_id:
                $ref: '#/components/schemas/project_id'
              project_name:
                $ref: '#/components/schemas/project_name'
              customer_name:
                $ref: '#/components/schemas/customer_name'
              status:
                $ref: '#/components/schemas/status'
              custom_fields:
                $ref: '#/components/schemas/custom_fields'
              submitted_date:
                $ref: '#/components/schemas/submitted_date'
              last_submitted_date:
                $ref: '#/components/schemas/last_submitted_date'
              approved_date:
                $ref: '#/components/schemas/approved_date'
              approver_id:
                $ref: '#/components/schemas/approver_id'
              approver_name:
                $ref: '#/components/schemas/approver_name'
              approver_email:
                $ref: '#/components/schemas/approver_email'
              submitted_to_id:
                $ref: '#/components/schemas/submitted_to_id'
              submitted_to_name:
                $ref: '#/components/schemas/submitted_to_name'
              submitted_to_email:
                $ref: '#/components/schemas/submitted_to_email'
              submitted_to_employee_no:
                $ref: '#/components/schemas/submitted_to_employee_no'
              submitted_to_department_name:
                $ref: '#/components/schemas/submitted_to_department_name'
              submitted_by:
                $ref: '#/components/schemas/submitted_by'
              submitter_name:
                $ref: '#/components/schemas/submitter_name'
              submitter_email:
                $ref: '#/components/schemas/submitter_email'
              submitter_employee_no:
                $ref: '#/components/schemas/submitter_employee_no'
              submitter_department_name:
                $ref: '#/components/schemas/submitter_department_name'
              employee_number:
                $ref: '#/components/schemas/employee_number'
              department_id:
                $ref: '#/components/schemas/department_id'
              department_name:
                $ref: '#/components/schemas/department_name'
              next_approver_id:
                $ref: '#/components/schemas/next_approver_id'
              next_approver_email:
                $ref: '#/components/schemas/next_approver_email'
              next_approver_name:
                $ref: '#/components/schemas/next_approver_name'
              approver_employee_no:
                $ref: '#/components/schemas/approver_employee_no'
              approver_department_name:
                $ref: '#/components/schemas/approver_department_name'
              previous_approver_id:
                $ref: '#/components/schemas/previous_approver_id'
              previous_approver_name:
                $ref: '#/components/schemas/previous_approver_name'
              previous_approver_email:
                $ref: '#/components/schemas/previous_approver_email'
              previous_approver_employee_no:
                $ref: '#/components/schemas/previous_approver_employee_no'
              previous_approver_department_name:
                $ref: '#/components/schemas/previous_approver_department_name'
              comments:
                $ref: '#/components/schemas/comments'
              created_time:
                $ref: '#/components/schemas/created_time'
              created_date:
                $ref: '#/components/schemas/created_date'
              last_modified_time:
                $ref: '#/components/schemas/last_modified_time'
              created_by_id:
                $ref: '#/components/schemas/created_by_id'
              created_by_name:
                $ref: '#/components/schemas/created_by_name'
              created_by_email:
                $ref: '#/components/schemas/created_by_email'
              user_id:
                $ref: '#/components/schemas/user_id'
              user_name:
                $ref: '#/components/schemas/user_name'
              user_email:
                $ref: '#/components/schemas/user_email'
              user_employee_no:
                $ref: '#/components/schemas/user_employee_no'
              user_department_name:
                $ref: '#/components/schemas/user_department_name'
              documents:
                $ref: '#/components/schemas/documents'
        page_context:
          type: object
          description: Pagination and list context.
          properties:
            page:
              type: integer
              example: 1
            per_page:
              type: integer
              example: 50
            has_more_page:
              type: boolean
              example: false
    retrieve-details-of-a-trip-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: success
          readOnly: true
        trip:
          $ref: '#/components/schemas/trip'
      example:
        code: 0
        message: success
        trip:
          trip_id: '34017000000000103'
          travel_type: international
          trip_name: Delhi to New York
          destination_country_code: US
          policy_id: '30082000000003588'
          policy_name: Official Trips
          is_visa_required: false
          start_date: '2017-02-21'
          end_date: '2017-02-27'
          trip_number: TRIP-00001
          business_purpose: Meeting with client
          departure: ABC International Airport
          destination_country: Australia
          destination_city: melbourne
          is_billable: false
          status: approved
          budget:
            currency_id: '238277000000000097'
            currency_code: USD
            exchange_rate: 94.482237
            amount: 100
            amount_formatted: $100.00
            price_precision: 2
            bcy_amount: 9448.22
            bcy_amount_formatted: ₹9,448.22
          no_of_days: 45
          itineraries:
            - itinerary_id: '238277000000820086'
              travel_mode: flight
              is_personal_travel: false
              description: Flights at 7AM is most preferred
              flight:
                departure_airport_code: DEL
                departure_date: '2025-09-01'
                arrival_airport_code: JFK
                meal_type: avml
                seat_type: window
                class: premium_economy
                time_preference: morning
            - itinerary_id: '238277000000820088'
              travel_mode: flight
              is_personal_travel: false
              description: 10PM flights are most preferred
              flight:
                departure_airport_code: JFK
                departure_date: '2025-09-14'
                arrival_airport_code: DEL
                meal_type: gfml
                seat_type: aisle
                class: business
                time_preference: afternoon
            - itinerary_id: '238277000000820090'
              travel_mode: hotel
              is_personal_travel: false
              hotel:
                check_in_date: '2025-08-01'
                check_out_date: '2025-08-14'
                city: New York
            - itinerary_id: '238277000000820092'
              travel_mode: car
              is_personal_travel: false
              description: Travel for the business meeting venue
              car:
                pick_up_location: New York
                pick_up_date: '2025-09-02'
                drop_off_location: New Jersey
                drop_off_date: '2025-09-02'
                car_type: small
                driver_type: not_available
            - itinerary_id: '238277000000820094'
              travel_mode: bus
              is_personal_travel: true
              description: ''
              bus:
                departure_city: New York
                departure_date: '2025-09-04'
                arrival_city: New Rochelle
            - itinerary_id: '238277000000820096'
              travel_mode: train
              is_personal_travel: false
              description: Travel to the meeting venue with the customer
              train:
                departure_city: New York
                departure_date: '2017-09-08'
                arrival_city: New Philadelphia
            - itinerary_id: '238277000000820098'
              travel_mode: ferry
              is_personal_travel: false
              description: ''
              ferry:
                departure_city: Ahuas
                departure_date: '2025-09-24'
                arrival_city: Agrinion
    update-a-trip-request:
      type: object
      required:
        - itineraries
      properties:
        trip_id:
          $ref: '#/components/schemas/trip_id'
        policy_id:
          $ref: '#/components/schemas/policy_id'
        trip_name:
          $ref: '#/components/schemas/trip_name'
        travel_type:
          $ref: '#/components/schemas/travel_type'
        destination_country_code:
          $ref: '#/components/schemas/destination_country_code'
        is_visa_required:
          $ref: '#/components/schemas/is_visa_required'
        business_purpose:
          $ref: '#/components/schemas/business_purpose'
        budget:
          $ref: '#/components/schemas/budget'
        other_travellers:
          description: Co-travellers on the trip.
          type: array
          items:
            $ref: '#/components/schemas/other_traveller'
        customer_id:
          $ref: '#/components/schemas/customer_id'
        project_id:
          $ref: '#/components/schemas/project_id'
        is_billable:
          $ref: '#/components/schemas/is_billable'
        custom_fields:
          description: Custom fields for the trip.
          type: array
          items:
            $ref: '#/components/schemas/trip_custom_field'
        itineraries:
          description: |-
            A list of itineraries for the trip. <ul>
              <li><strong>Delete an existing itinerary:</strong> Remove it from the list. Any itinerary not included in the request will be permanently removed from the trip.</li>
              <li><strong>Add a new itinerary:</strong> Include the new itinerary details in the list. The server will automatically create it as part of the trip.</li>
              <li><strong>Update an existing itinerary:</strong> Include the itinerary with the fields you want to change. Only the provided fields will be updated; the rest will remain as they are.</li>
            </ul> Include all itineraries you want to retain in the trip. Not including an existing itinerary will result in its deletion.
          type: array
          items:
            $ref: '#/components/schemas/itinerary'
      example:
        trip_id: '238277000000820025'
        policy_id: '30082000000003588'
        travel_type: international
        trip_name: Delhi to New York
        destination_country_code: US
        is_visa_required: false
        business_purpose: Meeting with client
        budget:
          amount: 100
          currency_id: '238277000000000097'
          exchange_rate: 94.482237
        other_travellers:
          - user_id: '238277000000129433'
          - user_id: '238277000000129513'
        customer_id: '238277000000138461'
        project_id: '238277000000313928'
        is_billable: false
        custom_fields:
          - customfield_id: '238277000000641078'
            value: 1599
          - customfield_id: '238277000000641085'
            value: 1200
          - customfield_id: '238277000000702009'
            value: PO-MKT-250825-0047
        itineraries:
          - itinerary_id: '238277000000820086'
            travel_mode: flight
            is_personal_travel: false
            description: Flights at 8AM is most preferred
            flight:
              departure_airport_code: DEL
              departure_date: '2025-09-01'
              arrival_airport_code: JFK
              meal_type: avml
              seat_type: window
              class: premium_economy
              time_preference: morning
          - travel_mode: flight
            is_personal_travel: false
            description: 10PM flights are most preferred
            flight:
              departure_airport_code: JFK
              departure_date: '2025-09-14'
              arrival_airport_code: DEL
              meal_type: gfml
              seat_type: aisle
              class: business
              time_preference: afternoon
          - travel_mode: hotel
            is_personal_travel: false
            hotel:
              check_in_date: '2025-08-01'
              check_out_date: '2025-08-14'
              city: New York
          - travel_mode: car
            is_personal_travel: false
            description: Travel for the business meeting venue
            car:
              pick_up_location: New York
              pick_up_date: '2025-09-02'
              drop_off_location: New Jersey
              drop_off_date: '2025-09-02'
              car_type: small
              driver_type: not_available
          - travel_mode: bus
            is_personal_travel: true
            description: ''
            bus:
              departure_city: New York
              departure_date: '2025-09-04'
              arrival_city: New Rochelle
          - travel_mode: train
            is_personal_travel: false
            description: Travel to the meeting venue with the customer
            train:
              departure_city: New York
              departure_date: '2025-09-08'
              arrival_city: New Philadelphia
          - travel_mode: ferry
            is_personal_travel: false
            ferry:
              departure_city: Ahuas
              departure_date: '2025-09-24'
              arrival_city: Agrinion
    update-a-trip-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: Trip details updated successfully
          readOnly: true
        trip:
          $ref: '#/components/schemas/trip'
      example:
        code: 0
        message: Trip details updated successfully
        trip:
          trip_id: '34017000000000103'
          travel_type: international
          trip_name: Delhi to New York
          destination_country_code: US
          policy_id: '30082000000003588'
          policy_name: Official Trips
          is_visa_required: false
          start_date: '2017-02-21'
          end_date: '2017-02-27'
          trip_number: TRIP-00001
          business_purpose: Meeting with client
          departure: ABC International Airport
          destination_country: Australia
          destination_city: melbourne
          is_billable: false
          status: approved
          budget:
            currency_id: '238277000000000097'
            currency_code: USD
            exchange_rate: 94.482237
            amount: 100
            amount_formatted: $100.00
            price_precision: 2
            bcy_amount: 9448.22
            bcy_amount_formatted: ₹9,448.22
          no_of_days: 45
          itineraries:
            - itinerary_id: '238277000000820086'
              travel_mode: flight
              is_personal_travel: false
              description: Flights at 7AM is most preferred
              flight:
                departure_airport_code: DEL
                departure_date: '2025-09-01'
                arrival_airport_code: JFK
                meal_type: avml
                seat_type: window
                class: premium_economy
                time_preference: morning
            - itinerary_id: '238277000000820088'
              travel_mode: flight
              is_personal_travel: false
              description: 10PM flights are most preferred
              flight:
                departure_airport_code: JFK
                departure_date: '2025-09-14'
                arrival_airport_code: DEL
                meal_type: gfml
                seat_type: aisle
                class: business
                time_preference: afternoon
            - itinerary_id: '238277000000820090'
              travel_mode: hotel
              is_personal_travel: false
              hotel:
                check_in_date: '2025-08-01'
                check_out_date: '2025-08-14'
                city: New York
            - itinerary_id: '238277000000820092'
              travel_mode: car
              is_personal_travel: false
              description: Travel for the business meeting venue
              car:
                pick_up_location: New York
                pick_up_date: '2025-09-02'
                drop_off_location: New Jersey
                drop_off_date: '2025-09-02'
                car_type: small
                driver_type: not_available
            - itinerary_id: '238277000000820094'
              travel_mode: bus
              is_personal_travel: true
              description: ''
              bus:
                departure_city: New York
                departure_date: '2025-09-04'
                arrival_city: New Rochelle
            - itinerary_id: '238277000000820096'
              travel_mode: train
              is_personal_travel: false
              description: Travel to the meeting venue with the customer
              train:
                departure_city: New York
                departure_date: '2017-09-08'
                arrival_city: New Philadelphia
            - itinerary_id: '238277000000820098'
              travel_mode: ferry
              is_personal_travel: false
              description: ''
              ferry:
                departure_city: Ahuas
                departure_date: '2025-09-24'
                arrival_city: Agrinion
    delete-a-trip-request-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: Trip(s) deleted successfully
          readOnly: true
    approve-a-trip-request-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: Trip approved successfully
          readOnly: true
    reject-a-trip-request-request:
      type: object
      properties:
        comments:
          $ref: '#/components/schemas/comments'
    reject-a-trip-request-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: Trip has been rejected.
          readOnly: true
    cancel-a-trip-request:
      type: object
      properties:
        comments:
          $ref: '#/components/schemas/comments'
    cancel-a-trip-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: Trip has been marked 'Cancelled'.
          readOnly: true
    close-a-trip-response:
      type: object
      properties:
        code:
          type: integer
          example: 0
          readOnly: true
        message:
          type: string
          example: Trip closed successfully
          readOnly: true
  securitySchemes:
    Zoho_Auth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://accounts.zoho.com/oauth/v2/auth
          scopes:
            ZohoExpense.trip.CREATE: Create trip
            ZohoExpense.trip.READ: Read trip
            ZohoExpense.trip.UPDATE: Update trip
            ZohoExpense.trip.DELETE: Delete trip
            ZohoExpense.approval.CREATE: Create approval
