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

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 Аккаунт не является партнерским
argument-missing Не хватает аргументов в запросе
wrong-price Сумма в запросе меньше рассчитанной
wrong-period Период в запросе отличается от расчетного
unauthorized Ошибка авторизации
unknown Неизвестная ошибка
wrong-partner При регистрации, когда попался существующий аккаунт, у которого существует партнер, отличный от Nethouse

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

Данные посылаются 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" — окончание периода

Выдача тарифной сетки

GET запрос на адрес:

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

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

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

  • tariffs — описание тарифов

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

  • name — название тарифа

  • basic_prices — базовые цены Webim в рублях

  • base_price — стоимость аккаунта с одним оператором

  • per_operator_price — стоимость дополнительных операторов

  • partner_prices — цены для партнера в рублях

  • discounts — размер скидки в процентах по заказанному периоду в месяцах

{
    "tariffs": [{
        "key": "start",
        "name": "Начальный",
        "description": "Что Вы получаете: базовый функционал обслуживания посетителей +...",
        "public_prices": {
            "base_price": 490,
            "per_operator_price": 290
        },
        "partner_prices": {
            "base_price": 343,
            "per_operator_price": 203
        }
    }
    ],
    "discounts": {
        "1": 0,
        "2": 0,
        "3": 10,
        "4": 10,
        "5": 10,
        "6": 15,
        "7": 15,
        "8": 15,
        "9": 15,
        "10": 15,
        "11": 15,
        "12": 20
    }
}

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

Запрос:

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>