{
"transaction": {
"id": "lrtx_91f6b2e84a37",
"card_id": "lcrd_28c4e7b195fa",
"card_transaction_id": "lctx_91f6b2e84a37",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"reward_id": "lrew_3e8a1c74d952",
"status": "APPROVED",
"type": "REFUND",
"details": {
"reason": "Manual reward refund",
"rejection": null,
"metadata": {},
"points": {
"total": 200
},
"result": {
"reward": {
"id": "lrew_3e8a1c74d952",
"type": "MATERIAL"
},
"quantity": 1,
"material": {
"type": "PRODUCT",
"product": {
"id": "prod_7d2f5a39b461"
}
},
"digital": null
},
"purchase": {
"card_transaction": {
"id": "lctx_8d2f5a39b461"
},
"reward_transaction": {
"id": "lrtx_8d2f5a39b461"
}
}
},
"created_at": "2026-09-09T11:15:43.091Z",
"updated_at": null,
"object": "reward_transaction"
}
}Refund
Event data sent for a Loyalty v2 REFUND transaction handled by Workflows
WEBHOOK
REFUND
{
"transaction": {
"id": "lrtx_91f6b2e84a37",
"card_id": "lcrd_28c4e7b195fa",
"card_transaction_id": "lctx_91f6b2e84a37",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"reward_id": "lrew_3e8a1c74d952",
"status": "APPROVED",
"type": "REFUND",
"details": {
"reason": "Manual reward refund",
"rejection": null,
"metadata": {},
"points": {
"total": 200
},
"result": {
"reward": {
"id": "lrew_3e8a1c74d952",
"type": "MATERIAL"
},
"quantity": 1,
"material": {
"type": "PRODUCT",
"product": {
"id": "prod_7d2f5a39b461"
}
},
"digital": null
},
"purchase": {
"card_transaction": {
"id": "lctx_8d2f5a39b461"
},
"reward_transaction": {
"id": "lrtx_8d2f5a39b461"
}
}
},
"created_at": "2026-09-09T11:15:43.091Z",
"updated_at": null,
"object": "reward_transaction"
}
}The
This event can trigger a workflow when Loyalty transaction is configured with the Reward transactions group and the
REFUND event indicates that a Loyalty v2 reward purchase was refunded.
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.REFUND 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. This transaction is always APPROVED, so a status filter on the trigger matches only that value. The status is available in data.trigger.transaction.status; it does not create a separate event type.
Refunding a reward also creates a separate POINTS_RETURNED card transaction. The original PURCHASE transaction is updated to the REFUNDED status. Those payloads are not included in this event. Use the Points returned event and the Purchase event for those details. When the original reward was loyalty card points, Voucherify also creates a separate POINTS_PURCHASE_REVERSED transaction on the destination card. Use the Points purchase reversed event for that payload.Body
application/json
Event data object schema for REFUND.
A Loyalty v2 reward transaction with the REFUND type.
Show child attributes
Show child attributes
Response
Webhook accepted
Last modified on September 25, 2026

