whmcs.php¶
Модуль интеграции с WHMCS для управления клиентами, счетами, кредитом, отменами заказов и биллинговыми данными серверов.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add_contact | добавление контакта | Добавляет нового дополнительного контакта для клиента в WHMCS. Если тип запроса не указан, создается случайный контакт с рандомным email. |
apply_credit | применение кредита к инвойсу | Применяет доступный баланс (кредит) клиента для оплаты выбранного неоплаченного инвойса. Если сумма кредита больше суммы инвойса, применяется только необходимая часть. |
create_addfunds | создание счета на пополнение баланса | Создает инвойс в WHMCS для пополнения баланса клиента (Add Funds). Поддерживает автоматическое включение автопродления при минимальной сумме. |
delete_cancellation_request | удаление запроса на отмену | Удаляет существующий запрос на отмену услуги (cancellation request) для конкретного сервера, что позволяет восстановить процесс или очистить статус ожидания. |
delete_contact | удаление контакта | Удаляет дополнительный контакт клиента из системы WHMCS и очищает связанные данные в InvAPI. |
download_invoice | скачивание инвойса | Возвращает PDF-файл инвойса в формате base64 для просмотра или скачивания. |
generate_due_invoice | генерация счета на оплату | Генерирует следующий счет для оплаты (due invoice) для сервера, учитывая текущий цикл биллинга и наличие активных аддонов. |
get_billing_data | получение биллинг-данных сервера | Возвращает детальную информацию о биллинге конкретного сервера, включая данные клиента и статус EU withdrawal. |
get_cancellation_requests | получение запросов на отмену | Возвращает список активных запросов на отмену услуг для конкретного сервера или пользователя с учетом фильтрации по дате, типу и статусу биллинга. |
get_client | получение информации о клиенте | Возвращает подробную информацию о авторизованном клиенте, включая данные из WHMCS и внутренние теги системы. |
get_clientgroups | получение групп | Возвращает список доступных групп клиентов в WHMCS для указанной локации биллинга. |
get_contacts | получение контактов клиента | Возвращает список дополнительных контактов, привязанных к клиенту в WHMCS. Если указан email subaccount, возвращаются только те контакты, которые имеют соответствующие права доступа. |
get_invoice | получение данных инвойса | Возвращает детальную информацию об инвойсе из WHMCS, включая данные клиента и статус оплаты. |
get_invoices | получение списка инвойсов клиента | Возвращает список всех инвойсов, связанных с аккаунтом клиента в WHMCS. |
get_related_invoices | получение связанных инвойсов | Возвращает список инвойсов, связанных с конкретным сервером (через account_id) |
getcredits | получение кредитов | Возвращает информацию о балансе (кредитах) пользователя в WHMCS для указанной локации. |
getpaymentgw | получение доступных платежных шлюзов для инвойса | Возвращает список доступных методов оплаты (gateways) для конкретного инвойса с поддержкой форматирования ссылок и HTML-кода вызова. |
mass_pay | массовая оплата инвойсов | Создает один общий инвойс для оплаты нескольких выбранных инвойсов клиента. |
request_cancellation | запрос на отмену | Инициирует процесс отмены заказа/сервера в WHMCS, включая проверку условий возврата средств и создание тикета в JIRA. |
request_subscription_cancellation | запрос на отмену подписки | Инициирует процесс отмены банковской подписки для сервера. Создает тикет в JIRA и вешает тег запроса на сервер. |
reset_password | сброс пароля | Позволяет сбросить пароль клиента. Если токен не предоставлен, отправляется ссылка на почту. Если токен известен, выполняется проверка 2FA и смена пароля. |
transactions | получение транзакций клиента | Возвращает список финансовых транзакций пользователя по указанному ID инвойса или конкретной транзакции. |
update_client | обновление данных клиента | Обновляет персональные данные клиента (имя, email, телефон), настройки 2FA, информацию о компании и кастомные поля в WHMCS. |
update_contact | обновление контакта | Обновляет данные дополнительного контакта (имя, фамилия, email, телефон) для существующего клиента в WHMCS. Поддерживает проверку уникальности email и верификацию номера телефона. |
whmcs/add_contact¶
Добавляет нового дополнительного контакта для клиента в WHMCS. Если тип запроса не указан, создается случайный контакт с рандомным email.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add_contact |
| 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-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fill_required_fields" }
```
whmcs/apply_credit¶
Применяет доступный баланс (кредит) клиента для оплаты выбранного неоплаченного инвойса. Если сумма кредита больше суммы инвойса, применяется только необходимая часть.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| invoice_id | ✅ | int | ID неоплаченного инвойса для оплаты |
| amount | ❌ | number | Сумма кредита для применения (автоматически ограничивается балансом клиента и суммой инвойса) |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid invoice id 123 at whmcs_location" }
```
whmcs/create_addfunds¶
Создает инвойс в WHMCS для пополнения баланса клиента (Add Funds). Поддерживает автоматическое включение автопродления при минимальной сумме.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: create_addfunds |
| token | ✅ | string | Токен авторизации |
| amount | ✅ | number | Сумма пополнения |
| description | ❌ | string | Описание платежа |
| subscribe | ❌ | boolean | Включить автоматическое продление (автоплатеж) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "minimal payment amount is 10.00" }
```
whmcs/delete_cancellation_request¶
Удаляет существующий запрос на отмену услуги (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 и очищает связанные данные в InvAPI.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: delete_contact |
| token | ✅ | string | Токен авторизации |
| contact_id | ✅ | int | ID контакта для удаления |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "verification failed, subcontact not found" }
```
whmcs/download_invoice¶
Возвращает PDF-файл инвойса в формате base64 для просмотра или скачивания.
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": "Invalid invoice id or invalid billing location" }
```
whmcs/generate_due_invoice¶
Генерирует следующий счет для оплаты (due invoice) для сервера, учитывая текущий цикл биллинга и наличие активных аддонов.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: generate_due_invoice |
| id | ✅ | int | ID сервера (entity id) |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "next_invoice_blocked_by_upgrade" }
```
whmcs/get_billing_data¶
Возвращает детальную информацию о биллинге конкретного сервера, включая данные клиента и статус EU withdrawal.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_billing_data |
| id | ✅ | int | ID сервера |
| token | ✅ | string | Токен авторизации |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"module": "whmcs",
"action": "get_billing_data",
"customer": {
"id": 1,
"email": "example@test.com",
"firstname": "John",
"lastname": "Doe",
"companyname": "Company",
"address1": "Address",
"address2": "",
"city": "City",
"state": "State",
"countrycode": "RU",
"postcode": "123456",
"phonenumber": "79001234567",
"clientid": 1,
"account_id": 1,
"billing": "whmcs_ru",
"corporate": 0,
"currency": "RUB",
"email_verified": "verified"
},
"location": "RU",
"customer_name": "John Doe",
"eu_withdrawal": 1
}
Примеры ошибок
``` { "code": -1, "message": "invalid request" }
```
whmcs/get_cancellation_requests¶
Возвращает список активных запросов на отмену услуг для конкретного сервера или пользователя с учетом фильтрации по дате, типу и статусу биллинга.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_cancellation_requests |
| id | ❌ | int | ID сервера для получения запросов по конкретному ресурсу. Если -1, поиск идет по пользователю. |
| 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 $location" }
```
whmcs/get_client¶
Возвращает подробную информацию о авторизованном клиенте, включая данные из WHMCS и внутренние теги системы.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_client |
| token | ✅ | string | Токен авторизации |
| ❌ | string | Email клиента для поиска (используется в некоторых сценариях) | |
| full | ❌ | boolean | Флаг получения полных данных (включая пароли и расширенные поля) |
Пример запроса
Пример успешного ответа
{
"result": "OK|success",
"client": {
"id": 123,
"firstname": "John",
"lastname": "Doe",
"email": "user@example.com",
"companyname": "Example Corp",
"countrycode": "US",
"currency_code": "USD",
"status": "Active",
"corporate": 0,
"inn": "",
"contractnum": ""
},
"billing_location": "whmcs_itb",
"internal": {
"id": 123,
"email": "user@example.com",
"corporate": 0,
"active_since": "2024-01-15"
},
"groupdata": {
"id": 1,
"groupname": "Premium Customers"
}
}
Примеры ошибок
``` { "code": -1, "message": "Request failed for client@location: error_message" }
```
whmcs/get_clientgroups¶
Возвращает список доступных групп клиентов в WHMCS для указанной локации биллинга.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_clientgroups |
| location | ✅ | string | Локация (billing location) для получения групп |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Billing error: WHMCS connection failed" }
```
whmcs/get_contacts¶
Возвращает список дополнительных контактов, привязанных к клиенту в WHMCS. Если указан email subaccount, возвращаются только те контакты, которые имеют соответствующие права доступа.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_contacts |
| token | ✅ | string | Токен авторизации |
| ❌ | string | Email subaccount для фильтрации контактов (если не указан, возвращаются все контакты клиента) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fail to get contacts list" }
```
whmcs/get_invoice¶
Возвращает детальную информацию об инвойсе из WHMCS, включая данные клиента и статус оплаты.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_invoice |
| token | ✅ | string | Токен авторизации |
| invoice_id | ✅ | int | ID инвойса |
| load_client_data | ❌ | int | Загрузить данные клиента вместе с инвойсом (1 - да, 0 - нет) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid invoice id 0 at whmcs_location" }
```
whmcs/get_invoices¶
Возвращает список всех инвойсов, связанных с аккаунтом клиента в WHMCS.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_invoices |
| token | ✅ | string | Токен авторизации |
| id | ❌ | integer | ID клиента (используется как client_id для whmcs_get_invoices) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "result": -1, "error": "Invalid client id" }
```
whmcs/get_related_invoices¶
Возвращает список инвойсов, связанных с конкретным сервером (через account_id)
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: get_related_invoices |
| account_id | ❌ | int | ID аккаунта в WHMCS. Если не указан, определяется автоматически по id сервера |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "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 LOC, please contact support - error_message" }
```
whmcs/getpaymentgw¶
Возвращает список доступных методов оплаты (gateways) для конкретного инвойса с поддержкой форматирования ссылок и HTML-кода вызова.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Имя метода: getpaymentgw |
| token | ✅ | string | Токен авторизации |
| invoice_id | ✅ | int | ID инвойса |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to retrive payment gw list: error message" }
```
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¶
Инициирует процесс отмены заказа/сервера в WHMCS, включая проверку условий возврата средств и создание тикета в JIRA.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| id | ✅ | int | ID сервера для отмены |
| cancellation_type | ❌ | string | Тип отмены (1 - немедленная) |
| cancellation_reason | ❌ | string | Причина отмены |
| refund | ❌ | number | Сумма возврата |
| currency | ❌ | string | Валюта возврата |
| service_price | ❌ | number | Стоимость услуги для расчета |
| refund_message | ❌ | string | Сообщение о возврате (RU/EN) |
| refund_message_short | ❌ | string | Краткое сообщение о возврате |
| last_invoice | ✅ | int | ID последней инвойс-позиции для расчета |
| prev_invoice_id | ❌ | int | ID предыдущего инвойса |
| relid | ✅ | int | Связанный ID (account_id) |
| vat_extra | ❌ | boolean | Включен ли НДС в сумме возврата |
| rec_before_tax | ❌ | number | Сумма до налогов |
| d_deploy_time | ❌ | string | Дата развертывания (для расчета) |
| d_reccuring | ❌ | string | Периодичность оплаты |
| cbp_adjusted | ❌ | string | Сообщение о корректировке CBP |
| token | ✅ | string | API-token аутентификации |
Пример запроса
Примеры ошибок
``` { "code": -3, "message": "whmcs_immediate_cancellation_no_invoices" }
```
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_jira_error" }
```
whmcs/reset_password¶
Позволяет сбросить пароль клиента. Если токен не предоставлен, отправляется ссылка на почту. Если токен известен, выполняется проверка 2FA и смена пароля.
HTTP-метод: POST|GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Имя действия (reset_password) |
| token | ❌ | string | Токен для сброса пароля |
| ✅ | string | Email пользователя | |
| location | ❌ | string | Локация биллинга (по умолчанию Auto) |
| pass | ❌ | string | Новый пароль (для завершения сброса через токен) |
| code | ❌ | string | Код 2FA для подтверждения операции |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "Invalid request or password reset failed" }
```
whmcs/transactions¶
Возвращает список финансовых транзакций пользователя по указанному ID инвойса или конкретной транзакции.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: transactions |
| transaction_id | ❌ | string | ID конкретной транзакции |
| invoice_id | ❌ | integer | ID инвойса для фильтрации транзакций |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "failed to retrive transactions - error_message" }
```
whmcs/update_client¶
Обновляет персональные данные клиента (имя, email, телефон), настройки 2FA, информацию о компании и кастомные поля в WHMCS.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| token | ✅ | string | Токен авторизации |
| profile_data[client_id] | ✅ | integer | ID клиента в WHMCS |
| profile_data[location] | ✅ | string | Локация биллинга (например, whmcs_ru) |
| profile_data[billing_email] | ❌ | string | Новый email клиента |
| profile_data[billing_firstname] | ❌ | string | Имя в биллинге |
| profile_data[billing_lastname] | ❌ | string | Фамилия в биллинге |
| profile_data[co_smsnum] | ❌ | string | Номер телефона для SMS-верификации |
| profile_data[ips] | ❌ | string | Список IP-адресов (через разделитель) для ACL |
| profile_data[co_secret] | ❌ | string | Секретное слово профиля |
| profile_data[billing_twofaenabled] | ❌ | boolean | Включена ли двухфакторная аутентификация |
| profile_data[co_customertype] | ❌ | string | Тип клиента (Individual/Company) |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "invalid profile data: billing_firstname can't be empty" }
```
whmcs/update_contact¶
Обновляет данные дополнительного контакта (имя, фамилия, email, телефон) для существующего клиента в WHMCS. Поддерживает проверку уникальности email и верификацию номера телефона.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: update_contact |
| contact_id | ✅ | int | ID контакта для обновления |
| ✅ | string | Email контакта (проверяется на уникальность и валидность) | |
| firstname | ✅ | string | Имя контакта |
| lastname | ❌ | string | Фамилия контакта |
| phonenumber | ❌ | string | Номер телефона (проходит верификацию через twilio) |
| profile_data[password1] | ❌ | string | Новый пароль контакта |
| profile_data[password2] | ❌ | string | Подтверждение пароля |
| token | ✅ | string | API-токен аутентификации |
Пример запроса
Пример успешного ответа
Примеры ошибок
``` { "code": -1, "message": "fill_required_fields" }
```