whmcs.php¶
Модуль интеграции с WHMCS для управления клиентами, счетами, кредитом, отменами заказов и биллинговыми данными серверов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add_contact | добавление контакта | Добавляет нового дополнительного контакта для клиента или создает случайного контактного пользователя. |
apply_credit | применение кредита к инвойсу | Применяет доступный баланс (кредит) клиента для оплаты выбранного счета (invoice). Если счет после оплаты переходит в статус 'Paid', автоматически очищаются связанные теги о перерасходе трафика. |
create_addfunds | создание инвойса на пополнение баланса | Создает инвойс в WHMCS для пополнения баланса клиента (Add Funds). Поддерживает создание обычного инвойса или инвойса с автоматическим включением подписки. |
delete_cancellation_request | удаление запроса на отмену | Удаляет активный запрос на отмену услуги для конкретного сервера, позволяя восстановить статус заказа или сгенерировать новый инвойс. |
delete_contact | удаление контакта | Удаляет дополнительный контакт, привязанный к клиенту в WHMCS. |
download_invoice | скачивание инвойса | Возвращает PDF-файл инвойса в формате base64. Позволяет просматривать инвойс (inline) или скачивать его как файл (attachment). |
generate_due_invoice | генерация счета на оплату | Генерирует следующий счет для сервера в WHMCS, учитывая текущий цикл оплаты и наличие активных аддонов. |
get_billing_data | получение биллинговых данных сервера | Возвращает детальную информацию о биллинге конкретного сервера, включая данные клиента, статус EU B2C и информацию о возвратах (если применимо). |
get_cancellation_requests | получение запросов на отмену | Возвращает список активных запросов на отмену услуг для конкретного сервера или пользователя с учетом фильтрации по датам, типу и статусу оплаты. |
get_client | получение информации о клиенте | Возвращает подробную информацию о клиенте из WHMCS, включая данные профиля, группы и внутренние данные системы. |
get_clientgroups | получение групп | Возвращает список доступных клиентских групп из WHMCS для указанной локации. |
get_contacts | получение контактов | Возвращает список дополнительных контактов для указанного клиента или проверяет права доступа к ним. |
get_invoice | получение данных счета | Возвращает детальную информацию о счете из WHMCS, включая данные клиента и статус оплаты. |
get_invoices | получение списка инвойсов клиента | Возвращает список всех инвойсов, связанных с аккаунтом пользователя в WHMCS для указанной локации. |
get_related_invoices | получение связанных инвойсов | Возвращает список инвойсов, связанных с конкретным сервером или аккаунтом в WHMCS. |
getcredits | получение кредитов | Возвращает информацию о доступных кредитах на балансе аккаунта в WHMCS. |
getpaymentgw | получение платежных шлюзов | Возвращает список доступных методов оплаты для конкретного инвойса с обработанными ссылками на оплату. |
mass_pay | массовая оплата инвойсов | Позволяет произвести массовую оплату нескольких инвойсов одновременно для клиента. Требуется минимум 2 инвойса. |
request_cancellation | запрос на отмену заказа/сервера | Инициирует процесс отмены заказа или сервиса в WHMCS. Проверяет наличие активных лицензий, статус оплаты инвойсов и возможность автоматического возврата средств (включая правила EU B2C). При наличии задолженностей по трафику может учитывать списания. |
request_subscription_cancellation | запрос на отмену подписки | Создает запрос в JIRA на отмену банковской подписки для сервера. Проверяет наличие активных подписок и статус оплаты. |
reset_password | сброс пароля | Инициирует процесс сброса пароля. Если токен не предоставлен, отправляет ссылку на email. Если токен валиден, позволяет установить новый пароль или запросить 2FA код. |
transactions | получение транзакций клиента | Возвращает список финансовых транзакций пользователя из WHMCS. Если данные не найдены, возвращает пустой массив. |
update_client | обновление данных клиента | Обновляет профиль клиента в WHMCS, включая персональные данные (имя, email), контактную информацию и кастомные поля (custom fields). Поддерживает обновление юридических данных для компаний. |
update_contact | обновление контакта клиента | Обновляет данные контактного лица (имя, фамилия, email, телефон) в системе WHMCS. Если обновляется email, может потребоваться повторная верификация. |
whmcs/add_contact¶
Добавляет нового дополнительного контакта для клиента или создает случайного контактного пользователя.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| type | ❌ | integer | Тип операции (0 - создание случайного контакта) |
| profile_data[firstname] | ✅ | string | Имя контакта |
| profile_data[lastname] | ❌ | string | Фамилия контакта |
| profile_data[email] | ✅ | string | Email контакта (должен быть уникальным) |
| profile_data[password1] | ✅ | string | Пароль контакта 1 |
| profile_data[password2] | ✅ | string | Пароль контакта 2 (подтверждение) |
| profile_data[phonenumber] | ❌ | string | Номер телефона контакта |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
curl -s "https://invapi.hostkey.ru/whmcs.php" -X POST \
--data "type=0" \
--data "profile_data[firstname]=John" \
--data "profile_data[lastname]=Doe" \
--data "profile_data[email]=john.doe@example.com" \
--data "profile_data[password1]=Secret123!" \
--data "profile_data[password2]=Secret123!" \
--data "token=YOUR_API_TOKEN"
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fill_required_fields" }
```
whmcs/apply_credit¶
Применяет доступный баланс (кредит) клиента для оплаты выбранного счета (invoice). Если счет после оплаты переходит в статус 'Paid', автоматически очищаются связанные теги о перерасходе трафика.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: apply_credit |
| token | ✅ | string | Токен авторизации |
| invoice_id | ✅ | integer | ID инвойса для оплаты |
| amount | ✅ | number | Сумма кредита для применения к счету |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "invalid invoice id 123 at location COM" }
```
whmcs/create_addfunds¶
Создает инвойс в WHMCS для пополнения баланса клиента (Add Funds). Поддерживает создание обычного инвойса или инвойса с автоматическим включением подписки.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_addfunds |
| amount | ✅ | number | Сумма пополнения |
| description | ❌ | string | Описание платежа |
| subscribe | ❌ | boolean | Включить автоматическое продление (подписку) при оплате инвойса на 1 единицу валюты |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "minimal payment amount is 10.0" }
```
whmcs/delete_cancellation_request¶
Удаляет активный запрос на отмену услуги для конкретного сервера, позволяя восстановить статус заказа или сгенерировать новый инвойс.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_cancellation_request |
| id | ✅ | int | ID сервера (relid) |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Server $id doesn't have a relid data" }
```
whmcs/delete_contact¶
Удаляет дополнительный контакт, привязанный к клиенту в WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_contact |
| contact_id | ✅ | int | ID контакта для удаления |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "verification failed, subcontact not found" }
```
whmcs/download_invoice¶
Возвращает PDF-файл инвойса в формате base64. Позволяет просматривать инвойс (inline) или скачивать его как файл (attachment).
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: download_invoice |
| token | ✅ | string | Токен авторизации |
| invoice_id | ✅ | int | ID инвойса |
| proforma_invoice | ❌ | int | Флаг использования проформы-инвойса (0 или 1) |
| viewpdf | ❌ | int | Режим отображения: 1 — открыть в браузере (inline), 0 — скачать файл (attachment) |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Ошибка получения данных инвойса или отсутствие прав доступа" }
```
whmcs/generate_due_invoice¶
Генерирует следующий счет для сервера в WHMCS, учитывая текущий цикл оплаты и наличие активных аддонов.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: generate_due_invoice |
| id | ✅ | int | ID сервера (equipment ID) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "next_invoice_blocked_by_upgrade": { "code": -1, "message": "next_invoice_blocked_by_upgrade" }, "next_invoice_blocked_by_due_date": { "code": -1, "message": "next_invoice_blocked_by_due_date" }, "next_invoice_unpaid_exists": { "code": -1, "message": "next_invoice_unpaid_exists" } }
```
whmcs/get_billing_data¶
Возвращает детальную информацию о биллинге конкретного сервера, включая данные клиента, статус EU B2C и информацию о возвратах (если применимо).
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_billing_data |
| id | ✅ | int | ID сервера |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -3, "message": "whmcs_server_exceded_traffic" }
```
whmcs/get_cancellation_requests¶
Возвращает список активных запросов на отмену услуг для конкретного сервера или пользователя с учетом фильтрации по датам, типу и статусу оплаты.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_cancellation_requests |
| id | ❌ | int | ID сервера для получения запросов по конкретному ресурсу. Если не указан, поиск идет по пользователю. |
| period_from | ❌ | string | Дата начала периода (формат YYYY-MM-DD) |
| period_to | ❌ | string | Дата окончания периода (формат YYYY-MM-DD) |
| cancellation_type | ❌ | string | Фильтр по типу отмены |
| billing_status | ❌ | string | Фильтр по статусу оплаты (например, Paid, Unpaid) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid billing location whmcs_ru" }
```
whmcs/get_client¶
Возвращает подробную информацию о клиенте из WHMCS, включая данные профиля, группы и внутренние данные системы.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_client |
| token | ✅ | string | Токен авторизации |
| full | ❌ | boolean | Возвращать полные данные (true) или только основные (false) |
| ❌ | string | Email клиента для поиска | |
| id | ❌ | integer | ID клиента (account_id) |
Пример запроса
Пример успешного ответа
{
"result": "OK|success",
"client": {
"id": 123,
"email": "user@example.com",
"firstname": "John",
"lastname": "Doe",
"fullname": "John Doe",
"status": "Active",
"currency_code": "USD",
"groupid": 1,
"countrycode": "US",
"city": "New York",
"state": "NY",
"postcode": "10001",
"address1": "123 Main St",
"address2": "Apt 4B",
"phonenumber": "+1234567890",
"companyname": "John Corp",
"corporate": 0,
"ip": "1.2.3.4",
"billing_location": "whmcs",
"groupdata": {
"id": 1,
"groupname": "Standard Users"
},
"internal": {
"id": 123,
"email": "user@example.com",
"corporate": 0,
"active_since": "2023-01-15"
}
}
}
Примеры ошибок
``` { "code": -1, "message": "Request failed for client@location: error_message" }
```
whmcs/get_clientgroups¶
Возвращает список доступных клиентских групп из WHMCS для указанной локации.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_clientgroups |
| token | ✅ | string | Токен авторизации |
| location | ❌ | string | Локация биллинга (WHMCS location) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid request or billing location not found" }
```
whmcs/get_contacts¶
Возвращает список дополнительных контактов для указанного клиента или проверяет права доступа к ним.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_contacts |
| token | ✅ | string | Токен авторизации |
| ❌ | string | Email для поиска конкретного контакта (используется при проверке прав под-аккаунта) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fail to get contacts list" }
```
whmcs/get_invoice¶
Возвращает детальную информацию о счете из WHMCS, включая данные клиента и статус оплаты.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_invoice |
| invoice_id | ✅ | int | ID счета |
| token | ✅ | string | Токен авторизации |
| load_client_data | ❌ | int | Загрузить данные клиента (1 - да) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid invoice id 0 at whmcs_ru" }
```
whmcs/get_invoices¶
Возвращает список всех инвойсов, связанных с аккаунтом пользователя в WHMCS для указанной локации.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_invoices |
| token | ✅ | string | Токен авторизации |
| clientid | ❌ | integer | ID клиента |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"totalresults": 2,
"numreturned": 2,
"invoices": {
"invoice": [
{
"id": 105,
"userid": 45,
"status": "Paid",
"date": "2023-10-01",
"total": 29.99,
"currency_code": "USD"
},
{
"id": 106,
"userid": 45,
"status": "Unpaid",
"date": "2023-11-01",
"total": 29.99,
"currency_code": "USD"
}
]
}
}
Примеры ошибок
``` { "result": "-1", "message": "Invalid client id" }
```
whmcs/get_related_invoices¶
Возвращает список инвойсов, связанных с конкретным сервером или аккаунтом в WHMCS.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_related_invoices |
| account_id | ❌ | int | ID аккаунта для поиска инвойсов |
| location | ❌ | string | Локация биллинга (WHMCS location) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "result": -1, "error": "server $id are not linked to the billing" }
```
whmcs/getcredits¶
Возвращает информацию о доступных кредитах на балансе аккаунта в WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: getcredits |
| token | ✅ | string | Токен авторизации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "failed to retrive account history at whmcs_ru, please contact support - error_message" }
```
whmcs/getpaymentgw¶
Возвращает список доступных методов оплаты для конкретного инвойса с обработанными ссылками на оплату.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Действие метода |
| token | ✅ | string | Токен авторизации |
| invoice_id | ✅ | int | ID инвойса |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to retrive payment gw list: error message" }
```
whmcs/mass_pay¶
Позволяет произвести массовую оплату нескольких инвойсов одновременно для клиента. Требуется минимум 2 инвойса.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: mass_pay |
| invoices[] | ✅ | array | Массив ID инвойсов для оплаты. Минимум 2 значения. |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "mass_pay_requires_2_invoices" }
```
whmcs/request_cancellation¶
Инициирует процесс отмены заказа или сервиса в WHMCS. Проверяет наличие активных лицензий, статус оплаты инвойсов и возможность автоматического возврата средств (включая правила EU B2C). При наличии задолженностей по трафику может учитывать списания.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: request_cancellation |
| id | ✅ | int | ID сервера для отмены |
| cancellation_type | ❌ | int | Тип отмены (1 - немедленная) |
| cancellation_reason | ❌ | string | Причина отмены заказа |
| token | ✅ | string | Токен авторизации |
| billing | ✅ | string | Место биллинга (location) |
| clientid | ✅ | int | ID клиента |
| ✅ | string | Email пользователя | |
| refund | ❌ | float | Сумма возврата |
| currency | ❌ | string | Валюта возврата |
| service_price | ❌ | float | Цена сервиса |
| refund_message | ❌ | string | Полное сообщение о возврате |
| refund_message_short | ❌ | string | Краткое сообщение о возврате |
| last_invoice | ✅ | int | ID последней инвойс-позиции (item) |
| prev_invoice_id | ❌ | int | ID предыдущего инвойса |
| relid | ✅ | int | ID аккаунта в WHMCS (service_relid) |
| tax | ❌ | float | Сумма налога |
| vat_extra | ❌ | boolean | Флаг наличия VAT extra |
| rec_before_tax | ❌ | float | Сумма до налогов |
| d_deploy_time | ❌ | string | Дата деплоя (deploy_date) |
| d_bill_time | ❌ | string | Текущее время запроса |
| d_reccuring | ❌ | float | Рекуррентный платеж (rec) |
| d_period | ❌ | string | Billing cycle |
| cbp_adjusted | ❌ | string | Сообщение о корректировке CBP |
Пример запроса
Примеры ошибок
``` { "code": -3, "message": "whmcs_server_exceded_traffic" }
```
whmcs/request_subscription_cancellation¶
Создает запрос в JIRA на отмену банковской подписки для сервера. Проверяет наличие активных подписок и статус оплаты.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: request_subscription_cancellation |
| id | ✅ | int | ID сервера |
| cancellation_type | ❌ | string | Тип отмены (например, 1) |
| cancellation_reason | ❌ | string | Причина отмены |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "sub_cancel_no_active_subscription" }
```
whmcs/reset_password¶
Инициирует процесс сброса пароля. Если токен не предоставлен, отправляет ссылку на email. Если токен валиден, позволяет установить новый пароль или запросить 2FA код.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: reset_password |
| token | ✅ | string | Auth token for API authorization |
| ✅ | string | Email пользователя для сброса пароля | |
| reset_token | ❌ | string | Токен для восстановления доступа (используется при повторном запросе) |
| pass | ❌ | string | Новый пароль пользователя |
| code | ❌ | string | Код двухфакторной аутентификации (2FA) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid password reset token, please try again." }
```
whmcs/transactions¶
Возвращает список финансовых транзакций пользователя из WHMCS. Если данные не найдены, возвращает пустой массив.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: transactions |
| transaction_id | ❌ | string | ID конкретной транзакции для фильтрации |
| invoice_id | ❌ | int | ID инвойса для фильтрации |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to retrive transactions - error_details" }
```
whmcs/update_client¶
Обновляет профиль клиента в WHMCS, включая персональные данные (имя, email), контактную информацию и кастомные поля (custom fields). Поддерживает обновление юридических данных для компаний.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: update_client |
| token | ✅ | string | Токен авторизации |
| profile_data[client_id] | ✅ | integer | ID клиента в WHMCS |
| profile_data[location] | ✅ | string | Локация биллинга (например, whmcs_ru) |
| profile_data[billing_email] | ❌ | string | Новый адрес электронной почты клиента |
| profile_data[billing_firstname] | ❌ | string | Имя в биллинге |
| profile_data[billing_lastname] | ❌ | string | Фамилия в биллинге |
| profile_data[co_customertype] | ❌ | string | Тип клиента (Individual/Company) |
| profile_data[ips] | ❌ | string | Список IP-адресов для ACL через запятую или пробел |
| profile_data[co_smsnum] | ❌ | string | Номер телефона (проходит верификацию) |
| profile_data[tg_username] | ❌ | string | Username в Telegram (@username) |
| profile_data[form_id] | ❌ | string | ID формы (personal_data, account_owner, address) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid profile data: billing_firstname can't be empty" }
```
whmcs/update_contact¶
Обновляет данные контактного лица (имя, фамилия, email, телефон) в системе WHMCS. Если обновляется email, может потребоваться повторная верификация.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| contact_id | ✅ | int | ID контакта для обновления |
| ✅ | string | Email контактного лица | |
| firstname | ✅ | string | Имя контакта |
| lastname | ❌ | string | Фамилия контакта |
| phonenumber | ❌ | string | Номер телефона (автоматически транслируется) |
| password1 | ❌ | string | Новый пароль для контакта |
| password2 | ❌ | string | Подтверждение пароля |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fill_required_fields" }
```