# Create discount promotion for item

Creates a discount promotion for an item.

Promotions provide a discount (%) on items.
The discount will be applied to all prices of the specified items.

Endpoint: POST /v3/project/{project_id}/admin/promotion/item
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 project name and in the browser address bar when working with a project. The URL has the following format: https://publisher.xsolla.com//projects/.
    Example: 44056

## Request fields (application/json):

  - `name` (object, required)
    Name of promotion. Should contain key/value pairs,
where key is locale with format "^[a-z]{2}-[A-Z]{2}$", value is string.
    Example: {"en-US":"Promotion","ru-RU":"Акция"}

  - `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"

  - `discount` (object, required)

  - `discount.percent` (string, required)
    Percent discount.
The price of item will be decreased using a value calculated by using this percent and then rounded to 2 decimal places.
    Example: 10

  - `items` (array, required)

  - `items.sku` (string, required)
    Item SKU.

  - `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. The promotion applies only to items whose price meets all the conditions in the array. If you pass this array, set the value of the [items](/api/shop-builder/operation/create-item-promotion/#!path=items&t=request) object to null.

  - `price_conditions.operator` (string, required)
    Comparison operator for setting the price range for applying the promotion.

Possible values:
- ge — Greater or equal
- gt — Greater than
- le — Less or equal
- lt — Less than
- eq — Equals
- ne — Not equals
    Enum: "ge", "gt", "le", "lt", "eq", "ne"

  - `price_conditions.value` (string, required)
    Value for determining the price range for applying the promotion.

  - `limits` (object)
    Promotion limits.

  - `limits.per_user` (integer,null)
    Promotion limitation for a separate user.

  - `limits.recurrent_schedule` (object,null)
    Limit refresh period.

  - `limits.recurrent_schedule.per_user` (any)
    User limit refresh period.

  - `excluded_promotions` (array)
    List of promotion IDs to exclude when applying this promotion. Example: [12, 789]

  - `is_enabled` (boolean)
    Whether promotion is enabled or not.

## Response 201 fields (application/json):

  - `promotion_id` (integer)
    Promotion ID. Unique promotion identifier within the project.

## 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 `items` is required"

  - `transactionId` (string)
    Example: "x-x-x-x-transactionId-mock-x-x-x"


