# Промокоды

## Работа с промокодами

## Получение списка промокодов

<mark style="color:blue;">`GET`</mark> `https://api.lpmotor.ru/v1/promo`

This endpoint allows you to get free cakes.

#### Query Parameters

| Name     | Type   | Description |
| -------- | ------ | ----------- |
| site\_id | string | ID сайта    |

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| X-Api-User-Id | string | ID пользователя |
| Authorization | string | API-токен       |

{% tabs %}
{% tab title="200 Cake successfully retrieved." %}

```
[
  {
    "id": 0,
    "code": "string",
    "pos": 0,
    "is_enabled": true,
    "bonus_type": 0,
    "bonus_amount": 0,
    "bonus_amount_is_in_percentages": true,
    "time_limit_is_enabled": true,
    "d_on": "2021-08-04T13:57:37.243Z",
    "d_off": "2021-08-04T13:57:37.243Z",
    "quantity_limit_is_enabled": true,
    "quantity_limit": 0,
    "promo_used_count": 0,
    "is_valid": true
  }
]
```

{% endtab %}

{% tab title="403 Could not find a cake matching this query." %}

```
{
    "title": "user cant view site",
    "error": 30,
    "code": 403
}Пример запроса
 curl -X GET "Пример запроса
 curl -X GET "
```

{% endtab %}
{% endtabs %}

#### Пример запроса

{% tabs %}
{% tab title="CURL" %}

```bash
curl \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-User-Id: <<Your-user-id>>" \
-H "Authorization: Bearer <<Your-API-token>>" \
-X GET "https://api.lpmotor.ru/v1/promo?site_id=11111" 
```

{% endtab %}

{% tab title="PHP CURL" %}

```
```

{% endtab %}

{% tab title="PHP Guzzle" %}

```php
<?php
$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api.lpmotor.ru',
    'headers'  => [
        'Content-Type'  => 'application/json',
        'Accept'        => 'application/json',
        'X-Api-User-Id' => $userId,
        'Authorization' => 'Bearer ' . $apiKey,
    ],
]);
$response = $client->get(
    '/v1/promo',
    [
        'query' => [
            'site_id' => $siteId,
        ]
    ]
);
$statusCode = $response->getStatusCode();
$promoCodes = json_decode((string) $response->getBody(), true);
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
http = Axios.create({
    baseURL: "https://api.lpmotor.ru",
    timeout: 60000,
    headers: {
        "Content-Type" : "application/json",
        "Accept"       : "application/json",
        "Cache-Control": "no-cache, no-store, must-revalidate",
        "X-Api-User-Id": userId,
        "Authorization": "Bearer " + myApiKey,
    }
});
http.get("/v1/promo", {
    params: {
        site_id: 11111,
    },
});
```

{% endtab %}
{% endtabs %}

## Создание промокода

<mark style="color:green;">`POST`</mark> `https://api.lpmotor.ru/v1/promo`

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| X-Api-User-Id | string | ID пользователя |
| Authorization | string | API-токен       |

#### Request Body

| Name                               | Type    | Description                                                                                                                            |
| ---------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| site\_id                           | integer | ID сайта                                                                                                                               |
| code                               | string  | Код длиной от 2 до 15 символов. Может состоять только из букв латинского алфавита и цифр                                               |
| is\_enabled                        | boolean | Флаг действия промокода. **По умолчанию: false**                                                                                       |
| bonus\_type                        | integer | Тип действия промокода. Поддерживаемые значения: *2* - на стоимость основных товаров, *3* - на стоимость доставки. **По умолчанию: 2** |
| bonus\_amount                      | number  | Сумма скидки. **По умолчанию: 0.01**                                                                                                   |
| bonus\_amount\_is\_in\_percentages | boolean | Тип скидки. *true* - в процентах, *false* - фиксированная. **По умолчанию: false**                                                     |
| time\_limit\_is\_enabled           | boolean | Флаг ограничения срока действия промокода. **По умолчанию: false**                                                                     |
| d\_on                              | string  | Дата начала действия промокода. **По умолчанию: null**                                                                                 |
| d\_off                             | string  | Дата окончания действия промокода. **По умолчанию: null**                                                                              |
| quantity\_limit\_is\_enabled       | boolean | Флаг ограничения количества использований промокода. **По умолчанию: false**                                                           |
| quantity\_limit                    | integer | Количество использований промокода. **По умолчанию: 0**                                                                                |
| personal\_limit\_is\_enabled       | boolean | Флаг повторного использования промокода одним пользователем. **По умолчанию: false**                                                   |

{% tabs %}
{% tab title="201 " %}

```
{
  "code": "string",
  "is_enabled": true,
  "bonus_type": 0,
  "bonus_amount": 0,
  "bonus_amount_is_in_percentages": true,
  "time_limit_is_enabled": true,
  "d_on": "2021-08-04T14:36:22.614Z",
  "d_off": "2021-08-04T14:36:22.614Z",
  "quantity_limit_is_enabled": true,
  "quantity_limit": 0,
  "personal_limit_is_enabled": true
}
```

{% endtab %}

{% tab title="403 " %}

```
{
    "title": "user cant view site",
    "error": 30,
    "code": 403
}
```

{% endtab %}
{% endtabs %}

#### Пример запроса

{% tabs %}
{% tab title="CURL" %}

```bash
curl \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-User-Id: <<Your-user-id>>" \
-H "Authorization: Bearer <<Your-API-token>>" \
-X POST "https://api.lpmotor.ru/v1/promo" \ 
-d '{"user_id":123,"site_id":11111,"code":"mypromocode"}'
```

{% endtab %}

{% tab title="PHP CURL" %}

```
```

{% endtab %}

{% tab title="PHP Guzzle" %}

```php
<?php
$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api.lpmotor.ru',
    'headers'  => [
        'Content-Type'  => 'application/json',
        'Accept'        => 'application/json',
        'X-Api-User-Id' => $userId,
        'Authorization' => 'Bearer ' . $apiKey,
    ],
]);
$response = $client->post(
    '/v1/promo',
    [
        'json' => [
            'user_id' => $userId,
            'site_id' => $siteId,
            'code' => 'mypromocode',
        ],
    ]
);
$statusCode = $response->getStatusCode();
$promoCode = json_decode((string) $response->getBody(), true);
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
http = Axios.create({
    baseURL: "https://api.lpmotor.ru",
    timeout: 60000,
    headers: {
        "Content-Type" : "application/json",
        "Accept"       : "application/json",
        "Cache-Control": "no-cache, no-store, must-revalidate",
        "X-Api-User-Id": userId,
        "Authorization": "Bearer " + myApiKey,
    }
});
http.post('/v1/promo', {
    user_id: 123,
    site_id: 11111,
    code: 'mypromocode',
});
```

{% endtab %}
{% endtabs %}

## Получение промокода по ID

<mark style="color:blue;">`GET`</mark> `https://api.lpmotor.ru/v1/promo/{promo_id}`

#### Path Parameters

| Name      | Type   | Description  |
| --------- | ------ | ------------ |
| promo\_id | string | ID промокода |

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| X-Api-User-Id | string | ID пользователя |
| Authorization | string | API-токен       |

{% tabs %}
{% tab title="200 " %}

```
{
  "code": "string",
  "is_enabled": true,
  "bonus_type": 0,
  "bonus_amount": 0,
  "bonus_amount_is_in_percentages": true,
  "time_limit_is_enabled": true,
  "d_on": "2021-08-04T14:39:18.248Z",
  "d_off": "2021-08-04T14:39:18.248Z",
  "quantity_limit_is_enabled": true,
  "quantity_limit": 0,
  "personal_limit_is_enabled": true
}
```

{% endtab %}

{% tab title="403 " %}

```
{
    "title": "user cant view promo",
    "error": 40,
    "code": 403
}
```

{% endtab %}
{% endtabs %}

#### Пример запроса

{% tabs %}
{% tab title="CURL" %}

```bash
curl \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-User-Id: <<Your-user-id>>" \
-H "Authorization: Bearer <<Your-API-token>>" \
-X GET "https://api.lpmotor.ru/v1/promo/1" 
```

{% endtab %}

{% tab title="PHP CURL" %}

```
```

{% endtab %}

{% tab title="PHP Guzzle" %}

```php
<?php
$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api.lpmotor.ru',
    'headers'  => [
        'Content-Type'  => 'application/json',
        'Accept'        => 'application/json',
        'X-Api-User-Id' => $userId,
        'Authorization' => 'Bearer ' . $apiKey,
    ],
]);
$response = $client->get(
    '/v1/promo/' . $promoId
);
$statusCode = $response->getStatusCode();
$promoCode = json_decode((string) $response->getBody(), true);
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
http = Axios.create({
    baseURL: "https://api.lpmotor.ru",
    timeout: 60000,
    headers: {
        "Content-Type" : "application/json",
        "Accept"       : "application/json",
        "Cache-Control": "no-cache, no-store, must-revalidate",
        "X-Api-User-Id": userId,
        "Authorization": "Bearer " + myApiKey,
    }
});
http.get("/v1/promo/" + promoId);
```

{% endtab %}
{% endtabs %}

## Изменение промокода

<mark style="color:orange;">`PUT`</mark> `https://api.lpmotor.ru/v1/promo/{promo_id}`

#### Path Parameters

| Name      | Type   | Description  |
| --------- | ------ | ------------ |
| promo\_id | string | ID промокода |

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| X-Api-User-Id | string | ID пользователя |
| Authorization | string | API-токен       |

#### Request Body

| Name                               | Type    | Description                                                                                                                            |
| ---------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| code                               | string  | Код длиной от 2 до 15 символов. Может состоять только из символов латиницы и цифр                                                      |
| is\_enabled                        | boolean | Флаг действия промокода. **По умолчанию: false**                                                                                       |
| bonus\_type                        | integer | Тип действия промокода. Поддерживаемые значения: *2* - на стоимость основных товаров, *3* - на стоимость доставки. **По умолчанию: 2** |
| bonus\_amount                      | number  | Сумма скидки. **По умолчанию: 0.01**                                                                                                   |
| bonus\_amount\_is\_in\_percentages | boolean | Тип скидки. *true* - в процентах, *false* - фиксированная. **По умолчанию: false**                                                     |
| time\_limit\_is\_enabled           | boolean | Флаг ограничения срока действия промокода. **По умолчанию: false**                                                                     |
| d\_on                              | string  | Дата начала действия промокода. **По умолчанию: null**                                                                                 |
| d\_off                             | string  | Дата окончания действия промокода. **По умолчанию: null**                                                                              |
| quantity\_limit\_is\_enabled       | boolean | Флаг ограничения количества использований промокода. **По умолчанию: false**                                                           |
| quantity\_limit                    | integer | Количество использований промокода. **По умолчанию: 0**                                                                                |
| personal\_limit\_is\_enabled       | boolean | Флаг повторного использования промокода одним пользователем. **По умолчанию: false**                                                   |

{% tabs %}
{% tab title="200 " %}

```
{
  "code": "string",
  "is_enabled": true,
  "bonus_type": 0,
  "bonus_amount": 0,
  "bonus_amount_is_in_percentages": true,
  "time_limit_is_enabled": true,
  "d_on": "2021-08-04T14:43:46.897Z",
  "d_off": "2021-08-04T14:43:46.897Z",
  "quantity_limit_is_enabled": true,
  "quantity_limit": 0,
  "personal_limit_is_enabled": true
}
```

{% endtab %}

{% tab title="403 " %}

```
{
    "title": "user cant view promo",
    "error": 40,
    "code": 403
}
```

{% endtab %}
{% endtabs %}

#### Пример запроса

{% tabs %}
{% tab title="CURL" %}

```bash
curl \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-User-Id: <<Your-user-id>>" \
-H "Authorization: Bearer <<Your-API-token>>" \
-X PUT "https://api.lpmotor.ru/v1/promo/1" \ 
-d '{"code":"newpromocode"}'
```

{% endtab %}

{% tab title="PHP CURL" %}

```
```

{% endtab %}

{% tab title="PHP Guzzle" %}

```php
<?php
$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api.lpmotor.ru',
    'headers'  => [
        'Content-Type'  => 'application/json',
        'Accept'        => 'application/json',
        'X-Api-User-Id' => $userId,
        'Authorization' => 'Bearer ' . $apiKey,
    ],
]);
$response = $client->put(
    '/v1/promo/1',
    [
        'json' => [
            'code' => 'newpromocode',
        ],
    ]
);
$statusCode = $response->getStatusCode();
$promoCode = json_decode((string) $response->getBody(), true);
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
http = Axios.create({
    baseURL: "https://api.lpmotor.ru",
    timeout: 60000,
    headers: {
        "Content-Type" : "application/json",
        "Accept"       : "application/json",
        "Cache-Control": "no-cache, no-store, must-revalidate",
        "X-Api-User-Id": userId,
        "Authorization": "Bearer " + myApiKey,
    }
});
http.post('/v1/promo/1', {
    code: 'newpromocode',
});
```

{% endtab %}
{% endtabs %}

## Удаление промокода

<mark style="color:red;">`DELETE`</mark> `https://api.lpmotor.ru/v1/promo/{promo_id}`

#### Path Parameters

| Name      | Type   | Description  |
| --------- | ------ | ------------ |
| promo\_id | string | ID промокода |

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| X-Api-User-Id | string | ID пользователя |
| Authorization | string | API-токен       |

{% tabs %}
{% tab title="204 " %}

```
```

{% endtab %}

{% tab title="403 " %}

```
{
    "title": "user cant view promo",
    "error": 40,
    "code": 403
}
```

{% endtab %}
{% endtabs %}

#### Пример запроса

{% tabs %}
{% tab title="CURL" %}

```bash
curl \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-User-Id: <<Your-user-id>>" \
-H "Authorization: Bearer <<Your-API-token>>" \
-X DELETE "https://api.lpmotor.ru/v1/promo/1" 
```

{% endtab %}

{% tab title="PHP CURL" %}

```
```

{% endtab %}

{% tab title="PHP Guzzle" %}

```php
<?php
$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api.lpmotor.ru',
    'headers'  => [
        'Content-Type'  => 'application/json',
        'Accept'        => 'application/json',
        'X-Api-User-Id' => $userId,
        'Authorization' => 'Bearer ' . $apiKey,
    ],
]);
$response = $client->delete(
    '/v1/promo/1'
);
$statusCode = $response->getStatusCode();
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
http = Axios.create({
    baseURL: "https://api.lpmotor.ru",
    timeout: 60000,
    headers: {
        "Content-Type" : "application/json",
        "Accept"       : "application/json",
        "Cache-Control": "no-cache, no-store, must-revalidate",
        "X-Api-User-Id": userId,
        "Authorization": "Bearer " + myApiKey,
    }
});
http.delete("/v1/promo/1");
```

{% endtab %}
{% endtabs %}

## Получение статистики использования промокода

<mark style="color:blue;">`GET`</mark> `https://api.lpmotor.ru/v1/promo/{promo_id}/statistics`

#### Path Parameters

| Name      | Type   | Description  |
| --------- | ------ | ------------ |
| promo\_id | string | ID промокода |

#### Headers

| Name          | Type   | Description     |
| ------------- | ------ | --------------- |
| X-Api-User-Id | string | ID пользователя |
| Authorization | string | API-токен       |

{% tabs %}
{% tab title="200 " %}

```
[
  {
    "id": 0,
    "promo_id": 0,
    "lead_id": 0,
    "bonus_type_id": 0,
    "bonus_amount": 0,
    "bonus_amount_is_in_percentages": 0,
    "order_price": 0,
    "order_quantity": 0,
    "discount_amount": 0,
    "promo": {
      "code": "string"
    },
    "d_lead_created": "2021-08-04T15:02:13.184Z",
    "currency": "string"
  }
]
```

{% endtab %}

{% tab title="403 " %}

```
{
    "title": "user cant view site",
    "error": 30,
    "code": 403
}
```

{% endtab %}
{% endtabs %}

#### Пример запроса

{% tabs %}
{% tab title="CURL" %}

```bash
curl \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Api-User-Id: <<Your-user-id>>" \
-H "Authorization: Bearer <<Your-API-token>>" \
-X GET "https://api.lpmotor.ru/v1/promo/1/statistics"
```

{% endtab %}

{% tab title=" PHP CURL" %}

```
```

{% endtab %}

{% tab title="PHP Guzzle" %}

```php
<?php
$client = new GuzzleHttp\Client([
    'base_uri' => 'https://api.lpmotor.ru',
    'headers'  => [
        'Content-Type'  => 'application/json',
        'Accept'        => 'application/json',
        'X-Api-User-Id' => $userId,
        'Authorization' => 'Bearer ' . $apiKey,
    ],
]);
$response = $client->get(
    '/v1/promo/1/statistics'
);
$statusCode = $response->getStatusCode();
$statistics = json_decode((string) $response->getBody(), true);
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
http = Axios.create({
    baseURL: "https://api.lpmotor.ru",
    timeout: 60000,
    headers: {
        "Content-Type" : "application/json",
        "Accept"       : "application/json",
        "Cache-Control": "no-cache, no-store, must-revalidate",
        "X-Api-User-Id": userId,
        "Authorization": "Bearer " + myApiKey,
    }
});
http.get("/v1/promo/1/statistics");
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.lpmotor.ru/promocodes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
