curl --request POST \
--url https://api.loyaltylion.com/headless/2025-06/{site_id}/rewards/product_cart/refund \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"claimed_reward_id": 123
}
'{
"claimed_reward": {
"id": 123,
"claimed_at": "<string>",
"reward_id": 123,
"title": "$5 voucher",
"state": "approved",
"source": {
"kind": "<string>",
"points_cost": 123
},
"auto_refund_at": "<string>",
"redeemable": {
"usage_status": "not_used",
"kind": "<string>",
"product": {
"id": "<string>",
"handle": "<string>",
"title": "<string>",
"url": "<string>",
"image_url": "<string>",
"variant": {
"id": "<string>",
"title": "<string>",
"inventory_count": 123
}
},
"quantity": 123,
"used_at": "<string>",
"cart_line_identifier": "<string>",
"active_cart_redemption": {
"id": "<string>",
"claimed_reward_id": 123,
"expires_at": "<string>",
"product": {
"id": "<string>",
"handle": "<string>",
"title": "<string>",
"url": "<string>",
"image_url": "<string>",
"variant": {
"id": "<string>",
"title": "<string>",
"inventory_count": 123
}
},
"quantity": 123,
"cart_id": "<string>",
"cart_line": {
"kind": "<string>",
"merchandise_id": "gid://shopify/ProductVariant/1001",
"product_id": "gid://shopify/Product/100",
"quantity": 1,
"attributes": [
{
"key": "__lion_sfp_id",
"value": "19fdf4cb"
}
]
},
"current_cart_state": {
"in_cart": true,
"cart_requirements_met": true,
"cart_requirements_detail": {
"minimum_cart_total": {
"state": "<string>"
},
"minimum_line_item_quantity": {
"state": "<string>"
}
}
}
}
}
},
"customer": {
"state": "<string>",
"id": 123,
"merchant_id": "<string>",
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"points_approved": 123,
"points_pending": 123,
"points_spent": 123,
"enrolled_at": "<string>",
"tier_membership": {
"tier_id": 123,
"started_at": "2025-01-01T12:00:00Z",
"expires_at": "2026-01-01T12:00:00Z",
"progress": {
"kind": "<string>",
"valid_until": "<string>",
"points_needed_for_renewal": 123,
"upgrade_tier_id": 123,
"points_needed_for_upgrade": 123,
"tier_points": {
"now": 123,
"at_expiration": 123
}
}
},
"birthday": {
"month": 6,
"day": 25
},
"next_birthday": "2025-06-25",
"claimed_rewards": [
{
"id": 123,
"claimed_at": "<string>",
"reward_id": 123,
"title": "$5 voucher",
"state": "approved",
"source": {
"kind": "<string>",
"points_cost": 123
},
"auto_refund_at": "<string>",
"redeemable": {
"usage_status": "not_used",
"kind": "<string>",
"code_last_characters": "<string>",
"initial_balance": {
"amount": 9.9,
"formatted": "$9.90"
},
"current_balance": {
"amount": 9.9,
"formatted": "$9.90"
},
"expires_at": "<string>"
}
}
],
"available_rewards": [
{
"id": 123,
"limit": {
"count": 123,
"interval": "day"
},
"kind": "<string>",
"properties": {
"initial_balance": {
"amount": 9.9,
"formatted": "$9.90"
}
},
"variant": {
"tier_id": 123,
"title": "$5 voucher",
"enabled": true,
"cost": {
"kind": "<string>",
"points": 123
},
"cost_text": "100 points"
},
"context": {
"can_redeem": {
"state": "<string>"
},
"last_claimed_at": "<string>",
"claim_count": 123,
"claim_limit": {
"state": "<string>"
}
}
}
],
"available_rules": [
{
"id": 123,
"limit": {
"count": 123,
"interval": "day"
},
"kind": "<string>",
"variant": {
"tier_id": 123,
"title": "Make a purchase",
"enabled": true,
"result": {
"kind": "<string>",
"per_currency_unit": 1,
"points": 5
},
"result_short_text": "5 points per $1"
},
"context": {
"last_completed_at": "<string>",
"completion_count": 123,
"completion_limit": {
"state": "<string>"
}
}
}
],
"history": [
{
"kind": "<string>",
"label": "Join our program",
"date": "<string>",
"points": 1,
"points_text": "500 points",
"rule": {
"id": 123,
"kind": "birthday"
},
"points_will_approve_at": "<string>",
"points_will_expire_at": "<string>",
"state": "pending"
}
],
"active_cart_redemptions": [
{
"id": "<string>",
"claimed_reward_id": 123,
"expires_at": "<string>",
"product": {
"id": "<string>",
"handle": "<string>",
"title": "<string>",
"url": "<string>",
"image_url": "<string>",
"variant": {
"id": "<string>",
"title": "<string>",
"inventory_count": 123
}
},
"quantity": 123,
"cart_id": "<string>",
"cart_line": {
"kind": "<string>",
"merchandise_id": "gid://shopify/ProductVariant/1001",
"product_id": "gid://shopify/Product/100",
"quantity": 1,
"attributes": [
{
"key": "__lion_sfp_id",
"value": "19fdf4cb"
}
]
},
"current_cart_state": {
"in_cart": true,
"cart_requirements_met": true,
"cart_requirements_detail": {
"minimum_cart_total": {
"state": "<string>"
},
"minimum_line_item_quantity": {
"state": "<string>"
}
}
}
}
],
"email_marketing_consent": {
"state": "subscribed"
},
"sms_marketing_consent": {
"state": "subscribed"
},
"referral_urls": {
"direct": "<string>",
"facebook": "<string>",
"twitter": "<string>",
"email": "<string>",
"whatsapp": "<string>",
"device_share": "<string>"
}
}
}curl --request POST \
--url https://api.loyaltylion.com/headless/2025-06/{site_id}/rewards/product_cart/refund \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"claimed_reward_id": 123
}
'{
"claimed_reward": {
"id": 123,
"claimed_at": "<string>",
"reward_id": 123,
"title": "$5 voucher",
"state": "approved",
"source": {
"kind": "<string>",
"points_cost": 123
},
"auto_refund_at": "<string>",
"redeemable": {
"usage_status": "not_used",
"kind": "<string>",
"product": {
"id": "<string>",
"handle": "<string>",
"title": "<string>",
"url": "<string>",
"image_url": "<string>",
"variant": {
"id": "<string>",
"title": "<string>",
"inventory_count": 123
}
},
"quantity": 123,
"used_at": "<string>",
"cart_line_identifier": "<string>",
"active_cart_redemption": {
"id": "<string>",
"claimed_reward_id": 123,
"expires_at": "<string>",
"product": {
"id": "<string>",
"handle": "<string>",
"title": "<string>",
"url": "<string>",
"image_url": "<string>",
"variant": {
"id": "<string>",
"title": "<string>",
"inventory_count": 123
}
},
"quantity": 123,
"cart_id": "<string>",
"cart_line": {
"kind": "<string>",
"merchandise_id": "gid://shopify/ProductVariant/1001",
"product_id": "gid://shopify/Product/100",
"quantity": 1,
"attributes": [
{
"key": "__lion_sfp_id",
"value": "19fdf4cb"
}
]
},
"current_cart_state": {
"in_cart": true,
"cart_requirements_met": true,
"cart_requirements_detail": {
"minimum_cart_total": {
"state": "<string>"
},
"minimum_line_item_quantity": {
"state": "<string>"
}
}
}
}
}
},
"customer": {
"state": "<string>",
"id": 123,
"merchant_id": "<string>",
"email": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"points_approved": 123,
"points_pending": 123,
"points_spent": 123,
"enrolled_at": "<string>",
"tier_membership": {
"tier_id": 123,
"started_at": "2025-01-01T12:00:00Z",
"expires_at": "2026-01-01T12:00:00Z",
"progress": {
"kind": "<string>",
"valid_until": "<string>",
"points_needed_for_renewal": 123,
"upgrade_tier_id": 123,
"points_needed_for_upgrade": 123,
"tier_points": {
"now": 123,
"at_expiration": 123
}
}
},
"birthday": {
"month": 6,
"day": 25
},
"next_birthday": "2025-06-25",
"claimed_rewards": [
{
"id": 123,
"claimed_at": "<string>",
"reward_id": 123,
"title": "$5 voucher",
"state": "approved",
"source": {
"kind": "<string>",
"points_cost": 123
},
"auto_refund_at": "<string>",
"redeemable": {
"usage_status": "not_used",
"kind": "<string>",
"code_last_characters": "<string>",
"initial_balance": {
"amount": 9.9,
"formatted": "$9.90"
},
"current_balance": {
"amount": 9.9,
"formatted": "$9.90"
},
"expires_at": "<string>"
}
}
],
"available_rewards": [
{
"id": 123,
"limit": {
"count": 123,
"interval": "day"
},
"kind": "<string>",
"properties": {
"initial_balance": {
"amount": 9.9,
"formatted": "$9.90"
}
},
"variant": {
"tier_id": 123,
"title": "$5 voucher",
"enabled": true,
"cost": {
"kind": "<string>",
"points": 123
},
"cost_text": "100 points"
},
"context": {
"can_redeem": {
"state": "<string>"
},
"last_claimed_at": "<string>",
"claim_count": 123,
"claim_limit": {
"state": "<string>"
}
}
}
],
"available_rules": [
{
"id": 123,
"limit": {
"count": 123,
"interval": "day"
},
"kind": "<string>",
"variant": {
"tier_id": 123,
"title": "Make a purchase",
"enabled": true,
"result": {
"kind": "<string>",
"per_currency_unit": 1,
"points": 5
},
"result_short_text": "5 points per $1"
},
"context": {
"last_completed_at": "<string>",
"completion_count": 123,
"completion_limit": {
"state": "<string>"
}
}
}
],
"history": [
{
"kind": "<string>",
"label": "Join our program",
"date": "<string>",
"points": 1,
"points_text": "500 points",
"rule": {
"id": 123,
"kind": "birthday"
},
"points_will_approve_at": "<string>",
"points_will_expire_at": "<string>",
"state": "pending"
}
],
"active_cart_redemptions": [
{
"id": "<string>",
"claimed_reward_id": 123,
"expires_at": "<string>",
"product": {
"id": "<string>",
"handle": "<string>",
"title": "<string>",
"url": "<string>",
"image_url": "<string>",
"variant": {
"id": "<string>",
"title": "<string>",
"inventory_count": 123
}
},
"quantity": 123,
"cart_id": "<string>",
"cart_line": {
"kind": "<string>",
"merchandise_id": "gid://shopify/ProductVariant/1001",
"product_id": "gid://shopify/Product/100",
"quantity": 1,
"attributes": [
{
"key": "__lion_sfp_id",
"value": "19fdf4cb"
}
]
},
"current_cart_state": {
"in_cart": true,
"cart_requirements_met": true,
"cart_requirements_detail": {
"minimum_cart_total": {
"state": "<string>"
},
"minimum_line_item_quantity": {
"state": "<string>"
}
}
}
}
],
"email_marketing_consent": {
"state": "subscribed"
},
"sms_marketing_consent": {
"state": "subscribed"
},
"referral_urls": {
"direct": "<string>",
"facebook": "<string>",
"twitter": "<string>",
"email": "<string>",
"whatsapp": "<string>",
"device_share": "<string>"
}
}
}An API key linked to a Program in LoyaltyLion, with a set of permissions (scopes). API keys can be created manually, or acquired through an OAuth2 flow. The API key should be provided as a Bearer token in the Authorization header
Your LoyaltyLion Site ID
The sales channel from which this request is made. Must be provided as this query parameter, or the X-LoyaltyLion-Channel header
The sales channel from which this request is made
web, pos, mobile Body
The LoyaltyLion ID of the claimed reward to cancel and refund
201
The updated claimed reward that was refunded
Show child attributes
The ID of the claimed reward resource in LoyaltyLion
ISO 8601 timestamp indicating when this reward was claimed
The ID of the reward that was claimed. If a reward with this ID does not exist in the current Site Configuration, it means the reward has been deleted. The associated redeemable, if any, will usually still be active even after the reward has been deleted
Short, localized title for this claimed reward. For example, '$5 voucher', or 'Free Water Bottle'. This is usually the same title as the associated reward
"$5 voucher"
The state of this claimed reward. Only active rewards will have a usable redeemable
approved, declined, expired, pending, void Details about how the customer received this reward. One of points_redemption (the customer used their points to redeem the reward), rule_completion (the reward was awarded as the result of completing a rule), or tier_entry (the reward was awarded when the customer entered a tier)
ISO 8601 timestamp indicating when this reward and its associated redeemable will be automatically voided and refunded if it has not yet been used, or null if not applicable
Show child attributes
The usage status of this redeemable. Redeemables that are used cannot be used again, e.g. a voucher code that has already been used with an order
not_used, partially_used, used "product_cart"The product and variant that should be added to the cart
Show child attributes
Show child attributes
The current inventory count of this product variant, or null if inventory is not tracked. If the count is zero, you should ensure it is not selectable by customers when redeeming the reward
The quantity of the product that should be added to the cart
ISO 8601 timestamp representing when the product was used in an order, or null if not yet used
The unique cart line identifier, which connects this redemption to the line item in the eventual completed order. For Shopify, this identifier is used as the value of the __lion_sfp_id attribute on the cart line when the product is added to the cart
The active cart redemption associated with this product reward, if any. A product reward will have an active cart redemption if it has been redeemed and has not yet been checked out with an order, or expired
Show child attributes
The unique ID of this cart redemption. This ID needs to be attached to the cart line when the product is added to the cart. For Shopify, this is used as the value of the __lion_sfp_id attribute on the cart line
The ID of the claimed reward that this cart redemption is associated with
ISO 8601 timestamp representing when this cart redemption will expire if it has not been checked out, at which point any associated points will be returned to the customer
The product and variant that this cart redemption is for
Show child attributes
Show child attributes
The current inventory count of this product variant, or null if inventory is not tracked. If the count is zero, you should ensure it is not selectable by customers when redeeming the reward
The quantity of the line item in this cart redemption
The ID of the cart for which this cart redemption was initially redeemed
Details of the cart line that should be added to the Shopify cart. When using the Storefront API, these should be passed into the cartLinesAdd mutation
Show child attributes
"shopify"The merchandise (variant) ID to add to the cart
"gid://shopify/ProductVariant/1001"
The product ID to add to the cart
"gid://shopify/Product/100"
The quantity of the cart line to add
1
An array of key-value attributes that should be included with the cart line
[
{
"key": "__lion_sfp_id",
"value": "19fdf4cb"
}
]If this request included a serialized cart object whose id matches the cart_id of this redemption, this object includes information about this redemption's state in the current cart. It will be null if the request did not include a serialized cart or its id does not match
Show child attributes
Indicates if the redemption is currently in the cart
Indicates if all this redemption's requirements are currently met by the cart, such as a required minimum cart total or number of line items
Show child attributes
Show child attributes
"no_requirement"Show child attributes
"no_requirement"The customer object, updated as of the reward refund, i.e. any refunded points will be returned to their points balance. This customer will always have state set to enrolled, as only enrolled customers can redeem rewards
Show child attributes
"enrolled"The ID of the customer in LoyaltyLion
The ID of the customer in your platform or ecommerce store
The email address of the customer. May be null, e.g. for POS customers who have never provided an email address
The first name of the customer, if available
The last name of the customer, if available
The number of approved points the customer can redeem for rewards
The number of pending points the customer has. Pending points will be approved or declined at a later date
The number of points the customer has spent to date
ISO 8601 timestamp representing when the customer enrolled in the program
Details about this customer's current tier membership, or null if tiers are not enabled
Show child attributes
The ID of the tier this customer is currently in
ISO 8601 timestamp when this tier membership started
"2025-01-01T12:00:00Z"
ISO 8601 timestamp when this tier membership expires. Will be null if the membership never expires
"2026-01-01T12:00:00Z"
Information about the customer's tier progress, which can be used to inform a customer how close they are to reaching the next tier, or what they they need to do to maintain their current tier when it expires. Note that tier progress changes over time, as we use a sliding evaluation window to calculate progress, so it is only guaranteed to be correct as of the time of the response
Show child attributes
"points"ISO 8601 timestamp representing the date at which the calculated progress is no longer accurate. Tier evaluation uses a sliding evaluation window, so as time passes, contributing points or spend will no longer be counted if they are outside of the evaluation window. This will be null for lifetime tiers
The number of additional points required to renew the current tier when the current membership expires. This will be null if the membership does not expire (e.g. a lifetime tier), or if the current membership is already for the bottom (default) tier
The ID of the next tier that this customer could upgrade to from their current tier. Will be null if the customer's current tier is already the highest tier in the program, a conditional tier, or a hidden tier
The number of additional points required to move into the next tier. Will be null if there is no eligible next tier (see upgrade_tier_id)
Show child attributes
The number of points contributing to tier progress as of right now. This is equivalent to the number of eligible points from now, back to the start of the evaluation window.
The predicted number of points contributing to tier progress as of the current tier's expiration date. This is similar to the now value, but instead of the window ending at now, it ends at the current tier expiration date. This can be used to determine if a customer would be able to renew their current tier when it expires This will be null if the membership never expires (e.g. lifetime tiers)
The customer's birthday, if one has been provided. Depending on how the program is configured, the year may or may not be included
{ "month": 6, "day": 25 }If the customer has provided their birthday, this will be an ISO 8601 timestamp representing the date of their next (upcoming) birthday
"2025-06-25"
The most recent 20 claimed rewards that belong to this customer. Claimed rewards can include a redeemable, which can be used to provide the reward to the customer. For example, voucher-based rewards will include a voucher code that could be displayed to the customer so they can apply it during checkout
Show child attributes
The ID of the claimed reward resource in LoyaltyLion
ISO 8601 timestamp indicating when this reward was claimed
The ID of the reward that was claimed. If a reward with this ID does not exist in the current Site Configuration, it means the reward has been deleted. The associated redeemable, if any, will usually still be active even after the reward has been deleted
Short, localized title for this claimed reward. For example, '$5 voucher', or 'Free Water Bottle'. This is usually the same title as the associated reward
"$5 voucher"
The state of this claimed reward. Only active rewards will have a usable redeemable
approved, declined, expired, pending, void Details about how the customer received this reward. One of points_redemption (the customer used their points to redeem the reward), rule_completion (the reward was awarded as the result of completing a rule), or tier_entry (the reward was awarded when the customer entered a tier)
ISO 8601 timestamp indicating when this reward and its associated redeemable will be automatically voided and refunded if it has not yet been used, or null if not applicable
The redeemable linked to this claimed reward, if any. If present, the redeemable can usually be used to provide the reward to the customer. For example, it may include a voucher code that can be shown to the customer, or details of a free product that can be added to the customer's cart directly
Show child attributes
The usage status of this redeemable. Redeemables that are used cannot be used again, e.g. a voucher code that has already been used with an order
not_used, partially_used, used "gift_card"The last few characters of the gift card code. Note that the full gift card code is only shown once when the gift card reward is redeemed
The initial balance of the gift card
Show child attributes
Currency amount as a numeric value. This may be an integer or a float depending on the value and the currency. Currencies that do not use a decimal point will always be an integer
9.9
Formatted amount as string with currency symbol, e.g. $50 or $10.50
"$9.90"
The current balance of the gift card
Show child attributes
Currency amount as a numeric value. This may be an integer or a float depending on the value and the currency. Currencies that do not use a decimal point will always be an integer
9.9
Formatted amount as string with currency symbol, e.g. $50 or $10.50
"$9.90"
ISO 8601 timestamp representing when the gift card will expire, or null if it does not expire
A list of rewards that are enabled for this customer, based on their tier. This is the same as the list of rewards returned from Get Configuration, with a few differences:
variants, each reward will have a variant property, which represents the applicable variant for this customer based on their tier. If there is no applicable enabled variant, the reward will not be included in this list, e.g. if it's disabled for the customer's current tiercontext property, which includes information about the reward specific to this customer, such as the number of times they have claimed it, and if any limit is in effect. The can_redeem property is a quick way to determine if the customer is able to redeem the rewardNote that the inclusion of a reward here does not mean it the customer can redeem it: they must have enough points, and it must not have reached its claim limit. You can determine this yourself, or use the context.can_redeem property
A gift card that can be used for future orders until its balance runs out
Show child attributes
A limit for this reward, which is applied per customer. Rewards with a limit set may only be claimed a set number of times in a given interval. The limit may be null if the reward has no limit and can therefore be claimed any number of times by the same customer
Show child attributes
The number of times this reward can be claimed for a customer in the specified calendar interval, e.g. once a week
The calendar interval for this limit. If null, it means the limit will never reset and the reward can only ever be claimed for a customer a set number of times
day, week, month, year "gift_card"Show child attributes
The initial balance of the gift card
Show child attributes
Currency amount as a numeric value. This may be an integer or a float depending on the value and the currency. Currencies that do not use a decimal point will always be an integer
9.9
Formatted amount as string with currency symbol, e.g. $50 or $10.50
"$9.90"
The reward variant that is applicable to this customer and their tier
Show child attributes
The tier ID to which this reward variant applies. This will always be null if the program does not have tiers enabled
Short, localized title for this reward. For example, '$5 voucher', 'Free Water Bottle', or '$5 off next 3 subscription orders'
"$5 voucher"
Indicates if this reward variant is enabled. For example, some rewards are only available for certain tiers
The cost of this reward in points. Will be one of fixed (costs a fixed number of points) or variable (cost is multiplied by unit, e.g. 100 points per $1 discount)
Short, localized text indicating the cost of this reward. For example, '100 points' or '10 points per $1'
"100 points"
Information about this customer's interaction with this reward, such as the number of times they have claimed it, or any limit that is in effect, and if they are currently able to redeem it
Show child attributes
An object that indicates if this reward can be redeemed by this customer. The state property indicates if it can be redeemed. If state == "redeemable", the reward can be redeemed by the customer
Show child attributes
"redeemable"ISO 8601 timestamp representing when this reward was last claimed by the customer, or null if the reward has never been claimed by the customer
The number of times this reward has been claimed by the customer
An object indicating the state of this reward's claim limit specific to this customer. When rewards are limited, they can only be claimed by a customer a set number of times in a given interval (or forever). The state property indicates what limit, if any, is currently in effect
Show child attributes
The associated reward has no limit, so this customer can claim it any number of times
"no_limit"A list of rules that are enabled for this customer, based on their tier. This is the same as the list of rules returned from Get Configuration, with a few differences:
variants, each rule will have a variant property, which represents the applicable variant for this customer based on their tier. If there is no applicable enabled variant, the rule will not be included in this list, e.g. if it's disabled for the customer's current tiercontext property, which includes information about this customer's interaction with the rule, such as the number of times they have completed it, and if any limit is in effectShow child attributes
A limit for this rule, which is applied per customer. Rules with a limit set may only be completed a set number of times in a given interval. The limit may be null if the rule has no limit and can therefore be completed any number of times by the same customer
Show child attributes
The number of times this rule can be completed for a customer in the specified calendar interval, e.g. once a week
The calendar interval for this limit. If null, it means the limit will never reset and the rule can only ever be completed for a customer a set number of times
day, week, month, year "birthday"The rule variant that is applicable to this customer and their tier
Show child attributes
The tier ID to which this rule variant applies. This will always be null if the program does not have tiers enabled
Short, localized title for this rule. For example, 'Make a purchase' or 'Refer a friend'
"Make a purchase"
Indicates if this rule variant is enabled. For example, some rules are only available for certain tiers
The result of completing this rule. Will be one of points (points are awarded to the customer), or reward (a reward is immediately granted, such as a cart discount voucher)
Show child attributes
"points"Indicates if the points value is per currency unit. For example, if a rule provides 5 points for every $1 spent, this will be 1. If null, the points value is exact
1
The number of points provided when this rule variant is completed. If per_currency_unit is not null, this will be the number of points per currency unit (e.g. 5 points per $1)
5
Short, localized text indicating the result of completing this rule variant. For example: '100 points', '5 points per $1', or '$5 voucher'
"5 points per $1"
Information about this customer's interaction with this rule, such as the number of times they have completed it, or any limit that is in effect
Show child attributes
ISO 8601 timestamp representing when this rule was last completed by the customer, or null if the rule has never been completed by the customer
The number of times this rule has been completed by the customer in total
An object indicating the state of this rule's completion limit specific to this customer. When rules are limited, they can only be completed by a customer a set number of times in a given interval (or forever). The state property indicates what limit, if any, is currently in effect
Show child attributes
The associated rule has no limit, so this customer can complete it any number of times
"no_limit"A list of the most recent actions that have occurred for this customer, such as earning points, redeeming rewards, and joining tiers. This list is sorted by date with the most recent actions at the beginning.
History actions are not the same as transactions. A single action may cover multiple transactions. For example, if points are added and then later voided, it will be represented by a single action whose state will initially be approved, and then later change to void. This keeps the customer's history concise whilst still showing the key information.
Show child attributes
Represents points that the customer earned as the result of completing a rule.
"earned_points_from_rule"Short text describing the history action. This will typically be the name of the associated rule
"Join our program"
ISO 8601 timestamp representing when this history action occurred. Note that actions may change over time, such as points being approved or voided, but this timestamp will always represent when the action originally happened
The number of points earned from the rule. This will always be 0 or higher
x >= 0Short, localized text indicating the number of points earned
"500 points"
Show child attributes
The ID of the rule whose completion earned the points. If this does not match a rule in the current Site Configuration, it means the associated rule has been deleted
birthday, collection_purchase, newsletter_signup, pageview, product_purchase, purchase, join_program, review, custom, facebook_like, twitter_follow, instagram_follow, instagram_mention, instagram_post_hashtag, tiktok_follow, tiktok_post_hashtag, referral, clickthrough If the state of this action is pending, this will be an ISO 8601 timestamp representing the date at which the points will become approved, unless they are declined in the meantime
If 'Earned date' or 'Calendar' point expiration is enabled, this will be an ISO 8601 timestamp representing the date at which these points will expire
The state of the points earned from this rule.
pending - the points cannot be redeemed yet, and will be declined or approved at a later date
declined - pending points were declined and cannot be used
approved - points that can be redeemed
void - approved points that have been voided and cannot be used
expired - points that have expired and cannot be used
pending, declined, approved, void, expired A list of active cart redemptions. When a product_cart reward is redeemed by the customer, a new active cart redemption is created. This will persist until it expires or the completes the order
Show child attributes
The unique ID of this cart redemption. This ID needs to be attached to the cart line when the product is added to the cart. For Shopify, this is used as the value of the __lion_sfp_id attribute on the cart line
The ID of the claimed reward that this cart redemption is associated with
ISO 8601 timestamp representing when this cart redemption will expire if it has not been checked out, at which point any associated points will be returned to the customer
The product and variant that this cart redemption is for
Show child attributes
Show child attributes
The current inventory count of this product variant, or null if inventory is not tracked. If the count is zero, you should ensure it is not selectable by customers when redeeming the reward
The quantity of the line item in this cart redemption
The ID of the cart for which this cart redemption was initially redeemed
Details of the cart line that should be added to the Shopify cart. When using the Storefront API, these should be passed into the cartLinesAdd mutation
Show child attributes
"shopify"The merchandise (variant) ID to add to the cart
"gid://shopify/ProductVariant/1001"
The product ID to add to the cart
"gid://shopify/Product/100"
The quantity of the cart line to add
1
An array of key-value attributes that should be included with the cart line
[
{
"key": "__lion_sfp_id",
"value": "19fdf4cb"
}
]If this request included a serialized cart object whose id matches the cart_id of this redemption, this object includes information about this redemption's state in the current cart. It will be null if the request did not include a serialized cart or its id does not match
Show child attributes
Indicates if the redemption is currently in the cart
Indicates if all this redemption's requirements are currently met by the cart, such as a required minimum cart total or number of line items
Show child attributes
Show child attributes
"no_requirement"Show child attributes
"no_requirement"Show child attributes
The state of the customer's email marketing consent. This is not guaranteed to be up to date, as LoyaltyLion relies on receiving changes for this value from your email marketing provider or ecommerce platform. Therefore, it should not be used as the source of truth for sending emails to this customer.
If we have no information about the customer's email marketing consent, it will be unknown.
subscribed, not_subscribed, unknown Show child attributes
The state of the customer's SMS marketing consent. This is not guaranteed to be up to date, as LoyaltyLion relies on receiving changes for this value from your SMS marketing provider or ecommerce platform. Therefore, it should not be used as the source of truth for sending SMS to this customer.
If we have no information about the customer's SMS marketing consent, it will be unknown.
subscribed, not_subscribed, unknown Referral URLs for different platforms, unique to this customer, or null if referrals are not enabled. Each URL has the same referral functionality, but will result in the referral being tracked for its platform. If unsure, use the direct URL for a generic link
Show child attributes
A generic referral link that is not associated with any particular platform
A referral link intended for sharing on Facebook
A referral link intended for sharing on Twitter
A referral link intended for sharing via email
A referral link intended for sharing via WhatsApp
A referral link intended for sharing via a mobile device share prompt