customers.php¶
В этой статье
- Методы API
- customers/bulk
- customers/deploy_list
- customers/deploy_load
- customers/deploy_logs
- customers/deploy_update
- customers/fix_duplicates
- customers/get
- customers/list
- customers/login
- customers/orders
- customers/remove
- customers/reset
- customers/reset_brute
- customers/servers
- customers/update
- customers/update_acl
- customers/set_order_status
Модуль управления клиентами: управление списком доступа по IP, обновление данных и работа с заказами
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
bulk | массовая операция над услугами клиента | Выполняет массовое изменение статуса услуг (активация, приостановка, удаление) для списка серверов. |
deploy_list | получение списка деплоев | Возвращает список событий развертывания (деплоя) по фильтрам. |
deploy_load | загрузка деплоев клиента | Вызывает функцию customers_deploy_load, которая добавляет теги развертывания (deploy tags) для сервера, связанного с клиентом. |
deploy_logs | логи деплоев | Возвращает логи операций развертывания. |
deploy_update | обновление деплоя | Обновляет данные о развертывании (комментарии, периоды и т.д.). |
fix_duplicates | поиск дубликатов клиентов | Поиск и подготовка к удалению дублирующихся записей клиентов по email в рамках одного биллинга. |
get | получение данных клиента, включая информацию о биллинге и теги | Возвращает детальную информацию о клиенте (данные из БД + WHMCS), включая расширенную группу биллинга. |
list | получение списка клиентов | Возвращает список клиентов с примененными фильтрами. |
login | авторизация клиента | Генерирует временный токен доступа для входа в интерфейс клиента. |
orders | получение заказов | Возвращает список заказов, связанных с клиентом. |
remove | удаление клиента | Удаляет запись о клиенте по его ID. |
reset | сброс данных авторизации клиента | Сбрасывает данные авторизации клиента (сессии, токены и счетчик брутфорса). |
reset_brute | сброс лимитов | Сбрасывает счетчик ограничений (rate limiter) для клиента. |
servers | получение серверов клиента | Возвращает список серверов, привязанных к конкретному клиенту в указанной локации. |
set_order_status | установка статуса заказа | Устанавливает статус заказа в системе WHMCS на основе ID клиента. |
update | обновление данных клиента | Обновляет основные данные клиента, включая billing (WHMCS), email и другие параметры профиля. При изменении email обновляются настройки 2FA. |
update_acl | обновление IP ACL | Добавляет или удаляет список разрешенных IP-адресов (ACL) для клиента. |
customers/bulk¶
Выполняет массовое изменение статуса услуг (активация, приостановка, удаление) для списка серверов.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: bulk |
| token | ✅ | string | Токен авторизации |
| params[action_type] | ✅ | string | Тип массовой операции. Допустимые значения: active, suspend, cancel |
| params[server_ids][] | ✅ | array | Параметр server_ids |
Пример запроса
Пример успешного ответа
Примеры ошибок
customers/deploy_list¶
Возвращает список событий развертывания (деплоя) по фильтрам.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: deploy_list |
| token | ✅ | string | Токен авторизации |
| params[billing] | ❌ | string | Фильтр по биллингу. |
| params[period_from] | ✅ | string | Дата начала периода. Должна быть валидной датой. |
| params[period_to] | ✅ | string | Дата окончания периода. Должна быть валидной датой. |
| params[event] | ❌ | string | Тип события. Допустимые значения: whmcs_am, whmcs_itb, whmcs_ru. |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"module": "customers",
"action": "deploy_list",
"data": [
{
"id": 123,
"server_id": 456,
"companyname": "Company Inc",
"inn": "1234567890",
"email": "user@example.com",
"billing": "whmcs_ru",
"title": "Title",
"recc": "price_value",
"period": "P1M",
"deploy_date": "2024-01-01",
"comment": "Billing cycle change: old (old_price currency) → new (new_price currency)",
"order_id": "",
"contract_num": "CNT-123",
"is_event": true
}
]
}
customers/deploy_load¶
Вызывает функцию customers_deploy_load, которая добавляет теги развертывания (deploy tags) для сервера, связанного с клиентом.
HTTP-метод: POST
Параметры:
| action | ✅ | string | Идентификатор метода: deploy_load |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | ID клиента (извлекается из \(_POST/\)_GET) |
| params[load] | ❌ | integer | Флаг запуска процесса добавления тегов (если > 0). Если 0, процесс не выполняется. По умолчанию 1. |
Пример запроса
Пример успешного ответа
Примеры ошибок
customers/deploy_logs¶
Возвращает логи операций развертывания.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: deploy_logs |
| token | ✅ | string | Токен авторизации |
| params[billing] | ❌ | string | Фильтр по биллингу. Допустимые значения: whmcs_ru, whmcs_itb, whmcs_am |
| params[period_from] | ❌ | string | Дата начала периода. |
| params[period_to] | ❌ | string | Дата окончания периода. |
Пример запроса
Пример успешного ответа
customers/deploy_update¶
Обновляет данные о развертывании (комментарии, периоды и т.д.).
HTTP-метод: POST
Параметры:
| action | ✅ | string | Идентификатор метода: deploy_update |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | ID клиента (из $_args) |
| params[comment] | ❌ | string | Комментарий к обновлению. |
| params[inn] | ❌ | string | ИНН клиента. |
| params[companyname] | ❌ | string | Название компании. |
| params[email] | ❌ | string | Электронная почта клиента. |
| params[order_id] | ❌ | string | ID заказа. |
| params[period] | ❌ | string | Период обновления. |
| params[deploy_date] | ❌ | string | Дата развертывания. |
Пример запроса
curl -s "https://invapi.hostkey.ru/customers.php" -X POST \
--data "action=deploy_update" \
--data "token=HOSTKEY_TOKEN" \
--data "id=123" \
--data "params[comment]=Updated info" \
--data "params[inn]=770123456789" \
--data "params[companyname]=My Company" \
--data "params[email]=test@example.com" \
--data "params[order_id]=ORD-123" \
--data "params[period]=2023-01-01 to 2024-01-01" \
--data "params[deploy_date]=2023-05-20"
Примеры ошибок
customers/fix_duplicates¶
Поиск и подготовка к удалению дублирующихся записей клиентов по email в рамках одного биллинга.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: fix_duplicates |
| token | ✅ | string | Токен авторизации |
| limit | ❌ | integer | Лимит записей. По умолчанию 50. |
Пример запроса
Пример успешного ответа
Примеры ошибок
customers/get¶
Возвращает детальную информацию о клиенте (данные из БД + WHMCS), включая расширенную группу биллинга.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (по умолчанию -1) |
Пример запроса
Пример успешного ответа
customers/list¶
Возвращает список клиентов с примененными фильтрами.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list |
| token | ✅ | string | Токен авторизации |
| params[id] | ❌ | integer | ID клиента (передается через массив params) |
| params[billing] | ❌ | string | Локация/биллинг |
| params[email] | ❌ | string | Email клиента для поиска. |
| params[order] | ❌ | string | Порядок сортировки (например: id DESC). |
Пример запроса
Пример успешного ответа
Примеры ошибок
customers/login¶
Генерирует временный токен доступа для входа в интерфейс клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: login |
| token | ✅ | string | Токен авторизации (администратора) |
| id | ❌ | integer | ID клиента для входа |
| res | ❌ | string | Результат выполнения запроса или контекст сессии |
Пример запроса
Пример успешного ответа
Примеры ошибок
customers/orders¶
Возвращает список заказов, связанных с клиентом.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: orders |
| token | ✅ | string | Токен авторизации |
| params[limit] | ❌ | integer | Количество записей на страницу. По умолчанию 10. |
| params[page] | ❌ | integer | Номер страницы. По умолчанию 1. |
| params[order] | ❌ | integer | ID заказа для фильтрации (по умолчанию 0). |
Пример запроса
Пример успешного ответа
customers/remove¶
Удаляет запись о клиенте по его ID.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: remove |
| id | ❌ | integer | Уникальный идентификатор клиента для удаления. |
| token | ✅ | string | Уникальный идентификатор сессии для авторизации запроса. |
Пример запроса
Пример успешного ответа
Примеры ошибок
customers/reset¶
Сбрасывает данные авторизации клиента (сессии, токены и счетчик брутфорса).
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: reset |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (если не указан, берется из данных токена) |
Пример запроса
Примеры ошибок
{
"errors": [
{
"code": -1,
"message": "customers/reset: invalid token, logout"
},
{
"code": -1,
"message": "customers/reset: failed to reset auth for the customer 123: customers_reset: invalid id key 123 provided"
},
{
"code": -1,
"message": "customers/reset: failed to reset auth for the customer 123: customers_reset: invalid customer id 123, not exists "
}
]
}
customers/reset_brute¶
Сбрасывает счетчик ограничений (rate limiter) для клиента.
HTTP-метод: POST
Параметры:
| action | ✅ | string | Идентификатор метода: reset_brute |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента для сброса лимитов попыток входа (по умолчанию -1) |
Пример запроса
Пример успешного ответа
Примеры ошибок
{
"errors": [
{
"code": null,
"message": "customers/reset_brute: invalid request"
},
{
"code": null,
"message": "customers/reset_brute: failed to reset rate limiter for the customer 123: customers_reset_brute: invalid id key -1 provided"
},
{
"code": null,
"message": "customers/reset_brute: failed to reset rate limiter for the customer 123: customers_reset_brute: invalid customer id 123, not exists"
}
]
}
customers/servers¶
Возвращает список серверов, привязанных к конкретному клиенту в указанной локации.
HTTP-метод: POST
Параметры:
| action | ✅ | string | Идентификатор метода: servers |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| params[customerEdit_billing] | ✅ | string | Параметр customerEdit_billing, используемый в формировании сообщения об ошибке |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"servers": [
{
"id": 50,
"type": "server_type",
"owner": "customer_email",
"status": "active",
"ip": "1.2.3.4",
"location": "NL",
"config": "hw_config",
"full_location": "Rack-Pos-ID",
"monthly": 50.0,
"next_duedate": "2023-10-10",
"preset": "preset_value",
"currency": "EUR",
"billing_status": "paid",
"reccuring": "true",
"billing_cycle": "monthly",
"deploy_date": "2023-01-01"
}
]
}
Примеры ошибок
customers/update¶
Обновляет основные данные клиента, включая billing (WHMCS), email и другие параметры профиля. При изменении email обновляются настройки 2FA.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: update |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента для обновления (по умолчанию -1) |
| params[billing] | ✅ | string | Локация/биллинг. Если изменена, проверяется наличие дубликатов в системе. |
| params[email] | ✅ | string | Email клиента. При изменении обновляются настройки двухфакторной аутентификации (2FA). |
| params[currency] | ❌ | string | Валюта клиента. |
| billng_update | ❌ | integer | Флаг синхронизации данных с WHMCS (1 — обновить email в WHMCS). По умолчанию 0. |
| params[customerEdit_billing] | ✅ | string | Параметр для формирования ошибки PlatformException при обновлении WHMCS |
Пример запроса
customers/update_acl¶
Добавляет или удаляет список разрешенных IP-адресов (ACL) для клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: update_acl |
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | ID клиента |
| ips | ✅ | string | Список IP-адресов через пробел. Если пусто, список ACL будет очищен. |
Пример запроса
customers/set_order_status¶
Устанавливает статус заказа в системе WHMCS на основе ID клиента.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: set_order_status |
| token | ✅ | string | Токен авторизации |
| id | ✅ | integer | Идентификатор клиента |
| params[status] | ✅ | string | Статус заказа для установки. |
| location | ❌ | string | Локация (биллинг) клиента. |
| status | ✅ | string | Параметр status |
Пример запроса