Перейти к содержимому

Компания

Компания в API Radist.Online: карточка компании, лимиты на подключения по типам, список сотрудников и роли с их правами доступа.

Общее

Swagger: https://api.radist.online/v2/docs#/Companies

Необходимые права доступа (scopes) для работы с API: connections — для лимитов, members — для списка сотрудников. Карточка компании и список ролей доступны любому ключу этой компании.

Компания — аккаунт в Radist.Online, которому принадлежат подключения, чаты, контакты и подписки. company_id есть в адресе каждого метода API, и ключ работает только со своей компанией.

В Swagger в разделе Companies есть и другие методы — изменение настроек компании, приглашения сотрудников, удаление сотрудника, каналы уведомлений, онбординг. Через API-ключ они недоступны: этими действиями управляют только из личного кабинета. Подробнее о правах — в разделе Авторизация.

Карточка компании

CompaniesGetCompany (GET /companies/{company_id})

Основные сведения о компании: name, owner_id (сотрудник-владелец), timezone, payment_currency, payments_locked — заблокированы ли платежи, is_partner — является ли компания партнёром, had_connections и waba_360dialog_partner_id.

Если ключ выдан для другой компании, метод вернёт 404 с ошибкой 8000 (COMPANY_NOT_FOUND).

Пример ответа
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
GET /companies/{company_id}

Response
{
  "id": 5,
  "name": "ООО «Ромашка»",
  "owner_id": 77,
  "payments_locked": false,
  "timezone": "Europe/Moscow",
  "payment_currency": "RUB",
  "waba_360dialog_partner_id": null,
  "had_connections": true,
  "is_partner": false
}

Лимиты

Лимит — сколько подключений одного типа компания может держать. Он берётся из подписок: размер подписки и есть лимит. Проверяйте лимит перед созданием подключения — иначе создание вернёт 400 с ошибкой 10010 (CONNECTION_LIMIT_EXCEEDED).

Типы лимитов совпадают с типами подключений: connections_whatsapp, connections_waba, connections_telegram, connections_telegram_bot, connections_max_personal, connections_max_bot, connections_vk_group, connections_vk_direct, connections_odnoklassniki, connections_avito, а также банковские — connections_tinkoff, connections_modulbank, connections_sberbank, connections_paykeeper, connections_bepaid, connections_payselection, connections_yookassa, connections_robokassa, connections_keepz.

Все лимиты компании

CompaniesListCompanyLimitsHandler (GET /companies/{company_id}/limits/)

Возвращает объект, в котором на каждый тип лимита приходится одно поле со значением — сколько подключений этого типа оплачено. Типы, подписки на которые у компании нет, приходят с 0.

Оплата учитывается: у неоплаченной подписки лимит в этом ответе 0, даже если сама подписка рассчитана на несколько подключений. Поэтому список отвечает на вопрос «за что заплачено», а не «что получится создать» — для второго смотрите лимит по типу.

Пример ответа
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
GET /companies/{company_id}/limits/

Response
{
  "connections_whatsapp": 2,
  "connections_waba": 1,
  "connections_telegram": 0,
  "connections_telegram_bot": 1,
  "connections_max_personal": 0,
  "connections_max_bot": 0,
  "connections_vk_group": 0,
  "connections_vk_direct": 0,
  "connections_odnoklassniki": 0,
  "connections_avito": 0,
  "connections_tinkoff": 0,
  "connections_modulbank": 0,
  "connections_sberbank": 0,
  "connections_paykeeper": 0,
  "connections_bepaid": 0,
  "connections_payselection": 0,
  "connections_yookassa": 0,
  "connections_robokassa": 0,
  "connections_keepz": 0
}

Один лимит

CompaniesGetCompanyLimitHandler (GET /companies/{company_id}/limits/{limit_type})

Возвращает type, current_value — сколько подключений этого типа уже создано, и max_value — сколько разрешено. Значение limit_type в адресе — одно из перечисленных выше; при другом значении метод вернёт 422.

Если подписки этого типа у компании ещё нет, ответ будет current_value=0, max_value=1: одно подключение нового для компании типа создать можно, подписка на него появится следом.

Именно этот метод отвечает на вопрос «получится ли создать ещё одно подключение»: создание подключения сверяется с ним и отказывает, когда current_value дошло до max_value.

Список лимитов считает иначе — он учитывает оплату и показывает 0 у неоплаченной подписки, поэтому по одному и тому же типу списочный лимит и max_value здесь могут расходиться.

Пример ответа
1
2
3
4
5
6
7
8
GET /companies/{company_id}/limits/connections_whatsapp

Response
{
  "type": "connections_whatsapp",
  "current_value": 1,
  "max_value": 2
}

Сотрудники

CompaniesListMembers (GET /companies/{company_id}/members/)

Все сотрудники компании: member_id (идентификатор сотрудника в компании), user_id, role_idроль, display_name, login и email. Постраничного вывода нет, приходит весь список и его размер в count.

Пример ответа
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
GET /companies/{company_id}/members/

Response
{
  "count": 2,
  "company_id": 5,
  "members": [
    {
      "member_id": 77,
      "user_id": 512,
      "role_id": 31,
      "display_name": "Иван Петров",
      "login": "ivan",
      "email": "ivan@example.com"
    },
    {
      "member_id": 78,
      "user_id": 640,
      "role_id": 32,
      "display_name": "Мария Смирнова",
      "login": "maria",
      "email": "maria@example.com"
    }
  ]
}

Роли

CompaniesListRoles (GET /companies/{company_id}/roles/)

Роли компании и права, которые они дают. У каждой роли id, name, permissions — список прав, и system_type: ADMINISTRATOR, MANAGER, PARTNER у преднастроенных ролей и null у ролей, созданных в компании.

По role_id из списка сотрудников можно понять, что именно сотруднику разрешено.

Пример ответа
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
GET /companies/{company_id}/roles/

Response
[
  {
    "id": 31,
    "name": "Администратор",
    "system_type": "ADMINISTRATOR",
    "permissions": [
      "CONNECTIONS_VIEW",
      "CONNECTIONS_CREATE",
      "MESSAGING_CHAT_VIEW",
      "MEMBERS_VIEW"
    ]
  },
  {
    "id": 32,
    "name": "Отдел продаж",
    "system_type": null,
    "permissions": [
      "MESSAGING_CHAT_VIEW",
      "MESSAGING_CHAT_CREATE",
      "CONTACTS_VIEW"
    ]
  }
]
Помогла ли статья?
Последнее обновление