curl --request GET \
--url https://{cluster}.voucherify.io/v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/activities \
--header 'X-App-Id: <api-key>' \
--header 'X-App-Token: <api-key>'{
"data": [
{
"id": "lacrd_128f962f93cfd14ca9",
"type": "vl.card.code_generation.succeeded",
"data": {
"card": {
"id": "lcrd_128f962dbd8c4ba5e1",
"code": "AnnualTime-7M7ShPGfme",
"object": "card",
"balance": {
"points": 0,
"pending_points": 0
},
"card_type": "INDIVIDUAL",
"member_id": "lmbr_128f962dbc8c4ba5dc",
"created_at": "2026-06-11T15:59:41.302Z",
"program_id": "lprg_128f58429f4c4bf7b2",
"updated_at": "2026-06-11T15:59:43.175Z",
"customer_id": "cust_6onRrs4kCnvSVrTs5YtDPFBG",
"lifetime_bucket": {
"points": {
"added": 0,
"spent": 0,
"total": 0,
"earned": 0,
"locked": 0,
"expired": 0,
"refunded": 0,
"returned": 0,
"unlocked": 0,
"subtracted": 0
},
"pending_points": {
"total": 0,
"canceled": 0,
"activated": 0
}
},
"card_definition_id": "lcdef_128f4a88414c4bed69"
},
"program": {
"id": "lprg_128f58429f4c4bf7b2",
"name": "AnnualProgram",
"object": "program",
"status": "ACTIVE",
"end_date": null,
"metadata": {},
"created_at": "2026-06-11T11:29:09.756Z",
"start_date": null,
"updated_at": "2026-06-11T15:58:23.525Z",
"validity_hours": {
"type": "ANY_TIME"
}
}
},
"created_at": "2026-06-11T15:59:43.175Z",
"group_id": "v-128f962db19cae026c",
"source": {
"channel": "INTERNAL"
},
"card_id": "lcrd_128f962dbd8c4ba5e1"
},
{
"id": "lacrd_128f962dc00c4ba5f7",
"type": "vl.card.assigned",
"data": {
"card": {
"id": "lcrd_128f962dbd8c4ba5e1",
"code": null,
"object": "card",
"balance": {
"points": 0,
"pending_points": 0
},
"card_type": "INDIVIDUAL",
"member_id": "lmbr_128f962dbc8c4ba5dc",
"created_at": "2026-06-11T15:59:41.302Z",
"program_id": "lprg_128f58429f4c4bf7b2",
"updated_at": null,
"customer_id": "cust_6onRrs4kCnvSVrTs5YtDPFBG",
"lifetime_bucket": {
"points": {
"added": 0,
"spent": 0,
"total": 0,
"earned": 0,
"locked": 0,
"expired": 0,
"refunded": 0,
"returned": 0,
"unlocked": 0,
"subtracted": 0
},
"pending_points": {
"total": 0,
"canceled": 0,
"activated": 0
}
},
"card_definition_id": "lcdef_128f4a88414c4bed69"
},
"member": {
"id": "lmbr_128f962dbc8c4ba5dc",
"object": "member",
"status": "ACTIVE",
"metadata": {},
"created_at": "2026-06-11T15:59:41.298Z",
"program_id": "lprg_128f58429f4c4bf7b2",
"updated_at": null,
"customer_id": "cust_6onRrs4kCnvSVrTs5YtDPFBG"
},
"program": {
"id": "lprg_128f58429f4c4bf7b2",
"name": "AnnualProgram",
"object": "program",
"status": "ACTIVE",
"end_date": null,
"metadata": {},
"created_at": "2026-06-11T11:29:09.756Z",
"start_date": null,
"updated_at": "2026-06-11T15:58:23.525Z",
"validity_hours": {
"type": "ANY_TIME"
}
},
"member_card": {
"card": {
"id": "lcrd_128f962dbd8c4ba5e1",
"code": null,
"object": "card",
"balance": {
"points": 0,
"pending_points": 0
},
"card_type": "INDIVIDUAL",
"lifetime_bucket": {
"points": {
"added": 0,
"spent": 0,
"total": 0,
"earned": 0,
"locked": 0,
"expired": 0,
"refunded": 0,
"returned": 0,
"unlocked": 0,
"subtracted": 0
},
"pending_points": {
"total": 0,
"canceled": 0,
"activated": 0
}
},
"next_activation": null,
"next_expiration": null,
"card_definition_id": "lcdef_128f4a88414c4bed69"
},
"object": "member_card",
"created_at": "2026-06-11T15:59:41.303Z",
"member_role": "OWNER"
}
},
"created_at": "2026-06-11T15:59:41.303Z",
"group_id": "v-128f962db19cae026c",
"source": {
"channel": "USER_PORTAL",
"user": {
"id": "user_ypzfEcSAphSONMGJRlj6trzXKsh7FGX7"
}
},
"card_id": "lcrd_128f962dbd8c4ba5e1"
},
{
"id": "lacrd_128f962dbf8c4ba5eb",
"type": "vl.card.created",
"data": {
"card": {
"id": "lcrd_128f962dbd8c4ba5e1",
"code": null,
"object": "card",
"balance": {
"points": 0,
"pending_points": 0
},
"card_type": "INDIVIDUAL",
"member_id": "lmbr_128f962dbc8c4ba5dc",
"created_at": "2026-06-11T15:59:41.302Z",
"program_id": "lprg_128f58429f4c4bf7b2",
"updated_at": null,
"customer_id": "cust_6onRrs4kCnvSVrTs5YtDPFBG",
"lifetime_bucket": {
"points": {
"added": 0,
"spent": 0,
"total": 0,
"earned": 0,
"locked": 0,
"expired": 0,
"refunded": 0,
"returned": 0,
"unlocked": 0,
"subtracted": 0
},
"pending_points": {
"total": 0,
"canceled": 0,
"activated": 0
}
},
"card_definition_id": "lcdef_128f4a88414c4bed69"
},
"program": {
"id": "lprg_128f58429f4c4bf7b2",
"name": "AnnualProgram",
"object": "program",
"status": "ACTIVE",
"end_date": null,
"metadata": {},
"created_at": "2026-06-11T11:29:09.756Z",
"start_date": null,
"updated_at": "2026-06-11T15:58:23.525Z",
"validity_hours": {
"type": "ANY_TIME"
}
}
},
"created_at": "2026-06-11T15:59:41.302Z",
"group_id": "v-128f962db19cae026c",
"source": {
"channel": "USER_PORTAL",
"user": {
"id": "user_ypzfEcSAphSONMGJRlj6trzXKsh7FGX7"
}
},
"card_id": "lcrd_128f962dbd8c4ba5e1"
}
],
"cursor": null,
"object": "list"
}List card activities
Returns a cursor-paginated list of activities recorded for the member’s card. The card must still be assigned to that member. Filters are id, type, and created_at. Default order is -created_at, then id ascending.
Returns 404 when the program doesn’t exist, when the member doesn’t exist in that program, or when the card isn’t currently assigned to that member. The program is checked first, then the member. A DELETED member returns 404 with resource_type member. A missing assignment and a missing or deleted card both return 404 with resource_type card.
Returns 400 with key invalid_query_params when the query fails validation. That check runs before the program, member, and card lookup. A cursor that doesn’t match ^lcrsacrd_[a-f0-9]+$, a limit outside 1 to 100, an order other than created_at or -created_at, or an array that orders by both directions fails here.
After the program, member, and card are found, an unknown or expired cursor returns invalid_or_expired_cursor. A cursor recorded for different filters or order returns cursor_and_query_mismatch. The cursor stays valid when only limit changes.
curl --request GET \
--url https://{cluster}.voucherify.io/v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/activities \
--header 'X-App-Id: <api-key>' \
--header 'X-App-Token: <api-key>'{
"data": [
{
"id": "lacrd_128f962f93cfd14ca9",
"type": "vl.card.code_generation.succeeded",
"data": {
"card": {
"id": "lcrd_128f962dbd8c4ba5e1",
"code": "AnnualTime-7M7ShPGfme",
"object": "card",
"balance": {
"points": 0,
"pending_points": 0
},
"card_type": "INDIVIDUAL",
"member_id": "lmbr_128f962dbc8c4ba5dc",
"created_at": "2026-06-11T15:59:41.302Z",
"program_id": "lprg_128f58429f4c4bf7b2",
"updated_at": "2026-06-11T15:59:43.175Z",
"customer_id": "cust_6onRrs4kCnvSVrTs5YtDPFBG",
"lifetime_bucket": {
"points": {
"added": 0,
"spent": 0,
"total": 0,
"earned": 0,
"locked": 0,
"expired": 0,
"refunded": 0,
"returned": 0,
"unlocked": 0,
"subtracted": 0
},
"pending_points": {
"total": 0,
"canceled": 0,
"activated": 0
}
},
"card_definition_id": "lcdef_128f4a88414c4bed69"
},
"program": {
"id": "lprg_128f58429f4c4bf7b2",
"name": "AnnualProgram",
"object": "program",
"status": "ACTIVE",
"end_date": null,
"metadata": {},
"created_at": "2026-06-11T11:29:09.756Z",
"start_date": null,
"updated_at": "2026-06-11T15:58:23.525Z",
"validity_hours": {
"type": "ANY_TIME"
}
}
},
"created_at": "2026-06-11T15:59:43.175Z",
"group_id": "v-128f962db19cae026c",
"source": {
"channel": "INTERNAL"
},
"card_id": "lcrd_128f962dbd8c4ba5e1"
},
{
"id": "lacrd_128f962dc00c4ba5f7",
"type": "vl.card.assigned",
"data": {
"card": {
"id": "lcrd_128f962dbd8c4ba5e1",
"code": null,
"object": "card",
"balance": {
"points": 0,
"pending_points": 0
},
"card_type": "INDIVIDUAL",
"member_id": "lmbr_128f962dbc8c4ba5dc",
"created_at": "2026-06-11T15:59:41.302Z",
"program_id": "lprg_128f58429f4c4bf7b2",
"updated_at": null,
"customer_id": "cust_6onRrs4kCnvSVrTs5YtDPFBG",
"lifetime_bucket": {
"points": {
"added": 0,
"spent": 0,
"total": 0,
"earned": 0,
"locked": 0,
"expired": 0,
"refunded": 0,
"returned": 0,
"unlocked": 0,
"subtracted": 0
},
"pending_points": {
"total": 0,
"canceled": 0,
"activated": 0
}
},
"card_definition_id": "lcdef_128f4a88414c4bed69"
},
"member": {
"id": "lmbr_128f962dbc8c4ba5dc",
"object": "member",
"status": "ACTIVE",
"metadata": {},
"created_at": "2026-06-11T15:59:41.298Z",
"program_id": "lprg_128f58429f4c4bf7b2",
"updated_at": null,
"customer_id": "cust_6onRrs4kCnvSVrTs5YtDPFBG"
},
"program": {
"id": "lprg_128f58429f4c4bf7b2",
"name": "AnnualProgram",
"object": "program",
"status": "ACTIVE",
"end_date": null,
"metadata": {},
"created_at": "2026-06-11T11:29:09.756Z",
"start_date": null,
"updated_at": "2026-06-11T15:58:23.525Z",
"validity_hours": {
"type": "ANY_TIME"
}
},
"member_card": {
"card": {
"id": "lcrd_128f962dbd8c4ba5e1",
"code": null,
"object": "card",
"balance": {
"points": 0,
"pending_points": 0
},
"card_type": "INDIVIDUAL",
"lifetime_bucket": {
"points": {
"added": 0,
"spent": 0,
"total": 0,
"earned": 0,
"locked": 0,
"expired": 0,
"refunded": 0,
"returned": 0,
"unlocked": 0,
"subtracted": 0
},
"pending_points": {
"total": 0,
"canceled": 0,
"activated": 0
}
},
"next_activation": null,
"next_expiration": null,
"card_definition_id": "lcdef_128f4a88414c4bed69"
},
"object": "member_card",
"created_at": "2026-06-11T15:59:41.303Z",
"member_role": "OWNER"
}
},
"created_at": "2026-06-11T15:59:41.303Z",
"group_id": "v-128f962db19cae026c",
"source": {
"channel": "USER_PORTAL",
"user": {
"id": "user_ypzfEcSAphSONMGJRlj6trzXKsh7FGX7"
}
},
"card_id": "lcrd_128f962dbd8c4ba5e1"
},
{
"id": "lacrd_128f962dbf8c4ba5eb",
"type": "vl.card.created",
"data": {
"card": {
"id": "lcrd_128f962dbd8c4ba5e1",
"code": null,
"object": "card",
"balance": {
"points": 0,
"pending_points": 0
},
"card_type": "INDIVIDUAL",
"member_id": "lmbr_128f962dbc8c4ba5dc",
"created_at": "2026-06-11T15:59:41.302Z",
"program_id": "lprg_128f58429f4c4bf7b2",
"updated_at": null,
"customer_id": "cust_6onRrs4kCnvSVrTs5YtDPFBG",
"lifetime_bucket": {
"points": {
"added": 0,
"spent": 0,
"total": 0,
"earned": 0,
"locked": 0,
"expired": 0,
"refunded": 0,
"returned": 0,
"unlocked": 0,
"subtracted": 0
},
"pending_points": {
"total": 0,
"canceled": 0,
"activated": 0
}
},
"card_definition_id": "lcdef_128f4a88414c4bed69"
},
"program": {
"id": "lprg_128f58429f4c4bf7b2",
"name": "AnnualProgram",
"object": "program",
"status": "ACTIVE",
"end_date": null,
"metadata": {},
"created_at": "2026-06-11T11:29:09.756Z",
"start_date": null,
"updated_at": "2026-06-11T15:58:23.525Z",
"validity_hours": {
"type": "ANY_TIME"
}
}
},
"created_at": "2026-06-11T15:59:41.302Z",
"group_id": "v-128f962db19cae026c",
"source": {
"channel": "USER_PORTAL",
"user": {
"id": "user_ypzfEcSAphSONMGJRlj6trzXKsh7FGX7"
}
},
"card_id": "lcrd_128f962dbd8c4ba5e1"
}
],
"cursor": null,
"object": "list"
}Authorizations
Path Parameters
Unique loyalty program ID (format lprg_[a-f0-9]+).
^lprg_[a-f0-9]+$Program member ID (format lmbr_[a-f0-9]+).
^lmbr_[a-f0-9]+$Loyalty card ID (format lcrd_[a-f0-9]+).
^lcrd_[a-f0-9]+$Query Parameters
Maximum number of activities to return. An integer from 1 to 100. Numeric strings are accepted and rounded to the nearest integer. Defaults to 10 when omitted.
1 <= x <= 100Sort field. Allowed values are created_at and -created_at. Defaults to -created_at when omitted, null, or an empty array. Accepts one value or an array of those values. Any other value is rejected. An array that contains both directions is rejected. Rows that share a created_at millisecond are then ordered by id ascending.
created_at, -created_at Pagination cursor returned in the cursor.next field of a previous response. Must match the pattern ^lcrsacrd_[a-f0-9]+$.
^lcrsacrd_[a-f0-9]+$Field-specific filter conditions, passed as a deep object, e.g. filters[type][conditions][$is]=vl.card.created.
Field-specific filters for GET /v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/activities.
Show child attributes
Show child attributes
Response
Cursor-paginated list of card activities.
Response body schema for GET /v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/activities.

