Webim Partner API 1.0

Adobe PDF Скачайте документ «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 — контактный телефон для создаваемого аккаунта
  • crc = md5(email + fullname + password + phone + site + private_key) — контрольная сумма из полей и Вашего private_key в заданном порядке

Ответ приходит в формате 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.Ru. Должна формироваться на основе 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.ru в рублях
  • 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>