whmcs.php¶
Модуль интеграции с WHMCS для управления клиентами, счетами, кредитом, отменами заказов и биллинговыми данными серверов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add_contact | добавление контакта | Добавляет дополнительного контактного пользователя для клиента в WHMCS. Если тип запроса не указан, создается случайный контакт с рандомным email. |
apply_credit | применение кредита к инвойсу | Применяет доступный баланс (кредит) клиента для оплаты конкретного неоплаченного инвойса. Если оплата проходит успешно, статус инвойса меняется на Paid. |
create_addfunds | создание инвойса на пополнение баланса | Создает инвойс в WHMCS для пополнения баланса клиента (Add Funds). Поддерживает автоматическую подписку при минимальной сумме. |
delete_cancellation_request | удаление запроса на отмену | Удаляет существующий запрос на отмену услуги для конкретного сервера, позволяя восстановить статус оплаты или сгенерировать новый счет. |
delete_contact | удаление контакта | Удаляет дополнительный контакт клиента из системы WHMCS и очищает связанные данные в локальной базе данных. |
download_invoice | скачивание инвойса | Возвращает PDF-файл инвойса в формате base64. Позволяет просматривать инвойс (inline) или скачивать его как файл. |
generate_due_invoice | генерация счета на оплату | Генерирует следующий приходящий счет (due invoice) для сервера в WHMCS, учитывая текущие аддоны и статус оплаты предыдущих счетов. |
get_billing_data | получение данных о биллинге сервера | Возвращает подробную информацию о биллинговых данных конкретного сервера, включая данные из WHMCS, статус 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 | массовая оплата инвойсов | Позволяет произвести массовую оплату нескольких инвойсов клиента, создавая один общий платежный документ. |
request_cancellation | запрос на отмену заказа/подписки | Инициирует процесс отмены заказа или подписки. Проверяет наличие активных лицензий, статус оплаты инвойсов и применяет правила возврата средств (включая EU B2C withdrawal). При наличии задолженностей по трафику сумма возврата корректируется. |
request_subscription_cancellation | запрос на отмену подписки | Инициирует процесс отмены банковской подписки для сервера. Проверяет наличие активной подписки, статус оплаты и создает тикет в JIRA. |
reset_password | сброс пароля | Позволяет сбросить пароль клиента. Если токен не предоставлен, отправляется ссылка на почту. Если токен валиден, выполняется проверка 2FA и смена пароля. |
transactions | получение транзакций клиента | Возвращает список финансовых транзакций пользователя, связанных с его аккаунтом в WHMCS. |
update_client | обновление данных клиента | Обновляет профиль клиента в WHMCS, включая персональные данные (имя, email), контактную информацию и кастомные поля. Поддерживает проверку уникальности email и валидацию телефонных номеров. |
update_contact | обновление контакта | Обновляет данные дополнительного контакта (имя, фамилия, email, телефон) для существующего клиента в WHMCS. |
whmcs/add_contact¶
Добавляет дополнительного контактного пользователя для клиента в WHMCS. Если тип запроса не указан, создается случайный контакт с рандомным email.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_contact |
| type | ❌ | integer | Тип запроса (0 - создание случайного контакта, 1 - добавление существующего) |
| profile_data[firstname] | ✅ | string | Имя контакта (обязательно для RU и при добавлении существующего) |
| 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-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fill_required_fields" }
```
whmcs/apply_credit¶
Применяет доступный баланс (кредит) клиента для оплаты конкретного неоплаченного инвойса. Если оплата проходит успешно, статус инвойса меняется на Paid.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: apply_credit |
| invoice_id | ✅ | int | ID инвойса для оплаты |
| amount | ✅ | float | Сумма кредита для применения |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "WHMCS ApplyCredit failed: {\"result\":\"error\",\"error\":\"...\"}", "details": { "status": "Unpaid" } }
```
whmcs/create_addfunds¶
Создает инвойс в WHMCS для пополнения баланса клиента (Add Funds). Поддерживает автоматическую подписку при минимальной сумме.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| amount | ✅ | number | Сумма пополнения |
| description | ❌ | string | Описание платежа |
| subscribe | ❌ | boolean | Включить автоматическое продление (подписку), если сумма минимальна |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "minimal payment amount is 10.0" }
```
whmcs/delete_cancellation_request¶
Удаляет существующий запрос на отмену услуги для конкретного сервера, позволяя восстановить статус оплаты или сгенерировать новый счет.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_cancellation_request |
| id | ✅ | integer | 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 контакта для удаления |
| location | ❌ | string | Локация (billing location) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "verification failed, subcontact not found" }
```
whmcs/download_invoice¶
Возвращает PDF-файл инвойса в формате base64. Позволяет просматривать инвойс (inline) или скачивать его как файл.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: download_invoice |
| token | ✅ | string | Токен авторизации |
| id | ❌ | int | ID инвойса |
| invoice_id | ❌ | int | Альтернативный ID инвойса (используется в функции) |
| proforma_invoice | ❌ | int | Флаг использования проформы-инвойса |
| viewpdf | ❌ | int | 1 — открыть в браузере (inline), 0 — скачать как файл (attachment) |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "Invalid invoice id" }
```
whmcs/generate_due_invoice¶
Генерирует следующий приходящий счет (due invoice) для сервера в WHMCS, учитывая текущие аддоны и статус оплаты предыдущих счетов.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: generate_due_invoice |
| id | ✅ | int | ID сервера (eq_id) |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "next_invoice_blocked_by_upgrade" }
```
whmcs/get_billing_data¶
Возвращает подробную информацию о биллинговых данных конкретного сервера, включая данные из WHMCS, статус EU B2C и информацию о лицензиях для возврата средств.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_billing_data |
| id | ✅ | int | ID сервера |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid request" }
```
whmcs/get_cancellation_requests¶
Возвращает список активных запросов на отмену услуг для конкретного сервера или пользователя с учетом фильтрации по дате, типу и статусу оплаты.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_cancellation_requests |
| id | ❌ | int | ID сервера для получения запросов по конкретному оборудованию. Если не указан, поиск идет по пользователю. |
| user_id | ❌ | int | ID пользователя для получения всех его запросов на отмену. |
| location | ❌ | string | Локация биллинга (например, whmcs, COM, RU). |
| period_from | ❌ | string | Дата начала периода фильтрации. |
| period_to | ❌ | string | Дата окончания периода фильтрации. |
| cancellation_type | ❌ | string | Тип отмены для фильтрации (например, 'End of Billing Period'). |
| billing_status | ❌ | string | Статус биллинга для фильтрации. |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"message": [
{
"relid": 123,
"cr_date": "2024-05-20 14:30:00",
"cr_reason": "User requested cancellation",
"cr_type": "End of Billing Period",
"name_client": "John Doe",
"due_date": "2024-06-20",
"account_id": 55,
"billing": "whmcs_ru",
"corporate": "N",
"customer_id": 10,
"status": "Active"
}
]
}
Примеры ошибок
``` { "code": -1, "message": "Invalid billing location $location" }
```
whmcs/get_client¶
Возвращает подробную информацию о авторизованном клиенте, включая данные из WHMCS и внутренние теги системы.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_client |
| token | ✅ | string | Токен авторизации |
| full | ❌ | boolean | Если true, возвращает расширенный набор данных (включая контактные данные и группы) |
| client | ✅ | string | Параметр client (обнаружен в коде) |
| billing_location | ✅ | string | Параметр billing_location (обнаружен в коде) |
| groupdata | ✅ | string | Параметр groupdata (обнаружен в коде) |
| internal | ✅ | string | Параметр internal (обнаружен в коде) |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "get_client",
"client": {
"id": 12345,
"firstname": "John",
"lastname": "Doe",
"email": "user@example.com",
"companyname": "Example Corp",
"status": "Active",
"currency_code": "USD",
"countrycode": "US",
"phonenumber": "+1234567890",
"address1": "Main St 1",
"city": "New York",
"state": "NY",
"postcode": "10001",
"country": "United States",
"groupid": 1,
"corporate": 0
},
"billing_location": "whmcs_com",
"internal": {
"id": 12345,
"email": "user@example.com",
"active_since": "2023-01-15"
},
"groupdata": null
}
Примеры ошибок
``` { "code": -1, "message": "Request failed for 12345@whmcs_com: client not found" }
```
whmcs/get_clientgroups¶
Возвращает список доступных групп клиентов из WHMCS для выбранной локации.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_clientgroups |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid token or access denied" }
```
whmcs/get_contacts¶
Возвращает список дополнительных контактов для указанного клиента или проверяет права доступа к контактам текущего пользователя.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_contacts |
| ❌ | string | Email для поиска контактов (используется в режиме subaccount) | |
| full | ❌ | boolean | Если true, возвращает расширенные данные клиента вместе с контактами |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fail to get contacts list" }
```
whmcs/get_invoice¶
Возвращает детальную информацию о счете из WHMCS, включая данные клиента и статус оплаты.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_invoice |
| token | ✅ | string | Токен авторизации |
| invoice_id | ✅ | integer | ID счета |
| load_client_data | ❌ | boolean | Загрузить данные клиента вместе со счетом |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "result": "-1", "error": "Invalid invoice id 456 at whmcs", "code": -1 }
```
whmcs/get_invoices¶
Возвращает список всех инвойсов, связанных с клиентом в WHMCS для указанной локации.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_invoices |
| token | ✅ | string | Токен авторизации |
| location | ❌ | string | Локация биллинга (извлекается из контекста пользователя) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "result": "-1", "message": "Invalid client id or billing location error" }
```
whmcs/get_related_invoices¶
Возвращает список инвойсов, связанных с конкретным сервером или аккаунтом клиента в WHMCS.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_related_invoices |
| id | ❌ | int | ID сервера (relid) |
| account_id | ❌ | int | ID аккаунта клиента в WHMCS |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "server $id are not linked to the billing" }
```
whmcs/getcredits¶
Возвращает информацию о доступных кредитах на счету клиента в указанной локации WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: getcredits |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID пользователя (если доступен) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to retrive account history at [location], please contact support - [error]" }
```
whmcs/getpaymentgw¶
Возвращает список доступных методов оплаты (платежных шлюзов) для конкретного инвойса.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| id | ✅ | int | ID инвойса (invoice_id) |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"methods": {
"stripe": {
"call": "<span style='text-align:left'><p data-intl='please_wire_funds_in_favor'>Please wire funds in favor of: </p>https://invapi.hostkey.com?invoice_id=123"
},
"banktransfer": {
"call": "<span style='text-align:left'><p data-intl='please_wire_funds_in_favor'>Please wire funds in favor of: </p>https://billing.hostkey.com/viewinvoice.php?id=123"
}
}
}
Примеры ошибок
``` { "code": -1, "message": "invalid invoice id 0 at whmcs_ru" }
```
whmcs/mass_pay¶
Позволяет произвести массовую оплату нескольких инвойсов клиента, создавая один общий платежный документ.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: mass_pay |
| invoices[] | ✅ | array | Массив ID инвойсов для оплаты. Минимум 2 значения. |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "mass_pay_requires_2_invoices" }
```
whmcs/request_cancellation¶
Инициирует процесс отмены заказа или подписки. Проверяет наличие активных лицензий, статус оплаты инвойсов и применяет правила возврата средств (включая EU B2C withdrawal). При наличии задолженностей по трафику сумма возврата корректируется.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: request_cancellation |
| id | ✅ | int | ID сервера для отмены |
| cancellation_type | ❌ | string | Тип отмены (например, 1 для немедленной) |
| token | ✅ | string | Токен авторизации |
Пример запроса
Примеры ошибок
``` { "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¶
Позволяет сбросить пароль клиента. Если токен не предоставлен, отправляется ссылка на почту. Если токен валиден, выполняется проверка 2FA и смена пароля.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: reset_password |
| token | ❌ | string | Токен для авторизации запроса |
| ✅ | string | Email пользователя | |
| location | ❌ | string | Локация биллинга (по умолчанию Auto) |
| reset_token | ❌ | string | Токен для сброса пароля (используется при наличии токена в базе) |
| pass | ❌ | string | Новый пароль |
| code | ❌ | string | Код двухфакторной аутентификации (2FA) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid password reset token, please try again." }
```
whmcs/transactions¶
Возвращает список финансовых транзакций пользователя, связанных с его аккаунтом в WHMCS.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: transactions |
| transaction_id | ❌ | string | ID конкретной транзакции для фильтрации |
| invoice_id | ❌ | integer | ID инвойса для фильтрации |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "\(module/\)action: failed to retrive transactions - error_details" }
```
whmcs/update_client¶
Обновляет профиль клиента в WHMCS, включая персональные данные (имя, email), контактную информацию и кастомные поля. Поддерживает проверку уникальности email и валидацию телефонных номеров.
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_smsnum] | ❌ | string | Номер телефона (проходит валидацию и транслитерацию) |
| profile_data[ips] | ❌ | string | Список IP-адресов для ACL через запятую/пробел |
| profile_data[co_customertype] | ❌ | string | Тип клиента (Individual / Company) |
| profile_data[tg_username] | ❌ | string | Username в Telegram (@username) |
| profile_data[form_id] | ❌ | string | ID формы для определения обязательных полей |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid profile data: billing_email can't be empty" }
```
whmcs/update_contact¶
Обновляет данные дополнительного контакта (имя, фамилия, email, телефон) для существующего клиента в WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: update_contact |
| params[contact_id] | ✅ | int | ID контакта для обновления |
| params[email] | ✅ | string | Email контакта (используется для верификации) |
| params[firstname] | ✅ | string | Имя контакта |
| params[lastname] | ❌ | string | Фамилия контакта |
| params[phonenumber] | ❌ | string | Номер телефона (проходит валидацию и транслитерацию) |
| params[password1] | ❌ | string | Новый пароль |
| params[password2] | ❌ | string | Подтверждение нового пароля |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fill_required_fields" }
```