{
"transaction": {
"id": "lctx_0fd2f5a39b461",
"card_id": "lcrd_28c4e7b195fa",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"card_definition_id": "lcdef_6a2d9f41c783",
"card_type": "INDIVIDUAL",
"type": "POINTS_RETURNED",
"details": {
"reason": "Reward purchase refunded",
"rejection": null,
"metadata": {},
"points": {
"total": 300,
"expiration_date": "2027-09-07",
"expiration_type": "ROLLING_EXPIRATION"
},
"reward": {
"id": "lrew_3e8a1c74d952"
},
"purchase": {
"card_transaction": {
"id": "lctx_7d2f5a39b461"
},
"reward_transaction": {
"id": "lrtx_55bfc63a8142"
}
},
"reward_transaction": {
"id": "lrtx_8a6d13f90c42"
}
},
"status": "APPROVED",
"created_at": "2026-09-07T09:15:43.091Z",
"updated_at": "2026-09-07T09:15:43.284Z",
"object": "card_transaction"
}
}Points returned
Event data sent for a Loyalty v2 POINTS_RETURNED transaction handled by Workflows
WEBHOOK
POINTS_RETURNED
{
"transaction": {
"id": "lctx_0fd2f5a39b461",
"card_id": "lcrd_28c4e7b195fa",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"card_definition_id": "lcdef_6a2d9f41c783",
"card_type": "INDIVIDUAL",
"type": "POINTS_RETURNED",
"details": {
"reason": "Reward purchase refunded",
"rejection": null,
"metadata": {},
"points": {
"total": 300,
"expiration_date": "2027-09-07",
"expiration_type": "ROLLING_EXPIRATION"
},
"reward": {
"id": "lrew_3e8a1c74d952"
},
"purchase": {
"card_transaction": {
"id": "lctx_7d2f5a39b461"
},
"reward_transaction": {
"id": "lrtx_55bfc63a8142"
}
},
"reward_transaction": {
"id": "lrtx_8a6d13f90c42"
}
},
"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_RETURNED event indicates that points spent on a reward were returned to 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_RETURNED 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 or APPROVED. The matched status is available in data.trigger.transaction.status; it does not create a separate event type.
Refunding a reward also creates a separate REFUND reward transaction. That payload is not included in this event. Use the Refund event to get details about the reward transaction. When the original reward was loyalty card points, Voucherify also creates a separate POINTS_PURCHASE_REVERSED transaction on the destination card. A POINTS_RETURNED event can also occur without POINTS_PURCHASE_REVERSED when the original reward was not loyalty card points. Use the Points purchase reversed event to get details about the destination card transaction.Body
application/json
Event data object schema for POINTS_RETURNED.
A Loyalty v2 card transaction with the POINTS_RETURNED type.
Show child attributes
Show child attributes
Response
Webhook accepted
Last modified on September 25, 2026

