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
Identifies the loyalty program. Format lprg_[a-f0-9]+.
^lprg_[a-f0-9]+$Identifies the member. Format lmbr_[a-f0-9]+.
^lmbr_[a-f0-9]+$Identifies the loyalty card. Format lcrd_[a-f0-9]+.
^lcrd_[a-f0-9]+$Query Parameters
Limits the page size to an integer from 1 to 100. Defaults to 10. A numeric string is accepted and rounded to the nearest integer.
1 <= x <= 100Orders the results. Accepts one value or an array. Prefix a field with - for descending order. Defaults to -created_at. The same field cannot be used in both directions. Rows with the same sort value are then ordered by id ascending.
created_at, -created_at Continues pagination. Pass the cursor.next value from a previous response. Format lcrsacrd_[a-f0-9]+. The cursor matches the filters and order of that response.
^lcrsacrd_[a-f0-9]+$Filters the results. Pass a deep object, for example filters[type][conditions][$is]=vl.card.created. Fields combine through junction, which defaults to AND. Omit filters to apply no field filter.
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.

