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>