Create catalog promotion

This API is used to create catalog promotions and link it to a reward.

🚧

Notes

  • By default, the reward catalog promotion is not enabled for the organization. Create a ticket to the Capillary Product Support team.
  • A reward can be linked to only one active- running or scheduled promotion.
  • Promotion can be disabled but cannot be re-enabled.
👍

Notes

  • For detailed information about our APIs and for hands-on testing, refer documentation in API overview and step-by-step guide on making your first API call in Make your first API call.
  • Start time and end time are in UTC zone.

Example request

curl --location 'https://eu.api.capillarytech.com/api_gateway/rewards/core/v1/promotion/create' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'accept: application/json' \
--header 'Authorization: Basic bWFkaHVjU2YQ==' \
--header 'Cookie: _cfuvid=qrR26fiL9O7hSaVDD64eltEicRcuyxTkMuk2MPS2moc-1764581884487-0.0.1.1-604800000' \
--data '
{
  "startTime": "2025-12-04T10:08:00.000Z",
  "endTime": "2025-12-14T06:10:00.000Z",
  "discountType": "PERCENTAGE",
  "discountValue": 20,
  "brandId": "61",
  "languageSpecificInfo": [
    {
      "languageCode": "en",
      "name": "UAT Catalog Promotion ",
      "description": "Catalog Promotion for UAT team",
      "enabled": true
    }
  ],
  "rewardIds": [
    496584
  ]
}
'

Prerequisites

  • Authentication: Basic or OAuth authentication
  • Default access group

Resource information

URI/api_gateway/rewards/core/v1/promotion/create
HTTP MethodPOST
PaginationNo
Batch supportNo
Rate limit informationNone

Request body parameters

ParameterData TypeDescription
startTime*StringStart date and time of the catalog promotion. Ex: 2024-05-04T20:58:49.000Z (Start time is in UTC zone.)
endTime*StringEnd date and time of the catalog promotion. Ex: 2025-10-25T05:46Z (End time is in UTC zone.)
discountType*EnumType of discount being applied. Supported values: ABSOLUTE, PERCENTAGE, FIXED
discountValue*IntegerValue of the discount. Ex: 1
brandId*StringYou can use the API and retrieve the brand ID of your brand. Ex: 1
languageSpecificInfo*ArrayArray containing language-specific information
.languageCode*StringLanguage code
.name*StringName in the specified language
.description*StringDescription in the specified language
.enabled*BooleanIndicates if the language entry is enabled
rewardIds*Array of IntegersReward IDs on which catalog promotion will be applied. Ex: 112295

Example response

{
    "status": {
        "success": true,
        "code": 11002,
        "message": "Catalog promotion created successfully."
    },
    "catalogPromotion": {
        "id": 14862
    },
    "failedRewards": []
}

Response parameters

ParameterData TypeDescription
statusObjectStatus of the operation
successBooleanIndicates if the operation was successful
codeIntegerCode representing the operation's status
messageStringDescription of the operation's status
catalogPromotionObjectContains information about the catalog promotion
idIntegerUnique identifier for the catalog promotion
failedRewardsArrayAn array of failed rewards.

API-specific error codes

Error codeDescription
11015Reward expired or disabled or free. Cannot apply for catalog promotion.
11004Reward already linked to active catalog promotion.
Language
Credentials
Basic
base64
:
URL
Click Try It! to start a request and see the response here!