whmcs.php¶
Модуль интеграции с WHMCS для управления клиентами, счетами, кредитом, отменами заказов и биллинговыми данными серверов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add_contact | добавление контакта | Создает новый контакт для клиента в системе WHMCS на основе переданных данных |
apply_credit | применение кредита к инвойсу | Применяет доступный баланс клиента (кредит) для оплаты выбранного счета (invoice). Если счет оплачен полностью, может быть инициировано очищение оверюза трафика. |
create_addfunds | создание инвойса на пополнение баланса в WHMCS | Создает инвойс для пополнения баланса клиента (Add Funds) в системе WHMCS. Поддерживает автоматическое включение подписки при определенных условиях. |
delete_cancellation_request | удаление запроса на отмену | Удаляет запрос на отмену для конкретного сервера, если он существует. Позволяет восстановить отмененный инвойс или сгенерировать новый. |
delete_contact | удаление контакта | Удаляет контакт клиента из WHMCS и удаляет связанные записи о пользователе в организации. |
download_invoice | скачивание инвойса | Возвращает PDF-файл счета (инвойса) в формате base64 для указанного ID пользователя и локации биллинга. |
generate_due_invoice | генерация счета на оплату | Генерирует следующий счет на оплату для сервера в WHMCS, если не нарушены условия (отсутствие неоплаченных счетов или наличие специфических тегов апгрейда). |
get_billing_data | получение данных о биллинге | Возвращает подробную информацию о биллинговых данных сервера, включая данные клиента, статус EU-withdrawal и лицензионные расходы в валюте ЕС. |
get_cancellation_requests | получение списка запросов на отмену | Возвращает список активных запросов на отмену услуг (из WHMCS и Prebill) с фильтрацией по датам, типу отмены и статусу биллинга. |
get_client | получение информации о клиенте | Возвращает подробную информацию о авторизованном клиенте из WHMCS, включая данные профиля, группу, внутренние теги и кастомные поля. |
get_clientgroups | получение групп | Возвращает список доступных групп клиентов из WHMCS для указанной локации. |
get_contacts | получение контактов клиента | Возвращает список дополнительных контактов для клиента WHMCS с проверкой прав доступа к ним. |
get_invoice | получение данных инвойса | Возвращает детальную информацию об инвойсе из WHMCS, включая данные клиента и валюту. |
get_invoices | получение списка инвойсов клиента | Возвращает список счетов (инвойсов) для конкретного клиента из WHMCS. Если запрос сделан от лица клиента, возвращаются только его счета. |
get_related_invoices | получение связанных инвойсов | Возвращает список инвойсов, связанных с конкретным сервером или аккаунтом пользователя |
getcredits | получение кредитов | Возвращает историю транзакций и текущий баланс кредитов пользователя в WHMCS |
getpaymentgw | получение шлюзов оплаты | Возвращает список доступных платежных шлюзов для конкретного инвойса с обработанными ссылками и формами оплаты. |
mass_pay | массовая оплата счетов | Создает массовый платеж по списку указанных ID инвойсов в WHMCS. |
request_cancellation | запрос на отмену | Инициирует процесс автоматической или ручной отмены услуги (сервера) в WHMCS с расчетом возврата средств, учетом трафика и проверкой условий контракта. |
request_subscription_cancellation | запрос на отмену подписки | Инициирует процесс отмены банковской подписки через создание тикета в JIRA и уведомление биллинга. Проверяет статус подписки в WHMCS и наличие открытых тикетов. |
reset_password | сброс пароля | Инициирует процесс сброса пароля. Если передан reset_token, проверяет его валидность и отправляет 2FA код или обновляет пароль. Если токен отсутствует, отправляет ссылку на сброс на email клиента. |
transactions | получение транзакций клиента | Возвращает список транзакций пользователя на основе предоставленного ID транзакции или инвойса |
update_client | обновление данных клиента | Обновляет персональные данные, контактную информацию, настройки 2FA и конфигурационные поля (custom fields) клиента в WHMCS. |
update_contact | обновление контактных данных клиента | Обновляет информацию о контакте (имя, фамилия, email, телефон) в WHMCS. Включает проверку прав доступа и валидацию форматов. |
whmcs/add_contact¶
Создает новый контакт для клиента в системе WHMCS на основе переданных данных
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_contact |
| params[firstname] | ✅ | string | Имя контакта |
| params[lastname] | ✅ | string | Фамилия контакта |
| params[email] | ✅ | string | Электронная почта контакта |
| params[phonenumber] | ❌ | string | Номер телефона |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Ошибка при создании контакта в WHMCS" }
```
whmcs/apply_credit¶
Применяет доступный баланс клиента (кредит) для оплаты выбранного счета (invoice). Если счет оплачен полностью, может быть инициировано очищение оверюза трафика.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: apply_credit |
| token | ❌ | string | Токен авторизации |
| invoice_id | ✅ | int | ID инвойса для оплаты |
| amount | ✅ | number | Сумма кредита для применения |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid invoice id" }
```
whmcs/create_addfunds¶
Создает инвойс для пополнения баланса клиента (Add Funds) в системе WHMCS. Поддерживает автоматическое включение подписки при определенных условиях.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_addfunds |
| amount | ✅ | number | Сумма пополнения баланса |
| subscribe | ❌ | boolean | Включить автоматические платежи банковской картой (автопродление) |
| description | ❌ | string | Описание для инвойса |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "\(module/\)action: invalid amount" }
```
whmcs/delete_cancellation_request¶
Удаляет запрос на отмену для конкретного сервера, если он существует. Позволяет восстановить отмененный инвойс или сгенерировать новый.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_cancellation_request |
| id | ✅ | int | ID сервера для удаления запроса на отмену |
| token | ✅ | string | Авторизационный токен |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "\(module/\)action: server $id doesn't have a relid data" }
```
whmcs/delete_contact¶
Удаляет контакт клиента из WHMCS и удаляет связанные записи о пользователе в организации.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_contact |
| contact_id | ✅ | int | ID контакта для удаления |
| location | ✅ | string | Локация биллинга (WHMCS location) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "verification failed, subcontact not found" }
```
whmcs/download_invoice¶
Возвращает PDF-файл счета (инвойса) в формате base64 для указанного ID пользователя и локации биллинга.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| invoice_id | ✅ | int | ID инвойса для скачивания |
| user_id | ❌ | int | ID пользователя в WHMCS |
| location | ✅ | string | Локация биллинга (например, whmcs) |
| proforma_invoice | ❌ | boolean | Флаг использования проформы счета |
| viewpdf | ❌ | int | Режим отображения: 1 - inline (в браузере), иначе - attachment (скачивание) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "undefined billing location" }
```
whmcs/generate_due_invoice¶
Генерирует следующий счет на оплату для сервера в WHMCS, если не нарушены условия (отсутствие неоплаченных счетов или наличие специфических тегов апгрейда).
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: generate_due_invoice |
| token | ✅ | string | API-токен аутентификации |
| addonids | ❌ | array<int> | Список ID активных аддонов для генерации счета |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "result": -1, "error": "next_invoice_blocked_by_upgrade" }
```
whmcs/get_billing_data¶
Возвращает подробную информацию о биллинговых данных сервера, включая данные клиента, статус EU-withdrawal и лицензионные расходы в валюте ЕС.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_billing_data |
| id | ✅ | int | ID сервера для получения данных биллинга |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"customer_name": "John Doe",
"billing_cycle": "monthly",
"eu_b2c": 1,
"eu_withdrawal": 0,
"eu_withdrawal_licenses": [
{
"name": "License A",
"amount": 49.99,
"currency": "EUR"
}
],
"customer": {
"id": 123,
"email": "user@example.com",
"firstname": "John",
"lastname": "Doe",
"companyname": "Example Corp",
"status": "Active"
},
"location": "NL",
"ip": "192.168.1.1"
}
Примеры ошибок
``` { "code": -1, "message": "invalid request" }
```
whmcs/get_cancellation_requests¶
Возвращает список активных запросов на отмену услуг (из WHMCS и Prebill) с фильтрацией по датам, типу отмены и статусу биллинга.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_cancellation_requests |
| id | ❌ | int | ID сервера для получения запросов по конкретному аккаунту. Если 0 или -1, запрос выполняется глобально или для пользователя. |
| period_from | ❌ | string | Дата начала периода (формат даты) |
| period_to | ❌ | string | Дата окончания периода (формат даты) |
| cancellation_type | ❌ | string | Тип отмены. Значение 'All' игнорирует фильтр. |
| billing_status | ❌ | string | Статус биллинга. Значение 'All' игнорирует фильтр. |
| full | ❌ | boolean | Если true, возвращает расширенный результат (OK/Fail) в структуре WHMCS. |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
{
"result": "success",
"message": [
{
"account_id": 123,
"billing_status": "active",
"owner": "user@example.com",
"corporate": "Y",
"customer_id": 456,
"cr_date": "2024-05-20T10:00:00Z",
"cr_reason": "User requested cancellation",
"cr_type": "subscription",
"name_client": "John Doe",
"due_date": "2024-06-01",
"server_id": 789,
"cancellation_date": "2024-06-01"
}
]
}
Примеры ошибок
``` { "code": -1, "message": "WHMCS service is not linked to this server" }
```
whmcs/get_client¶
Возвращает подробную информацию о авторизованном клиенте из WHMCS, включая данные профиля, группу, внутренние теги и кастомные поля.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_client |
| whmcs_id | ❌ | int | ID клиента в WHMCS (используется для авторизации) |
| ❌ | string | Email пользователя для идентификации | |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"client": {
"id": 123,
"email": "user@example.com",
"firstname": "John",
"lastname": "Doe",
"fullname": "John Doe",
"groupid": 5,
"corporate": false,
"currency_code": "USD",
"status": "active",
"ip": "192.168.1.1",
"location": "US",
"customfields": {}
},
"billing_location": "US",
"groupdata": {
"id": 5,
"name": "Premium Customers"
},
"internal": {
"id": 123,
"email": "user@example.com",
"firstname": "John",
"lastname": "Doe",
"corporate": false,
"currency": "USD"
}
}
Примеры ошибок
``` { "code": 502, "message": "Request failed for 123@US: error_message" }
```
whmcs/get_clientgroups¶
Возвращает список доступных групп клиентов из WHMCS для указанной локации.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_clientgroups |
| location | ✅ | string | Локация биллинга (например, whmcs или COM) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid request" }
```
whmcs/get_contacts¶
Возвращает список дополнительных контактов для клиента WHMCS с проверкой прав доступа к ним.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_contacts |
| ❌ | string | Email подсубсчета для фильтрации списка контактов | |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "\(module/\)action: fail to get contacts list" }
```
whmcs/get_invoice¶
Возвращает детальную информацию об инвойсе из WHMCS, включая данные клиента и валюту.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_invoice |
| invoice_id | ✅ | int | ID инвойса |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid invoice id 0 at US" }
```
whmcs/get_invoices¶
Возвращает список счетов (инвойсов) для конкретного клиента из WHMCS. Если запрос сделан от лица клиента, возвращаются только его счета.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_invoices |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "WHMCS billing response error or incorrect structure" }
```
whmcs/get_related_invoices¶
Возвращает список инвойсов, связанных с конкретным сервером или аккаунтом пользователя
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_related_invoices |
| account_id | ❌ | int | ID аккаунта для получения инвойсов |
| id | ❌ | int | ID сервера (если указан, используется его account_id) |
| token | ✅ | string | API-токен аутентуации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "$module/get_related_invoices: server 123 are not linked to the billing" }
```
whmcs/getcredits¶
Возвращает историю транзакций и текущий баланс кредитов пользователя в WHMCS
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: getcredits |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to retrive account history at US, please contact support - error_details" }
```
whmcs/getpaymentgw¶
Возвращает список доступных платежных шлюзов для конкретного инвойса с обработанными ссылками и формами оплаты.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: getpaymentgw |
| invoice_id | ✅ | int | ID инвойса в WHMCS |
| token | ✅ | string | API-токен аутенции |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"methods": {
"stripe": {
"call": "https://invapi.hostkey.com/pay?gateway=stripe&id=123"
},
"bitpay": {
"call": "https://invapi.hostkey.com/pay?gateway=bitpay&id=123"
},
"banktransfer": {
"call": "<span style='text-align:left'><p data-intl='please_wire_funds_in_favor'>Please wire funds in favor of: </p>...</span>"
}
}
}
Примеры ошибок
``` { "code": -1, "message": "invalid invoice id" }
```
whmcs/mass_pay¶
Создает массовый платеж по списку указанных ID инвойсов в WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: mass_pay |
| invoices[] | ✅ | array<int> | Массив ID инвойсов для оплаты. Принимает несколько значений: invoices[]=1&invoices[]=2 |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "mass_pay: failed to created masspay invoice - error_details" }
```
whmcs/request_cancellation¶
Инициирует процесс автоматической или ручной отмены услуги (сервера) в WHMCS с расчетом возврата средств, учетом трафика и проверкой условий контракта.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: request_cancellation |
| id | ✅ | int | ID сервера для отмены |
| cancellation_type | ❌ | int | Тип отмены (например, 1 для немедленной) |
| cancellation_reason | ❌ | string | Причина отмены услуги |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"action": "request_cancellation",
"data": {
"refund": 15.5,
"currency": "USD",
"service_price": 45.0,
"refund_message": "We credited back 15.5 USD (2 hours @ 7.75 USD/hour) for server 123 to the account balance...",
"clientid": 5678,
"billing": "whmcs",
"email": "user@example.com",
"invoice_id": 999,
"tax": 0.0,
"relid": 12345,
"withheld_amount": 15.5,
"period_start": "2024-01-01 00:00:00",
"d_deploy_time": "2024-01-01 12:00:00",
"d_bill_time": "2024-05-20 15:30:00"
}
}
Примеры ошибок
``` { "code": -1, "message": "server 123 are not linked to the billing" }
```
whmcs/request_subscription_cancellation¶
Инициирует процесс отмены банковской подписки через создание тикета в JIRA и уведомление биллинга. Проверяет статус подписки в WHMCS и наличие открытых тикетов.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: request_subscription_cancellation |
| id | ✅ | int | ID сервера (eq server id) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -1, "message": "sub_cancel_not_allowed_billing" }
```
whmcs/reset_password¶
Инициирует процесс сброса пароля. Если передан reset_token, проверяет его валидность и отправляет 2FA код или обновляет пароль. Если токен отсутствует, отправляет ссылку на сброс на email клиента.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: reset_password |
| ✅ | string | Email пользователя для сброса пароля или отправки 2FA | |
| location | ❌ | string | Локация (WHMCS location). По умолчанию 'Auto' |
| reset_token | ❌ | string | Хеш токена для проверки существующей сессии сброса |
| pass | ❌ | string | Новый пароль (используется при завершении процесса) |
| code | ❌ | string | Код двухфакторной аутентификации (2FA) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "result": "-1", "message": "Invalid password reset token, please try again." }
```
whmcs/transactions¶
Возвращает список транзакций пользователя на основе предоставленного ID транзакции или инвойса
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: transactions |
| transaction_id | ❌ | string | ID транзакции |
| invoice_id | ❌ | string | ID инвойса |
| token | ✅ | string | API-токен аутенции |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "$module/transactions: failed to retrive transactions - error_details" }
```
whmcs/update_client¶
Обновляет персональные данные, контактную информацию, настройки 2FA и конфигурационные поля (custom fields) клиента в WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: update_client |
| params[billing_email] | ❌ | string | Электронная почта клиента (автоматически проверяется на уникальность и валидность) |
| params[billing_firstname] | ❌ | string | Имя клиента |
| params[billing_lastname] | ❌ | string | Фамилия клиента |
| params[co_smsnum] | ❌ | string | Номер телефона для SMS-верификации (требует верификации) |
| params[tg_username] | ❌ | string | Имя пользователя Telegram (@username) |
| params[ips] | ❌ | string | Список IP-адресов для ACL (через пробел) |
| params[co_secret] | ❌ | string | Секретное слово профиля |
| params[billing_twofaenabled] | ❌ | boolean | Включение/выключение двухфакторной аутентификации (2FA) |
| params[co_customertype] | ❌ | string | Тип клиента (Individual / Company) |
| params[billing_address1] | ❌ | string | Адрес проживания/регистрации |
| params[billing_city] | ❌ | string | Город |
| params[billing_postcode] | ❌ | string | Постовый индекс |
| params[billing_country] | ❌ | string | Код страны (например, RU, US) |
| params[co_inn] | ❌ | string | ИНН компании (для юридических лиц) |
| params[co_kpp] | ❌ | string | КПП компании |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Account type change is not allowed" }
```
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-token аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fill_required_fields" }
```