> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voucherify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List Card Definition Activities

> ⚠️ **BETA endpoint**

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 or your Technical Account Manager.

Returns a paginated list of activities (audit log) for a specific card definition.




## OpenAPI

````yaml /openapi/loyalties-v2.json get /v2/loyalties/card-definitions/{id}/activities
openapi: 3.1.0
info:
  title: Voucherify Loyalty v2 API
  version: 2.0.0
  description: >-
    Complete API documentation for Voucherify Loyalty v2 system. Requires
    LOYALTY_V2 feature flag.
servers:
  - url: https://api.voucherify.io
    description: Production
security:
  - bearerAuth: []
    X-App-Id: []
    X-App-Token: []
tags:
  - name: Card Definitions
    description: >-
      CRUD operations, lifecycle management, and activity history for card
      definitions. Card definitions describe the configuration for loyalty
      cards, including code generation, points expiration, earning/spending
      limits, pending points, refunds, and balance settings.
  - name: Programs
    description: >-
      Loyalty program CRUD, lifecycle management, program-scoped resource
      assignments (card definitions, earning rules, rewards, tier structures),
      member management (create, list, get, activate, deactivate, delete), card
      operations (points adjustment, pending points, expiring points,
      transactions), reward purchases, and activity history.
  - name: Earning Rules
    description: >-
      Manage earning rules that define how customers earn points or receive
      incentives based on triggers (events, segments, custom events). Includes
      CRUD, lifecycle, and activity history.
  - name: Tier Structures
    description: >-
      CRUD operations, lifecycle management, and activity history for tier
      structures. Includes nested tier definitions (create, list, update,
      delete) within tier structures. Tier structures define the tiering model
      for loyalty programs — how members qualify for and move between tiers.
  - name: Incentives
    description: >-
      Manage incentive definitions (fixed points, proportional points, material,
      digital). Includes CRUD, lifecycle transitions, and activity history.
  - name: Rewards
    description: >-
      CRUD, lifecycle operations, and activity history for reward definitions.
      Rewards can be material (product/SKU) or digital (discount coupons, gift
      vouchers).
  - name: Examine
    description: Examines the earning of loyalty points for a loyalty program member.
paths:
  /v2/loyalties/card-definitions/{id}/activities:
    get:
      tags:
        - Card Definitions
      summary: List Card Definition Activities
      description: >
        ⚠️ **BETA endpoint**


        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 or your Technical Account Manager.


        Returns a paginated list of activities (audit log) for a specific card
        definition.
      operationId: listCardDefinitionActivities
      parameters:
        - $ref: '#/components/parameters/CardDefinitionId'
        - name: filters[junction]
          in: query
          required: false
          schema:
            type: string
            enum:
              - AND
              - OR
        - name: filters[id][conditions][$is]
          in: query
          required: false
          schema:
            type: string
          description: Filter by exact activity ID.
        - name: filters[type][conditions][$is]
          in: query
          required: false
          schema:
            type: string
            enum:
              - vl.card_definition.created
              - vl.card_definition.updated
              - vl.card_definition.deleted
              - vl.card_definition.activated
              - vl.card_definition.deactivated
              - vl.card_definition.drafted
              - vl.card_definition.assigned
              - vl.card_definition.unassigned
          description: Filter by exact activity type.
        - name: filters[type][conditions][$in]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - vl.card_definition.created
                - vl.card_definition.updated
                - vl.card_definition.deleted
                - vl.card_definition.activated
                - vl.card_definition.deactivated
                - vl.card_definition.drafted
                - vl.card_definition.assigned
                - vl.card_definition.unassigned
          description: Filter by multiple activity types.
        - name: filters[created_at][conditions][$before]
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: filters[created_at][conditions][$after]
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: order
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - created_at
                - '-created_at'
          description: 'Sort order. Default: `-created_at`.'
        - name: cursor
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: List of card definition activities
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardDefinitionActivityListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    CardDefinitionId:
      name: id
      in: path
      required: true
      schema:
        type: string
      description: Unique card definition identifier.
  schemas:
    CardDefinitionActivityListResponse:
      type: object
      properties:
        object:
          type: string
          const: list
        data:
          type: array
          items:
            $ref: '#/components/schemas/CardDefinitionActivityResponse'
        cursor:
          oneOf:
            - $ref: '#/components/schemas/PaginationCursor'
            - type: 'null'
      required:
        - object
        - data
        - cursor
    CardDefinitionActivityResponse:
      type: object
      properties:
        id:
          type: string
        card_definition_id:
          type: string
        type:
          type: string
          enum:
            - vl.card_definition.created
            - vl.card_definition.updated
            - vl.card_definition.deleted
            - vl.card_definition.activated
            - vl.card_definition.deactivated
            - vl.card_definition.drafted
            - vl.card_definition.assigned
            - vl.card_definition.unassigned
        data:
          type: object
          description: >-
            Activity-specific data payload. Always includes `card_definition`.
            For `assigned`/`unassigned` types, also includes `program` and
            `program_card_definition`.
          properties:
            card_definition:
              $ref: '#/components/schemas/CardDefinitionResponse'
          required:
            - card_definition
        created_at:
          type: string
          format: date-time
        group_id:
          type: string
        source:
          oneOf:
            - $ref: '#/components/schemas/ActivitySource'
            - type: 'null'
      required:
        - id
        - card_definition_id
        - type
        - data
        - created_at
    PaginationCursor:
      type: object
      description: Cursor for fetching the next page of results.
      properties:
        next:
          type: string
          description: >-
            Cursor token to pass as the `cursor` query parameter for the next
            page.
        expires_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp when this cursor expires.
      required:
        - next
        - expires_at
    ErrorResponse:
      type: object
      description: Standard error response.
      properties:
        code:
          type: integer
          description: HTTP status code.
        key:
          type: string
          description: Machine-readable error key.
        message:
          type: string
          description: Human-readable error message.
        details:
          type: string
          description: Additional error details.
        request_id:
          type:
            - string
            - 'null'
          description: Request identifier for tracing.
        resource_id:
          type: string
          description: Related resource identifier (when applicable).
        resource_type:
          type: string
          description: Related resource type (when applicable).
      required:
        - code
        - key
        - message
    CardDefinitionResponse:
      type: object
      description: Full card definition DTO returned by all CRUD endpoints.
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
            - INDIVIDUAL
        status:
          type: string
          enum:
            - DRAFT
            - ACTIVE
            - INACTIVE
            - DELETED
        code_config:
          $ref: '#/components/schemas/CodeConfigDTO'
        points_expiration:
          $ref: '#/components/schemas/PointsExpirationDTO'
        pending_points:
          $ref: '#/components/schemas/PendingPointsDTO'
        earning_limits:
          $ref: '#/components/schemas/EarningLimitsDTO'
        spending_limits:
          $ref: '#/components/schemas/SpendingLimitsDTO'
        refunds:
          $ref: '#/components/schemas/RefundsDTO'
        balance_settings:
          $ref: '#/components/schemas/BalanceSettingsDTO'
        metadata:
          type: object
          additionalProperties: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
        object:
          type: string
          const: card_definition
      required:
        - id
        - name
        - type
        - status
        - code_config
        - points_expiration
        - pending_points
        - earning_limits
        - spending_limits
        - refunds
        - balance_settings
        - metadata
        - created_at
        - object
    ActivitySource:
      type: object
      description: Source information for an activity.
      properties:
        channel:
          type: string
          enum:
            - USER_PORTAL
            - API
            - CLIENT_API
            - INTERNAL
          description: Channel through which the activity was triggered.
        user:
          type: object
          properties:
            id:
              type: string
              description: User identifier.
        api_key:
          type: object
          properties:
            name:
              type: string
            app_id:
              type: string
            client_app_id:
              type: string
    CodeConfigDTO:
      type: object
      properties:
        pattern:
          type: string
          description: >-
            Code pattern using `#` as placeholder for random characters.
            Default: 10 `#` characters.
        length:
          type: integer
          description: Number of random characters in the pattern.
        charset:
          type: string
          description: >-
            Characters used for code generation. Default: alphanumeric
            (0-9a-zA-Z).
        prefix:
          type: string
          description: Prefix prepended to generated codes.
        postfix:
          type: string
          description: Postfix appended to generated codes.
      required:
        - pattern
        - length
        - charset
        - prefix
        - postfix
    PointsExpirationDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - NO_EXPIRATION
            - ROLLING_EXPIRATION
            - CALENDAR_EXPIRATION
            - SLIDING_EXPIRATION
        rolling_expiration:
          oneOf:
            - $ref: '#/components/schemas/RollingExpirationDTO'
            - type: 'null'
        calendar_expiration:
          oneOf:
            - $ref: '#/components/schemas/CalendarExpirationDTO'
            - type: 'null'
        sliding_expiration:
          oneOf:
            - $ref: '#/components/schemas/SlidingExpirationDTO'
            - type: 'null'
      required:
        - type
    PendingPointsDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - IMMEDIATE
            - PERIOD_BASED
            - FIXED_DATES
            - EVENT_BASED
        period_based:
          oneOf:
            - $ref: '#/components/schemas/PendingPointsPeriodBasedDTO'
            - type: 'null'
        fixed_dates:
          oneOf:
            - $ref: '#/components/schemas/PendingPointsFixedDatesDTO'
            - type: 'null'
        event_based:
          oneOf:
            - $ref: '#/components/schemas/PendingPointsEventBasedDTO'
            - type: 'null'
      required:
        - type
    EarningLimitsDTO:
      type: object
      properties:
        global:
          $ref: '#/components/schemas/EarningLimitsGlobalDTO'
        transactions:
          $ref: '#/components/schemas/EarningLimitsTransactionsDTO'
      required:
        - global
        - transactions
    SpendingLimitsDTO:
      type: object
      properties:
        global:
          $ref: '#/components/schemas/SpendingLimitsGlobalDTO'
        transactions:
          $ref: '#/components/schemas/SpendingLimitsTransactionsDTO'
      required:
        - global
        - transactions
    RefundsDTO:
      type: object
      properties:
        spent_points:
          $ref: '#/components/schemas/RefundsSpentPointsDTO'
        earned_points:
          $ref: '#/components/schemas/RefundsEarnedPointsDTO'
      required:
        - spent_points
        - earned_points
    BalanceSettingsDTO:
      type: object
      properties:
        allow_negative:
          type: boolean
          description: >-
            Whether the card balance can go below zero. Can only be `true` when
            `points_expiration.type` is `NO_EXPIRATION`.
      required:
        - allow_negative
    RollingExpirationDTO:
      type: object
      properties:
        period:
          $ref: '#/components/schemas/PeriodValueUnitDTO'
        rounding:
          oneOf:
            - $ref: '#/components/schemas/RollingRoundingDTO'
            - type: 'null'
      required:
        - period
    CalendarExpirationDTO:
      type: object
      properties:
        expiration_dates:
          type: array
          items:
            $ref: '#/components/schemas/DayMonthDTO'
      required:
        - expiration_dates
    SlidingExpirationDTO:
      type: object
      properties:
        earning_activity:
          type: boolean
        spending_activity:
          type: boolean
        custom_activity:
          type: boolean
        custom_activity_types:
          type: array
          items:
            type: string
          description: Custom event type IDs that reset the sliding window.
        period:
          $ref: '#/components/schemas/PeriodValueUnitDTO'
      required:
        - earning_activity
        - spending_activity
        - custom_activity
        - custom_activity_types
        - period
    PendingPointsPeriodBasedDTO:
      type: object
      properties:
        period:
          $ref: '#/components/schemas/PeriodValueUnitDTO'
      required:
        - period
    PendingPointsFixedDatesDTO:
      type: object
      properties:
        dates:
          type: array
          items:
            $ref: '#/components/schemas/DayMonthDTO'
      required:
        - dates
    PendingPointsEventBasedDTO:
      type: object
      properties:
        event_types:
          type: array
          items:
            type: string
          description: Custom event type IDs that trigger point activation.
        cancel_period:
          $ref: '#/components/schemas/PeriodValueUnitDTO'
      required:
        - event_types
        - cancel_period
    EarningLimitsGlobalDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - NO_LIMIT
            - LIMITED
        limits:
          type: array
          items:
            $ref: '#/components/schemas/EarningLimitsGlobalLimitDTO'
      required:
        - type
        - limits
    EarningLimitsTransactionsDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - NO_LIMIT
            - LIMITED
        limits:
          type: array
          items:
            $ref: '#/components/schemas/EarningLimitsTransactionsLimitDTO'
      required:
        - type
        - limits
    SpendingLimitsGlobalDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - NO_LIMIT
            - LIMITED
        limits:
          type: array
          items:
            $ref: '#/components/schemas/SpendingLimitsGlobalLimitDTO'
      required:
        - type
        - limits
    SpendingLimitsTransactionsDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - NO_LIMIT
            - LIMITED
        limits:
          type: array
          items:
            $ref: '#/components/schemas/SpendingLimitsTransactionsLimitDTO'
      required:
        - type
        - limits
    RefundsSpentPointsDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - NONE
            - REFUNDABLE
        methods:
          type: array
          items:
            $ref: '#/components/schemas/RefundsSpentPointsMethodDTO'
      required:
        - type
        - methods
    RefundsEarnedPointsDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - NONE
            - REFUNDABLE
        methods:
          type: array
          items:
            $ref: '#/components/schemas/RefundsEarnedPointsMethodDTO'
      required:
        - type
        - methods
    PeriodValueUnitDTO:
      type: object
      properties:
        value:
          type: integer
          minimum: 1
        unit:
          type: string
          enum:
            - DAY
            - MONTH
            - YEAR
      required:
        - value
        - unit
    RollingRoundingDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - END_OF_MONTH
            - END_OF_QUARTER
            - END_OF_HALF_YEAR
            - END_OF_YEAR
            - END_OF_PARTICULAR_MONTH
        value:
          type:
            - integer
            - 'null'
          description: >-
            Required and between 1-12 when type is `END_OF_PARTICULAR_MONTH`.
            Must be null otherwise.
          minimum: 1
          maximum: 12
      required:
        - type
    DayMonthDTO:
      type: object
      properties:
        day:
          type: integer
          minimum: 1
          maximum: 31
        month:
          type: integer
          minimum: 1
          maximum: 12
      required:
        - day
        - month
    EarningLimitsGlobalLimitDTO:
      type: object
      description: >-
        Discriminated by `type`. Either `BALANCE_BASED` (with `max`) or
        `TIME_BASED` (with `period` and `points`).
      properties:
        type:
          type: string
          enum:
            - BALANCE_BASED
            - TIME_BASED
        max:
          type: integer
          minimum: 1
          description: Maximum balance. Present when type is `BALANCE_BASED`.
        period:
          $ref: '#/components/schemas/EarningLimitsTimeBasedPeriodDTO'
        points:
          $ref: '#/components/schemas/PointsMaxDTO'
      required:
        - type
    EarningLimitsTransactionsLimitDTO:
      type: object
      description: >-
        Discriminated by `type`. Either `POINTS` (with `max`) or `SPENDING`
        (with `min_amount`).
      properties:
        type:
          type: string
          enum:
            - POINTS
            - SPENDING
        max:
          type: integer
          minimum: 1
          description: Maximum points per transaction. Present when type is `POINTS`.
        min_amount:
          type: integer
          minimum: 1
          description: >-
            Minimum spending amount required to earn points. Present when type
            is `SPENDING`.
      required:
        - type
    SpendingLimitsGlobalLimitDTO:
      type: object
      description: >-
        Discriminated by `type`. Either `SPENDING_BASED` (with `max`) or
        `TIME_BASED` (with `period` and `points`).
      properties:
        type:
          type: string
          enum:
            - SPENDING_BASED
            - TIME_BASED
        max:
          type: integer
          minimum: 1
          description: Maximum spending points. Present when type is `SPENDING_BASED`.
        period:
          $ref: '#/components/schemas/SpendingLimitsTimeBasedPeriodDTO'
        points:
          $ref: '#/components/schemas/PointsMaxDTO'
      required:
        - type
    SpendingLimitsTransactionsLimitDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - POINTS
        max:
          type: integer
          minimum: 1
          description: Maximum points per spending transaction.
      required:
        - type
        - max
    RefundsSpentPointsMethodDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - RETURN_POINTS
        mode:
          type: string
          enum:
            - REFUND_ALL
            - REFUND_ITEM
            - REFUND_AMOUNT
      required:
        - type
        - mode
    RefundsEarnedPointsMethodDTO:
      type: object
      description: >-
        Discriminated by `type`. `REVOKE_FROM_PENDING` has no extra fields.
        `REVOKE_FROM_BALANCE` includes `mode`.
      properties:
        type:
          type: string
          enum:
            - REVOKE_FROM_PENDING
            - REVOKE_FROM_BALANCE
        mode:
          type: string
          enum:
            - REVOKE_TO_ZERO
            - REVOKE_BELOW_ZERO
          description: Present only when type is `REVOKE_FROM_BALANCE`.
      required:
        - type
    EarningLimitsTimeBasedPeriodDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - CURRENT_PERIOD
        current_period:
          oneOf:
            - $ref: '#/components/schemas/CurrentPeriodDTO'
            - type: 'null'
      required:
        - type
    PointsMaxDTO:
      type: object
      properties:
        max:
          type: integer
          minimum: 1
          maximum: 2147483647
      required:
        - max
    SpendingLimitsTimeBasedPeriodDTO:
      type: object
      properties:
        type:
          type: string
          enum:
            - CURRENT_PERIOD
        current_period:
          oneOf:
            - $ref: '#/components/schemas/SpendingCurrentPeriodDTO'
            - type: 'null'
      required:
        - type
    CurrentPeriodDTO:
      type: object
      properties:
        unit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - QUARTER
            - YEAR
      required:
        - unit
    SpendingCurrentPeriodDTO:
      type: object
      properties:
        unit:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - QUARTER
            - YEAR
      required:
        - unit
  responses:
    BadRequest:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    X-App-Id:
      type: apiKey
      name: X-App-Id
      in: header
    X-App-Token:
      type: apiKey
      name: X-App-Token
      in: header

````