curl --request GET \
--url https://{cluster}.voucherify.io/v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/expiring-points \
--header 'X-App-Id: <api-key>' \
--header 'X-App-Token: <api-key>'{
"data": [
{
"id": "lcpeb_12f5022f1ce873e0b4",
"card_id": "lcrd_129741698b665ae2f6",
"customer_id": "cust_zCwFz4PwbC2m0rUJOW8c2w1l",
"card_definition_id": "lcdef_1297339938ae248cea",
"program_id": "lprg_12974109bca65ae291",
"card_type": "INDIVIDUAL",
"member_id": "lmbr_129741698a265ae2f3",
"points": {
"total": 6
},
"expiration_date": "2026-08-29",
"expiration_type": "ROLLING_EXPIRATION",
"status": "ACTIVE",
"created_at": "2026-08-28T10:38:10.405Z",
"updated_at": null,
"object": "card_points_bucket"
}
],
"cursor": {
"next": "lcrspeb_12f5022f1ce873e0b5",
"expires_at": "2026-09-04T10:38:10.405Z"
},
"object": "list"
}List card expiring points buckets
Returns a cursor-paginated list of ACTIVE point expiration buckets for the member’s card. Each bucket groups points that share an expiration date and expiration type, including points from separate transactions.
The list starts on the current project day. Earlier buckets are omitted.
Results can be filtered by card definition ID and expiration date, and ordered by expiration_date.
Returns an empty list when the card has no matching buckets. Returns 400 when the query is invalid or the cursor is invalid, expired, or doesn’t match the query. Returns 404 when the program or the member doesn’t exist, or when the card isn’t assigned to that member.
curl --request GET \
--url https://{cluster}.voucherify.io/v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/expiring-points \
--header 'X-App-Id: <api-key>' \
--header 'X-App-Token: <api-key>'{
"data": [
{
"id": "lcpeb_12f5022f1ce873e0b4",
"card_id": "lcrd_129741698b665ae2f6",
"customer_id": "cust_zCwFz4PwbC2m0rUJOW8c2w1l",
"card_definition_id": "lcdef_1297339938ae248cea",
"program_id": "lprg_12974109bca65ae291",
"card_type": "INDIVIDUAL",
"member_id": "lmbr_129741698a265ae2f3",
"points": {
"total": 6
},
"expiration_date": "2026-08-29",
"expiration_type": "ROLLING_EXPIRATION",
"status": "ACTIVE",
"created_at": "2026-08-28T10:38:10.405Z",
"updated_at": null,
"object": "card_points_bucket"
}
],
"cursor": {
"next": "lcrspeb_12f5022f1ce873e0b5",
"expires_at": "2026-09-04T10:38:10.405Z"
},
"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 buckets to return. Must be between 1 and 100. Defaults to 10 when not provided.
1 <= x <= 100Field(s) to order results by. Valid orders are expiration_date and -expiration_date; defaults to expiration_date (soonest expiration first). Ordering by the same field in both directions simultaneously is rejected.
expiration_date, -expiration_date Pagination cursor returned in the cursor.next field of a previous response. Must match the pattern ^lcrspeb_[a-f0-9]+$.
^lcrspeb_[a-f0-9]+$Field-specific filter conditions, passed as a deep object, for example filters[card_definition_id][conditions][$is]=lcdef_1297339938ae248cea.
Request query schema for GET /v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/expiring-points.
Show child attributes
Show child attributes
Response
Cursor-paginated list of points expiration buckets.
Response body schema for GET /v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/expiring-points.
Cursor-paginated list of points expiration buckets.

