{
"transaction": {
"id": "lttx_7d2f5a39b461",
"card_id": "lcrd_28c4e7b195fa",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"card_definition_id": "lcdef_6a2d9f41c783",
"tier_structure_id": "lts_3e8a1c74d952",
"tier_id": "lt_91f6b2e84a37",
"status": "APPROVED",
"created_at": "2026-09-09T10:15:43.091Z",
"updated_at": "2026-09-09T10:15:43.284Z",
"object": "tier_transaction",
"type": "EXPIRATION_CHANGED",
"details": {
"points": 850,
"tier_from": null,
"tier_to": "lt_91f6b2e84a37",
"origin": {
"type": "card_operations",
"card_transaction_ids": [
"lctx_8d2f5a39b461"
]
},
"rejection": null,
"start_at": "2026-09-09T10:15:43.091Z",
"expires_at": "2027-03-09T23:59:59.999Z"
}
}
}Expiration changed
Event data sent for a Loyalty v2 EXPIRATION_CHANGED transaction handled by Workflows
WEBHOOK
EXPIRATION_CHANGED
{
"transaction": {
"id": "lttx_7d2f5a39b461",
"card_id": "lcrd_28c4e7b195fa",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"card_definition_id": "lcdef_6a2d9f41c783",
"tier_structure_id": "lts_3e8a1c74d952",
"tier_id": "lt_91f6b2e84a37",
"status": "APPROVED",
"created_at": "2026-09-09T10:15:43.091Z",
"updated_at": "2026-09-09T10:15:43.284Z",
"object": "tier_transaction",
"type": "EXPIRATION_CHANGED",
"details": {
"points": 850,
"tier_from": null,
"tier_to": "lt_91f6b2e84a37",
"origin": {
"type": "card_operations",
"card_transaction_ids": [
"lctx_8d2f5a39b461"
]
},
"rejection": null,
"start_at": "2026-09-09T10:15:43.091Z",
"expires_at": "2027-03-09T23:59:59.999Z"
}
}
}The
This event can trigger a workflow when Loyalty transaction is configured with the Tier transactions group and the
EXPIRATION_CHANGED event indicates that a Loyalty v2 tier assignment expiration date changed.
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.EXPIRATION_CHANGED 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. The example uses the APPROVED status. A workflow can filter the trigger by transaction status: PENDING, APPROVED, or REJECTED. The matched status is available in data.trigger.transaction.status; it does not create a separate event type.
details.tier_from is null. details.tier_to is the current tier ID. details.expires_at is the new expiration timestamp, or null when expiration is cleared.Body
application/json
Event data object schema for EXPIRATION_CHANGED.
A Loyalty v2 tier transaction with the EXPIRATION_CHANGED type.
Show child attributes
Show child attributes
Response
Webhook accepted
Last modified on September 25, 2026

