# API

[API](https://ru.wikipedia.org/wiki/API) (программный интерфейс приложения) позволяет организовать интеграцию вашего собственного приложения с сервисом [Впостер](https://vposter.ru/).

## Ключ доступа <a href="#parametry" id="parametry"></a>

Ключ доступа можно получить в кабинете сервиса в разделе "Разработчикам" или по [ссылке](https://vposter.ru/dev).

## Документация <a href="#sintaksis-zaprosov" id="sintaksis-zaprosov"></a>

{% embed url="<https://vposter.ru/api>" %}
Документация Swagger
{% endembed %}

## Получить информацию о кабинете

> Возвращает информацию о кабинете.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Users","description":"Группа методов для работы с кабинетом\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/users.getMe":{"get":{"summary":"Получить информацию о кабинете","description":"Возвращает информацию о кабинете.\n","tags":["Users"],"responses":{"200":{"description":"Успешный ответ. Возвращается объект с полем `response.items`.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"VK ID кабинета"},"login":{"type":"string","description":"Логин на сервисе"},"first_name":{"type":"string","description":"Имя"},"last_name":{"type":"string","description":"Фамилия"},"photo":{"type":"string","description":"Ссылка на аватар"},"balance":{"type":"integer","description":"Текущий баланс кабинета"},"tariff":{"type":"integer","description":"Текущий тариф кабинета"},"tariff_update":{"type":"integer","description":"Дата последнего обновления тарифа"},"paid_access":{"type":"integer","description":"Платный доступ","enum":[0,1]},"referall":{"type":"integer","description":"Если вы являетесь рефералом, то здесь будет VK ID кабинета того, кто вас пригласил."},"registration_date":{"type":"string","description":"Дата регистрации в сервисе"},"date_activity":{"type":"string","description":"Дата последнего активного сеанса"},"timezone":{"type":"string","description":"Установленный часовой пояс"},"email":{"type":"string","description":"Адрес электронной почты"},"email_status":{"type":"string","description":"Статус подтверждения электронной почты на сервсие","enum":[0,1]},"phone":{"type":"integer","description":"Номер телефона"},"2fa":{"type":"integer","description":"Двухфакторная аунтификация по электронной почте","enum":[0,1]}}}}}}}}}}},"400":{"description":"Ошибка запроса.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные заголовки\n- Некорректный формат запроса\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось выполнить запрос.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Получить список страниц для отложенного постинга

> Возвращает перечень доступных страниц и групп, на которые разрешено публиковать контент.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Groups","description":"Группа методов для работы со страницами\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/groups.getMy":{"get":{"summary":"Получить список страниц для отложенного постинга","description":"Возвращает перечень доступных страниц и групп, на которые разрешено публиковать контент.\n","tags":["Groups"],"responses":{"200":{"description":"Успешный ответ. Возвращается объект с полем `response`, содержащим:\n- `count` — общее количество доступных страниц/групп;\n- `items` — массив объектов с данными каждой страницы/группы.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"count":{"type":"integer","description":"Общее количество доступных страниц/групп"},"items":{"type":"array","items":{"type":"object","properties":{"fb":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Название группы"},"photo":{"type":"string","format":"url","description":"URL аватара группы"},"id":{"type":"integer","description":"Уникальный идентификатор группы"},"type_social":{"type":"string","description":"Тип социальной сети\n"},"posts":{"type":"integer","description":"Можно ли публиковать посты:\n- `0` - нет\n- `1` - да\n"},"stories":{"type":"integer","description":"Можно ли публиковать истории:\n- `0` - нет\n- `1` - да\n"}}}},"ig_business":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Название страницы"},"photo":{"type":"string","format":"url","description":"URL аватара страницы"},"id":{"type":"integer","description":"Уникальный идентификатор страницы"},"type_social":{"type":"string","description":"Тип социальной сети\n"},"posts":{"type":"integer","description":"Можно ли публиковать посты:\n- `0` - нет\n- `1` - да\n"},"stories":{"type":"integer","description":"Можно ли публиковать истории:\n- `0` - нет\n- `1` - да\n"}}}},"max":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Название канала/чата"},"photo":{"type":"string","format":"url","description":"URL аватара канала/чата"},"id":{"type":"string","description":"Уникальный идентификатор канала/чата"},"type_social":{"type":"string","description":"Тип социальной сети\n"},"posts":{"type":"integer","description":"Можно ли публиковать посты:\n- `0` - нет\n- `1` - да\n"},"stories":{"type":"integer","description":"Можно ли публиковать истории:\n- `0` - нет\n- `1` - да\n"}}}},"ok":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Название группы/страницы"},"photo":{"type":"string","format":"url","description":"URL аватара группы/страницы"},"id":{"type":"string","description":"Уникальный идентификатор канала/страницы"},"type_social":{"type":"string","description":"Тип социальной сети\n"},"posts":{"type":"integer","description":"Можно ли публиковать посты:\n- `0` - нет\n- `1` - да\n"},"stories":{"type":"integer","description":"Можно ли публиковать истории:\n- `0` - нет\n- `1` - да\n"}}}},"rutube":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Название канала"},"photo":{"type":"string","format":"url","description":"URL аватара канала"},"id":{"type":"integer","description":"Уникальный идентификатор канала"},"type_social":{"type":"string","description":"Тип социальной сети\n"},"posts":{"type":"integer","description":"Можно ли публиковать посты:\n- `0` - нет\n- `1` - да\n"},"stories":{"type":"integer","description":"Можно ли публиковать истории:\n- `0` - нет\n- `1` - да\n"}}}},"tg":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Название канала/чата"},"photo":{"type":"string","format":"url","description":"URL аватара канала/чата"},"id":{"type":"string","description":"Уникальный идентификатор канала/чата"},"type_social":{"type":"string","description":"Тип социальной сети\n"},"posts":{"type":"integer","description":"Можно ли публиковать посты:\n- `0` - нет\n- `1` - да\n"},"stories":{"type":"integer","description":"Можно ли публиковать истории:\n- `0` - нет\n- `1` - да\n"}}}},"vk":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Название группы/страницы"},"photo":{"type":"string","format":"url","description":"URL аватара группы/страницы"},"id":{"type":"integer","description":"Уникальный идентификатор группы/страницы"},"type_social":{"type":"string","description":"Тип социальной сети\n"},"posts":{"type":"integer","description":"Можно ли публиковать посты:\n- `0` - нет\n- `1` - да\n"},"stories":{"type":"integer","description":"Можно ли публиковать истории:\n- `0` - нет\n- `1` - да\n","enum":[0,1]}}}}}}}}}}}}}},"400":{"description":"Ошибка запроса.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные заголовки\n- Некорректный формат запроса\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось выполнить запрос.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Загрузить файл на сервер

> Загружает изображение, видео или документ на сервер для последующего использования в постах.\
> После успешной загрузки возвращается JSON, который можно использовать в поле \`attachments\_json\` при создании поста. Передавать нужно массив с вложениями.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Uploads","description":"Группа методов для загрузки файлов на сервер\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/uploads.uploadFile":{"post":{"summary":"Загрузить файл на сервер","description":"Загружает изображение, видео или документ на сервер для последующего использования в постах.\nПосле успешной загрузки возвращается JSON, который можно использовать в поле `attachments_json` при создании поста. Передавать нужно массив с вложениями.\n","tags":["Uploads"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file","id_group","type"],"properties":{"file":{"type":"string","format":"binary","description":"**Обязательный**. Файл для загрузки (изображение, видео или документ).\n\nПоддерживаемые форматы:\n- **Изображения**: JPG, JPEG, PNG, GIF, WEBP\n- **Видео**: MP4, AVI, MOV, MKV, WEBM\n- **Документы**: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT\n"},"id_group":{"type":"string","description":"**Обязательный**. ID страницы или группы, к которой будет привязан файл.\nПолучается через метод `/v3/method/groups.getMy`.\n"},"type":{"type":"string","enum":["image","video","file"],"description":"**Обязательный**. Тип загружаемого файла:\n- `image` — изображение\n- `video` — видео\n- `file` — документ\n"}}}}}},"responses":{"200":{"description":"Файл успешно загружен.\nВозвращается объект с полем `response.attachments`, содержащим массив вложения `photo`, `video` или  `doc`. У каждого вложения могут быть свои параметры.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Статус ответа","enum":["success"]},"response":{"type":"object","properties":{"attachments":{"type":"array","description":"Массив вложения","items":{"type":"object","description":"Параметры вложения","properties":{"id":{"type":"integer","description":"Идентификатор вложения"},"type":{"type":"string","description":"Тип вложения"},"preview":{"type":"string","description":"Превью изображения"},"original":{"type":"string","description":"Оригинал изображения"},"owner_id":{"type":"integer","description":"ID владельца"},"access_key":{"type":"string","description":"Ключ доступа к данным"}}}}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Не передан файл\n- Не указан id_group\n- Не указан тип файла\n- Неподдерживаемый формат файла\n- Превышен максимальный размер файла\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"402":{"description":"Доступ запрещен.\nВозможные причины:\n- Недостаточно средств на балансе кабинета.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"403":{"description":"Доступ запрещен.\nВозможные причины:\n- Нет прав для загрузки файлов в указанную группу\n- Исчерпан лимит загрузок\n- Не включен \"Платный доступ\" в личном кабинете\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"413":{"description":"Файл слишком большой.\nПревышен максимальный допустимый размер файла.\n\nТекущие лимиты для фото:\n- максимальный размер фото — 10 МБ.\n\nТекущие лимиты для документа:\n- максимальный размер файла — 100 МБ.\n\nТекущие лимиты для видео:\n- **ВКонтакте**: максимальный размер видеозаписи — 100 МБ.\n- **Одноклассники**: максимальный размер видеозаписи — 50 МБ.\n- **Telegram**: максимальный размер видеозаписи или всех видеозаписей в посте — 50 МБ.\n- **Facebook**: максимальный размер видеозаписи — 50 МБ.\n- **Rutube**: максимальный размер видеозаписи — 100 МБ.\n- **Max**: максимальный размер видеозаписи — 100 МБ.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"415":{"description":"Неподдерживаемый тип файла.\nФормат файла не поддерживается для загрузки.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось загрузить файл.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Получить список запланированных постов

> Возвращает перечень запланированных постов пользователя с возможностью фильтрации, поиска и пагинации.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Posts","description":"Группа методов для работы с отложенными постами\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/posts.getList":{"get":{"summary":"Получить список запланированных постов","description":"Возвращает перечень запланированных постов пользователя с возможностью фильтрации, поиска и пагинации.\n","tags":["Posts"],"parameters":[{"name":"page","in":"query","description":"Номер страницы для пагинации.\n- Минимальное значение: `1`\n- По умолчанию: `1`\n","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","description":"Количество записей на странице.\n- Минимальное значение: `1`\n- Максимальное значение: `100`\n- По умолчанию: `20`\n","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"sort","in":"query","description":"Направление сортировки по дате публикации.\n- `asc` - по возрастанию (сначала старые)\n- `desc` - по убыванию (сначала новые)\n- По умолчанию: `desc`\n","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"id_group","in":"query","description":"Фильтр по ID страницы или группы.\nВозвращаются только посты для указанной группы.\n","required":false,"schema":{"type":"string"}},{"name":"type_social","in":"query","description":"Фильтр по типу социальной сети.\nДоступные значения:\n- `vk` - ВКонтакте\n- `tg` - Telegram\n- `ok` - Одноклассники\n- `ig_business` - Instagram Business\n- `max` - Max\n- `rutube` - Rutube\n- `fb` - Facebook\n","required":false,"schema":{"type":"string","enum":["vk","tg","ok","ig_business","max","rutube","fb"]}},{"name":"active_stop","in":"query","description":"Фильтр по статусу активности.\n- `0` - активные посты\n- `1` - остановленные посты\n","required":false,"schema":{"type":"string","enum":["0","1"]}},{"name":"post_day","in":"query","description":"Фильтр по типу расписания.\n- `everyday` - ежедневные посты\n- Конкретная дата в формате `Y-m-d` (например, `2024-01-15`)\n","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Фильтр по статусу поста.\n- `active` - только активные (не остановленные и с датой в будущем)\n- `inactive` - остановленные или уже опубликованные\n- `all` - все посты\n- По умолчанию: `all`\n","required":false,"schema":{"type":"string","enum":["active","inactive","all"],"default":"all"}},{"name":"search","in":"query","description":"Поиск по тексту поста.\nПоиск осуществляется по частичному совпадению.\n","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"date_from","in":"query","description":"Начальная дата для фильтрации (включительно).\nФормат: `Y-m-d H:i:s` или `Y-m-d`\nПример: `2024-01-01 00:00:00`\n","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"date_to","in":"query","description":"Конечная дата для фильтрации (включительно).\nФормат: `Y-m-d H:i:s` или `Y-m-d`\nПример: `2024-12-31 23:59:59`\n","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Успешный ответ. Возвращается объект с полем `response`, содержащим:\n- `items` — массив объектов с данными каждого поста\n- `count` — общее количество постов, соответствующих критериям\n- `page` — текущая страница\n- `limit` — количество записей на странице\n- `total_pages` — общее количество страниц\n- `filters_applied` — примененные фильтры (если были использованы)\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"items":{"type":"array","description":"Массив запланированных постов","items":{"type":"object","properties":{"id":{"type":"integer","description":"Уникальный идентификатор поста"},"id_group":{"type":"string","description":"ID страницы или группы"},"name":{"type":"string","description":"Название группы"},"name_autopost":{"type":"string","description":"Название поста"},"photo":{"type":"string","format":"url","description":"URL аватара группы (100x100)"},"date_post":{"type":"string","format":"date-time","description":"Дата и время запланированной публикации\n(в часовом поясе пользователя)\n"},"post_day":{"type":"string","description":"Тип расписания:\n- `everyday` - ежедневно\n- конкретная дата в формате Y-m-d\n"},"message":{"type":"string","description":"Текст поста"},"attachments":{"type":"string","description":"Вложения (устаревший формат).\nИспользуйте `attachments_json` для новых постов.\n"},"attachments_json":{"type":"array","description":"Массив вложений.\nПоддерживаемые типы: photo, video, audio, doc и т.д.\n","items":{"type":"object"}},"repost":{"type":"integer","description":"Флаг репоста:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"repost_object":{"type":"string","description":"Объект для репоста (wall, photo, video и т.д.)"},"repost_comment":{"type":"string","description":"Комментарий к репосту"},"signed":{"type":"integer","description":"Добавлять подпись от имени группы (VK):\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"mark_as_ads":{"type":"integer","description":"Флаг рекламной маркировки:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"close_comments":{"type":"integer","description":"Закрыть комментарии:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"wall_pin":{"type":"integer","description":"Закрепить пост на стене: (для `vk`, `tg`, `max`)\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"del_task":{"type":"integer","description":"Запланировано удаление поста после публикации:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"date_task":{"type":"integer","description":"Запланировано удаление поста по дате из сервиса:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"del_task_date":{"type":"string","description":"Дата удаления поста из сервиса:\n"},"stop_post":{"type":"integer","description":"Запланировано приостановление поста по дате из сервиса:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"stop_post_date":{"type":"string","description":"Дата приостановление поста из сервиса:\n"},"donut":{"type":"integer","description":"Доступно только для донов VK Donut:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"donut_type":{"type":"integer","description":"Тип доната VK Donut:\n- `0` - не выбрано\n- `1-5` - различные типы подписок\n"},"delete_sociate":{"type":"integer","description":"Запланировано удаление через время из соцсети:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"delete_clock":{"type":"string","description":"Часы для удаления"},"delete_minutes":{"type":"string","description":"Минуты для удаления"},"status_post":{"type":"string","description":"Статус активности:\n- `0` - активен\n- `1` - остановлен\n","enum":["0","1"]},"date_create":{"type":"string","format":"date-time","description":"Дата создания поста"},"type_social":{"type":"string","description":"Тип социальной сети:\n- `vk` - ВКонтакте\n- `tg` - Telegram\n- `ok` - Одноклассники\n- `ig_business` - Instagram Business\n- `max` - Max\n- `rutube` - Rutube\n- `fb` - Facebook\n","enum":["vk","tg","ok","ig_business","max","rutube","fb"]},"primary_attachments_mode":{"type":"integer","description":"Режим вложений:\n- `0` - стандартный\n- `1` - альтернативный\n"},"mute_notifications":{"type":"integer","description":"Отключить уведомления:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"juridical_details":{"type":"object","description":"Данные для рекламной маркировки (ОРД ВК).\n","properties":{"fio":{"type":"string","description":"ФИО или наименование"},"inn":{"type":"string","description":"ИНН"},"kpp":{"type":"string","description":"КПП"},"posts_summ":{"type":"string","description":"Сумма поста"},"type":{"type":"string","description":"Тип контрагента:\n- `ip` - ИП\n- `juridical` - юридическое лицо\n- `physical` - физическое лицо\n","enum":["ip","juridical","physical"]},"flags":{"type":"array","items":{"type":"string"}},"kktus":{"type":"array","items":{"type":"string"}},"phone":{"type":"string","description":"Телефон"},"person":{"type":"array","items":{"type":"string"}},"foreign":{"type":"string","description":"Иностранный контрагент:\n- `true` - да\n- `false` - нет\n","enum":["true","false"]},"vat_rate":{"type":"string","description":"Ставка НДС:\n- `without_vat` - без НДС\n- `0`, `5`, `7`, `10`, `20`, `22` - процентная ставка\n"},"foreign_inn":{"type":"string","description":"Иностранный ИНН"},"contract_date":{"type":"string","description":"Дата договора"},"contract_summ":{"type":"string","description":"Сумма договора"},"type_marking":{"type":"string","description":"Тип маркировки:\n- `0` - без маркировки\n- `1-5` - различные типы маркировки\n"},"description_ord":{"type":"string","description":"Описание товара или услуги. **Обязательно**, если выбран ККТУ `30.15.1`\n"},"contract_serial":{"type":"string","description":"Серия договора"},"contract_date_end":{"type":"string","description":"Дата окончания договора"},"foreign_epayment_method":{"type":"string","description":"Метод электронного платежа для иностранцев"},"foreign_oksm_country_code":{"type":"string","description":"Код страны по ОКСМ"},"foreign_registration_number":{"type":"string","description":"Регистрационный номер иностранного контрагента"}}},"co_owner":{"type":"integer","description":"Флаг соавторства (VK):\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"co_owner_ids":{"type":"string","description":"ID соавторов (через запятую)"}}}},"count":{"type":"integer","description":"Общее количество постов, соответствующих критериям"},"page":{"type":"integer","description":"Текущая страница"},"limit":{"type":"integer","description":"Количество записей на странице"},"total_pages":{"type":"integer","description":"Общее количество страниц"},"filters_applied":{"type":"object","description":"Примененные фильтры (возвращаются, если были использованы)"}}}}}}}},"400":{"description":"Ошибка запроса.\nВозможные причины:\n- Токен не передан в заголовке `Authorization` или параметре `access_token`\n- Отсутствуют обязательные заголовки\n- Некорректный формат параметров\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n- Пользователь не найден\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера.\nВозможные причины:\n- Ошибка базы данных\n- Проблемы с подключением\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}
```

## Получить информацию о посте

> Возвращает информацию о посте по его идентификатору.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Posts","description":"Группа методов для работы с отложенными постами\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/posts.getById":{"get":{"summary":"Получить информацию о посте","description":"Возвращает информацию о посте по его идентификатору.\n","tags":["Posts"],"parameters":[{"name":"id","in":"query","description":"Идентификатор публикации\n","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Успешный ответ. Возвращается объект с полем `response`, содержащим:\n- `items` — массив объекта с данными страницы/группы.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"items":{"type":"array","description":"Массив с данными поста","items":{"type":"object","properties":{"id":{"type":"integer","description":"Уникальный идентификатор поста"},"id_group":{"type":"string","description":"ID страницы или группы"},"name":{"type":"string","description":"Название группы"},"name_autopost":{"type":"string","description":"Название поста"},"photo":{"type":"string","format":"url","description":"URL аватара группы (100x100)"},"date_post":{"type":"string","format":"date-time","description":"Дата и время запланированной публикации\n(в часовом поясе пользователя)\n"},"post_day":{"type":"string","description":"Тип расписания:\n- `everyday` - ежедневно\n- конкретная дата в формате Y-m-d\n"},"message":{"type":"string","description":"Текст поста"},"attachments":{"type":"string","description":"Вложения (устаревший формат).\nИспользуйте `attachments_json` для новых постов.\n"},"attachments_json":{"type":"array","description":"Массив вложений.\nПоддерживаемые типы: photo, video, audio, doc и т.д.\n","items":{"type":"object"}},"repost":{"type":"integer","description":"Флаг репоста:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"repost_object":{"type":"string","description":"Объект для репоста (wall, photo, video и т.д.)"},"repost_comment":{"type":"string","description":"Комментарий к репосту"},"signed":{"type":"integer","description":"Добавлять подпись от имени группы (VK):\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"mark_as_ads":{"type":"integer","description":"Флаг рекламной маркировки:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"close_comments":{"type":"integer","description":"Закрыть комментарии:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"wall_pin":{"type":"integer","description":"Закрепить пост на стене: (для `vk`, `tg`, `max`)\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"del_task":{"type":"integer","description":"Запланировано удаление поста после публикации:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"date_task":{"type":"integer","description":"Запланировано удаление поста по дате из сервиса:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"del_task_date":{"type":"string","description":"Дата удаления поста из сервиса:\n"},"stop_post":{"type":"integer","description":"Запланировано приостановление поста по дате из сервиса:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"stop_post_date":{"type":"string","description":"Дата приостановление поста из сервиса:\n"},"donut":{"type":"integer","description":"Доступно только для донов VK Donut:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"donut_type":{"type":"integer","description":"Тип доната VK Donut:\n- `0` - не выбрано\n- `1-5` - различные типы подписок\n"},"delete_sociate":{"type":"integer","description":"Запланировано удаление через время из соцсети:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"delete_clock":{"type":"string","description":"Часы для удаления"},"delete_minutes":{"type":"string","description":"Минуты для удаления"},"status_post":{"type":"string","description":"Статус активности:\n- `0` - активен\n- `1` - остановлен\n","enum":["0","1"]},"date_create":{"type":"string","format":"date-time","description":"Дата создания поста"},"type_social":{"type":"string","description":"Тип социальной сети:\n- `vk` - ВКонтакте\n- `tg` - Telegram\n- `ok` - Одноклассники\n- `ig_business` - Instagram Business\n- `max` - Max\n- `rutube` - Rutube\n- `fb` - Facebook\n","enum":["vk","tg","ok","ig_business","max","rutube","fb"]},"primary_attachments_mode":{"type":"integer","description":"Режим вложений:\n- `0` - стандартный\n- `1` - альтернативный\n"},"mute_notifications":{"type":"integer","description":"Отключить уведомления:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"juridical_details":{"type":"object","description":"Данные для рекламной маркировки (ОРД ВК).\n","properties":{"fio":{"type":"string","description":"ФИО или наименование"},"inn":{"type":"string","description":"ИНН"},"kpp":{"type":"string","description":"КПП"},"posts_summ":{"type":"string","description":"Сумма поста"},"type":{"type":"string","description":"Тип контрагента:\n- `ip` - ИП\n- `juridical` - юридическое лицо\n- `physical` - физическое лицо\n","enum":["ip","juridical","physical"]},"flags":{"type":"array","items":{"type":"string"}},"kktus":{"type":"array","items":{"type":"string"}},"phone":{"type":"string","description":"Телефон"},"person":{"type":"array","items":{"type":"string"}},"foreign":{"type":"string","description":"Иностранный контрагент:\n- `true` - да\n- `false` - нет\n","enum":["true","false"]},"vat_rate":{"type":"string","description":"Ставка НДС:\n- `without_vat` - без НДС\n- `0`, `5`, `7`, `10`, `20`, `22` - процентная ставка\n"},"foreign_inn":{"type":"string","description":"Иностранный ИНН"},"contract_date":{"type":"string","description":"Дата договора"},"contract_summ":{"type":"string","description":"Сумма договора"},"type_marking":{"type":"string","description":"Тип маркировки:\n- `0` - без маркировки\n- `1-5` - различные типы маркировки\n"},"description_ord":{"type":"string","description":"Описание товара или услуги. **Обязательно**, если выбран ККТУ `30.15.1`\n"},"contract_serial":{"type":"string","description":"Серия договора"},"contract_date_end":{"type":"string","description":"Дата окончания договора"},"foreign_epayment_method":{"type":"string","description":"Метод электронного платежа для иностранцев"},"foreign_oksm_country_code":{"type":"string","description":"Код страны по ОКСМ"},"foreign_registration_number":{"type":"string","description":"Регистрационный номер иностранного контрагента"}}},"co_owner":{"type":"integer","description":"Флаг соавторства (VK):\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"co_owner_ids":{"type":"string","description":"ID соавторов (через запятую)"}}}}}}}}}}},"400":{"description":"Ошибка запроса.\nВозможные причины:\n- Токен не передан в заголовке `Authorization` или параметре `access_token`\n- Отсутствуют обязательные заголовки\n- Некорректный формат параметров\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n- Пользователь не найден\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера.\nВозможные причины:\n- Ошибка базы данных\n- Проблемы с подключением\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}
```

## Запланировать публикацию поста

> Создаёт пост в разделе «Отложенные посты» на указанной странице/группе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Posts","description":"Группа методов для работы с отложенными постами\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/posts.create":{"post":{"summary":"Запланировать публикацию поста","description":"Создаёт пост в разделе «Отложенные посты» на указанной странице/группе.\n","tags":["Posts"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id_group","type_social","post_day"],"properties":{"id_group":{"type":"string","description":"**Обязательный**. ID страницы или группы, куда будет опубликован пост.\nПолучается через метод `/v3/method/groups.getMy`.\n"},"name_autopost":{"type":"string","description":"Название поста для отображения в запланированных постах.\nЕсли не указано, будет сгенерировано автоматически.\n"},"primary_attachments_mode":{"type":"integer","enum":[0,1],"description":"Режим отображения вложений: (для `vk`)\n- `0` — сетка\n- `1` — карусель\n"},"type_social":{"type":"string","enum":["vk","tg","ok","ig_business","max","rutube","fb"],"description":"**Обязательный**. Социальная сеть для публикации:\n- `vk` — ВКонтакте\n- `tg` — Telegram\n- `ok` — Одноклассники\n- `ig_business` — Instagram Business\n- `max` — Max\n- `rutube` — Rutube\n- `fb` — Facebook\n"},"date_post":{"type":"string","description":"Дата и время публикации. Если не задано, то публикуется через минуту. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ`\n"},"post_day":{"type":"string","enum":["oneraz","everyday","budday","weekends","every2day","every3day","every4day","every5day","every6day","everyweek","every8day","every9day","every10day","every11day","every12day","every2week","every3week","everymonth","every2month","every3month","every4month","every5month","every6month","every7month","every8month","every9month","every10month","every11month","every12month"],"description":"**Обязательный**. Периодичность публикации:\n- `oneraz` — однократно\n- `everyday` — ежедневно\n- `budday` — по будням\n- `weekends` — по выходным\n- `every2day` — раз в 2 дня\n- `every3day` — раз в 3 дня\n- и так далее (цифра указывает интервал)\n"},"message":{"type":"string","description":"Текст публикуемого поста.\nПоддерживается форматирование для `tg` и `max`\n\nПоддерживаемое форматирование `HTML` в тексте:\n- tg — `<b><i><strike><u><span><a><blockquote><blockquote_expandable><code><pre>`\n- max — `<b><i><code><blockquote><a><h1><strike><u>`\n\nИнформация по тегам:\n- `<b>text</b>` — жирный\n- `<i>text</i>` — курсив\n- `<strike>text</strike>` — зачёркнутый\n- `<span class=\"tg-spoiler\">text</span>` — скрытый\n- `<a href=\"link\">text</a>` — ссылка\n- `<blockquote class=\"blockquote\">text<blockquote>` — цитата\n- `<blockquote_expandable class=\"expandable\">text<blockquote_expandable>` — цитата с раскрытием\n- `<pre class=\"code-block\">text</pre>` — код\n- `<code>text</code>` — моноширинный\n- `<h1 class=\"title\">text</h1>` — заголовок\n"},"repost_object":{"type":"string","description":"Ссылка на пост для репоста.\n\nПоддерживаемые соцсети:\n- `vk` — ВКонтакте\n- `tg` — Telegram\n- `ok` — Одноклассники\n"},"repost_comment":{"type":"string","description":"Комментарий к репосту (если выполняется репост).\n\nПоддерживаемые соцсети:\n- `vk` — ВКонтакте\n- `tg` — Telegram\n- `ok` — Одноклассники\n"},"delete_post_date":{"type":"string","description":"Дата автоматического удаления поста из сервиса (если требуется).\nФормат: `ГГГГ-ММ-ДД`\n"},"delete_clock":{"type":"string","description":"Час автоматического удаления поста из соцсети.\nЗначение от 0 до 4382.\n"},"delete_minutes":{"type":"string","description":"Минута автоматического удаления поста из соцсети.\nЗначение от 0 до 59.\n"},"stop_post_date":{"type":"string","description":"Дата автоматического приостановления поста на сервисе (если требуется).\nФормат: `ГГГГ-ММ-ДД`\n"},"signed":{"type":"integer","enum":[0,1],"description":"Добавлять подпись от имени автора: (для `vk`)\n- `0` — не добавлять\n- `1` — добавлять\n"},"mute_notifications":{"type":"integer","enum":[0,1],"description":"Отключить уведомления о публикации: (для `vk`, `ok`, `tg`, `max`)\n- `0` — уведомления включены\n- `1` — уведомления отключены\n"},"close_comments":{"type":"integer","enum":[0,1],"description":"Закрыть комментарии к посту: (для `vk`, `ok`)\n- `0` — комментарии открыты\n- `1` — комментарии закрыты\n"},"wall_pin":{"type":"integer","enum":[0,1],"description":"Закрепить пост на стене: (для `vk`, `tg`, `max`)\n- `0` — не закреплять\n- `1` — закрепить\n"},"wall_unpin_date":{"type":"string","description":"Дата и время открепления поста (если он был закреплён).\nФормат: `ГГГГ-ММ-ДД ЧЧ:ММ` (для `vk`, `tg`, `max`)\n"},"co_owner_ids":{"type":"string","description":"Пригласить соавторов для `vk`. Укажите VK ID соавторов через запятую. ID сообществ указывайте через знак \"-\". Лимит 4 соавтора!\n"},"del_task":{"type":"integer","enum":[0,1],"description":"Удалить пост из сервиса после публикации:\n- `0` — оставить в сервисе\n- `1` — удалить после публикации из сервиса\n"},"donut_type":{"type":"integer","enum":[0,1,2,3,4,5,6,7],"description":"Видимость для VK Donut: (для `vk`)\n- `0` — Неограниченно\n- `1` — На 1 день\n- `2` — На 2 дня\n- `3` — На 3 дня\n- `4` — На 4 дня\n- `5` — На 5 дней\n- `6` — На 6 дней\n- `7` — На 7 дней\n"},"attachments":{"type":"string","description":"**Старый формат**. Любые вложения из VK: (для `vk`)\n\nЕсли объектов несколько, укажите их через запятую `,`\n\nФормат описания медиавложения: `{type}{owner_id}_{media_id}`, где:\n- `type` — тип медиавложения:\n  - `photo` — фотография\n  - `video` — видеозапись\n  - `audio` — аудиозапись\n  - `doc` — файл\n  - `poll` — опрос\n  - `audio_playlist` — плейлист с аудио\n  - `owner_id` — идентификатор владельца медиавложения. Идентификатор сообщества должен начинаться со знака `-`\n  - `media_id` — идентификатор медиавложения\n\nДанный формат позволяет передавать любые вложения из VK. Это тот же формат, который используется в VK API.\n"},"attachments_json":{"type":"object","description":"**Новый формат**. Визуальные вложения к посту (изображения, видео, документы и т.д.).\n\nМассив объектов с данными о вложениях.\n\nКаждый объект массива содержит:\n\n**Фото** (для `vk`, `ok`, `fb`, `ig_business`, `tg`, `max`)\n- `id` (number) — уникальный идентификатор вложения\n- `type` (string) — тип вложения (`photo`)\n- `preview` (string) — URL превью изображения\n- `original` (string) — URL оригинального изображения\n- `owner_id` (number) — ID владельца\n- `access_key` (string) — ключ доступа\n\n**Видео** (для `vk`, `ok`, `fb`, `tg`, `rutube`, `max`)\n- `id` (number) — уникальный идентификатор вложения\n- `size` (number) — размер видео в байтах\n- `type` (string) — тип вложения (`video`)\n- `title` (string) — название видео\n- `preview` (string) — URL превью изображения\n- `duration` (number) — длительность в секундах\n- `owner_id` (number) — ID владельца\n- `type_video` (string) — тип видео (`video` или `short_video`)\n\n**Аудио** (для `vk`)\n- `id` (number) — уникальный идентификатор вложения\n- `type` (string) — тип вложения (`audio`)\n- `title` (string) — название\n- `artist` (string) — исполнитель\n- `duration` (number) — длительность в секундах\n- `owner_id` (number) — ID владельца\n\n**Документ** (для `vk`, `tg`, `max`)\n- `id` (number) — уникальный идентификатор вложения\n- `ext` (string) — формат файла, например `docx`\n- `url` (string) — прямая ссылка на файл\n- `size` (number) — размер файла в байтах\n- `type` (string) — тип вложения (`doc`)\n- `title` (string) — название документа\n- `owner_id` (number) — ID владельца\n\n**Опрос** (для `vk`, `ok`, `tg`)\n- `id` (number) — всегда одно значение `600`\n- `type` (string) — тип вложения (`poll`)\n- `answers` (items) — массив ответов `[\"Первый вариант\", \"Второй вариант\", \"Третий вариант\"]`\n- `question` (string) — заголовок опроса\n\n**Карта** (для `vk`, `ok`)\n- `id` (number) — всегда одно значение `700`\n- `type` (string) — тип вложения (`geo`)\n- `lat` (items) — широта\n- `long` (items) — долгота\n- `title` (string) — название местоположения\n\n**Источник** (для `vk`)\n- `id` (number) — всегда одно значение `900`\n- `url` (string) — ссылка на источник\n- `type` (string) — тип вложения (`copyright`)\n\n**Первый комментарий** (для `vk`)\n- `id` (number) — всегда одно значение `800`\n- `text` (string) — текст комментария\n- `type` (string) — тип вложения (`comment`)\n\n**Сниппет ссылки** (для `vk`, `ok`, `fb`, `tg`)\n- `id` (number) — всегда одно значение `555`\n- `url` (string) — HTTPS ссылка\n- `type` (string) — тип вложения (`link`)\n- `image` (string) — URL превью изображения\n- `domain` (string) — домен страницы, например, `vposter.ru`\n- `title` (string) — название страницы\n- `description` (string) — короткое описание страницы\n- `link_photo_id` (string) — идентификатор изображения в VK\n\n**Кнопка действия** (для `vk`)\n- `id` (number) — всегда одно значение `378`\n- `type` (string) — тип вложения (`action_button`)\n- `text_button` (string) — текст кнопки (`Написать сообществу (открывает чат с сообществом)`, `Больше постов — в канале (переводит в канал сообщества)`, `Смотреть товары (ведёт на витрину магазина)`, `Поддержать автора (открывает список уровней VK Donut)`)\n- `type_button` (string) — тип кнопки (`message_to_community`, `message_to_channel`, `open_market`, `donut_levels`)\n\n**Кнопки** (для `tg`, `max`)\n- `id` (number) — всегда одно значение `1000`\n- `type` (string) — тип вложения (`button_tg`)\n- `buttons_link` (items) — массив ссылок по порядку от 1-10 (`[\"https://vposter.ru/\", \"https://vposter.ru/\"]`)\n- `buttons_name` (items) — массив название по порядку от 1-10 (`[\"Кнопка 1\", \"Кнопка 2\"]`)\n\n**Важно**: Используйте либо `attachments` (старый формат), либо `attachments_json` (новый формат). Не используйте оба параметра одновременно.\n"},"ads_items":{"type":"object","description":"Параметры маркировки рекламы в соответствии с требованиями ЕРИР (Единый реестр интернет-рекламы).\n","properties":{"fio":{"type":"string","description":"ФИО физического лица или наименование юридического лица.\n\nДля физических лиц и ИП:\n- Допустимы русские буквы, пробелы, дефисы, апострофы\n- Не должно содержать двойных дефисов или двойных пробелов\n- Не должно начинаться или заканчиваться дефисом или пробелом\n- Должно содержать хотя бы одну букву\n\nДля юридических лиц:\n- Допустимы русские/английские буквы, цифры, пробелы, знаки пунктуации\n- Не должно содержать двойных дефисов или двойных пробелов\n- Не должно начинаться или заканчиваться дефисом или пробелом\\\n- Должно содержать хотя бы одну букву или цифру\n"},"inn":{"type":"string","description":"ИНН физического лица или компании (обязателен для неиностранных контрагентов).\n\nПравила валидации:\n- Только цифры\n- Для юридических лиц (type = juridical) - строго 10 цифр\n- Для ИП (type = ip) и физических лиц (type = physical) - 10 или 12 цифр\n"},"kpp":{"type":"string","description":"КПП для компаний (только для юридических лиц).\nНеобязательное поле.\nexample: \"770101001\"\n"},"posts_summ":{"type":"string","description":"Сумма поста (с НДС, если облагается) в рублях.\nМаксимальное значение: 300000\n"},"type":{"type":"string","description":"Тип организации.\n\nВозможные значения:\n- `ip` - Индивидуальный предприниматель\n- `juridical` - Юридическое лицо\n- `physical` - Физическое лицо\n","enum":["ip","juridical","physical"]},"flags":{"type":"array","description":"Массив флагов для дополнительных параметров.\n                          \nВозможные значения в массиве:\n- `social` - Социальная реклама\n- `social_quota` - Социальная реклама по квоте\n","items":{"type":"string","enum":["social","social_quota"]}},"kktus":{"type":"array","description":"ККТУ рекламы (Классификатор Категорий Товаров и Услуг).\nОбязательное поле. Должен содержать один элемент. Получается через метод `/v3/method/dictionary.getKktu`.\n","items":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"}},"phone":{"type":"string","description":"Номер телефона.\n\nПравила валидации:\n- Должен начинаться с символа `+`\n- Длина от 8 до 35 символов\n- Разрешены символы: цифры, пробелы, `(`, `)`, `-`\n- Количество цифр от 8 до 15\nexample: \"+7 123 456-78-90\"\n"},"person":{"type":"array","description":"Тип лица в рекламной цепочке.\nВсегда должен содержать значение \"advertiser\".\n","items":{"type":"string","enum":["advertiser"]}},"foreign":{"type":"string","description":"Признак иностранного контрагента.\n\nВозможные значения:\n- `true` - иностранный контрагент\n- `false` - российский контрагент\n","enum":["true","false"]},"vat_rate":{"type":"string","description":"Ставка НДС.\n\nВозможные значения:\n- `without_vat` - без НДС\n- `0` - 0%\n- `5` - 5%\n- `7` - 7%\n- `10` - 10%\n- `20` - 20%\n- `22` - 22%\n","enum":["without_vat","0","5","7","10","20","22"]},"foreign_inn":{"type":"string","description":"Иностранный ИНН (для иностранных юридических лиц).\nНеобязательное поле, но для иностранных юрлиц требуется либо `foreign_inn`, либо `foreign_registration_number`.\n"},"contract_date":{"type":"string","description":"Дата договора в формате YYYY-MM-DD.\nОбязательное поле.\n","format":"date"},"contract_summ":{"type":"string","description":"Сумма договора (с НДС, если облагается) в рублях.\nМаксимальное значение: 300000\n"},"type_marking":{"type":"string","description":"Тип маркировки.\n\nВозможные значения от 0 до 5:\n- `0` - В выпадающем меню\n- `1` - В текстовом блоке (в конце)\n- `2` - В выпадающем меню + в текстовом блоке (в конце)\n- `3` - В текстовом блоке (в начале)\n- `4` - В кликовой ссылке (в начале текстового блока)\n- `5` - В кликовой ссылке (в конце текстового блока)\n","enum":["0","1","2","3","4","5"]},"description_ord":{"type":"string","description":"Описание товара или услуги. **Обязательно**, если выбран ККТУ `30.15.1`\n"},"contract_serial":{"type":"string","description":"Серийный номер договора.\nНеобязательное поле.\n"},"contract_date_end":{"type":"string","description":"Дата окончания договора в формате YYYY-MM-DD.\nНеобязательное поле.\n","format":"date"},"foreign_epayment_method":{"type":"string","description":"Номер электронного средства платежа (для иностранных физических лиц).\nНеобязательное поле, но для иностранных физлиц требуется либо `phone`, либо `foreign_epayment_method`.\n"},"foreign_oksm_country_code":{"type":"string","description":"Код страны по ОКСМ (Общероссийский классификатор стран мира).\nОбязательное поле для иностранных контрагентов.\nДолжен содержать 3 цифры. Получается через метод `/v3/method/dictionary.getCountries`.\n","pattern":"^\\d{3}$"},"foreign_registration_number":{"type":"string","description":"Регистрационный номер либо его аналог (для иностранных юридических лиц).\nНеобязательное поле, но для иностранных юрлиц требуется либо `foreign_inn`, либо `foreign_registration_number`.\n"}},"required":["fio","type","kktus","person","posts_summ","contract_summ","vat_rate","contract_date","type_marking"]}}}}}},"responses":{"200":{"description":"Пост успешно запланирован.\nОтвет может содержать идентификатор созданного поста.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"post_id":{"type":"integer","description":"Идентификатор созданного поста"},"created_at":{"type":"string","description":"Дата создания поста. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"409":{"description":"Место занято.\nВозможные причины:\n- Пост уже запланирован в это время на данной странице.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"429":{"description":"Достингут лимит постов.\nВозможные причины:\n- Одновременно допускается не более 25 публикаций на одно время на разных страницах.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось создать пост.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Отредактировать пост

> Редактирует пост в разделе «Отложенные посты» на указанной странице/группе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Posts","description":"Группа методов для работы с отложенными постами\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/posts.edit":{"put":{"summary":"Отредактировать пост","description":"Редактирует пост в разделе «Отложенные посты» на указанной странице/группе.\n","tags":["Posts"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","id_group","type_social","date_post","post_day"],"properties":{"id":{"type":"integer","description":"**Обязательный**. ID поста на сервисе\n"},"id_group":{"type":"string","description":"**Обязательный**. ID страницы или группы, куда будет опубликован пост.\nПолучается через метод `/v3/method/groups.getMy`.\n"},"name_autopost":{"type":"string","description":"Название поста для отображения в запланированных постах.\nЕсли не указано, будет сгенерировано автоматически.\n"},"primary_attachments_mode":{"type":"integer","enum":[0,1],"description":"Режим отображения вложений: (для `vk`)\n- `0` — сетка\n- `1` — карусель\n"},"type_social":{"type":"string","enum":["vk","tg","ok","ig_business","max","rutube","fb"],"description":"**Обязательный**. Социальная сеть для публикации:\n- `vk` — ВКонтакте\n- `tg` — Telegram\n- `ok` — Одноклассники\n- `ig_business` — Instagram Business\n- `max` — Max\n- `rutube` — Rutube\n- `fb` — Facebook\n"},"date_post":{"type":"string","description":"**Обязательный**. Дата и время публикации.\nФормат: `ГГГГ-ММ-ДД ЧЧ:ММ`\n"},"post_day":{"type":"string","enum":["oneraz","everyday","budday","weekends","every2day","every3day","every4day","every5day","every6day","everyweek","every8day","every9day","every10day","every11day","every12day","every2week","every3week","everymonth","every2month","every3month","every4month","every5month","every6month","every7month","every8month","every9month","every10month","every11month","every12month"],"description":"**Обязательный**. Периодичность публикации:\n- `oneraz` — однократно\n- `everyday` — ежедневно\n- `budday` — по будням\n- `weekends` — по выходным\n- `every2day` — раз в 2 дня\n- `every3day` — раз в 3 дня\n- и так далее (цифра указывает интервал)\n"},"message":{"type":"string","description":"Текст публикуемого поста.\nПоддерживается форматирование для `tg` и `max`\n\nПоддерживаемое форматирование `HTML` в тексте:\n- tg — `<b><i><strike><u><span><a><blockquote><blockquote_expandable><code><pre>`\n- max — `<b><i><code><blockquote><a><h1><strike><u>`\n\nИнформация по тегам:\n- `<b>text</b>` — жирный\n- `<i>text</i>` — курсив\n- `<strike>text</strike>` — зачёркнутый\n- `<span class=\"tg-spoiler\">text</span>` — скрытый\n- `<a href=\"link\">text</a>` — ссылка\n- `<blockquote class=\"blockquote\">text<blockquote>` — цитата\n- `<blockquote_expandable class=\"expandable\">text<blockquote_expandable>` — цитата с раскрытием\n- `<pre class=\"code-block\">text</pre>` — код\n- `<code>text</code>` — моноширинный\n- `<h1 class=\"title\">text</h1>` — заголовок\n"},"repost_object":{"type":"string","description":"Ссылка на пост для репоста.\n\nПоддерживаемые соцсети:\n- `vk` — ВКонтакте\n- `tg` — Telegram\n- `ok` — Одноклассники\n"},"repost_comment":{"type":"string","description":"Комментарий к репосту (если выполняется репост).\n\nПоддерживаемые соцсети:\n- `vk` — ВКонтакте\n- `tg` — Telegram\n- `ok` — Одноклассники\n"},"delete_post_date":{"type":"string","description":"Дата автоматического удаления поста из сервиса (если требуется).\nФормат: `ГГГГ-ММ-ДД`\n"},"delete_clock":{"type":"string","description":"Час автоматического удаления поста из соцсети.\nЗначение от 0 до 4382.\n"},"delete_minutes":{"type":"string","description":"Минута автоматического удаления поста из соцсети.\nЗначение от 0 до 59.\n"},"stop_post_date":{"type":"string","description":"Дата автоматического приостановления поста на сервисе (если требуется).\nФормат: `ГГГГ-ММ-ДД`\n"},"signed":{"type":"integer","enum":[0,1],"description":"Добавлять подпись от имени автора: (для `vk`)\n- `0` — не добавлять\n- `1` — добавлять\n"},"mute_notifications":{"type":"integer","enum":[0,1],"description":"Отключить уведомления о публикации: (для `vk`, `ok`, `tg`, `max`)\n- `0` — уведомления включены\n- `1` — уведомления отключены\n"},"close_comments":{"type":"integer","enum":[0,1],"description":"Закрыть комментарии к посту: (для `vk`, `ok`)\n- `0` — комментарии открыты\n- `1` — комментарии закрыты\n"},"wall_pin":{"type":"integer","enum":[0,1],"description":"Закрепить пост на стене: (для `vk`, `tg`, `max`)\n- `0` — не закреплять\n- `1` — закрепить\n"},"wall_unpin_date":{"type":"string","description":"Дата и время открепления поста (если он был закреплён).\nФормат: `ГГГГ-ММ-ДД ЧЧ:ММ` (для `vk`, `tg`, `max`)\n"},"co_owner_ids":{"type":"string","description":"Пригласить соавторов для `vk`. Укажите VK ID соавторов через запятую. ID сообществ указывайте через знак \"-\". Лимит 4 соавтора!\n"},"del_task":{"type":"integer","enum":[0,1],"description":"Удалить пост из сервиса после публикации:\n- `0` — оставить в сервисе\n- `1` — удалить после публикации из сервиса\n"},"donut_type":{"type":"integer","enum":[0,1,2,3,4,5,6,7],"description":"Видимость для VK Donut: (для `vk`)\n- `0` — Неограниченно\n- `1` — На 1 день\n- `2` — На 2 дня\n- `3` — На 3 дня\n- `4` — На 4 дня\n- `5` — На 5 дней\n- `6` — На 6 дней\n- `7` — На 7 дней\n"},"attachments":{"type":"string","description":"**Старый формат**. Любые вложения из VK: (для `vk`)\n\nЕсли объектов несколько, укажите их через запятую `,`\n\nФормат описания медиавложения: `{type}{owner_id}_{media_id}`, где:\n- `type` — тип медиавложения:\n  - `photo` — фотография\n  - `video` — видеозапись\n  - `audio` — аудиозапись\n  - `doc` — файл\n  - `poll` — опрос\n  - `audio_playlist` — плейлист с аудио\n  - `owner_id` — идентификатор владельца медиавложения. Идентификатор сообщества должен начинаться со знака `-`\n  - `media_id` — идентификатор медиавложения\n\nДанный формат позволяет передавать любые вложения из VK. Это тот же формат, который используется в VK API.\n"},"attachments_json":{"type":"string","description":"**Новый формат**. Визуальные вложения к посту (изображения, видео, документы и т.д.).\n\nМассив объектов с данными о вложениях.\n\nКаждый объект массива содержит:\n\n**Фото** (для `vk`, `ok`, `fb`, `ig_business`, `tg`, `max`)\n- `id` (number) — уникальный идентификатор вложения\n- `type` (string) — тип вложения (`photo`)\n- `preview` (string) — URL превью изображения\n- `original` (string) — URL оригинального изображения\n- `owner_id` (number) — ID владельца\n- `access_key` (string) — ключ доступа\n\n**Видео** (для `vk`, `ok`, `fb`, `tg`, `rutube`, `max`)\n- `id` (number) — уникальный идентификатор вложения\n- `size` (number) — размер видео в байтах\n- `type` (string) — тип вложения (`video`)\n- `title` (string) — название видео\n- `preview` (string) — URL превью изображения\n- `duration` (number) — длительность в секундах\n- `owner_id` (number) — ID владельца\n- `type_video` (string) — тип видео (`video` или `short_video`)\n\n**Аудио** (для `vk`)\n- `id` (number) — уникальный идентификатор вложения\n- `type` (string) — тип вложения (`audio`)\n- `title` (string) — название\n- `artist` (string) — исполнитель\n- `duration` (number) — длительность в секундах\n- `owner_id` (number) — ID владельца\n\n**Документ** (для `vk`, `tg`, `max`)\n- `id` (number) — уникальный идентификатор вложения\n- `ext` (string) — формат файла, например `docx`\n- `url` (string) — прямая ссылка на файл\n- `size` (number) — размер файла в байтах\n- `type` (string) — тип вложения (`doc`)\n- `title` (string) — название документа\n- `owner_id` (number) — ID владельца\n\n**Опрос** (для `vk`, `ok`, `tg`)\n- `id` (number) — всегда одно значение `600`\n- `type` (string) — тип вложения (`poll`)\n- `answers` (items) — массив ответов `[\"Первый вариант\", \"Второй вариант\", \"Третий вариант\"]`\n- `question` (string) — заголовок опроса\n\n**Карта** (для `vk`, `ok`)\n- `id` (number) — всегда одно значение `700`\n- `type` (string) — тип вложения (`geo`)\n- `lat` (items) — широта\n- `long` (items) — долгота\n- `title` (string) — название местоположения\n\n**Источник** (для `vk`)\n- `id` (number) — всегда одно значение `900`\n- `url` (string) — ссылка на источник\n- `type` (string) — тип вложения (`copyright`)\n\n**Первый комментарий** (для `vk`)\n- `id` (number) — всегда одно значение `800`\n- `text` (string) — текст комментария\n- `type` (string) — тип вложения (`comment`)\n\n**Сниппет ссылки** (для `vk`, `ok`, `fb`, `tg`)\n- `id` (number) — всегда одно значение `555`\n- `url` (string) — HTTPS ссылка\n- `type` (string) — тип вложения (`link`)\n- `image` (string) — URL превью изображения\n- `domain` (string) — домен страницы, например, `vposter.ru`\n- `title` (string) — название страницы\n- `description` (string) — короткое описание страницы\n- `link_photo_id` (string) — идентификатор изображения в VK\n\n**Кнопка действия** (для `vk`)\n- `id` (number) — всегда одно значение `378`\n- `type` (string) — тип вложения (`action_button`)\n- `text_button` (string) — текст кнопки (`Написать сообществу (открывает чат с сообществом)`, `Больше постов — в канале (переводит в канал сообщества)`, `Смотреть товары (ведёт на витрину магазина)`, `Поддержать автора (открывает список уровней VK Donut)`)\n- `type_button` (string) — тип кнопки (`message_to_community`, `message_to_channel`, `open_market`, `donut_levels`)\n\n**Кнопки** (для `tg`, `max`)\n- `id` (number) — всегда одно значение `1000`\n- `type` (string) — тип вложения (`button_tg`)\n- `buttons_link` (items) — массив ссылок по порядку от 1-10 (`[\"https://vposter.ru/\", \"https://vposter.ru/\"]`)\n- `buttons_name` (items) — массив название по порядку от 1-10 (`[\"Кнопка 1\", \"Кнопка 2\"]`)\n\n**Важно**: Используйте либо `attachments` (старый формат), либо `attachments_json` (новый формат). Не используйте оба параметра одновременно.\n"},"ads_items":{"type":"object","description":"Параметры маркировки рекламы в соответствии с требованиями ЕРИР (Единый реестр интернет-рекламы).\n","properties":{"fio":{"type":"string","description":"ФИО физического лица или наименование юридического лица.\n\nДля физических лиц и ИП:\n- Допустимы русские буквы, пробелы, дефисы, апострофы\n- Не должно содержать двойных дефисов или двойных пробелов\n- Не должно начинаться или заканчиваться дефисом или пробелом\n- Должно содержать хотя бы одну букву\n\nДля юридических лиц:\n- Допустимы русские/английские буквы, цифры, пробелы, знаки пунктуации\n- Не должно содержать двойных дефисов или двойных пробелов\n- Не должно начинаться или заканчиваться дефисом или пробелом\\\n- Должно содержать хотя бы одну букву или цифру\n"},"inn":{"type":"string","description":"ИНН физического лица или компании (обязателен для неиностранных контрагентов).\n\nПравила валидации:\n- Только цифры\n- Для юридических лиц (type = juridical) - строго 10 цифр\n- Для ИП (type = ip) и физических лиц (type = physical) - 10 или 12 цифр\n"},"kpp":{"type":"string","description":"КПП для компаний (только для юридических лиц).\nНеобязательное поле.\nexample: \"770101001\"\n"},"posts_summ":{"type":"string","description":"Сумма поста (с НДС, если облагается) в рублях.\nМаксимальное значение: 300000\n"},"type":{"type":"string","description":"Тип организации.\n\nВозможные значения:\n- `ip` - Индивидуальный предприниматель\n- `juridical` - Юридическое лицо\n- `physical` - Физическое лицо\n","enum":["ip","juridical","physical"]},"flags":{"type":"array","description":"Массив флагов для дополнительных параметров.\n                          \nВозможные значения в массиве:\n- `social` - Социальная реклама\n- `social_quota` - Социальная реклама по квоте\n","items":{"type":"string","enum":["social","social_quota"]}},"kktus":{"type":"array","description":"ККТУ рекламы (Классификатор Категорий Товаров и Услуг).\nОбязательное поле. Должен содержать один элемент. Получается через метод `/v3/method/dictionary.getKktu`.\n","items":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"}},"phone":{"type":"string","description":"Номер телефона.\n\nПравила валидации:\n- Должен начинаться с символа `+`\n- Длина от 8 до 35 символов\n- Разрешены символы: цифры, пробелы, `(`, `)`, `-`\n- Количество цифр от 8 до 15\nexample: \"+7 123 456-78-90\"\n"},"person":{"type":"array","description":"Тип лица в рекламной цепочке.\nВсегда должен содержать значение \"advertiser\".\n","items":{"type":"string","enum":["advertiser"]}},"foreign":{"type":"string","description":"Признак иностранного контрагента.\n\nВозможные значения:\n- `true` - иностранный контрагент\n- `false` - российский контрагент\n","enum":["true","false"]},"vat_rate":{"type":"string","description":"Ставка НДС.\n\nВозможные значения:\n- `without_vat` - без НДС\n- `0` - 0%\n- `5` - 5%\n- `7` - 7%\n- `10` - 10%\n- `20` - 20%\n- `22` - 22%\n","enum":["without_vat","0","5","7","10","20","22"]},"foreign_inn":{"type":"string","description":"Иностранный ИНН (для иностранных юридических лиц).\nНеобязательное поле, но для иностранных юрлиц требуется либо `foreign_inn`, либо `foreign_registration_number`.\n"},"contract_date":{"type":"string","description":"Дата договора в формате YYYY-MM-DD.\nОбязательное поле.\n","format":"date"},"contract_summ":{"type":"string","description":"Сумма договора (с НДС, если облагается) в рублях.\nМаксимальное значение: 300000\n"},"type_marking":{"type":"string","description":"Тип маркировки.\n\nВозможные значения от 0 до 5:\n- `0` - В выпадающем меню\n- `1` - В текстовом блоке (в конце)\n- `2` - В выпадающем меню + в текстовом блоке (в конце)\n- `3` - В текстовом блоке (в начале)\n- `4` - В кликовой ссылке (в начале текстового блока)\n- `5` - В кликовой ссылке (в конце текстового блока)\n","enum":["0","1","2","3","4","5"]},"description_ord":{"type":"string","description":"Описание товара или услуги. **Обязательно**, если выбран ККТУ `30.15.1`\n"},"contract_serial":{"type":"string","description":"Серийный номер договора.\nНеобязательное поле.\n"},"contract_date_end":{"type":"string","description":"Дата окончания договора в формате YYYY-MM-DD.\nНеобязательное поле.\n","format":"date"},"foreign_epayment_method":{"type":"string","description":"Номер электронного средства платежа (для иностранных физических лиц).\nНеобязательное поле, но для иностранных физлиц требуется либо `phone`, либо `foreign_epayment_method`.\n"},"foreign_oksm_country_code":{"type":"string","description":"Код страны по ОКСМ (Общероссийский классификатор стран мира).\nОбязательное поле для иностранных контрагентов.\nДолжен содержать 3 цифры. Получается через метод `/v3/method/dictionary.getCountries`.\n","pattern":"^\\d{3}$"},"foreign_registration_number":{"type":"string","description":"Регистрационный номер либо его аналог (для иностранных юридических лиц).\nНеобязательное поле, но для иностранных юрлиц требуется либо `foreign_inn`, либо `foreign_registration_number`.\n"}},"required":["fio","type","kktus","person","posts_summ","contract_summ","vat_rate","contract_date","type_marking"]}}}}}},"responses":{"200":{"description":"Пост успешно отредактирован.\nОтвет может содержать идентификатор отредактированного поста.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"post_id":{"type":"integer","description":"Идентификатор созданного поста"},"updated_at":{"type":"string","description":"Дата обновления поста. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"404":{"description":"По данному идентификатору пост не найден.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"405":{"description":"Передан не `PUT` запрос.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"409":{"description":"Место занято.\nВозможные причины:\n- Пост уже запланирован в это время на данной странице.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"429":{"description":"Достингут лимит постов.\nВозможные причины:\n- Одновременно допускается не более 25 публикаций на одно время на разных страницах.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось создать пост.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Удалить пост

> Удаляет пост на сервисе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Posts","description":"Группа методов для работы с отложенными постами\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/posts.delete":{"delete":{"summary":"Удалить пост","description":"Удаляет пост на сервисе.\n","tags":["Posts"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"**Обязательный**. ID поста на сервисе.\n"}}}}}},"responses":{"200":{"description":"Пост успешно удален.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"success":{"type":"boolean","description":"Успешный ответ"},"post_id":{"type":"integer","description":"ID поста"},"deleted_at":{"type":"string","description":"Дата удаления поста. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"404":{"description":"Пост не найден или у вас нет разрешения на доступ к нему.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось удалить пост.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Приостановить пост

> Приостанавливает пост на сервисе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Posts","description":"Группа методов для работы с отложенными постами\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/posts.pause":{"post":{"summary":"Приостановить пост","description":"Приостанавливает пост на сервисе.\n","tags":["Posts"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"**Обязательный**. ID отложенного поста на сервисе.\n"}}}}}},"responses":{"200":{"description":"Пост успешно приостановлена.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"success":{"type":"boolean","description":"Успешный ответ"},"post_id":{"type":"integer","description":"ID поста"},"stopped_at":{"type":"string","description":"Дата приостановки поста. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"404":{"description":"Пост не найден или у вас нет разрешения на доступ к нему.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"409":{"description":"Пост уже приостановлен.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось приостановить пост.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Включить пост

> Включает пост на сервисе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Posts","description":"Группа методов для работы с отложенными постами\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/posts.resume":{"post":{"summary":"Включить пост","description":"Включает пост на сервисе.\n","tags":["Posts"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"**Обязательный**. ID отложенного поста на сервисе.\n"}}}}}},"responses":{"200":{"description":"Пост успешно включен.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"success":{"type":"boolean","description":"Успешный ответ"},"post_id":{"type":"integer","description":"ID поста"},"activated_at":{"type":"string","description":"Дата включения поста. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"404":{"description":"Пост не найден или у вас нет разрешения на доступ к нему.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"409":{"description":"Пост уже активирован.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось включить пост.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Получить список запланированных историй

> Возвращает перечень запланированных историй пользователя с возможностью фильтрации, поиска и пагинации.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Stories","description":"Группа методов для работы с отложенными историями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/stories.getList":{"get":{"summary":"Получить список запланированных историй","description":"Возвращает перечень запланированных историй пользователя с возможностью фильтрации, поиска и пагинации.\n","tags":["Stories"],"parameters":[{"name":"page","in":"query","description":"Номер страницы для пагинации.\n- Минимальное значение: `1`\n- По умолчанию: `1`\n","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","description":"Количество записей на странице.\n- Минимальное значение: `1`\n- Максимальное значение: `100`\n- По умолчанию: `20`\n","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"sort","in":"query","description":"Направление сортировки по дате публикации.\n- `asc` - по возрастанию (сначала старые)\n- `desc` - по убыванию (сначала новые)\n- По умолчанию: `desc`\n","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"id_group","in":"query","description":"Фильтр по ID страницы или группы.\nВозвращаются только посты для указанной группы.\n","required":false,"schema":{"type":"string"}},{"name":"type_social","in":"query","description":"Фильтр по типу социальной сети.\nДоступные значения:\n- `vk` - ВКонтакте\n- `ok` - Одноклассники\n- `ig_business` - Instagram Business\n","required":false,"schema":{"type":"string","enum":["vk","ok","ig_business"]}},{"name":"active_stop","in":"query","description":"Фильтр по статусу активности.\n- `0` - активные истории\n- `1` - остановленные истории\n","required":false,"schema":{"type":"string","enum":["0","1"]}},{"name":"post_day","in":"query","description":"Фильтр по типу расписания.\n- `everyday` - ежедневные истории\n- Конкретная дата в формате `Y-m-d` (например, `2024-01-15`)\n","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Фильтр по статусу истории.\n- `active` - только активные (не остановленные и с датой в будущем)\n- `inactive` - остановленные или уже опубликованные\n- `all` - все посты\n- По умолчанию: `all`\n","required":false,"schema":{"type":"string","enum":["active","inactive","all"],"default":"all"}},{"name":"search","in":"query","description":"Поиск по названию истории.\nПоиск осуществляется по частичному совпадению.\n","required":false,"schema":{"type":"string","minLength":1,"maxLength":255}},{"name":"date_from","in":"query","description":"Начальная дата для фильтрации (включительно).\nФормат: `Y-m-d H:i:s` или `Y-m-d`\nПример: `2024-01-01 00:00:00`\n","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"date_to","in":"query","description":"Конечная дата для фильтрации (включительно).\nФормат: `Y-m-d H:i:s` или `Y-m-d`\nПример: `2024-12-31 23:59:59`\n","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Успешный ответ. Возвращается объект с полем `response`, содержащим:\n- `items` — массив объектов с данными каждой истории\n- `count` — общее количество историй, соответствующих критериям\n- `page` — текущая страница\n- `limit` — количество историй на странице\n- `total_pages` — общее количество страниц\n- `filters_applied` — примененные фильтры (если были использованы)\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"items":{"type":"array","description":"Массив запланированных историй","items":{"type":"object","properties":{"id":{"type":"integer","description":"Уникальный идентификатор истории"},"id_group":{"type":"string","description":"ID страницы или группы"},"name":{"type":"string","description":"Название группы"},"name_autopost":{"type":"string","description":"Название истории"},"stories_time":{"type":"integer","enum":[0,1,2,3],"description":"Время показа истории:\n- `0` — 24 часа\n- `1` — 1 час\n- `2` — 12 часов\n- `3` — 48 часов\n"},"photo":{"type":"string","format":"url","description":"URL аватара группы (100x100)"},"date_post":{"type":"string","format":"date-time","description":"Дата и время запланированной истории\n(в часовом поясе пользователя)\n"},"post_day":{"type":"string","description":"Тип расписания:\n- `everyday` - ежедневно\n- конкретная дата в формате Y-m-d\n"},"stories_link_url":{"type":"string","description":"URL для ссылки в истории для `vk` и `ok`.\n"},"stories_link_text":{"type":"string","description":"Текст ссылки в истории для `vk` и `ok`.\n\nВозможные значения:\n- `to_store` — В магазин\n- `more` — Еще\n- `book` — Забронировать\n- `order` — Заказать\n- `enroll` — Записаться\n- `fill` — Заполнить\n- `signup` — Зарегистрироваться\n- `buy` — Купить\n- `ticket` — Купить билет\n- `write` — Написать\n- `open` — Открыть\n- `learn_more` — Подробнее\n- `view` — Посмотреть\n- `go_to` — Перейти\n- `contact` — Связаться\n- `watch` — Смотреть\n- `play` — Слушать\n- `install` — Установить\n- `read` — Читать\n- `vote` — Голосовать\n- `congratulate` — Поздравить\n- `game` — Играть\n- `to_memories_app` — К воспоминаниям\n- `calendar` — Открыть календарь\n- `watch_clip` — Смотреть клип\n- `make_clip` — Снять клип\n- `participate` — Участвовать\n- `open_mask` — Открыть маску\n- `try_on` — Примерить\n- `try` — Попробовать\n- `profile` — Открыть профиль\n- `attach_wall` — Открыть запись\n- `attach_article` — Читать статью\n- `attach_poll` — Открыть опрос\n- `attach_story` — Смотреть историю\n- `attach_audio` — Слушать\n- `attach_audio_playlist` — Открыть плейлист\n- `attach_audio_album` — Открыть альбом\n- `attach_video` — Смотреть видео\n- `attach_video_live` — К трансляции\n- `attach_photo` — Открыть фото\n- `attach_album` — Открыть фотоальбом\n- `attach_page` — Открыть страницу\n- `attach_market` — Открыть товар\n- `attach_link` — Открыть ссылку\n- `attach_artist` — Перейти к музыканту\n- `attach_narrative` — Смотреть момент\n- `attach_podcast` — Слушать подкаст\n"},"attachments_json":{"type":"array","description":"Вложение.\nПоддерживаемые типы: photo, video\n","items":{"type":"object"}},"mark_as_ads":{"type":"integer","description":"Флаг рекламной маркировки:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"del_task":{"type":"integer","description":"Запланировано удаление поста после публикации:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"date_task":{"type":"integer","description":"Запланировано удаление поста по дате из сервиса:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"del_task_date":{"type":"string","description":"Дата удаления поста из сервиса:\n"},"stop_post":{"type":"integer","description":"Запланировано приостановление поста по дате из сервиса:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"stop_post_date":{"type":"string","description":"Дата приостановление поста из сервиса:\n"},"delete_sociate":{"type":"integer","description":"Запланировано удаление через время из соцсети:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"delete_clock":{"type":"string","description":"Часы для удаления"},"delete_minutes":{"type":"string","description":"Минуты для удаления"},"status_post":{"type":"string","description":"Статус активности:\n- `0` - активен\n- `1` - остановлен\n","enum":["0","1"]},"date_create":{"type":"string","format":"date-time","description":"Дата создания поста"},"type_social":{"type":"string","description":"Тип социальной сети:\n- `vk` - ВКонтакте\n- `tg` - Telegram\n- `ok` - Одноклассники\n- `ig_business` - Instagram Business\n- `max` - Max\n- `rutube` - Rutube\n- `fb` - Facebook\n","enum":["vk","tg","ok","ig_business","max","rutube","fb"]},"juridical_details":{"type":"object","description":"Данные для рекламной маркировки (ОРД ВК).\n","properties":{"fio":{"type":"string","description":"ФИО или наименование"},"inn":{"type":"string","description":"ИНН"},"kpp":{"type":"string","description":"КПП"},"stories_summ":{"type":"string","description":"Сумма истории"},"type":{"type":"string","description":"Тип контрагента:\n- `ip` - ИП\n- `juridical` - юридическое лицо\n- `physical` - физическое лицо\n","enum":["ip","juridical","physical"]},"flags":{"type":"array","items":{"type":"string"}},"kktus":{"type":"array","items":{"type":"string"}},"phone":{"type":"string","description":"Телефон"},"person":{"type":"array","items":{"type":"string"}},"foreign":{"type":"string","description":"Иностранный контрагент:\n- `true` - да\n- `false` - нет\n","enum":["true","false"]},"vat_rate":{"type":"string","description":"Ставка НДС:\n- `without_vat` - без НДС\n- `0`, `5`, `7`, `10`, `20`, `22` - процентная ставка\n"},"foreign_inn":{"type":"string","description":"Иностранный ИНН"},"contract_date":{"type":"string","description":"Дата договора"},"contract_summ":{"type":"string","description":"Сумма договора"},"type_marking":{"type":"string","description":"Тип маркировки:\n- `0` - без маркировки\n- `1-5` - различные типы маркировки\n"},"description_ord":{"type":"string","description":"Описание товара или услуги. **Обязательно**, если выбран ККТУ `30.15.1`\n"},"contract_serial":{"type":"string","description":"Серия договора"},"contract_date_end":{"type":"string","description":"Дата окончания договора"},"foreign_epayment_method":{"type":"string","description":"Метод электронного платежа для иностранцев"},"foreign_oksm_country_code":{"type":"string","description":"Код страны по ОКСМ"},"foreign_registration_number":{"type":"string","description":"Регистрационный номер иностранного контрагента"}}}}}},"count":{"type":"integer","description":"Общее количество историй, соответствующих критериям"},"page":{"type":"integer","description":"Текущая страница"},"limit":{"type":"integer","description":"Количество записей на странице"},"total_pages":{"type":"integer","description":"Общее количество страниц"},"filters_applied":{"type":"object","description":"Примененные фильтры (возвращаются, если были использованы)"}}}}}}}},"400":{"description":"Ошибка запроса.\nВозможные причины:\n- Токен не передан в заголовке `Authorization` или параметре `access_token`\n- Отсутствуют обязательные заголовки\n- Некорректный формат параметров\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n- Пользователь не найден\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера.\nВозможные причины:\n- Ошибка базы данных\n- Проблемы с подключением\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}
```

## Получить информацию о истории

> Возвращает информацию о истории по его идентификатору.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Stories","description":"Группа методов для работы с отложенными историями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/stories.getById":{"get":{"summary":"Получить информацию о истории","description":"Возвращает информацию о истории по его идентификатору.\n","tags":["Stories"],"parameters":[{"name":"id","in":"query","description":"Идентификатор публикации\n","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Успешный ответ. Возвращается объект с полем `response`, содержащим:\n- `items` — массив объекта с данными страницы/группы.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"items":{"type":"array","description":"Массив с данными истории","items":{"type":"object","properties":{"id":{"type":"integer","description":"Уникальный идентификатор истории"},"id_group":{"type":"string","description":"ID страницы или группы"},"name":{"type":"string","description":"Название группы"},"name_autopost":{"type":"string","description":"Название поста"},"stories_time":{"type":"integer","enum":[0,1,2,3],"description":"Время показа истории:\n- `0` — 24 часа\n- `1` — 1 час\n- `2` — 12 часов\n- `3` — 48 часов\n"},"photo":{"type":"string","format":"url","description":"URL аватара группы (100x100)"},"date_post":{"type":"string","format":"date-time","description":"Дата и время запланированной публикации\n(в часовом поясе пользователя)\n"},"post_day":{"type":"string","description":"Тип расписания:\n- `everyday` - ежедневно\n- конкретная дата в формате Y-m-d\n"},"stories_link_url":{"type":"string","description":"URL для ссылки в истории для `vk` и `ok`.\n"},"stories_link_text":{"type":"string","description":"Текст ссылки в истории для `vk` и `ok`.\n\nВозможные значения:\n- `to_store` — В магазин\n- `more` — Еще\n- `book` — Забронировать\n- `order` — Заказать\n- `enroll` — Записаться\n- `fill` — Заполнить\n- `signup` — Зарегистрироваться\n- `buy` — Купить\n- `ticket` — Купить билет\n- `write` — Написать\n- `open` — Открыть\n- `learn_more` — Подробнее\n- `view` — Посмотреть\n- `go_to` — Перейти\n- `contact` — Связаться\n- `watch` — Смотреть\n- `play` — Слушать\n- `install` — Установить\n- `read` — Читать\n- `vote` — Голосовать\n- `congratulate` — Поздравить\n- `game` — Играть\n- `to_memories_app` — К воспоминаниям\n- `calendar` — Открыть календарь\n- `watch_clip` — Смотреть клип\n- `make_clip` — Снять клип\n- `participate` — Участвовать\n- `open_mask` — Открыть маску\n- `try_on` — Примерить\n- `try` — Попробовать\n- `profile` — Открыть профиль\n- `attach_wall` — Открыть запись\n- `attach_article` — Читать статью\n- `attach_poll` — Открыть опрос\n- `attach_story` — Смотреть историю\n- `attach_audio` — Слушать\n- `attach_audio_playlist` — Открыть плейлист\n- `attach_audio_album` — Открыть альбом\n- `attach_video` — Смотреть видео\n- `attach_video_live` — К трансляции\n- `attach_photo` — Открыть фото\n- `attach_album` — Открыть фотоальбом\n- `attach_page` — Открыть страницу\n- `attach_market` — Открыть товар\n- `attach_link` — Открыть ссылку\n- `attach_artist` — Перейти к музыканту\n- `attach_narrative` — Смотреть момент\n- `attach_podcast` — Слушать подкаст\n"},"attachments_json":{"type":"array","description":"Вложение.\nПоддерживаемые типы: photo, video\n","items":{"type":"object"}},"mark_as_ads":{"type":"integer","description":"Флаг рекламной маркировки:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"del_task":{"type":"integer","description":"Запланировано удаление поста после публикации:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"date_task":{"type":"integer","description":"Запланировано удаление поста по дате из сервиса:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"del_task_date":{"type":"string","description":"Дата удаления поста из сервиса:\n"},"stop_post":{"type":"integer","description":"Запланировано приостановление поста по дате из сервиса:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"stop_post_date":{"type":"string","description":"Дата приостановление поста из сервиса:\n"},"delete_sociate":{"type":"integer","description":"Запланировано удаление через время из соцсети:\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"delete_clock":{"type":"string","description":"Часы для удаления"},"delete_minutes":{"type":"string","description":"Минуты для удаления"},"status_post":{"type":"string","description":"Статус активности:\n- `0` - активен\n- `1` - остановлен\n","enum":["0","1"]},"date_create":{"type":"string","format":"date-time","description":"Дата создания поста"},"type_social":{"type":"string","description":"Тип социальной сети:\n- `vk` - ВКонтакте\n- `tg` - Telegram\n- `ok` - Одноклассники\n- `ig_business` - Instagram Business\n- `max` - Max\n- `rutube` - Rutube\n- `fb` - Facebook\n","enum":["vk","tg","ok","ig_business","max","rutube","fb"]},"juridical_details":{"type":"object","description":"Данные для рекламной маркировки (ОРД ВК).\n","properties":{"fio":{"type":"string","description":"ФИО или наименование"},"inn":{"type":"string","description":"ИНН"},"kpp":{"type":"string","description":"КПП"},"stories_summ":{"type":"string","description":"Сумма истории"},"type":{"type":"string","description":"Тип контрагента:\n- `ip` - ИП\n- `juridical` - юридическое лицо\n- `physical` - физическое лицо\n","enum":["ip","juridical","physical"]},"flags":{"type":"array","items":{"type":"string"}},"kktus":{"type":"array","items":{"type":"string"}},"phone":{"type":"string","description":"Телефон"},"person":{"type":"array","items":{"type":"string"}},"foreign":{"type":"string","description":"Иностранный контрагент:\n- `true` - да\n- `false` - нет\n","enum":["true","false"]},"vat_rate":{"type":"string","description":"Ставка НДС:\n- `without_vat` - без НДС\n- `0`, `5`, `7`, `10`, `20`, `22` - процентная ставка\n"},"foreign_inn":{"type":"string","description":"Иностранный ИНН"},"contract_date":{"type":"string","description":"Дата договора"},"contract_summ":{"type":"string","description":"Сумма договора"},"type_marking":{"type":"string","description":"Тип маркировки:\n- `0` - без маркировки\n- `1-5` - различные типы маркировки\n"},"description_ord":{"type":"string","description":"Описание товара или услуги. **Обязательно**, если выбран ККТУ `30.15.1`\n"},"contract_serial":{"type":"string","description":"Серия договора"},"contract_date_end":{"type":"string","description":"Дата окончания договора"},"foreign_epayment_method":{"type":"string","description":"Метод электронного платежа для иностранцев"},"foreign_oksm_country_code":{"type":"string","description":"Код страны по ОКСМ"},"foreign_registration_number":{"type":"string","description":"Регистрационный номер иностранного контрагента"}}},"co_owner":{"type":"integer","description":"Флаг соавторства (VK):\n- `0` - нет\n- `1` - да\n","enum":[0,1]},"co_owner_ids":{"type":"string","description":"ID соавторов (через запятую)"}}}}}}}}}}},"400":{"description":"Ошибка запроса.\nВозможные причины:\n- Токен не передан в заголовке `Authorization` или параметре `access_token`\n- Отсутствуют обязательные заголовки\n- Некорректный формат параметров\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n- Пользователь не найден\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера.\nВозможные причины:\n- Ошибка базы данных\n- Проблемы с подключением\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}
```

## Запланировать публикацию истории

> Создаёт историю в разделе «Отложенные истории» на указанной странице/группе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Stories","description":"Группа методов для работы с отложенными историями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/stories.create":{"post":{"summary":"Запланировать публикацию истории","description":"Создаёт историю в разделе «Отложенные истории» на указанной странице/группе.\n","tags":["Stories"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id_group","type_social","post_day","stories_image"],"properties":{"id_group":{"type":"string","description":"**Обязательный**. ID страницы или группы, куда будет опубликована история.\nПолучается через метод `/v3/method/groups.getMy`.\n"},"name_autopost":{"type":"string","description":"Название истории для отображения в запланированных историях (видно только вам).\n"},"stories_time":{"type":"integer","enum":[0,1,2,3],"description":"Время показа истории:\n- `0` — 24 часа\n- `1` — 1 час\n- `2` — 12 часов\n- `3` — 48 часов\n"},"type_social":{"type":"string","enum":["vk","ok","ig_business"],"description":"**Обязательный**. Социальная сеть для публикации:\n- `vk` — ВКонтакте\n- `ok` — Одноклассники\n- `ig_business` — Instagram Business\n"},"date_post":{"type":"string","description":"Дата и время публикации. Если не задано, то публикуется через минуту. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ`\n"},"post_day":{"type":"string","enum":["oneraz","everyday","budday","weekends","every2day","every3day","every4day","every5day","every6day","everyweek","every8day","every9day","every10day","every11day","every12day","every2week","every3week","everymonth","every2month","every3month","every4month","every5month","every6month","every7month","every8month","every9month","every10month","every11month","every12month"],"description":"**Обязательный**. Периодичность публикации (аналогично постам).\n"},"stories_image":{"type":"string","description":"**Обязательный**. URL изображения для истории.\n"},"stories_link_url":{"type":"string","description":"URL для ссылки в истории для `vk` и `ok`.\n"},"stories_link_text":{"type":"string","description":"Текст ссылки в истории для `vk` и `ok`.\n\nВозможные значения:\n- `to_store` — В магазин\n- `more` — Еще\n- `book` — Забронировать\n- `order` — Заказать\n- `enroll` — Записаться\n- `fill` — Заполнить\n- `signup` — Зарегистрироваться\n- `buy` — Купить\n- `ticket` — Купить билет\n- `write` — Написать\n- `open` — Открыть\n- `learn_more` — Подробнее\n- `view` — Посмотреть\n- `go_to` — Перейти\n- `contact` — Связаться\n- `watch` — Смотреть\n- `play` — Слушать\n- `install` — Установить\n- `read` — Читать\n- `vote` — Голосовать\n- `congratulate` — Поздравить\n- `game` — Играть\n- `to_memories_app` — К воспоминаниям\n- `calendar` — Открыть календарь\n- `watch_clip` — Смотреть клип\n- `make_clip` — Снять клип\n- `participate` — Участвовать\n- `open_mask` — Открыть маску\n- `try_on` — Примерить\n- `try` — Попробовать\n- `profile` — Открыть профиль\n- `attach_wall` — Открыть запись\n- `attach_article` — Читать статью\n- `attach_poll` — Открыть опрос\n- `attach_story` — Смотреть историю\n- `attach_audio` — Слушать\n- `attach_audio_playlist` — Открыть плейлист\n- `attach_audio_album` — Открыть альбом\n- `attach_video` — Смотреть видео\n- `attach_video_live` — К трансляции\n- `attach_photo` — Открыть фото\n- `attach_album` — Открыть фотоальбом\n- `attach_page` — Открыть страницу\n- `attach_market` — Открыть товар\n- `attach_link` — Открыть ссылку\n- `attach_artist` — Перейти к музыканту\n- `attach_narrative` — Смотреть момент\n- `attach_podcast` — Слушать подкаст\n"},"delete_post_date":{"type":"string","description":"Дата автоматического удаления истории из сервиса (если требуется).\nФормат: `ГГГГ-ММ-ДД`\n"},"delete_clock":{"type":"string","description":"Час автоматического удаления истории из соцсети (0-4382).\n"},"delete_minutes":{"type":"string","description":"Минута автоматического удаления истории из соцсети (0-59).\n"},"stop_post_date":{"type":"string","description":"Дата автоматического приостановления истории на сервисе (если требуется).\nФормат: `ГГГГ-ММ-ДД`\n"},"del_task":{"type":"integer","enum":[0,1],"description":"Удалить историю из сервиса после публикации:\n- `0` — оставить в сервисе\n- `1` — удалить после публикации из сервиса\n"},"ads_items":{"type":"object","description":"Параметры маркировки рекламы в соответствии с требованиями ЕРИР (Единый реестр интернет-рекламы).\n","properties":{"fio":{"type":"string","description":"ФИО физического лица или наименование юридического лица.\n\nДля физических лиц и ИП:\n- Допустимы русские буквы, пробелы, дефисы, апострофы\n- Не должно содержать двойных дефисов или двойных пробелов\n- Не должно начинаться или заканчиваться дефисом или пробелом\n- Должно содержать хотя бы одну букву\n\nДля юридических лиц:\n- Допустимы русские/английские буквы, цифры, пробелы, знаки пунктуации\n- Не должно содержать двойных дефисов или двойных пробелов\n- Не должно начинаться или заканчиваться дефисом или пробелом\\\n- Должно содержать хотя бы одну букву или цифру\n"},"inn":{"type":"string","description":"ИНН физического лица или компании (обязателен для неиностранных контрагентов).\n\nПравила валидации:\n- Только цифры\n- Для юридических лиц (type = juridical) - строго 10 цифр\n- Для ИП (type = ip) и физических лиц (type = physical) - 10 или 12 цифр\n"},"kpp":{"type":"string","description":"КПП для компаний (только для юридических лиц).\nНеобязательное поле.\nexample: \"770101001\"\n"},"stories_summ":{"type":"string","description":"Сумма истории (с НДС, если облагается) в рублях.\nМаксимальное значение: 300000\n"},"type":{"type":"string","description":"Тип организации.\n\nВозможные значения:\n- `ip` - Индивидуальный предприниматель\n- `juridical` - Юридическое лицо\n- `physical` - Физическое лицо\n","enum":["ip","juridical","physical"]},"flags":{"type":"array","description":"Массив флагов для дополнительных параметров.\n                          \nВозможные значения в массиве:\n- `social` - Социальная реклама\n- `social_quota` - Социальная реклама по квоте\n","items":{"type":"string","enum":["social","social_quota"]}},"kktus":{"type":"array","description":"ККТУ рекламы (Классификатор Категорий Товаров и Услуг).\nОбязательное поле. Должен содержать один элемент. Получается через метод `/v3/method/dictionary.getKktu`.\n","items":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"}},"phone":{"type":"string","description":"Номер телефона.\n\nПравила валидации:\n- Должен начинаться с символа `+`\n- Длина от 8 до 35 символов\n- Разрешены символы: цифры, пробелы, `(`, `)`, `-`\n- Количество цифр от 8 до 15\nexample: \"+7 123 456-78-90\"\n"},"person":{"type":"array","description":"Тип лица в рекламной цепочке.\nВсегда должен содержать значение \"advertiser\".\n","items":{"type":"string","enum":["advertiser"]}},"foreign":{"type":"string","description":"Признак иностранного контрагента.\n\nВозможные значения:\n- `true` - иностранный контрагент\n- `false` - российский контрагент\n","enum":["true","false"]},"vat_rate":{"type":"string","description":"Ставка НДС.\n\nВозможные значения:\n- `without_vat` - без НДС\n- `0` - 0%\n- `5` - 5%\n- `7` - 7%\n- `10` - 10%\n- `20` - 20%\n- `22` - 22%\n","enum":["without_vat","0","5","7","10","20","22"]},"foreign_inn":{"type":"string","description":"Иностранный ИНН (для иностранных юридических лиц).\nНеобязательное поле, но для иностранных юрлиц требуется либо foreign_inn, либо foreign_registration_number.\n"},"contract_date":{"type":"string","description":"Дата договора в формате YYYY-MM-DD.\nОбязательное поле.\n","format":"date"},"contract_summ":{"type":"string","description":"Сумма договора (с НДС, если облагается) в рублях.\nМаксимальное значение: 300000\n"},"type_marking":{"type":"string","description":"Тип маркировки.\n\nВозможные значения от 0 до 5:\n- `0` - В выпадающем меню\n- `1` - В текстовом блоке (в конце)\n- `2` - В выпадающем меню + в текстовом блоке (в конце)\n- `3` - В текстовом блоке (в начале)\n- `4` - В кликовой ссылке (в начале текстового блока)\n- `5` - В кликовой ссылке (в конце текстового блока)\n","enum":["0","1","2","3","4","5"]},"description_ord":{"type":"string","description":"Описание товара или услуги. **Обязательно**, если выбран ККТУ `30.15.1`\n"},"contract_serial":{"type":"string","description":"Серийный номер договора.\nНеобязательное поле.\n"},"contract_date_end":{"type":"string","description":"Дата окончания договора в формате YYYY-MM-DD.\nНеобязательное поле.\n","format":"date"},"foreign_epayment_method":{"type":"string","description":"Номер электронного средства платежа (для иностранных физических лиц).\nНеобязательное поле, но для иностранных физлиц требуется либо `phone`, либо `foreign_epayment_method`.\n"},"foreign_oksm_country_code":{"type":"string","description":"Код страны по ОКСМ (Общероссийский классификатор стран мира).\nОбязательное поле для иностранных контрагентов.\nДолжен содержать 3 цифры. Получается через метод `/v3/method/dictionary.getCountries`.\n","pattern":"^\\d{3}$"},"foreign_registration_number":{"type":"string","description":"Регистрационный номер либо его аналог (для иностранных юридических лиц).\nНеобязательное поле, но для иностранных юрлиц требуется либо `foreign_inn`, либо `foreign_registration_number`.\n"}},"required":["fio","type","kktus","person","stories_summ","contract_summ","vat_rate","contract_date","type_marking"]}}}}}},"responses":{"200":{"description":"История успешно запланирована.\nОтвет может содержать идентификатор созданной истории.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"stories_id":{"type":"integer","description":"Идентификатор созданной истории"},"created_at":{"type":"string","description":"Дата создания поста. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"},"type_social":{"type":"string","description":"Соцсеть в которую запланирвоан"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"409":{"description":"Место занято.\nВозможные причины:\n- История уже запланирована в это время на данной странице.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"429":{"description":"Достингут лимит постов.\nВозможные причины:\n- Одновременно допускается не более 25 историй на одно время на разных страницах.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось создать историю.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Отредактировать историю

> Редактирует историю в разделе «Отложенные истории» на указанной странице/группе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Stories","description":"Группа методов для работы с отложенными историями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/stories.edit":{"put":{"summary":"Отредактировать историю","description":"Редактирует историю в разделе «Отложенные истории» на указанной странице/группе.\n","tags":["Stories"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id","id_group","type_social","date_post","post_day","stories_image"],"properties":{"id":{"type":"integer","description":"**Обязательный**. ID истории на сервисе\n"},"id_group":{"type":"string","description":"**Обязательный**. ID страницы или группы, куда будет опубликована история.\nПолучается через метод `/v3/method/groups.getMy`.\n"},"name_autopost":{"type":"string","description":"Название истории для отображения в запланированных историях (видно только вам).\n"},"stories_time":{"type":"integer","enum":[0,1,2,3],"description":"Время показа истории:\n- `0` — 24 часа\n- `1` — 1 час\n- `2` — 12 часов\n- `3` — 48 часов\n"},"type_social":{"type":"string","enum":["vk","ok","ig_business"],"description":"**Обязательный**. Социальная сеть для публикации:\n- `vk` — ВКонтакте\n- `ok` — Одноклассники\n- `ig_business` — Instagram Business\n"},"date_post":{"type":"string","description":"**Обязательный**. Дата и время публикации.\nФормат: `ГГГГ-ММ-ДД ЧЧ:ММ`\n"},"post_day":{"type":"string","enum":["oneraz","everyday","budday","weekends","every2day","every3day","every4day","every5day","every6day","everyweek","every8day","every9day","every10day","every11day","every12day","every2week","every3week","everymonth","every2month","every3month","every4month","every5month","every6month","every7month","every8month","every9month","every10month","every11month","every12month"],"description":"**Обязательный**. Периодичность публикации (аналогично постам).\n"},"stories_image":{"type":"string","description":"**Обязательный**. URL изображения для истории.\n"},"stories_link_url":{"type":"string","description":"URL для ссылки в истории для `vk` и `ok`.\n"},"stories_link_text":{"type":"string","description":"Текст ссылки в истории для `vk` и `ok`.\n\nВозможные значения:\n- `to_store` — В магазин\n- `more` — Еще\n- `book` — Забронировать\n- `order` — Заказать\n- `enroll` — Записаться\n- `fill` — Заполнить\n- `signup` — Зарегистрироваться\n- `buy` — Купить\n- `ticket` — Купить билет\n- `write` — Написать\n- `open` — Открыть\n- `learn_more` — Подробнее\n- `view` — Посмотреть\n- `go_to` — Перейти\n- `contact` — Связаться\n- `watch` — Смотреть\n- `play` — Слушать\n- `install` — Установить\n- `read` — Читать\n- `vote` — Голосовать\n- `congratulate` — Поздравить\n- `game` — Играть\n- `to_memories_app` — К воспоминаниям\n- `calendar` — Открыть календарь\n- `watch_clip` — Смотреть клип\n- `make_clip` — Снять клип\n- `participate` — Участвовать\n- `open_mask` — Открыть маску\n- `try_on` — Примерить\n- `try` — Попробовать\n- `profile` — Открыть профиль\n- `attach_wall` — Открыть запись\n- `attach_article` — Читать статью\n- `attach_poll` — Открыть опрос\n- `attach_story` — Смотреть историю\n- `attach_audio` — Слушать\n- `attach_audio_playlist` — Открыть плейлист\n- `attach_audio_album` — Открыть альбом\n- `attach_video` — Смотреть видео\n- `attach_video_live` — К трансляции\n- `attach_photo` — Открыть фото\n- `attach_album` — Открыть фотоальбом\n- `attach_page` — Открыть страницу\n- `attach_market` — Открыть товар\n- `attach_link` — Открыть ссылку\n- `attach_artist` — Перейти к музыканту\n- `attach_narrative` — Смотреть момент\n- `attach_podcast` — Слушать подкаст\n"},"delete_post_date":{"type":"string","description":"Дата автоматического удаления истории из сервиса (если требуется).\nФормат: `ГГГГ-ММ-ДД`\n"},"delete_clock":{"type":"string","description":"Час автоматического удаления истории из соцсети (0-4382).\n"},"delete_minutes":{"type":"string","description":"Минута автоматического удаления истории из соцсети (0-59).\n"},"stop_post_date":{"type":"string","description":"Дата автоматического приостановления истории на сервисе (если требуется).\nФормат: `ГГГГ-ММ-ДД`\n"},"del_task":{"type":"integer","enum":[0,1],"description":"Удалить историю из сервиса после публикации:\n- `0` — оставить в сервисе\n- `1` — удалить после публикации из сервиса\n"},"ads_items":{"type":"object","description":"Параметры маркировки рекламы в соответствии с требованиями ЕРИР (Единый реестр интернет-рекламы).\n","properties":{"fio":{"type":"string","description":"ФИО физического лица или наименование юридического лица.\n\nДля физических лиц и ИП:\n- Допустимы русские буквы, пробелы, дефисы, апострофы\n- Не должно содержать двойных дефисов или двойных пробелов\n- Не должно начинаться или заканчиваться дефисом или пробелом\n- Должно содержать хотя бы одну букву\n\nДля юридических лиц:\n- Допустимы русские/английские буквы, цифры, пробелы, знаки пунктуации\n- Не должно содержать двойных дефисов или двойных пробелов\n- Не должно начинаться или заканчиваться дефисом или пробелом\\\n- Должно содержать хотя бы одну букву или цифру\n"},"inn":{"type":"string","description":"ИНН физического лица или компании (обязателен для неиностранных контрагентов).\n\nПравила валидации:\n- Только цифры\n- Для юридических лиц (type = juridical) - строго 10 цифр\n- Для ИП (type = ip) и физических лиц (type = physical) - 10 или 12 цифр\n"},"kpp":{"type":"string","description":"КПП для компаний (только для юридических лиц).\nНеобязательное поле.\nexample: \"770101001\"\n"},"stories_summ":{"type":"string","description":"Сумма истории (с НДС, если облагается) в рублях.\nМаксимальное значение: 300000\n"},"type":{"type":"string","description":"Тип организации.\n\nВозможные значения:\n- `ip` - Индивидуальный предприниматель\n- `juridical` - Юридическое лицо\n- `physical` - Физическое лицо\n","enum":["ip","juridical","physical"]},"flags":{"type":"array","description":"Массив флагов для дополнительных параметров.\n                          \nВозможные значения в массиве:\n- `social` - Социальная реклама\n- `social_quota` - Социальная реклама по квоте\n","items":{"type":"string","enum":["social","social_quota"]}},"kktus":{"type":"array","description":"ККТУ рекламы (Классификатор Категорий Товаров и Услуг).\nОбязательное поле. Должен содержать один элемент. Получается через метод `/v3/method/dictionary.getKktu`.\n","items":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"}},"phone":{"type":"string","description":"Номер телефона.\n\nПравила валидации:\n- Должен начинаться с символа `+`\n- Длина от 8 до 35 символов\n- Разрешены символы: цифры, пробелы, `(`, `)`, `-`\n- Количество цифр от 8 до 15\nexample: \"+7 123 456-78-90\"\n"},"person":{"type":"array","description":"Тип лица в рекламной цепочке.\nВсегда должен содержать значение \"advertiser\".\n","items":{"type":"string","enum":["advertiser"]}},"foreign":{"type":"string","description":"Признак иностранного контрагента.\n\nВозможные значения:\n- `true` - иностранный контрагент\n- `false` - российский контрагент\n","enum":["true","false"]},"vat_rate":{"type":"string","description":"Ставка НДС.\n\nВозможные значения:\n- `without_vat` - без НДС\n- `0` - 0%\n- `5` - 5%\n- `7` - 7%\n- `10` - 10%\n- `20` - 20%\n- `22` - 22%\n","enum":["without_vat","0","5","7","10","20","22"]},"foreign_inn":{"type":"string","description":"Иностранный ИНН (для иностранных юридических лиц).\nНеобязательное поле, но для иностранных юрлиц требуется либо `foreign_inn`, либо `foreign_registration_number`.\n"},"contract_date":{"type":"string","description":"Дата договора в формате YYYY-MM-DD.\nОбязательное поле.\n","format":"date"},"contract_summ":{"type":"string","description":"Сумма договора (с НДС, если облагается) в рублях.\nМаксимальное значение: 300000\n"},"type_marking":{"type":"string","description":"Тип маркировки.\n\nВозможные значения от 0 до 5:\n- `0` - В выпадающем меню\n- `1` - В текстовом блоке (в конце)\n- `2` - В выпадающем меню + в текстовом блоке (в конце)\n- `3` - В текстовом блоке (в начале)\n- `4` - В кликовой ссылке (в начале текстового блока)\n- `5` - В кликовой ссылке (в конце текстового блока)\n","enum":["0","1","2","3","4","5"]},"description_ord":{"type":"string","description":"Описание товара или услуги. **Обязательно**, если выбран ККТУ `30.15.1`\n"},"contract_serial":{"type":"string","description":"Серийный номер договора.\nНеобязательное поле.\n"},"contract_date_end":{"type":"string","description":"Дата окончания договора в формате YYYY-MM-DD.\nНеобязательное поле.\n","format":"date"},"foreign_epayment_method":{"type":"string","description":"Номер электронного средства платежа (для иностранных физических лиц).\nНеобязательное поле, но для иностранных физлиц требуется либо `phone`, либо `foreign_epayment_method`.\n"},"foreign_oksm_country_code":{"type":"string","description":"Код страны по ОКСМ (Общероссийский классификатор стран мира).\nОбязательное поле для иностранных контрагентов.\nДолжен содержать 3 цифры. Получается через метод `/v3/method/dictionary.getCountries`.\n","pattern":"^\\d{3}$"},"foreign_registration_number":{"type":"string","description":"Регистрационный номер либо его аналог (для иностранных юридических лиц).\nНеобязательное поле, но для иностранных юрлиц требуется либо `foreign_inn`, либо `foreign_registration_number`.\n"}},"required":["fio","type","kktus","person","stories_summ","contract_summ","vat_rate","contract_date","type_marking"]}}}}}},"responses":{"200":{"description":"История успешно отредактирована.\nОтвет может содержать идентификатор созданной истории.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"stories_id":{"type":"integer","description":"Идентификатор созданной истории"},"updated_at":{"type":"string","description":"Дата обновления истории. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"},"type_social":{"type":"string","description":"Соцсеть в которую запланирвоан"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"404":{"description":"По данному идентификатору история не найдена.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"405":{"description":"Передан не `PUT` запрос.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"409":{"description":"Место занято.\nВозможные причины:\n- История уже запланирована в это время на данной странице.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"429":{"description":"Достингут лимит постов.\nВозможные причины:\n- Одновременно допускается не более 25 историй на одно время на разных страницах.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось отредактировать историю.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Удалить историю

> Удаляет историю на сервисе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Stories","description":"Группа методов для работы с отложенными историями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/stories.delete":{"delete":{"summary":"Удалить историю","description":"Удаляет историю на сервисе.\n","tags":["Stories"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"**Обязательный**. ID истории на сервисе.\n"}}}}}},"responses":{"200":{"description":"История успешно удалена.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"success":{"type":"boolean","description":"Успешный ответ"},"post_id":{"type":"integer","description":"ID истории"},"deleted_at":{"type":"string","description":"Дата удаления истории. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"404":{"description":"Пост не найден или у вас нет разрешения на доступ к нему.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось удалить историю.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Приостановить историю

> Приостанавливает историю на сервисе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Stories","description":"Группа методов для работы с отложенными историями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/stories.pause":{"post":{"summary":"Приостановить историю","description":"Приостанавливает историю на сервисе.\n","tags":["Stories"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"**Обязательный**. ID отложенной истории на сервисе.\n"}}}}}},"responses":{"200":{"description":"История успешно приостановлена.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"success":{"type":"boolean","description":"Успешный ответ"},"stories_id":{"type":"integer","description":"ID истории"},"stopped_at":{"type":"string","description":"Дата приостановки истории. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"404":{"description":"История не найдена или у вас нет разрешения на доступ к ней.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"409":{"description":"История уже приостановлена.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось приостановить историю.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Включить историю

> Включает историю на сервисе.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Stories","description":"Группа методов для работы с отложенными историями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/stories.resume":{"post":{"summary":"Включить историю","description":"Включает историю на сервисе.\n","tags":["Stories"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"**Обязательный**. ID отложенноq историb на сервисе.\n"}}}}}},"responses":{"200":{"description":"История успешно включена.\n","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"success":{"type":"boolean","description":"Успешный ответ"},"stories_id":{"type":"integer","description":"ID истории"},"activated_at":{"type":"string","description":"Дата включения истории. Формат: `ГГГГ-ММ-ДД ЧЧ:ММ:CC`\n"}}}}}}}},"400":{"description":"Некорректный запрос.\nВозможные причины:\n- Токен не передан в заголовке `Authorization`\n- Отсутствуют обязательные параметры\n- Неверный формат данных\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Неавторизованный доступ.\nВозможные причины:\n- Токен недействителен или просрочен\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"404":{"description":"История не найдена или у вас нет разрешения на доступ к ней.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"409":{"description":"История уже активирована.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера. Не удалось включить историю.\n","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Получение списка ККТУ (Классификатор товаров и услуг)

> Возвращает список ККТУ с возможностью фильтрации по названию и коду.\
> Метод работает с GET запросами. Все параметры передаются в query string.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Dictionary","description":"Группа методов для работы со словарями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/dictionary.getKktu":{"get":{"summary":"Получение списка ККТУ (Классификатор товаров и услуг)","description":"Возвращает список ККТУ с возможностью фильтрации по названию и коду.\nМетод работает с GET запросами. Все параметры передаются в query string.\n","tags":["Dictionary"],"parameters":[{"name":"search","in":"query","schema":{"type":"string"},"description":"Поиск по названию (регистронезависимый)","required":false},{"name":"q","in":"query","schema":{"type":"string"},"description":"Альтернативный параметр для поиска по названию","required":false},{"name":"code","in":"query","schema":{"type":"string"},"description":"Фильтр по началу кода","required":false},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"Номер страницы для пагинации","required":false},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":50},"description":"Количество элементов на странице","required":false}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"count":{"type":"integer"},"items":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}}}},"pagination":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"total_pages":{"type":"integer"}}}}}}}},"400":{"description":"Неверный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Ошибка авторизации","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"405":{"description":"Метод не разрешен","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Получение списка стран (ОКСМ - Общероссийский классификатор стран мира)

> Возвращает список стран по классификатору ОКСМ с возможностью фильтрации.\
> Данные загружаются из внешнего источника и содержат коды стран и их названия.\
> Метод работает с GET запросами. Все параметры передаются в query string.<br>

```json
{"openapi":"3.0.0","info":{"title":"Vposter API","version":"v3"},"tags":[{"name":"Dictionary","description":"Группа методов для работы со словарями\n"}],"servers":[{"url":"https://vposter.ru/api"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer‑токен, полученный через <a href=\"/dev\" target=\"_blank\">vposter.ru/dev</a>.\nПередаётся в заголовке запроса:\n`Authorization: Bearer <access_token>`\n"}}},"paths":{"/v3/method/dictionary.getCountries":{"get":{"summary":"Получение списка стран (ОКСМ - Общероссийский классификатор стран мира)","description":"Возвращает список стран по классификатору ОКСМ с возможностью фильтрации.\nДанные загружаются из внешнего источника и содержат коды стран и их названия.\nМетод работает с GET запросами. Все параметры передаются в query string.\n","tags":["Dictionary"],"parameters":[{"name":"search","in":"query","schema":{"type":"string"},"description":"Поиск по названию страны или коду (регистронезависимый)","required":false},{"name":"q","in":"query","schema":{"type":"string"},"description":"Альтернативный параметр для поиска по названию или коду","required":false},{"name":"id","in":"query","schema":{"type":"string"},"description":"Фильтр по точному коду страны (трехзначный цифровой код)","required":false},{"name":"ids","in":"query","schema":{"type":"string"},"description":"Фильтр по нескольким кодам стран (через запятую)","required":false},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1},"description":"Номер страницы для пагинации","required":false},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":50},"description":"Количество элементов на странице","required":false}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"object","properties":{"count":{"type":"integer","description":"Количество элементов на текущей странице"},"items":{"type":"array","description":"Массив стран","items":{"type":"object","properties":{"id":{"type":"string","description":"Трехзначный цифровой код страны по ОКСМ"},"value":{"type":"string","description":"Название страны на русском языке"}}}},"pagination":{"type":"object","properties":{"page":{"type":"integer","description":"Текущая страница"},"per_page":{"type":"integer","description":"Количество элементов на странице"},"total":{"type":"integer","description":"Общее количество стран"},"total_pages":{"type":"integer","description":"Общее количество страниц"}}},"filters":{"type":"object","description":"Примененные фильтры (возвращаются только если были использованы)","properties":{"search":{"type":"string"},"q":{"type":"string"},"id":{"type":"string"},"ids":{"type":"string"}}}}}}}}}},"400":{"description":"Неверный запрос","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"401":{"description":"Ошибка авторизации","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"405":{"description":"Метод не разрешен","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```


---

# 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://help.vposter.ru/razrabotchikam/api.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.
