Webim Stored Data API 1.0

Устаревшая версия API. Только для клиентов, которые уже используют v1 и не могут сразу перейти на v2.

1. ДОСТУП К 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.

2. ОБРАБОТКА ОШИБОК

При ошибках авторизации возвращается HTTP код 401.

Ошибки приходят в следующем виде:

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

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

Код ошибки Описание
no-tariff-option Аккаунт не имеет доступа к API
no-partner-option Аккаунт не является партнерским
argument-missing Не хватает аргументов в запросе
wrong-price Сумма в запросе меньше рассчитанной
wrong-period Период в запросе отличается от расчетного
unauthorized Ошибка авторизации
unknown Неизвестная ошибка
wrong-partner При регистрации, когда попался существующий аккаунт, у которого существует партнер, отличный от nethouse

3. ЗАПРОС НА СОЗДАНИЕ АККАУНТА

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

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

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

  • site — адрес сайта клиента
  • full_name — имя администратора для создаваемого аккаунта
  • email — e-mail администратора для создаваемого аккаунта (служит логином)
  • password — пароль администратора для создаваемого аккаунта
  • phone — контактный телефон для создаваемого аккаунта
  • crc = md5(email + fullname + password + phone + site + private_key) — контрольная сумма из полей и Вашего private_key в заданном порядке

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

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

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

4. ОПЛАТА ПЕРИОДА ИСПОЛЬЗОВАНИЯ

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

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

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

  • account_name — название аккаунта
  • month_count — длительность периода (количество месяцев)
  • operators_count — заказанное количество операторов
  • tariff_key — ключ тарифа
  • partner_price — сумма, которая будет использована во взаиморасчетах партнера и Webim.Ru. Должна формироваться на основе partner_prices из описания тарифов.

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

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

5. ВЫДАЧА ТАРИФНОЙ СЕТКИ

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

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

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

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

  • tariffs — описание тарифов
  • key — ключ тарифа
  • name — название тарифа
  • basic_prices — базовые цены webim.ru в рублях
  • base_price — стоимость аккаунта с одним оператором
  • per_operator_price — стоимость дополнительных операторов
  • partner_prices — цены для партнера в рублях
  • discounts — размер скидки в процентах по заказанному периоду в месяцах
{  
   "tariffs": [  
      {  
         "key": "start",
         "name": "Начальный",
         "description": "Что Вы получаете:n+ базовый функционал обслуживания посетителей;n+ показ до 50 посетителей сайта;n+ работа с отделами;n+ настройка цветов диалога;n+ статистика работы операторов;n+ хранение истории сообщений без ограничений по времени.",
         "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
   }
}

6. ВЫДАЧА КОДА КНОПКИ

Запрос:

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

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

<!-- webim button generation date: 01/11/19 version: 9.2.32 -->
<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/webim/js/button.js";
        document.getElementsByTagName("head")[0].appendChild(s);
    })();
</script>
<!-- /webim button -->