Перейти к основному содержимому

Вебхуки

Вебхуки — это POST запросы которые AdaptGroup отправляет на ваш сервер при событиях подписки. Настройте URL и секретный ключ вебхука в дашборде.

Формат запроса

Каждый запрос вебхука имеет следующую структуру:

{
"event": "subs.created",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": { ... }
}
ПолеТипОписание
eventstringТип события
timestampstringВременная метка UTC в формате ISO 8601
dataobjectДанные события, зависят от типа события

Аутентификация

Каждый запрос вебхука содержит заголовок X-Webhook-Signature — HMAC-SHA256 от тела запроса с использованием вашего secret.

const crypto = require('crypto');

function verifySignature(body, secret, signature) {
const expected = crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return expected === signature;
}

IP-адрес

Все вебхуки отправляются с IP-адреса 139.60.162.7. Добавьте его в белый список на вашем сервере чтобы гарантировать получение запросов.

Политика повторных попыток

Если ваш сервер не отвечает кодом 200 или 201, AdaptGroup повторит отправку вебхука:

ПопыткаЗадержка
1Немедленно
21 минута
32 минуты
45 минут
510 минут
615 минут
730 минут
81 час
92 часа
102 часа

Если вебхук не доставлен после всех попыток (~6 часов), он удаляется.


События

subs.created

Отправляется когда создана новая подписка.

ПолеТипОписание
subscription_uuidstringUUID подписки
subscription_urlstringURL конфигурации VPN
plan_uuidstringUUID плана
external_user_idstring | nullID пользователя в вашей системе
devicesintegerМаксимальное количество устройств
daysintegerСрок подписки в днях
traffic_limit_bytesinteger | nullЛимит трафика в байтах, null если безлимит
end_datestringДата окончания подписки (ISO 8601)
{
"event": "subs.created",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"plan_uuid": "550e8400-e29b-41d4-a716-446655440000",
"external_user_id": "user_123",
"devices": 3,
"days": 30,
"traffic_limit_bytes": null,
"end_date": "2026-06-04T12:00:00"
}
}

subs.renewed

Отправляется когда подписка продлена.

ПолеТипОписание
subscription_uuidstringUUID подписки
subscription_urlstringURL конфигурации VPN
external_user_idstring | nullID пользователя в вашей системе
daysintegerДобавленные дни
traffic_limit_bytesinteger | nullДобавленный трафик в байтах, null если план без лимита
end_datestringНовая дата окончания (ISO 8601)
{
"event": "subs.renewed",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"days": 30,
"traffic_limit_bytes": null,
"end_date": "2026-07-04T12:00:00"
}
}

subs.upgraded

Отправляется когда план подписки повышен.

ПолеТипОписание
subscription_uuidstringUUID подписки
subscription_urlstringURL конфигурации VPN
external_user_idstring | nullID пользователя в вашей системе
old_plan_uuidstringUUID предыдущего плана
new_plan_uuidstringUUID нового плана
devicesintegerНовое максимальное количество устройств
additional_bytesintegerДобавленный трафик в байтах
{
"event": "subs.upgraded",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"old_plan_uuid": "550e8400-e29b-41d4-a716-446655440000",
"new_plan_uuid": "661f9511-f3ac-52e5-b827-557766551111",
"devices": 5,
"additional_bytes": 53687091200
}
}

subs.traffic_purchased

Отправляется когда куплен дополнительный трафик для подписки.

ПолеТипОписание
subscription_uuidstringUUID подписки
subscription_urlstringURL конфигурации VPN
external_user_idstring | nullID пользователя в вашей системе
gb_amountintegerКупленный объём в ГБ
additional_bytesintegerКупленный объём в байтах
{
"event": "subs.traffic_purchased",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"gb_amount": 10,
"additional_bytes": 10737418240
}
}

subs.expires_in_72_hours

Отправляется когда до окончания подписки остаётся 72 часа.

ПолеТипОписание
subscription_uuidstringUUID подписки
subscription_urlstringURL конфигурации VPN
external_user_idstring | nullID пользователя в вашей системе
end_datestringДата окончания подписки (ISO 8601)
{
"event": "subs.expires_in_72_hours",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"end_date": "2026-05-07T12:00:00"
}
}

subs.expires_in_48_hours

Отправляется когда до окончания подписки остаётся 48 часов.

{
"event": "subs.expires_in_48_hours",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"end_date": "2026-05-06T12:00:00"
}
}

subs.expires_in_24_hours

Отправляется когда до окончания подписки остаётся 24 часа.

{
"event": "subs.expires_in_24_hours",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"end_date": "2026-05-05T12:00:00"
}
}

subs.expired

Отправляется когда подписка истекла.

{
"event": "subs.expired",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"end_date": "2026-05-04T12:00:00"
}
}

subs.expired_24_hours_ago

Отправляется через 24 часа после истечения подписки.

{
"event": "subs.expired_24_hours_ago",
"timestamp": "2026-05-05T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"end_date": "2026-05-04T12:00:00"
}
}

subs.traffic_threshold_reached

Отправляется когда использование трафика подписки достигает настроенного порога.

ПолеТипОписание
subscription_uuidstringUUID подписки
subscription_urlstringURL конфигурации VPN
external_user_idstring | nullID пользователя в вашей системе
used_traffic_bytesintegerИспользованный трафик в байтах
traffic_limit_bytesintegerОбщий лимит трафика в байтах
{
"event": "subs.traffic_threshold_reached",
"timestamp": "2026-05-04T12:00:00.000Z",
"data": {
"subscription_uuid": "770fa622-a4bd-63f6-c938-668877662222",
"subscription_url": "https://network-api.adaptgroup.app/sub/770fa622-a4bd-63f6-c938-668877662222",
"external_user_id": "user_123",
"used_traffic_bytes": 96636764160,
"traffic_limit_bytes": 107374182400
}
}
© 2026 AdaptGroup LLC. All rights reserved.
30 N Gould St Ste R, Sheridan, WY 82801, USA
Back to top