Осень 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Лето 2026
Суточный лимит сообщений, отключение 2FA в журнале аудита и сроки ссылок на файлы
У отправки появился суточный предел — 5 000 сообщений в один чат за скользящие
24 часа, сообщения в тред считаются в чат родительского. Рядом действует общий
предел по всем чатам сразу — 30 запросов за 5 секунд. Отказ приходит с 429, и
у него два вида: суточный предел отдаёт обычную ошибку, а лимит на частоту
запросов — текст, а не JSON.
У кнопок описаны пределы: до 8 в строке, не больше 32 строк и 100 на сообщение.
Размер файла size описан 64-битным числом, а ссылка на вложение живёт до
7 дней. Удаление сообщения стирает вложения из хранилища сразу.
Подробнее — в разделах Лимиты, Ошибки, Кнопки и Загрузка файлов.
Ответ 409 описан у методов, где он возможен, и называет конфликтующее поле в
errors[].key — например, email при повторном адресе почты сотрудника.
- POSTНовый сотрудник
- PUTРедактирование сотрудника
- POSTНовый тег
- PUTРедактирование тега
- POSTЗакрепление сообщения
Журнал аудита пополнился событием user_2fa_disabled — сотрудник отключил себе
двухфакторную аутентификацию.
Ссылка на файл из формы живёт 2 часа, а сам файл хранится сутки после отправки —
Обработка форм. Вложенный .html Пачка показывает
просмотром прямо в переписке: скрипты не выполняются, картинки и стили нужно
вшивать в документ — Оформление ответов.
В поле content исходящего вебхука приходят цитаты и списки, а подчёркивание не
отражается. Описания блоков формы, напоминаний и
разметки сверены с поведением API. На странице
Лимиты описан отдельный предел для выборки списка чатов номером
страницы.
Security: фильтр событий пополнился значением User 2fa Disabled — сотрудник отключил себе двухфакторную аутентификациюpachca security list — флаг --event-key принимает значение user_2fa_disabledpachca api POST /messages --spec — размер файла size описан 64-битным числом, у ссылки url указан срок действия до 7 дней, а у кнопок появились пределы: url до 1024 символов и не больше 32 строк в buttonspachca api POST /views/open --spec — у радиокнопки блока radio изначальный выбор задаётся полем checked, как у чекбоксов, а не selected. У пункта списка предел value — 255 символов, а сам options стал обязательнымpachca api POST /tasks --spec и pachca api PUT /tasks/{id} --spec — у priority показаны допустимые границы 1–3, которые проверяет APIpachca api --spec показывает ответ 409 у методов сотрудника, тега и закрепления сообщения и ответ 429 у POST /messages — суточный предел сообщений в чатpachca api GET /tasks --spec — у фильтров chat_ids и performer_ids показан предел в 100 идентификаторов, который проверяет APIsize у файла сообщения и у записи видеозвонка описано 64-битным числом — размер файла может превышать 2 ГБ. Методы Новое сообщение (POST /messages), Редактирование сообщения (PUT /messages/{id}), payload вебхука о видеозвонкеselected у радиокнопки блока radio переименовано в checked — так его называет форма. Модель ViewBlockSelectableOption, метод Открыть форму (POST /views/open)options у блоков select, radio и checkbox стало обязательным — форма без пунктов отклоняется валидациейdescription у пункта выпадающего списка — модель ViewBlockSelectOptionuser_2fa_disabled в перечислении типов аудит-событийЧаты и боты всего пространства, фильтры напоминаний
Владелец пространства может выгрузить перечень всех бесед и каналов, включая закрытые, где он не состоит, и перечень всех ботов, включая тех, кто недоступен ему для редактирования. Настройки таких ботов не раскрываются: приходят только имя и никнейм. Оба метода доступны только Владельцу пространства на тарифе «Корпорация» и требуют отдельных скоупов. Подробнее — в разделе Права и роли.
Список напоминаний научился фильтровать выдачу: по состоянию, автору, ответственным и чатам. Фильтр по чатам заодно расширяет выборку — возвращаются все напоминания указанных чатов, а не только ваши.
Ответ 403 с кодом insufficient_scope теперь содержит заголовок
WWW-Authenticate с недостающим скоупом: причину отказа можно разобрать, не
читая тело ответа. Подробнее — в разделе
Авторизация.
Журнал аудита больше не теряет события при переходе на следующую страницу, когда за одну секунду их записано больше, чем вмещает страница.
Chat: новая операция Get Many Workspace Chats — все беседы и каналы пространства, включая закрытые, с фильтром Activity по состоянию чатаBot: новая операция Get Many Workspace Bots — все боты пространства, у недоступных для редактирования заполнены только Name и NicknameTask: операция Get Many — фильтры Status, Chat IDs, Performer IDs и Author IDSecurity: фильтр событий пополнился значениями Company Chats Accessed и Company Bots AccessedMessage: у вложения с незаполненными Size и Duration Ms эти поля больше не уходят в API нулями. duration_ms: 0 API отклонял ошибкой валидации, и отправка сообщения с файлом падала, хотя руками ничего не заполняли403 insufficient_scope называет недостающий скоуп — он берётся из заголовка WWW-Authenticatepachca chats list-company — все беседы и каналы пространства, включая закрытые, с флагом --activity для выбора состоянияpachca bots list-company — все боты пространства, с флагом --query для фильтра по имениpachca tasks list — флаги --status, --chat-ids, --performer-ids и --author-idpachca security list — фильтр --event-key принимает company_chats_accessed и company_bots_accessedinsufficient_scope берётся из заголовка WWW-Authenticate, а не из текста сообщенияСписок чатов пространства (GET /company/chats)Список ботов пространства (GET /company/bots) и модель CompanyBotResponsestatus, chat_ids, performer_ids и author_id в методе Список напоминаний (GET /tasks)company_chats_accessed и company_bots_accessed в AuditEventKey, значения company_chats:read и company_bots:read в OAuthScopeВход в CLI через браузер, архивные чаты в списке
В CLI появился вход через браузер: команда pachca auth login
вместо выписывания токена в интерфейсе. Токен живёт час, продлевается сам и
хранится в хранилище ключей ОС, а pachca auth logout закрывает доступ на
сервере. Вставка готового токена осталась — это путь для CI и агентов.
Подробнее — CLI: авторизация.
Список чатов научился отдавать архивные. По умолчанию, как и раньше,
возвращаются только активные чаты, а параметр archived добавляет к ним
архивные — при любом значении availability. Отличить один от другого можно по
новому полю archived объекта чата: оно приходит во всех ответах с чатом,
независимо от параметров запроса.
Скоупы group_tags:read и user_status:read стали доступны роли «Сотрудник» и
токенам ботов — теги и статусы сотрудников в API теперь видны тем же, кому они
видны в интерфейсе.
Неизвестное значение entity_type при отправке сообщения больше не приводит к
отправке в чат со случайно совпавшим идентификатором: метод отвечает 400 с
кодом invalid. Регистр значения по-прежнему не важен.
В журнале аудита появились три типа событий: изменение параметров OAuth-клиента бота, выдача клиенту доступа к данным пользователя и отзыв такого доступа. Состав деталей каждого — в гайде Журнал аудита событий.
Chat: операция Get Many — поле Archived для выдачи архивных чатов вместе с активнымиGroup Tag и User: у чтения тегов и статуса сотрудника убрана пометка о необходимости прав администратора — скоупы group_tags:read и user_status:read доступны сотрудникам и ботамSecurity: фильтр событий пополнился значениями Bot OAuth Client Updated, OAuth Authorization Granted и OAuth Authorization RevokedMessage: Unfurl (поле Link Previews)pachca auth login — вход через браузер вместо ручной вставки токена. Токен живёт час и продлевается сам; --token и PACHCA_TOKEN остаются для CI и агентов--insecure-storage или PACHCA_SECRET_STORE=filepachca auth status и pachca auth list — способ входа, срок жизни токена, выданные права и где хранится токенpachca auth logout — гасит токен входа через браузер на сервере, а не только удаляет профиль с машиныPACHCA_SCOPE_ERROR и поле scopepachca auth status --remote — права по данным сервера, а не сохранённые при входеpachca auth login --token - — чтение токена из потока ввода, чтобы секрет не попадал в историю оболочкиpachca auth switch — сообщает о нечитаемом секрете и истёкшем токене сразу при переключенииpachca doctor — отдельная проверка хранилища ключей, способ входа и срок токена; заблокированное хранилище больше не выдаётся за недействительный токенpachca doctor — проверяет адрес API из настроек, а не всегда облачныйpachca chats list — флаг --archived для выдачи архивных чатов вместе с активнымиpachca security list — фильтр --event-key принимает bot_oauth_client_updated, oauth_authorization_granted и oauth_authorization_revokedarchived в модели чата и одноимённый параметр запроса в методе Список чатов (GET /chats)bot_oauth_client_updated, oauth_authorization_granted и oauth_authorization_revoked в AuditEventKey и модели их деталейПроверка имени файла, уточнения в журнале аудита и страница «Права и роли»
Имя файла в сообщении теперь проверяется: расширение в name должно совпадать
с расширением файла в key, иначе метод ответит 422. Так один тип файла
больше нельзя замаскировать под другой. Базовую часть имени по-прежнему можно
менять, подробнее — в разделе Загрузка файлов.
Уточнили описание журнала аудита. Детали событий видеозвонка теперь описаны
отдельно для начала звонка, его завершения и готовой записи, у изменения
профиля появился признак обновления через SSO, а детали удаления бота и
перевыпуска его токена больше не описаны как пустые. Поля ip_address и
user_agent отмечены как необязательные: у событий, записанных без запроса
пользователя, они приходят пустыми.
Были обновлены следующие методы:
Ещё в описание исходящего вебхука о сообщении добавили поле changed_at — оно
приходило и раньше, но в документации его не было.
Появилась новая страница Права и роли. На ней собрано, как связаны роль в пространстве и роль в чате, кто и что видит в закрытых беседах и каналах, и какие права нужны частым методам.
Заодно перестроили гайд Журнал аудита событий: в нём появились структура записи, состав деталей для каждого типа события, разбор фильтров и приём для регулярной выгрузки в SIEM.
Message: в описании поля Files сказано, что расширение в name должно совпадать с расширением файла в keypachca api POST /messages --spec и --docs: у поля files[].name описано требование к расширениюpachca api GET /audit_events --spec: уточнён состав деталей событий видеозвонков, user_updated, bot_deleted и bot_token_recreatedpachca messages list: в примерах появился шаг сценария «Получить список активных тредов за период»ip_address и user_agent в записи журнала аудита стали nullableAuditDetailsVideoCallStarted, AuditDetailsVideoCallFinished и AuditDetailsVideoCallRecording (была одна AuditDetailsVideoCall на начало и завершение)started_message_id в деталях всех трёх событий видеозвонка, recording_id и file_id — в деталях готовой записиcontext в деталях события user_updated и модель AuditDetailsBot для событий bot_deleted и bot_token_recreatedchanged_at в payload исходящего вебхука о сообщении (MessageWebhookPayload)files[].name в методах POST /messages и PUT /messages/{id}: расширение должно совпадать с расширением файла в keyУточнения в описании API
Подробнее описали поведение нескольких методов и полей. Работа API не менялась.
Были уточнены следующие методы:
- GETЖурнал аудита событий — параметр
end_timeвключает верхнюю границу: выборка за период захватывает событие, попавшее ровно на неё. - GETСвой статус и GETСтатус сотрудника
— если статус не установлен, метод отвечает
200и теломnull.
Уточнены описания полей моделей:
- У 32 полей описано, в каком случае приходит
null. Например,last_activity_atпуст, пока сотрудник ни разу не заходил в Пачку. display_avatar_urlиdisplay_nameприходят только у сообщений от ботов.nameу реакции заполнено всегда.last_name,departmentиtitleу незаполненного значения приходят какnullлибо как пустая строка.first_nameприходит какnull, пока приглашённый сотрудник не завершил регистрацию, то есть покаinvite_statusравенsent.valueу дополнительного поля приходит какnull, если поле не заполнено. Число передаётся строкой, дата — в формате ISO 8601.
POST/PATCH) больше не повторяется автоматически при 5xxBot: ресурс открывается на Get Many вместо Recreate own bot tokenUser: у операций со статусом и аватаркой вернулся выбор сотрудника вместо числового поляUser → Update Avatar и Chat → Download Export работают при выборе сущности из списка или по ссылкеwebhook_timestamp отклоняется, если задан секрет подписиfiles direct-url: файл добавляется в форму последнимfiles direct-url не падает при успешной загрузке--profile не перебивается переменной PACHCA_TOKENchats download-export: имя файла из Content-Disposition не уводит запись за пределы указанной папки-o csv: ячейки с =, +, -, @ экранируются, объекты и массивы выводятся как JSONdetails в журнале аудита (GET /audit_events) читается во всех языкахApiError: поле payload принимает вложенный объектViewBlockUnion) не теряют данныеRaw с исходным JSONfirst_name у сотрудника, value у дополнительного поля, display_avatar_url и display_name у сообщения стали опциональнымиReaction.name больше не nullablenull; исправлены примеры callback_id и private_metadata для формadditionalProperties даёт значение произвольного типа, а не строку. В Kotlin для него используется JsonElementСамостоятельные треды и аудит видеозвонков
Появился метод POSTНовый самостоятельный тред — создание треда, не связанного с сообщением. Тело запроса не требуется, создатель становится единственным участником треда. Метод требует скоуп threads:create. Поскольку у такого треда нет исходного сообщения, поля message_id и message_chat_id в объекте треда теперь могут возвращаться как null — это касается всех методов работы с тредами.
В журнале аудита появились типы событий видеозвонков: video_call_started, video_call_finished и video_call_recording_ready. Их можно фильтровать параметром event_key. В деталях события возвращаются chat_id, длительность и (для записи) размер файла.
Thread: операция Create a standalone thread — создание треда без привязки к сообщениюSecurity: в фильтр событий добавлены video_call_started, video_call_finished, video_call_recording_readypachca threads create — создание самостоятельного треда без привязки к сообщению--help больше не смешиваются между командами с общим путёмНовый самостоятельный тред (POST /threads) — создание треда без привязки к сообщениюThread поля message_id и message_chat_id стали nullable (null для самостоятельного треда)video_call_started, video_call_finished, video_call_recording_ready и модели деталей AuditDetailsVideoCall, AuditDetailsVideoCallRecordingСписок и удаление ботов, права доступа бота, вебхуки видеозвонков
Появились методы для управления ботами. Метод GETСписок ботов возвращает ботов, которые вы можете редактировать, с поиском по имени. Метод DELETEУдаление бота удаляет бота: прежний токен сразу инвалидируется, бот исключается из чатов, его исходящий вебхук удаляется. Оба метода требуют скоуп bots:read и bots:write соответственно.
При создании и редактировании бота добавились настройки прав доступа: who_can_add — кто может добавлять бота в чаты (creator, creator_admin, creator_admin_user, anyone), и can_edit — роли, которым, помимо создателя, разрешено редактировать настройки бота (admin, chat_owners). При создании также можно передать single_chat — ограничить бота одной беседой или каналом (личные чаты и треды в ограничение не входят). Все три поля возвращаются в объекте бота.
Появился новый тип исходящего вебхука — события видеозвонков: video_call_started, video_call_finished и video_call_recording_ready. Вебхук приходит для видеозвонков в чатах, где состоит бот. Подробнее о payload — в гайде Настройка и типы событий.
В журнале аудита появился тип события bot_deleted — удаление бота. Его можно фильтровать параметром event_key.
В поиске сотрудников у параметра sort появилось значение creation — сортировка по дате создания (в дополнение к by_score и alphabetical).
Get Many (список ботов) и Deletewho_can_add, can_edit, single_chat в операциях Create и Updatevideo_call_started, video_call_finished, video_call_recording_readyCreation (по дате создания)pachca bots list — список ботов с поиском по имени (--query)pachca bots delete — удаление бота по его idpachca bots create и bots update — права доступа бота: --who-can-add, --can-edit, --single-chatpachca search users — значение сортировки --sort creation (по дате создания)Список ботов (GET /bots) — список ботов с поиском по имениУдаление бота (DELETE /bots/{id})who_can_add, can_edit, single_chatVideoCallWebhookPayload и события video_call_started, video_call_finished, video_call_recording_readybot_deletedGET /search/users): значение сортировки creation (по дате создания)VideoCallWebhookPayload)Ротация токена бота и новые настройки вебхука
Токен бота теперь можно перевыпускать через API. Метод POSTРотация токена бота доступен администратору, владельцу компании или создателю бота по скоупу bots:write. Метод POSTРотация собственного токена бота позволяет боту перевыпустить токен самому себе по скоупу bot_self:write. Прежний токен инвалидируется сразу, новый возвращается в ответе один раз — сохраните его.
При создании и редактировании бота добавились две настройки вебхука: ignore_self_messages — игнорировать входящие сообщения, отправленные самим ботом (защита от зацикливания), и events_history_enabled — сохранять историю событий для получения через метод GETИстория событий. Оба поля также возвращаются в объекте бота.
В журнале аудита появились новые типы событий, связанные с управлением ботами: bot_token_recreated (ротация токена), bot_scopes_updated (изменение скоупов токена) и bot_webhook_settings_updated (изменение настроек вебхука). Их можно фильтровать параметром event_key.
Bot: новая операция Recreate Token — ротация токена бота по IDBot: новая операция Recreate Token Self — бот перевыпускает собственный токенBot: настройки вебхука Ignore Self Messages и Events History Enabled на Create/Update и в ответеChat (Request Export, Download Export), unfurl — в Message, информация о токене — в новом OAuth. Старые workflow (Chat Export/Link Preview/Profile → Get Info) продолжают работатьfiles/custom-properties/oauth вместо common, экспорт чата → chats, unfurl → messages. Старые имена продолжают работать (скрытые алиасы)pachca bots recreate-token — ротация токена бота по его id (нужны права администратора, владельца или создателя бота)pachca bots recreate-token-self — бот перевыпускает собственный токен своим же токеномpachca bots create и bots update — настройки вебхука --ignore-self-messages и --events-history-enabledРотация токена бота (POST /bots/{id}/recreate_token)Ротация собственного токена бота (POST /bot/recreate_token)ignore_self_messages, events_history_enabledbot_token_recreated, bot_scopes_updated, bot_webhook_settings_updatedclient.files, дополнительные поля — client.customProperties, информация о токене — client.oauth, unfurl — client.messages.unfurl() (бывш. createLinkPreviews). Старые имена (client.common, client.linkPreviews.createLinkPreviews(), client.profile.getTokenInfo()) продолжают работать как deprecated-алиасы — существующий код не ломаетсяclient.common и т.п.) сохраняются как рабочие, но скрытые из примеров аксессоры (обратная совместимость SDK)Настройки входящего вебхука бота и сортировка в поиске сообщений
При создании и редактировании бота теперь можно настроить его входящий вебхук: шаблон форматирования template, шаблонизатор template_engine (liquid или mustache), поле верификации challenge_key и показ превью ссылок link_preview_enabled. Эти же поля возвращаются в объекте бота. Подробнее о шаблонах и верификации — в гайде Входящие вебхуки.
В поиске сообщений появился параметр sort — сортировка результатов: created_at (по дате создания, по умолчанию) или relevance (по релевантности).
Create/Update и в ответе — Template, Template Engine, Challenge Key, Link Preview EnabledSort (сортировка Created At или Relevance)pachca bots create — настройки входящего вебхука: --template, --template-engine, --challenge-key, --link-preview-enabledpachca bots update — настройки входящего вебхука: --template, --template-engine, --challenge-key, --link-preview-enabledpachca search list-messages — параметр --sort (сортировка: created_at или relevance)template, template_engine, challenge_key, link_preview_enabledsort в поиске сообщений (GET /search/messages): created_at или relevanceNameError в авто-ретрае при ответах 429 и 5xxNameError на 429/5xx)Настраиваемые скоупы ботов и саморегистрация вебхука
Теперь при создании и редактировании бота можно задать скоупы его токена — параметр scopes. Если он не указан, бот получает набор по умолчанию. Текущие скоупы бота возвращаются в объекте бота в поле scopes.
Бот может самостоятельно изменить URL своего исходящего вебхука своим же токеном — без участия администратора и без знания собственного user_id. Для этого нужен скоуп bot_self:webhook:write.
Scopes (выбор скоупов токена) и поле scopes в ответеUpdate Webhook — саморегистрация исходящего вебхука бота его токеномpachca bots create — параметр --scopes (выбор скоупов токена бота)pachca bots update — параметр --scopes (изменение скоупов токена бота)pachca bots update-webhook — саморегистрация исходящего вебхука бота его собственным токеномscopes (выбор скоупов токена) и поле scopes в ответеСаморегистрация вебхука бота (PUT /bot/webhook)Создание ботов через API, голосовые сообщения
Теперь бота можно создать и получить через API, а не только в интерфейсе. При создании вы получите access_token бота — сразу сохраните его, повторно получить токен можно только через интерфейс.
Новые и обновлённые методы для ботов:
Появилась поддержка голосовых сообщений. В сообщении возвращается объект voice_content с длительностью, формой волны и расшифровкой, а при отправке файла с file_type = voice принимаются параметры duration_ms и waveform.
В payload вебхука реакции поле created_at теперь приходит и при удалении реакции. Также в деталях события аудита DLP поле action_message может быть null, если у действия правила не задан текст.
Create и Getvoice_content и параметры файла duration_ms / waveformpachca bots create — создание бота и получение его access_tokenpachca bots get — получение параметров ботаpachca bots update — новые поля --name, --nickname, --events, --trigger-on, --commandsvoice_content и параметры файлов --duration-ms / --waveform для голосовыхНовый бот (POST /bots) и Информация о боте (GET /bots/{id})voice_content в модели сообщения и параметры файлов duration_ms / waveform для голосовыхWebhook-модели и polling в SDK
SDK стали точнее типизировать payload вебхуков и получили helpers для polling истории событий. Это упрощает обработку вебхуков без публичного webhook URL и сохраняет discriminator-поля для маршрутизации событий в коде.
Был обновлен следующий метод:
type и дополнительный дискриминатор eventtype и дополнительные литералы вроде event[] / {} и не теряются из-за omitemptyMarshalJSON, чтобы сохранять явные пустые контейнеры в JSON