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

Интеграция Server-to-Server (REST API)

API позволяет одобрять контракты напрямую с вашего Backend и безопасно передавать согласия в систему HashEntry.

API-запросы должны содержать HTTP-заголовок X-API-Key с уникальным ключом API сайта из панели управления HashEntry.

Все POST-запросы должны быть подписаны с помощью HMAC-SHA256 для обеспечения целостности запросов и защиты от повторных атак. JS SDK делает это автоматически; при серверной интеграции подпись необходимо реализовать вручную.

ЗаголовокОписание
X-API-KeyВаш ключ API сайта
X-SignatureHMAC-SHA256 подпись канонического запроса
X-TimestampВременная метка Unix (секунды) — должна быть в пределах ±300с от серверного времени
X-NonceУникальный UUID на каждый запрос — предотвращает повторные атаки
1. timestamp = текущая временная метка Unix (секунды)
2. nonce = случайный UUID
3. bodyHash = SHA-256(тело запроса в формате JSON)
4. canonical = "{METHOD}\n{PATH}\n{timestamp}\n{nonce}\n{bodyHash}"
5. signature = HMAC-SHA256(canonical, apiKey)

Для автоматизированных серверных интеграций используйте S2S Auth — комбинацию аутентификации по ключу API с JWT Bearer-токенами.

  1. Создайте участника с ролью api_user через панель HashEntry (Настройки → Команда → Пригласить)
  2. API-пользователь входит через POST /api/v1/auth/login для получения JWT-токена
  3. Используйте оба заголовка в S2S-запросах:
X-API-Key: he_live_xxx
Authorization: Bearer {jwt_token}
МетодEndpointОписание
POST/tool/v1/s2s/consentsЗапись единичного согласия
POST/tool/v1/s2s/consents/batchЗапись пакетных согласий
GET/tool/v1/s2s/consents/exportЭкспорт записей согласий

Примечание: Роль api_user ограничена только доступом к S2S API — вход в панель управления невозможен.

Endpoint: POST https://system.hashentry.com/tool/v1/consents

Обязательные заголовки:

Content-Type: application/json
X-API-Key: ВАШ_СЕКРЕТНЫЙ_КЛЮЧ_API
X-Signature: {hmac_подпись}
X-Timestamp: {unix_метка}
X-Nonce: {уникальный_uuid}
{
"consent_type": "cookie_consent",
"decision": "accept",
"document_version_id": "privacy-policy-uuid"
}