Перейти к содержанию

Webim Partner API 1.0

Скачайте документ Webim Partner API Documentation (English) на английском языке в формате Adobe PDF.

Доступ к API

Работа API осуществляется только по https. Для доступа используется email и пароль администратора (admin_password).

Осуществляется basic авторизация таким образом:

curl -u adminemail@somedomain.com:admin_password https://{subdomain}.webim.ru/api/v1/partner/{request}

Где {subdomain} — имя вашего аккаунта.

Все данные принимаются и возвращаются в кодировке UTF-8.

Обработка ошибок

При ошибках авторизации возвращается HTTP код 401. Ошибки приходят в следующем виде:

{"error":"код-ошибки"}

Возможные типы ошибок представлены в таблице:

Код ошибки Описание
no-tariff-option Аккаунт не имеет доступа к API
no-partner-option Аккаунт не является партнерским
wrong-price Сумма в запросе меньше рассчитанной
wrong-period Период в запросе отличается от расчетного
wrong-partner При регистрации, когда попался существующий аккаунт, у которого существует партнер, отличный от Nethouse
account-blocked Аккаунт заблокирован
db-schema-archived БД архивирована

Запрос на создание аккаунта

Данные посылаются POST запросом на следующий адрес:

https://{subdomain}.webim.ru/api/v1/partner/install

Описание данных:

  • site — адрес сайта клиента

  • full_name — имя администратора для создаваемого аккаунта

  • email — e-mail администратора для создаваемого аккаунта (служит логином)

  • password — пароль администратора для создаваемого аккаунта

  • phone — контактный телефон для создаваемого аккаунта

Ответ приходит в формате JSON:

{
 "account_name": "имя созданного аккаунта",
 "private_key": "приватный ключ для созданного аккаунта",
 "status": "created"
}

Если аккаунт с данным e-mail уже существует и данные авторизации совпадают, то возвращается существующий аккаунт и в поле status передаётся значение exists.

Оплата периода использования

Данные посылаются POST запросом на следующий адрес:

https://{subdomain}.webim.ru/api/v1/partner/order

Описание данных:

  • account_name — название аккаунта

  • month_count — длительность периода (количество месяцев)

  • operators_count — заказанное количество операторов

  • tariff_key — ключ тарифа

  • partner_price — сумма, которая будет использована во взаиморасчетах партнера и Webim. Должна формироваться на основе partner_prices из описания тарифов.

Ответ приходит в формате JSON:

{"result": "ok", "from": "2013-01-01", "to": "2013-02-01"}
  • "from": "2018-01-01" — начало периода

  • "to": "2018-02-01" — окончание периода

Выдача тарифов

Path: /partner/tariffs

Тип запроса: GET

Query-string параметры: не нужны.

Запрос возвращает массив тарифов сервиса Webim.

Описание полей объекта в ответе на запрос:

Название параметра Тип Пример Описание
partner_prices.per_operator_price Float 232.0 Цена за одного оператора для партнёров.
partner_prices.base_price Float 365.0 Базовая цена тарифа для партнёров.
name String Корпоративный Название тарифа.
discounts Object {"1": 0,"2": 0,"3": 10,} Размер скидки в процентах по заказанному периоду в месяцах. Может быть NULL.
public_prices.per_operator_price Float 290 Цена за одного оператора для обычных пользователей.
public_prices.base_price Float 360 Базовая цена тарифа для обычных пользователей.
key String corp Уникальный ключ тарифа.
description String Что Вы получаете: базовый функционал обслуживания посетителей +... Описание тарифа.

Пример ответа:

{
  "tariffs": [
    {
      "partner_prices": {
        "per_operator_price": 232.0,
        "base_price": 392.0
      },
      "name": "Начальный",
      "discounts": {},
      "public_prices": {
        "per_operator_price": 290,
        "base_price": 490
      },
      "key": "start",
      "description": "Что Вы получаете:n+ базовый функционал обслуживания посетителей;n+ хранение истории в течение одного месяца;n+ показ до 20 посетителей сайта.nnЧего Вы не получаете:n- работа с отделами;n- показ до 50 посетителей сайта;n- настройка цветов диалога;n- статистика работы операторов;n- хранение истории сообщений без ограничений по времени."
    },
    {
      "partner_prices": {
        "per_operator_price": 632.0,
        "base_price": 1112.0
      },
      "name": "Бизнес",
      "discounts": {},
      "public_prices": {
        "per_operator_price": 790,
        "base_price": 1390
      },
      "key": "bus",
      "description": "Что Вы получаете:n+ базовый функционал обслуживания посетителей;n+ показ до 50 посетителей сайта;n+ работа с отделами;n+ настройка цветов диалога;n+ статистика работы операторов;n+ хранение истории сообщений без ограничений по времени."
    },
    {
      "partner_prices": {
        "per_operator_price": 1992.0,
        "base_price": 1992.0
      },
      "name": "Корпоративный",
      "discounts": {},
      "public_prices": {
        "per_operator_price": 2490,
        "base_price": 2490
      },
      "key": "corp",
      "description": "Что Вы получаете:n+ базовый функционал обслуживания посетителей;n+ показ до 50 посетителей сайта;n+ работа с отделами;n+ настройка цветов диалога;n+ расширенная статистика работы операторов;n+ хранение истории сообщений без ограничений по времени.n+ расширенная информация о посетителе."
    }
  ]
}

Выдача кода кнопки

Запрос:

https://{subdomain}.webim.ru/api/v1/button-code

Возможный ответ:

<a class="webim_button" href="#" rel="webim"><img src="https://company.webim.ru/button.php" border="0" /></a>
<script type="text/javascript">

  webim = {
    accountName: "company",
    domain: "company.webim.ru"
  };
  (function () {
      var s = document.createElement("script");
      s.type = "text/javascript";
      s.src = "https://company.webim.ru/js/button.js";
      document.getElementsByTagName("head")[0].appendChild(s);
  })();
</script>