curl --request POST \
--url https://{cluster}.voucherify.io/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
Expires an ACTIVE points bucket. Creates an ADMIN_POINTS_EXPIRATION card transaction. The transaction is created with status PENDING and processed asynchronously. No request body.
The bucket must be ACTIVE, and its expiration_date must be on or after the current project day. The program and the member must be ACTIVE, and the program must be inside its validity window. Otherwise the response is 423.
Returns 404 when the program, the member, or the card definition doesn’t exist, when the card isn’t assigned to that member, or when the bucket isn’t on that card.
curl --request POST \
--url https://{cluster}.voucherify.io/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"
}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]+$Identifies the points expiration bucket. 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.
The created ADMIN_POINTS_EXPIRATION card transaction.
Show child attributes
Show child attributes
Result status. The API endpoint returns TRANSACTION_CREATED.
TRANSACTION_CREATED Human-readable result message - "Points expiration transaction created".
Points expiration transaction created 
