Spotnana Event Templates API

APIs to create and manage event templates.

OpenAPI Specification

spotnana-event-templates-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Air Event Templates 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: Event Templates
  description: APIs to create and manage event templates.
paths:
  /v2/event-templates:
    post:
      tags:
      - Event Templates
      summary: Create an event template
      description: This endpoint creates an event template.
      operationId: createEventTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEventTemplateRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNonUUIDId'
                example:
                  id: 1234567890
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/event-templates/hidden:
    post:
      tags:
      - Event Templates
      summary: Toggle hidden template
      description: Enable or disable hidden template for an organization. When enabled, creates or unarchives a hidden template. When disabled, archives it.
      operationId: toggleHiddenTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToggleHiddenTemplateRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToggleHiddenTemplateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    get:
      tags:
      - Event Templates
      summary: Get hidden template status
      description: Check if hidden template is enabled for an organization.
      operationId: getHiddenTemplateStatus
      parameters:
      - name: companyId
        in: query
        description: Company ID
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHiddenTemplateStatusResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/event-templates/{templateId}:
    parameters:
    - name: templateId
      in: path
      description: Template ID
      required: true
      schema:
        type: string
        example: '6926658168'
    get:
      tags:
      - Event Templates
      summary: Get event template
      description: This endpoint gets event template details for a given template ID.
      operationId: getEventTemplate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventTemplateResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      tags:
      - Event Templates
      summary: Delete an event template
      description: This endpoint archives an event template.
      operationId: deleteEventTemplate
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/event-templates/{templateId}/edit-basic-info:
    parameters:
    - name: templateId
      in: path
      description: Template ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Event Templates
      summary: Update template's basic information
      description: This endpoint allows updating basic template information.
      operationId: updateTemplateBasicInfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTemplateBasicInfoRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/event-templates/{templateId}/edit-booking-guidelines:
    parameters:
    - name: templateId
      in: path
      description: Template ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Event Templates
      summary: Update template booking guidelines
      description: This endpoint updates the booking guidelines for a template.
      operationId: updateTemplateBookingGuidelines
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTemplateBookingGuidelinesRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/event-templates/{templateId}/custom-field-responses:
    parameters:
    - name: templateId
      in: path
      description: Template ID
      required: true
      schema:
        type: string
        example: '6926658168'
    put:
      tags:
      - Event Templates
      summary: Update template's custom field responses.
      description: This endpoint updates the template's custom field responses.
      operationId: updateTemplateCustomFieldResponses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateCustomFieldResponsesRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/event-templates/list:
    post:
      tags:
      - Event Templates
      summary: List event templates
      description: This endpoint lists event templates.
      operationId: listEventTemplates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListEventTemplatesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEventTemplatesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/event-templates/read-by-external-id:
    parameters:
    - name: externalId
      in: query
      description: External ID
      required: true
      schema:
        type: string
        example: '6926658168'
    - name: companyId
      in: query
      description: Company ID
      required: true
      schema:
        type: string
        format: uuid
        example: f49d00fe-1eda-4304-ba79-a980f565281d
    get:
      tags:
      - Event Templates
      summary: Get template by external ID
      description: 'Get template details using the template''s `externalId`. External IDs are unique identifiers which can be set based on the company''s preference.

        '
      operationId: getEventTemplateByExternalID
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventTemplateResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The specified resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    LegalEntityFilterWrapper:
      type: object
      title: LegalEntityFilterWrapper
      description: Wrapper for LegalEntityFilter
      properties:
        legalEntityFilter:
          $ref: '#/components/schemas/LegalEntityFilter'
    AllowedFlightGuideline:
      title: AllowedFlightGuideline
      description: Flight related guideline
      type: object
      required:
      - allowedFlightType
      properties:
        allowedFlightType:
          description: The type of flight booking allowed for the event.
          $ref: '#/components/schemas/AllowedFlightType'
        numberOfLegs:
          description: The number of legs allowed for the flight booking.
          type: integer
          example: 2
    BookingStatusType:
      title: BookingStatusType
      description: Booking status of the travel.
      type: string
      enum:
      - BOOKED
      - NOT_BOOKED
      - OPTED_OUT
      example: BOOKED
    EventTemplateStatusFilter:
      type: array
      title: EventTemplateStatusFilter
      description: Event filter status filter
      items:
        $ref: '#/components/schemas/EventTemplateStatus'
    EventUserRsvp:
      title: EventUserRsvp
      type: object
      description: User rsvp for the event
      properties:
        userId:
          $ref: '#/components/schemas/UserId'
        eventRsvpState:
          $ref: '#/components/schemas/EventRsvpState'
        eventRsvpResponse:
          $ref: '#/components/schemas/EventRsvpResponse'
        invitedAt:
          $ref: '#/components/schemas/DateTimeOffset'
        airBookingStatus:
          $ref: '#/components/schemas/BookingStatusType'
        railBookingStatus:
          $ref: '#/components/schemas/BookingStatusType'
        carBookingStatus:
          $ref: '#/components/schemas/BookingStatusType'
        hotelBookingStatus:
          $ref: '#/components/schemas/BookingStatusType'
    EntityMetadata:
      title: EntityMetadata
      description: Metadata for associated entity of document.
      type: object
      oneOf:
      - $ref: '#/components/schemas/PnrMetadataWrapper'
      - $ref: '#/components/schemas/EventMetadataWrapper'
    EventIdFilterWrapper:
      type: object
      title: EventIdFilterWrapper
      description: Wrapper for EventIdFilter
      properties:
        eventIdFilter:
          $ref: '#/components/schemas/EventIdFilter'
    CustomFieldResponse:
      title: CustomFieldResponse
      type: object
      deprecated: true
      x-sunset: '2026-07-01'
      description: Custom field responses as selected by the event coordinator.
      required:
      - customFieldId
      - travelerAccess
      properties:
        customFieldId:
          type: string
          format: uuid
          description: The unique identifier for the custom field.
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        responseItems:
          type: array
          description: Responses selected by the event coordinator.
          items:
            $ref: '#/components/schemas/CustomFieldResponseItem'
        travelerAccess:
          description: Traveler access for the given custom field.
          $ref: '#/components/schemas/CustomFieldTravelerAccess'
    Money:
      type: object
      title: Money
      description: 'Money object containing details such as the amount, the currency code, and the converted amount.

        '
      required:
      - amount
      - currencyCode
      properties:
        amount:
          type: number
          format: double
          description: The numeric value for the amount of money.
          example: 510
        currencyCode:
          type: string
          description: The 3-letter currency code for the money amount (defined using ISO 4217 standard).
          example: GBP
        convertedAmount:
          type: number
          format: double
          description: 'The converted currency and amount that has been converted (if a currency conversion has been requested).

            For example, if the call requests that money be sent in a specified currency (because the frontend requested

            the backend to send money in the user''s preferred currency).

            '
          example: 715.42
        convertedCurrency:
          type: string
          description: The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
          example: USD
        otherCoinage:
          type: array
          title: OtherCoinage
          description: List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
          items:
            type: object
            properties:
              coinageCode:
                $ref: '#/components/schemas/PaymentMethod'
                description: Payment method
              amount:
                type: number
                format: double
                example: 1000
              conversionRate:
                type: number
                format: double
                description: 1 coin in this system equals to how many currency value
                example: 0.01
              preferredCurrencyConversionRate:
                type: number
                format: double
                description: 1 coin in this system equals to how many currency value
                example: 0.01
              otherCoinageMetadata:
                description: Metadata to store additional information related to the payment method
                discriminator:
                  propertyName: metadataType
                  mapping:
                    FlightPassPaymentMetadata: '#/components/schemas/FlightPassPaymentMetadataWrapper'
                oneOf:
                - $ref: '#/components/schemas/FlightPassPaymentMetadataWrapper'
    SearchEventTemplateSortOptions:
      type: object
      title: SearchEventTemplateSortOptions
      description: Sort options for the list event template request.
      required:
      - sortField
      - sortOrder
      properties:
        sortField:
          type: string
          description: Field to sort by
          enum:
          - EVENT_NAME
          - CREATION_DATE
        sortOrder:
          $ref: '#/components/schemas/SortOrder'
    ProgramDetails:
      type: object
      title: ProgramDetails
      description: Descriptor for programs details.
      required:
      - uscId
      - tourCode
      - snapCode
      properties:
        uscId:
          type: string
          description: Contract Id between vendor and the client.
        tourCode:
          type: string
          description: Tracking code to know which company has booked the ticket, it is added to the price quote and ticket.
        snapCode:
          type: string
          description: Discount code.
    DirectBillingWrapper:
      type: object
      title: DirectBillingWrapper
      description: Wrapper for DirectBilling
      properties:
        directBilling:
          $ref: '#/components/schemas/DirectBilling'
    HotelInfo:
      type: object
      title: HotelInfo
      description: Hotel info
      required:
      - address
      - name
      properties:
        address:
          $ref: '#/components/schemas/PostalAddress'
          description: Address of the hotel.
        chainCode:
          type: string
          description: Chain code of the hotel.
          example: RF
        chainName:
          type: string
          description: Chain name of the hotel.
          example: Red Roof Inns
        coordinates:
          $ref: '#/components/schemas/Latlng'
          description: Coordinates of the hotel.
        email:
          type: string
          description: Email address of the hotel.
          example: user@business.com
        hotelId:
          type: string
          description: Hotel id.
          example: '100094780'
        name:
          type: string
          description: Name of the hotel.
          example: San Francisco Airport Red Roof
        phone:
          $ref: '#/components/schemas/PhoneNumber'
          description: Phone number of the hotel.
        starRating:
          type: number
          description: Star rating of the hotel.
          format: double
          example: 3.5
        fax:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
        masterChainCode:
          type: string
          description: Master chain code of the hotel.
          example: EM
        brandName:
          type: string
          description: Brand name of the hotel.
          example: Marriott Hotel Brands
        amenities:
          type: array
          items:
            $ref: '#/components/schemas/HotelAmenities'
        additionalAmenities:
          type: array
          items:
            type: string
          description: List of amenities provided by the supplier.
          example:
          - Room service
          - Wifi
        imageSets:
          type: array
          items:
            $ref: '#/components/schemas/HotelImageSet'
        descriptions:
          type: array
          items:
            $ref: '#/components/schemas/HotelDescription'
        thirdPartyHotelCodes:
          type: array
          items:
            $ref: '#/components/schemas/ThirdPartyHotelCode'
    FlightPassTax:
      type: object
      title: FlightPassTax
      description: A single tax component of the flight pass fare.
      properties:
        code:
          type: string
          description: Tax code identifier (e.g. GST_HST, QST, OTHER).
          example: GST_HST
        amount:
          description: Tax amount.
          $ref: '#/components/schemas/Money'
    BucketEmailPreferences:
      type: object
      title: BucketEmailPreferences
      description: Email communication preferences based on bucket types.
      required:
      - bucketTypes
      properties:
        bucketTypes:
          type: array
          description: List of email bucket types.
          items:
            $ref: '#/components/schemas/EmailBucketType'
        isEnabled:
          type: boolean
          description: Indicates whether emails are disabled.
          default: false
        toEmails:
          type: array
          description: List of email address to be included in emails.
          items:
            type: string
            format: email
            example: example@email.com
        ccEmails:
          type: array
          description: List of email address to be cc-ed in emails.
          items:
            type: string
            format: email
            example: example@email.com
        bccEmails:
          type: array
          description: List of email address to be bcc-ed in emails.
          items:
            type: string
            format: email
            example: example@email.com
    CompanyFilter:
      type: object
      title: CompanyFilter
      description: CompanyFilter details
      properties:
        companyIds:
          type: array
          description: Company id List
          deprecated: true
          x-sunset: '2026-07-01'
          items:
            $ref: '#/components/schemas/CompanyId'
        companyId:
          description: Company id
          $ref: '#/components/schemas/CompanyId'
    AdditionalInfo:
      type: object
      title: AdditionalInfo
      description: Additional data need to be sent along with the custom field response.
      discriminator:
        propertyName: type
        mapping:
          VARIABLE: '#/components/schemas/Variable'
          EXPRESSION: '#/components/schemas/Expression'
      oneOf:
      - $ref: '#/components/schemas/Variable'
      - $ref: '#/components/schemas/Expression'
    AirlineInfo:
      title: AirlineInfo
      type: object
      required:
      - airlineCode
      - airlineName
      properties:
        airlineCode:
          type: string
          description: IATA code for airline.
          example: AA
        airlineName:
          type: string
          description: Airline name
          example: American Airlines
    UnusedCreditDescriptor:
      type: object
      title: UnusedCreditDescriptor
      description: Descriptor for unused credits.
      required:
      - unusedCreditInfo
      - userId
      - companyId
      properties:
        unusedCreditInfo:
          $ref: '#/components/schemas/UnusedCreditInfo'
        userId:
          description: The user Id of the user who owns the credit.
          $ref: '#/components/schemas/UserId'
        companyId:
          description: The company Id of the user who owns the credit.
          $ref: '#/components/schemas/CompanyId'
    VendorProgramPaymentDescriptorWrapper:
      type: object
      title: VendorProgramPaymentDescriptorWrapper
      description: Wrapper for VendorProgramPaymentDescriptor
      properties:
        vendorProgramPaymentDescriptor:
          $ref: '#/components/schemas/VendorProgramPaymentDescriptor'
    TokenizedExpiryWrapper:
      type: object
      title: TokenizedExpiryWrapper
      properties:
        tokenizedExpiry:
          $ref: '#/components/schemas/TokenizedExpiry'
    UserTripInfo:
      type: object
      title: UserTripInfo
      description: User and their trip information.
      required:
      - userId
      properties:
        userId:
          $ref: '#/components/schemas/UserId'
        tripInfos:
          type: array
          description: List of trips for the user.
          items:
            $ref: '#/components/schemas/TripInfo'
    ThirdPartyHotelCode:
      title: ThirdPartyHotelCode
      type: object
      required:
      - hotelCode
      - hotelCodeType
      properties:
        hotelCode:
          type: string
          description: Third party hotel code.
        hotelCodeType:
          type: string
          description: Type of the third party.
          enum:
          - SABRE_CSL
          - SABRE_TN
          - EXPEDIA_RAPID
          - MARRIOTT
          - GIATA
          - BCD
    RailItinerary:
      type: object
      title: RailItinerary
      properties:
        railItineraryId:
          $ref: '#/components/schemas/RailItineraryId'
    UnusedCreditFop:
      type: object
      title: UnusedCreditFop
      description: Form of payment information associated with an unused credit.
      properties:
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod'
          description: Payment method used for the original booking.
        paymentSourceType:
          $ref: '#/components/schemas/PaymentSourceType'
          description: Type of payment source used.
        card:
          $ref: '#/components/schemas/Card'
          description: Card information if the payment source type is a card.
    UserTripGroup:
      type: object
      title: UserTripGroup
      description: Definition of a group to combine users and their trips.
      required:
      - ownerId
      properties:
        id:
          type: string
          description: ID of the group.
          format: uuid
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        name:
          type: string
          description: Name of the group.
          example: Sample group name
        userGroupInfo:
          $ref: '#/components/schemas/UserGroupInfo'
        userTripInfos:
          type: array
          description: Details of the users and their trips in the group.
          items:
            $ref: '#/components/schemas/UserTripInfo'
        ownerId:
          $ref: '#/components/schemas/UserId'
        status:
          $ref: '#/components/schemas/UserFacingStatus'
        startDate:
          $ref: '#/components/schemas/DateModel'
        endDate:
          $ref: '#/components/schemas/DateModel'
        createdAt:
          $ref: '#/components/schemas/DateTimeOffset'
    AllowTravelersPolicy:
      title: AllowTravelersPolicy
      description: Apply travelers policy when it is less restrictive.
      type: string
      enum:
      - ALLOWED
      - NOT_ALLOWED
    PersonalFilterWrapper:
      type: object
      title: PersonalFilterWrapper
      description: Wrapper for PersonalFilter
      properties:
        personalFilter:
          $ref: '#/components/schemas/PersonalFilter'
    CompanyId:
      type: object
      title: CompanyId
      description: Company ID
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
          example: f49d00fe-1eda-4304-ba79-a980f565281d
    EventTemplateStatusFilterWrapper:
      type: object
      title: EventTemplateStatusFilterWrapper
      description: Wrapper for EventTemplateStatusFilter
      properties:
        eventTemplateStatusFilter:
          $ref: '#/components/schemas/EventTemplateStatusFilter'
    UserId:
      type: object
      title: UserId
      description: User identifier
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
    AmadeusCheckoutWrapper:
      type: object
      title: AmadeusCheckoutWrapper
      description: Wrapper for Amadeus Checkout payment source.
      required:
      - amadeusCheckout
      properties:
        amadeusCheckout:
          $ref: '#/components/schemas/AmadeusCheckout'
    EventTemplateScopeFilterWrapper:
      type: object
      title: EventTemplateScopeFilterWrapper
      description: Wrapper for EventTemplateScopeFilter
      properties:
        eventTemplateScopeFilter:
          $ref: '#/components/schemas/EventTemplateScopeFilter'
    AllowTravelersToRsvp:
      title: AllowTravelersToRsvp
      description: Allow travelers to rsvp for the event
      type: string
      enum:
      - ALLOWED
      - NOT_ALLOWED
    CostCenterFilter:
      type: object
      title: CostCenterFilter
      description: CostCenterFilter details.
      required:
      - costCenterIds
      - companyId
      properties:
        companyId:
          description: company id
          $ref: '#/components/schemas/CompanyId'
        costCenterIds:
          type: array
          description: List of cost center ids
          items:
            $ref: '#/components/schemas/CostCenterId'
    CarBookingGuideline:
      title: CarBookingGuideline
      description: Car related guidelines
      type: object
      properties:
        pickupBookingWindow:
          $ref: '#/components/schemas/EventBookingWindow'
        dropoffBookingWindow:
          $ref: '#/components/schemas/EventBookingWindow'
        paymentGuidelines:
          $ref: '#/components/schemas/CarBookingPaymentGuidelines'
          readOnly: true
    EventTemplateFilterWrapper:
      type: object
      title: EventTemplateFilterWrapper
      description: Wrapper for EventTemplateFilter
      properties:
        eventTemplateFilter:
          $ref: '#/components/schemas/PaymentEventFilter'
    PaymentSourceMapping:
      type: object
      title: PaymentSourceMapping
      properties:
        accessType:
          description: Access Type of the Payment Source
          $ref: '#/components/schemas/AccessType'
        accessTypeEntityId:
          type: string
          description: Entity ID corresponding to the Access Type being created
        filter:
          description: Applicable access information for this payment_source
          $ref: '#/components/schemas/PaymentSourceFilterMetadata'
        travelType:
          type: array
          description: Applicable payment source travel type.
          deprecated: true
          x-sunset: '2026-07-01'
          items:
            $ref: '#/components/schemas/PaymentSourceTravelType'
        travelTypes:
          type: array
          description: Applicable payment source travel types
          items:
            $ref: '#/components/schemas/PaymentSourceTravelType'
        spendTypes:
          type: array
          description: Applicable spend types for payment source other than travel
          items:
            $ref: '#/components/schemas/PaymentSourceSpendType'
        paymentSourceAttributes:
          description: Attributes applicable to the associated payment source.
          $ref: '#/components/schemas/PaymentSourceAttributes'
        accessTypeAttributes:
          description: Attributes applicable to the access type.
          $ref: '#/components/schemas/AccessTypeAttributes'
    CarItineraryId:
      type: object
      title: CarItineraryId
      description: Car itinerary id
      required:
      - searchId
      - carId
      properties:
        searchId:
          type: string
          description: Search id
        carId:
          type: string
          description: Selected car option
    HotelImageSet:
      type: object
      description: Object containing details of images of different for a given category.
      required:
      - category
      - imageGroup
      properties:
        category:
          $ref: '#/components/schemas/HotelImageCategory'
        imageGroup:
          $ref: '#/components/schemas/ImageGroup'
    VendorProgramPaymentDescriptor:
      type: object
      title: VendorProgramPaymentDescriptor
      description: Descriptor for vendor program payment.
      required:
      - vendorProgramPaymentMetadata
      properties:
        vendorInfo:
          $ref: '#/components/schemas/VendorInfo'
        vendorProgramPaymentMetadata:
          $ref: '#/components/schemas/VendorProgramPaymentMetadata'
    HotelRsvpResponse:
      title: HotelRsvpResponse
      type: object
      description: Hotel rsvp response
      properties:
        notNeeded:
          type: boolean
          description: Whether hotel booking is needed by the traveler or not
          example: true
    ErrorResponse:
      type: object
      properties:
        debugIdentifier:
          type: string
          description: Link to debug the error internally.
        errorMessages:
          type: array
          items:
            type: object
            properties:
              errorCode:
                type: string
                description: Error code to identify the specific errors.
              message:
                type: string
                description: Message containing details of error.
              errorParameters:
                type: array
                description: Error message parameters.
                items:
                  $ref: '#/components/schemas/ErrorParameter'
              errorDetail:
                type: string
                description: More details about the error.
    PaymentEventFilterWrapper:
      type: object
      title: PaymentEventFilterWrapper
      description: Wrapper for EventFilter
      properties:
        eventFilter:
          $ref: '#/components/schemas/PaymentEventFilter'
    UnusedCreditFopCardAccessType:
      type: string
      description: The card access type of the FOP associated with the unused credit.
      enum:
      - CARD_ACCESS_CENTRAL
      - CARD_ACCESS_PERSONAL
      - CARD_ACCESS_CORPORATE
    PaymentSourceDescriptor:
      type: object
      title: PaymentSourceDescriptor
      description: Descriptor corresponding to the payment source.
      oneOf:
      - $ref: '#/components/schemas/CardDescriptorWrapper'
      - $ref: '#/components/schemas/RewardsProgramDescriptorWrapper'
      - $ref: '#/components/schemas/VirtualCardDescriptorWrapper'
      - $ref: '#/components/schemas/CustomPaymentMethodDescriptorWrapper'
      - $ref: '#/components/schemas/VendorProgramPaymentDescriptorWrapper'
      - $ref: '#/components/schemas/DelayedInvoicingDescriptorWrapper'
      - $ref: '#/components/schemas/Un

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