Loyalty
Manage loyalty rewards, promotions, and points for members.
Base URL: /api/v1/partner/loyalty
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /rewards | Get Rewards List |
| POST | /promotions | Add Promotions |
| GET | /promotions | Get Promotion List |
| GET | /promotions/code/{promocode} | Get Promotion List |
| GET | /promotions/{promotionId} | Get Promotion By Id |
| PUT | /promotions/{promotionId} | Update Promotions |
| DELETE | /promotions/{promotionId} | Delete Promotions |
| GET | /rewards/members/{memberId} | Get Rewards for member |
| GET | /points | Get Loyalty Points for member |
| POST | /points | Update Loyalty Points for Members |
| GET | /activity | Get Loyalty Activities |
Get Rewards List
GET /api/v1/partner/loyalty/rewards
Retrieve a paginated list of loyalty rewards configured for the store. Results are sorted by points (ascending) and capped at 200 per page.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
start | integer | No | Number of records to skip |
limit | integer | No | Maximum records to return |
Response
Returns a paginated SearchResult of LoyaltyReward objects.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier |
companyId | string | No | Company identifier |
shopId | string | No | Shop identifier |
created | long | No | Created timestamp (epoch ms) |
modified | long | No | Last modified timestamp (epoch ms) |
deleted | boolean | No | Whether the record is deleted |
updated | boolean | No | Whether the record has been updated |
rewardNo | string | No | Reward No |
slug | string | No | Slug |
points | integer | No | Points (default: 0) |
name | string | Yes | Name |
detail | string | No | Detail |
active | boolean | No | Whether active (default: true) |
loyaltyType | string | No | Loyalty Type. One of: Regular, Promotion (default: Regular) |
published | boolean | No | Published (default: false) |
publishedDate | long | No | Published timestamp (epoch ms) |
unpublishedDate | long | No | Unpublished timestamp (epoch ms) |
promotionId | string | No | Promotion identifier |
productIds | string[] | No | Product Ids |
categoryIds | string[] | No | Category Ids |
vendorIds | string[] | No | Vendor Ids |
productTags | string[] | No | Product Tags |
discountAmt | number | No | Discount Amt |
startDate | long | No | Start timestamp (epoch ms) |
endDate | long | No | End timestamp (epoch ms) |
rewardTarget | string | No | Reward Target. One of: WholeCart, DiscountedSubtotal, DeliveryFee, AllSelectedProducts, OneFromProducts, OneFromCategories, OneFromVendors, OneFromProductTags (default: WholeCart) |
assigned | boolean | No | Assigned (default: true) |
finalizedDiscountId | string | No | Finalized Discount identifier |
requestId | string | No | Request identifier |
{
"id": "abc123",
"companyId": "abc123",
"shopId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"rewardNo": "string",
"slug": "string",
"points": 0,
"name": "string",
"detail": "string",
"active": true,
"loyaltyType": "Regular",
"published": false,
"publishedDate": 1704067200000,
"unpublishedDate": 1704067200000,
"promotionId": "abc123",
"productIds": [],
"categoryIds": [],
"vendorIds": [],
"productTags": [],
"discountAmt": 0,
"startDate": 1704067200000,
"endDate": 1704067200000,
"rewardTarget": "WholeCart",
"assigned": true,
"finalizedDiscountId": "abc123",
"requestId": "abc123"
}
Add Promotions
POST /api/v1/partner/loyalty/promotions
Create a new promotion. The name field is required and must be unique within the shop. Promo codes must also be unique across all promotions. If salesChannels is empty or includes Ecommerce, the promotion is automatically marked as consumer-facing.
Request Body
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name |
promoDesc | string | No | Promo Desc |
discountAmt | number | No | Discount Amt |
promocode | string | No | Promocode |
promoCodeRequired | boolean | No | Promo Code Required (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
startDate | long | No | Start timestamp (epoch ms) |
endDate | long | No | End timestamp (epoch ms) |
active | boolean | No | Whether active (default: true) |
maxAvailable | integer | No | Max Available (default: 0) |
usageCount | integer | No | Usage Count (default: 0) |
enableMaxAvailable | boolean | No | Enable Max Available (default: false) |
limitPerCustomer | integer | No | Limit Per Customer (default: 0) |
enableLimitPerCustomer | boolean | No | Enable Limit Per Customer (default: false) |
restrictMemberGroups | boolean | No | Restrict Member Groups (default: false) |
memberGroupIds | string[] | No | Member Group Ids |
rules | PromotionRule[] | No | Rules |
maxCashValue | number | No | Max Cash Value |
enableBOGO | boolean | No | Enable B O G O (default: false) |
version | string | No | Version (default: Promotion.PromotionVersion.V1.name()) |
enableDayDuration | boolean | No | Enable Day Duration (default: false) |
dayStartTime | integer | No | Day Start timestamp (epoch ms) |
dayEndTime | integer | No | Day End timestamp (epoch ms) |
scalable | boolean | No | Scalable (default: false) |
targetPriceRange | boolean | No | Target Price Range (default: false) |
lowerPriceBound | number | No | Lower Price Bound |
upperPriceBound | number | No | Upper Price Bound |
criteriaGroups | PromotionRuleGroup[] | No | Criteria Groups |
target | PromotionTargetRule | No | Target (default: null) |
exclusions | PromoProductExclusion[] | No | Exclusions |
mon | boolean | No | Mon (default: false) |
tues | boolean | No | Tues (default: false) |
wed | boolean | No | Wed (default: false) |
thur | boolean | No | Thur (default: false) |
fri | boolean | No | Fri (default: false) |
sat | boolean | No | Sat (default: false) |
sun | boolean | No | Sun (default: false) |
promoCodes | string[] | No | Promo Codes |
stackable | boolean | No | Stackable (default: true) |
enablePromoCode | boolean | No | Enable Promo Code (default: true) |
enableMultiApps | boolean | No | Enable Multi Apps (default: false) |
maxApps | integer | No | Max Apps (default: 0) |
enableLimitPerXDays | boolean | No | Enable Limit Per X Days (default: false) |
limitPerXDays | integer | No | Limit Per X Days (default: 0) |
{
"name": "string",
"promoDesc": "string",
"discountAmt": 0,
"promocode": "string",
"promoCodeRequired": false,
"consumerFacing": false,
"startDate": 1704067200000,
"endDate": 1704067200000,
"active": true,
"maxAvailable": 0,
"usageCount": 0,
"enableMaxAvailable": false,
"limitPerCustomer": 0,
"enableLimitPerCustomer": false,
"restrictMemberGroups": false,
"memberGroupIds": [],
"rules": [
{
"id": "abc123",
"companyId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"ruleType": "None",
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": [],
"categoryId": "abc123",
"productId": "abc123",
"vendorId": "abc123",
"minAmt": 0,
"maxAmt": 0,
"all": false
}
],
"maxCashValue": 0,
"enableBOGO": false,
"version": "Promotion.PromotionVersion.V1.name()",
"enableDayDuration": false,
"dayStartTime": 0,
"dayEndTime": 0,
"scalable": false,
"targetPriceRange": false,
"lowerPriceBound": 0,
"upperPriceBound": 0,
"criteriaGroups": [
{}
],
"target": "null",
"exclusions": [
{
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": []
}
],
"mon": false,
"tues": false,
"wed": false,
"thur": false,
"fri": false,
"sat": false,
"sun": false,
"promoCodes": [],
"stackable": true,
"enablePromoCode": true,
"enableMultiApps": false,
"maxApps": 0,
"enableLimitPerXDays": false,
"limitPerXDays": 0
}
Response
Returns a Promotion object.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier |
companyId | string | No | Company identifier |
shopId | string | No | Shop identifier |
created | long | No | Created timestamp (epoch ms) |
modified | long | No | Last modified timestamp (epoch ms) |
deleted | boolean | No | Whether the record is deleted |
updated | boolean | No | Whether the record has been updated |
productBased | boolean | No | Product Based (default: false) |
isBundleBased | boolean | No | Is Bundle Based (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
companyPromoId | string | No | Company Promo identifier |
referralCode | boolean | No | Referral Code (default: false) |
name | string | No | Name |
promoDesc | string | No | Promo Desc |
discountAmt | number | No | Discount Amt |
promocode | string | No | Promocode |
referralPrefix | string | No | Referral Prefix |
promoCodeRequired | boolean | No | Promo Code Required (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
startDate | long | No | Start timestamp (epoch ms) |
endDate | long | No | End timestamp (epoch ms) |
active | boolean | No | Whether active (default: true) |
maxAvailable | integer | No | Max Available (default: 0) |
usageCount | integer | No | Usage Count (default: 0) |
enableMaxAvailable | boolean | No | Enable Max Available (default: false) |
limitPerCustomer | integer | No | Limit Per Customer (default: 0) |
enableLimitPerCustomer | boolean | No | Enable Limit Per Customer (default: false) |
restrictMemberGroups | boolean | No | Restrict Member Groups (default: false) |
memberGroupIds | string[] | No | Member Group Ids |
rules | PromotionRule[] | No | Rules |
promotionType | string | No | Promotion Type. One of: Cart, Product, DeliveryFee, BOGO (default: Cart) |
maxCashValue | number | No | Max Cash Value |
enableBOGO | boolean | No | Enable B O G O (default: false) |
enableDayDuration | boolean | No | Enable Day Duration (default: false) |
dayStartTime | integer | No | Day Start timestamp (epoch ms) |
dayEndTime | integer | No | Day End timestamp (epoch ms) |
scalable | boolean | No | Scalable (default: false) |
targetPriceRange | boolean | No | Target Price Range (default: false) |
lowerPriceBound | number | No | Lower Price Bound |
upperPriceBound | number | No | Upper Price Bound |
version | string | No | Version. One of: V1, V2, V3 (default: V1) |
referralPoints | number | No | Referral Points |
criteriaGroups | PromotionRuleGroup[] | No | Criteria Groups |
target | PromotionTargetRule | No | Target (default: null) |
exclusions | PromoProductExclusion[] | No | Exclusions |
rank | discountrank | No | Rank (default: Lowest) |
mon | boolean | No | Mon (default: false) |
tues | boolean | No | Tues (default: false) |
wed | boolean | No | Wed (default: false) |
thur | boolean | No | Thur (default: false) |
fri | boolean | No | Fri (default: false) |
sat | boolean | No | Sat (default: false) |
sun | boolean | No | Sun (default: false) |
promoCodes | string[] | No | Promo Codes |
promoSource | string | No | Promo Source. One of: Manual, MemberGroup (default: Manual) |
stackable | boolean | No | Stackable (default: true) |
importId | string | No | Import identifier |
lowestPriceFirst | boolean | No | Lowest Price First (default: false) |
assigned | boolean | No | Assigned (default: true) |
finalizedDiscountId | string | No | Finalized Discount identifier |
restrictConsumerTypes | boolean | No | Restrict Consumer Types (default: false) |
consumerTypes | string[] | No | Consumer Types |
salesChannels | saleschannel[] | No | Sales Channels |
autoApply | boolean | No | Auto Apply (default: false) |
enableMultiApplies | boolean | No | Enable Multi Applies (default: false) |
maxApplies | integer | No | Max Applies (default: 0) |
groupProductsBy | string | No | Group Products By. One of: None, Brand, Category, Vendor (default: None) |
enableUsageCooldownInDays | boolean | No | Enable Usage Cooldown In Days (default: false) |
thirdPartyLoyaltyEnabled | boolean | No | Third Party Loyalty Enabled (default: false) |
usageCooldownInDays | integer | No | Usage Cooldown In Days (default: 0) |
{
"id": "abc123",
"companyId": "abc123",
"shopId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"productBased": false,
"isBundleBased": false,
"consumerFacing": false,
"companyPromoId": "abc123",
"referralCode": false,
"name": "string",
"promoDesc": "string",
"discountAmt": 0,
"promocode": "string",
"referralPrefix": "string",
"promoCodeRequired": false,
"startDate": 1704067200000,
"endDate": 1704067200000,
"active": true,
"maxAvailable": 0,
"usageCount": 0,
"enableMaxAvailable": false,
"limitPerCustomer": 0,
"enableLimitPerCustomer": false,
"restrictMemberGroups": false,
"memberGroupIds": [],
"rules": [
{
"id": "abc123",
"companyId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"ruleType": "None",
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": [],
"categoryId": "abc123",
"productId": "abc123",
"vendorId": "abc123",
"minAmt": 0,
"maxAmt": 0,
"all": false
}
],
"promotionType": "Cart",
"maxCashValue": 0,
"enableBOGO": false,
"enableDayDuration": false,
"dayStartTime": 0,
"dayEndTime": 0,
"scalable": false,
"targetPriceRange": false,
"lowerPriceBound": 0,
"upperPriceBound": 0,
"version": "V1",
"referralPoints": 0,
"criteriaGroups": [
{}
],
"target": "null",
"exclusions": [
{
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": []
}
],
"rank": "Lowest",
"mon": false,
"tues": false,
"wed": false,
"thur": false,
"fri": false,
"sat": false,
"sun": false,
"promoCodes": [],
"promoSource": "Manual",
"stackable": true,
"importId": "abc123",
"lowestPriceFirst": false,
"assigned": true,
"finalizedDiscountId": "abc123",
"restrictConsumerTypes": false,
"consumerTypes": [],
"salesChannels": [],
"autoApply": false,
"enableMultiApplies": false,
"maxApplies": 0,
"groupProductsBy": "None",
"enableUsageCooldownInDays": false,
"thirdPartyLoyaltyEnabled": false,
"usageCooldownInDays": 0
}
Get Promotion List
GET /api/v1/partner/loyalty/promotions
Retrieve a paginated list of all promotions, sorted alphabetically by name. Results are capped at 200 per page.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
start | integer | No | Number of records to skip |
limit | integer | No | Maximum records to return |
Response
Returns a paginated SearchResult of Promotion objects.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier |
companyId | string | No | Company identifier |
shopId | string | No | Shop identifier |
created | long | No | Created timestamp (epoch ms) |
modified | long | No | Last modified timestamp (epoch ms) |
deleted | boolean | No | Whether the record is deleted |
updated | boolean | No | Whether the record has been updated |
productBased | boolean | No | Product Based (default: false) |
isBundleBased | boolean | No | Is Bundle Based (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
companyPromoId | string | No | Company Promo identifier |
referralCode | boolean | No | Referral Code (default: false) |
name | string | No | Name |
promoDesc | string | No | Promo Desc |
discountAmt | number | No | Discount Amt |
promocode | string | No | Promocode |
referralPrefix | string | No | Referral Prefix |
promoCodeRequired | boolean | No | Promo Code Required (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
startDate | long | No | Start timestamp (epoch ms) |
endDate | long | No | End timestamp (epoch ms) |
active | boolean | No | Whether active (default: true) |
maxAvailable | integer | No | Max Available (default: 0) |
usageCount | integer | No | Usage Count (default: 0) |
enableMaxAvailable | boolean | No | Enable Max Available (default: false) |
limitPerCustomer | integer | No | Limit Per Customer (default: 0) |
enableLimitPerCustomer | boolean | No | Enable Limit Per Customer (default: false) |
restrictMemberGroups | boolean | No | Restrict Member Groups (default: false) |
memberGroupIds | string[] | No | Member Group Ids |
rules | PromotionRule[] | No | Rules |
promotionType | string | No | Promotion Type. One of: Cart, Product, DeliveryFee, BOGO (default: Cart) |
maxCashValue | number | No | Max Cash Value |
enableBOGO | boolean | No | Enable B O G O (default: false) |
enableDayDuration | boolean | No | Enable Day Duration (default: false) |
dayStartTime | integer | No | Day Start timestamp (epoch ms) |
dayEndTime | integer | No | Day End timestamp (epoch ms) |
scalable | boolean | No | Scalable (default: false) |
targetPriceRange | boolean | No | Target Price Range (default: false) |
lowerPriceBound | number | No | Lower Price Bound |
upperPriceBound | number | No | Upper Price Bound |
version | string | No | Version. One of: V1, V2, V3 (default: V1) |
referralPoints | number | No | Referral Points |
criteriaGroups | PromotionRuleGroup[] | No | Criteria Groups |
target | PromotionTargetRule | No | Target (default: null) |
exclusions | PromoProductExclusion[] | No | Exclusions |
rank | discountrank | No | Rank (default: Lowest) |
mon | boolean | No | Mon (default: false) |
tues | boolean | No | Tues (default: false) |
wed | boolean | No | Wed (default: false) |
thur | boolean | No | Thur (default: false) |
fri | boolean | No | Fri (default: false) |
sat | boolean | No | Sat (default: false) |
sun | boolean | No | Sun (default: false) |
promoCodes | string[] | No | Promo Codes |
promoSource | string | No | Promo Source. One of: Manual, MemberGroup (default: Manual) |
stackable | boolean | No | Stackable (default: true) |
importId | string | No | Import identifier |
lowestPriceFirst | boolean | No | Lowest Price First (default: false) |
assigned | boolean | No | Assigned (default: true) |
finalizedDiscountId | string | No | Finalized Discount identifier |
restrictConsumerTypes | boolean | No | Restrict Consumer Types (default: false) |
consumerTypes | string[] | No | Consumer Types |
salesChannels | saleschannel[] | No | Sales Channels |
autoApply | boolean | No | Auto Apply (default: false) |
enableMultiApplies | boolean | No | Enable Multi Applies (default: false) |
maxApplies | integer | No | Max Applies (default: 0) |
groupProductsBy | string | No | Group Products By. One of: None, Brand, Category, Vendor (default: None) |
enableUsageCooldownInDays | boolean | No | Enable Usage Cooldown In Days (default: false) |
thirdPartyLoyaltyEnabled | boolean | No | Third Party Loyalty Enabled (default: false) |
usageCooldownInDays | integer | No | Usage Cooldown In Days (default: 0) |
{
"id": "abc123",
"companyId": "abc123",
"shopId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"productBased": false,
"isBundleBased": false,
"consumerFacing": false,
"companyPromoId": "abc123",
"referralCode": false,
"name": "string",
"promoDesc": "string",
"discountAmt": 0,
"promocode": "string",
"referralPrefix": "string",
"promoCodeRequired": false,
"startDate": 1704067200000,
"endDate": 1704067200000,
"active": true,
"maxAvailable": 0,
"usageCount": 0,
"enableMaxAvailable": false,
"limitPerCustomer": 0,
"enableLimitPerCustomer": false,
"restrictMemberGroups": false,
"memberGroupIds": [],
"rules": [
{
"id": "abc123",
"companyId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"ruleType": "None",
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": [],
"categoryId": "abc123",
"productId": "abc123",
"vendorId": "abc123",
"minAmt": 0,
"maxAmt": 0,
"all": false
}
],
"promotionType": "Cart",
"maxCashValue": 0,
"enableBOGO": false,
"enableDayDuration": false,
"dayStartTime": 0,
"dayEndTime": 0,
"scalable": false,
"targetPriceRange": false,
"lowerPriceBound": 0,
"upperPriceBound": 0,
"version": "V1",
"referralPoints": 0,
"criteriaGroups": [
{}
],
"target": "null",
"exclusions": [
{
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": []
}
],
"rank": "Lowest",
"mon": false,
"tues": false,
"wed": false,
"thur": false,
"fri": false,
"sat": false,
"sun": false,
"promoCodes": [],
"promoSource": "Manual",
"stackable": true,
"importId": "abc123",
"lowestPriceFirst": false,
"assigned": true,
"finalizedDiscountId": "abc123",
"restrictConsumerTypes": false,
"consumerTypes": [],
"salesChannels": [],
"autoApply": false,
"enableMultiApplies": false,
"maxApplies": 0,
"groupProductsBy": "None",
"enableUsageCooldownInDays": false,
"thirdPartyLoyaltyEnabled": false,
"usageCooldownInDays": 0
}
Get Promotion List
GET /api/v1/partner/loyalty/promotions/code/{promocode}
Look up a promotion by its promo code or referral code. If the code matches the company's referral code prefix, the system looks up the referring member and returns their information along with the active referral promotion. Otherwise, performs a standard promo code lookup.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
promocode | string | The promocode |
Response
Returns a PromotionMemberResult object.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier |
companyId | string | No | Company identifier |
shopId | string | No | Shop identifier |
created | long | No | Created timestamp (epoch ms) |
modified | long | No | Last modified timestamp (epoch ms) |
deleted | boolean | No | Whether the record is deleted |
updated | boolean | No | Whether the record has been updated |
productBased | boolean | No | Product Based (default: false) |
isBundleBased | boolean | No | Is Bundle Based (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
companyPromoId | string | No | Company Promo identifier |
name | string | No | Name |
promoDesc | string | No | Promo Desc |
discountAmt | number | No | Discount Amt |
promocode | string | No | Promocode |
referralPrefix | string | No | Referral Prefix |
promoCodeRequired | boolean | No | Promo Code Required (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
startDate | long | No | Start timestamp (epoch ms) |
endDate | long | No | End timestamp (epoch ms) |
active | boolean | No | Whether active (default: true) |
maxAvailable | integer | No | Max Available (default: 0) |
usageCount | integer | No | Usage Count (default: 0) |
enableMaxAvailable | boolean | No | Enable Max Available (default: false) |
limitPerCustomer | integer | No | Limit Per Customer (default: 0) |
enableLimitPerCustomer | boolean | No | Enable Limit Per Customer (default: false) |
restrictMemberGroups | boolean | No | Restrict Member Groups (default: false) |
memberGroupIds | string[] | No | Member Group Ids |
rules | PromotionRule[] | No | Rules |
promotionType | string | No | Promotion Type. One of: Cart, Product, DeliveryFee, BOGO (default: Cart) |
maxCashValue | number | No | Max Cash Value |
enableBOGO | boolean | No | Enable B O G O (default: false) |
enableDayDuration | boolean | No | Enable Day Duration (default: false) |
dayStartTime | integer | No | Day Start timestamp (epoch ms) |
dayEndTime | integer | No | Day End timestamp (epoch ms) |
scalable | boolean | No | Scalable (default: false) |
targetPriceRange | boolean | No | Target Price Range (default: false) |
lowerPriceBound | number | No | Lower Price Bound |
upperPriceBound | number | No | Upper Price Bound |
version | string | No | Version. One of: V1, V2, V3 (default: V1) |
referralPoints | number | No | Referral Points |
criteriaGroups | PromotionRuleGroup[] | No | Criteria Groups |
target | PromotionTargetRule | No | Target (default: null) |
exclusions | PromoProductExclusion[] | No | Exclusions |
rank | discountrank | No | Rank (default: Lowest) |
mon | boolean | No | Mon (default: false) |
tues | boolean | No | Tues (default: false) |
wed | boolean | No | Wed (default: false) |
thur | boolean | No | Thur (default: false) |
fri | boolean | No | Fri (default: false) |
sat | boolean | No | Sat (default: false) |
sun | boolean | No | Sun (default: false) |
promoCodes | string[] | No | Promo Codes |
promoSource | string | No | Promo Source. One of: Manual, MemberGroup (default: Manual) |
stackable | boolean | No | Stackable (default: true) |
importId | string | No | Import identifier |
lowestPriceFirst | boolean | No | Lowest Price First (default: false) |
assigned | boolean | No | Assigned (default: true) |
finalizedDiscountId | string | No | Finalized Discount identifier |
restrictConsumerTypes | boolean | No | Restrict Consumer Types (default: false) |
consumerTypes | string[] | No | Consumer Types |
salesChannels | saleschannel[] | No | Sales Channels |
autoApply | boolean | No | Auto Apply (default: false) |
enableMultiApplies | boolean | No | Enable Multi Applies (default: false) |
maxApplies | integer | No | Max Applies (default: 0) |
groupProductsBy | string | No | Group Products By. One of: None, Brand, Category, Vendor (default: None) |
enableUsageCooldownInDays | boolean | No | Enable Usage Cooldown In Days (default: false) |
thirdPartyLoyaltyEnabled | boolean | No | Third Party Loyalty Enabled (default: false) |
usageCooldownInDays | integer | No | Usage Cooldown In Days (default: 0) |
referralCode | string | No | Referral Code |
memberId | string | No | Member identifier |
{
"id": "abc123",
"companyId": "abc123",
"shopId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"productBased": false,
"isBundleBased": false,
"consumerFacing": false,
"companyPromoId": "abc123",
"name": "string",
"promoDesc": "string",
"discountAmt": 0,
"promocode": "string",
"referralPrefix": "string",
"promoCodeRequired": false,
"startDate": 1704067200000,
"endDate": 1704067200000,
"active": true,
"maxAvailable": 0,
"usageCount": 0,
"enableMaxAvailable": false,
"limitPerCustomer": 0,
"enableLimitPerCustomer": false,
"restrictMemberGroups": false,
"memberGroupIds": [],
"rules": [
{
"id": "abc123",
"companyId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"ruleType": "None",
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": [],
"categoryId": "abc123",
"productId": "abc123",
"vendorId": "abc123",
"minAmt": 0,
"maxAmt": 0,
"all": false
}
],
"promotionType": "Cart",
"maxCashValue": 0,
"enableBOGO": false,
"enableDayDuration": false,
"dayStartTime": 0,
"dayEndTime": 0,
"scalable": false,
"targetPriceRange": false,
"lowerPriceBound": 0,
"upperPriceBound": 0,
"version": "V1",
"referralPoints": 0,
"criteriaGroups": [
{}
],
"target": "null",
"exclusions": [
{
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": []
}
],
"rank": "Lowest",
"mon": false,
"tues": false,
"wed": false,
"thur": false,
"fri": false,
"sat": false,
"sun": false,
"promoCodes": [],
"promoSource": "Manual",
"stackable": true,
"importId": "abc123",
"lowestPriceFirst": false,
"assigned": true,
"finalizedDiscountId": "abc123",
"restrictConsumerTypes": false,
"consumerTypes": [],
"salesChannels": [],
"autoApply": false,
"enableMultiApplies": false,
"maxApplies": 0,
"groupProductsBy": "None",
"enableUsageCooldownInDays": false,
"thirdPartyLoyaltyEnabled": false,
"usageCooldownInDays": 0,
"referralCode": "string",
"memberId": "abc123"
}
Get Promotion By Id
GET /api/v1/partner/loyalty/promotions/{promotionId}
Retrieve a single promotion by its ID.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
promotionId | string | The promotion i d |
Response
Returns a Promotion object.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier |
companyId | string | No | Company identifier |
shopId | string | No | Shop identifier |
created | long | No | Created timestamp (epoch ms) |
modified | long | No | Last modified timestamp (epoch ms) |
deleted | boolean | No | Whether the record is deleted |
updated | boolean | No | Whether the record has been updated |
productBased | boolean | No | Product Based (default: false) |
isBundleBased | boolean | No | Is Bundle Based (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
companyPromoId | string | No | Company Promo identifier |
referralCode | boolean | No | Referral Code (default: false) |
name | string | No | Name |
promoDesc | string | No | Promo Desc |
discountAmt | number | No | Discount Amt |
promocode | string | No | Promocode |
referralPrefix | string | No | Referral Prefix |
promoCodeRequired | boolean | No | Promo Code Required (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
startDate | long | No | Start timestamp (epoch ms) |
endDate | long | No | End timestamp (epoch ms) |
active | boolean | No | Whether active (default: true) |
maxAvailable | integer | No | Max Available (default: 0) |
usageCount | integer | No | Usage Count (default: 0) |
enableMaxAvailable | boolean | No | Enable Max Available (default: false) |
limitPerCustomer | integer | No | Limit Per Customer (default: 0) |
enableLimitPerCustomer | boolean | No | Enable Limit Per Customer (default: false) |
restrictMemberGroups | boolean | No | Restrict Member Groups (default: false) |
memberGroupIds | string[] | No | Member Group Ids |
rules | PromotionRule[] | No | Rules |
promotionType | string | No | Promotion Type. One of: Cart, Product, DeliveryFee, BOGO (default: Cart) |
maxCashValue | number | No | Max Cash Value |
enableBOGO | boolean | No | Enable B O G O (default: false) |
enableDayDuration | boolean | No | Enable Day Duration (default: false) |
dayStartTime | integer | No | Day Start timestamp (epoch ms) |
dayEndTime | integer | No | Day End timestamp (epoch ms) |
scalable | boolean | No | Scalable (default: false) |
targetPriceRange | boolean | No | Target Price Range (default: false) |
lowerPriceBound | number | No | Lower Price Bound |
upperPriceBound | number | No | Upper Price Bound |
version | string | No | Version. One of: V1, V2, V3 (default: V1) |
referralPoints | number | No | Referral Points |
criteriaGroups | PromotionRuleGroup[] | No | Criteria Groups |
target | PromotionTargetRule | No | Target (default: null) |
exclusions | PromoProductExclusion[] | No | Exclusions |
rank | discountrank | No | Rank (default: Lowest) |
mon | boolean | No | Mon (default: false) |
tues | boolean | No | Tues (default: false) |
wed | boolean | No | Wed (default: false) |
thur | boolean | No | Thur (default: false) |
fri | boolean | No | Fri (default: false) |
sat | boolean | No | Sat (default: false) |
sun | boolean | No | Sun (default: false) |
promoCodes | string[] | No | Promo Codes |
promoSource | string | No | Promo Source. One of: Manual, MemberGroup (default: Manual) |
stackable | boolean | No | Stackable (default: true) |
importId | string | No | Import identifier |
lowestPriceFirst | boolean | No | Lowest Price First (default: false) |
assigned | boolean | No | Assigned (default: true) |
finalizedDiscountId | string | No | Finalized Discount identifier |
restrictConsumerTypes | boolean | No | Restrict Consumer Types (default: false) |
consumerTypes | string[] | No | Consumer Types |
salesChannels | saleschannel[] | No | Sales Channels |
autoApply | boolean | No | Auto Apply (default: false) |
enableMultiApplies | boolean | No | Enable Multi Applies (default: false) |
maxApplies | integer | No | Max Applies (default: 0) |
groupProductsBy | string | No | Group Products By. One of: None, Brand, Category, Vendor (default: None) |
enableUsageCooldownInDays | boolean | No | Enable Usage Cooldown In Days (default: false) |
thirdPartyLoyaltyEnabled | boolean | No | Third Party Loyalty Enabled (default: false) |
usageCooldownInDays | integer | No | Usage Cooldown In Days (default: 0) |
{
"id": "abc123",
"companyId": "abc123",
"shopId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"productBased": false,
"isBundleBased": false,
"consumerFacing": false,
"companyPromoId": "abc123",
"referralCode": false,
"name": "string",
"promoDesc": "string",
"discountAmt": 0,
"promocode": "string",
"referralPrefix": "string",
"promoCodeRequired": false,
"startDate": 1704067200000,
"endDate": 1704067200000,
"active": true,
"maxAvailable": 0,
"usageCount": 0,
"enableMaxAvailable": false,
"limitPerCustomer": 0,
"enableLimitPerCustomer": false,
"restrictMemberGroups": false,
"memberGroupIds": [],
"rules": [
{
"id": "abc123",
"companyId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"ruleType": "None",
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": [],
"categoryId": "abc123",
"productId": "abc123",
"vendorId": "abc123",
"minAmt": 0,
"maxAmt": 0,
"all": false
}
],
"promotionType": "Cart",
"maxCashValue": 0,
"enableBOGO": false,
"enableDayDuration": false,
"dayStartTime": 0,
"dayEndTime": 0,
"scalable": false,
"targetPriceRange": false,
"lowerPriceBound": 0,
"upperPriceBound": 0,
"version": "V1",
"referralPoints": 0,
"criteriaGroups": [
{}
],
"target": "null",
"exclusions": [
{
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": []
}
],
"rank": "Lowest",
"mon": false,
"tues": false,
"wed": false,
"thur": false,
"fri": false,
"sat": false,
"sun": false,
"promoCodes": [],
"promoSource": "Manual",
"stackable": true,
"importId": "abc123",
"lowestPriceFirst": false,
"assigned": true,
"finalizedDiscountId": "abc123",
"restrictConsumerTypes": false,
"consumerTypes": [],
"salesChannels": [],
"autoApply": false,
"enableMultiApplies": false,
"maxApplies": 0,
"groupProductsBy": "None",
"enableUsageCooldownInDays": false,
"thirdPartyLoyaltyEnabled": false,
"usageCooldownInDays": 0
}
Update Promotions
PUT /api/v1/partner/loyalty/promotions/{promotionId}
Update an existing promotion. Send the full Promotion object in the request body. The same uniqueness constraints apply for name and promo codes as when creating.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
promotionId | string | The promotion i d |
Request Body
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier |
companyId | string | No | Company identifier |
shopId | string | No | Shop identifier |
created | long | No | Created timestamp (epoch ms) |
modified | long | No | Last modified timestamp (epoch ms) |
deleted | boolean | No | Whether the record is deleted |
updated | boolean | No | Whether the record has been updated |
productBased | boolean | No | Product Based (default: false) |
isBundleBased | boolean | No | Is Bundle Based (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
companyPromoId | string | No | Company Promo identifier |
referralCode | boolean | No | Referral Code (default: false) |
name | string | No | Name |
promoDesc | string | No | Promo Desc |
discountAmt | number | No | Discount Amt |
promocode | string | No | Promocode |
referralPrefix | string | No | Referral Prefix |
promoCodeRequired | boolean | No | Promo Code Required (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
startDate | long | No | Start timestamp (epoch ms) |
endDate | long | No | End timestamp (epoch ms) |
active | boolean | No | Whether active (default: true) |
maxAvailable | integer | No | Max Available (default: 0) |
usageCount | integer | No | Usage Count (default: 0) |
enableMaxAvailable | boolean | No | Enable Max Available (default: false) |
limitPerCustomer | integer | No | Limit Per Customer (default: 0) |
enableLimitPerCustomer | boolean | No | Enable Limit Per Customer (default: false) |
restrictMemberGroups | boolean | No | Restrict Member Groups (default: false) |
memberGroupIds | string[] | No | Member Group Ids |
rules | PromotionRule[] | No | Rules |
promotionType | string | No | Promotion Type. One of: Cart, Product, DeliveryFee, BOGO (default: Cart) |
maxCashValue | number | No | Max Cash Value |
enableBOGO | boolean | No | Enable B O G O (default: false) |
enableDayDuration | boolean | No | Enable Day Duration (default: false) |
dayStartTime | integer | No | Day Start timestamp (epoch ms) |
dayEndTime | integer | No | Day End timestamp (epoch ms) |
scalable | boolean | No | Scalable (default: false) |
targetPriceRange | boolean | No | Target Price Range (default: false) |
lowerPriceBound | number | No | Lower Price Bound |
upperPriceBound | number | No | Upper Price Bound |
version | string | No | Version. One of: V1, V2, V3 (default: V1) |
referralPoints | number | No | Referral Points |
criteriaGroups | PromotionRuleGroup[] | No | Criteria Groups |
target | PromotionTargetRule | No | Target (default: null) |
exclusions | PromoProductExclusion[] | No | Exclusions |
rank | discountrank | No | Rank (default: Lowest) |
mon | boolean | No | Mon (default: false) |
tues | boolean | No | Tues (default: false) |
wed | boolean | No | Wed (default: false) |
thur | boolean | No | Thur (default: false) |
fri | boolean | No | Fri (default: false) |
sat | boolean | No | Sat (default: false) |
sun | boolean | No | Sun (default: false) |
promoCodes | string[] | No | Promo Codes |
promoSource | string | No | Promo Source. One of: Manual, MemberGroup (default: Manual) |
stackable | boolean | No | Stackable (default: true) |
importId | string | No | Import identifier |
lowestPriceFirst | boolean | No | Lowest Price First (default: false) |
assigned | boolean | No | Assigned (default: true) |
finalizedDiscountId | string | No | Finalized Discount identifier |
restrictConsumerTypes | boolean | No | Restrict Consumer Types (default: false) |
consumerTypes | string[] | No | Consumer Types |
salesChannels | saleschannel[] | No | Sales Channels |
autoApply | boolean | No | Auto Apply (default: false) |
enableMultiApplies | boolean | No | Enable Multi Applies (default: false) |
maxApplies | integer | No | Max Applies (default: 0) |
groupProductsBy | string | No | Group Products By. One of: None, Brand, Category, Vendor (default: None) |
enableUsageCooldownInDays | boolean | No | Enable Usage Cooldown In Days (default: false) |
thirdPartyLoyaltyEnabled | boolean | No | Third Party Loyalty Enabled (default: false) |
usageCooldownInDays | integer | No | Usage Cooldown In Days (default: 0) |
{
"id": "abc123",
"companyId": "abc123",
"shopId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"productBased": false,
"isBundleBased": false,
"consumerFacing": false,
"companyPromoId": "abc123",
"referralCode": false,
"name": "string",
"promoDesc": "string",
"discountAmt": 0,
"promocode": "string",
"referralPrefix": "string",
"promoCodeRequired": false,
"startDate": 1704067200000,
"endDate": 1704067200000,
"active": true,
"maxAvailable": 0,
"usageCount": 0,
"enableMaxAvailable": false,
"limitPerCustomer": 0,
"enableLimitPerCustomer": false,
"restrictMemberGroups": false,
"memberGroupIds": [],
"rules": [
{
"id": "abc123",
"companyId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"ruleType": "None",
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": [],
"categoryId": "abc123",
"productId": "abc123",
"vendorId": "abc123",
"minAmt": 0,
"maxAmt": 0,
"all": false
}
],
"promotionType": "Cart",
"maxCashValue": 0,
"enableBOGO": false,
"enableDayDuration": false,
"dayStartTime": 0,
"dayEndTime": 0,
"scalable": false,
"targetPriceRange": false,
"lowerPriceBound": 0,
"upperPriceBound": 0,
"version": "V1",
"referralPoints": 0,
"criteriaGroups": [
{}
],
"target": "null",
"exclusions": [
{
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": []
}
],
"rank": "Lowest",
"mon": false,
"tues": false,
"wed": false,
"thur": false,
"fri": false,
"sat": false,
"sun": false,
"promoCodes": [],
"promoSource": "Manual",
"stackable": true,
"importId": "abc123",
"lowestPriceFirst": false,
"assigned": true,
"finalizedDiscountId": "abc123",
"restrictConsumerTypes": false,
"consumerTypes": [],
"salesChannels": [],
"autoApply": false,
"enableMultiApplies": false,
"maxApplies": 0,
"groupProductsBy": "None",
"enableUsageCooldownInDays": false,
"thirdPartyLoyaltyEnabled": false,
"usageCooldownInDays": 0
}
Response
Returns a Promotion object.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier |
companyId | string | No | Company identifier |
shopId | string | No | Shop identifier |
created | long | No | Created timestamp (epoch ms) |
modified | long | No | Last modified timestamp (epoch ms) |
deleted | boolean | No | Whether the record is deleted |
updated | boolean | No | Whether the record has been updated |
productBased | boolean | No | Product Based (default: false) |
isBundleBased | boolean | No | Is Bundle Based (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
companyPromoId | string | No | Company Promo identifier |
referralCode | boolean | No | Referral Code (default: false) |
name | string | No | Name |
promoDesc | string | No | Promo Desc |
discountAmt | number | No | Discount Amt |
promocode | string | No | Promocode |
referralPrefix | string | No | Referral Prefix |
promoCodeRequired | boolean | No | Promo Code Required (default: false) |
consumerFacing | boolean | No | Consumer Facing (default: false) |
startDate | long | No | Start timestamp (epoch ms) |
endDate | long | No | End timestamp (epoch ms) |
active | boolean | No | Whether active (default: true) |
maxAvailable | integer | No | Max Available (default: 0) |
usageCount | integer | No | Usage Count (default: 0) |
enableMaxAvailable | boolean | No | Enable Max Available (default: false) |
limitPerCustomer | integer | No | Limit Per Customer (default: 0) |
enableLimitPerCustomer | boolean | No | Enable Limit Per Customer (default: false) |
restrictMemberGroups | boolean | No | Restrict Member Groups (default: false) |
memberGroupIds | string[] | No | Member Group Ids |
rules | PromotionRule[] | No | Rules |
promotionType | string | No | Promotion Type. One of: Cart, Product, DeliveryFee, BOGO (default: Cart) |
maxCashValue | number | No | Max Cash Value |
enableBOGO | boolean | No | Enable B O G O (default: false) |
enableDayDuration | boolean | No | Enable Day Duration (default: false) |
dayStartTime | integer | No | Day Start timestamp (epoch ms) |
dayEndTime | integer | No | Day End timestamp (epoch ms) |
scalable | boolean | No | Scalable (default: false) |
targetPriceRange | boolean | No | Target Price Range (default: false) |
lowerPriceBound | number | No | Lower Price Bound |
upperPriceBound | number | No | Upper Price Bound |
version | string | No | Version. One of: V1, V2, V3 (default: V1) |
referralPoints | number | No | Referral Points |
criteriaGroups | PromotionRuleGroup[] | No | Criteria Groups |
target | PromotionTargetRule | No | Target (default: null) |
exclusions | PromoProductExclusion[] | No | Exclusions |
rank | discountrank | No | Rank (default: Lowest) |
mon | boolean | No | Mon (default: false) |
tues | boolean | No | Tues (default: false) |
wed | boolean | No | Wed (default: false) |
thur | boolean | No | Thur (default: false) |
fri | boolean | No | Fri (default: false) |
sat | boolean | No | Sat (default: false) |
sun | boolean | No | Sun (default: false) |
promoCodes | string[] | No | Promo Codes |
promoSource | string | No | Promo Source. One of: Manual, MemberGroup (default: Manual) |
stackable | boolean | No | Stackable (default: true) |
importId | string | No | Import identifier |
lowestPriceFirst | boolean | No | Lowest Price First (default: false) |
assigned | boolean | No | Assigned (default: true) |
finalizedDiscountId | string | No | Finalized Discount identifier |
restrictConsumerTypes | boolean | No | Restrict Consumer Types (default: false) |
consumerTypes | string[] | No | Consumer Types |
salesChannels | saleschannel[] | No | Sales Channels |
autoApply | boolean | No | Auto Apply (default: false) |
enableMultiApplies | boolean | No | Enable Multi Applies (default: false) |
maxApplies | integer | No | Max Applies (default: 0) |
groupProductsBy | string | No | Group Products By. One of: None, Brand, Category, Vendor (default: None) |
enableUsageCooldownInDays | boolean | No | Enable Usage Cooldown In Days (default: false) |
thirdPartyLoyaltyEnabled | boolean | No | Third Party Loyalty Enabled (default: false) |
usageCooldownInDays | integer | No | Usage Cooldown In Days (default: 0) |
{
"id": "abc123",
"companyId": "abc123",
"shopId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"productBased": false,
"isBundleBased": false,
"consumerFacing": false,
"companyPromoId": "abc123",
"referralCode": false,
"name": "string",
"promoDesc": "string",
"discountAmt": 0,
"promocode": "string",
"referralPrefix": "string",
"promoCodeRequired": false,
"startDate": 1704067200000,
"endDate": 1704067200000,
"active": true,
"maxAvailable": 0,
"usageCount": 0,
"enableMaxAvailable": false,
"limitPerCustomer": 0,
"enableLimitPerCustomer": false,
"restrictMemberGroups": false,
"memberGroupIds": [],
"rules": [
{
"id": "abc123",
"companyId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"ruleType": "None",
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": [],
"categoryId": "abc123",
"productId": "abc123",
"vendorId": "abc123",
"minAmt": 0,
"maxAmt": 0,
"all": false
}
],
"promotionType": "Cart",
"maxCashValue": 0,
"enableBOGO": false,
"enableDayDuration": false,
"dayStartTime": 0,
"dayEndTime": 0,
"scalable": false,
"targetPriceRange": false,
"lowerPriceBound": 0,
"upperPriceBound": 0,
"version": "V1",
"referralPoints": 0,
"criteriaGroups": [
{}
],
"target": "null",
"exclusions": [
{
"categoryIds": [],
"productIds": [],
"vendorIds": [],
"productTags": [],
"brandIds": [],
"smartCollectionIds": []
}
],
"rank": "Lowest",
"mon": false,
"tues": false,
"wed": false,
"thur": false,
"fri": false,
"sat": false,
"sun": false,
"promoCodes": [],
"promoSource": "Manual",
"stackable": true,
"importId": "abc123",
"lowestPriceFirst": false,
"assigned": true,
"finalizedDiscountId": "abc123",
"restrictConsumerTypes": false,
"consumerTypes": [],
"salesChannels": [],
"autoApply": false,
"enableMultiApplies": false,
"maxApplies": 0,
"groupProductsBy": "None",
"enableUsageCooldownInDays": false,
"thirdPartyLoyaltyEnabled": false,
"usageCooldownInDays": 0
}
Delete Promotions
DELETE /api/v1/partner/loyalty/promotions/{promotionId}
Soft-delete a promotion. The promotion is marked as deleted but not physically removed from the database.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
promotionId | string | The promotion i d |
Get Rewards for member
GET /api/v1/partner/loyalty/rewards/members/{memberId}
Retrieve all rewards that a specific member qualifies for based on their current loyalty points. Each reward includes its state (Available if the member has enough points, Locked otherwise) and discount information.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
memberId | string | The member i d |
Response
Returns a paginated SearchResult of LoyaltyMemberReward objects.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
rewardId | string | No | Reward identifier |
rewardName | string | No | Reward Name |
rewardDescription | string | No | Reward Description |
pointsRequired | integer | No | Points Required |
memberId | string | No | Member identifier |
rewardState | string | No | Reward State. One of: Used, Available, Locked (default: Locked) |
usedDate | long | No | Used timestamp (epoch ms) |
availableDate | long | No | Available timestamp (epoch ms) |
discountInfo | string | No | Discount Info |
type | string | No | Type. One of: REWARD, OFFER (default: REWARD) |
expirationDate | string | No | Expiration timestamp (epoch ms) |
redemptionsAvailable | long | No | Redemptions Available |
{
"rewardId": "abc123",
"rewardName": "string",
"rewardDescription": "string",
"pointsRequired": 0,
"memberId": "abc123",
"rewardState": "Locked",
"usedDate": 1704067200000,
"availableDate": 1704067200000,
"discountInfo": "string",
"type": "REWARD",
"expirationDate": "string",
"redemptionsAvailable": 0
}
Get Loyalty Points for member
GET /api/v1/partner/loyalty/points
Retrieve the current loyalty point balance for a member. You can identify the member by either memberId or consumerUserId — provide at least one.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
memberId | string | No | member i d |
consumerUserId | string | No | consumer user i d |
Response
Returns a MemberLoyaltyPoints object.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
memberId | string | No | Member identifier |
loyaltyPoints | number | No | Loyalty Points |
lifetimePoints | number | No | Lifetime Points |
{
"memberId": "abc123",
"loyaltyPoints": 0,
"lifetimePoints": 0
}
Update Loyalty Points for Members
POST /api/v1/partner/loyalty/points
Adjust a member's loyalty points. The action field determines the operation: Add (adds to both current and lifetime points), Subtract (reduces current balance only), or Replace (sets the current balance to an exact value). The points value must be non-negative. Provide either memberId or consumerUserId to identify the member.
Request Body
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
memberId | string | No | Member identifier |
consumerUserId | string | No | Consumer User identifier |
action | string | No | Action |
note | string | No | Note |
points | number | No | Points |
{
"memberId": "abc123",
"consumerUserId": "abc123",
"action": "string",
"note": "string",
"points": 0
}
Response
Returns a MemberLoyaltyPoints object.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
memberId | string | No | Member identifier |
loyaltyPoints | number | No | Loyalty Points |
lifetimePoints | number | No | Lifetime Points |
{
"memberId": "abc123",
"loyaltyPoints": 0,
"lifetimePoints": 0
}
Get Loyalty Activities
GET /api/v1/partner/loyalty/activity
Retrieve a paginated activity log of loyalty point changes for a member. Each entry includes the activity type (Accrue, Usage, Add, Subtract, Replace), amount, date, and associated transaction details. Results are capped at 100 per page. Identify the member by memberId or consumerUserId.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
memberId | string | No | member i d |
consumerUserId | string | No | consumer user i d |
start | integer | No | Number of records to skip |
limit | integer | No | Maximum records to return |
Response
Returns a paginated SearchResult of LoyaltyActivityLog objects.
- Fields
- JSON
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier |
companyId | string | No | Company identifier |
shopId | string | No | Shop identifier |
created | long | No | Created timestamp (epoch ms) |
modified | long | No | Last modified timestamp (epoch ms) |
deleted | boolean | No | Whether the record is deleted |
updated | boolean | No | Whether the record has been updated |
activityType | string | No | Activity Type. One of: Accrue, Usage, Add, Subtract, Replace, Subtract, Replace (default: Accrue) |
memberId | string | No | Member identifier |
employeeId | string | No | Employee identifier |
transactionId | string | No | Transaction identifier |
rewardNo | string | No | Reward No |
rewardId | string | No | Reward identifier |
referralMemberId | string | No | Referral Member identifier |
amount | number | No | Amount |
referralAmount | number | No | Referral Amount |
activityDate | long | No | Activity timestamp (epoch ms) |
transNo | string | No | Trans No |
note | string | No | Note |
source | string | No | Source (default: null) |
springbigType | string | No | Springbig Type. One of: REDEMPTION, VISIT, ADJUSTMENTS, ERROR, ALL, ALL |
name | string | No | Name |
{
"id": "abc123",
"companyId": "abc123",
"shopId": "abc123",
"created": 1704067200000,
"modified": 1704067200000,
"deleted": false,
"updated": false,
"activityType": "Accrue",
"memberId": "abc123",
"employeeId": "abc123",
"transactionId": "abc123",
"rewardNo": "string",
"rewardId": "abc123",
"referralMemberId": "abc123",
"amount": 0,
"referralAmount": 0,
"activityDate": 1704067200000,
"transNo": "TXN-001",
"note": "string",
"source": "null",
"springbigType": "REDEMPTION",
"name": "string"
}