Expedia Group Loyalty API

Template Loyalty Earn API

OpenAPI Specification

expedia-group-loyalty-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Expedia Group EPS Deposit Bookings Loyalty API
  description: 'The EPS Deposit API manages the deposit policy for a property, offering operations to create/update, read and delete it. <br/><br/>To start experimenting, please use your existing EQC credentials and properties. We''ve also made the following test credentials available: EQCtest12933870 / ew67nk33 assigned to test property ID 12933870.'
  contact:
    name: Expedia Partner Services
    url: https://expediaconnectivity.com/developer
    email: eqcss@expedia.com
  version: '1.0'
servers:
- url: https://services.expediapartnercentral.com/
security:
- Basic: []
tags:
- name: Loyalty
  description: Template Loyalty Earn API
paths:
  /loyalty/earn/transactions:
    get:
      operationId: loyaltyTransactions
      tags:
      - Loyalty
      description: 'Get loyalty earn transactions for the requested transaction date range. <br>

        The response is a list of transactions sorted from the newest transaction date to the oldest.

        '
      parameters:
      - $ref: '#/components/parameters/ItineraryId'
      - $ref: '#/components/parameters/MembershipId'
      - $ref: '#/components/parameters/TransactionType'
      - $ref: '#/components/parameters/TransactionDateStart'
      - $ref: '#/components/parameters/TransactionDateEnd'
      - $ref: '#/components/parameters/From'
      - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: OK
          headers:
            link:
              description: "Contains a single link to get the immediate next set of results. \nThis header will be missing when there are no further results\n"
              schema:
                type: string
                example: /loyalty/earn/transactions?from=1000
            url:
              description: Url of the call made
              schema:
                type: string
                example: /loyalty/earn/transactions?from=1000&transaction_type=AWARD
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoyaltyResponse'
              examples:
                SingleAwardTransaction:
                  value:
                    data:
                    - transaction_id: d78fd53a7ed573b9c9731c569fae096f7a508e7ae586aaa29be96b11e94abb36
                      transaction_type: AWARD
                      transaction_date: 2023-10-21
                      transaction_datetime: 2023-10-21 00:00:00
                      award_date: 2023-10-21
                      itinerary:
                        id: '72564500000000'
                        package_indicator: Standalone
                        booking_item:
                          id: '1329922272'
                          product_line: Lodging
                          begin_use_date: 2023-10-17
                          end_use_date: 2023-10-20
                          booking_date: 2023-10-01
                      loyalty:
                        program_name: Alaska
                        member:
                          id: '456178230'
                          tier: Standard
                          last_name: Doe
                        points:
                          point_definition: 2X_09032020_Alaska
                          pending:
                            total: -100.11
                            base: -90.01
                            bonus: -10.1
                          awarded:
                            total: 100.11
                            base: 90.01
                            bonus: 10.1
                      pricing:
                      - gross_booking_value: 231.19
                        base_price: 190.12
                        currency: USD
                MultipleItineraryTransactions:
                  value:
                    data:
                    - transaction_id: 92215381a66856eb1c3a859f3be9c58d0ba5584e20e3958f758ad3d03fbb84cc
                      transaction_type: PURCHASE
                      transaction_date: 2023-10-01
                      transaction_datetime: 2023-10-01 00:00:00
                      award_date: 2023-10-21
                      itinerary:
                        id: '72564500000000'
                        package_indicator: Standalone
                        booking_item:
                          id: '1329922272'
                          product_line: Lodging
                          begin_use_date: 2023-10-17
                          end_use_date: 2023-10-20
                          booking_date: 2023-10-01
                      loyalty:
                        program_name: Alaska
                        member:
                          id: '456178230'
                          tier: Standard
                          last_name: Doe
                        points:
                          point_definition: 2X_09032020_Alaska
                          pending:
                            total: 100.11
                            base: 90.01
                            bonus: 10.1
                          awarded:
                            total: 0.0
                            base: 0.0
                            bonus: 0.0
                      pricing:
                      - gross_booking_value: 231.19
                        base_price: 190.12
                        currency: USD
                    - transaction_id: 7c9b6df6cd6f7889df41f8f9b0dc03a94ed2b91770c63b0002b0c0943d5d6348
                      transaction_type: MODIFICATION
                      transaction_date: 2023-10-11
                      transaction_datetime: 2023-10-11 00:00:00
                      award_date: 2023-10-21
                      itinerary:
                        id: '72564500000000'
                        package_indicator: Standalone
                        booking_item:
                          id: '1329922272'
                          product_line: Lodging
                          begin_use_date: 2023-10-17
                          end_use_date: 2023-10-20
                          booking_date: 2023-10-01
                      loyalty:
                        program_name: Alaska
                        member:
                          id: '456178230'
                          tier: Standard
                          last_name: Doe
                        points:
                          point_definition: 2X_09032020_Alaska
                          pending:
                            total: 1.1
                            base: 1.1
                            bonus: 0.0
                          awarded:
                            total: 0.0
                            base: 0.0
                            bonus: 0.0
                      pricing:
                      - gross_booking_value: 0.0
                        base_price: 0.0
                        currency: USD
                    - transaction_id: d78fd53a7ed573b9c9731c569fae096f7a508e7ae586aaa29be96b11e94abb36
                      transaction_type: AWARD
                      transaction_date: 2023-10-21
                      transaction_datetime: 2023-10-21 00:00:00
                      award_date: 2023-10-21
                      itinerary:
                        id: '72564500000000'
                        package_indicator: Standalone
                        booking_item:
                          id: '1329922272'
                          product_line: Lodging
                          begin_use_date: 2023-10-17
                          end_use_date: 2023-10-20
                          booking_date: 2023-10-01
                      loyalty:
                        program_name: Alaska
                        tier: Standard
                        member:
                          id: '456178230'
                          tier: tierName
                          last_name: Doe
                        points:
                          point_definition: 2X_09032020_Alaska
                          pending:
                            total: -101.11
                            base: -90.01
                            bonus: -10.1
                          awarded:
                            total: 101.11
                            base: 90.01
                            bonus: 10.1
                      pricing:
                      - gross_booking_value: 231.19
                        base_price: 190.12
                        currency: USD
                NoAwardTransaction:
                  value:
                    data: []
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: BAD_REQUEST
                message: 'Transaction type not supported. Supported transactions types are: [PURCHASE, MODIFICATION, AWARD, CANCEL]'
        '401':
          description: Unauthorized
          headers:
            WWW-Authenticate:
              description: Provides an example of the Authorization header.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: UNAUTHORIZED
                message: Data required to authenticate your request is missing or inaccurate
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: FORBIDDEN
                message: Your request could not be authorized.
        '500':
          description: Unknown Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: INTERNAL_ERROR
                message: An internal server error has occurred.
      security:
      - oauth: []
  /loyalty/earn/last_update:
    get:
      operationId: loyaltyLastUpdate
      tags:
      - Loyalty
      description: 'Get the last update datetime for loyalty earn transactions.

        '
      responses:
        '200':
          description: OK
          headers:
            url:
              schema:
                type: string
                description: Url of the call made
                example: /loyalty/earn/last_update
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoyaltyLastUpdateResponse'
              example:
                last_update: 2023-10-18 12:23:01
        '401':
          description: Unauthorized
          headers:
            WWW-Authenticate:
              description: Provides an example of the Authorization header.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: UNAUTHORIZED
                message: Data required to authenticate your request is missing or inaccurate
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: FORBIDDEN
                message: Your request could not be authorized.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: NOT FOUND
                message: There is no data for the given request.
        '500':
          description: Unknown Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: INTERNAL_ERROR
                message: An internal server error has occurred.
      security:
      - oauth: []
components:
  parameters:
    MembershipId:
      name: membership_id
      in: query
      description: Loyalty / Membership ID Number
      schema:
        type: string
      example: '456178230'
    ItineraryId:
      name: itinerary_id
      in: query
      description: Itinerary Number
      schema:
        type: string
      example: '72564500000000'
    From:
      name: from
      in: query
      description: Number of records to query from
      schema:
        type: integer
        default: 0
      example: 1000
    PageSize:
      name: page_size
      in: query
      description: Number of records per page
      schema:
        type: integer
        default: 500
        oneOf:
        - minimum: 1
          maximum: 1000
          exclusiveMinimum: true
          exclusiveMaximum: true
      example: 500
    TransactionDateStart:
      name: transaction_date_start
      in: query
      description: Start date of the date range to filter transactions, ISO. 8601 format (YYYY-MM-DD)
      schema:
        type: string
        format: date
      example: 2023-09-17
      required: true
    TransactionDateEnd:
      name: transaction_date_end
      in: query
      description: End date of the date range to filter transactions, ISO. 8601 format (YYYY-MM-DD)
      schema:
        type: string
        format: date
      example: 2023-09-18
      required: true
    TransactionType:
      name: transaction_type
      in: query
      description: 'Transaction Type. Possible values: Purchase, Modification, Cancel, Award'
      schema:
        type: string
        enum:
        - PURCHASE
        - AWARD
        - MODIFICATION
        - CANCEL
  schemas:
    Member:
      type: object
      properties:
        id:
          type: string
          format: number
          description: Membership id
        tier:
          type: string
          description: Name of Loyalty Program
        last_name:
          type: string
          description: Last name
    Loyalty:
      type: object
      properties:
        program_name:
          type: string
          description: Name of Loyalty Program
        member:
          $ref: '#/components/schemas/Member'
        points:
          $ref: '#/components/schemas/Points'
    Points:
      type: object
      properties:
        point_definition:
          type: string
          description: Definition of the points applied as related to the Campaign(s) or Base Points
        pending:
          $ref: '#/components/schemas/PointDefinition'
        awarded:
          $ref: '#/components/schemas/PointDefinition'
    BookingItem:
      type: object
      properties:
        id:
          type: string
          format: number
          description: Booking item id
        product_line:
          type: string
          description: Line of business of the item
        begin_use_date:
          type: string
          format: date
          description: Check in or start of the booking date
        end_use_date:
          type: string
          format: date
          description: Check out or end of the booking date
    PointDefinition:
      type: object
      properties:
        total:
          type: number
          description: Total number of points ( base points + bonus points)
        base:
          type: number
          description: Points where point code / definition refers to base points
        bonus:
          type: number
          description: Points where point code / definition refers to bonus points
    LoyaltyTransactionsResponse:
      type: array
      items:
        type: object
        properties:
          transaction_id:
            type: string
            description: Unique Identifier of the transaction
          transaction_type:
            type: string
            description: Transaction Type
          transaction_date:
            type: string
            format: date
            description: Date booking was last updated in ISO 8601 format (YYYY-MM-DD)
          transaction_datetime:
            type: string
            format: date-time
            description: Datetime booking was last updated in ISO 8601 format (YYYY-MM-DDThhmmss.sss)
          award_date:
            type: string
            format: date
            description: Date at which points will be earned/rewarded in ISO 8601 format (YYYY-MM-DD)
          itinerary:
            $ref: '#/components/schemas/Itinerary'
          loyalty:
            $ref: '#/components/schemas/Loyalty'
          pricing:
            type: array
            items:
              $ref: '#/components/schemas/Pricing'
    Itinerary:
      type: object
      properties:
        id:
          type: string
          format: number
          description: Itinerary Number
        booking_date:
          type: string
          format: date
          description: Date when the booking was made
        package_indicator:
          type: string
          description: Whether or not the booking is a package
        booking_item:
          $ref: '#/components/schemas/BookingItem'
    LoyaltyResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/LoyaltyTransactionsResponse'
    LoyaltyLastUpdateResponse:
      type: object
      properties:
        last_update:
          type: string
          format: date-time
    Pricing:
      type: object
      properties:
        currency_code:
          type: string
          description: Currency Code
        gross_booking_value:
          type: number
          description: Gross Booking Value of booking
        base_price:
          type: number
          description: Base Price (what points are based off of)
    Error:
      description: The object used the describe an error, containing both human-readable and in a machine-readable information.
      type: object
      properties:
        code:
          description: Snake cased all caps error code interpreted from the HTTP status code that can programmatically be acted upon.
          type: string
          example: FORBIDDEN
          enum:
          - UNAUTHORIZED
          - FORBIDDEN
          - NOT_FOUND
          - TOO_MANY_REQUESTS
          - INTERNAL_SERVER_ERROR
          - BAD_GATEWAY
          - SERVICE_UNAVAILABLE
          - GATEWAY_TIMEOUT
          - CONFLICT
          - BAD_REQUEST
        message:
          description: A human-readable explanation of the error, specific to this error occurrence.
          type: string
          example: Your request could not be authorized.
      required:
      - code
      - message
  securitySchemes:
    Basic:
      type: http
      scheme: basic