---
title: "List member reward purchases"
method: GET
path: "/v2/loyalties/programs/{programId}/members/{memberId}/rewards/purchases"
tags: ["Programs"]
---

# List member reward purchases

`GET /v2/loyalties/programs/{programId}/members/{memberId}/rewards/purchases`

## Request

- Base URL: `https://api.voucherify.io`
- URL: `https://api.voucherify.io/v2/loyalties/programs/{programId}/members/{memberId}/rewards/purchases`
- Auth: none required

<Warning>

<Badge color="yellow">BETA endpoint</Badge>

This is a work-in-progress documentation of a BETA endpoint. The parameters, fields, request and response bodies, and other data may subject to change. If you want to share feedback or improvements, contact [Voucherify support](https://www.voucherify.io/contact-support) or your Technical Account Manager.

</Warning>

Lists reward transactions of type `PURCHASE` for the given program member,
with cursor-based pagination. Supports filtering by transaction id, reward id
and creation date.

## Path parameters

- `programId` string, required
- `memberId` string, required

## Query parameters

- `limit` unknown
- `order` union
  - string[]
  - '-created_at' | 'created_at'
- `cursor` unknown
- `filters` RewardPurchaseListFilters: Filters for listing reward purchases.
  - `junction` 'AND' | 'OR': Logical junction between the field filters. Defaults to AND behavior.
  - `id` RewardPurchaseFilterIdConditions: ID filter conditions for reward transaction ids. Values must match pattern `^lrtx_[a-f0-9]+$`. `$is`/`$is_not` accept a single value (string or 1-element array); `$in`/`$not_in` accept a string or an array of 1-100 values.
    - `conditions` object, required
      - `$is` union: Matches transactions whose id equals the given value.
        - string
        - string[]
      - `$is_not` union: Matches transactions whose id does not equal the given value.
        - string
        - string[]
      - `$in` union: Matches transactions whose id is one of the given values.
        - string
        - string[]
      - `$not_in` union: Matches transactions whose id is not one of the given values.
        - string
        - string[]
  - `reward_id` RewardPurchaseFilterRewardIdConditions: ID filter conditions for reward ids. Values must match pattern `^lrew_[a-f0-9]+$`. `$is`/`$is_not` accept a single value (string or 1-element array); `$in`/`$not_in` accept a string or an array of 1-100 values.
    - `conditions` object, required
      - `$is` union: Matches transactions whose reward id equals the given value.
        - string
        - string[]
      - `$is_not` union: Matches transactions whose reward id does not equal the given value.
        - string
        - string[]
      - `$in` union: Matches transactions whose reward id is one of the given values.
        - string
        - string[]
      - `$not_in` union: Matches transactions whose reward id is not one of the given values.
        - string
        - string[]
  - `created_at` RewardPurchaseFilterDateConditions: Date filter conditions. `$before`/`$after` accept an ISO date-time string. `$is`/`$more_than`/`$less_than` accept a non-negative integer number of days ago. `$has_value`/`$is_unknown` accept any single value and match rows where the field is set / not set. Single values may also be passed as 1-element arrays.
    - `conditions` object, required
      - `$before` union: Matches rows with the date before the given date-time.
        - string
        - string[]
      - `$after` union: Matches rows with the date after the given date-time.
        - string
        - string[]
      - `$is` union: Matches rows with the date exactly the given number of days ago.
        - string
        - string[]
      - `$more_than` union: Matches rows with the date more than the given number of days ago.
        - string
        - string[]
      - `$less_than` union: Matches rows with the date less than the given number of days ago.
        - string
        - string[]
      - `$has_value` string: Matches rows where the date field is set.
      - `$is_unknown` string: Matches rows where the date field is not set.

## Response `200`

Paginated list of reward purchase transactions.

- RewardPurchaseListResponse: Paginated list of reward purchase transactions.
  - `data` RewardPurchaseTransaction[]: Reward purchase transactions (type `PURCHASE` only).
    - `id` string: Unique reward transaction identifier (format `lrtx_...`). Absent for DRY_RUN (SIMULATED) transactions, which are never persisted.
    - `card_id` string: Identifier of the loyalty card the points were spent from (format `lcrd_...`).
    - `card_transaction_id` unknown
    - `program_id` string: Identifier of the loyalty program (format `lprg_...`).
    - `member_id` string: Identifier of the program member (format `lmbr_...`).
    - `reward_id` string: Identifier of the purchased reward (format `lrew_...`).
    - `status` 'PENDING' | 'PROCESSING' | 'APPROVED' | 'REJECTED' | 'SIMULATED' | 'REFUNDED': Transaction status. `PENDING` — created, awaiting processing; `PROCESSING` — being processed; `APPROVED` — completed successfully; `REJECTED` — rejected (see `details.rejection`); `SIMULATED` — dry-run result, not persisted; `REFUNDED` — purchase has been refunded.
    - `type` 'PURCHASE' | 'REFUND': Transaction type.
    - `details` union: Transaction details. Shape depends on `type` — purchase details for `PURCHASE`, refund details for `REFUND`.
      - RewardPurchaseTransactionDetailsPurchase: Details of a PURCHASE reward transaction.
        - `reason` string: Human-readable reason. For purchases: "Points spent on reward".
        - `rejection` RewardPurchaseRejection: Rejection details.
          - `reason` string: Machine-readable rejection reason.
          - `details` string: Additional human-readable details about the rejection.
        - `metadata` object: Transaction metadata. Empty object when not set.
        - `points` RewardPurchasePoints: Points involved in the transaction.
          - `total` number: Total number of points.
        - `result` RewardPurchaseResult: Reward fulfillment result. Contains the fulfilled reward reference, quantity and the material or digital fulfillment payload.
          - `reward` RewardPurchaseResultReward: Reference to the fulfilled reward.
            - `id` string: Reward identifier (format `lrew_...`).
            - `type` 'MATERIAL' | 'DIGITAL': Reward type.
          - `quantity` unknown
          - `material` RewardPurchaseResultMaterial: Material reward fulfillment.
            - `type` 'PRODUCT' | 'SKU': Material reward type.
            - `product` object: Product payload (present when `type` is `PRODUCT`).
            - `sku` object: SKU payload (present when `type` is `SKU`).
          - `digital` RewardPurchaseResultDigital: Digital reward fulfillment.
            - `type` 'DISCOUNT_COUPONS' | 'GIFT_VOUCHERS' | 'LOYALTY_CARD_POINTS': Digital reward type.
            - `discount_coupons` RewardPurchaseDigitalCoupon[]: Fulfilled discount coupons (present when `type` is `DISCOUNT_COUPONS`).
              - …
            - `gift_vouchers` RewardPurchaseDigitalGiftVoucher[]: Fulfilled gift vouchers (present when `type` is `GIFT_VOUCHERS`).
              - …
            - `loyalty_card_points` RewardPurchaseDigitalLoyaltyCardPoints: Loyalty card points fulfillment entry.
              - …
      - RewardPurchaseTransactionDetailsRefund: Details of a REFUND reward transaction.
        - `reason` string: Human-readable reason, e.g. "Reward refund — point purchase reversed".
        - `rejection` RewardPurchaseRejection: Rejection details.
          - `reason` string: Machine-readable rejection reason.
          - `details` string: Additional human-readable details about the rejection.
        - `metadata` object: Transaction metadata. Empty object when not set.
        - `points` RewardPurchasePoints: Points involved in the transaction.
          - `total` number: Total number of points.
        - `result` RewardPurchaseResult: Reward fulfillment result. Contains the fulfilled reward reference, quantity and the material or digital fulfillment payload.
          - `reward` RewardPurchaseResultReward: Reference to the fulfilled reward.
            - `id` string: Reward identifier (format `lrew_...`).
            - `type` 'MATERIAL' | 'DIGITAL': Reward type.
          - `quantity` unknown
          - `material` RewardPurchaseResultMaterial: Material reward fulfillment.
            - `type` 'PRODUCT' | 'SKU': Material reward type.
            - `product` object: Product payload (present when `type` is `PRODUCT`).
            - `sku` object: SKU payload (present when `type` is `SKU`).
          - `digital` RewardPurchaseResultDigital: Digital reward fulfillment.
            - `type` 'DISCOUNT_COUPONS' | 'GIFT_VOUCHERS' | 'LOYALTY_CARD_POINTS': Digital reward type.
            - `discount_coupons` RewardPurchaseDigitalCoupon[]: Fulfilled discount coupons (present when `type` is `DISCOUNT_COUPONS`).
              - …
            - `gift_vouchers` RewardPurchaseDigitalGiftVoucher[]: Fulfilled gift vouchers (present when `type` is `GIFT_VOUCHERS`).
              - …
            - `loyalty_card_points` RewardPurchaseDigitalLoyaltyCardPoints: Loyalty card points fulfillment entry.
              - …
        - `purchase` RewardPurchaseRefundPurchaseReference: References to the original purchase transactions being refunded.
          - `card_transaction` object: Reference to the original card transaction.
            - `id` string: Card transaction identifier (format `lctx_...`).
          - `reward_transaction` object: Reference to the original reward transaction.
            - `id` string: Reward transaction identifier (format `lrtx_...`).
    - `created_at` string, date-time: Timestamp when the transaction was created (ISO 8601).
    - `updated_at` string, date-time: Timestamp when the transaction was last updated (ISO 8601), or `null`.
    - `object` string: Object type marker. Always `reward_transaction`.
  - `cursor` object: Pagination cursor. `null` when there are no more results.
    - `next` string: Cursor to pass as the `cursor` query parameter to fetch the next page (format `lcrstrx_...`).
    - `expires_at` string, date-time: Timestamp when the cursor expires.
  - `object` string: Object type marker. Always `list`.

## Other responses

- `400`: Validation error - request body or query parameters failed validation, or the operation is not allowed in the current resource state.
- `404`: Resource not found.
- `409`: Conflict - e.g. duplicate resource or invalid state transition.
- `500`: Internal server error.

---

[API](https://skmtc.dev/voucherifyio/apis/voucherify-api-async-actions.md) - [All operations](https://skmtc.dev/voucherifyio/apis/voucherify-api-async-actions/llms.txt) - [OpenAPI document](https://skmtc.dev/voucherifyio/apis/voucherify-api-async-actions/revisions/4982266e0494?raw)
