> For the complete documentation index, see [llms.txt](https://docs.fstrk.io/knowledge_base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fstrk.io/knowledge_base/api/obshaya-informaciya/promokody.md).

# Промокоды

#### GET /api/partners/promocode-groups/

🔒 *bot-key или OAuth*

**Кратко:** Получить список групп промокодов.

**Параметры запроса:**

* `limit` (integer, опциональный), `offset` (integer, опциональный) — используется для пагинации

**Возвращает:** `200 OK` — постраничный список объектов `PromocodeGroup`: `uuid`, `name`.

<details>

<summary>Пример ответа:</summary>

{% code overflow="wrap" %}

```json
{
  "count": 123,
  "next": "http://api.example.org/accounts/?offset=400&limit=100",
  "previous": "http://api.example.org/accounts/?offset=200&limit=100",
  "results": [
    {
      "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string"
    }
  ]
}
```

{% endcode %}

</details>

**Ошибки:** 401 — ошибка авторизации.

**Пример запроса:**

bash

```bash
curl -X GET "https://dashboard.fstrk.io/api/partners/promocode-groups/?limit=50" \
  -H "bot-key: your_bot_key"
```

***

#### POST /api/partners/promocode-groups/

🔒 *bot-key или OAuth*

**Кратко:** Создать новую группу промокодов.

**Тело запроса:**

* `name` (string, обязательный) — название группы (максимум 1024 символа)

**Возвращает:** `201 Created` — объект `PromocodeGroup`.

**Ошибки:** 400 — некорректные данные; 401 — ошибка авторизации.

**Пример запроса:**

bash

```bash
curl -X POST https://dashboard.fstrk.io/api/partners/promocode-groups/ \
  -H "Content-Type: application/json" \
  -H "bot-key: your_bot_key" \
  -d '{
    "name": "Летняя акция 2026"
  }'
```

***

#### GET /api/partners/promocode-groups/{uuid}/

🔒 *bot-key или OAuth*

**Кратко:** Получить информацию о группе промокодов по UUID.

**Параметры пути:**

* `uuid` (string, обязательный) — UUID группы

**Возвращает:** `200 OK` — объект `PromocodeGroup`.

<details>

<summary>Пример ответа:</summary>

{% code overflow="wrap" %}

```json
{
  "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "name": "string"
}
```

{% endcode %}

</details>

**Ошибки:** 401 — ошибка авторизации; 404 — группа не найдена.

**Пример запроса:**

bash

```bash
curl -X GET https://dashboard.fstrk.io/api/partners/promocode-groups/550e8400-e29b-41d4-a716-446655440000/ \
  -H "bot-key: your_bot_key"
```

***

#### PATCH /api/partners/promocode-groups/{uuid}/

🔒 *bot-key или OAuth*

**Кратко:** Отредактировать название группы промокодов.

**Параметры пути:**

* `uuid` (string, обязательный) — UUID группы

**Тело запроса:**

* `name` (string, опциональный) — новое название

**Возвращает:** `200 OK` — обновлённый объект `PromocodeGroup`.

<details>

<summary>Пример ответа:</summary>

{% code overflow="wrap" %}

```json
{
  "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "name": "string"
}
```

{% endcode %}

</details>

**Ошибки:** 400 — некорректные данные; 401 — ошибка авторизации; 404 — группа не найдена.

**Пример запроса:**

bash

```bash
curl -X PATCH https://dashboard.fstrk.io/api/partners/promocode-groups/550e8400-e29b-41d4-a716-446655440000/ \
  -H "Content-Type: application/json" \
  -H "bot-key: your_bot_key" \
  -d '{
    "name": "Осенняя акция 2026"
  }'
```

***

#### DELETE /api/partners/promocode-groups/{uuid}/

🔒 *bot-key или OAuth*

**Кратко:** Удалить группу промокодов.

**Параметры пути:**

* `uuid` (string, обязательный) — UUID группы

**Возвращает:** `204`.

**Ошибки:** 401 — ошибка авторизации; 404 — группа не найдена.

**Пример запроса:**

bash

```bash
curl -X DELETE https://dashboard.fstrk.io/api/partners/promocode-groups/550e8400-e29b-41d4-a716-446655440000/ \
  -H "bot-key: your_bot_key"
```

***

#### GET /api/partners/promocodes/

🔒 *bot-key или OAuth*

**Кратко:** Получить список промокодов.

**Параметры запроса:**

* `limit` (integer, опциональный), `offset` (integer, опциональный)

**Возвращает:** `200 OK` — постраничный список объектов `PromocodeGet`.

**Ошибки:** 401 — ошибка авторизации.

**Пример запроса:**

bash

```bash
curl -X GET "https://dashboard.fstrk.io/api/partners/promocodes/?limit=100" \
  -H "bot-key: your_bot_key"
```

***

#### POST /api/partners/promocodes/

🔒 *bot-key или OAuth*

**Кратко:** Создать промокод вручную.

**Тело запроса:**

* `code` (string, обязательный) — код промокода (максимум 1024 символа)
* `group` (uuid, обязательный) — UUID группы промокодов
* `issued_chat` (uuid, опциональный) — UUID чата, которому выдаётся промокод
* `expires_at` (string, date-time, опциональный) — дата и время истечения

**Возвращает:** `201 Created` — объект `PromocodeCreatePatch`.

**Ошибки:** 400 — некорректные данные; 401 — ошибка авторизации.

**Пример запроса:**

bash

```bash
curl -X POST https://dashboard.fstrk.io/api/partners/promocodes/ \
  -H "Content-Type: application/json" \
  -H "bot-key: your_bot_key" \
  -d '{
    "code": "SUMMER2024",
    "group": "550e8400-e29b-41d4-a716-446655440000",
    "expires_at": "2024-09-01T00:00:00Z"
  }'
```

***

#### GET /api/partners/promocodes/{uuid}/

🔒 *bot-key или OAuth*

**Кратко:** Получить информацию о промокоде по UUID.

**Параметры пути:**

* `uuid` (string, обязательный) — UUID промокода

**Возвращает:** `200 OK` — объект `PromocodeGet`: `uuid`, `code`, `status` (`AVAILABLE` или `ISSUED`), `group`, `issued_chat`, `issued_at`, `expires_at`, `created_at`, `updated_at`.

**Ошибки:** 401 — ошибка авторизации; 404 — промокод не найден.

**Пример запроса:**

bash

```bash
curl -X GET https://dashboard.fstrk.io/api/partners/promocodes/550e8400-e29b-41d4-a716-446655440000/ \
  -H "bot-key: your_bot_key"
```

***

#### PATCH /api/partners/promocodes/{uuid}/

🔒 *bot-key или OAuth*

**Кратко:** Частично обновить промокод.

**Параметры пути:**

* `uuid` (string, обязательный) — UUID промокода

**Тело запроса (все поля опциональны):**

* `code` (string), `status` (`AVAILABLE` или `ISSUED`), `group` (object), `issued_chat` (object), `issued_at` (string, date-time), `expires_at` (string, date-time)

**Возвращает:** `200 OK` — обновлённый объект `PromocodeGet`.

**Ошибки:** 400 — некорректные данные; 401 — ошибка авторизации; 404 — промокод не найден.

**Пример запроса:**

bash

```bash
# Пометить промокод как выданный
curl -X PATCH https://dashboard.fstrk.io/api/partners/promocodes/550e8400-e29b-41d4-a716-446655440000/ \
  -H "Content-Type: application/json" \
  -H "bot-key: your_bot_key" \
  -d '{
    "status": "ISSUED",
    "issued_at": "2024-09-05T10:00:00Z"
  }'
```

***

#### DELETE /api/partners/promocodes/{uuid}/

🔒 *bot-key или OAuth*

**Кратко:** Удалить промокод.

**Параметры пути:**

* `uuid` (string, обязательный) — UUID промокода

**Возвращает:** `204 No Content`.

**Ошибки:** 401 — ошибка авторизации; 404 — промокод не найден.

**Пример запроса:**

bash

```bash
curl -X DELETE https://localhost:8080/api/partners/promocodes/550e8400-e29b-41d4-a716-446655440000/ \
  -H "bot-key: your_bot_key"
```

***

#### POST /api/partners/promocodes/generate/

🔒 *bot-key или OAuth*

**Кратко:** Автоматически сгенерировать промокод с заданными параметрами.

**Тело запроса:**

* `group` (uuid, обязательный) — UUID группы
* `chars_count` (integer, опциональный) — количество символов без префикса (5–10, по умолчанию 10)
* `is_add_integers` (boolean, опциональный) — добавлять цифры (по умолчанию `false`)
* `prefix` (string, опциональный) — префикс промокода
* `expires_at` (string, date-time, опциональный) — дата истечения

**Возвращает:** `200 OK`:

* `code` (string) — сгенерированный код

**Ошибки:** 400 — некорректные параметры; 401 — ошибка авторизации.

**Пример запроса:**

bash

```bash
curl -X POST https://localhost:8080/api/partners/promocodes/generate/ \
  -H "Content-Type: application/json" \
  -H "bot-key: your_bot_key" \
  -d '{
    "group": "550e8400-e29b-41d4-a716-446655440000",
    "chars_count": 8,
    "is_add_integers": true,
    "prefix": "FALL-",
    "expires_at": "2024-12-31T23:59:59Z"
  }'
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.fstrk.io/knowledge_base/api/obshaya-informaciya/promokody.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
