openapi: 3.1.0
info:
  title: Multi-Point Bucket V3 APIs
  description: >-
    Welcome to the Multi Point Bucket (MPB) API documentation for Annex Cloud,
    the Multi Point Bucket feature is a powerful tool available in various API’s
    such as Tiers, Orders, Rewards, Points, Products, and Cart.


    The MPB feature allows for the creation of multiple buckets for points, each
    representing a different type or purpose. This enables users to track and
    manage points more effectively, ensuring that they are allocated correctly
    according to the defined rules and criteria.


    Using the MPB feature with the GET, POST and PATCH methods, users can define
    criteria based on products and orders to determine eligibility for earning
    or redeeming points and rewards. For example, users can set rules that
    specify which products or categories of products are eligible for earning
    points towards the additional point buckets or establish thresholds for the
    minimum purchase amount required to earn points.


    Overall, the Multi Point Bucket feature enhances the functionality of
    various API’s by providing a flexible and customizable solution for
    configuring eligibility criteria for members associated with points,
    rewards, tiers, products, and orders. This allows businesses to create
    loyalty programs and rewards systems that are tailored to meet the unique
    needs of their customers and drive engagement and loyalty.
  version: 3.0.1
servers:
  - url: https://s15.socialannex.net/api/3.0
paths:
  /users/{{memberId}}/tiers:
    get:
      tags:
        - Tiers
      summary: Get tier information for a loyalty member
      description: >-
        This method retrieves tier details for a specific member using their
        member ID.
      operationId: getTiersInfo
      parameters:
        - name: memberId
          in: path
          description: Enter the unique ID of the member.
          example: johan19.sa@gmail.com
          required: true
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getTiersInfo'
            application/xml:
              schema:
                $ref: '#/components/schemas/getTiersInfo'
        '400':
          description: AC1004 Invalid status value
  /orders:
    post:
      tags:
        - Orders
      summary: Create new order
      description: >-
        Use the POST method in the Orders API to create a new order placed by a
        member of the loyalty program. Include fields such as email, first name,
        last name, order total, coupon code, reward, and any additional fields
        as needed.
      operationId: createOrder
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  description: Enter the order ID for the order.
                  example: abc120
                  type: string
                userId:
                  description: Enter the unique ID of the loyalty member.
                  example: user@domain.com
                  type: string
                email:
                  description: Enter the email address of the loyalty member.
                  example: johan19.sa@gmail.com
                  type: string
                firstName:
                  description: Enter the first name of the loyalty member.
                  example: John
                  type: string
                lastName:
                  description: Enter the last name of the loyalty member.
                  example: Deo
                  type: string
                optInStatus:
                  description: >-
                    Enter the opt-in status as YES for opt-in or NO for opt-out.
                    The default opt-in status is YES.
                  example: 'YES'
                  type: string
                status:
                  description: >-
                    Enter the loyalty member’s status as active or inactive. By
                    default, it is active and can be changed to inactive as per
                    the client’s request.
                  example: ACTIVE
                  type: string
                phone:
                  description: Enter the loyalty member’s phone number.
                  example: 123-123-4567
                  type: string
                birthDate:
                  description: >-
                    Enter the loyalty member's date of birth in yyyy-MM-dd
                    format.
                  example: '1989-12-11'
                  type: string
                anniversaryDate:
                  description: >-
                    Enter the loyalty member's anniversary date in yyyy-MM-dd
                    format. This can be their birthdate, the date they joined
                    the loyalty program or marriage date.
                  example: '2023-12-11'
                  type: string
                createDate:
                  description: >-
                    Enter the date when the loyalty member’s profile was created
                    in yyyy-MM-dd'T'HH:mm:ssZ format. If the date is not
                    provided, by default, the system takes the current date and
                    time automatically.
                  example: '2024-08-08 07:00:12'
                  type: string
                orderTotal:
                  description: Enter the total amount spent on the order.
                  example: 100
                  type: integer
                storeId:
                  description: Enter the unique ID of the store.
                  example: bc34
                  type: string
                source:
                  description: >-
                    Enter the source where the order was placed by the loyalty
                    member. For example, web or store.
                  example: web
                  type: string
                discountAmount:
                  description: Enter the total discount amount applied to the order.
                  example: 5
                  type: integer
                coupon:
                  description: Enter the coupon code applied to the order.
                  example: SARL0RXQ12017
                  type: string
                rewardId:
                  description: >-
                    Enter the reward ID of the reward being applied to the
                    order.
                  example: 1234
                  type: integer
                rewardName:
                  description: Enter the name of the reward.
                  example: Reward234
                  type: string
                shipping amount:
                  description: >-
                    Enter the amount that will be applied for shipping the
                    order.
                  example: 250
                  type: integer
                orderDetail:
                  type: object
                  description: >-
                    Enter the order details presented in the orderDetail object
                    as follows.
                  properties:
                    Id:
                      description: Enter the unique ID of the product.
                      example: p1
                      type: string
                    productName:
                      description: Enter the name of the product.
                      example: smart phone
                      type: string
                    quantity:
                      description: >-
                        Enter the quantity of the product that has been
                        purchased.
                      example: 2
                      type: integer
                    unitPrice:
                      description: Enter the unit price of the product.
                      example: 50
                      type: integer
                    estimatedShipDate:
                      description: >-
                        Enter the estimated date the product will be shipped in
                        yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2023-04-01T00:00:00-0700
                      type: string
                    categoryId:
                      description: Enter the category ID of the product.
                      example: 23
                      type: integer
                    categoryName:
                      description: Enter the category name of the product.
                      example: electronic devices
                      type: string
                    url:
                      description: Enter the product URL.
                      example: https://www.annexcloud.com/
                      type: string
                    imageUrl:
                      description: Enter the product image URL.
                      example: domain.com/image.gif
                      type: string
                    description:
                      description: Enter the applicable description of the product.
                      example: >-
                        A smartphone is a mobile device that combines the
                        functionality of a phone with computer capabilities such
                        as internet access, apps, and multimedia features.
                      type: string
                    secondarykey:
                      description: >-
                        Enter the unique secondary key. The secondary key is an
                        essential element in handling orders that contain
                        multiple products with the same product ID. If a member
                        wants to return a product after the order is shipped,
                        the system may encounter issues due to the identical
                        product IDs. However, the secondary key comes in handy
                        to differentiate between the products, enabling the
                        system to identify each product accurately and process
                        partial returns or cancellations of the order
                        successfully.
                      example: p101
                      type: string
                    autoDelivery:
                      description: >-
                        Enter the auto delivery as YES or NO for the products.
                        If not provided, then by default it is YES. Note - It's
                        an optional field but if the "Enable Loyalty V3 Auto
                        Delivery" flag is enabled, then this is a mandatory
                        (Required) field.
                      example: 'YES'
                      type: string
              required:
                - id
                - userId
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createOrder'
            application/xml:
              schema:
                $ref: '#/components/schemas/createOrder'
        '405':
          description: AC1002 Request Not Authorized
  /orders/{{orderId}}:
    patch:
      tags:
        - Orders
      summary: Update the order
      description: >-
        Use the PATCH method in the Orders API to update the order status of a
        shipment to ship, return, or cancel status in the input parameter.
        Orders can be updated based on their status, including partial or full
        shipment of the order, partial or full return of the product, and
        partial or full cancellation of the order.
      operationId: updateOrder
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                Different body parameters:
                  type: object
                  description: >-
                    Different body parameters are shown below in accordance with
                    the order update needed.
                  properties:
                    For Partial Ship:
                      type: object
                      description: Enter the following parameter details.
                      properties:
                        orderId:
                          description: Enter the original order ID.
                          example: satestorder1
                          type: string
                        userId:
                          description: Enter the unique ID of the loyalty member.
                          example: cotton.sa@gmail.com
                          type: string
                        status:
                          description: Enter the status as ship.
                          example: ship
                          type: string
                        orderDetail:
                          type: object
                          description: >-
                            Enter the order details presented in the orderDetail
                            object as follows.
                          properties:
                            id:
                              description: Enter the unique ID of the product.
                              example: p1
                              type: string
                            productName:
                              description: Enter the name of the product.
                              example: smart phone
                              type: string
                            quantity:
                              description: >-
                                Enter the quantity of the product that has been
                                purchased.
                              example: 2
                              type: integer
                            unitPrice:
                              description: Enter the unit price of the product.
                              example: 50
                              type: integer
                            estimatedShipDate:
                              description: >-
                                Enter the estimated date the product will be
                                shipped in yyyy-MM-dd'T'HH:mm:ssZ format.
                              example: 2023-04-01T00:00:00-0700
                              type: string
                            categoryId:
                              description: Enter the category ID of the product.
                              example: 23
                              type: integer
                            categoryName:
                              description: Enter the category name of the product.
                              example: electronic devices
                              type: string
                            url:
                              description: Enter the product URL.
                              example: https://www.annexcloud.com/
                              type: string
                            imageUrl:
                              description: Enter the product image URL.
                              example: domain.com/image.gif
                              type: string
                            description:
                              description: Enter the applicable description of the product.
                              example: >-
                                A smartphone is a mobile device that combines
                                the functionality of a phone with computer
                                capabilities such as internet access, apps, and
                                multimedia features.
                              type: string
                            secondarykey:
                              description: >-
                                Enter the unique secondary key. The secondary
                                key is an essential element in handling orders
                                that contain multiple products with the same
                                product ID. If a member wants to return a
                                product after the order is shipped, the system
                                may encounter issues due to the identical
                                product IDs. However, the secondary key comes in
                                handy to differentiate between the products,
                                enabling the system to identify each product
                                accurately and process partial returns or
                                cancellations of the order successfully.
                              example: p101
                              type: string
                            autoDelivery:
                              description: >-
                                Enter the auto delivery as YES or NO for the
                                products. If not provided, then by default it is
                                YES. Note - It's an optional field but if the
                                "Enable Loyalty V3 Auto Delivery" flag is
                                enabled, then this is a mandatory (Required)
                                field.
                              example: 'YES'
                              type: string
                    For Full Ship:
                      type: object
                      description: Enter the following parameter details for the order.
                      properties:
                        orderId:
                          description: Enter the original order ID.
                          example: satestorder1
                          type: string
                        status:
                          description: Enter the status as ship.
                          example: ship
                          type: string
                    For Full Return:
                      type: object
                      description: Enter the following details for the order.
                      properties:
                        orderId:
                          description: Enter the original order ID.
                          example: satestorder1
                          type: string
                        status:
                          description: Enter the status as return.
                          example: return
                          type: string
                    For Partial Return:
                      type: object
                      description: Enter the following parameter details.
                      properties:
                        orderId:
                          description: Enter the original order ID.
                          example: satestorder1
                          type: string
                        status:
                          description: Enter the status as return.
                          example: return
                          type: string
                        reason:
                          description: >-
                            Enter an explanation for why part of the order was
                            returned.
                          example: credit memo
                          type: string
                        orderDetail:
                          type: object
                          description: >-
                            Enter the order details presented in the orderDetail
                            object as follows.
                          properties:
                            id:
                              description: Enter the unique ID of the product.
                              example: p1
                              type: string
                            productName:
                              description: Enter the name of the product.
                              example: smart phone
                              type: string
                            quantity:
                              description: >-
                                Enter the quantity of the product that has been
                                purchased.
                              example: 2
                              type: integer
                            unitPrice:
                              description: Enter the unit price of the product.
                              example: 50
                              type: integer
                            estimatedShipDate:
                              description: >-
                                Enter the estimated date the product will be
                                shipped in yyyy-MM-dd'T'HH:mm:ssZ format.
                              example: 2023-04-01T00:00:00-0700
                              type: string
                            categoryId:
                              description: Enter the category ID of the product.
                              example: 23
                              type: integer
                            categoryName:
                              description: Enter the category name of the product.
                              example: electronic devices
                              type: string
                            url:
                              description: Enter the product URL.
                              example: https://www.annexcloud.com/
                              type: string
                            imageUrl:
                              description: Enter the product image URL.
                              example: domain.com/image.gif
                              type: string
                            description:
                              description: Enter the applicable description of the product.
                              example: >-
                                A smartphone is a mobile device that combines
                                the functionality of a phone with computer
                                capabilities such as internet access, apps, and
                                multimedia features.
                              type: string
                    For Full Cancel:
                      type: object
                      description: >-
                        Enter the following parameter details for the order
                        being cancelled.
                      properties:
                        orderId:
                          description: Enter the original order ID.
                          example: satestorder1
                          type: string
                        status:
                          description: Enter the status as cancel.
                          example: cancel
                          type: string
                    For Partial Cancel:
                      type: object
                      description: Enter the following parameter details.
                      properties:
                        orderId:
                          description: Enter the original order ID.
                          example: satestorder1
                          type: string
                        status:
                          description: Enter the status as cancel.
                          example: cancel
                          type: string
                        orderDetail:
                          type: object
                          description: >-
                            Enter the order details presented in the orderDetail
                            object as follows.
                          properties:
                            id:
                              description: Enter the unique ID of the product.
                              example: p1
                              type: string
                            productName:
                              description: Enter the name of the product.
                              example: smart phone
                              type: string
                            quantity:
                              description: >-
                                Enter the quantity of the product that has been
                                purchased.
                              example: 2
                              type: integer
                            unitPrice:
                              description: Enter the unit price of the product.
                              example: 50
                              type: integer
                            estimatedShipDate:
                              description: >-
                                Enter the estimated date the product will be
                                shipped in yyyy-MM-dd'T'HH:mm:ssZ format.
                              example: 2023-04-01T00:00:00-0700
                              type: string
                            categoryId:
                              description: Enter the category ID of the product.
                              example: 23
                              type: integer
                            categoryName:
                              description: Enter the category name of the product.
                              example: electronic devices
                              type: string
                            url:
                              description: Enter the product URL.
                              example: https://www.annexcloud.com/
                              type: string
                            imageUrl:
                              description: Enter the product image URL.
                              example: domain.com/image.gif
                              type: string
                            description:
                              description: Enter the applicable description of the product.
                              example: >-
                                A smartphone is a mobile device that combines
                                the functionality of a phone with computer
                                capabilities such as internet access, apps, and
                                multimedia features.
                              type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ship'
            application/xml:
              schema:
                $ref: '#/components/schemas/ship'
        '405':
          description: AC1002 Request Not Authorized
  /users/{{memberId}}/reward:
    get:
      tags:
        - Rewards
      summary: Fetch the list of all rewards for a member
      description: >-
        This method can be used to retrieve a list of all available rewards
        against a member ID. The administrator needs to pass a unique member ID
        as the key to fetch the details.
      operationId: getRewardsByUser
      parameters:
        - name: memberId
          in: path
          description: Enter the unique ID of the member.
          example: johan19.sa@gmail.com
          required: true
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getRewardsByUser'
            application/xml:
              schema:
                $ref: '#/components/schemas/getRewardsByUser'
        '405':
          description: AC1002 Request Not Authorized
  /points:
    post:
      tags:
        - Points
      summary: Redeem, and award loyalty points to the member
      description: >-
        Use the POST method in the Points API to give, redeem and award points
        to members of the loyalty program. All other fields in the request body
        are listed below.
      operationId: addOrRedeemPoints
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                body:
                  type: object
                  description: >-
                    Different body parameters are shown below depending on
                    whether you’d like to redeem or award points.
                  properties:
                    To Redeem Custom Points:
                      type: object
                      description: >-
                        Note - Custom points are not predefined in the system,
                        instead, they are set and managed based on specific
                        user-defined criteria.
                      properties:
                        id:
                          description: Enter the unique ID for the member.
                          example: johan19.sa@gmail.com
                          type: string
                        actionId:
                          description: >-
                            Enter the unique action ID for the redemption of
                            custom points performed by the member.
                          example: 107
                          type: integer
                        activity:
                          description: >-
                            Enter debit in the activity field to indicate that
                            the member is redeeming their custom points.
                          example: debit
                          type: string
                        rewardId:
                          description: >-
                            Enter the specific reward id associated with the
                            points.
                          example: 27
                          type: integer
                        orderId:
                          description: Enter the loyalty member's order ID.
                          example: A12345
                          type: string
                        debit:
                          description: >-
                            Enter the number of points debited from the member’s
                            account for redeeming custom points by performing
                            the redemption action.
                          example: 121
                          type: integer
                        reason:
                          description: >-
                            Enter the reason for removing points from the
                            member’s account to redeem custom points.
                          example: debit
                          type: string
                        source:
                          description: >-
                            Enter the source from where the member performed the
                            transaction. For example, Web or App.
                          example: web
                          type: string
                        pointsTierDebit:
                          description: >-
                            Enter the number of points if you are redeeming the
                            member’s custom points from an additional tier point
                            bucket. (This is only applicable if the loyalty
                            program leverages multiple point buckets).
                          example: 50
                          type: integer
                        coinsDebit:
                          description: >-
                            Enter the number of points in this field if you are
                            redeeming the member’s custom points from an
                            additional coins bucket. (This is only applicable if
                            the loyalty program leverages multipoint buckets).
                          example: 50
                          type: integer
                        coinsTierDebit:
                          description: >-
                            Enter the number of points if you are redeeming the
                            member’s custom points from an additional tier coins
                            bucket. (This is only applicable if the loyalty
                            program leverages multiple point buckets).
                          example: 15
                          type: integer
                        perksDebit:
                          description: >-
                            Enter the number of points in this field if you are
                            redeeming the member’s custom points from an
                            additional perks bucket. (This is only applicable if
                            the loyalty program leverages multipoint buckets).
                          example: 50
                          type: integer
                        perksTierDebit:
                          description: >-
                            Enter the number of points if you are redeeming the
                            member’s custom points from an additional tier perks
                            bucket. (This is only applicable if the loyalty
                            program leverages multiple point buckets).
                          example: 15
                          type: integer
                    To Award Custom Points:
                      type: object
                      properties:
                        id:
                          description: Enter the unique ID for the member.
                          example: johan19.sa@gmail.com
                          type: string
                        actionId:
                          description: >-
                            Enter the unique action ID for which you are
                            awarding custom points for the member. For example,
                            the action ID for manual credit is 100.
                          example: 100
                          type: integer
                        activity:
                          description: >-
                            Enter credit in the activity field to indicate that
                            the points are awarded to the member’s account.
                          example: credit
                          type: string
                        credit:
                          description: >-
                            Enter the number of points credited to the member’s
                            account for performing the action.
                          example: 12132
                          type: integer
                        reason:
                          description: >-
                            Enter the reason for awarding points to the member’s
                            account.
                          example: bonus
                          type: string
                        source:
                          description: >-
                            Enter the source from where the member performed the
                            transaction. For example, Web or App.
                          example: web
                          type: string
                        pointsTierCredit:
                          description: >-
                            Enter the number of points if you are awarding the
                            member’s custom points to an additional tier points
                            bucket. (This is only applicable if the loyalty
                            program leverages multiple point buckets).
                          example: 50
                          type: integer
                        coinsCredit:
                          description: >-
                            Enter the number of points in this field if you are
                            awarding the member’s custom points to an additional
                            coins bucket. (This is only applicable if the
                            loyalty program leverages multipoint buckets).
                          example: 50
                          type: integer
                        coinsTierCredit:
                          description: >-
                            Enter the number of points if you are awarding the
                            member’s custom points to an additional tier coins
                            bucket. (This is only applicable if the loyalty
                            program leverages multiple point buckets).
                          example: 15
                          type: integer
                        perksCredit:
                          description: >-
                            Enter the number of points in this field if you are
                            awarding the member’s custom points to an additional
                            perks bucket. (This is only applicable if the
                            loyalty program leverages multipoint buckets).
                          example: 50
                          type: integer
                        perksTierCredit:
                          description: >-
                            Enter the number of points if you are awarding the
                            member’s custom points to an additional tier perks
                            bucket. (This is only applicable if the loyalty
                            program leverages multiple point buckets).
                          example: 15
                          type: integer
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddOrRemovePointsResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/AddOrRemovePointsResponse'
        '400':
          description: AC1004 Invalid Order
  /points/{{memberId}}:
    get:
      tags:
        - Points
      summary: To retrieve point details for a member
      description: >-
        This method retrieves point details associated with a member’s ID. The
        user needs to use the member’s user ID as a key to fetch all the points
        details.
      operationId: Add/RemovePoints
      parameters:
        - name: memberId
          in: path
          description: Enter the unique ID of the member.
          example: johan19.sa@gmail.com
          required: true
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getPointsDetails'
            application/xml:
              schema:
                $ref: '#/components/schemas/getPointsDetails'
        '405':
          description: AC1002 Request Not Authorized
  /products:
    post:
      tags:
        - Product
      summary: >-
        Enter the product information to calculate how many points the member
        will earn for their purchase
      description: >-
        This API is used to display the points that a member will earn for
        purchasing a product.
      operationId: ProductPoints
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                body:
                  type: object
                  description: Enter the following details.
                  properties:
                    id:
                      description: Enter the unique ID of the member.
                      example: samsa35.sa@gmail.com
                      type: string
                    appliedPoints:
                      description: >-
                        Enter the number of points the member has applied to
                        redeem on the cart page.
                      example: 245
                      type: integer
                    discountAmount:
                      description: Enter the total discount amount applied to the product.
                      example: 20
                      type: integer
                    shippingAmount:
                      description: >-
                        Enter the amount that will be applied for shipping the
                        product.
                      example: 200
                      type: integer
                    productDetail:
                      type: object
                      description: Enter the product details.
                      properties:
                        id:
                          description: Enter the unique ID of the product.
                          example: samsa35.sa@gmail.com
                          type: string
                        quantity:
                          description: >-
                            Enter the quantity of the product that has been
                            purchased.
                          example: 1
                          type: integer
                        unitPrice:
                          description: Enter the unit price of the product.
                          example: 10
                          type: integer
                        autoDelivery:
                          description: >-
                            Enter the auto delivery as YES or NO for the
                            product. If not provided, then by default it is YES.
                            Note - It's an optional field but if the "Enable
                            Loyalty V3 Auto Delivery" flag is enabled, then this
                            is a mandatory (Required) field.
                          example: 'YES'
                          type: string
                        productName:
                          description: Enter the name of the product.
                          example: lorem
                          type: string
                        categoryId:
                          description: Enter the category ID for the product.
                          example: 23
                          type: integer
                        categoryName:
                          description: Enter the category name of the product.
                          example: lorem ipsum
                          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/productpointsresponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/productpointsresponse'
        '400':
          description: AC1004 Invalid Order
  /cart:
    post:
      tags:
        - Cart
      summary: Points earned for the product(s) in cart
      description: >-
        This method is used to display the number of points members will earn
        upon purchasing the products in their cart. This method accounts for any
        points the member is applying to the order in their cart for redemption.
      operationId: ProductPointsCart
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                userId:
                  description: Enter the unique ID of the member.
                  example: samsa35.sa@gmail.com
                  type: string
                appliedPoints:
                  description: >-
                    Enter the number of points the member has applied to redeem
                    on the cart page.
                  example: 245
                  type: integer
                discountAmount:
                  description: Enter the total discount amount applied to the order.
                  example: 20
                  type: integer
                shippingAmount:
                  description: >-
                    Enter the amount that will be applied for shipping the
                    product.
                  example: 200
                  type: integer
                productDetail:
                  type: object
                  description: Enter the following details.
                  properties:
                    id:
                      description: Enter the unique ID of the product.
                      example: samsa35.sa@gmail.com
                      type: string
                    quantity:
                      description: >-
                        Enter the quantity of the product that is being
                        purchased.
                      example: 1
                      type: integer
                    unitPrice:
                      description: Enter the unit price of the product.
                      example: 10
                      type: integer
                    autoDelivery:
                      description: >-
                        Enter the auto delivery as YES or NO for the products.
                        If not provided, then by default it is YES. Note - It's
                        an optional field but if the "Enable Loyalty V3 Auto
                        Delivery" flag is enabled, then this is a mandatory
                        (Required) field.
                      example: 'YES'
                      type: string
                    productName:
                      description: Enter the name of the product.
                      example: lorem
                      type: string
                    categoryId:
                      description: Enter the category ID for the product.
                      example: 23
                      type: integer
                    categoryName:
                      description: Enter the category name of the product.
                      example: lorem ipsum
                      type: string
              required:
                - userId
                - discountAmount
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cartproductpointsresponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/cartproductpointsresponse'
        '400':
          description: AC1004 Invalid Order
components:
  schemas:
    getTiersInfo:
      type: object
      properties:
        siteId:
          type: string
          description: Displays Annex Cloud’s site ID for the loyalty program.
          example: 33986340
        currentTier:
          type: string
          description: >-
            Displays the loyalty member's current tier name. For example,
            Bronze, Silver, Gold.
          example: Silver
        previousTier:
          type: string
          description: Displays the previous tier that was assigned to the member.
          example: Bronze
        tierAchievedDate:
          type: string
          description: >-
            Displays the current tier achievement date in yyyy-MM-dd'T'HH:mm:ssZ
            format.
          example: 2022-04-01T00:00:00-0700
        tierExpirationDate:
          type: string
          description: >-
            Displays the tier expiration date in yyyy-MM-dd'T'HH:mm:ssZ format.
            When the tier expiration date is reached, the current tier is no
            longer valid. The additional points in the bucket are deducted, and
            the tier sequence restarts from the base tier.
          example: 2023-04-01T00:00:00-0700
        nextTier:
          type: string
          description: >-
            Displays the name of the next tier which is awarded to the member
            once the required milestones are achieved.
          example: Gold
        pointsToNextTier:
          type: integer
          description: >-
            Displays the number of points required to achieve the next tier.
            This depends on the point threshold required to reach the next tier
            and the number of points the member currently has in their account.
          example: 210
        purchaseRatio:
          type: integer
          description: >-
            Displays the purchase ratio established for the loyalty program,
            which will be applied to the member’s purchases. For example, if the
            purchase ratio is 2 and purchase amount is 400, then after
            completing the purchase, 800 points is awarded to the member.
          example: 2
        currentTierPurchaseRatio:
          type: string
          description: >-
            Displays the purchase ratio that is applied to the member for this
            tier while earning points for purchase.
          example: 0.5
        spendAmountToNextTier:
          type: integer
          description: Displays the amount the member must spend to achieve the next tier.
          example: 200
        currentTierRewards:
          type: object
          description: Displays the details of the current tier rewards.
          properties:
            rewardId:
              type: integer
              description: Displays the reward ID associated with the current tier.
              example: 1234
            rewardName:
              type: string
              description: Displays the name of the reward.
              example: Reward First
            tierEligible:
              type: string
              description: Displays the tier eligibility for the reward as true or false.
              example: true
            rewardLimit:
              type: integer
              description: >-
                Displays the number of times the reward can be awarded to each
                member.
              example: 2
            limitPeriod:
              type: string
              description: >-
                Displays the limit period assigned to the reward under the tier
                benefits section. Once the limit period has passed, the member
                is eligible for the reward again.
              example: Day
            redeemCount:
              type: integer
              description: Displays the number of times the member has redeemed the reward.
              example: 0
            remainingCount:
              type: integer
              description: >-
                Displays the remaining number of times the member can claim the
                reward. For example, if the maximum limit to avail the reward is
                4 and the member has already claimed the reward 3 times, then
                the remaining count would be 1.
              example: 1
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi point bucket details with the
                following fields when the multi point bucket is enabled.
              properties:
                tierPoint:
                  type: object
                  description: Displays the details of the tier points.
                  properties:
                    pointsToNextTier:
                      type: integer
                      description: >-
                        Displays the number of points required in the additional
                        point bucket to achieve the next tier. This depends on
                        the point threshold required to reach the next tier and
                        the number of points the member currently has in their
                        account.
                      example: 100
                    coins:
                      type: object
                      description: Displays the details of the coins.
                      properties:
                        pointsToNextTier:
                          type: integer
                          description: >-
                            Displays the number of points required in the
                            additional point bucket to achieve the next tier.
                          example: 100
                    perks:
                      type: object
                      description: Displays the details of the perks.
                      properties:
                        pointsToNextTier:
                          type: integer
                          description: >-
                            Displays the number of points required in the
                            additional point bucket to achieve the next tier.
                          example: 100
                    tierPerks:
                      type: object
                      description: Displays the details of the tier perks.
                      properties:
                        pointsToNextTier:
                          type: integer
                          description: >-
                            Displays the number of points required in the
                            additional point bucket to achieve the next tier.
                          example: 100
    createOrder:
      type: object
      properties:
        siteId:
          type: string
          description: Displays Annex Cloud’s site ID for the loyalty program.
          example: 9991331
        id:
          type: string
          description: Displays the unique ID of the order.
          example: abc123
        userId:
          type: string
          description: Displays the unique ID of the member.
          example: user@domain.com
        email:
          type: string
          description: Displays the email address of the member.
          example: user@domain.com
        firstName:
          type: string
          description: Displays the first name of the member.
          example: Kervin
        lastName:
          type: string
          description: Displays the last name of the member.
          example: cotton
        optInStatus:
          type: string
          description: >-
            Displays the opt-in status as YES for opt-in or NO for opt-out. The
            default opt-in status is YES.
          example: 'YES'
        status:
          type: string
          description: Displays the loyalty member’s status as active or inactive.
          example: ACTIVE
        phone:
          type: string
          description: Displays the phone number of the loyalty member.
          example: 123-123-4567
        birthDate:
          type: string
          description: >-
            Displays the date of birth of the loyalty member in yyyy-MM-dd
            format.
          example: '1989-12-11'
        anniversaryDate:
          type: string
          description: >-
            Displays the loyalty member's anniversary date, which can be their
            birthdate, the date they joined the loyalty program or marriage date
            in yyyy-MM-dd format.
          example: '2023-12-11'
        createDate:
          type: string
          description: >-
            Displays the date and time in yyyy-MM-dd’T’HH:mm:ssZ format on which
            the loyalty member profile was created.
          example: '2023-08-08 07:00:12'
        updateDate:
          type: string
          description: >-
            Displays the date and time in yyyy-MM-dd’T’HH:mm:ssZ format on which
            the loyalty member was updated.
          example: '2023-08-08 07:00:12'
        pointsAwarded:
          type: integer
          description: Displays the total points awarded for the order.
          example: 100
        pointsExpirationDate:
          type: string
          description: >-
            Displays the points expiration date in yyyy-MM-dd'T'HH:mm:ssZ
            format.
          example: 2023-04-01T00:00:00-0700
        pointsOnHold:
          type: integer
          description: >-
            Displays the number of points on hold against the order. Points may
            be put on hold to account for possible returns made by the member.
          example: 145
        previousTier:
          type: string
          description: Displays the name of the member’s previous tier.
          example: Silver
        UpdatedUserTier:
          type: string
          description: >-
            Displays the updated member’s tier after the points have been
            updated for the order.
          example: Gold
        currentTier:
          type: string
          description: >-
            Displays the name of the member’s current tier. For example, Bronze,
            Silver, Gold.
          example: Gold
        nextTier:
          type: string
          description: >-
            Displays the name of the next tier the member can achieve in the
            loyalty program.
          example: Platinum
        pointsToNextTier:
          type: integer
          description: Displays the number of points required to achieve the next tier.
          example: 240
        currentTierPurchaseRatio:
          type: integer
          description: >-
            Displays the purchase point ratio applied to the member’s purchases
            in their current tier.
          example: 2
        spendAmountToNextTier:
          type: integer
          description: >-
            Displays the amount the member needs to spend to achieve the next
            tier. This is only applicable to tiers where the metric is
            spend-based. If the tier metric is points-based or based on extended
            attributes, it will not show any additional values.
          example: 200
        tierAchievedDate:
          type: string
          description: >-
            Displays the date the current tier was achieved in
            yyyy-MM-dd'T'HH:mm:ssZ format.
          example: 2020-04-01T00:00:00-0700
        tierExpirationDate:
          type: string
          description: >-
            Displays the tier expiration date in yyyy-MM-dd'T'HH:mm:ssZ format.
            When the tier expiration date is reached, the current tier is no
            longer valid. The loyalty points are deducted, and the tier sequence
            restarts from the base tier.
          example: 2018-04-01T00:00:00-0700
        discountAmount:
          type: integer
          description: Displays the total discount amount applied to the order.
          example: 25
        shippingAmount:
          type: integer
          description: Displays the amount of shipping for the order.
          example: 250
        updatedAvailablePoints:
          type: integer
          description: >-
            Displays the updated number of available points in the member’s
            account.
          example: null
        updatedLifetimePoints:
          type: integer
          description: >-
            Displays the updated total number of points the member has earned in
            their lifetime.
          example: null
        orderDetail:
          type: object
          description: Displays the product details for the order as shown below.
          properties:
            Id:
              type: string
              description: Displays the unique product ID.
              example: p1
            productName:
              type: string
              description: Displays the name of the product.
              example: smart phone
            quantity:
              type: integer
              description: Displays the quantity of the product purchased in the order.
              example: 2
            unitPrice:
              type: integer
              description: Displays the unit price of the product.
              example: 50
            estimateShipDate:
              type: string
              description: >-
                Displays the estimated date the product will be shipped in
                yyyy-MM-dd'T'HH:mm:ssZ format.
              example: 2023-04-01T00:00:00-0700
            categoryId:
              type: integer
              description: Displays the category ID for the product.
              example: 23
            categoryName:
              type: string
              description: Displays the category name for the product.
              example: electronic devices
            url:
              type: string
              description: Displays the product URL.
              example: https://www.annexcloud.com/
            imageUrl:
              type: string
              description: Displays the product image URL.
              example: domain.com/image.gif
            description:
              type: string
              description: Displays the description of the product.
              example: >-
                A smartphone is a mobile device that combines the functionality
                of a phone with computer capabilities such as internet access,
                apps, and multimedia features.
            autoDelivery:
              type: string
              description: >-
                Displays the auto delivery as YES or NO for the products. If not
                provided, then by default it is YES. Points are not awarded
                against the product ID if the value is NO and enable loyalty v3
                auto delivery flag is enabled.
              example: 'YES'
            points:
              type: integer
              description: >-
                Displays the number of points the member earned for purchasing
                the product.
              example: 100
        multiBucketsData:
          type: object
          description: >-
            Displays an array of all multi point bucket details with the
            following fields. Only displays if the multi point bucket flag is
            enabled.
          properties:
            coins:
              type: object
              description: Displays the details for coins.
              properties:
                credit:
                  type: integer
                  description: >-
                    Displays the number of points credited in the member’s
                    account towards additional coins bucket for the order.
                  example: 200
                coinsToExpireDate:
                  type: string
                  description: >-
                    Displays the date in yyyy-MM-dd'T'HH:mm:ssZ format on which
                    the additional coins expire.
                  example: 2023-05-05T00:00:00-0700
                holdCredit:
                  type: integer
                  description: Displays the points on hold within the point bucket.
                  example: 190
                releasedDate:
                  type: string
                  description: >-
                    Displays the release date for the points on hold in
                    yyyy-mm-dd format.
                  example: '2024-02-29'
                updateAvailableCoins:
                  type: integer
                  description: >-
                    Displays the updated number of available coins in the
                    member’s account of the additional bucket.
                  example: 560
                updatedLifetimesCoins:
                  type: integer
                  description: >-
                    Displays the updated total number of coins the member has
                    earned in their lifetime with the loyalty program.
                  example: 560
            tierPoints:
              type: object
              description: Displays the details of the tier points.
              properties:
                credit:
                  type: integer
                  description: >-
                    Displays the number of points credited in the member’s
                    account towards additional tier points for the order.
                  example: 200
                tierPointsToExpireDate:
                  type: string
                  description: >-
                    Displays the date on which the tier points will expire in
                    yyyy-MM-dd'T'HH:mm:ssZ format.
                  example: 2023-05-05T00:00:00-0700
                updatedAvailableTierPoints:
                  type: integer
                  description: >-
                    Displays the updated number of tier points available in the
                    member’s account within the additional point bucket.
                  example: 560
                updatedLifeTimeTierPoints:
                  type: integer
                  description: >-
                    Displays the updated total number of tier points the member
                    has earned in their lifetime with the loyalty program.
                  example: 560
            tierCoins:
              type: object
              description: Displays the details for tier coins.
              properties:
                credit:
                  type: integer
                  description: >-
                    Displays the number of points credited in the member’s
                    account towards additional tier coins for the order.
                  example: 200
                tierCoinsToExpireDate:
                  type: string
                  description: >-
                    Displays the date on which the tier coins will expire in
                    yyyy-MM-dd'T'HH:mm:ssZ format.
                  example: 2023-05-05T00:00:00-0700
                updatedAvailableTierCoins:
                  type: integer
                  description: >-
                    Displays the updated number of tier coins available in the
                    member’s account.
                  example: 560
                updatedLifeTimeTierCoins:
                  type: integer
                  description: >-
                    Displays the updated total number of tier coins the member
                    has earned in their lifetime with the loyalty program.
                  example: 560
    ship:
      type: object
      properties:
        For Partial Ship:
          type: object
          properties:
            siteId:
              type: string
              description: Displays the Annex Cloud site ID for the loyalty program.
              example: 38044920
            orderId:
              type: string
              description: Displays the unique ID of the order.
              example: St1235
            pointsAwarded:
              type: integer
              description: Displays the total number of points awarded to the member.
              example: 60
            currentReleasedPoints:
              type: integer
              description: >-
                Displays the current number of released points available to the
                member.
              example: 35
            pointsExpirationDate:
              type: string
              description: >-
                Displays the points expiration date in yyyy-MM-dd'T'HH:mm:ssZ
                format.
              example: 2026-12-31T23:59:59+0000
            pointsOnHold:
              type: integer
              description: Displays the number of points on hold against the order.
              example: 1065
            updatedUserTier:
              type: string
              description: >-
                Displays the updated member’s tier after the points has been
                updated in the member’s account.
              example: bronze
            previousTier:
              type: string
              description: >-
                Display the member’s tier prior to having points updated in the
                member’s account.
              example: silver
            updatedAvailablePoints:
              type: integer
              description: >-
                Displays the number of points available in the member’s account
                after points have been updated.
              example: 468
            updatedLifetimePoints:
              type: integer
              description: >-
                Displays the updated number of points the member has earned in
                their lifetime with the loyalty program.
              example: 768
            orderDetail:
              type: object
              description: Displays the product details for the order as shown below.
              properties:
                id:
                  type: string
                  description: Displays the unique ID of the product.
                  example: p1
                productName:
                  type: string
                  description: Displays the name of the product.
                  example: smart phone
                quantity:
                  type: integer
                  description: Displays the quantity of the product.
                  example: 2
                unitPrice:
                  type: integer
                  description: Displays the unit price the product.
                  example: 230
                estimatedShipDate:
                  type: string
                  description: >-
                    Displays the estimated date the product will be shipped in
                    yyyy-MM-dd'T'HH:mm:ssZ format.
                  example: 2020-04-01T00:00:00-0700
                categoryId:
                  type: integer
                  description: Displays the category ID of the product.
                  example: 23
                categoryName:
                  type: string
                  description: Displays the category name of the product.
                  example: electronic devices
                url:
                  type: string
                  description: Displays the product URL.
                  example: domain.com/image.gif
                imageUrl:
                  type: string
                  description: Displays the product image URL.
                  example: domain.com/image.gif
                description:
                  type: string
                  description: Displays the description of the product.
                  example: >-
                    A smartphone is a mobile device that combines the
                    functionality of a phone with computer capabilities such as
                    internet access, apps, and multimedia features.
                autoDelivery:
                  type: string
                  description: >-
                    Displays YES or NO depending on if the auto delivery system
                    is enabled or disabled.
                  example: 'YES'
                points:
                  type: integer
                  description: >-
                    Displays the number of points the member earned for
                    purchasing the product.
                  example: 100
            currentTier:
              type: string
              description: >-
                Displays the name of the loyalty member's current tier. For
                example, Bronze, Silver, Gold.
              example: bronze
            nextTier:
              type: string
              description: >-
                Displays the name of the next tier which will be awarded to the
                member once the required milestones are achieved.
              example: gold
            pointsToNextTier:
              type: integer
              description: >-
                Displays the number of points required to achieve the next tier.
                This depends on the point threshold required to reach the next
                tier and the number of points the member currently has in their
                account.
              example: 0
            currentTierPurchaseRatio:
              type: integer
              description: >-
                Displays the purchase point ratio that is applied to the
                member’s purchases while in their current tier.
              example: 1
            spendAmountToNextTier:
              type: integer
              description: >-
                Displays the amount the member needs to spend to achieve the
                next tier.
              example: 0
            tierAchievedDate:
              type: string
              description: >-
                Displays the date the current tier was reached by the member in
                yyyy-MM-dd'T'HH:mm:ssZ format.
              example: 2023-04-14T15:34:56+0000
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi-point bucket details with the
                following fields. Only displays if multiple point buckets are
                enabled.
              properties:
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of points credited in the member’s
                        account towards additional coins bucket for the order.
                      example: 768
                    coinsCreditToExpireDate:
                      type: string
                      description: >-
                        Displays the date on which the coins credited will
                        expire in yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2025-04-01T00:00:00-0700
                    updatedAvailableCoins:
                      type: integer
                      description: >-
                        Displays the number of available coins updated in the
                        member’s account.
                      example: 560
                    updatedLifetimeCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the loyalty program.
                      example: 560
        For Full Ship:
          type: object
          properties:
            siteId:
              type: string
              description: Displays the Annex Cloud site ID for the loyalty program.
              example: 38044920
            orderId:
              type: string
              description: Displays the unique ID of the order.
              example: satestorder1
            pointsAwarded:
              type: integer
              description: Displays the total number of points awarded to the member.
              example: 60
            pointsExpirationDate:
              type: string
              description: >-
                Displays the points expiration date in yyyy-MM-dd'T'HH:mm:ssZ
                format.
              example: 2026-12-31T23:59:59+0000
            pointsOnHold:
              type: integer
              description: Displays the number of points on hold against the order.
              example: 1065
            updatedUserTier:
              type: string
              description: >-
                Displays the updated member’s tier after the points has been
                updated in the member’s account.
              example: bronze
            previousTier:
              type: string
              description: >-
                Display the member’s tier prior to having points updated in the
                member’s account.
              example: silver
            updatedAvailablePoints:
              type: integer
              description: >-
                Displays the number of points available in the member’s account
                after points have been updated.
              example: 468
            updatedLifetimePoints:
              type: integer
              description: >-
                Displays the updated number of points the member has earned in
                their lifetime with the loyalty program.
              example: 768
            currentTier:
              type: string
              description: >-
                Displays the name of the loyalty member's current tier. For
                example, Bronze, Silver, Gold.
              example: bronze
            nextTier:
              type: string
              description: >-
                Displays the name of the next tier which will be awarded to the
                member once the required milestones are achieved.
              example: gold
            pointsToNextTier:
              type: integer
              description: >-
                Displays the number of points required to achieve the next tier.
                This depends on the point threshold required to reach the next
                tier and the number of points the member currently has in their
                account.
              example: 0
            currentTierPurchaseRatio:
              type: integer
              description: >-
                Displays the purchase point ratio that is applied to the
                member’s purchases while in their current tier.
              example: 1
            spendAmountToNextTier:
              type: integer
              description: >-
                Displays the amount the member needs to spend to achieve the
                next tier.
              example: 0
            tierAchievedDate:
              type: string
              description: >-
                Displays the date the current tier was reached by the member in
                yyyy-MM-dd'T'HH:mm:ssZ format.
              example: 2023-04-14T15:34:56+0000
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi-point bucket details with the
                following fields. Only displays if multiple point buckets are
                enabled.
              properties:
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of points credited in the member’s
                        account towards additional coins bucket for the order.
                      example: 768
                    coinsCreditToExpireDate:
                      type: string
                      description: >-
                        Displays the date on which the coins credited will
                        expire in yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2025-04-01T00:00:00-0700
                    updatedAvailableCoins:
                      type: integer
                      description: >-
                        Displays the number of available coins updated in the
                        member’s account.
                      example: 560
                    updatedLifetimeCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the loyalty program.
                      example: 560
        For Full Return:
          type: object
          properties:
            siteId:
              type: string
              description: Displays the Annex Cloud site ID for the loyalty program.
              example: 38044920
            orderId:
              type: string
              description: Displays the unique ID of the order.
              example: satestorder1
            pointsRemoved:
              type: integer
              description: >-
                Display the total number of points removed from the member’s
                account for returning the product.
              example: 60
            updatedUserTier:
              type: string
              description: >-
                Displays the updated member’s tier after the points has been
                removed from the member’s account.
              example: bronze
            updatedAvailablePoints:
              type: integer
              description: >-
                Displays the number of points available in the member’s account
                after points have been removed.
              example: 468
            updatedLifetimePoints:
              type: integer
              description: >-
                Displays the updated number of points the member has earned in
                their lifetime with the loyalty program.
              example: 768
            previousTier:
              type: string
              description: >-
                Display the member’s tier prior to having points removed from
                the member’s account.
              example: silver
            currentTier:
              type: string
              description: Displays the name of the loyalty member's current tier.
              example: bronze
            nextTier:
              type: string
              description: >-
                Displays the name of the next tier which will be awarded to the
                member once the required milestones are achieved.
              example: gold
            pointsToNextTier:
              type: integer
              description: >-
                Displays the number of points required to achieve the next tier.
                This depends on the point threshold required to reach the next
                tier and the number of points the member currently has in their
                account.
              example: 0
            currentTierPurchaseRatio:
              type: integer
              description: >-
                Displays the purchase point ratio that is applied to the
                member’s purchases while in their current tier.
              example: 1
            spendAmountToNextTier:
              type: integer
              description: >-
                Displays the amount the member needs to spend to achieve the
                next tier.
              example: 1
            tierAchievedDate:
              type: string
              description: >-
                Displays the date the current tier was reached by the member in
                yyyy-MM-dd'T'HH:mm:ssZ format.
              example: 2023-04-14T15:34:56+0000
            tierExpirationDate:
              type: string
              description: >-
                Displays the tier expiration date in yyyy-MM-dd'T'HH:mm:ssZ
                format. When the tier expiration date is reached, the current
                tier is no longer valid. The loyalty points are deducted, and
                the tier sequence restarts from the base tier.
              example: 2024-04-01T00:00:00-0700
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi-point bucket details with the
                following fields. Only displays if multiple point buckets are
                enabled.
              properties:
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of points credited in the member’s
                        account towards additional coins bucket for the order.
                      example: 768
                    coinsCreditToExpireDate:
                      type: string
                      description: >-
                        Displays the date on which the coins credited will
                        expire in yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2025-04-01T00:00:00-0700
                    updatedAvailableCoins:
                      type: integer
                      description: >-
                        Displays the number of available coins updated in the
                        member’s account.
                      example: 560
                    updatedLifetimeCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the loyalty program.
                      example: 560
        For Partial Return:
          type: object
          properties:
            siteId:
              type: string
              description: Displays the Annex Cloud site ID for the loyalty program.
              example: 38044920
            orderId:
              type: string
              description: Displays the unique ID of the order.
              example: satestorder1
            pointsRemoved:
              type: integer
              description: >-
                Display the total number of points removed from the member’s
                account for returning the product(s).
              example: 0
            updatedAvailablePoints:
              type: integer
              description: >-
                Displays the number of points available in the member’s account
                after points have been removed.
              example: 468
            updatedLifetimePoints:
              type: integer
              description: >-
                Displays the updated number of points the member has earned in
                their lifetime with the loyalty program.
              example: 768
            previousTier:
              type: string
              description: >-
                Display the member’s tier prior to having points removed from
                the member’s account.
              example: silver
            updatedUserTier:
              type: string
              description: >-
                Displays the updated member’s tier after the points have been
                removed from the member’s account.
              example: bronze
            currentTier:
              type: string
              description: Displays the name of the loyalty member's current tier.
              example: bronze
            nextTier:
              type: string
              description: >-
                Displays the name of the next tier which will be awarded to the
                member once the required milestones are achieved.
              example: gold
            pointsToNextTier:
              type: integer
              description: >-
                Displays the number of points required to achieve the next tier.
                This depends on the point threshold required to reach the next
                tier and the number of points the member currently has in their
                account.
              example: 0
            currentTierPurchaseRatio:
              type: integer
              description: >-
                Displays the purchase point ratio that is applied to the
                member’s purchases while in their current tier.
              example: 1
            spendAmountToNextTier:
              type: integer
              description: >-
                Displays the amount the member needs to spend to achieve the
                next tier.
              example: 0
            tierAchievedDate:
              type: string
              description: >-
                Displays the date the current tier was reached by the member in
                yyyy-MM-dd'T'HH:mm:ssZ format.
              example: 2021-04-14T15:34:56+0000
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi-point bucket details with the
                following fields. Only displays if multiple point buckets are
                enabled.
              properties:
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of points credited in the member’s
                        account towards additional coins bucket for the order.
                      example: 768
                    coinsCreditToExpireDate:
                      type: string
                      description: >-
                        Displays the date on which the coins credited will
                        expire in yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2025-04-01T00:00:00-0700
                    updatedAvailableCoins:
                      type: integer
                      description: >-
                        Displays the number of available coins updated in the
                        member’s account.
                      example: 560
                    updatedLifetimeCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the loyalty program.
                      example: 560
        For Full Cancel:
          type: object
          properties:
            siteId:
              type: string
              description: Displays the Annex Cloud site ID for the loyalty program.
              example: 38044920
            orderId:
              type: string
              description: Displays the unique ID of the order.
              example: satestorder1
            pointsRemoved:
              type: integer
              description: >-
                Display the total number of points removed from the member’s
                account for cancelling the order.
              example: 60
            updatedAvailablePoints:
              type: integer
              description: >-
                Displays the number of points available in the member’s account
                after points have been removed for cancelling the order.
              example: 468
            updatedLifetimePoints:
              type: integer
              description: >-
                Displays the updated number of points the member has earned in
                their lifetime with the loyalty program.
              example: 768
            previousTier:
              type: string
              description: >-
                Display the member’s tier prior to having points updated in the
                member’s account.
              example: silver
            updatedUserTier:
              type: string
              description: >-
                Displays the updated member’s tier after the points have been
                updated in the member’s account.
              example: bronze
            currentTier:
              type: string
              description: >-
                Displays the name of the loyalty member's current tier. For
                example, Bronze, Silver, Gold.
              example: bronze
            nextTier:
              type: string
              description: >-
                Displays the name of the next tier which will be awarded to the
                member once the required milestones are achieved.
              example: gold
            pointsToNextTier:
              type: integer
              description: >-
                Displays the number of points required to achieve the next tier.
                This depends on the point threshold required to reach the next
                tier and the number of points the member currently has in their
                account.
              example: 0
            currentTierPurchaseRatio:
              type: integer
              description: >-
                Displays the purchase point ratio that is applied to the
                member’s purchases while in their current tier.
              example: 1
            spendAmountToNextTier:
              type: integer
              description: >-
                Displays the amount the member needs to spend to achieve the
                next tier.
              example: 1
            tierAchievedDate:
              type: string
              description: >-
                Displays the date the current tier was reached by the member in
                yyyy-MM-dd'T'HH:mm:ssZ format.
              example: 2023-04-14T15:34:56+0000
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi-point bucket details with the
                following fields. Only displays if multiple point buckets are
                enabled.
              properties:
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    debit:
                      type: integer
                      description: >-
                        Displays the number of coins debited from the member's
                        account for cancelling the product.
                      example: 768
                    updatedAvailableCoins:
                      type: integer
                      description: >-
                        Displays the number of available coins updated in the
                        member’s account.
                      example: 560
                    updatedLifetimeCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the loyalty program.
                      example: 560
        For Partial Cancel:
          type: object
          properties:
            siteId:
              type: string
              description: Displays the Annex Cloud site ID for the loyalty program.
              example: 38044920
            orderId:
              type: string
              description: Displays the unique ID of the order.
              example: satestorder1
            pointsRemoved:
              type: integer
              description: >-
                Display the total number of points removed from the member’s
                account for cancelling the product.
              example: 60
            updatedAvailablePoints:
              type: integer
              description: >-
                Displays the number of points available in the member’s account
                after points have been removed for cancelling the product.
              example: 468
            updatedLifetimePoints:
              type: integer
              description: >-
                Displays the updated number of points the member has earned in
                their lifetime with the loyalty program.
              example: 768
            previousTier:
              type: string
              description: >-
                Display the member’s tier prior to having points updated in the
                member’s account.
              example: silver
            updatedUserTier:
              type: string
              description: >-
                Displays the updated member’s tier after the points have been
                updated in the member’s account.
              example: bronze
            currentTier:
              type: string
              description: >-
                Displays the name of the loyalty member's current tier. For
                example, Bronze, Silver, Gold.
              example: bronze
            nextTier:
              type: string
              description: >-
                Displays the name of the next tier which will be awarded to the
                member once the required milestones are achieved.
              example: gold
            pointsToNextTier:
              type: integer
              description: >-
                Displays the number of points required to achieve the next tier.
                This depends on the point threshold required to reach the next
                tier and the number of points the member currently has in their
                account.
              example: 0
            currentTierPurchaseRatio:
              type: integer
              description: >-
                Displays the purchase point ratio that is applied to the
                member’s purchases while in their current tier.
              example: 1
            spendAmountToNextTier:
              type: integer
              description: >-
                Displays the amount the member needs to spend to achieve the
                next tier.
              example: 1
            tierAchievedDate:
              type: string
              description: >-
                Displays the date the current tier was reached by the member in
                yyyy-MM-dd'T'HH:mm:ssZ format.
              example: 2023-04-14T15:34:56+0000
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi-point bucket details with the
                following fields. Only displays if multiple point buckets are
                enabled.
              properties:
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    debit:
                      type: integer
                      description: >-
                        Displays the number of coins debited from the member's
                        account for cancelling the product.
                      example: 768
                    updatedAvailableCoins:
                      type: integer
                      description: >-
                        Displays the number of available coins updated in the
                        member’s account.
                      example: 560
                    updatedLifetimeCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the loyalty program.
                      example: 560
    getRewardsByUser:
      type: object
      properties:
        siteId:
          type: integer
          description: Displays Annex Cloud’s site ID for the loyalty program.
          example: 38044920
        creditsToCurrencyRatio:
          type: string
          description: >-
            Displays the credits to currency ratio defined by the admin.
            Multiplying this ratio by the member's available points results in
            total currency values of the available points.
          example: '0.05'
        creditsToCurrencyValue:
          type: string
          description: >-
            Displays the total currency value after multiplying the member’s
            available points with credit to currency ratio up to a defined
            decimal place.
          example: 5.05
        rewardDetail:
          type: object
          description: Displays the following details associated with the rewards.
          properties:
            rewardId:
              type: integer
              description: >-
                Displays the unique ID for the reward configured in the loyalty
                program.
              example: 123
            rewardCategory:
              type: string
              description: >-
                Displays the reward category as defined when configuring the
                reward in the Annex Cloud platform.
              example: winter offer
            displayText:
              type: string
              description: Displays a brief description of the reward.
              example: $5 off gift card
            rewardType:
              type: string
              description: >-
                Displays the reward type set while configuring the reward. Note
                - As long as the reward type is set to 0, loyalty members do not
                receive a reward code. If the field is set to any other value,
                they do receive a reward code.
              example: lorem
            rewardTerms:
              type: string
              description: >-
                Displays the terms and conditions (rules, restrictions) for the
                reward.
              example: >-
                Points can be redeemed for rewards according to the current
                redemption schedule. Rewards may include discounts, merchandise,
                or other specified offers. Rewards are subject to availability
                and may be changed or discontinued at any time without notice.
                By participating in the Loyalty Program, you acknowledge that
                you have read, understood, and agree to abide by these terms and
                conditions.
            rewardDescription:
              type: string
              description: Displays the additional information related to the reward.
              example: Update your date of birth and get 2x points
            creditRequired:
              type: integer
              description: Displays the number of points required to claim the reward.
              example: 500
            deductAmount:
              type: integer
              description: >-
                Displays the monetary value of the reward to be applied to the
                order as a discount.
              example: 4
            rewardCurrency:
              type: string
              description: Displays the reward currency.
              example: $
            rewardUrl:
              type: string
              description: >-
                Displays the URL to claim reward benefits. The member will be
                directed to the reward page after clicking the URL.
              example: www.example.com/reward
            rewardImageUrl:
              type: string
              description: Displays the reward image URL.
              example: www.example.com/example.png
            defaultThumbnailImageUrl:
              type: string
              description: >-
                Displays the thumbnail image for the reward. Note - The image
                value is in base64 encoded format. For example,
                aHR0cHM6Ly93d3cuc29jaWFsYW5uZXguY29tL3B1YmxpYy9tYW5hZ2VvcHRpb25zZGVzaWduMTYvaW1hZ2VzL3Byb2R1Y3RfbGFuZGluZy9sb3lhbHR5LWhvdmVyLnBuZw==.
              example: https://image.winterofferthumbnail.com
            videoImageUrl:
              type: string
              description: Displays the URL for the video image associated with the reward.
              example: https://videoimagewinteroffer.com
            productId:
              type: string
              description: >-
                Displays the product ID of the product for which reward can be
                earned.
              example: p3
            tierId:
              type: integer
              description: >-
                Displays the system generated unique tier ID for the tier
                associated with the reward.
              example: 1592
            tierName:
              type: string
              description: Displays the name of the tier associated with the reward.
              example: Silver
            tierEligible:
              type: integer
              description: >-
                Displays whether the member qualifies for the reward based on
                tier benefits or not.
              example: 'yes'
            userTierId:
              type: integer
              description: Displays the tier ID for the member’s current tier.
              example: 6755
            userTierName:
              type: string
              description: Displays the name of the member’s current tier.
              example: Gold
            tierAchievedDate:
              type: string
              description: >-
                Displays the current tier achievement date in
                yyyy-MM-dd'T'HH:mm:ssZ format.
              example: 2018-04-01T00:00:00-0700
            rewardExpirationType:
              type: string
              description: >-
                Displays the reward expiration type as rolling or calendar. If
                ‘Rolling’ is selected, the result appears in days, whereas
                ‘Calendar’ shows the result in weeks, months, or years.
              example: Rolling
            rewardExpirationPeriod:
              type: string
              description: >-
                Displays the time after which the reward expires in days,
                months, or years.
              example: 2 Days
            eligible:
              type: string
              description: >-
                Displays whether the member is eligible for the reward on a
                weekly, monthly, or annual basis.
              example: 'yes'
            additionalPointsRequired:
              type: integer
              description: >-
                Displays the number of points required to get the benefits of
                the reward. For example, if the reward threshold is set to 300
                points and a member currently has 250 points, the member must
                earn 50 more points to get the benefit of the reward.
              example: 50
            nonEligibleReason:
              type: string
              description: >-
                Displays the reason why the member is not eligible for the
                reward.
              example: Not for this period
            yearSelected:
              type: integer
              description: >-
                Displays the year in which loyalty members are eligible to
                redeem the reward (if defined upon award configuration).
              example: 2021
            period:
              type: string
              description: >-
                Displays the period that the reward is available to eligible
                members. For example, monthly, quarterly, half-yearly or
                annually.
              example: monthly
            periodDetails:
              type: string
              description: >-
                Displays the month, quarter, or year in which the reward can be
                claimed based on the period defined upon configuration.
              example: January
            rewardLimit:
              type: integer
              description: >-
                Displays the limit for how many times a member can claim the
                reward. For example, If the maximum user claim count is set to
                five, the reward could be claimed only five times. If the
                maximum user claim count is set to zero, there is no restriction
                on claiming rewards based on availability.
              example: 0
            limitPeriod:
              type: string
              description: >-
                Displays the length of time the reward claim limit is in place.
                For example, if the claim limit was set to 4 and the limit
                period is “lifetime”, the member can only claim this reward 4
                times in their lifetime with the loyalty program.
              example: lifetime
            redeemCount:
              type: integer
              description: >-
                Displays the number of times the reward has been redeemed by the
                member.
              example: 5
            remainingCount:
              type: integer
              description: >-
                Displays the remaining number of times the member can claim the
                reward. (Based on the Maximum User Claim Count). For example, if
                the maximum user claim count is 5 and the member has already
                claimed the reward 3 times, then the remaining count would be 2.
              example: 2
            autoRewardStatus:
              type: string
              description: >-
                Displays whether the automate reward flag is enabled within the
                reward’s additional settings. If it is enabled, the response
                will display as YES. If it is not enabled, the response will be
                NO. If the flag is turned on, the following parameters will also
                appear.
              example: 'yes'
            autoRewardBasedOn:
              type: string
              description: >-
                Displays what criteria the automated reward is based on-
                Purchase Amount or Lifetime Points.
              example: lifetime points
            autoRewardClaimThresholdType:
              type: string
              description: >-
                Displays the threshold type to claim the reward automatically.
                It can be either Rolling or Fixed.
              example: rolling
            autoRewardClaimThresholdValue:
              type: integer
              description: >-
                Displays the number of points or spend amount required by the
                member to claim the reward automatically.
              example: 50
            autoRewardClaimLimit:
              type: integer
              description: >-
                Displays the number of times the reward can be claimed
                automatically.
              example: 20
            autoRewardClaimReason:
              type: string
              description: >-
                Displays the reason the member can claim the reward
                automatically.
              example: Auto Voucher Claimed
            timeBasedIssuanceFlag:
              type: string
              description: >-
                Displays the status of the flag as ON or OFF. YES, indicates
                that the flag is ON and NO indicates that it is off. This
                feature allows the admin to award the reward automatically at a
                scheduled time.
              example: 'YES'
            timeBasedIssuanceDate:
              type: string
              description: >-
                Displays the time at which the reward is awarded to the member
                in yyyy-MM-dd format.
              example: '2023-06-21'
            rewardEligibilityType:
              type: string
              description: Displays the type of reward eligibility as Fixed or Recurring.
              example: fixed
            rewardEligibilityBasedOn:
              type: string
              description: >-
                Displays the eligibility criteria based on which the member can
                qualify for the reward. If reward eligibility type is “Fixed”,
                the member’s eligibility will be based on lifetime points,
                purchase amount, segment, or tier. If reward eligibility type is
                “Recurring”, the member’s eligibility will be based on earned
                points in a calendar year.
              example: lifetime points
            rewardEligibilityThreshold:
              type: integer
              description: >-
                Displays the number of points earned or amount to be spent by
                the member to qualify for the reward. (If eligibility is based
                on points earned or amount spent).
              example: 50
            multibucketsData:
              type: object
              description: >-
                Displays an array of all multi bucket details with the following
                fields when the multi point bucket flag is enabled. Note - To
                redeem the reward, the reward eligibility threshold and
                multibucket criteria must be completed.
              properties:
                tierPoints:
                  type: object
                  description: Displays the details of the object tier points.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of tier points required to redeem
                        the reward.
                      example: 10
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of coins required to redeem the
                        reward.
                      example: 10
                tierCoins:
                  type: object
                  description: Displays the details of the object tier coins.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of tier coins required to redeem the
                        reward.
                      example: 10
                perks:
                  type: object
                  description: Displays the details of the object perks.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of perks required to redeem the
                        reward.
                      example: 10
                tierPerks:
                  type: object
                  description: Displays the details of the object tier perks.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of tier perks required to redeem the
                        reward.
                      example: 10
            tierData:
              type: object
              description: >-
                If the reward is associated with a tier in the loyalty program
                the details below will be displayed.
              properties:
                tierId:
                  type: integer
                  description: Displays the unique tier ID.
                  example: 2186
                tierName:
                  type: string
                  description: >-
                    Displays the name of the tier which the member must be a
                    part of to redeem the reward if reward eligibility is based
                    on tier.
                  example: Silver
                tierEligible:
                  type: integer
                  description: >-
                    Displays YES if the member satisfies the tier criteria
                    otherwise NO.
                  example: 'YES'
                rewardLimit:
                  type: integer
                  description: >-
                    Displays the limit for how many times a member can claim the
                    reward. For example, If the maximum user claim count is set
                    to five, the reward could be claimed only five times. If the
                    maximum user claim count is set to zero, there is no
                    restriction on claiming rewards based on availability.
                  example: 0
                limitPeriod:
                  type: string
                  description: >-
                    Displays the length of time the reward claim limit is in
                    place. For example, if the claim limit was set to 4 and the
                    limit period is “lifetime”, the member can only claim this
                    reward 4 times in their lifetime with the loyalty program.
                  example: lifetime
    AddOrRemovePointsResponse:
      type: object
      properties:
        To Redeem Custom Points:
          type: object
          properties:
            siteId:
              type: string
              description: Displays Annex Cloud’s site ID for the loyalty program.
              example: 9991331
            id:
              type: string
              description: Displays the unique ID for the member.
              example: johan19.sa@gmail.com
            actionId:
              type: integer
              description: >-
                Displays the unique action ID for the redemption of custom
                points performed by the member.
              example: 100
            activity:
              type: string
              description: Displays debit to indicate custom points were redeemed.
              example: debit
            rewardId:
              type: integer
              description: Displays the specific reward ID associated with the points.
              example: 27
            orderId:
              type: string
              description: Displays the loyalty member's order ID.
              example: A12345
            debit:
              type: integer
              description: >-
                Displays the number of points debited from the member’s account
                for redeeming custom points by performing the redemption action.
              example: 500
            pointsDeducted:
              type: integer
              description: >-
                Displays the number of points deducted from the member’s account
                for redeeming the custom points. (Points deducted refers to the
                points subtracted from the debited points. This can be
                configured in the “Points Deduction Behavior” where options
                like, “Do not Allow Negative Points, Allow Negative Points, and
                Set Balance to Zero” are available).
              example: 100
            reason:
              type: string
              description: >-
                Displays the reason for removing points from the member’s
                account upon redeeming custom points.
              example: claim
            source:
              type: string
              description: >-
                Displays the source from where the transaction was performed by
                the member. For example, Web or App.
              example: web
            previousTier:
              type: string
              description: Displays the member’s tier before redeeming custom points.
              example: silver
            updatedUserTier:
              type: string
              description: >-
                Displays the member’s updated tier after the points are removed
                for the redemption of custom points.
              example: gold
            updatedAvaialblePoints:
              type: integer
              description: >-
                Displays the updated number of available points in the member’s
                account after redeeming the custom points.
              example: 900
            updatedLifetimepoints:
              type: integer
              description: >-
                Displays the updated number of points the member has earned in
                their lifetime with the program after redeeming the custom
                points.
              example: 1327
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi bucket details with the following
                fields.
              properties:
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    debit:
                      type: integer
                      description: >-
                        Displays the number of coins debited from the member’s
                        account.
                      example: 100
                    updatedAvailableCoins:
                      type: integer
                      description: >-
                        Displays the updated number of available coins in the
                        member’s account redeeming the custom points.
                      example: 200
                    updatedLifetimeCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the program after
                        redeeming the custom points.
                      example: 300
                tierCoins:
                  type: object
                  description: Displays the details of the object tier coins.
                  properties:
                    debit:
                      type: integer
                      description: >-
                        Displays the number of coins debited from the member’s
                        tier coins bucket for the redemption.
                      example: 100
                    updatedAvailableTierCoins:
                      type: integer
                      description: >-
                        Displays the updated number of available coins in the
                        member’s tier coins bucket after redeeming the custom
                        points.
                      example: 500
                    updatedLifetimeTierCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the program after
                        redeeming the custom points.
                      example: 800
        To Award Custom Points:
          type: object
          properties:
            siteId:
              type: string
              description: Displays Annex Cloud’s site ID for the loyalty program.
              example: 99383640
            id:
              type: string
              description: Displays the unique ID of the member.
              example: johan19.sa@gmail.com
            actionId:
              type: integer
              description: >-
                Displays the unique action ID for which the member is being
                awarded custom points.
              example: 100
            activity:
              type: string
              description: >-
                Displays credit when custom points are awarded to the member’s
                account.
              example: credit
            credit:
              type: integer
              description: >-
                Displays the number of custom points credited to the member’s
                account.
              example: 50
            pointsAwarded:
              type: integer
              description: Displays the number of points awarded to the member's account.
              example: 50
            reason:
              type: string
              description: Displays the reason for awarding points to the member’s account.
              example: bonus
            source:
              type: string
              description: >-
                Displays the source from where the transaction was performed by
                the member. For example, Web or App.
              example: web
            previousTier:
              type: string
              description: >-
                Displays the member’s previous tier before the custom points
                were awarded to their account.
              example: silver
            updatedUserTier:
              type: string
              description: >-
                Displays the member’s updated tier after crediting points to
                their account.
              example: gold
            updatedAvaialblePoints:
              type: integer
              description: >-
                Displays the number of updated available points after the points
                have been credited to the member’s account.
              example: 4545
            updatedLifetimepoints:
              type: integer
              description: >-
                Displays the total number of points the member has earned in
                their lifetime with the loyalty program.
              example: 7860
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi bucket details with the following
                fields.
              properties:
                coins:
                  type: object
                  description: Displays the details of the object coins.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of coins credited to the member’s
                        account coins bucket for performing the action.
                      example: 100
                    coinsToExpireDate:
                      type: string
                      description: >-
                        Displays the date on which coins will expire in
                        yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2020-10-30T05:30:00+0000
                    updatedAvailableCoins:
                      type: integer
                      description: >-
                        Displays the updated number of available coins in the
                        member’s account redeeming the custom points.
                      example: 200
                    updatedLifetimeCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the program after
                        redeeming the custom points.
                      example: 300
                tierCoins:
                  type: object
                  description: Displays the details of the object tier coins.
                  properties:
                    credit:
                      type: integer
                      description: >-
                        Displays the number of coins credited to the member’s
                        account in the tier coins bucket after the points were
                        awarded.
                      example: 100
                    tierCoinsToExpireDate:
                      type: string
                      description: >-
                        Displays the date on which the coins will expire in the
                        tier coins bucket date in yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2020-10-30T05:30:00+0000
                    updatedAvailableTierCoins:
                      type: integer
                      description: >-
                        Displays the updated number of available coins in the
                        member’s tier coins bucket after redeeming the custom
                        points.
                      example: 500
                    updatedLifetimeTierCoins:
                      type: integer
                      description: >-
                        Displays the updated number of coins the member has
                        earned in their lifetime with the program after
                        redeeming the custom points.
                      example: 800
    getPointsDetails:
      type: object
      properties:
        siteId:
          type: string
          description: Displays Annex Cloud’s site ID for the loyalty program.
          example: 38044920
        id:
          type: string
          description: Displays the unique ID of the member.
          example: johan19.sa@gmail.com
        availablePoints:
          type: integer
          description: Displays the number of available points in the member’s account.
          example: 6656
        usedPoints:
          type: integer
          description: Displays the number of points used from the member’s account.
          example: 600
        expiredPoints:
          type: integer
          description: Displays the number of expired points from the member’s account.
          example: 2023-04-01T00:00:00-0700
        lifetimePoints:
          type: integer
          description: >-
            Displays the number of points the member has earned in their
            lifetime with the loyalty program.
          example: 7256
        earnedPointsPeriod:
          type: string
          description: >-
            Displays the period during which points are earned by the member.
            For example, anniversary year, calendar year, quarter, semester.
            (Displays only when earned points display flag is enabled in the
            configuration).
          example: anniversary year
        earnedPoints:
          type: integer
          description: >-
            Displays the total number of points earned by the member within the
            selected time period.
          example: 123
        holdPoints:
          type: integer
          description: Displays the total number of points on hold in the member’s account.
          example: 1000
        usedPointsOnReward:
          type: integer
          description: Displays the total number of points used by the member on rewards.
          example: 600
        pointsToExpire:
          type: integer
          description: >-
            Displays the total number of expired points, indicating that the
            member had not used these points within the specified date range.
          example: 56
        pointsToNextTier:
          type: integer
          description: >-
            Displays the number of points needed for the member to achieve the
            next tier.
          example: 20
        spendToNextTier:
          type: integer
          description: >-
            Displays the amount that the member needs to spend to achieve the
            next tier.
          example: 0
        pointsToExpireDate:
          type: string
          description: >-
            Displays the date on which the points will expire in
            yyyy-MM-dd'T'HH:mm:ssZ format.
          example: 2020-01-30T05:30:00+0000
        totalSpent:
          type: integer
          description: Displays the total number of points spent by the member.
          example: 550
        rewardDenomination:
          type: integer
          description: Displays the denomination value associated with the reward.
          example: 500
        creditToCurrencyRatio:
          type: integer
          description: >-
            Displays the credits to currency ratio defined by the admin.
            Multiplying this ratio by the member's available points results in
            total currency values of the available points.
          example: 1
        creditToCurrencyValue:
          type: integer
          description: >-
            Displays the total currency value after multiplying the available
            points with credit to currency ratio, rounded to the defined decimal
            place.
          example: 6656
        ytdCreditPoints:
          type: integer
          description: >-
            Displays the total number of points credited to the member’s account
            from the beginning of the year up to the current date.
          example: 8620
        ytdDebitPoints:
          type: integer
          description: >-
            Displays the total number of points debited from the member’s
            account from the beginning of the year up to the current date.
          example: 2000
        availableRedemptionPoints:
          type: integer
          description: >-
            Displays the total number of available points for redemption in the
            member’s account.
          example: 1100
        usedRedemptionPoints:
          type: integer
          description: >-
            Displays the total number of points used for redemption in the
            member’s account.
          example: 0
        multiBucketsData:
          type: object
          description: >-
            Displays an array of all multi bucket details with the following
            fields.
          properties:
            points:
              type: object
              description: Displays an array of all multi bucket points.
              properties:
                availablePoints:
                  type: integer
                  description: >-
                    Displays the number of points available in the member’s
                    account within the additional point bucket.
                  example: 100
                lifetimePoints:
                  type: integer
                  description: >-
                    Displays the number of points the member has earned in their
                    lifetime with the loyalty program.
                  example: 200
                usedPoints:
                  type: integer
                  description: >-
                    Displays the number of points used by the member from the
                    additional point bucket.
                  example: 300
                negativePoints:
                  type: integer
                  description: >-
                    Displays the number of negative points in the member’s
                    account in the additional point bucket.
                  example: 0
                holdPoints:
                  type: integer
                  description: >-
                    Displays the number of points on hold in the member’s
                    account.
                  example: 5
                expiredPoints:
                  type: integer
                  description: >-
                    Displays the number of points from the additional point
                    bucket that have expired.
                  example: 100
                pointsToExpire:
                  type: integer
                  description: >-
                    Displays the total number of points that are next to expire
                    in the additional point bucket.
                  example: 500
                pointsToExpireDate:
                  type: string
                  description: >-
                    Displays the date on which the points will expire in
                    yyyy-MM-dd'T'HH:mm:ssZ format.
                  example: 2020-10-30T05:30:00+0000
                pointsToNextTier:
                  type: integer
                  description: >-
                    Displays the number of points required to reach the next
                    tier associated with the additional point bucket.
                  example: 0
                tierPoints:
                  type: object
                  description: Displays the details of the object tier points.
                  properties:
                    availableTierpoints:
                      type: integer
                      description: >-
                        Displays the number of points available in the member’s
                        account within the additional tier points bucket.
                      example: 20
                    lifetimeTierpoints:
                      type: integer
                      description: >-
                        Displays the number of tier points the member has earned
                        in their lifetime with the loyalty program.
                      example: 58
                    usedTierpoints:
                      type: integer
                      description: >-
                        Displays the number of points used by the member from
                        the additional tier points bucket.
                      example: 78
                    negativeTierPoints:
                      type: integer
                      description: >-
                        Displays the total number of negative points in the
                        member’s account in the additional tier points bucket.
                      example: 0
                    expiredTierpoints:
                      type: integer
                      description: >-
                        Displays the number of points from the additional tier
                        points bucket that have expired.
                      example: 100
                    holdTierpoints:
                      type: integer
                      description: >-
                        Displays the number of points on hold in the member’s
                        account in the additional tier points bucket.
                      example: 50
                    tierPointsToExpire:
                      type: integer
                      description: >-
                        Displays the total number of points that are next to
                        expire in the tier points bucket.
                      example: 115
                    tierPointsToExpireDate:
                      type: string
                      description: >-
                        Displays the date on which the points will expire in
                        yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2020-04-29'T'04:45:56+0000
                    pointsToNextTier:
                      type: integer
                      description: >-
                        Displays the total number of points required to reach
                        the next tier associated with the additional points
                        bucket.
                      example: 0
    productpointsresponse:
      type: object
      properties:
        siteId:
          type: string
          description: Displays Annex Cloud’s site ID for the loyalty program.
          example: 33986340
        data:
          type: object
          description: Displays the order details.
          properties:
            id:
              type: string
              description: Displays the unique product ID.
              example: 12345
            quantity:
              type: integer
              description: Displays the quantity of the product that has been purchased.
              example: 2
            unitPrice:
              type: integer
              description: Displays the unit price of the product.
              example: 10
            autoDelivery:
              type: string
              description: >-
                Displays the auto delivery as YES or NO for the products. If not
                provided, then by default it is YES.
              example: 'YES'
            points:
              type: integer
              description: >-
                Displays the number of points the member earned for purchasing
                the product.
              example: 70
            calculation:
              type: integer
              description: >-
                Displays the calculation of points the member will earn after
                purchasing that product.
              example: >-
                Total Points = Purchase ratio (1) * Product ratio () * Tier
                ratio (2) * Sale amount(10) * Quantity (1)
            pointsRatio:
              type: integer
              description: >-
                Displays the total points ratio [purchaseRatio/campaignRatio
                (whichever is higher) X  tierRatio].
              example: 2
        multibucketsData:
          type: object
          description: >-
            Displays an array of all multi-point bucket details with the
            following fields. Only displays if multiple point bucket is enabled.
          properties:
            tierStatusPoints:
              type: object
              description: Displays the details of the object tier status points.
              properties:
                cartStatusPointsTierCredit:
                  type: integer
                  description: >-
                    Displays the number of points credited in the member’s
                    account towards cart status points.
                  example: 20
                tierstatuspointsToExpireDate:
                  type: string
                  description: >-
                    Displays the date on which the tier status points will
                    expire in yyyy-MM-dd'T'HH:mm:ssZ format.
                  example: 2022-09-21T00:00:00-0700
                availableTierStatusPoints:
                  type: integer
                  description: >-
                    Displays the number of tier status points available in the
                    member’s account.
                  example: 210
                lifetimeTierStatus Points:
                  type: integer
                  description: >-
                    Displays the number of tier status points the member has
                    earned in their lifetime with the loyalty program.
                  example: 410
                availableStatusPointsTierCreditAfterOrder:
                  type: integer
                  description: >-
                    Displays the number of tier status points available in the
                    member’s account credited after purchasing the product.
                  example: 230
                lifetimeStatusPointsTierCreditAfterOrder:
                  type: integer
                  description: >-
                    Displays the number of tier status points the member has
                    earned in their lifetime with the loyalty program after the
                    order is placed.
                  example: 430
    cartproductpointsresponse:
      type: object
      properties:
        cartproductpointsresponse:
          type: object
          description: Displays the following parameters.
          properties:
            siteId:
              type: string
              description: Displays Annex Cloud’s site ID for the loyalty program.
              example: 33986340
            userId:
              type: string
              description: Displays the unique ID of the member.
              example: samsa35.sa@gmail.com
            lifetimePoints:
              type: integer
              description: >-
                Displays the number of points the member has earned in their
                lifetime with the loyalty program.
              example: 450
            usedPoints:
              type: integer
              description: Displays the number of points used from the member’s account.
              example: 200
            availablePoints:
              type: integer
              description: Displays the number of available points in the member’s account.
              example: 250
            holdPoints:
              type: integer
              description: >-
                Displays the total number of points on hold in the member’s
                account.
              example: 5
            cartPoints:
              type: integer
              description: >-
                Displays the number of points the member will earn after
                purchasing the products which are in their cart.
              example: 20
            availablePointsAfterOrder:
              type: integer
              description: >-
                Displays the number of available points the member will have
                after placing the order.
              example: 320
            holdPointsAfterOrder:
              type: integer
              description: >-
                Displays the number of points which are on hold after placing
                the order.
              example: 5
            creditsToCurrencyRatio:
              type: string
              description: >-
                Displays the credit to currency ratio defined by the admin.
                Multiplying this ratio by the member's available points results
                in total currency values of the available points.
              example: 0.25
            creditsToCurrencyValue:
              type: string
              description: >-
                Displays the total currency value after multiplying the
                available points by the credit to currency ratio up to a defined
                decimal place.
              example: 6656.678
            creditsToCurrencyValueAfterOrder:
              type: string
              description: >-
                Displays the credit to currency value of total available points
                after the order is placed by the member.
              example: 7656.678
            creditsToCurrencyValueCartPoints:
              type: string
              description: >-
                Displays the credit to currency value of the current cart
                points.
              example: 7656.678
            productDetail:
              type: object
              description: Displays the details of the object product detail.
              properties:
                id:
                  type: string
                  description: Displays the unique ID of the product.
                  example: Abc123
                quantity:
                  type: integer
                  description: >-
                    Displays the quantity of the product that has been
                    purchased.
                  example: 1
                unitPrice:
                  type: integer
                  description: Displays the unit price of the product.
                  example: 10
                points:
                  type: integer
                  description: >-
                    Displays the number of points the member earned for
                    purchasing the product.
                  example: 20
                productName:
                  type: string
                  description: Displays the name of the product.
                  example: lorem
                categoryId:
                  type: integer
                  description: Displays the category ID of the product.
                  example: 23
                categoryName:
                  type: string
                  description: Displays the category name of the product.
                  example: lorem ipsum
            multiBucketsData:
              type: object
              description: >-
                Displays an array of all multi-point bucket details with the
                following fields. Only displays if multiple point bucket is
                enabled.
              properties:
                tierStatusPoints:
                  type: object
                  description: Displays the details of the object tier status points.
                  properties:
                    cartStatusPointsTierCredit:
                      type: integer
                      description: >-
                        Displays the number of points credited in the member’s
                        account towards cart status points.
                      example: 20
                    tierstatuspointsToExpireDate:
                      type: string
                      description: >-
                        Displays the date on which the tier status points that
                        will expire in yyyy-MM-dd'T'HH:mm:ssZ format.
                      example: 2022-09-21T00:00:00-0700
                    availableTierStatusPoints:
                      type: integer
                      description: >-
                        Displays the number of tier status points available in
                        the member’s account.
                      example: 210
                    lifetimeTierStatus Points:
                      type: integer
                      description: >-
                        Displays the number of tier status points the member has
                        earned in their lifetime with the loyalty program.
                      example: 410
                    availableStatusPointsTierCreditAfterOrder:
                      type: integer
                      description: >-
                        Displays the number of tier status points available in
                        the member’s account after the order is placed.
                      example: 230
                    lifetimeStatusPointsTierCreditAfterOrder:
                      type: integer
                      description: >-
                        Displays the number of tier status points the member has
                        earned in their lifetime with the loyalty program after
                        the order is placed.
                      example: 430
tags:
  - name: Tiers
    description: >-
      Welcome to Annex Cloud’s Tier API documentation for Multi Point Bucket.
      Designed to enhance your loyalty journey, this API allows you to discover
      a member’s current tier, the next achievable tier, along with the points
      needed to reach it. The multi bucket data provides insight into available
      tier points, coins, and perks. You can retrieve information for the points
      and coins required for member’s to advance to the next tier in the loyalty
      program.
  - name: Orders
    description: >-
      Welcome to Annex Cloud’s Order API documentation for Multi Point Bucket.
      Seamlessly manage orders, input and update order details, apply coupon
      codes, and track rewards whether customers are shopping instore, through
      your website or via mobile app. By using the multi point bucket parameters
      provided in the methods below you can allow members to earn points towards
      multiple point buckets for an order and update the points within the
      additional point buckets once an order’s status has been updated.
  - name: Rewards
    description: >-
      Welcome to Annex Cloud’s Rewards API documentation for Multi Point Bucket,
      designed to elevate your loyalty program experience. Using the GET method
      listed below, you can retrieve the list of rewards against a member’s User
      ID. You can easily see what rewards they are eligible for and what rewards
      require points in additional point buckets to be redeemed.
  - name: Points
    description: >-
      Welcome to Annex Cloud’s Points API documentation for Multi Point Bucket.
      Using the multi point bucket parameters provided in the documentation
      below, you can easily update points for members in your loyalty program
      within all point buckets. Additionally, you can use the GET method to
      retrieve all of the point information for a member, including the status
      of their points within the additional point buckets in your program.
  - name: Product
    description: >-
      Welcome to Annex Cloud’s Product API documentation for Multi Point Bucket.
      Using the method below you can calculate how many points a member will
      earn for purchasing products, including details on points that can be
      earned towards additional point buckets established in your loyalty
      program.
  - name: Cart
    description: >-
      Welcome to Annex Cloud’s Cart API documentation for Multi Point Bucket.
      Using the POST method below you can calculate the points members can earn
      for the products in their cart. This includes points that can be earned
      towards the additional point buckets established in your loyalty program.
security:
  - MuseumPlaceholderAuth: []
