Осень 2026
Вход по QR-коду в журнале аудита
Журнал аудита записывает вход в мобильное приложение по QR-коду с экрана компьютера. Появились события login_grant_created, login_grant_approved и login_grant_denied: код открыт, вход подтверждён или отклонён. У события user_login при таком входе в деталях приходят способ входа и идентификатор, который связывает все события одного входа. Подробнее — в разделе Вход по QR-коду в журнале.
Ещё изменения:
- Метод GETПоиск сообщений ищет строгой фразой запрос, целиком взятый в кавычки, в том числе типографские
«…»,“…”или„…“.
Были обновлены следующие методы:
Security: фильтр событий пополнился событиями входа по QR-коду — Login Grant Created, Login Grant Approved и Login Grant Deniedpachca security list — флаг --event-key принимает события входа по QR-коду: login_grant_created, login_grant_approved и login_grant_deniedlogin_grant_created, login_grant_approved и login_grant_denied и модели их деталей с моделью устройства AuditLoginGrantDevice и перечислениями AuditLoginGrantDevicePlatform и AuditLoginGrantDenyReasonAuditDetailsUserLoginQr — детали user_login при входе по QR-кодуНомер выгрузки в ответе, аватар бота и OAuth в SDK
Метод POSTЭкспорт сообщений может сразу вернуть номер выгрузки: с заголовком Prefer: return=representation он отвечает статусом 202 и номером в теле. По этому номеру архив забирают методом GETСкачать архив экспорта, когда сборка закончится, и вебхук для этого не нужен. SDK, CLI и нода n8n передают заголовок сами. Подробнее — в разделе Экспорт сообщений.
Аватар бота теперь можно поставить и убрать через API. Это доступно тем, кто может редактировать настройки бота.
Были добавлены новые методы:
Обмен кода на токен и отзыв токена описаны в справочнике методов, рядом с остальными методами API. В SDK у них появились свои методы, а ссылку для кнопки авторизации и пару PKCE SDK собирает сам. Как пройти авторизацию от имени сотрудника целиком — в разделе Получение токена.
Ещё изменения:
- Ответ
429методов API при превышении лимитов приходит вJSON, как остальные ошибки. Подробнее — на странице Лимиты. - При блокировке отправки сообщений за перегрузку ответ сообщает, сколько осталось до снятия блокировки. Подробнее — на странице Лимиты.
- В части пространств метод POSTПолучение подписи, ключа и других параметров отдаёт другой набор полей формы. Передавайте в форме загрузки все поля из ответа, кроме адреса: SDK, CLI и нода n8n так и делают. Подробнее — на странице Загрузка файлов.
- Списки и поиск отвечают ошибкой на нецелое число записей на странице. Подробнее — на странице Пагинация.
- Метод POSTНовый чат возвращает идентификаторы сотрудников, которых не удалось добавить в чат.
- Поиск в методе GETСписок сотрудников сообщает, что страницы закончились. Подробнее — на странице Пагинация.
- Метод GETИнформация о боте отдаёт адрес входящего вебхука, секрет подписи исходящего и тело последнего запроса на входящий вебхук. Они приходят токену со скоупом
bots:write, если вы можете управлять токенами бота. - Метод GETИнформация о токене отдаёт дату входа из CLI или выдачи доступа внешнему приложению.
- Бесплатное пространство отправляет ограниченное число писем-приглашений за сутки. Подробнее — на странице Лимиты.
- Редактирование сотрудника применяется целиком: если новая почта занята, остальные поля тоже не меняются.
- В тег можно добавить только бота, которого может добавить в чат любой сотрудник. Подробнее — в разделе Бот в тегах.
Были обновлены следующие методы: POSTЭкспорт сообщений, GETСкачать архив экспорта, GETИнформация о боте, PUTРедактирование бота, POSTНовый сотрудник, PUTРедактирование сотрудника, POSTДобавление тегов, POSTНовый чат, GETСписок сотрудников, POSTПолучение подписи, ключа и других параметров, POSTЗагрузка файла, GETИнформация о токене.
Chat: операция Request Export сразу возвращает номер выгрузки в id — с ним Download Export забирает архив, когда тот соберётсяChat: операция Create отдаёт в not_found_member_ids идентификаторы из Member IDs, которых не удалось добавить в чатBot: операции Update Avatar и Delete Avatar — аватар ботаBot: операция Get отдаёт в Webhook адрес входящего вебхука, секрет подписи и тело последнего запроса, если у токена есть скоуп bots:write и вы можете управлять токенами ботаForm: в операции Create поля Close Text и Submit Text по умолчанию пустые — тогда кнопки подписывает Пачка: «Отменить» и «Отправить»Message: в операции Create поле Content необязательно — сообщение можно отправить из одних файловProfile и User: в операции Update Status поля Emoji и Title нужны, только когда статуса ещё нет — продлить статус можно одним Expires AtFile: операция Create передаёт в форме загрузки acl и bucket, только если они пришли: в части пространств метод Получение подписи, ключа и других параметров отдаёт bucket вместо aclpachca chats request-export выводит номер выгрузки id: с ним pachca chats download-export забирает архив, когда тот соберётсяpachca chats create предупреждает в stderr об идентификаторах из --member-ids, которых не удалось добавить в чатpachca bots update-avatar и bots remove-avatar — аватар ботаpachca bots get: в webhook приходят адрес входящего вебхука url, секрет подписи secret_token и тело последнего запроса last_request_body, если у токена есть скоуп bots:write и вы можете управлять токенами ботаpachca messages create отправляет сообщение без --content, если к нему приложены файлыpachca profile update-status и pachca users update-status: --emoji и --title нужны, только когда статуса ещё нет — продлить статус можно одним --expires-atpachca upload передаёт в форме загрузки acl и bucket, только если они пришли, а у pachca files direct-url флаг --acl необязателен и есть флаг --bucket: в части пространств метод Получение подписи, ключа и других параметров отдаёт bucket вместо aclЭкспорт сообщений (POST /chats/exports) возвращает модель ChatExport с идентификатором выгрузки: SDK передаёт заголовок Prefer: return=representationСкачивание файла (GET /files/{id}) возвращает содержимое файла: Blob в TypeScript, bytes в Python, []byte в Go, ByteArray в Kotlin, Data в Swift и byte[] в C#Новый чат (POST /chats) возвращает ответ целиком в модели CreateChatResponse: чат в data, а в meta.not_found_member_ids — идентификаторы из member_ids, которых не удалось добавить. Код, который брал поля чата из результата, берёт их из data.ApiError — для ответа с массивом errors, OAuthError — для ответа с кодом в поле error, в том числе 403 с insufficient_scope или role_forbiddenvalue class со строкой value, в Swift — enum со случаем unknown(String), в C# — структура со строкой Value. В Python такое значение — элемент перечисления с исходной строкой в value и is_known, равным False. Код, который перебирает значения такого перечисления, дописывает ветку для незнакомого: else в when в Kotlin, default или case .unknown в switch в Swift, а в C# сравнивает через == или switch по Value вместо case. Перечисления, которые встречаются только в запросах, прежние.error в OAuthError — перечисление OAuthErrorCode. В TypeScript поле — строка, а OAuthErrorCode перечисляет её значения.acl в UploadParams и FileUploadRequest необязательно, и добавлено поле bucket: в части пространств метод Получение подписи, ключа и других параметров отдаёт bucket вместо acl, а метод Загрузка файла передаёт в форме только заданные поля401, тело которого не разбирается, приходит обычной ошибкой HTTP 401: …, как ответы с другими кодамиОбмен кода на токен (POST /oauth/token) и Отзыв токена (POST /oauth/revoke) в сервисе oauth — для бота, который получает токен сотрудникаbuildAuthorizeUrl и createPkce в TypeScript, в остальных языках по их правиламЗагрузка аватара бота (PUT /bots/{id}/avatar) и Удаление аватара бота (DELETE /bots/{id}/avatar)url, secret_token и last_request_body в объекте webhook бота — приходят в методе Информация о боте (GET /bots/{id})authorized_at в AccessTokenInfo — дата входа из CLI или выдачи доступа внешнему приложению, приходит в методе Информация о токене (GET /oauth/token/info)daily_invites_limit и restricted_bot_tag_deniedCreateChatResponse и ListChatsResponse, создаются в коде публичным инициализатором — так заглушка сервиса в тесте возвращает ответvalue в ApiErrorItem принимает любое JSON-значение, как его отдаёт API: строку, число, массив, а иногда логическое значение или объект, например список id ботов у кода bot_add_denied. Тип поля — unknown в TypeScript, Any в Python, any в Go, JsonElement в Kotlin, AnyCodable в Swift и object в C#.content в MessageCreateRequest — для сообщения из одних файлов — и emoji с title в StatusUpdateRequest — для продления статуса одним expires_atsize у файла в MessageCreateRequest необязательно, как при правке сообщения и в черновике: черновик отправляют, передав key, name и file_type его файловstarted_at и duration в VideoCallWebhookPayload и duration в AuditDetailsVideoCallFinished бывают null — у звонка, который завершился, так и не начавшись. В Go StartedAt — *string, как остальные даты, которые бывают null.members в VideoCallWebhookPayload — список WebhookVideoCallMemberExportWebhookPayload — тело вебхука о готовой выгрузкеAuthorization. В C# такой запрос через переданный HttpClient с токеном в DefaultRequestHeaders уходит через отдельный клиент.Prefer: return=representation, сгенерированный метод передаёт сам, а ответ 202 с телом становится его результатомapplication/octet-stream) становится результатом метода: сгенерированный метод возвращает содержимое файла в типе своего языка{ data: T, meta } с одним объектом в data сгенерированный метод возвращает целиком, как ответ списка: в типе ответа, например CreateChatResponse, есть data и meta. Описанный прямо в ответе meta становится отдельной моделью, например CreateChatResponseMeta.application/x-www-form-urlencoded: сгенерированный метод передаёт поля запроса формойx-oauth-authorize-url у операции: SDK получает функции, которые собирают ссылку авторизации и пару PKCEApiError для массива errors, OAuthError для кода в поле errorerror в OAuthError ссылается на перечисление, поле получает тип этого перечисления во всех языках, кроме TypeScript401, тело которого не разбирается, приходит ошибкой HTTP 401: … с причиной через %w, как ответы с другими кодамиlist[X] | None) в ответе разбирается по типу своих элементовname[]=value по расширению x-query-array: brackets у параметра. Без расширения значение повторяется под тем же именем: name=a&name=b.anyOf из строк, чисел, логических значений, массивов и объектов без $ref — становится открытым JSON-значением: unknown в TypeScript, Any в Python, any без указателя в Go, JsonElement в Kotlin, AnyCodable в Swift и object в C#200, 201, 202 или 204x-requirements: { auth: false }) уходит без заголовка Authorization, даже если токен задан в заголовках клиента по умолчаниюmeta в типе ответа разбирается из тела, когда ответ его содержитrequest:, как в сигнатуре методаРаздел «Интеграции», API ботов и авторизация от имени сотрудника
В Пачке обновился раздел Интеграции: боты пространства и их карточки с настройками, токенами и вебхуками, витрина ботов и страница API с персональными токенами, входами в CLI и авторизациями. Администратор видит на ней все выданные в пространстве доступы и может отозвать любой. Документация ботов собрана заново под этот раздел: Обзор, Создание бота, Настройки бота, Токены бота, Доступы к чатам и сообщениям, Общение с ботом и Витрина.
В документации появился новый раздел Авторизация от имени сотрудника. Он про ботов, которые работают с данными сотрудника его правами: сотрудник один раз соглашается на экране согласия, и дальше бот действует от его имени в Пачке и в связке с другими сервисами. Раздел описывает настройку авторизации, получение токена, согласие и отзыв доступа, а в чек-листе запуска собрано всё, что должно быть включено у бота.
Публичный API ботов теперь умеет всё, что раздел Интеграции: бота можно создать пустым, как в интерфейсе, выпустить ему несколько токенов со своими правами, включить авторизацию от имени сотрудника и заполнить страницу в витрине. Подробнее — в разделах Токены бота и Настройка авторизации.
Были добавлены новые методы:
- GETСписок токенов бота
- POSTНовый токен бота
- PUTИзменение токена бота
- POSTПеревыпуск токена бота
- DELETEУдаление токена бота
- GETКаталог прав бота
- POSTРотация секрета клиента
- PUTЗагрузка аватара чата
- DELETEУдаление аватара чата
Ещё изменения:
- Журнал аудита записывает выдачу и отзыв каждого доступа к API: персональных
токенов, входов в CLI, токенов ботов и авторизаций от имени сотрудника. В
деталях событий видно вид токена, его название, владельца и права.
Появились события
bot_token_deleted,oauth_token_revokedиbot_oauth_client_secret_issued. Подробнее — в разделе Токены и авторизации в журнале. - Новый метод PUTОтметка чата непрочитанным помечает чат непрочитанным для владельца токена, как одноимённое действие в интерфейсе.
- Аватар беседы или канала ставится и убирается через API, а ссылка на него
приходит в новом поле
avatar_urlчата. - Мульти-гость работает с API наравне с сотрудником: создаёт персональные токены, входит в CLI и авторизует ботов. Через API он видит то же, что в интерфейсе. Подробнее — в разделе Мульти-гость в API.
- Если скоуп у токена есть, а текущая роль владельца не позволяет действие,
ответ
403приходит с кодомrole_forbidden: повторная авторизация тут не поможет. Подробнее — в разделе Ошибки авторизации. - Настройка «Игнорировать свои сообщения» не присылает боту его собственные реакции, а реакции других участников на сообщения бота приходят всегда.
- Бота с настройкой «Ограничить одним чатом», который уже состоит в беседе или канале, нельзя добавить во второй такой чат и через API. В теги такого бота не добавить, а при включении настройки он выходит из всех тегов.
- Метод PUTРедактирование сотрудника у бота меняет только имя,
ник, теги и
suspended, остальные поля в запросе пропускает. - В вебхуке о ссылке появились тип чата, его идентификатор и тред, как в вебхуке о новом сообщении.
- В формах у радиокнопок и чекбоксов до 20 вариантов.
- Поиск по сотрудникам, чатам и сообщениям и поиск в списке сотрудников отвечают отдельной ошибкой, если запрос не уложился по времени.
- Голосовое сообщение длиннее 30 минут отклоняется.
- В пространстве с продвинутым шифрованием текст сообщения ограничен 27 000 байт. Подробнее — в разделе Шифрование и безопасный контур.
- Информацию о напоминании получает каждый, кому доступен его чат, по тому же правилу, что у фильтра по чатам в списке напоминаний.
Были обновлены следующие методы: POSTНовый бот, PUTРедактирование бота, GETИнформация о боте, GETСписок ботов, GETСписок ботов пространства, GETЖурнал аудита событий, POSTДобавление пользователей, POSTНовый чат, GETСписок чатов, GETИнформация о чате, PUTРедактирование чата, GETСписок чатов пространства, PUTРедактирование сотрудника, GETСписок сотрудников, GETСписок тегов, GETПоиск сотрудников, GETПоиск чатов, GETПоиск сообщений, POSTНовое сообщение, PUTРедактирование сообщения, POSTОткрытие представления, POSTНовый черновик, PUTРедактирование черновика, GETИнформация о напоминании.
Bot: операции Get Many Tokens, Create Token, Update Token, Reissue Token и Delete Token — у бота может быть несколько токенов, у каждого своё имя и права. Операция Get Scopes отдаёт каталог прав, которые можно выдать боту.Bot: операция Rotate Client Secret — новый client_secret для авторизации от имени сотрудникаBot: у Create и Update появились поля OAuth Client и Promo — авторизация от имени сотрудника и страница бота в витрине, а также Kind и Unfurl Domains. У Create — Empty для бота без токена, у Update — Single Chat.Chat: операция Mark Unread — отметка чата непрочитанным для владельца токенаChat: операции Update Avatar и Delete Avatar — аватар беседы или канала. В ответах с чатами появилось поле avatar_url.Security: фильтр событий пополнился восемью событиями — выпуск, изменение, перевыпуск и удаление токена бота, выпуск и обновление секрета клиента, выключение авторизации и отзыв токена самим приложениемTrigger: событие о ссылке приносит entity_type, entity_id и thread, как событие о новом сообщенииBot: значение Anyone поля Who Can Add описано как публичный бот, которого гости и мульти-гости не добавляютMessage и Task: подсказки к полю Content и к фильтру Chat IDs описывают, что меняется для мульти-гостяMessage, Draft и Task: подсказка к полю Content называет предел длины текста — 40 000 байтMessage: подсказка к полю Parent Message ID описывает ответ с цитатой в любом чате, в том числе в треде: ответ отправляют в тот же чат или тред, где лежит исходное сообщениеBot: подсказка к полю Ignore Self Messages говорит, что настройка не присылает боту и его собственные реакцииCredentials: подсказка Webhook Allowed IPs перечисляет все три адреса, с которых Пачка отправляет вебхукиpachca bots list-tokens, create-token, update-token, reissue-token и delete-token — токены бота, у каждого своё имя и права. pachca bots list-scopes — каталог прав, которые можно выдать боту.pachca bots rotate-client-secret — новый client_secret для авторизации от имени сотрудникаpachca bots create и bots update: флаги --oauth-client и --promo для авторизации от имени сотрудника и страницы бота в витрине, --kind и --unfurl-domains. У bots create — --empty для бота без токена, у bots update — --single-chat.pachca chats mark-unread — отметка чата непрочитаннымpachca chats update-avatar и chats remove-avatar — аватар беседы или канала. В выводе команд с чатами появилось поле avatar_url.pachca security list — флаг --event-key принимает восемь новых событий: bot_token_created, bot_token_updated, bot_token_reissued, bot_token_deleted, bot_oauth_client_secret_issued, bot_oauth_client_secret_rotated, bot_oauth_client_disabled и oauth_token_revokedpachca search users, search chats, search messages и users list: в справке описан ответ 504 с кодом timeout, если поиск не уложился по времени, а у файлов в messages create, messages update и drafts — предел голосового в 30 минутpachca auth login — вход через браузер передаёт имя устройства, по которому вход узнаётся в списке токенов CLIpachca guide: сценарии разворачивания ссылок и поллинга описывают раздел «Интеграции» — событие ссылок с доменами и история событий без Webhook URLpachca messages create, messages update и tasks list: подсказки к --content и --chat-ids описывают, что меняется для мульти-гостяpachca messages create, messages update, drafts create, drafts update, tasks create и tasks update: в справке к --content указан предел длины текста — 40 000 байт, а в пространстве с продвинутым шифрованием 27 000pachca messages create: подсказка к --parent-message-id описывает ответ с цитатой в любом чате, в том числе в треде. В описаниях тредов сказано, какой идентификатор куда передавать: id — чтобы написать в тред, chat_id — чтобы прочитать его сообщения.401 CLI подсказывает, что делать дальше: войти заново, если вход через браузер отозван или завершён, или сохранить новый токен. В подсказку подставлен профиль, с которым запускалась команда.pachca views open: в справке у блоков radio и checkbox до 20 вариантовpachca bots create и bots update: справка к --ignore-self-messages говорит, что настройка не присылает боту и его собственные реакцииpachca bots list-events: в справке у события отправки формы сказано, что chat_id фиксируется при открытии формы, а не при её отправкеpachca chats create, members add и users update: в справке описаны отказы для бота с настройкой «Ограничить одним чатом» — single_chat_bot_occupied, если он уже состоит в другой беседе или канале, и single_chat_bot_tag_denied при добавлении в тег. У users update сказано, что у бота меняются только имя, ник, теги и suspended.pachca tasks get: в справке сказано, что напоминание видят все, кому доступен его чат, по тому же правилу, что у фильтра --chat-ids в tasks listСаморегистрация вебхука бота (PUT /bot/webhook) и Ротация собственного токена бота (POST /bot/recreate_token) отвечают своими моделями BotSelfResponse и BotSelfTokenResponse: кроме id и настроек вебхука, в них есть oauth_clientaccess_token в ответе Новый бот (POST /bots) стало необязательным: у бота, созданного с empty: true, токена нет. Объект webhook в запросе Редактирование бота (PUT /bots/{id}) тоже больше не обязателен.Список токенов бота (GET /bots/{id}/tokens), Новый токен бота (POST /bots/{id}/tokens), Изменение токена бота (PUT /bots/{id}/tokens/{token_id}), Перевыпуск токена бота (POST /bots/{id}/tokens/{token_id}/reissue), Удаление токена бота (DELETE /bots/{id}/tokens/{token_id}) и Каталог прав бота (GET /bots/{id}/scopes)Ротация секрета клиента (POST /bots/{id}/rotate_client_secret)Новый бот (POST /bots) и Редактирование бота (PUT /bots/{id}): поля oauth_client и promo в запросе, oauth_client, oauth_client_enabled, promo и client_secret в ответе, а также поле empty для пустого ботаname, nickname, avatar_url, creator_id, created_at, authorized_users_count, last_used_at и permissions, у вебхука — kind, unfurl_domains и last_request_at. kind, unfurl_domains и single_chat принимаются и при редактировании.oauth_client у ботов в Список ботов пространства (GET /company/bots)Отметка чата непрочитанным (PUT /chats/{id}/unread) и скоуп chats:mark_unreadЗагрузка аватара чата (PUT /chats/{id}/avatar) и Удаление аватара чата (DELETE /chats/{id}/avatar), поле avatar_url в объекте чатаbot_token_created, bot_token_updated, bot_token_reissued, bot_token_deleted, bot_oauth_client_secret_issued, bot_oauth_client_secret_rotated, bot_oauth_client_disabled и oauth_token_revoked и модели их деталей. У деталей bot_scopes_updated, bot_webhook_settings_updated и bot_oauth_client_updated появились bot_id и actor_id.AuditDetailsToken и AuditDetailsBotTokenUpdated: в деталях событий токенов приходят вид токена token_kind, название, владелец resource_owner_id и скоупы. У oauth_authorization_revoked появился user_id, у событий входа с устройства — device_name.bot_add_denied в ValidationErrorCode — так Добавление пользователей (POST /chats/{id}/members) и Новый чат (POST /chats) отвечают на бота, которого вам не разрешает добавить его настройка «Кто может добавлять бота в чаты»single_chat_bot_occupied, single_chat_bot_tag_denied и bot_changed_concurrently в ValidationErrorCode: так Новый чат (POST /chats) и Добавление пользователей (POST /chats/{id}/members) отвечают 409 на бота с настройкой «Ограничить одним чатом», который уже состоит в другой беседе или канале, а Редактирование сотрудника (PUT /users/{id}) — 422 на попытку добавить такого бота в тег или если настройки бота поменялись во время запросаtimeout и ответ 504 у Поиск сотрудников (GET /search/users), Поиск чатов (GET /search/chats), Поиск сообщений (GET /search/messages) и Список сотрудников (GET /users) — поиск не уложился по времениentity_type, entity_id и thread в вебхуке о ссылке (LinkSharedWebhookPayload)Черновики и отложенные сообщения
В API появились черновики — неотправленные сообщения, которые сотрудник видит в
поле ввода чата и дописывает сам. С полем schedule тот же метод создаёт
отложенное сообщение: оно уходит в назначенное время и может повторяться.
Были добавлены новые методы:
- POSTНовый черновик
- GETСписок черновиков
- GETИнформация о черновике
- PUTРедактирование черновика
- DELETEУдаление черновика
Работают они только с личным токеном: скоупы черновиков токенам ботов не выдаются. Как приём применить агенту — в новом разделе Черновик вместо отправки.
Описан метод скачивания файла. Он нужен вложениям, у которых нет прямой ссылки на хранилище: зашифрованным и отправленным из безопасного контура пространства. Обе настройки разобраны в новом разделе Шифрование и безопасный контур.
У вложений появился тип video и длительность голосового, аудио- и видеофайла.
Описания методов в справочнике переписаны: теперь в каждом сказано, кого метод пускает, что меняется в пространстве после вызова и чего он молча не делает.
429 ждёт не меньше срока из Retry-After. Пауза дольше минуты не повторяется: узел возвращает ошибку вместо того, чтобы держать прогон часамиMessage: подсказка к полю Entity ID объясняет, что в нём лежит в зависимости от Entity Type, а Parent Message ID — что ответ появится в ленте чата, а не в тредеReaction: у поля Code сказано, что нужен сам символ эмодзи — +1 и :+1: отклоняютсяProfile и User: у поля срока статуса сказано, что смещение вида +03:00 учитывается, а время без смещения считается UTCDraft: новый ресурс — операции Create, Get, Get Many, Update и Delete для черновиков и отложенных сообщений. Отложенное создаётся полем Schedule, недоступно токенам ботовMessage: у вложений появился тип Video и поле Duration Ms — длительность голосового, аудио- и видеофайлаTrigger: в объекте треда поля Message ID и Message Chat ID объявлены необязательными — у треда без сообщения-родителя они приходят пустымиChat: у операции Request Export поле Webhook URL больше не обязательноFile: операция Get — скачивание вложения, у которого нет прямой ссылки: зашифрованного или конфиденциального429 ждёт не меньше срока из Retry-After: прежний потолок в 60 секунд убран. Пауза дольше минуты не повторяется — команда сразу возвращает ошибку с заголовкомpachca api <метод> --spec и --docs показывают развёрнутые описания методов: кого метод пускает, что меняется в пространстве после вызова и чем он отличается от соседнегоpachca drafts — черновики и отложенные сообщения: create, get, list, update, delete. Отложенное задаётся флагом --schedule, отменяется удалениемduration_ms и тип videopachca chats request-export больше не требует --webhook-urlpachca files get — скачивание вложения, у которого нет прямой ссылки: зашифрованного или конфиденциального. Путь задаётся обязательным флагом --save429 ждёт не меньше срока из Retry-After — джиттер добавляется вверх, а не вниз. Пауза дольше минуты не повторяется вовсе: ответ возвращается вызывающему коду вместе с заголовкомmessage_id и message_chat_id в объекте треда исходящих вебхуков стали nullable — у треда без сообщения-родителя они приходят nullwebhook_url в запросе Экспорт сообщений (POST /chats/exports) больше не обязательноНовый черновик (POST /drafts), Список черновиков (GET /drafts), Информация о черновике (GET /drafts/{id}), Редактирование черновика (PUT /drafts/{id}) и Удаление черновика (DELETE /drafts/{id})duration_ms в объекте файла и значение video у file_typedrafts:read и drafts:write, события аудита oauth_device_authorization_approved и oauth_device_authorization_denied, пять кодов ошибок расписанияСкачивание файла (GET /files/{id}) — отдаёт содержимое вложения, у которого в url стоит адрес API429 не меньше срока из Retry-After — джиттер добавляется вверх, а не вниз: повтор раньше срока попадает в ещё закрытое окно и продлевает паузуРуководство по тегам
Появилось руководство Теги. Тег — именованная группа сотрудников пространства: его упоминают в сообщении и привязывают к чату, чтобы состав участников поддерживался сам.
В руководстве разобрано, как тег держит состав беседы или канала, что делает
упоминание тега в чате и в треде, как задаётся набор тегов сотрудника через
поле list_tags, чем удаление тега отличается от исключения тега из чата, какие
правила у названий и какие события тег пишет в журнал аудита.
Ответ на форму через журнал событий и рост суточного предела сообщений
Бот без адреса исходящего вебхука теперь может обрабатывать формы: событие
view_submit приходит в журнал событий, а ответить на него можно новым методом.
Был добавлен новый метод:
Отвечать нужно в течение 5 секунд, иначе пользователь увидит ошибку отправки, а значения полей сохранятся для повторной попытки. Подробнее — в разделе Ответ через журнал событий.
Суточный предел сообщений в один чат вырос с 5 000 до 7 500 — Лимиты.
Журнал аудита пополнился событием exchange_disabled — отключена интеграция с
Exchange.
У блока time в формах начальное значение принимается и в формате HH:mm:ss,
секунды при этом отбрасываются. У прикрепляемых файлов описаны пределы длины
пути и названия.
Form: операция Submit Response — ответ на отправку формы для бота без адреса исходящего вебхукаBot: у операции Remove Events поле ID стало строковым — идентификатор события не число, и ввести его было нельзяSecurity: фильтр событий пополнился значением Exchange Disabled — отключена интеграция с Exchangepachca views submit-response — ответ на отправку формы для бота без адреса исходящего вебхукаpachca security list — флаг --event-key принимает значение exchange_disabledpachca api POST /messages --spec — у прикрепляемых файлов показаны пределы длины: key до 1000 символов и name до 255pachca api POST /views/open --spec — у блока time начальное значение принимается и в формате HH:mm:ssview_id и submit_idview_not_found, submit_expired и service_unavailable, тип аудит-события exchange_disabled