{
"transaction": {
"id": "lctx_0ed2f5a39b461",
"card_id": "lcrd_28c4e7b195fa",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"card_definition_id": "lcdef_6a2d9f41c783",
"card_type": "INDIVIDUAL",
"type": "POINTS_EXPIRED",
"details": {
"reason": "Points expiration",
"rejection": null,
"metadata": {},
"points": {
"total": 75
},
"date": "2026-09-07",
"buckets": [
{
"id": "lcpeb_6a2d9f41c783",
"points": {
"total": 75
},
"expiration_date": "2026-09-07",
"expiration_type": "CALENDAR_EXPIRATION"
}
]
},
"status": "APPROVED",
"created_at": "2026-09-07T09:15:43.091Z",
"updated_at": "2026-09-07T09:15:43.284Z",
"object": "card_transaction"
}
}Points expired
Event data sent for a Loyalty v2 POINTS_EXPIRED transaction handled by Workflows
WEBHOOK
POINTS_EXPIRED
{
"transaction": {
"id": "lctx_0ed2f5a39b461",
"card_id": "lcrd_28c4e7b195fa",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"card_definition_id": "lcdef_6a2d9f41c783",
"card_type": "INDIVIDUAL",
"type": "POINTS_EXPIRED",
"details": {
"reason": "Points expiration",
"rejection": null,
"metadata": {},
"points": {
"total": 75
},
"date": "2026-09-07",
"buckets": [
{
"id": "lcpeb_6a2d9f41c783",
"points": {
"total": 75
},
"expiration_date": "2026-09-07",
"expiration_type": "CALENDAR_EXPIRATION"
}
]
},
"status": "APPROVED",
"created_at": "2026-09-07T09:15:43.091Z",
"updated_at": "2026-09-07T09:15:43.284Z",
"object": "card_transaction"
}
}The
This event can trigger a workflow when Loyalty transaction is configured with the Card transactions group and the
POINTS_EXPIRED event indicates that points expired on a Loyalty v2 card.
This page documents only the event data nested under
data. See Introduction to webhooks for the shared webhook structure, and Workflows webhooks for the full Workflows webhook payload.POINTS_EXPIRED transaction type. If the workflow reaches a Webhook callout action, Voucherify sends a webhook to the action’s target URL.
Workflows send this transaction in the data.trigger object. This transaction is always APPROVED, so a status filter on the trigger matches only that value. The status is available in data.trigger.transaction.status; it does not create a separate event type.Body
application/json
Event data object schema for POINTS_EXPIRED.
A Loyalty v2 card transaction with the POINTS_EXPIRED type.
Show child attributes
Show child attributes
Response
Webhook accepted
Last modified on September 25, 2026

