Review a Loyalty Promotion

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

The Review Unified Promotions API allows you to manage the lifecycle of your campaigns through a formal approval workflow. Instead of launching promotions without review, you can use this endpoint to validate all rules and officially transition a promotion from a PENDING_APPROVAL state to ACTIVE, ensuring it is fully reviewed for customer participation.

📘

Note

Only promotions in PENDING_APPROVAL status can be reviewed. To move a promotion from DRAFT to PENDING_APPROVAL before review, use the Submit Promotion for Approval endpoint.

Example request

curl --location 'https://eu.api.capillarytech.com/v3/promotions/[promotionid]/review' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic xNTJkMjM0Yjcw' \
--data '{
    "approvalStatus": "APPROVE"
  }'

Prerequisites

  • Authentication: Basic or OAuth authentication.
  • Default access group

Path Parameters

FieldTypeRequiredDescription
unifiedPromotionIdstringYesSpecifies the unique identifier (id) of the promotion being reviewed. This ID identifies which promotion the approval or rejection applies to. Example: "68f708709c1b226be345eebb"

Body parameters

FieldTypeRequiredDescription
approvalStatusstringYesSpecifies the review action being taken. This determines the outcome of the review process, for example making the promotion active or sending it back to draft. Supported Values: String representing the approval action APPROVE, REJECT.
commentstringOptionalSpecifies an optional comment (max 150 chars) to provide context for the review decision.
Eg. Adding a reason for rejection.
Supported Values: String (max length 150). Example: "Approved, ready for launch." or "Rejected, please update expiry date."

Example response

{
    "data": {
        "metadata": {
            "name": "Promogold",
            "description": "newProm43oTest123",
            "programId": "2607",
            "orgId": 51174,
            "startDate": "2025-10-01T00:00:00+05:30",
            "endDate": "2025-10-31T23:59:00+05:30",
            "timezoneName": "Asia/Kolkata",
            "promotionType": "GENERIC",
            "status": "COMPLETED",
            "promoIdentifier": "fdee323d-7a5e33342c0-b438-9892085a0a7c",
            "promotionId": 1133594588,
            "createdOn": "2025-11-01T15:03:33+05:30",
            "lastModifiedOn": "2025-11-01T15:03:59+05:30",
            "createdBy": 50685521,
            "lastModifiedBy": 50685521,
            "loyaltyEarningType": null,
            "version": null,
            "draftDetails": null,
            "loyaltyConfigMetaData": {
                "isStackable": false,
                "isConsideredForRanking": false,
                "isExclusive": false,
                "isAlwaysApply": false,
                "skipEarnedDateCheckOnRedeem": null
            },
            "promotionMetadata": [],
            "commonStrategies": null,
            "promotionMode": "UNIFIED"
        },
        "customerEnrolment": {
            "enrolmentMethod": "TRANSACTION"
        },
        "activities": [
            {
                "type": "SINGLE",
                "id": "activity_1761824716197",
                "name": "Activity 1",
                "commonCycleActionMapping": [
                    {
                        "cycle": "Cycle_1",
                        "actions": [
                            {
                                "id": "4706439",
                                "actionName": "AWARD_POINTS_ACTION",
                                "actionClass": "com.capillary.shopbook.pointsengine.endpoint.impl.action.AwardPointsActionImpl",
                                "description": "Fixed10",
                                "mandatoryPropertiesValues": {
                                    "AwardStrategy": "121429",
                                    "ExpiryStrategy": "109006",
                                    "PointsRoundingStrategy": "ACTUAL",
                                    "SourceValueRoundingStrategy": "ACTUAL",
                                    "DelayStrategy": "AS_DEFINED_IN_ALLOCATION_STRATEGY",
                                    "EvaluatedEntity": "USER",
                                    "DelayExtendedFieldName": "",
                                    "ProRateOnSourceValue": "EVENT_DEFAULT_VALUE",
                                    "PointType": "Main"
                                },
                                "mandatoryComplexPropertiesValues": {}
                            }
                        ],
                        "startDate": "2025-10-01",
                        "endDate": "2025-10-31",
                        "rulesetId": "1514933"
                    }
                ],
                "event": "TransactionAdd",
                "expJSON": "{\n  \"arity\": \"literal\",\n  \"type\": \"boolean:primitive\",\n  \"value\": \"true\"\n}",
                "cycles": [],
                "milestones": [],
                "allCycles": []
            }
        ],
        "comments": "dsd",
        "parentId": null,
        "parentDetails": null,
        "version": 1,
        "limits": [],
        "liabilityOwnerSplitInfo": [],
        "id": "69034fe43d40cd1e08fb66d8",
        "workflowMetadata": {
            "enrolment": {
                "basedOn": null,
                "activities": null,
                "audienceMapping": null,
                "restrictions": null
            },
            "optin": {
                "basedOn": null,
                "audienceMapping": null,
                "activities": null,
                "restrictions": null
            }
        },
        "communicationApprovalStatus": {
            "success": true,
            "message": "No communications to approve",
            "response": null,
            "statusCode": 200
        }
    },
    "errors": null,
    "warnings": null
}

Response parameters

FieldTypeDescription
dataObjectDefines the main data object containing the updated promotion (UnifiedPromotion). Possible Values: A valid UnifiedPromotion object.
.idStringSpecifies the unique system-generated identifier for the unified promotion.
.metadataObjectDefines the object containing all metadata for the promotion.
..nameStringSpecifies the name of the promotion.
..descriptionStringSpecifies the description of the promotion.
..programIdStringSpecifies the program ID associated with the promotion. Possible Values: String or Integer Program ID.
..orgIdInteger (int64)Specifies the organization ID. Possible Values: Integer Org ID.
..startDateString (date-time)Indicates the start date and time of the promotion in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..endDateString (date-time)Indicates the end date and time of the promotion in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..timezoneNameStringIANA time zone name for the promotion. This is a reference label to identify the time zone where the promotion is created.
..promotionTypeStringSpecifies the type of promotion.
..statusStringIndicates the current status of the promotion, updated based on the review action.
..promoIdentifierStringSpecifies a unique string identifier for the promotion.
..promotionIdInteger (int32)Specifies the legacy numerical promotion ID.
..createdOnString (date-time)Indicates the creation date and time of the promotion in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..lastModifiedOnString (date-time)Indicates the last modification date and time of the promotion in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..createdByInteger (int32)Specifies the user ID of the creator.
..lastModifiedByInteger (int32)Specifies the user ID of the last modifier.
..loyaltyEarningTypeStringIndicates the loyalty earning type.
..versionStringSpecifies the version string of the promotion.
..draftDetailsObjectDefines details if the promotion is a draft.
...idStringSpecifies the draft's unique ID.
...statusStringSpecifies the draft's status.
...versionInteger (int32)Specifies the draft version number.
...lastModifiedByInteger (int32)Specifies the user who last modified the draft.
...lastModifiedOnString (date-time)Indicates the last modification date and time of the draft in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..loyaltyConfigMetaDataObjectDefines loyalty-specific configurations.
...isStackableBooleanIndicates if the promotion is stackable. Possible Values: true, false.
...isConsideredForRankingBooleanIndicates if the promotion is considered for ranking. Possible Values: true, false.
...isExclusiveBooleanIndicates if the promotion is exclusive. Possible Values: true, false.
...isAlwaysApplyBooleanIndicates if the promotion should always apply. Possible Values: true, false.
...skipEarnedDateCheckOnRedeemBooleanIndicates if the earned date check should be skipped on redemption. Possible Values: true, false.
..promotionMetadataArray (Object)Defines a list of custom key-value metadata pairs.
...isBrandDefinedStringSpecifies if the metadata is defined by the brand.
...keyStringSpecifies the metadata key.
...valueStringSpecifies the metadata value.
..commonStrategiesObjectDefines common strategies, like expiry.
...expiryArray (Object)Defines a list of expiry strategies.
....strategyTypeIdInteger (int32)Specifies the strategy type ID.
....propertyValuesStringSpecifies the property values for the strategy.
....ownerStringSpecifies the owner of the strategy.
....useCommonExpiryStrategyBooleanIndicates if the common expiry strategy is used. Possible Values: true, false.
....strategyRefStringSpecifies the strategy reference. Possible Values: String.
....strategySubTypeStringIndicates the strategy sub-type. Possible Values: ROLLING_EXPIRY_STRATEGY, DEFAULT.
..promotionModeStringIndicates the promotion mode. Possible Values: LEGACY, UNIFIED.
.customerEnrolmentObjectDefines the member enrolment rules (CustomerEnrolment). Possible Values: A valid CustomerEnrolment object.
..enrolmentMethodStringIndicates the method of member enrolment. Possible Values: TRANSACTION, IMPORT.
..audienceGroupsArray (Object)Defines a list of audience groups for enrolment (AudienceGroupDetails). Possible Values: Array of AudienceGroupDetails objects or null.
...audienceGroupIdInteger (int64)Specifies the unique ID for the audience group. Possible Values: Integer ID.
...audienceGroupNameStringSpecifies the name of the audience group. Possible Values: String.
...descriptionStringSpecifies the description of the audience group. Possible Values: String.
.activitiesArray (Object)Defines a list of activities (SingleActivity or GroupActivity). Possible Values: Array of valid Activity objects.
..idStringSpecifies the unique ID for the activity. Possible Values: String ID.
..typeStringSpecifies the type of the activity. Possible Values: SINGLE, GROUP.
..nameStringSpecifies the name of the activity. Possible Values: String.
..refIdStringSpecifies the reference ID for the activity. Possible Values: String or null.
..parentIdStringSpecifies the parent activity's ID. Possible Values: String ID or null.
..commonCycleActionMappingArray (Object)Defines action mappings for common cycles (CycleActionMapping). Possible Values: Array of CycleActionMapping objects.
...cycleStringSpecifies the cycle name/ID. Possible Values: String ID.
...defaultValueNumber (double)Specifies the default value for the action. Possible Values: Number or null.
...actionsArray (Object)Defines a list of actions (Action). Possible Values: Array of Action objects.
....idStringSpecifies the action ID. Possible Values: String ID.
....actionNameStringSpecifies the action name. Possible Values: String representing a valid action name.
....actionClassStringSpecifies the action class. Possible Values: Fully qualified Java class name string.
....descriptionStringSpecifies the action description. Possible Values: String or null.
....mandatoryPropertiesValuesObjectDefines key-value pairs for mandatory properties. Possible Values: Object with string keys/values.
....mandatoryComplexPropertiesValuesObjectDefines key-value pairs for mandatory complex properties. Possible Values: Object with string keys and object values, or null.
....embeddedStrategiesArray (Object)Defines a list of embedded StrategyInfo objects. Possible Values: Array of StrategyInfo objects or null.
...startDateString (date-time)Indicates the start date and time of the cycle mapping in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
...endDateString (date-time)Indicates the end date and time of the cycle mapping in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
...rulesetIdStringSpecifies the cycle mapping ruleset ID. Possible Values: String ID or null.
..rulesetIdStringSpecifies the ruleset ID for the activity. Possible Values: String ID or null.
..cyclesArray (Object)Defines a list of general cycles (Cycle). Possible Values: Array of Cycle objects or null.
..eventStringSpecifies the event associated with the single activity. Possible Values: String event name.
..ruleExpressionStringSpecifies the rule expression for the single activity. Possible Values: String DSL or null.
..expJSONStringSpecifies the rule expression in JSON format. Possible Values: JSON string or null.
..frequencyTypeStringSpecifies the frequency type. Possible Values: String or null.
..targetEvaluationTypeStringSpecifies the target evaluation type. Possible Values: String or null.
..targetCycleStartDateString (date-time)Indicates the start date and time of the target cycle in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..targetCycleEndDateString (date-time)Indicates the end date and time of the target cycle in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..activityCyclesArray (Object)Defines activity-specific cycles (ActivityCycle). Possible Values: Array of ActivityCycle objects or null.
..milestonesArray (Object)Defines milestones (Milestone). Possible Values: Array containing max one Milestone object, or null.
..allCyclesArray (Object)Defines a list of all cycles. Possible Values: Array of cycle objects or null.
..eventStringSpecifies the event associated with the group activity.
..combinationTypeStringIndicates how child activities are combined.
..childrenArray (Object)Defines a nested list of child GroupActivity or SingleActivity objects.
..ruleExpressionStringSpecifies the rule expression for the group activity.
..expJSONStringSpecifies the rule expression in JSON format.
.commentsStringSpecifies any comments on the promotion.
.parentIdStringSpecifies the ID of the parent promotion.
.parentDetailsObjectDefines details of the parent promotion.
..idStringSpecifies the parent promotion ID.
..statusStringSpecifies the parent promotion status.
..versionInteger (int32)Specifies the parent promotion version.
..lastModifiedByInteger (int32)Specifies the user who last modified the parent in ISO 8601 format.
..lastModifiedOnString (date-time)Indicates the last modification date and time of the parent promotion in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
.versionInteger (int32)Specifies the version number of the promotion.
.limitsArray (Object)Defines a list of limits for the promotion.
..idInteger (int64)Specifies the limit ID.
..entityScopeStringIndicates the scope of the limit.
..granularityStringIndicates the granularity of the limit.
..entityIdInteger (int64)Specifies the entity ID the limit applies to.
..actionTypeStringIndicates the action type being limited.
..actionSubTypeIdStringSpecifies the action sub-type ID.
..limitTypeStringIndicates the type of limit.
..limitValueNumberSpecifies the value of the limit.
..periodObjectDefines the time period for the limit.
...idInteger (int64)Specifies the period ID.
...periodTypeStringIndicates the type of period.
...periodUnitStringIndicates the unit for the period.
...periodValueInteger (int32)Specifies the value for the period.
...periodStartDayStringIndicates the start day for weekly periods.
...startDateString (date-time)Indicates the fixed start date for the period in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
...endDateString (date-time)Indicates the fixed end date for the period in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..createdOnString (date-time)Indicates the creation date and time of the limit in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..createdByInteger (int64)Specifies the user ID of the limit creator.
..lastUpdatedOnString (date-time)Indicates the last update date and time of the limit in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
..lastUpdatedByInteger (int64)Specifies the user ID of the last user who have updated the review status.
..activeBooleanIndicates if the limit is active. Possible Values: true, false.
.liabilityOwnerSplitInfoArray (Object)Defines how liability is split.
..orgIdInteger (int32)Specifies the organization ID.
..liabilityOwnerIdInteger (int32)Specifies the liability owner ID.
..componentIdInteger (int32)Specifies the component ID.
..componentTypeStringIndicates the component type.
..createdByInteger (int32)Specifies the user ID of the creator. Possible Values: Integer user ID.
..ratioNumber (double)Specifies the liability split ratio.
..liabilityOwnerNameStringSpecifies the liability owner's name.
..liabilityOwnerTypeStringIndicates the liability owner's type. Possible Values: PARTNER, PROGRAM.
..activeBooleanIndicates if the split info is active. Possible Values: true, false.
.workflowMetadataObjectDefines workflow metadata for enrolment and opt-in.
..enrolmentObjectDefines enrolment workflow details.
...basedOnStringIndicates the basis for enrolment.
...activitiesArray (Object)Defines activities triggering enrolment.
...audienceMappingArray (Object)Defines audience mappings.
....groupIdInteger (int64)Specifies the group ID.
....groupNameStringSpecifies the group name.
...restrictionsObjectDefines enrolment restrictions.
....optinExpiryBasedOnObjectDefines opt-in expiry.
.....valueInteger (int32)Specifies the expiry value.
.....expiryDateString (date-time)Indicates the expiry date and time of the opt-in status in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
.....typeStringSpecifies the expiry type.
....enrolmentExpiryBasedOnObjectDefines enrolment expiry.
.....valueInteger (int32)Specifies the expiry value.
.....expiryDateString (date-time)Indicates the expiry date and time of the enrolment status in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
.....typeStringSpecifies the expiry type.
....optinLimitPerCustomerObjectDefines opt-in limit.
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
....maxRedemptionsPerEarnPerCustomerObjectDefines redemption limit.
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
....enrolmentLimitPerPromotionObjectDefines total enrolment limit (PromotionRestrictionsConfig).
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
....enrolmentLimitPerCustomerObjectDefines enrolment limit per customer.
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
....maxPointsPerEarnPerCustomerObjectDefines max points per earn limit.
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
..optinObjectDefines opt-in workflow details (Optin). Possible Values: A valid Optin object or empty object .
...basedOnStringIndicates the basis for opt-in.
...activitiesArray (Object)Defines activities.
...audienceMappingArray (Object)Defines audience mappings.
....groupIdInteger (int64)Specifies the group ID.
....groupNameStringSpecifies the group name.
...restrictionsObjectDefines opt-in restrictions.
....optinExpiryBasedOnObjectDefines opt-in expiry.
.....valueInteger (int32)Specifies the expiry value.
.....expiryDateString (date-time)Indicates the expiry date and time of the opt-in status in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
.....typeStringSpecifies the expiry type.
....enrolmentExpiryBasedOnObjectDefines enrolment expiry.
.....valueInteger (int32)Specifies the expiry value.
.....expiryDateString (date-time)Indicates the expiry date and time of the enrolment status in ISO 8601 format, returned in the server time zone.

EU server example
2025-12-16T14:30:45Z → 16 December 2025, 14:30:45 (UTC)

India server example
2025-12-16T14:30:45+05:30 → 16 December 2025, 14:30:45 (IST)

Note: The response time zone always matches the server time zone, regardless of the time zone offset in the request.
.....typeStringSpecifies the expiry type.
....optinLimitPerCustomerObjectDefines opt-in limit.
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
....maxRedemptionsPerEarnPerCustomerObjectDefines redemption limit.
.....valueInteger (int32)Specifies the limit value. Possible Values: Integer or null.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
....enrolmentLimitPerPromotionObjectDefines total enrolment limit.
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
....enrolmentLimitPerCustomerObjectDefines enrolment limit per customer. Possible Values: A valid PromotionRestrictionsConfig object or null.
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
....maxPointsPerEarnPerCustomerObjectDefines max points per earn limit.
.....valueInteger (int32)Specifies the limit value.
.....typeStringSpecifies the limit period type.
.....periodTypeStringSpecifies the window type.
.....periodUnitStringSpecifies the period unit.
.communicationApprovalStatusObjectDefines the status of communication approval.
..successBooleanIndicates if the approval status check was successful.
..messageStringSpecifies the status message.
..responseObjectDefines the nested response object.
..statusCodeInteger (int32)Specifies the status code.
errorsArray (Object)Defines a list of errors that occurred, if any.
.codeInteger (int64)Specifies the error code. Possible Values: Integer error code.
warningsArray (Object)Defines a list of warnings, if any.
.messageStringSpecifies the warning message.

Warning Messages

Warning Message
Communication Approval Failed. The promotion status was updated, but associated communications could not be approved.Check the communicationApprovalStatus field in the response data for specific failure details from the Creatives service.
Journey Approval Failed. The promotion was successfully approved/active, but the linked journey could not be approved.Manually verify the journey status in the Journey Builder or retry the approval.

Error Codes

Error CodeDescription
310151Invalid approval status. Use only APPROVE or REJECT in the approvalStatus field.
300006Service operation failed. An internal service (like Journey or Points Engine) failed; check the server logs for the specific cause.
300005Access denied. Ensure your authentication token is valid and you have permissions for the requested Organization ID.
300004Invalid input. The request body is malformed or missing required fields; ensure the JSON structure is correct.
999999Promotion not found. Use a valid promotionId and ensure the promotion exists and belongs to your organization.
999999Invalid promotion status. Only promotions currently in PENDING_APPROVAL status can be reviewed.
999999Comment too long. Ensure the comment field in your request does not exceed 150 characters.
310174No edits allowed. Modifications are restricted while the promotion is in the PENDING_APPROVAL state.
Path Params
string
required
Body Params

Request body

string
Headers
string
Response

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