{
"transaction": {
"id": "lttx_3e8a1c74d952",
"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_6a2d9f41c783",
"status": "APPROVED",
"created_at": "2026-09-09T10:15:43.091Z",
"updated_at": "2026-09-09T10:15:43.284Z",
"object": "tier_transaction",
"type": "JOINED",
"details": {
"points": 200,
"tier_from": null,
"tier_to": "lt_6a2d9f41c783",
"origin": {
"type": "member_card_created"
},
"rejection": null,
"start_at": "2026-09-09T10:15:43.091Z",
"expires_at": null
}
}
}Joined
Event data sent for a Loyalty v2 JOINED transaction handled by Workflows
WEBHOOK
JOINED
{
"transaction": {
"id": "lttx_3e8a1c74d952",
"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_6a2d9f41c783",
"status": "APPROVED",
"created_at": "2026-09-09T10:15:43.091Z",
"updated_at": "2026-09-09T10:15:43.284Z",
"object": "tier_transaction",
"type": "JOINED",
"details": {
"points": 200,
"tier_from": null,
"tier_to": "lt_6a2d9f41c783",
"origin": {
"type": "member_card_created"
},
"rejection": null,
"start_at": "2026-09-09T10:15:43.091Z",
"expires_at": null
}
}
}The
This event can trigger a workflow when Loyalty transaction is configured with the Tier transactions group and the
JOINED event indicates that a member who had no Loyalty v2 tier now qualifies for one.
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.JOINED 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 member has no current tier and the tier calculation assigns one:
- The member’s point balance or points earned in the tracking period meet a tier for the first time.
- The member’s created and they already qualify for a tier.
- A point-earned tier structure uses
NEXT_TRACKING_PERIOD. The join waits until the next tracking period. Until then, the recalculation is anEVALUATION_REFRESHEDtransaction. TheJOINEDtransaction is created when that period starts. - The customer enters a segment required by a tier and then qualifies.
UPGRADED or DOWNGRADED transaction.
details.tier_from is null. details.tier_to is the joined tier ID.Body
application/json
Event data object schema for JOINED.
A Loyalty v2 tier transaction with the JOINED type.
Show child attributes
Show child attributes
Response
Webhook accepted
Last modified on September 29, 2026

