Get Cart Promotions available for a Customer

This API is used to retrieve the cart promotions tagged to a particular customer based on the user ID. This returns cart promotions issued to the customer or POS promotions which are tagged to the customer's tier or supplementary programs.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

This API retrieves cart promotions and Point-of-Sale (POS) promotions specifically tagged to a customer based on their user ID. This includes cart promotions directly issued to the customer and POS promotions associated with the customer's loyalty tier or supplementary programs.

📘

Notes

The API returns POS promotions under the following conditions:

  • Tier-Specific Promotions: If a promotion is configured for a specific loyalty tier (e.g., "Gold Tier") and the customer making the API call belongs to that tier, the promotion will be included in the response.
  • Supplementary Program Promotions: When the includeSupplementaryPromotions parameter in the API call is set to true, promotions linked to supplementary programs will be returned.

The API will not return POS promotions in these scenarios:

  • "All Loyalty Customers" Promotions: Promotions broadly applicable to all loyalty members, without being tied to a particular tier, are not returned by this API.
  • No Tier or Supplementary Program Association: If a POS promotion is not explicitly linked to a customer tier or a supplementary program, it will not be part of the API's response.

Result limit and sort order:

  • The API returns a maximum of 10 promotions by default, sorted by expiry date (latest first). Use the limit query parameter to override this default.
  • The API response does not include pagination metadata such as limit or skip. To retrieve promotions beyond the default limit, pass a higher value using the limit parameter.

Example request

curl --location 'https://{Host}/api_gateway/v1/promotions/customer/566881933?includeRedemptions=true&isIncludeActivePromotionsOnly=true' \
--header 'Authorization: Basic Z2VvcmdlLmRvY2RlbW86MmQ1OTNhGE2NWI5ZjAxMzU5NGIwNDllZTk=' \
--header 'Cookie: _cfuvid=uvNcgoyX0Q6nkA64njE4pSA_tJw1wkWo-1762160764633-0.0.1.1-604800000'
curl --location 'https://{Host}/api_gateway/v1/promotions/customer/566881933?includeRedemptions=true&isIncludeActivePromotionsOnly=true&entityId=50079370' \
--header 'Authorization: Basic Z2VvcmdlLmRvY2RlbW86MmQ1OTNhGE2NWI5ZjAxMzU5NGIwNDllZTk=' \
--header 'Cookie: _cfuvid=uvNcgoyX0Q6nkA64njE4pSA_tJw1wkWo-1762160764633-0.0.1.1-604800000'
curl --location 'https://{Host}/api_gateway/v1/promotions/customer/566881933?includeRedemptions=true&isIncludeActivePromotionsOnly=true&includeSupplementaryPromotions=true&limit=20' \
--header 'Authorization: Basic Z2VvcmdlLmRvY2RlbW86MmQ1OTNhGE2NWI5ZjAxMzU5NGIwNDllZTk=' \
--header 'Cookie: _cfuvid=uvNcgoyX0Q6nkA64njE4pSA_tJw1wkWo-1762160764633-0.0.1.1-604800000'

Prerequisites

  • Authentication: Basic or OAuth authentication.

  • Default access group

Resource information

PaginationNo
Batch supportNo

Path parameters

FieldTypeRequiredDescription
customerIdNumberYesUnique identifier for the customer.

Query parameters

FieldTypeRequiredDescription
includeRedemptionsBooleanOptionalIf true, includes the restrictions applied to the cart promotion, such as maxLimit and remainingRedemption.
includeSupplementaryPromotionsBooleanOptionalIf true, includes POS cart promotions tagged to the customer's supplementary programs. Supplementary promotions with later expiry dates are sorted to the top of the result set, which will cause other promotions to be omitted from the response when the result limit is reached.
isIncludeActivePromotionsOnlyBooleanOptionalIf true, returns only cart promotions that are currently active.
entityIdLongOptionalFilters the response to promotions associated with the specified entity. The entity ID is resolved against the org hierarchy, passing a ZONE, TILL, STORE or ID, which includes all promotions mapped to entities within that hierarchy. Promotions not mapped to any till or store are always included, regardless of the value passed. If omitted, no store-based filtering is applied.
limitIntegerOptionalSpecifies the maximum number of promotions to return. Defaults to 10 if not provided.

Example response

{
    "data": [
        {
            "earnedPromotionId": "68df4539dd46cd232fb6fbd3",
            "promotionId": "68df4516f398ae3dc88031df",
            "promotionName": "cart_based test jo",
            "validTill": 1790985600000,
            "validTillISO": "2026-10-03T00:00:00Z",
            "unlockedDate": 1759462713920,
            "unlockedDateISO": "2025-10-03T03:38:33Z",
            "customerId": 566881933,
            "earnedType": "NONE",
            "earnedStatus": "UNLOCKED",
            "promotionStatus": "INACTIVE",
            "applicationMode": "DISCOUNT",
            "redeemableFrom": 1759462713920,
            "redeemableFromISO": "2025-10-03T03:38:33Z",
            "customFieldValues": {
                "Age": "25"
            },
            "eventTime": 1759462713920,
            "eventTimeISO": "2025-10-03T03:38:33Z"
        }
    ],
    "errors": []
}

Response parameters

FieldTypeDescription
dataArrayDefines a list of cart promotion objects available to the customer.
.earnedPromotionIdStringSpecifies the unique identifier for the instance of the earned cart promotion.
.promotionIdStringSpecifies the unique identifier of the base Cart promotion.
.promotionNameStringSpecifies the name of the Cart promotion.
.validTillLongIndicates the expiration timestamp in milliseconds since epoch.
.validTillISOString

Indicates the expiration timestamp of the cart promotion in ISO 8601 format, returned in the server time zone.

EU server example 2026-10-03T00:00:00Z → 03 October 2026, 00:00:00 (UTC)

India server example 2026-10-03T05:30:00+05:30 → 03 October 2026, 05:30:00 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

.unlockedDateLongIndicates the timestamp when the cart promotion became available (unlocked) for use, in UTC.
Time format: milliseconds since epoch.
.unlockedDateISOString

Indicates the timestamp when the cart promotion became available in UTC in ISO 8601 format, returned in the server time zone.

EU server example 2026-02-04T09:12:45Z → 04 February 2026, 09:12:45 (UTC)

India server example 2026-02-04T14:42:45+05:30 → 04 February 2026, 14:42:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

.customerIdLongSpecifies the Unique Identifier of the Customer using the Cart promotion.
.earnedTypeStringSpecifies the method how cart cart promotion was earned.
.earnedStatusStringSpecifies the status of the earned cart promotion.
.promotionStatusStringSpecifies the overall status of the cart promotion.
.milestoneIdLongSpecifies the milestone or achievement target linked to the cart promotion.
.targetGroupIdLongSpecifies the identifier for a specific customer group eligible for the cart promotion.
.applicationModeStringIndicates the way the cart promotion is applied.
.redeemableFromLongIndicates the timestamp from when the cart promotion is redeemable, in UTC.
Time format: milliseconds since epoch.
.redeemableFromISOString

Indicates the timestamp from when the cart promotion is redeemable in UTC in ISO 8601 format, returned in the server time zone.

EU server example 2026-02-04T09:14:10Z → 04 February 2026, 09:14:10 (UTC)

India server example 2026-02-04T14:44:10+05:30 → 04 February 2026, 14:44:10 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

.customFieldValuesObjectDefines an object containing custom key-value pairs related to the cart promotion.
.eventTimeLongIndicates the timestamp of the event that triggered the cart promotion, in UTC.
Time format: milliseconds since epoch.
.eventTimeISOString

Indicates the timestamp of the event in UTC in ISO 8601 format, returned in the server time zone.

EU server example 2026-02-04T09:11:58Z → 04 February 2026, 09:11:58 (UTC)

India server example 2026-02-04T14:41:58+05:30 → 04 February 2026, 14:41:58 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.

.restrictionsObjectDefines an object containing restrictions categorized by level. Indicates this is returned if includeRedemptions=true.
..CartArrayDefines an array of cart-level restrictions.
..CustomerArrayDefines an array of customer-level restrictions.
..PromotionArrayDefines an array of cart promotion-level restrictions.
..ProductArrayDefines an array of product-level restrictions.
..CategoryArrayDefines an array of category-level restrictions.
...kpiStringIndicates the key metric used for restriction.
...maxLimitStringIndicates the maximum allowed limit for the restriction.
...remainingRedemptionStringIndicates the remaining number of times the cart promotion can be used.
...windowTypeEnumIndicates the type of limit window applied to this restriction.
...fixedWindowConfigObjectIndicates the cycle configuration for the restriction when windowType is FIXED.
....cycleTypeEnumIndicates the type of fixed cycle.
....weekStartDayEnumIndicates the start day of the weekly cycle when cycleType is WEEK.
....refreshRateIntegerIndicates the number of days per cycle when cycleType is N_DAY.
....cycleReferenceDateLongEpoch timestamp in milliseconds. The anchor date from which N_DAY cycles are calculated. Interpreted in the org's configured timezone.
...currentCycleObjectIndicates the active cycle window at the time of the API call. Only present when windowType is FIXED.
....startDateLongEpoch timestamp in milliseconds. Inclusive start of the current cycle window.
....endDateLongEpoch timestamp in milliseconds. Inclusive end of the current cycle window.
...periodStartLongEpoch timestamp in milliseconds. Same as currentCycle.startDate; used for display and UI rendering. Returns null for OVERALL restrictions.
...periodEndLongEpoch timestamp in milliseconds. Same as currentCycle.endDate; used for display and UI rendering. Returns null for OVERALL restrictions.
.supplementaryCriteriaObjectDefines additional loyalty-based conditions. Indicates this is returned if includeSupplementary Promotions is set to true.
..loyaltyprogramIdLongSpecifies the identifier of the associated loyalty program.
..programTypeEnumIndicates the type of program.
..partnerprogramIdLongIndicates the partner program ID.
errorsArrayDefines a list of error objects, which is empty on success.

Error codes

HTTP codeDescription
400Invalid request. Check required path or query parameters.
401Authentication failed. Check your API key or credentials.
404Customer not found. The specified customerId does not exist.
Query Params
boolean

includeRedemptions=true includes the restrictions applied to the promotion including max limit and remaining redemptions

boolean

includeSupplementaryPromotions=true includes the POS promotions tagged to the customer's tier or supplementary program

Response

Language
Credentials
Basic
base64
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json