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