Spotnana Approval API

APIs to manage approvals.

Operations 2

POST /v3/approvals/approvers/{userId}/list List approval data for an approver #
POST /v3/approvals/companies/{companyId}/list List approval data for a company #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

spotnana-approval-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Air Approval API
  version: v2
  description: APIs to perform search, checkout and book an air pnr
servers:
- url: https://api-ext-sboxmeta.partners.spotnana.com
  description: Sandbox URL
security:
- Bearer: []
tags:
- name: Approval
  description: APIs to manage approvals.
paths:
  /v3/approvals/approvers/{userId}/list:
    parameters:
    - name: userId
      in: path
      description: Identifier for the approver whose approval data is requested.
      required: true
      schema:
        type: string
        format: uuid
        example: 4974a66b-7493-4f41-908c-58ba81093947
    post:
      tags:
      - Approval
      summary: List approval data for an approver
      description: Retrieves the list of approval data associated with an approver.
      operationId: getApprovalUserApprovalDataList
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetApprovalDataV3Request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApprovalDataV3Response'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v3/approvals/companies/{companyId}/list:
    parameters:
    - name: companyId
      in: path
      description: Identifier for the company whose approvals are requested.
      required: true
      schema:
        type: string
        format: uuid
        example: 4974a66b-7493-4f41-908c-58ba81093947
    post:
      tags:
      - Approval
      summary: List approval data for a company
      description: Retrieves the list of approval data associated with a company.
      operationId: getCompanyApprovalDataList
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetApprovalDataV3Request'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApprovalDataV3Response'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    CabinViewFareCategory:
      type: string
      enum:
      - UNKNOWN_CABIN_CATEGORY
      - BASIC
      - ECONOMY
      - PREMIUM_ECONOMY
      - ECONOMY_PLUS
      - BUSINESS
      - FIRST
      default: UNKNOWN_CABIN_CATEGORY
    Department:
      type: object
      title: Department
      description: Department details.
      required:
      - id
      - name
      properties:
        id:
          $ref: '#/components/schemas/DepartmentId'
        name:
          type: string
          example: IT Department
        externalId:
          type: string
          description: External id of the department
          example: department-ext-id
        employeeCount:
          type: integer
          format: int32
          description: Count of employees in the department
          example: 57
    NameSuffix:
      title: NameSuffix
      description: Suffix for name
      type: string
      enum:
      - NAME_SUFFIX_UNKNOWN
      - SR
      - JR
      - MD
      - PHD
      - II
      - III
      - IV
      - DO
      - ATTY
      - V
      - VI
      - ESQ
      - DC
      - DDS
      - VM
      - JD
      - SECOND
      - THIRD
      example: SR
    MerchantFeeInfo:
      title: MerchantFeeInfo
      description: Describes the merchant fee applicable on the itinerary.
      required:
      - amount
      properties:
        amount:
          $ref: '#/components/schemas/FareAmount'
    CompanyConfigSourceWrapper:
      type: object
      title: CompanyConfigSourceWrapper
      description: Wrapper for option source company config.
      properties:
        companyConfig:
          $ref: '#/components/schemas/CompanyConfigSource'
    SeatPref:
      type: object
      title: SeatPref
      description: Preference about seat of rail.
      properties:
        hasAccessibility:
          type: boolean
          description: Whether or not requires assistance for disability.
          default: false
          example: false
        seatTypes:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefType'
        seatLocations:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefLocation'
        deckLevels:
          type: array
          items:
            $ref: '#/components/schemas/DeckLevel'
        seatDirections:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefDirection'
    AircraftAmenity:
      type: object
      title: AircraftAmenity
      description: Aircraft Amenity properties
      properties:
        displayText:
          type: string
          example: 789 (widebody)
        aircraftType:
          type: string
          example: widebody
        aircraftModel:
          type: string
          example: '787'
    ApprovalDetail:
      type: object
      title: ApprovalDetail
      description: Policy
      properties:
        originalApprovalType:
          $ref: '#/components/schemas/ApprovalType'
        appliedApprovalType:
          $ref: '#/components/schemas/ApprovalType'
    FareAttributes:
      type: object
      description: The rules and attributes related to the fare.
      properties:
        isVoidable:
          type: boolean
          description: Designates whether the fare is voidable or not.
        holdDeadline:
          description: Designates the dateTime until which the fare will be held (when a traveler places a hold on the fare).
          $ref: '#/components/schemas/DateTimeLocal'
        isNonVerifiedExchangeOffer:
          type: boolean
          description: "Designates whether the fare is a non-verified exchange offer. For these fares, the \nexchange price guarantee is not provided by the supplier.\n"
    DepartmentId:
      type: object
      title: DepartmentId
      description: Department id.
      required:
      - id
      properties:
        id:
          type: string
          example: 631ccbcf-9414-5fe0-c234-b324dfbe7422
    DisabledReason:
      type: string
      description: Reason why the trip is disabled if applicable.
      enum:
      - MAX_BOOKINGS_EXCEEDED
      - TRIP_EXPIRED
    TravelRegionType:
      type: string
      title: TravelRegionType
      description: Travel region Type
      enum:
      - DOMESTIC
      - INTERNATIONAL
      example: DOMESTIC
    BagWeightLimit:
      type: object
      description: This contains weight limit details of bag
      properties:
        weightLimit:
          type: array
          description: Weight limit in different units
          items:
            $ref: '#/components/schemas/WeightLimit'
        applicability:
          $ref: '#/components/schemas/BagPolicyApplicability'
    AdhocUserInfo:
      type: object
      title: AdhocUserInfo
      description: Basic information related to ad-hoc traveler profile.
      required:
      - profileOwner
      properties:
        profileOwner:
          $ref: '#/components/schemas/ProfileOwner'
        isSaved:
          type: boolean
          description: "A boolean flag to show if ad-hoc traveler is visible in search. While updating the user \nif client tries to update this field, it will throw exception.\n"
          default: false
    BoardingPolicy:
      type: object
      description: Priority boarding information.
      required:
      - description
      properties:
        description:
          type: string
          description: Text describing the priority boarding policy.
          example: Priority boarding provided for free
    CarPnrSummaryWrapper:
      type: object
      title: CarPnrSummaryWrapper
      properties:
        carPnrSummary:
          $ref: '#/components/schemas/CarPnrSummary'
    LegalEntityIdListWrapper:
      type: object
      title: LegalEntityIdListWrapper
      properties:
        legalEntityIdList:
          type: array
          items:
            $ref: '#/components/schemas/LegalEntityId'
    DateTimeOffset:
      title: DateTimeOffset
      description: ISO8601 UTC Date Time
      type: object
      required:
      - iso8601
      properties:
        iso8601:
          type: string
          pattern: ^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?(Z|([+-](0[0-9]|1[0-4]):([0-5][0-9])))$
          example: 2017-07-21T17:32Z
    PaymentSplitCriterion:
      type: object
      description: The criterion for the payment split.
      properties:
        accessType:
          description: Access Type of the Payment Sources applicable for a portion of payment.
          $ref: '#/components/schemas/AccessType'
    PnrTypeFilterV2:
      type: object
      title: PnrTypeFilterV2
      description: Booking/PNR type filter for the approval data list request.
      required:
      - filterType
      - pnrTypes
      properties:
        filterType:
          type: string
          example: PNR_TYPE_FILTER
        pnrTypes:
          type: array
          description: PNR type list
          items:
            $ref: '#/components/schemas/PnrType'
    UnusablePaymentSource:
      type: object
      title: UnusablePaymentSource
      description: The payment sources which are not usable for the payment rule
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier identifying this payment source
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        reason:
          $ref: '#/components/schemas/UnusableReason'
    UserOrgId:
      type: object
      title: UserOrgId
      description: User and user's organization information.
      required:
      - userId
      - organizationId
      properties:
        organizationAgencyId:
          $ref: '#/components/schemas/OrganizationAgencyId'
        organizationId:
          $ref: '#/components/schemas/OrganizationId'
        userId:
          $ref: '#/components/schemas/UserId'
        tmcInfo:
          $ref: '#/components/schemas/TmcInfo'
          deprecated: true
          x-sunset: '2026-07-01'
        tmcBasicInfo:
          $ref: '#/components/schemas/TmcBasicInfo'
    GetApprovalDataV3Response:
      title: GetApprovalDataV3Response
      description: Response to approval data list request
      type: object
      required:
      - paginationResponseParams
      properties:
        paginationResponseParams:
          $ref: '#/components/schemas/OffsetBasedPaginationResponseParams'
        approvalDataList:
          type: array
          description: List of Approval Data
          items:
            $ref: '#/components/schemas/ApprovalDataV2'
    IntListWrapper:
      type: object
      title: IntListWrapper
      properties:
        iList:
          type: array
          items:
            type: integer
            format: int32
    AirportDetail:
      title: AirportDetail
      description: Detailed information about the airport.
      type: object
      required:
      - airportCode
      - airportName
      properties:
        airportCode:
          type: string
          description: 3-letter code of the airport.
          example: WRA
        airportName:
          type: string
          description: Full name of the airport.
          example: Warder Airport
        cityName:
          type: string
          description: Name of the city in which the airport is located (or is nearest to).
          example: Werder
        countryName:
          type: string
          description: Name of the country in which the airport is located.
          example: Ethiopia
        countryCode:
          type: string
          description: 2-letter IATA country code associated with the airport.
          example: ET
        zoneName:
          type: string
          description: Name of the time zone associated with the airport.
          example: Africa/Addis_Ababa
        stateCode:
          type: string
          description: 2-letter IATA code for the state in which the airport is located.
          example: CA
    PolicyPreventBookingAction:
      type: object
      title: PolicyPreventBookingAction
      description: Whether to allow booking if a rule is violated.
      properties:
        prevent:
          type: boolean
          description: True if booking is to be blocked if rule is violated, else false
        reason:
          type: string
          description: Reason describing why was that specific itinerary not allowed to book.
    LegalEntityId:
      type: object
      title: LegalEntityId
      description: The ID of the legal entity.
      required:
      - id
      properties:
        id:
          type: string
          example: fc1ccbce-8413-4fe9-b233-a324dfbe7421
    OrganizationAgencyId:
      type: object
      title: OrganizationAgencyId
      description: Agency id for the organization.
      deprecated: true
      x-sunset: '2026-07-01'
      required:
      - id
      properties:
        id:
          type: string
    PaymentRule:
      type: object
      description: The payment rule applicable for a booking
      properties:
        paymentSplitDetails:
          $ref: '#/components/schemas/PaymentSplitDetails'
          description: Payment details of slider payment function
        paymentSourceIds:
          type: array
          items:
            type: string
            format: uuid
            description: Unique identifier identifying this payment source
            example: f49d00fe-1eda-4304-ba79-a980f565281d
        allowAddCard:
          type: boolean
          description: Whether to allow user to add a new card for the selected split payment.
        splitCriterion:
          $ref: '#/components/schemas/PaymentSplitCriterion'
          description: Defines the criteria for splitting a payment
        unusablePaymentSources:
          type: array
          items:
            $ref: '#/components/schemas/UnusablePaymentSource'
          description: List of payment sources that are not usable for this payment rule
        paymentSourceConditions:
          type: array
          items:
            $ref: '#/components/schemas/PaymentSourceCondition'
          description: List of conditions for payment sources
    Card:
      type: object
      title: Card
      description: User card info
      required:
      - number
      properties:
        id:
          type: string
          description: Unique identifier for this card
          format: uuid
          example: 34d536b6-f8ff-11eb-9a61-0242ac180002
        type:
          type: string
          enum:
          - UNKNOWN
          - CREDIT
          - DEBIT
          description: Type of card
          example: CREDIT
        company:
          $ref: '#/components/schemas/CardCompany'
        name:
          description: Name on card
          type: string
          example: Harrison Schwartz
          x-pii: SENSITIVE
        address:
          description: Billing address
          $ref: '#/components/schemas/PostalAddress'
          x-pii: SENSITIVE
        number:
          type: string
          description: Card number
          example: '4111111111111111'
        expiryMonth:
          type: integer
          format: int32
          minimum: 1
          maximum: 12
          description: Expiry month
          example: 1
          deprecated: true
          x-sunset: '2026-07-01'
        expiryYear:
          type: integer
          format: int32
          description: Expiry year
          minimum: 2000
          example: 2010
          deprecated: true
          x-sunset: '2026-07-01'
        cvv:
          type: string
          description: Card cvv number
          example: '012'
        label:
          type: string
          description: Card Label
          example: Label amex
        currency:
          type: string
          description: Native currency of the card.
          example: USD
        externalId:
          type: string
          description: Spotnana partner card id.
          example: bxt_RNGsNfzgJDaTstKIKqK4xEuhGYAnMdYK8T40
        vaultId:
          type: string
          description: ID of the vault used for creating the card.
          format: uuid
          example: 34d536b6-f8ff-11eb-9a61-0242ac180002
        expiry:
          description: Card Expiry.
          $ref: '#/components/schemas/CardExpiry'
        ownershipLabel:
          $ref: '#/components/schemas/OwnershipLabel'
          example: PERSONAL
    StealthType:
      type: string
      description: Stealth type.
      enum:
      - STEALTH_TYPE_1
      - STEALTH_TYPE_2
      - STEALTH_TYPE_3
      example: STEALTH_TYPE_1
      x-ignoreBreakingChanges:
      - StealthType->STEALTH_TYPE_4
      - StealthType->STEALTH_TYPE_5
      - StealthType->STEALTH_TYPE_6
    FlightPassPaymentAmounts:
      type: object
      title: FlightPassPaymentAmounts
      description: Fare breakdown for the flight pass booking.
      properties:
        totalAmount:
          description: Total value (base + taxes).
          $ref: '#/components/schemas/Money'
        baseAmount:
          description: Base fare excluding taxes.
          $ref: '#/components/schemas/Money'
        totalTaxes:
          description: Sum of all taxes, fees, and charges.
          $ref: '#/components/schemas/Money'
        taxBreakdown:
          type: array
          description: Breakdown of taxes by code (e.g. GST_HST, QST, OTHER).
          items:
            $ref: '#/components/schemas/FlightPassTax'
    Int32Range:
      type: object
      properties:
        min:
          type: integer
          format: int32
          description: Minimum value - inclusive.
        max:
          type: integer
          format: int32
          description: Maximum value - inclusive.
    EmergencyContactInfo:
      type: object
      title: EmergencyContactInfo
      description: Emergency contact information.
      required:
      - email
      properties:
        address:
          $ref: '#/components/schemas/PostalAddress'
          x-pii: SENSITIVE
        designation:
          type: string
          example: MANAGER
        email:
          type: string
          format: email
          example: emergency-contact@email.com
          x-pii: IDENTIFIER
        name:
          $ref: '#/components/schemas/Name'
        phoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
          x-pii: IDENTIFIER
        userOrgId:
          $ref: '#/components/schemas/UserOrgId'
    AirSearchResponse:
      title: AirSearchResponse
      type: object
      description: A list of itineraries with detailed flight information and prices for each.
      required:
      - searchId
      - itineraryDetails
      properties:
        searchId:
          type: string
          description: The unique ID for this search response. This value must be passed on in the subsequent booking API calls.
          example: ChBjZDg3ZjRjZmRmMTFmMWFiEhBjZDg3Z
        itineraryDetails:
          description: The list of itineraries in the search response.
          $ref: '#/components/schemas/ItineraryInfo'
        paginationParams:
          $ref: '#/components/schemas/PaginationResponseParams'
        metadata:
          $ref: '#/components/schemas/AirMetadata'
    ApprovalStatus:
      type: string
      description: APPROVAL Status
      enum:
      - APPROVAL_PENDING
      - APPROVED
      - DENIED
      - TIMED_OUT
      - SOFT_APPROVAL_TIMEOUT
      example: APPROVED
    BasicTripInfo:
      title: BasicTripInfo
      description: Basic trip info
      type: object
      required:
      - tripId
      - tripName
      properties:
        tripId:
          type: string
          description: Spotnana trip Id
          example: '6926658168'
        tripName:
          type: string
          description: Name of the trip
          example: JFK SFO Trip
        tripDescription:
          type: string
          description: Trip description
          example: JFK SFO Business Trip
        applicationId:
          type: string
          format: uuid
          description: Application id used for the trip.
        startDate:
          $ref: '#/components/schemas/DateModel'
        endDate:
          $ref: '#/components/schemas/DateModel'
        userId:
          description: The user Id of the traveler to whom the trip belongs to.
          $ref: '#/components/schemas/UserId'
        registrarUserId:
          description: The user Id of the registrar of the adhoc traveler.
          $ref: '#/components/schemas/UserId'
        tripMetadata:
          $ref: '#/components/schemas/TripMetadata'
        tripDisabledInfo:
          $ref: '#/components/schemas/TripDisabledInfo'
        stealthType:
          deprecated: true
          x-sunset: '2027-01-01'
          $ref: '#/components/schemas/StealthType'
        stealthMode:
          $ref: '#/components/schemas/StealthMode'
        tripLocations:
          type: array
          description: Locations associated with the trip.
          items:
            $ref: '#/components/schemas/TripLocation'
    Cabin:
      title: Cabin
      description: Flight cabin
      type: string
      enum:
      - UNKNOWN_CABIN
      - ECONOMY
      - PREMIUM_ECONOMY
      - BUSINESS
      - FIRST
      example: ECONOMY
    CustomFieldType:
      type: string
      description: The type of custom field.
      enum:
      - QUESTION
      - MEETING
      - BUDGET
      - BREX_TOKEN
      default: QUESTION
    PolicyFlagActionWrapper:
      type: object
      title: PolicyFlagActionWrapper
      properties:
        flag:
          $ref: '#/components/schemas/PolicyFlagAction'
    CounterLocation:
      type: string
      title: CounterLocation
      description: Rental car counter location.
      enum:
      - UNKNOWN_COUNTER
      - NON_AIRPORT_LOCATION
      - IN_TERMINAL
      - OFF_AIRPORT_RENTAL_SHUTTLE
      - IN_TERMINAL_RENTAL_SHUTTLE
      - ON_AIRPORT_RENTAL_SHUTTLE
      - ON_AIRPORT_AIRPORT_SHUTTLE
      - CALL_FOR_SHUTTLE
      - TWO_SHUTTLES_AIRPORT_AND_RENTAL
      example: OFF_AIRPORT_RENTAL_SHUTTLE
    SplitAmount:
      type: object
      title: SplitAmount
      description: Payment amount details if slider payment function is non-linear.
      properties:
        amount:
          type: array
          items:
            $ref: '#/components/schemas/Money'
            description: List of split amounts required for slider at checkout.
    PaymentInfo:
      type: object
      title: PaymentInfo
      description: Payment information.
      required:
      - card
      properties:
        applicableTo:
          type: array
          items:
            type: string
            enum:
            - UNKNOWN_APPLICABLE_TO
            - AIR
            - HOTEL
            - RAIL
            - CAR
            - SERVICE_FEE
            example: HOTEL
        card:
          $ref: '#/components/schemas/Card'
        accessType:
          $ref: '#/components/schemas/CreditCardAccessType'
        access:
          $ref: '#/components/schemas/CreditCardAccess'
    SplitAmountWrapper:
      type: object
      title: SplitAmountWrapper
      description: Split amount wrapper.
      properties:
        splitAmount:
          $ref: '#/components/schemas/SplitAmount'
    WorkerType:
      type: string
      description: The type of worker.
      enum:
      - EMPLOYEE
      - CONTINGENT
      - SEASONAL
      - INTERN
      - GUEST
      example: EMPLOYEE
      x-enumValidFrom:
        GUEST: '2025-06-03'
    PostalAddressWrapper:
      type: object
      title: PostalAddressWrapper
      properties:
        postalAddress:
          $ref: '#/components/schemas/PostalAddress'
    ItemType:
      type: string
      description: Type of payment item eligible for this fop rule
      enum:
      - SERVICE_FEE
      - TRAVEL_TICKET
      - SEAT
      - BAGGAGE
      - EARLY_BIRD
      example: SEAT
    DoubleRangeWrapper:
      type: object
      title: DoubleRangeWrapper
      properties:
        dRange:
          $ref: '#/components/schemas/DoubleRange'
    ApprovalDeadlineDateRangeFilter:
      type: object
      title: ApprovalDeadlineDateRangeFilter
      description: Date range filter for approval deadline for the approval data list request.
      required:
      - filterType
      properties:
        filterType:
          type: string
          example: APPROVAL_DEADLINE_DATE_RANGE_FILTER
        startDate:
          description: Start date for the date range filter
          $ref: '#/components/schemas/DateModel'
        endDate:
          description: End date for the date range filter
          $ref: '#/components/schemas/DateModel'
    PolicyHideActionWrapper:
      type: object
      title: PolicyHideActionWrapper
      properties:
        hide:
          type: boolean
    MiscPnrSummaryWrapper:
      type: object
      title: MiscPnrSummaryWrapper
      properties:
        miscPnrSummary:
          $ref: '#/components/schemas/MiscPnrSummary'
    SeatAmenityPref:
      type: object
      title: SeatAmenityPref
      description: Seat amenity preference.
      required:
      - seatAmenityTypes
      properties:
        seatAmenityTypes:
          type: array
          items:
            type: string
            enum:
            - UNKNOWN_AIR_SEAT_AMENITY_TYPE
            - FLAT_BED
            - WIFI
            - IN_SEAT_POWER
            example: WIFI
    HotelPnrSummary:
      type: object
      title: HotelPnrSummary
      description: Summary of Hotel PNR
      properties:
        name:
          type: string
          description: Name of hotel
          example: Marriot
        city:
          type: string
          description: Name of city
          example: Bangalore
        totalAmount:
          $ref: '#/components/schemas/Money'
        fromDate:
          $ref: '#/components/schemas/DateTimeLocal'
        toDate:
          $ref: '#/components/schemas/DateTimeLocal'
        pnrStatus:
          $ref: '#/components/schemas/PnrStatus'
        address:
          $ref: '#/components/schemas/PostalAddress'
    Gate:
      type: object
      title: Gate
      description: Flight boarding / arrival gate
      properties:
        gate:
          type: string
          description: Gate number
          example: 1A
        terminal:
          type: string
          description: Airport terminal
          example: '1'
    AllowedFopRule:
      type: object
      description: The payment method applicable for the itinerary
      properties:
        paymentItems:
          type: array
          items:
            $ref: '#/components/schemas/PaymentItem'
            description: List of payment items eligible for associated payment rules.
        amount:
          $ref: '#/components/schemas/Money'
          description: Total amount for specified fare components
        paymentRules:
          type: array
          items:
            $ref: '#/components/schemas/PaymentRule'
            description: List of payment rules applicable for the itinerary
    FlightNumber:
      title: FlightNumber
      description: Flight number and airline code.
      required:
      - airlineCode
      - num
      properties:
        num:
          type: string
          description: Flight number.
          example: '321'
        airlineCode:
          type: string
          description: Two-letter IATA airline code.
          example: AA
    LoyaltyInfo:
      type: object
      title: LoyaltyInfo
      description: Loyalty Info details.
      required:
      - id
      - type
      - issuedBy
      properties:
        appliedTo:
          type: array
          items:
            type: string
            example: TAJ
        id:
          type: string
          example: firstId
          x-pii: IDENTIFIER
        issuedBy:
          type: string
          example: firstIssuedBy
        type:
          type: string
          enum:
          - UNKNOWN_TYPE
          - AIR
          - HOTEL
          - CAR
          - RAIL
          example: AIR
        linked:
          type: boolean
          description: Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types.
          default: false
          example: false
        tier:
          $ref: '#/components/schemas/LoyaltyTier'
    VariableName:
      type: string
      title: VariableName
      description: Name of the variable.
      enum:
      - PUBLISHED_FARE
      - LLF
      - ADD_COLLECT_AMOUNT
      - SELECTED_FARE
      - SPLIT_PAYMENT_FARE
      example: LLF
      x-ignoreBreakingChanges:
      - VariableName->ADD_COLLECT_AMOUNT
      - VariableName->SELECTED_FARE
      - VariableName->SPLIT_PAYMENT_FARE
    Int64Wrapper:
      type: object
      title: Int64Wrapper
      properties:
        l:
          type: integer
          format: int64
    LoyaltyTier:
      type: string
      description: Loyalty membership tier name echoed from the supplier.
      example: GOLD
    EmailBucketType:
      type: string
      title: EmailBucketType
      description: Email bucket type.
      enum:
      - BOOKING_CONFIRMATIONS
      - BOOKING_CHANGES
      - FLIGHT_UPDATES
      - APPROVAL_REQUESTS
      - APPROVAL_UPDATES
      - REMINDERS
      - INVOICE_UPDATES
      x-ignoreBreakingChanges:
      - EmailBucketType->INVOICE_UPDATES
      example: BOOKING_CONFIRMATIONS
    AnswerPair:
      type: object
      properties:
        item:
          type: string
          description: The option selected from the list of available choices.
        value:
          type: string
          description: The additional input provided (by the user) while selecting one of the options.
        description:
          type: string
          description: Description of the selected option.
    ErrorParameter:
      type: object
      title: ErrorParameter
      description: Error parameter
      properties:
        name:
          type: string
          description: Parameter name
        value:
          type: string
          description: Parameter value
    RatingWrapper:
      type: object
      title: RatingWrapper
      properties:
        rating:
          type: number
          format: double
    LocationOperatingSchedule:
      type: object
      title: LocationOperatingSchedule
      description: Operating schedule of vendor
      required:
      - interval
      properties:
        interval:
          type: array
          description: Operating schedule interval
          items:
            $ref: '#/components/schemas/DateTimeRange'
    TravelerLegInfo:
      title: TravelerLegInfo
      type: object
      description: Per leg information for the associated traveler
      required:
      - travelerId
      properties:
        travelerId:
          type: string
          description: Unique identifier for the traveler in this response
          example: adult_0
        travelerLegFare:
          description: The fare amount for the traveler for a given leg
          $ref: '#/components/schemas/FareAmount'
        fareRules:
          description: Fare rules applicable for the traveler
          $ref: '#/components/schemas/FareRules'
    Office:
      type: object
      title: Office
      description: Office details.
      required:
      - id
      - name
      properties:
        address:
          $ref: '#/components/schemas/PostalAddress'
        id:
          $ref: '#/components/schemas/OfficeId'
        name:
          type: string
          example: Office
        latlng:
          $ref: '#/components/schemas/Latlng'
        taxId:
          type: string
          example: '133232'
    MaskAmenity:
      type: object
      title: MaskAmenity
      description: Properties associated with the mask amenity.
      properties:
        displayText:
          type: string
          description: The basic text displayed for mask amenity.
          example: Face covering required
        maskDescription:
          type: string
          description: A full description of the mask amenity.
          example: All passengers are required to wear a face covering throughout their journey
        maskAttrDescription:
          type: string
          example: 'yes'
    OfficeIdWrapper:
      type: object
      title: OfficeIdWrapper
      propertie

# --- truncated at 32 KB (181 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spotnana/refs/heads/main/openapi/spotnana-approval-api-openapi.yml