{
"transaction": {
"id": "lotx_8d2f5a39b461",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"card_id": "lcrd_28c4e7b195fa",
"card_definition_id": "lcdef_6a2d9f41c783",
"card_transaction_id": "lctx_8d2f5a39b461",
"order_id": "ord_7d2f5a39b461",
"status": "APPROVED",
"type": "PAY_WITH_POINTS",
"details": {
"reason": "Points spent on order payment",
"rejection": null,
"metadata": {
"amount_limit": 5000,
"points_limit": 500
},
"payment": {
"id": "pay_7d2f5a39b461c",
"amount": 2500,
"points_spent": 500,
"exchange_ratio": 0.1
},
"spending_cap": {
"type": "CARD_BALANCE_POINTS",
"unit": "POINTS",
"value": 500
}
},
"created_at": "2026-09-09T10:15:43.091Z",
"updated_at": "2026-09-09T10:15:43.284Z",
"object": "order_transaction"
}
}Pay with points
Event data sent for a Loyalty v2 PAY_WITH_POINTS transaction handled by Workflows
WEBHOOK
PAY_WITH_POINTS
{
"transaction": {
"id": "lotx_8d2f5a39b461",
"program_id": "lprg_3e8a1c74d952",
"member_id": "lmbr_91f6b2e84a37",
"card_id": "lcrd_28c4e7b195fa",
"card_definition_id": "lcdef_6a2d9f41c783",
"card_transaction_id": "lctx_8d2f5a39b461",
"order_id": "ord_7d2f5a39b461",
"status": "APPROVED",
"type": "PAY_WITH_POINTS",
"details": {
"reason": "Points spent on order payment",
"rejection": null,
"metadata": {
"amount_limit": 5000,
"points_limit": 500
},
"payment": {
"id": "pay_7d2f5a39b461c",
"amount": 2500,
"points_spent": 500,
"exchange_ratio": 0.1
},
"spending_cap": {
"type": "CARD_BALANCE_POINTS",
"unit": "POINTS",
"value": 500
}
},
"created_at": "2026-09-09T10:15:43.091Z",
"updated_at": "2026-09-09T10:15:43.284Z",
"object": "order_transaction"
}
}The
This event can trigger a workflow when Loyalty transaction is configured with the Order transactions group and the
PAY_WITH_POINTS event indicates that an order was paid with points from 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.PAY_WITH_POINTS 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.
Paying with points also creates a separate POINTS_SPENT_ON_ORDER card transaction. That payload is not included in this event. Use the Points spent on order event to get details about the card transaction.Body
application/json
Event data object schema for PAY_WITH_POINTS.
A Loyalty v2 order transaction with the PAY_WITH_POINTS type.
Show child attributes
Show child attributes
Response
Webhook accepted
Last modified on September 25, 2026

