Lets you update existing coupon series details.
Example request
curl --location --request PUT 'https://eu.api.capillarytech.com/v2/coupon/series/923222?format=json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Z2VvcmdlLmRvY2RjVhMDGY1NTY5NDk1YmNkNzUxYmJiY2U=' \
--header 'Cookie: _cfuvid=mJsi4aQ3oxBBuYDlQxQdv_wDqIZBYmAonrNmnns-1765961752938-0.0.1.1-604800000' \
--data '{
"CouponSeriesV2": {
"id": 923222,
"seriesCode": "923222",
"orgId": 999,
"description": "promogold22",
"discountCode": "gold1234",
"validTillDate": "2026-06-12T00:00:00+05:30",
"anyUser": false,
"smsTemplate": "Hi {{first_name}} {{last_name}} your voucher code //////{{voucher}}is valid",
"discountValue": 1000,
"clientHandlingType": "DISC_CODE",
"expiryStrategyType": "SERIES_EXPIRY",
"discountType": "ABS",
"couponPrefix": "gold",
"isPrefixEnabled": false,
"orgPrefixOverride": false,
"couponSuffix": "NEWEND",
"isSuffixEnabled": true,
"orgSuffixOverride": false
}
}'Body Parameters
Parameter | Data Type | Required | Description |
|---|---|---|---|
CouponSeriesV2 | Object | Optional | Object containing the coupon series details. |
customPropertyMap | Object | Optional | An object containing a collection of keys that represents unique property names and each value represents the corresponding property's value. |
customPropertyMap.key1 | String | Optional | Custom field of the coupon series, providing additional information about the coupon. |
customPropertyMap.key2 | String | Optional | Custom field of the coupon series, providing additional information about the coupon. |
standard_terms_and_conditions | String | Optional | Custom field in the coupon series that provides information about the terms and conditions. |
description | String | Yes | Brief description of the coupon series. |
discountCode | String | Yes | The code given for the coupon as the POS identifier. |
discountType | Enum | Yes | Specifies the type of discount provided by the coupon. Supported values: ABS (a fixed amount is discounted), PERC (a percentage of the total amount is discounted). |
discountValue | Integer | Yes | Discount value of the coupon. |
anyUser | Boolean | Yes | Indicates if any user can use the offer. |
validTillDate | String | Optional | Validity of the card series in UTC timestamp. Format: YYYY-MM-DDTHH:MM:SS+/-(time-zone). |
validTillDateTime | String | Optional | Specifies the exact expiry date and time of a coupon in ISO 8601 format (e.g., "2026-06-11T23:59:59Z"), indicating the precise moment until which the coupon can be redeemed. |
expiryStrategyValue | Integer | Optional | Specifies the duration a coupon remains valid based on the expiryStrategyType. For expiryStrategyType: "SERIES_EXPIRY", expiryStrategyValue is always 1, which defines the coupon expires based on the rules defined for its series. For expiryStrategyType: "DAYS", and expiryStrategyValue: "5", specifies that coupon will be valid till 5 days of issuance. For expiryStrategyType: "MONTHS_END", and expiryStrategyValue: "10" specifies that the coupon will be valid for 10 months of issuance. |
maxCreate | Integer | Optional | Maximum number of coupons that can be created. Constraint: The value must always be greater than the number of coupons already issued from the coupon series. |
maxRedeem | Integer | Optional | Maximum number of coupons that can be redeemed. |
redemptionPerCouponMaxLimit | Integer | Conditional | Specifies the maximum number of times a particular coupon code can be redeemed across all users. Note: • Applicable only when the anyUser parameter is set to true. • The value must be greater than 0. • To create a coupon series without a redemption limit, set the value as null or -1. • This parameter applies only to autogenerated coupon codes (DISC_CODE) and uploaded coupon codes (DISC_CODE_PIN). • Not applicable for GENERIC coupon codes or externally managed coupon series (EXTERNALLY_MANAGED = true). Refer to the Create Offer section to know more about coupon code types. |
sameUserMultipleRedeem | Boolean | Optional | Indicates if the same user can redeem multiple times. |
isReferralExistingUsersAllowed | Boolean | Optional | Indicates if the referral is allowed for existing users. |
isMultipleUseAllowed | Boolean | Optional | Indicates if multiple uses of the offer are allowed. |
isValidWithDiscountedItem | Boolean | Optional | Indicates if the offer is valid with discounted items. |
smsTemplate | String | Yes | Template for the SMS that is sent to users. |
isSMSDisabled | Boolean | Optional | Indicates if SMS is disabled. |
info | String | Optional | Additional information about the coupon. |
isMultipleVouchersPerUserAllowed | Boolean | Optional | Indicates if multiple vouchers per user are allowed. |
doNotResendExistingVoucher | Boolean | Optional | Indicates not to resend existing vouchers. |
mutualExclusiveSeriesIds | String | Optional | Allows you to specify a list of offer IDs that are mutually exclusive to the current offer. If a customer already has a coupon from any of the offer IDs in this list, they will not be eligible to receive a coupon from the current series. |
maxVouchersPerUser | Integer | Optional | Maximum number of vouchers allowed per user. |
minDaysBetweenVouchers | Integer | Optional | Minimum days between issuance of vouchers. |
redemptionRange | String | Optional | Defines the specific days, weekdays, and hours during which the coupon can be redeemed. |
minBillAmount | Integer | Optional | Minimum bill amount required to use the coupon. |
maxBillAmount | Integer | Optional | Maximum bill amount allowed for coupon redemption. |
maxRedemptionsInSeriesPerUser | Integer | Optional | Maximum redemptions in the series per user. |
minDaysBetweenRedemption | Integer | Optional | Minimum days required between redemptions. |
redemptionValidFrom | String | Optional | Date from which redemption is valid. |
productInfo | Array | Optional | Information about the products on which the coupon can be applied. |
productInfo.productType | Enum | Optional | Type of the product. Supported values: SKU, CATEGORY, BRAND, ATTRIBUTE. |
productInfo.productIds | Array | Optional | IDs of the product. |
redemptionOrgEntityDetails | Array | Optional | Details about the organization entities where the coupon can be redeemed. |
redemptionOrgEntityType | Enum | Optional | Type of redemption organization entity. Supported values: CONCEPT, TILL, ZONE, STORE. |
orgEntityId | Integer | Optional | ID of the organization entity. |
targetUserDetails | Object | Optional | Details of the criteria that the customer must meet to redeem the coupon. |
validMaxUserTransactionLimit | Integer | Optional | Number of transactions required by the customer to redeem the coupon. |
validUserRegistrationStartTime | Integer | Optional | Customer can redeem the coupon only if their registration date is after the specified date. |
validUserRegistrationEndTime | Integer | Optional | Customer can redeem the coupon only if their registration date is within the specified date. |
redemptionValidAfterDays | Integer | Optional | Number of days after which the redemption becomes valid. |
alphaNumeric | Boolean | Optional | Indicates if the code is alphanumeric. |
randomCodeLength | Integer | Optional | Length of the random code for the coupon. |
resendMessageEnabled | Boolean | Optional | Indicates if the resend message feature is enabled. |
clientHandlingType | String | Yes | The method using which the coupons should be generated. Supported values: |
seriesCode | String | Yes | Code for the coupon series. |
genericCode | String | Conditional | Generic code of the coupon. Note: Only required if the clientHandlingType is set to GENERIC. |
expiryStrategyType | Enum | Yes | Defines the method for coupon expiry. Supported values: SERIES_EXPIRY : Defines the coupon expires based on the rules defined for its series), |
couponPrefix | String | Conditional | Specifies the custom value to be added before the coupon code. e.g., SUMMER-XYZ123. This prefix value is added to the coupon code only if:
|
couponSuffix | String | Conditional | Specifies the custom value to be added after the coupon code. e.g., XYZ123-SUMMER. This suffix value is added to the coupon code only if:
|
isPrefixEnabled | Boolean | Optional | Indicates if the custom prefix is enabled for the coupon code. Supported values:
Note: If this parameter is set to |
isSuffixEnabled | Boolean | Optional | Indicates if the custom suffix is enabled for the coupon code. Supported values:
Note: If this parameter is set to false, no suffix value will be added to the coupon code, even if orgSuffixOverride is set to true. |
orgPrefixOverride | Boolean | Optional | Specifies whether to add the custom prefix or the org-level default prefix for the coupon code. Supported values:
|
orgSuffixOverride | Boolean | Optional | Specifies whether to add the custom suffix or the org-level default suffix for the coupon code. Supported values:
|
Example response
{
"id": 927443,
"orgId": 100737,
"description": "Test 1: P and S Enabled",
"discountCode": "gold1234",
"validTillDate": "2026-06-11T00:00:00Z",
"validTillDateTime": "2026-06-11T23:59:59Z",
"validDaysFromCreation": 30,
"expiryStrategyValue": -1,
"maxCreate": -1,
"maxRedeem": -1,
"isTransferrable": false,
"anyUser": false,
"sameUserMultipleRedeem": false,
"isReferralExistingUsersAllowed": false,
"isMultipleUseAllowed": false,
"isValidationRequired": false,
"isValidWithDiscountedItem": false,
"createdBy": 75197941,
"numIssued": 0,
"numRedeemed": 0,
"createdOn": "2025-12-17T11:05:57Z",
"lastUsed": "2025-12-17T11:06:15Z",
"seriesCode": "927443",
"smsTemplate": "Hi {{first_name}} {{last_name}} your voucher code //////{{voucher}}is valid",
"isSMSDisabled": false,
"info": "Test 1: P and S Enabled",
"isMultipleVouchersPerUserAllowed": false,
"doNotResendExistingVoucher": false,
"mutualExclusiveSeriesIds": "[-1]",
"storeIdsJson": "[-1]",
"isDvsEnabled": false,
"dvsExpiryDate": "2025-12-17T00:00:00Z",
"priority": 0,
"shortSMSTemplate": "Hello {{cust_name}}, your voucher code is {{voucher_code}}",
"maxVouchersPerUser": -1,
"minDaysBetweenVouchers": -1,
"maxReferralsPerReferee": -1,
"discountUpto": 0,
"discountValue": 1000,
"dvsItems": "items",
"redemptionRange": "{\"dom\" : [-1], \"dow\": [-1], \"hours\": [-1]}",
"minBillAmount": -1,
"maxBillAmount": -1,
"redeemAtStore": "[-1]",
"campaignId": -1,
"tag": "Test 1: P and S Enabled",
"maxRedemptionsInSeriesPerUser": -1,
"minDaysBetweenRedemption": -1,
"redemptionValidFrom": "2025-12-17T00:00:00Z",
"sourceOrgId": -1,
"issueToLoyalty": false,
"redeemStoreType": "redeemable_stores",
"offlineRedeemType": false,
"isOldFlowEnabled": false,
"isPreRedeemEventRequired": false,
"termsAndConditions": "T&C",
"signalRedemptionEvent": false,
"syncToClient": false,
"showPinCode": false,
"numUploadedNonIssued": 0,
"numUploadedTotal": 0,
"redemptionValidAfterDays": 0,
"ownedBy": "NONE",
"ownerId": -1,
"ownerValidity": 0,
"alphaNumeric": false,
"shortCodeLength": 0,
"randomCodeLength": 5,
"fixedExpiryDate": 1781136000000,
"numTotal": -1,
"latestIssualTime": 0,
"latestRedemptionTime": 0,
"resendMessageEnabled": true,
"redemptionPerCouponMaxLimit": -1,
"couponPrefix": "P-SUC",
"couponSuffix": "S-SUC",
"isPrefixEnabled": true,
"isSuffixEnabled": true,
"orgPrefixOverride": false,
"orgSuffixOverride": false,
"seriesType": "UNDEFINED",
"clientHandlingType": "DISC_CODE",
"expiryStrategyType": "SERIES_EXPIRY",
"discountOn": "BILL",
"discountType": "ABS",
"externalIssual": false,
"updateProductData": false,
"warnings": []
}Response parameter
Parameter | Datatype | Description |
|---|---|---|
customPropertyMap | Object | An object containing a collection of keys that represents unique property names and each value represents the corresponding property's value. |
standard_terms_and_conditions | string | Custom field in the coupon series that provides information about the terms and conditions. |
id | integer | Unique identifier of the coupon series |
orgId | integer | Organization ID associated with the coupon series |
description | string | Description of the coupon series |
discountCode | string | The code given for the coupon as the POS identifier that was created during the creation of coupon series. |
validTillDate | string | Validity of the card series in UTC timestamp. Format: YYYY-MM-DDTHH:MM:SS+/-(time-zone). |
validDaysFromCreation | integer | Number of days the coupon is valid from creation |
expiryStrategyValue | integer | Specifies the duration a coupon remains valid based on the expiryStrategyType. For expiryStrategyType: "SERIES_EXPIRY", expiryStrategyValue is always 1, which defines the coupon expires based on the rules defined for its series. For expiryStrategyType: "DAYS", and expiryStrategyValue: "5", specifies that coupon will be valid till 5 days of issuance For expiryStrategyType: "MONTHS_END", and expiryStrategyValue: "10" specifies that the coupon will be valid for 10 months of issuance. |
maxCreate | integer | Maximum number of coupons that can be created |
maxRedeem | integer | Maximum number of coupons that can be redeemed. |
isTransferrable | boolean | Indicates if the coupon is transferable |
anyUser | boolean | Indicates if any user can use the offer. |
redemptionPerCouponMaxLimit | integer | Specifies the maximum number of times a particular coupon code can be redeemed across all users. |
couponPrefix | String | Indicates the custom string added before the coupon code. |
couponSuffix | String | Indicates the custom string added after the coupon code. |
isPrefixEnabled | Boolean | Indicates if the prefix configuration is currently enabled. |
isSuffixEnabled | Boolean | Indicates if the suffix configuration is currently enabled. |
orgPrefixOverride | Boolean | Indicates if the organization-level default prefix overrides the custom prefix. |
orgSuffixOverride | Boolean | Indicates if the organization-level default suffix overrides the custom suffix. |
sameUserMultipleRedeem | boolean | Indicates if the same user can redeem multiple times. |
isReferralExistingUsersAllowed | boolean | Indicates if the referral is allowed for existing users. |
isMultipleUseAllowed | boolean | Indicates if multiple uses of the offer are allowed. |
isValidationRequired | boolean | Indicates if validation is required for the coupon |
isValidWithDiscountedItem | boolean | Indicates if the offer is valid with discounted items. |
createdBy | integer | ID of the user who created the coupon series |
numIssued | integer | Number of coupons issued from this series |
numRedeemed | integer | Number of coupons redeemed from this series |
createdOn | string | Date and time when the coupon series was created. |
lastUsed | string | Date and time when the coupon was last used |
seriesCode | string | Code for the coupon series |
smsTemplate | string | Template for the SMS that is sent to users. |
isSMSDisabled | boolean | Indicates if SMS is disabled. |
info | string | Additional information about the coupon |
isMultipleVouchersPerUserAllowed | boolean | Indicates if multiple vouchers per user are allowed |
doNotResendExistingVoucher | boolean | Indicates not to resend existing vouchers. |
mutualExclusiveSeriesIds | string | Allows you to specify a list of offer IDs that are mutually exclusive to the current offer. If a customer already has a coupon from any of the offer IDs in this list, they will not be eligible to receive a coupon from the current series. |
storeIdsJson | string | IDs of stores where the coupon is valid. |
isDvsEnabled | boolean | Indicates if DVS (Dynamic Voucher System) is enabled |
dvsExpiryDate | string | Expiry date for DVS. |
priority | integer | Priority level of the offer. |
shortSMSTemplate | string | Short template for the SMS to be sent to users |
maxVouchersPerUser | integer | Maximum number of vouchers allowed per user |
minDaysBetweenVouchers | integer | Minimum days between issuance of vouchers. |
maxReferralsPerReferee | integer | Maximum number of referrals allowed per referee |
discountUpto | integer | Maximum discount value |
discountValue | integer | Discount value of the coupon |
dvsItems | string | Items for DVS (Dynamic Voucher System). |
redemptionRange | string | Defines the specific days, weekdays, and hours during which the coupon can be redeemed. |
minBillAmount | integer | Minimum bill amount required to use the coupon. |
maxBillAmount | integer | Maximum bill amount allowed for coupon redemption |
redeemAtStore | string | Stores IDs where redemption is allowed. |
campaignId | integer | Identifier of the campaign associated with the coupon |
tag | string | Tag or label for the coupon |
maxRedemptionsInSeriesPerUser | integer | Maximum redemptions in the series per user. |
minDaysBetweenRedemption | integer | Minimum days required between redemptions. |
redemptionValidFrom | string | Date from which redemption is valid. |
sourceOrgId | integer | Identifier of the source organization |
issueToLoyalty | boolean | Indicates if the coupon is issued to loyalty members |
redeemStoreType | string | Type of store where the coupon can be redeemed. Supported values : redeemable_stores. |
offlineRedeemType | boolean | Indicates if offline redemption is enabled |
isOldFlowEnabled | boolean | Indicates if the old redemption flow is enabled |
isPreRedeemEventRequired | boolean | Indicates if a pre-redeem event is required |
termsAndConditions | string | Terms and conditions for the offer. |
signalRedemptionEvent | boolean | Indicates if a redemption event signal is required |
syncToClient | boolean | Indicates if the coupon data should be synchronized to the client |
showPinCode | boolean | Indicates if a PIN code should be displayed |
validMaxUserTransactionLimit | integer | Number of transactions required by the customer to redeem the coupon. |
validUserRegistrationStartTime | integer | Customer can redeem the coupon only if their registration date is after the specified date. |
validUserRegistrationEndTime | integer | Customer can redeem the coupon only if their registration date is within the specified date. |
numUploadedNonIssued | integer | Number of non-issued coupons uploaded |
numUploadedTotal | integer | Total number of coupons uploaded |
redemptionValidAfterDays | integer | Number of days after which the redemption becomes valid. |
ownedBy | string | Ownership details for the offer. |
ownerId | integer | Identifier of the owner of the coupon |
ownerValidity | integer | Validity period of the owner's rights to the coupon |
alphaNumeric | boolean | Indicates if the code is alphanumeric. |
shortCodeLength | integer | Length of the short code generated for the coupon |
randomCodeLength | integer | Length of the random code for the coupon. |
fixedExpiryDate | integer | Fixed expiry date of the coupon (in epoch milliseconds) |
numTotal | integer | Total number of coupons issued |
latestIssualTime | integer | Latest issuance time of the coupon (in epoch milliseconds) |
latestRedemptionTime | integer | Latest redemption time of the coupon (in epoch milliseconds) |
resendMessageEnabled | boolean | Indicates if the resend message feature is enabled. |
seriesType | string | Type of coupon series. |
clientHandlingType | string | Method using which the coupons should be generated. Supported values: DISC_CODE (generate coupon codes automatically), GENERIC (provide a common coupon code), DISC_CODE_PIN (Upload existing coupon codes). |
expiryStrategyType | string | Defines the method for coupon expiry. Supported values: SERIES_EXPIRY(defines the coupon expires based on the rules defined for its series), MONTHS_END(defines the number of months from issuance until the coupon expires.), DAYS(defines the number of days from issuance until the coupon expires). |
discountOn | string | Type of discount. |
discountType | string | Specifies the type of discount provided by the coupon. Supported values: ABS(a fixed amount is discounted), PERC(a percentage of the total amount is discounted). |
updateProductData | boolean | Indicating if the product data can be updated. |
externalIssual | boolean | Indicating if external issuance is allowed. |
warnings | array | List of warnings related to the coupon. |
Error code
| Error code | Description |
|---|---|
| 400 | Bad Request - Invalid parameters. Verify that the series ID is a valid long integer and orgId is provided. |
| 401 | Unauthorized - Authentication failed. Ensure valid authentication credentials (API key/token) are provided in the request headers. |
| 403 | Forbidden - Access denied. Verify that the authenticated user has permission to access this coupon series. |
| 404 | Not Found - Coupon series not found. Confirm that the series ID exists and belongs to the specified organization. Check the series ID in Campaign Manager. |
| 500 | Internal Server Error. Retry the request after a few moments. If the issue persists, contact Capillary Support. |
| 501 | Invalid Organization ID. Provide a valid organization ID that exists in the system. |
| 502 | No Coupon Series Available. The specified coupon series does not exist for this organization. Verify the series ID. |
| 707 | Coupon series id is invalid. The provided series ID format is incorrect or the series does not exist. Verify the ID in Campaign Manager and ensure it's a valid numeric value. |
| 730 | Unknown error. Check request parameters and retry. If error persists, contact Capillary Support with request details. |
| 786 | Unable to process coupon. Please try again later. Service temporarily unavailable. Retry the request after a few seconds. |
| 788 | Configuration is invalid. Please report to Capillary Support. Contact Capillary Support to verify organization configuration settings. |
| 795 | Configuration is invalid. Please report to Capillary Support. Contact Capillary Support to verify organization configuration settings. |
| 799 | Configuration is invalid. Please report to Capillary Support. Contact Capillary Support to verify organization configuration settings. |
{
"id": 751412,
"orgId": 100737,
"description": "40% off for unknown reason",
"discountCode": "unknown40",
"validTillDate": "2025-04-25T00:00:00Z",
"validDaysFromCreation": 30,
"expiryStrategyValue": 1,
"maxCreate": 1316432742,
"maxRedeem": 1316863212,
"isTransferrable": false,
"anyUser": true,
"sameUserMultipleRedeem": true,
"isReferralExistingUsersAllowed": false,
"isMultipleUseAllowed": false,
"isValidationRequired": false,
"isValidWithDiscountedItem": true,
"createdBy": 75155297,
"numIssued": 0,
"numRedeemed": 0,
"createdOn": "2025-04-17T05:36:41Z",
"lastUsed": "2025-05-12T08:27:45Z",
"seriesCode": "string",
"smsTemplate": "string",
"isSMSDisabled": false,
"info": "30% off for unknown reason",
"isMultipleVouchersPerUserAllowed": true,
"doNotResendExistingVoucher": true,
"mutualExclusiveSeriesIds": "[-1]",
"storeIdsJson": "[-1]",
"isDvsEnabled": false,
"dvsExpiryDate": "2025-05-12T00:00:00Z",
"priority": 0,
"shortSMSTemplate": "Hello {{cust_name}}, your voucher code is {{voucher_code}}",
"maxVouchersPerUser": -123,
"minDaysBetweenVouchers": -123,
"maxReferralsPerReferee": -1,
"discountUpto": 0,
"discountValue": 150000004759552,
"dvsItems": "items",
"redemptionRange": "{\"dom\" : [-1], \"dow\": [-1], \"hours\": [-1]}",
"minBillAmount": 0,
"maxBillAmount": 40000,
"redeemAtStore": "[-1]",
"campaignId": 0,
"tag": "40% off for unknown reason",
"maxRedemptionsInSeriesPerUser": 4,
"minDaysBetweenRedemption": 0,
"redemptionValidFrom": "2025-04-23T00:00:00Z",
"sourceOrgId": -1,
"issueToLoyalty": false,
"redeemStoreType": "redeemable_stores",
"offlineRedeemType": false,
"isOldFlowEnabled": false,
"isPreRedeemEventRequired": false,
"termsAndConditions": "T&C",
"signalRedemptionEvent": false,
"syncToClient": false,
"showPinCode": false,
"targetUserDetails": {
"validMaxUserTransactionLimit": 1,
"validUserRegistrationStartTime": 0,
"validUserRegistrationEndTime": 10000
},
"numUploadedNonIssued": 0,
"numUploadedTotal": 0,
"redemptionValidAfterDays": 0,
"ownedBy": "NONE",
"ownerId": -1,
"ownerValidity": 0,
"alphaNumeric": true,
"shortCodeLength": 0,
"randomCodeLength": 10,
"fixedExpiryDate": 1745539200000,
"numTotal": 0,
"latestIssualTime": 0,
"latestRedemptionTime": 0,
"genericCode": "string",
"resendMessageEnabled": true,
"redemptionPerCouponMaxLimit": -1,
"seriesType": "UNDEFINED",
"clientHandlingType": "DISC_CODE",
"expiryStrategyType": "SERIES_EXPIRY",
"discountOn": "BILL",
"discountType": "ABS",
"externalIssual": false,
"updateProductData": false,
"warnings": []
}