curl --request POST \
--url {protocol}://{host}/v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/expiring-points/{bucketId}/expire \
--header 'X-App-Id: <api-key>' \
--header 'X-App-Token: <api-key>'{
"transaction": {
"id": "lctx_12f7dc8650267658b4",
"card_id": "lcrd_128f962dbd8c4ba5e1",
"program_id": "lprg_128f58429f4c4bf7b2",
"member_id": "lmbr_128f962dbc8c4ba5dc",
"card_definition_id": "lcdef_128f4a88414c4bed69",
"card_type": "INDIVIDUAL",
"type": "ADMIN_POINTS_EXPIRATION",
"details": {
"reason": "Manual points expiration",
"rejection": null,
"metadata": {},
"bucket": {
"id": "lcpeb_139415d0be4d928f6e",
"points": {
"total": 220
},
"expiration_date": "2026-12-31",
"expiration_type": "CALENDAR_EXPIRATION"
}
},
"status": "PENDING",
"created_at": "2026-08-31T15:49:03.936Z",
"updated_at": null,
"object": "card_transaction"
},
"status": "TRANSACTION_CREATED",
"message": "Points expiration transaction created"
}Expire point bucket
Manually expires a points bucket before its scheduled expiration date, creating an ADMIN_POINTS_EXPIRATION card transaction (status PENDING, processed asynchronously). No request body.
The expiration bucket includes all points from various transactions that will expire on the bucket’s expiration date.
The program and member must be in the ACTIVE status or available, the card definition must have points expiration enabled, or an earning rule or loyalty tier has an expiration override, the bucket must be in the ACTIVE status, and the bucket’s expiration date must not be in the past (423 otherwise).
Returns 404 when the program, member, card or bucket does not exist.
A valid request URL is required to generate request examples{
"transaction": {
"id": "lctx_12f7dc8650267658b4",
"card_id": "lcrd_128f962dbd8c4ba5e1",
"program_id": "lprg_128f58429f4c4bf7b2",
"member_id": "lmbr_128f962dbc8c4ba5dc",
"card_definition_id": "lcdef_128f4a88414c4bed69",
"card_type": "INDIVIDUAL",
"type": "ADMIN_POINTS_EXPIRATION",
"details": {
"reason": "Manual points expiration",
"rejection": null,
"metadata": {},
"bucket": {
"id": "lcpeb_139415d0be4d928f6e",
"points": {
"total": 220
},
"expiration_date": "2026-12-31",
"expiration_type": "CALENDAR_EXPIRATION"
}
},
"status": "PENDING",
"created_at": "2026-08-31T15:49:03.936Z",
"updated_at": null,
"object": "card_transaction"
},
"status": "TRANSACTION_CREATED",
"message": "Points expiration transaction created"
}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]+$Points expiration bucket ID (format lcpeb_[a-f0-9]+).
^lcpeb_[a-f0-9]+$Response
Result of the points expiration.
Response body schema for POST /v2/loyalties/programs/{programId}/members/{memberId}/cards/{cardId}/expiring-points/{bucketId}/expire.
Result of expiring an expiration point bucket. This endpoint always returns status TRANSACTION_CREATED on success.
The created ADMIN_POINTS_EXPIRATION card transaction, or null.
Show child attributes
Show child attributes
Result status. The API endpoint returns TRANSACTION_CREATED.
TRANSACTION_CREATED Human-readable result message - "Points expiration transaction created".
Was this page helpful?

