Skip to main content
WEBHOOK
The EXPIRATION_CHANGED event indicates that a member’s Loyalty v2 tier expiration date changed while the member stayed in the same tier.
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.
This event can trigger a workflow when Loyalty transaction is configured with the Tier transactions group and the 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. Voucherify creates this transaction when the tier calculation keeps the member in the current tier and the calendar day of the member’s expires_at changes:
  • The member no longer qualifies for the current tier, but the tier structure retains the tier for a period. Instead of a downgrade, Voucherify sets details.expires_at to the end of the retention period.
  • The member qualifies for the current tier again, and the stored expiration date no longer applies. Voucherify clears details.expires_at or replaces it with the recalculated date.
  • A new period starts, the member’s tier has expired, and the member still qualifies for the same tier. Voucherify sets a new details.expires_at or clears it, for example when the recalculated period has no end date.
details.tier_from, details.tier_to, and details.start_at are null. transaction.tier_id is null. The current tier stays on the member’s tier record and is not copied onto this transaction. details.expires_at is the new expiration timestamp, or null when expiration is cleared.

Body

application/json

Event data object schema for EXPIRATION_CHANGED.

transaction
Loyalty Tier ExpirationChanged Transaction · object
required

A Loyalty v2 tier transaction with the EXPIRATION_CHANGED type.

Response

Webhook accepted

Last modified on September 29, 2026