Lets you create a new coupon series for the org.
This API allows you to create a new coupon series for the org.
Example request
curl --location 'https://eu.api.capillarytech.com/v2/coupon/series' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic Z2VvcmdlLmRvY2RlbW86NjVjk1MWY5MGY1NTY5NDk1YmNkNzUxYmJiY2U=' \
--header 'Cookie: _cfuvid=mJsi4aQ3oxBBQxQdv_PNm_wDqIZBYmAonrNmnns-1765961752938-0.0.1.1-604800000' \
--data '{
"CouponSeriesV2": {
"orgId": 100737,
"description": "Test 1: P and S Enabled",
"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": "P-SUC",
"isPrefixEnabled": true,
"orgPrefixOverride": false,
"randomCodeLength" : 5,
"couponSuffix": "S-SUC",
"isSuffixEnabled": true,
"orgSuffixOverride": false
}
}''{
"CouponSeriesV2": {
"maxCreate": -1,
"maxRedeem": -1,
"anyUser": true,
"redemptionPerCouponMaxLimit": 3,
"maxRedemptionsInSeriesPerUser": -1,
"sameUserMultipleRedeem": true,
"isMultipleUseAllowed": true,
"isMultipleVouchersPerUserAllowed": true,
"maxVouchersPerUser": -1,
"minDaysBetweenVouchers": -1,
"minDaysBetweenRedemption": -1,
"redemptionValidFrom": "1970-01-01T05:30:00+05:30",
"description": "LIKE1w2w2345678910",
"discountCode": "XYZ1w23",
"validTillDate": "2030-09-30T00:00:00+05:30",
"validDaysFromCreation": 30,
"expiryStrategyValue": 30,
"isTransferrable": false,
"isReferralExistingUsersAllowed": false,
"isValidationRequired": false,
"isValidWithDiscountedItem": false,
"createdBy": 70,
"numIssued": 0,
"numRedeemed": 0,
"createdOn": "2022-02-23T11:08:37+05:30",
"lastUsed": "2022-02-23T11:08:36+05:30",
"seriesCode": "seriesCode001",
"smsTemplate": "Hi {{first_name}}",
"isSMSDisabled": false,
"info": "LIKE12345678910",
"doNotResendExistingVoucher": true,
"mutualExclusiveSeriesIds": "[]",
"storeIdsJson": "[-1]",
"isDvsEnabled": false,
"dvsExpiryDate": "2022-02-23T00:00:00+05:30",
"priority": 0,
"shortSMSTemplate": "Hello {{cust_name}}, your voucher code is {{voucher_code}}",
"maxReferralsPerReferee": -1,
"discountUpto": 0,
"discountValue": 500,
"dvsItems": "items",
"redemptionRange": "{\"dom\":[\"-1\"],\"dow\":[\"-1\"],\"hours\":[\"-1\"]}",
"minBillAmount": 0,
"maxBillAmount": 9007199254740991,
"redeemAtStore": "[-1]",
"campaignId": -1,
"tag": "LIKE12345678910",
"sourceOrgId": -1,
"issueToLoyalty": false,
"redeemStoreType": "redeemable_stores",
"offlineRedeemType": false,
"isOldFlowEnabled": false,
"isPreRedeemEventRequired": false,
"termsAndConditions": "T&C apply",
"signalRedemptionEvent": false,
"syncToClient": false,
"showPinCode": false,
"numUploadedNonIssued": 0,
"numUploadedTotal": 0,
"redemptionValidAfterDays": 0,
"ownedBy": "NONE",
"ownerId": -1,
"ownerValidity": 0,
"alphaNumeric": true,
"shortCodeLength": 0,
"randomCodeLength": 8,
"fixedExpiryDate": 1916937000000,
"numTotal": -1,
"latestIssualTime": 0,
"latestRedemptionTime": 0,
"resendMessageEnabled": true,
"seriesType": "UNDEFINED",
"clientHandlingType": "DISC_CODE",
"expiryStrategyType": "DAYS",
"discountOn": "BILL",
"discountType": "ABS",
"updateProductData": false,
"externalIssual": false
}
}'Prerequisites
- Authentication details
- Authorisation/access group details
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 represent 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 is the POS identifier. |
validTillDate | String | Yes | Validity of the card series in UTC timestamp. Format: YYYY-MM-DDTHH:MM:SS+/-(time-zone). |
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 the 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 | Specifies the maximum number of coupons that can be created. |
maxRedeem | Integer | Optional | Specifies the maximum number of coupons that can be redeemed. |
anyUser | Boolean | Yes | Indicates if any user can use the offer. |
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 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. |
discountValue | Integer | Yes | Discount value of the coupon. |
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 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: DISC_CODE (generate coupon codes automatically), GENERIC (provide a common coupon code), DISC_CODE_PIN (Upload existing coupon codes). |
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: |
discountType | Enum | Yes | Specifies the type of discount provided by the coupon.
|
couponPrefix | String | Conditional | Specifies the custom value to be added before the coupon code. e.g., SUMMER-XYZ123.
The value is case-sensitive and preserved as provided. Multiple coupon series can have the same coupon prefixes. Constraints:
|
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 set to false, no prefix value will be added to the coupon code, even if |
isSuffixEnabled | Boolean | Optional | Indicates if the custom suffix is enabled for the coupon code. Supported values:
|
orgPrefixOverride | Boolean | Optional | Specifies whether to add the custom prefix or the org-level default prefix for the coupon code.
|
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": 927360,
"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-17T10:19:00Z",
"lastUsed": "2025-12-17T10:18:59Z",
"seriesCode": "824712178E67464E8923",
"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": 0,
"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",
"updateProductData": false,
"externalIssual": 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). |
| validTillDateTime | string | 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. |
| 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. |
{
"id": 927360,
"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-17T10:19:00Z",
"lastUsed": "2025-12-17T10:18:59Z",
"seriesCode": "824712178E67464E8923",
"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": 0,
"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",
"updateProductData": false,
"externalIssual": false,
"warnings": []
}{
"id": 698948,
"orgId": 100737,
"description": "LIKE1w2w2345678910",
"discountCode": "XYZ1w23",
"validTillDate": "2030-09-29T00:00:00Z",
"validTillDateTime": "2026-06-11T23:59:59Z",
"validDaysFromCreation": 30,
"expiryStrategyValue": 30,
"maxCreate": -1,
"maxRedeem": -1,
"isTransferrable": false,
"anyUser": true,
"sameUserMultipleRedeem": true,
"isReferralExistingUsersAllowed": false,
"isMultipleUseAllowed": true,
"isValidationRequired": false,
"isValidWithDiscountedItem": false,
"createdBy": 75154383,
"numIssued": 0,
"numRedeemed": 0,
"createdOn": "2025-02-04T08:52:56Z",
"lastUsed": "2025-02-04T08:52:55Z",
"seriesCode": "fEDH0qD8rr",
"smsTemplate": "Hi {{first_name}}",
"isSMSDisabled": false,
"info": "LIKE12345678910",
"isMultipleVouchersPerUserAllowed": true,
"doNotResendExistingVoucher": true,
"mutualExclusiveSeriesIds": "[]",
"storeIdsJson": "[-1]",
"isDvsEnabled": false,
"dvsExpiryDate": "2025-02-04T00:00:00Z",
"priority": 0,
"shortSMSTemplate": "Hello {{cust_name}}, your voucher code is {{voucher_code}}",
"maxVouchersPerUser": -1,
"minDaysBetweenVouchers": -1,
"maxReferralsPerReferee": -1,
"discountUpto": 0,
"discountValue": 500,
"dvsItems": "items",
"redemptionRange": "{\"dom\":[\"-1\"],\"dow\":[\"-1\"],\"hours\":[\"-1\"]}",
"minBillAmount": 0,
"maxBillAmount": 9007199254740991,
"redeemAtStore": "[-1]",
"campaignId": -1,
"tag": "LIKE12345678910",
"maxRedemptionsInSeriesPerUser": -1,
"minDaysBetweenRedemption": -1,
"redemptionValidFrom": "1970-01-01T00:00:00Z",
"sourceOrgId": -1,
"issueToLoyalty": false,
"redeemStoreType": "redeemable_stores",
"offlineRedeemType": false,
"isOldFlowEnabled": false,
"isPreRedeemEventRequired": false,
"termsAndConditions": "T&C apply",
"signalRedemptionEvent": false,
"syncToClient": false,
"showPinCode": false,
"numUploadedNonIssued": 0,
"numUploadedTotal": 0,
"redemptionValidAfterDays": 0,
"ownedBy": "NONE",
"ownerId": -1,
"ownerValidity": 0,
"alphaNumeric": true,
"shortCodeLength": 0,
"randomCodeLength": 8,
"fixedExpiryDate": 1916870400000,
"numTotal": 0,
"latestIssualTime": 0,
"latestRedemptionTime": 0,
"resendMessageEnabled": true,
"redemptionPerCouponMaxLimit": 3,
"seriesType": "UNDEFINED",
"clientHandlingType": "DISC_CODE",
"expiryStrategyType": "DAYS",
"discountOn": "BILL",
"discountType": "ABS",
"externalIssual": false,
"updateProductData": false,
"warnings": []
}
NOTE:
- There is no daily limit on API requests for creating coupon series. However, it's important to manage a balanced approach to maintain the performance. Issuance restrictions can be controlled through the coupon issuance settings.
- You can make as many API calls as you need to create coupon series each day. But, it is important to be careful and balanced in how many calls you make at once to avoid overloading the system.
- If limits are set for coupon series in the system, these limits will acts as an restriction for creating the number of coupon series per day.
- The series expiration date applies before a coupon’s validity period. To keep coupons valid for their full duration, ensure the series expiration covers the coupon validity.
Error code
| Error code | Description |
|---|---|
| 400 | Bad Request - Invalid parameters. Verify all required fields are provided and have valid values. Check date format (YYYY-MM-DD) and enum values. |
| 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 create coupon series for this organization. |
| 404 | Not Found - Organization not found. Confirm that the orgId exists and is accessible with your credentials. |
| 409 | Conflict - Duplicate series code. The discount code or series code already exists. Use a unique code or update the existing series. |
| 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. |
| 629 | Invalid Input. Review all input parameters for correctness. Ensure dates are in valid format, numeric values are within acceptable ranges, and enum values match allowed options. |
| 629 | Prefix length exceeds maximum. The prefix length cannot exceed the maximum allowed characters (typically 10). Reduce the prefix length or remove unnecessary characters. |
| 629 | Suffix length exceeds maximum. The suffix length cannot exceed the maximum allowed characters (typically 10). Reduce the suffix length or remove unnecessary characters. |
| 629 | Prefix contains invalid characters. Prefix can only contain alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and underscores (_). Remove any special characters or spaces from the prefix. |
| 629 | Suffix contains invalid characters. Suffix can only contain alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and underscores (_). Remove any special characters or spaces from the suffix. |
| 629 | Prefix/Suffix not allowed. Prefix or suffix can only be set when clientHandlingType is "DISC_CODE". Either change clientHandlingType to "DISC_CODE" or remove prefix/suffix configuration. |
| 629 | Prefix enabled but not provided. Prefix is enabled but no prefix value is set at either organization level or series level. Provide a prefix value or disable prefix in the request. |
| 629 | Suffix enabled but not provided. Suffix is enabled but no suffix value is set at either organization level or series level. Provide a suffix value or disable suffix in the request. |
| 629 | Total code length exceeds maximum. The total length of prefix + coupon code + suffix cannot exceed the maximum allowed length (typically 30 characters). |
| 630 | Duplicate Series Code. The series code already exists. Choose a different unique code for the coupon series. |
| 631 | Duplicate Generic Coupon Code. The coupon code is already in use. Select a different unique coupon code. |
| 634 | Empty Series Code. Series code is required but was not provided. Include a valid series code in the request. |
| 641 | Incorrect Valid Till Date. The expiry date format is invalid or the date is in the past. Provide a valid future date in YYYY-MM-DD format. |
| 730 | Unknown error. Check request parameters and retry. |
| 786 | Unable to process coupon. Service temporarily unavailable. Retry the request after a few seconds. |
| 788 | Configuration is invalid. Contact Capillary Support to verify organization configuration settings. |
| 795 | Configuration is invalid. Contact Capillary Support to verify organization configuration settings. |
| 799 | Configuration is invalid. Contact Capillary Support to verify organization configuration settings. |
