Для разработчиков

Модели

Модели данных из ответов API. У каждой модели — таблица свойств и методы, которые с ней работают. Возвращают модель не все из них: удаление и действия вроде закрепления или архивации отвечают 204 без тела, а у отдельных методов своя форма ответа, описанная на их странице.

Методы POSTПолучение подписи, ключа и других параметров, POSTЗагрузка файла, GETСкачивание файла, POSTОтзыв токена и POSTОткрытие представления не связаны ни с одной моделью, поэтому своего раздела у них нет. Первые два отвечают параметрами загрузки и пустым телом, третий — самим файлом, отзыв — пустым объектом, а открытие представления — ответом 201 без тела.

Дополнительное поле

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор поля1678
namestringНазвание поля"Город"
data_typeCustomPropertyDataTypeТип поля"string"

Токен доступа

ПараметрТипОписаниеПример
idinteger(int64)Идентификатор токена4827
tokenstringМаскированный токен (видны первые 8 и последние 4 символа)"cH5kR9mN...x7Qp"
namestring| nullИмя токена. У входа из CLI это имя устройства, у токена внешнего приложения — имя приложения. null, если имени нет, например у токена, который сотрудник выдал боту на экране согласия."Мой API токен"
user_idinteger(int64)Идентификатор владельца токена12
scopesarray of OAuthScopeСписок скоупов токена
[
  "messages:read",
  "chats:read"
]
created_atstring(date-time)Дата создания токена"2025-01-15T10:30:00.000Z"
revoked_atstring(date-time)| nullДата отзыва токена. Всегда null: по отозванному токену метод возвращает 401.null
expires_ininteger(int32)| nullВремя жизни токена в секундах. У входа из CLI и у токена внешнего приложения, которому сотрудник выдал доступ, здесь 3600: токен живёт час и продлевается токеном обновления, CLI делает это сам. У остальных токенов null: они бессрочные.null
last_used_atstring(date-time)| nullДата последнего использования токена. null, пока по токену не было ни одного запроса. Обновляется не чаще раза в минуту, поэтому может отставать."2025-02-24T14:20:00.000Z"
authorized_atstring(date-time)| nullДата входа из CLI или выдачи доступа внешнему приложению. При продлении токена не меняется. У остальных токенов null.null

Токен сотрудника

ПараметрТипОписаниеПример
access_tokenstringТокен сотрудника. Передаётся в заголовке Authorization: Bearer при запросах от его имени."pato_bm90X2FfcmVhbF90b2tlbg"
token_typestringТип токена, всегда Bearer"Bearer"
refresh_tokenstringТокен обновления. Токен сотрудника бессрочный, поэтому обновлять его не нужно."cmVmcmVzaF9ub3RfcmVhbA"
scopestringВыданные права через пробел. Набор берётся из настроек бота."chats:read messages:read tasks:read tasks:create"
created_atinteger(int64)Время выдачи токена в формате Unix time, в секундах1790242260

Статус пользователя

ПараметрТипОписаниеПример
emojistringEmoji символ статуса"🎮"
titlestringТекст статуса"Очень занят"
expires_atstring(date-time)| nullСрок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. null, если срок не задан — такой статус не сбрасывается автоматически."2024-04-08T10:00:00.000Z"
is_awaybooleanРежим «Нет на месте»false
away_messageobject| nullСообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате. null, если текст не задан.
{
  "text": "Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @Олег Петров."
}

Аватар

ПараметрТипОписаниеПример
image_urlstringURL аватара"https://files.example.com/uploads/0001/0001/image.jpg"

Сотрудник

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор пользователя12
first_namestring| nullИмя. Возвращается null, пока приглашённый сотрудник не завершил регистрацию (invite_status со значением sent)."Олег"
last_namestring| nullФамилия. Если не заполнена, возвращается null или пустая строка."Петров"
nicknamestringИмя пользователя"olegpetrov"
emailstring| nullЭлектронная почта. В чужой карточке приходит null, если у вызывающего нет права видеть персональные данные: у владельца пространства и администратора оно есть всегда, у сотрудника и бота — только когда в пространстве включён показ персональных данных, у гостя и мульти-гостя — никогда. В своей карточке поле приходит всегда."olegp@example.com"
phone_numberstring| nullТелефон. В чужой карточке приходит null, если у вызывающего нет права видеть персональные данные: у владельца пространства и администратора оно есть всегда, у сотрудника и бота — только когда в пространстве включён показ персональных данных, у гостя и мульти-гостя — никогда. В своей карточке поле приходит всегда."+79001234567"
departmentstring| nullДепартамент. Если не указан, возвращается null или пустая строка."Продукт"
titlestring| nullДолжность. Если не указана, возвращается null или пустая строка."CIO"
roleUserRoleУровень доступа"admin"
suspendedbooleanДеактивация пользователяfalse
invite_statusInviteStatusСтатус приглашения"confirmed"
inviter_idinteger(int32)| nullИдентификатор сотрудника, который пригласил данного сотрудника. Возвращает null, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.185
list_tagsarray of stringМассив тегов, привязанных к сотруднику. Мульти-гостю в чужой карточке приходит пустым.
[
  "Product",
  "Design"
]
custom_propertiesarray of CustomPropertyДополнительные поля сотрудника
[
  {
    "id": 1678,
    "name": "Город",
    "data_type": "string",
    "value": "Санкт-Петербург"
  }
]
user_statusUserStatus| nullСтатус. null, если у сотрудника не установлен статус.
{
  "emoji": "🎮",
  "title": "Очень занят",
  "expires_at": "2024-04-08T10:00:00.000Z",
  "is_away": false,
  "away_message": {
    "text": "Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @Олег Петров."
  }
}
botbooleanЯвляется ботомfalse
ssobooleanИспользует ли пользователь SSOfalse
created_atstring(date-time)Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2020-06-08T09:32:57.000Z"
last_activity_atstring(date-time)| nullДата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. null, если сотрудник ещё ни разу не заходил в Пачку или не заходил после смены почты — в этом случае invite_status возвращает sent."2025-01-20T13:40:07.000Z"
time_zonestring| nullЧасовой пояс пользователя. null, если сотрудник не задал личный часовой пояс — тогда применяется часовой пояс компании."Europe/Moscow"
image_urlstring| nullСсылка на скачивание аватарки пользователя. null, если аватарка не загружена."https://app.pachca.com/users/12/photo.jpg"

Тег

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор тега9111
namestringНазвание тега"Design"
users_countinteger(int32)Количество сотрудников, которые имеют этот тег6

Чат

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор созданного чата334
namestringНазвание беседы или канала. У личного чата пустая строка, а в методе GETПоиск чатов у него приходит полное имя собеседника, в чате с самим собой — имя владельца токена."🤿 aqua"
created_atstring(date-time)Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2021-08-28T15:56:53.000Z"
owner_idinteger(int32)Идентификатор пользователя, создавшего чат185
member_idsarray of integerМассив идентификаторов пользователей, участников
[
  185,
  186,
  187
]
group_tag_idsarray of integerМассив идентификаторов тегов, участников
[
  9111
]
channelbooleanЯвляется каналомtrue
archivedbooleanНаходится в архивеfalse
personalbooleanЯвляется личным чатомfalse
publicbooleanОткрытый доступfalse
last_message_atstring(date-time)Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2021-08-28T15:56:53.000Z"
meet_room_urlstringСсылка на Видеочат"https://meet.pachca.com/aqua-94bb21b5"
avatar_urlstring| nullСсылка на аватар чата. null, если аватар не задан."https://files.example.com/uploads/0001/0001/image.jpg"

Экспорт сообщений

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор экспорта22322

Тред

ПараметрТипОписаниеПример
idinteger(int64)Идентификатор треда. Чтобы написать в тред, передайте его в entity_id метода POSTНовое сообщение с entity_type: "thread".265142
chat_idinteger(int64)Идентификатор чата треда. По нему читают сообщения треда методом GETСписок сообщений чата и работают с его участниками.2637266155
message_idinteger(int64)| nullИдентификатор сообщения, к которому был создан тред. null для самостоятельного треда, созданного без привязки к сообщению.154332686
message_chat_idinteger(int64)| nullИдентификатор чата сообщения. null для самостоятельного треда, созданного без привязки к сообщению.2637266154
updated_atstring(date-time)Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2023-02-01T19:20:47.204Z"

Сообщение

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор сообщения194275
entity_typeMessageEntityTypeТип сущности, к которой относится сообщение"discussion"
entity_idinteger(int32)Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)334
chat_idinteger(int32)Идентификатор чата, в котором находится сообщение334
root_chat_idinteger(int32)Идентификатор корневого чата. Для сообщения в треде — идентификатор чата, где находится родительское сообщение треда. У самостоятельного треда родительского сообщения нет, и root_chat_id совпадает с chat_id, как у обычных сообщений. Сообщение треда узнают по entity_type: "thread".334
contentstringТекст сообщения"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"
user_idinteger(int32)Идентификатор пользователя, создавшего сообщение12
created_atstring(date-time)Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2021-08-28T15:57:23.000Z"
urlstringПрямая ссылка на сообщение"https://app.pachca.com/chats/334?message=194275"
filesarray of FileПрикрепленные файлы
[
  {
    "id": 3560,
    "key": "attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png",
    "name": "congrat.png",
    "file_type": "image",
    "url": "https://files.example.com/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?X-Amz-Expires=604800&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"
  }
]
voice_contentVoiceContent| nullДанные голосового сообщения. Заполняется только для голосовых сообщений (file_type файла — voice), иначе null.
{
  "duration_ms": 5400,
  "waveform": "4,8,12,20,16,10,6,3",
  "transcript": "Привет, посмотри пожалуйста последний отчёт",
  "transcript_status": "success"
}
buttonsarray of array of Button| nullМассив строк, каждая из которых представлена массивом кнопок. null, если при отправке поле buttons не передавали, и у удалённого сообщения. Пустые buttons при отправке или правке приходят как []: сообщение без кнопок узнают и по null, и по пустому массиву.
[
  [
    {
      "text": "Подробнее"
    }
  ]
]
threadobject| nullТред, созданный к этому сообщению. null, если тред не создан, а также у сообщений, которые сами находятся внутри треда.
{
  "id": 265142,
  "chat_id": 2637266155
}
forwardingForwarding| nullИнформация о пересланном сообщении. null, если сообщение не является пересланным.
{
  "original_message_id": 194275,
  "original_chat_id": 334,
  "author_id": 12,
  "original_created_at": "2025-01-15T10:30:00.000Z",
  "original_thread_id": null,
  "original_thread_message_id": null,
  "original_thread_parent_chat_id": null
}
parent_message_idinteger(int32)| nullИдентификатор сообщения, к которому написан ответ. null, если сообщение не является ответом на другое сообщение.null
display_avatar_urlstring| nullСсылка на аватарку отправителя сообщения. Поле присутствует только у сообщений от ботов; у сообщений от сотрудников его в ответе нет. null, если бот не переопределял значение при отправке.null
display_namestring| nullПолное имя отправителя сообщения. Поле присутствует только у сообщений от ботов; у сообщений от сотрудников его в ответе нет. null, если бот не переопределял значение при отправке.null
changed_atstring(date-time)| nullДата и время последнего изменения сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Заполняется уже при создании сообщения и обычно отличается от created_at на доли секунды или больше: у created_at доли секунды всегда нулевые. null у сообщений, отправленных до появления этого поля."2021-08-28T16:10:00.000Z"
deleted_atstring(date-time)| nullДата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. null у неудалённых сообщений. В списке сообщений удалённые не возвращаются.null
importantbooleanСообщение в разделе «Важное» владельца токена. У токена бота всегда false.false

Реакция на сообщение

ПараметрТипОписаниеПример
user_idinteger(int32)Идентификатор пользователя, который добавил реакцию12
created_atstring(date-time)Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2024-01-20T10:30:00.000Z"
codestringEmoji символ реакции"👍"
namestringНазвание emoji реакции":+1::skin-tone-1:"

Напоминание

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор напоминания22283
kindTaskKindТип"reminder"
contentstringОписание"Забрать со склада 21 заказ"
due_atstring(date-time)| nullСрок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. null, если срок не задан."2020-06-05T09:00:00.000Z"
priorityinteger(int32)Приоритет2
user_idinteger(int32)Идентификатор пользователя-создателя напоминания12
chat_idinteger(int32)| nullИдентификатор чата, к которому привязано напоминание. null, если напоминание не привязано к чату.334
statusTaskStatusСтатус напоминания"undone"
created_atstring(date-time)Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2020-06-04T10:37:57.000Z"
performer_idsarray of integerМассив идентификаторов пользователей, привязанных к напоминанию как «ответственные»
[
  12
]
all_daybooleanНапоминание на весь день: true, если при создании передан all_day: true или срок стоит ровно на 23:59:59. Веб-версия Пачки показывает напоминание без времени только по такому сроку, а при другом времени срока показывает это время.false
custom_propertiesarray of CustomPropertyДополнительные поля напоминания
[
  {
    "id": 1678,
    "name": "Город",
    "data_type": "string",
    "value": "Санкт-Петербург"
  }
]

Черновик

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор черновика4821
entity_typeMessageEntityType| nullКуда уйдёт сообщение: в беседу или канал, в тред либо в личную переписку с сотрудником"discussion"
entity_idinteger(int32)| nullИдентификатор того, что названо в entity_type: беседы или канала, треда либо сотрудника334
chat_idinteger(int32)| nullИдентификатор чата, в котором лежит черновик. У черновика треда это чат самого треда.334
contentstringТекст черновика. У черновика из одних вложений приходит пустая строка, а не null."Отчёт за неделю: продажи выросли на 10%"
parent_message_idinteger(int32)| nullИдентификатор сообщения, ответом на которое уйдёт черновик. null, если это не ответ.196093
filesarray of FileПрикреплённые файлы
[
  {
    "id": 3560,
    "key": "attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png",
    "name": "congrat.png",
    "file_type": "image",
    "url": "https://files.example.com/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?X-Amz-Expires=604800&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"
  }
]
voice_contentVoiceContent| nullГолосовое сообщение. null, если голосового вложения нет. Расшифровка в transcript и её статус в transcript_status у черновика всегда null — она запускается после отправки.
{
  "duration_ms": 5400,
  "waveform": "4,8,12,20,16,10,6,3",
  "transcript": "Привет, посмотри пожалуйста последний отчёт",
  "transcript_status": "success"
}
scheduleDraftSchedule| nullРасписание отправки. null у обычного черновика.
{
  "start_date": "2026-09-17T12:00:00.000Z",
  "end_date": "2026-12-31T12:00:00.000Z",
  "repetition": {
    "interval": "weekly"
  }
}
next_send_atstring(date-time)| nullБлижайшая отправка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. null у обычного черновика."2026-09-17T12:00:00.000Z"
created_atstring(date-time)Дата и время создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2026-09-16T10:00:00.000Z"
updated_atstring(date-time)Дата и время последнего изменения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2026-09-16T10:00:00.000Z"

Ответ на отправку формы

ПараметрТипОписаниеПример
successbooleanПризнак успешной обработкиtrue

Параметры бота

Методы POSTНовый бот и POSTРотация токена бота возвращают эту модель вместе с токеном бота в поле access_token. Токен приходит один раз, а при создании бота с empty: true его в ответе нет.

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор бота (совпадает с user_id бота)1738816
namestringИмя бота"Бот задач"
nicknamestringНикнейм бота"tasks_bot"
avatar_urlstring| nullСсылка на аватар бота. null, если аватар не задан."https://files.example.com/uploads/0001/0001/image.jpg"
creator_idinteger(int32)| nullИдентификатор сотрудника, создавшего бота. null, если создатель не записан.12
created_atstring(date-time)Дата и время создания бота (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2025-05-15T14:30:00.000Z"
authorized_users_countinteger(int32)Сколько сотрудников авторизовали бота3
last_used_atstring(date-time)| nullДата и время, когда бот последний раз работал (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ: запрос на входящий вебхук или вызов API любым токеном бота, включая токены сотрудников. null, если такого не было. Использование токена учитывается не чаще раза в минуту."2025-05-15T14:30:00.000Z"
webhookBotWebhookОбъект параметров вебхука
{
  "name": "Бот задач",
  "nickname": "tasks_bot",
  "outgoing_url": "https://example.com/tasks/new",
  "events": [
    "message_new"
  ],
  "trigger_on": "commands",
  "commands": [
    "/task"
  ],
  "scopes": [
    "messages:create"
  ],
  "template": "Заказ от {{ client }} на сумму {{ amount }} ₽",
  "template_engine": "liquid",
  "challenge_key": "challenge",
  "link_preview_enabled": true,
  "ignore_self_messages": false,
  "events_history_enabled": false,
  "single_chat": false,
  "can_edit": [
    "admin"
  ],
  "who_can_add": "creator",
  "kind": "simple",
  "unfurl_domains": [
    "example.com"
  ],
  "last_request_at": "2025-05-15T14:30:00.000Z"
}
oauth_client_enabledbooleanВключена ли у бота авторизация от имени сотрудникаtrue
oauth_clientBotOAuthClient| nullПараметры авторизации от имени сотрудника. Может прийти и у бота с выключенной авторизацией, поэтому включена ли она, смотрите в oauth_client_enabled. У бота без токенов может прийти null.
{
  "client_id": "aB3dE5fG7hJ9kL1mN3pQ5rS7tU9vW1xY",
  "client_secret_preview": "cH5kR9mN...x7Qp",
  "confidential": true,
  "redirect_uris": [
    "https://example.com/oauth/callback"
  ],
  "scopes": [
    "messages:read",
    "messages:create"
  ]
}
promoBotPromo| nullСтраница бота в витрине. null, если авторизация у бота выключена.
{
  "description": "Собирает сводку по задачам Jira и присылает её в чат",
  "published": true,
  "promo_images": [
    {
      "key": "attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/screenshot.png",
      "url": "https://files.example.com/attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/screenshot.png"
    }
  ]
}
permissionsBotPermissionsЧто вы можете делать с этим ботом
{
  "update_oauth_client": true,
  "recreate_token": true,
  "destroy": true
}
client_secretstringСекрет клиента. Приходит один раз: при включении серверного клиента, при переходе на него и при ротации секрета."dGhpc19pc19ub3RfYV9yZWFsX3NlY3JldA"

Бот в методах самого бота

Ротация собственного токена возвращает эту модель вместе с новым токеном в поле access_token, он приходит один раз.

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор бота (совпадает с user_id бота)1738816
oauth_clientBotOAuthClient| nullПараметры авторизации от имени сотрудника. Может прийти и у бота с выключенной авторизацией. У бота без токенов может прийти null.
{
  "client_id": "aB3dE5fG7hJ9kL1mN3pQ5rS7tU9vW1xY",
  "client_secret_preview": "cH5kR9mN...x7Qp",
  "confidential": true,
  "redirect_uris": [
    "https://example.com/oauth/callback"
  ],
  "scopes": [
    "messages:read",
    "messages:create"
  ]
}
webhookBotSelfWebhookОбъект параметров вебхука
{
  "name": "Бот задач",
  "nickname": "tasks_bot",
  "outgoing_url": "https://example.com/tasks/new",
  "events": [
    "message_new"
  ],
  "trigger_on": "commands",
  "commands": [
    "/task"
  ],
  "scopes": [
    "messages:create"
  ],
  "template": "Заказ от {{ client }} на сумму {{ amount }} ₽",
  "template_engine": "liquid",
  "challenge_key": "challenge",
  "link_preview_enabled": true,
  "ignore_self_messages": false,
  "events_history_enabled": false,
  "single_chat": false,
  "can_edit": [
    "admin"
  ],
  "who_can_add": "creator"
}

Токен бота

ПараметрТипОписаниеПример
idinteger(int64)Идентификатор токена4827
tokenstringТокен в маскированном виде (видны первые 8 и последние 4 символа). Полное значение приходит один раз: при выпуске и перевыпуске токена."cH5kR9mN...x7Qp"
namestring| nullИмя токена. null у токена, выпущенного без имени."Сервер уведомлений"
user_idinteger(int64)Идентификатор бота, которому принадлежит токен1738816
scopesarray of stringПрава токена
[
  "messages:create",
  "chats:read"
]
created_atstring(date-time)Дата и время выпуска токена (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2025-01-15T10:30:00.000Z"
revoked_atstring(date-time)| nullДата отзыва токена. Всегда null: отозванные токены в ответ не попадают.null
expires_ininteger(int32)| nullВремя жизни токена в секундах. У токенов бота null: они бессрочные.null
last_used_atstring(date-time)| nullДата последнего использования токена. null, пока по токену не было ни одного запроса. Обновляется не чаще раза в минуту, поэтому может отставать."2025-02-24T14:20:00.000Z"
authorized_atstring(date-time)| nullДата авторизации. У токенов бота null.null

Каталог прав бота

ПараметрТипОписаниеПример
scopesarray of BotScopeCatalogItemПрава, доступные боту
[
  {
    "id": "messages:create",
    "title": "Отправка сообщений",
    "group": "messages",
    "preset": [
      "admin"
    ]
  }
]
groupsarray of BotScopeCatalogGroupКатегории прав
[
  {
    "id": "messages",
    "title": "Сообщения",
    "description": "Работа с сообщениями"
  }
]
presetsarray of BotScopeCatalogPresetГотовые наборы прав
[
  {
    "id": "read-only",
    "title": "Только чтение"
  }
]

Параметры бота пространства

ПараметрТипОписаниеПример
idinteger(int32)Идентификатор бота (совпадает с user_id бота)1738816
oauth_clientBotOAuthClient| nullПараметры авторизации от имени сотрудника. null у бота, недоступного вам для редактирования. Может прийти и у бота с выключенной авторизацией, а у бота без токенов может прийти null.
{
  "client_id": "aB3dE5fG7hJ9kL1mN3pQ5rS7tU9vW1xY",
  "client_secret_preview": "cH5kR9mN...x7Qp",
  "confidential": true,
  "redirect_uris": [
    "https://example.com/oauth/callback"
  ],
  "scopes": [
    "messages:read",
    "messages:create"
  ]
}
webhookCompanyBotWebhookОбъект параметров вебхука
{
  "name": "Бот задач",
  "nickname": "tasks_bot",
  "outgoing_url": "https://example.com/tasks/new",
  "events": [
    "message_new"
  ],
  "trigger_on": "commands",
  "commands": [
    "/task"
  ],
  "scopes": [
    "messages:create"
  ],
  "template": "Заказ от {{ client }} на сумму {{ amount }} ₽",
  "template_engine": "liquid",
  "challenge_key": "challenge",
  "link_preview_enabled": true,
  "ignore_self_messages": false,
  "events_history_enabled": false,
  "single_chat": false,
  "can_edit": [
    "admin"
  ],
  "who_can_add": "creator"
}

Событие исходящего вебхука

ПараметрТипОписаниеПример
idstringИдентификатор события"01KAJZ2XDSS2S3DSW9EXJZ0TBV"
event_typestringТип события: значение из events бота, например message_new. У отправленной формы — view_submit, она приходит с подпиской на button_click."message_new"
payloadWebhookPayloadUnionОбъект вебхука
{
  "type": "message",
  "id": 1245817,
  "event": "new",
  "entity_type": "discussion",
  "entity_id": 5678,
  "content": "Текст сообщения",
  "user_id": 2345,
  "created_at": "2025-05-15T14:30:00.000Z",
  "url": "https://app.pachca.com/chats/9012?message=1245817",
  "chat_id": 9012,
  "webhook_timestamp": 1747574400
}
created_atstring(date-time)Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2025-05-15T14:30:00.000Z"

Ссылка на поток событий

ПараметрТипОписаниеПример
urlstringСсылка на поток событий в формате Server-Sent Events. Открывается без токена, поэтому храните её как секрет."https://api.pachca.com/events?signed_stream=d2ViaG9vay1ldmVudHMvMTczODgxNi8x&jid=eyJhbGciOiJIUzI1NiJ9.eyJ3ZWJob29rX2lkIjoxfQ.c2lnbmF0dXJl"
expires_atstring(date-time)Дата и время, до которых действует ссылка (ISO-8601, UTC+0): от одного до двух часов после запроса. В этот момент сервер присылает disconnect и закрывает подключение по ней."2026-10-27T13:00:00.000Z"

Событие аудита

ПараметрТипОписаниеПример
idstringУникальный идентификатор события"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"
created_atstring(date-time)Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ"2025-05-15T14:30:00.000Z"
event_keyAuditEventKeyКлюч типа события"user_login"
entity_idstringИдентификатор затронутой сущности"98765"
entity_typestringТип затронутой сущности"User"
actor_idstringИдентификатор пользователя, выполнившего действие. У событий user_role_changed, user_chat_join, user_chat_leave, user_added_to_tag и user_removed_from_tag это сотрудник, которого коснулось изменение, а кто его выполнил, приходит в details: в initiator_id или inviter_id."98765"
actor_typestringТип актора"User"
detailsAuditEventDetailsUnionДополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект.—
ip_addressstring| nullIP-адрес запроса, в котором произошло действие. У событий видеозвонков это обычно адрес видеосервера, а не участника звонка. null, если событие записано вне HTTP-запроса."192.168.1.100"
user_agentstring| nullUser agent клиента, обрезается до 255 символов. У событий видеозвонков это обычно user agent видеосервера. null, если событие записано вне HTTP-запроса."Pachca/3.60.0 (build:15; iOS 18.5.0) Alamofire/5.0.0"