Heartbeat клиентской сессии

Heartbeat сообщает Gigma, что клиент продолжает активно пользоваться продуктом. Он обновляет время последней активности и длительность сессии.

Запись сессии создаётся автоматически при входе. Отдельно начинать её не нужно.

Heartbeat не подтверждает оплату, подписку или право доступа. Для этого проверяйте заказ или подписку на своём backend.

Когда отправлять heartbeat

  1. Начните отправку после успешного входа клиента.
  2. Первый запрос можно выполнить при начале активной работы.
  3. Следующий запрос отправляйте через интервал next_heartbeat_in_seconds из ответа.
  4. Остановите отправку, когда вкладка или экран больше не активны.
  5. При 401 завершите локальную сессию и проведите вход заново.

Не отправляйте heartbeat чаще шести раз в минуту для одного Bearer.

Обновите активность клиентской сессии

Метод
POST
URL
https://api.gigma.ru/api/counterparty/session/heartbeat
Авторизация
App Token + Bearer token
Headers
Token: {application_token}; Authorization: Bearer {counterparty_token}
Успешный ответ
200

Тело запроса не требуется. Передайте App Token приложения и Bearer клиента.

Запрос

POST /api/counterparty/session/heartbeat HTTP/1.1
Host: api.gigma.ru
Token: <application_token>
Authorization: Bearer <counterparty_token>
Accept: application/json

Ответ

При успешном запросе API вернёт HTTP 200.

{
    "session": {
        "id": 154,
        "status": "active",
        "started_at": "2026-07-30T03:00:00+00:00",
        "last_seen_at": "2026-07-30T03:02:00+00:00",
        "duration_seconds": 120
    },
    "server_time": "2026-07-30T03:02:00+00:00",
    "next_heartbeat_in_seconds": 60
}
Поля ответа
  • session.id — идентификатор сессии.
  • session.status — состояние сессии; успешный heartbeat возвращает active.
  • session.started_at — время начала сессии в ISO 8601.
  • session.last_seen_at — время последней активности в ISO 8601.
  • session.duration_seconds — активное время в секундах.
  • server_time — время сервера в ISO 8601.
  • next_heartbeat_in_seconds — рекомендуемая задержка до следующего запроса.

За один интервал учитывается не больше 180 секунд. После перерыва в 300 секунд Gigma завершает прежнюю сессию. Следующий heartbeat с тем же действующим Bearer создаст новую запись сессии.

Ошибки

  • 401 — проверьте App Token и Bearer. Если Bearer недействителен, проведите вход заново.
  • 404 — проверьте проект и Application.
  • 429 Too Many Attempts. — дождитесь окончания Retry-After.
  • 503 counterparty_session_unavailable — повторите запрос позже; не запускайте бесконечный цикл повторов.

Готово: активность учтена, а время следующего запроса получено из ответа API.

Что учесть

  • Используйте серверное время из server_time, если часы устройства могут отличаться.
  • Не имитируйте активность фоновой вкладки только ради сохранения сессии.
  • Не используйте session.status вместо проверки заказа или подписки.
  • При длительном перерыве не создавайте новый Bearer: новая запись сессии откроется по прежнему действующему токену.

Что дальше