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

Быстрый старт

Отправляйте уведомления клиентам через 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 придут на почту.

Страница интеграций — карточка HTTP API

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

Письмо с credentials

Шаг 2. Подключите канал доставки

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

Нотификационная стратегия — список каналов

Порядок карточек определяет приоритет: если первый канал не доставил сообщение, сервис автоматически попробует следующий.

Шаг 3. Получите токен

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"

Пример ответа:

{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 300,
"token_type": "Bearer"
}

Токен действует 5 минут (expires_in секунд). Кешируйте его и обновляйте по истечении.

Шаг 4. Отправьте уведомление

Base URL

https://std.seven.tech/unotice-openapi-client

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"
}'

Ответ 202 — уведомление принято. В теле ответа notificationId — сохраните его для отслеживания статуса.

Идемпотентность

Всегда передавайте externalId. При сетевой ошибке можно безопасно повторить запрос — повторная отправка не случится.

Шаг 5. Настройте webhook для статусов доставки

Если вам нужно знать, доставлено ли сообщение, зарегистрируйте URL своего сервера:

curl -X POST https://std.seven.tech/unotice-openapi-client/api/v1/webhooks \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-server.example.com/webhook"}'

Когда нотификация достигнет терминального статуса, сервис отправит POST на ваш URL:

{
"eventType": "NOTIFICATION_STATUS_CHANGED",
"notificationStatusChanged": {
"notificationId": "550e8400-e29b-41d4-a716-446655440000",
"status": "DELIVERED",
"deliveredAt": "2024-01-15T10:30:00Z"
}
}

При status: "FAILED" вместо deliveredAt придёт массив errors с кодом и описанием причины. Ответьте 2xx — событие считается принятым. При 5xx / 408 / 429 сервис повторит запрос до 8 раз с exponential backoff (суммарное окно ≈ 42 минуты). Один клиент — один webhook URL.

Шаг 6. Готово

Что дальше: