billing:mblibexternal_apiusermanager

MBLibExternal_APIUserManager

API-модуль управления абонентами MikBiLL. Позволяет создавать абонентов, получать их данные и обновлять информацию через HTTP-запросы.

Версия: 1.0.0
Дата: 2026-04-14


Перед использованием API необходимо настроить системные опции в админ-панели MikBiLL (префикс usermanager_):

Опция Описание
usermanager_on Включение API (1 — включено, 0 — выключено)
usermanager_key API-ключ для авторизации запросов
usermanager_network Список разрешённых IP-адресов/подсетей для доступа к API

Все запросы передаются через массив $inputData с обязательными полями:

Параметр Описание
key API-ключ (должен совпадать с usermanager_key)
request Название вызываемого метода

При каждом запросе выполняются проверки в следующем порядке:

  1. IP-адрес — клиентский IP должен входить в список разрешённых (usermanager_network).
  2. Статус API — опция usermanager_on должна быть равна 1.
  3. API-ключ — параметр key должен совпадать с usermanager_key.
  4. Наличие метода — параметр request должен быть указан и соответствовать одному из поддерживаемых методов.

Код Описание
0 Success
1 API not enable
2 Wrong API key
3 Bad request (не указан request)
4 Unknown request (неизвестный метод)
5 Access denied from your IP
6 Missing required parameter
7 User not found
8 Login already exists
9 Password not unique
10 No free IP in sector / ошибка создания
11 Connection template not found
12 Update failed

Формат ответа при ошибке:

{
    "error": "Текст ошибки",
    "error_code": 2
}

Возвращает список всех поддерживаемых методов API.

Параметры: нет (только key и request)

Ответ:

{
    "get_supported_method_list": { "comment": "Return Supported Method List" },
    "get_api_information": { "comment": "Return API Version" },
    "create_user": { "comment": "Create new subscriber by connection template" },
    "get_user_data": { "comment": "Get subscriber data by uid" },
    "update_user": { "comment": "Update subscriber data" }
}

Возвращает версию и дату API.

Параметры: нет

Ответ:

{
    "version": "1.0.0",
    "date": "2026-04-14"
}

Создание нового абонента по шаблону подключения. Аналог createabonentfromconnectiontemplateExtjs.

При создании автоматически:

  • списывается абонплата (если положена);
  • подключаются базовые услуги тарифа.

Обязательные параметры

Параметр Тип Описание
connectiontemplateid int ID шаблона подключения
user string Логин абонента
password string Пароль абонента
gid int ID тарифа

Необязательные параметры

Параметр Тип Описание
fio string ФИО абонента
phone string Телефон
email string Email
houseid int ID дома
app string Квартира
porch int Подъезд
floor int Этаж
sectorid int ID сектора (если не задан в шаблоне)
usersgroupid int ID группы абонентов (субпровайдер)
is_legal int Юридическое лицо (1 — да, 0 — нет)
use_installments int Рассрочка (1 — да, 0 — нет)
custom_user_price float Индивидуальная цена пакета
custom_user_rate_down float Индивидуальная скорость загрузки
custom_user_rate_up float Индивидуальная скорость отдачи

Логика обработки

  • Если логин уже занят и включена сисопция autogen_login_do, логин генерируется автоматически.
  • Если включена сисопция generate_pwd_unique, пароль проверяется на уникальность.

Успешный ответ

{
    "result": "ok",
    "uid": 12345,
    "login": "subscriber01"
}

Пример запроса

https://admin.mikbill.pro/json/index/usermanager?key=MY_API_KEY&request=create_user&connectiontemplateid=1&user=newuser&password=pass123&gid=5&fio=Иванов Иван&phone=0501234567

Получение полных данных абонента по uid. Аналог getuserdatambpAjax.

Параметры

Параметр Тип Описание
uid int Обязательный. ID абонента

Возвращаемые данные

Основная информация
Поле Тип Описание
uid int ID абонента
login string Логин
fio string ФИО
state_id int Статус: 1 — активен, 2 — заблокирован, 3 — заморожен, 4 — удалён
flag_corporate int Юридическое лицо (1/0)
deposit float Баланс
credit float Кредит
blocked int Флаг блокировки
user_installed int Установлен ли абонент
Контактные данные
Поле Тип Описание
phone string Телефон
mob_tel string Мобильный телефон
sms_tel string Телефон для SMS
email string Email
Тариф
Поле Тип Описание
gid int ID текущего тарифа
tariff_name string Название текущего тарифа
gidd int ID следующего тарифа (0 — не назначен)
tariff_next_name string Название следующего тарифа
speed_rate string Скорость тарифа
speed_burst string Burst-скорость
discount mixed Значение скидки
Договор
Поле Тип Описание
date_connect string Дата подключения
numdogovor string Номер договора
date_contract string Дата договора
Адрес
Поле Тип Описание
houseid int ID дома
house string Дом
lane string Улица
settlementname string Населённый пункт
app string Квартира
porch int Подъезд
floor int Этаж
address string Полный адрес (текстовое поле)
Сеть
Поле Тип Описание
sectorid int ID сектора
sector string Название сектора
local_ip string Локальный IP
local_mac string MAC-адрес
framed_ip string Framed IP
swid int ID коммутатора
switchname string Название коммутатора
switchport int Порт коммутатора
Статус и группа
Поле Тип Описание
online int Онлайн-статус (1/0)
usersgroupid int ID группы абонентов
Дополнительно
Поле Тип Описание
comment string Комментарий
inn string ИНН
date_birth string Дата рождения
passportserie string Серия паспорта
passportpropiska string Прописка по паспорту
passportgdevidan string Кем выдан паспорт
custom_fields object Все кастомные поля (ключ-значение)

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

{
    "uid": 12345,
    "login": "subscriber01",
    "fio": "Иванов Иван Иванович",
    "state_id": 1,
    "flag_corporate": 0,
    "deposit": 150.50,
    "credit": 0,
    "gid": 5,
    "tariff_name": "Турбо 100",
    "gidd": 0,
    "tariff_next_name": "",
    "phone": "0501234567",
    "mob_tel": "",
    "sms_tel": "0501234567",
    "email": "user@example.com",
    "date_connect": "2024-01-15",
    "numdogovor": "D-12345",
    "date_contract": "2024-01-15",
    "blocked": 0,
    "user_installed": 1,
    "houseid": 42,
    "house": "15",
    "lane": "ул. Центральная",
    "settlementname": "г. Киев",
    "app": "101",
    "porch": 2,
    "floor": 5,
    "address": "",
    "sectorid": 3,
    "sector": "Сектор-1",
    "local_ip": "10.0.0.15",
    "local_mac": "AA:BB:CC:DD:EE:FF",
    "framed_ip": "192.168.1.15",
    "swid": 7,
    "switchname": "SW-Main-01",
    "switchport": 12,
    "speed_rate": "100M/100M",
    "speed_burst": "",
    "online": 1,
    "usersgroupid": 0,
    "comment": "",
    "inn": "",
    "date_birth": "1990-05-20",
    "discount": 0,
    "passportserie": "",
    "passportpropiska": "",
    "passportgdevidan": "",
    "custom_fields": {
        "ext_legal_person": "0",
        "ext_date_fiz_contract_conclusion": "2024-01-15"
    }
}

Обновление данных абонента. Аналог updateuserExtjs.

Обязательные параметры

Параметр Тип Описание
uid int ID абонента

Помимо uid, необходимо передать хотя бы одно поле для обновления.

Поля, доступные для обновления

Основные
Поле Тип Описание
fio string ФИО
phone string Телефон
mob_tel string Мобильный телефон
sms_tel string Телефон для SMS
email string Email
password string Пароль
user string Логин
gid int ID тарифа
deposit float Баланс
credit float Кредит
blocked int Флаг блокировки
Адрес
Поле Тип Описание
houseid int ID дома
app string Квартира
porch int Подъезд
floor int Этаж
address string Адрес (текст)
Сеть
Поле Тип Описание
sectorid int ID сектора
swid int ID коммутатора
switchport int Порт коммутатора
local_ip string Локальный IP
local_mac string MAC-адрес
framed_ip string Framed IP
Прочее
Поле Тип Описание
prim string Комментарий
numdogovor string Номер договора
date_abonka string Дата начала абонплаты
passportserie string Серия паспорта
passportpropiska string Прописка
passportgdevidan string Кем выдан паспорт
inn string ИНН
user_installed int Установлен
date_birth string Дата рождения
Кастомные поля

Любые поля с префиксом ext_, например:

Поле Описание
ext_date_fiz_contract_conclusion Дата заключения договора
ext_legal_person Юридическое лицо (1/0)
ext_gender Пол

Ошибки обновления

Метод updateUser может вернуть дополнительные коды ошибок:

Код Описание
1 Login already exists
2 No free IP in sector
3 Invalid MAC format
15 No permission to change parameter
26 Password not unique
28 Duplicate MAC address

Успешный ответ

{
    "result": "ok",
    "uid": 12345
}

Пример запроса

https://admin.mikbill.pro/json/index/usermanager?key=MY_API_KEY&request=update_user&uid=12345&fio=Петров Пётр&phone=0509876543&gid=7

# Получить информацию об API
curl "https://admin.mikbill.pro/json/index/usermanager?key=MY_API_KEY&request=get_api_information"
# Создать абонента
curl -X POST "https://admin.mikbill.pro/json/index/usermanager" \
  -d "key=MY_API_KEY" \
  -d "request=create_user" \
  -d "connectiontemplateid=1" \
  -d "user=newuser" \
  -d "password=SecurePass123" \
  -d "gid=5" \
  -d "fio=Иванов Иван" \
  -d "phone=0501234567" \
  -d "houseid=42" \
  -d "app=101"
# Получить данные абонента
curl "https://admin.mikbill.pro/json/index/usermanager?key=MY_API_KEY&request=get_user_data&uid=12345"
# Обновить данные абонента
curl -X POST "https://admin.mikbill.pro/json/index/usermanager" \
  -d "key=MY_API_KEY" \
  -d "request=update_user" \
  -d "uid=12345" \
  -d "gid=7" \
  -d "phone=0509876543"
$params = [
    'key'     => 'MY_API_KEY',
    'request' => 'get_user_data',
    'uid'     => 12345,
];
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://admin.mikbill.pro/json/index/usermanager');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
$response = curl_exec($ch);
curl_close($ch);
 
$data = json_decode($response, true);
  • billing/mblibexternal_apiusermanager.txt
  • Последнее изменение: 35 мин. назад
  • vs