# Create promo code promotion Creates a promo code promotion. Endpoint: POST /v3/project/{project_id}/admin/promocode Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) Project ID. You can find this parameter in your Publisher Account next to the name of the project. Example: 44056 ## Request fields (application/json): - `external_id` (string, required) Unique promotion ID. The external_id may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores. Example: "coupon_external_id" - `promotion_periods` (array) Promotion validity periods. If multiple periods are specified, both date_from and date_until are required. - `promotion_periods.date_from` (string, required) Start date for the specified promotion. Example: "2020-08-11T10:00:00+03:00" - `promotion_periods.date_until` (string,null) End date for the specified promotion. If set to null, the promotion is indefinite. Can be null only if a single validity period is specified. Example: "2020-08-11T20:00:00+03:00" - `name` (object, required) Name of promotion. Should contain key/value pairs where key is a locale with "^[a-z]{2}-[A-Z]{2}$" format, value is string. Example: {"en-US":"Coupon title","de-DE":"Gutscheintitel"} - `bonus` (array,null) - `bonus.sku` (string) Item SKU. - `bonus.quantity` (number) Item quantity. - `redeem_total_limit` (integer,null) Limits total numbers of coupons. Example: 10 - `redeem_user_limit` (integer,null) Limits total numbers of coupons redeemed by single user. Example: 10 - `redeem_code_limit` (integer,null) Number of redemptions per code. Example: 10 - `discount` (object,null) Example: {"percent":"10.10"} - `discount.percent` (string,null) Percent discount. The price of cart will be decreased using a value calculated by using this percent and then rounded to 2 decimal places. Example: "10.00" - `discounted_items` (array,null) List of items that are discounted by a promo code. - `attribute_conditions` (array) Conditions for validating user attributes. Determine promotion availability based on whether user attributes match all specified conditions. - `price_conditions` (array,null) Array of objects with conditions that set the price range for applying the promotion to the entire cart. The total price of all items in the user's cart is compared with the price range specified in the condition. [Bonuses](/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) and [discounts](/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) are applied to all items in the cart if the price of the cart meets the specified condition. If you pass this array, set the value of the [discounted_items](/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) array to null. - `price_conditions.operator` (string, required) Comparison operator for setting the price range for applying the promotion. Enum: "ge", "gt", "le", "lt", "eq", "ne" - `price_conditions.value` (string, required) Value for determining the price range for applying the promotion. - `item_price_conditions` (array,null) Array of objects with conditions that set the price range for applying the promotion to certain items in the cart. The price of each item in the user's cart is compared with the price range specified in the condition. [Bonuses](/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) and [discounts](/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) are applied only to those items in the cart whose price meets the condition. If you pass this array, set the value of the [discounted_items](/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) array to null. - `excluded_promotions` (array) List of promotion IDs to exclude when applying this promotion. Example: [12, 789] Example: [12,789] ## Response 201 fields (application/json): - `external_id` (string) Unique promotion ID. The external_id may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores. Example: "coupon_external_id" ## Response 401 fields (application/json): - `statusCode` (integer) Example: 401 - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" ## Response 422 fields (application/json): - `statusCode` (integer) Example: 422 - `errorCode` (integer) Example: 1102 - `errorMessage` (string) Example: "[0401-1102]: Unprocessable Entity. The property `external_id` is required"