{
"transaction": {
"id": "lrtx_8d2f5a39b461",
"card_id": "lcrd_28c4e7b195fa",
"card_transaction_id": "lctx_8d2f5a39b461",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"reward_id": "lrew_3e8a1c74d952",
"status": "APPROVED",
"type": "PURCHASE",
"details": {
"reason": "Points spent on reward",
"rejection": null,
"metadata": {},
"points": {
"total": 200
},
"result": {
"reward": {
"id": "lrew_3e8a1c74d952",
"type": "MATERIAL"
},
"quantity": 1,
"material": {
"type": "PRODUCT",
"product": {
"id": "prod_7d2f5a39b461"
}
},
"digital": null
}
},
"created_at": "2026-09-09T10:15:43.091Z",
"updated_at": "2026-09-09T10:15:43.284Z",
"object": "reward_transaction"
}
}Purchase
Event data sent for a Loyalty v2 PURCHASE transaction handled by Workflows
WEBHOOK
PURCHASE
{
"transaction": {
"id": "lrtx_8d2f5a39b461",
"card_id": "lcrd_28c4e7b195fa",
"card_transaction_id": "lctx_8d2f5a39b461",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"reward_id": "lrew_3e8a1c74d952",
"status": "APPROVED",
"type": "PURCHASE",
"details": {
"reason": "Points spent on reward",
"rejection": null,
"metadata": {},
"points": {
"total": 200
},
"result": {
"reward": {
"id": "lrew_3e8a1c74d952",
"type": "MATERIAL"
},
"quantity": 1,
"material": {
"type": "PRODUCT",
"product": {
"id": "prod_7d2f5a39b461"
}
},
"digital": null
}
},
"created_at": "2026-09-09T10:15:43.091Z",
"updated_at": "2026-09-09T10:15:43.284Z",
"object": "reward_transaction"
}
}The
This event can trigger a workflow when Loyalty transaction is configured with the Reward transactions group and the
PURCHASE event indicates that a member purchased a Loyalty v2 reward.
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.PURCHASE 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, PROCESSING, APPROVED, REJECTED, or REFUNDED. The matched status is available in data.trigger.transaction.status; it does not create a separate event type. When a purchase is later refunded, the same PURCHASE event type is dispatched again with the REFUNDED status.
Purchasing a reward also creates a separate POINTS_SPENT_ON_REWARD card transaction. That payload is not included in this event. Use the Points spent on reward event to get details about the card transaction. When the reward credits points to another Loyalty v2 card, Voucherify also creates a separate POINTS_PURCHASED transaction on the destination card. Use the Points purchased event for that payload.Body
application/json
Event data object schema for PURCHASE.
A Loyalty v2 reward transaction with the PURCHASE type.
Show child attributes
Show child attributes
Response
Webhook accepted
Last modified on September 25, 2026

