Быстрый старт
Отправляйте уведомления клиентам через Telegram, WhatsApp, MAX и другие каналы — через единый REST API с авторизацией OAuth2. От регистрации до первого отправленного уведомления — 6 шагов.
Что умеет API
- Telegram, WhatsApp, MAX через единый интерфейс
- Идемпотентные запросы — безопасный retry при сетевых ошибках
- Webhook для получения статусов доставки
- Авторизация по
client_id/client_secretбез привязки к пользователю
Шаг 1. Получите credentials
Перейдите в std.seven.tech/ui/integrations, найдите карточку HTTP API и нажмите «Создать интеграцию». После подтверждения client_id и client_secret придут на почту.

На почту придёт письмо с двумя значениями:

Шаг 2. Подключите канал доставки
После создания интеграции откроется Нотификационная стратегия — список доступных каналов. Нажмите «Подключить» рядом с нужным каналом и пройдите процесс подключения.

Порядок карточек определяет приоритет: если первый канал не доставил сообщение, сервис автоматически попробует следующий.
Шаг 3. Получите токен
- curl
- Python
- Node.js
- PHP
curl -X POST https://std.seven.tech/auth/realms/std/protocol/openid-connect/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
import requests
resp = requests.post(
"https://std.seven.tech/auth/realms/std/protocol/openid-connect/token",
data={
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
},
)
token = resp.json()["access_token"]
const params = new URLSearchParams({
grant_type: "client_credentials",
client_id: "YOUR_CLIENT_ID",
client_secret: "YOUR_CLIENT_SECRET",
});
const resp = await fetch(
"https://std.seven.tech/auth/realms/std/protocol/openid-connect/token",
{ method: "POST", body: params }
);
const { access_token: token } = await resp.json();
$ch = curl_init("https://std.seven.tech/auth/realms/std/protocol/openid-connect/token");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query([
"grant_type" => "client_credentials",
"client_id" => "YOUR_CLIENT_ID",
"client_secret" => "YOUR_CLIENT_SECRET",
]),
]);
$data = json_decode(curl_exec($ch), true);
$token = $data["access_token"];
Пример ответа:
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 300,
"token_type": "Bearer"
}
Токен действует 5 минут (expires_in секунд). Кешируйте его и обновляйте по истечении.
Шаг 4. Отправьте уведомление
https://std.seven.tech/unotice-openapi-client
- curl
- Python
- Node.js
- PHP
curl -X POST https://std.seven.tech/unotice-openapi-client/api/v1/notifications \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"recipient": { "value": "79001234567" },
"notificationText": "Ваш заказ №12345 передан в доставку.",
"externalId": "order-12345-notify-1"
}'
resp = requests.post(
"https://std.seven.tech/unotice-openapi-client/api/v1/notifications",
headers={"Authorization": f"Bearer {token}"},
json={
"recipient": {"value": "79001234567"},
"notificationText": "Ваш заказ №12345 передан в доставку.",
"externalId": "order-12345-notify-1",
},
)
notification_id = resp.json()["notificationId"]
const resp = await fetch(
"https://std.seven.tech/unotice-openapi-client/api/v1/notifications",
{
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
recipient: { value: "79001234567" },
notificationText: "Ваш заказ №12345 передан в доставку.",
externalId: "order-12345-notify-1",
}),
}
);
const { notificationId } = await resp.json();
$ch = curl_init("https://std.seven.tech/unotice-openapi-client/api/v1/notifications");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer $token", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"recipient" => ["value" => "79001234567"],
"notificationText" => "Ваш заказ №12345 передан в доставку.",
"externalId" => "order-12345-notify-1",
]),
]);
$result = json_decode(curl_exec($ch), true);
$notificationId = $result["notificationId"];
Ответ 202 — уведомление принято. В теле ответа notificationId — сохраните его для отслеживания статуса.
Всегда передавайте externalId. При сетевой ошибке можно безопасно повторить запрос — повторная отправка не случится.