Что потребуется для подключения
Перед интеграцией убедитесь, что в личном кабинете Soglasius создан проект типа personal_data.
project_id— идентификатор проекта в форматеS-XXXXXX.license_key— ключ проекта. Он нужен только для серверных запросов.- Основной домен и дополнительные разрешенные домены должны быть добавлены в настройках проекта.
- Активная версия согласия должна быть загружена и опубликована в разделе настроек ПДн.
Какие API использовать
Для фиксации согласия используйте endpoint /api/v1/sendConsent/. Он валидирует запрос, формирует запись согласия и сохраняет ее в хранилище.
Основной запрос для фиксации согласия или отказа пользователя.
Endpoint
POST https://soglasius.ru/api/v1/sendConsent/
Авторизация
Если запрос отправляется из браузера с разрешенного домена, ключ проекта передавать не нужно: домен определяется по заголовкам Origin или Referer.
Если запрос отправляется с сервера, передайте заголовки:
X-Auth-Token: YOUR_LICENSE_KEY X-Domain: example.ru Content-Type: application/json
Не размещайте license_key в публичном JavaScript-коде сайта.
Тело запроса
{
"type": "personal_data",
"project_id": "S-ABC123",
"data": {
"purposes": ["registration", "feedback"],
"categories": {
"full_name": "Иван Иванов",
"email": "ivan@example.ru",
"phone": "+7 900 000-00-00"
},
"processing_actions": ["collection", "storage", "use"]
}
}
Пример запроса из браузера
await fetch('https://soglasius.ru/api/v1/sendConsent/', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: 'personal_data',
project_id: 'S-ABC123',
data: {
purposes: ['registration', 'feedback'],
categories: {
full_name: 'Иван Иванов',
email: 'ivan@example.ru'
},
processing_actions: ['collection', 'storage', 'use']
}
})
});
Пример серверного запроса
curl -X POST "https://soglasius.ru/api/v1/sendConsent/" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: YOUR_LICENSE_KEY" \
-H "X-Domain: example.ru" \
-d '{
"type": "personal_data",
"project_id": "S-ABC123",
"data": {
"purposes": ["registration"],
"categories": {
"email": "ivan@example.ru"
},
"processing_actions": ["collection", "storage", "use"]
}
}' Обязательные поля, формат согласия и способ передать отказ пользователя.
Корневые поля
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
type |
string | да | Всегда personal_data. |
project_id |
string | да | Идентификатор проекта в Soglasius. |
data |
object | да | Данные согласия пользователя. |
test |
boolean | нет | Если передать true, запрос будет только проверен и не сохранится. |
Поля объекта data
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
purposes |
array | да | Непустой массив кодов целей обработки. |
categories |
object | да | Объект категорий персональных данных. Ключ — код категории, значение — данные пользователя для формирования хеша. |
processing_actions |
array | да | Непустой массив кодов действий с персональными данными. |
Согласие и отказ
Если пользователь дал согласие, передайте в categories хотя бы одну выбранную категорию.
Если пользователь отказался от обработки персональных данных, передайте пустой объект categories. Такой запрос фиксируется как отказ.
{
"type": "personal_data",
"project_id": "S-ABC123",
"data": {
"purposes": ["feedback"],
"categories": {},
"processing_actions": ["collection", "storage"]
}
}
Как используются значения категорий
Сервис не хранит исходные значения персональных данных в составе согласия. Значения используются для формирования user_hash, по которому можно сопоставить согласие с пользователем без хранения исходных данных.
Для email удаляются пробелы, для phone остаются только цифры, для full_name и address лишние пробелы сворачиваются. Все строковые значения приводятся к нижнему регистру и обрезаются по краям.
Поля ip_address и user_agent, если переданы, используются как технические метаданные записи согласия. Они не должны быть единственными данными для сопоставления согласия с пользователем.
Допустимые значения для целей обработки, категорий данных и действий.
Цели обработки: purposes
| Код | Значение |
|---|---|
registration | Регистрация |
authorization | Авторизация |
user_account | Личный кабинет |
feedback | Обратная связь |
support | Поддержка пользователей |
notifications | Уведомления |
service_messages | Сервисные сообщения |
contract_execution | Исполнение договора |
billing | Расчеты и выставление счетов |
refunds | Возвраты средств |
marketing | Маркетинг |
personalized_marketing | Персонализированный маркетинг |
remarketing | Ремаркетинг |
analytics | Аналитика |
product_improvement | Улучшение продукта |
ab_testing | A/B тестирование |
fraud_prevention | Предотвращение мошенничества |
security | Обеспечение безопасности |
legal_compliance | Соблюдение требований законодательства |
archiving | Архивное хранение данных |
Категории персональных данных: categories
| Код | Значение |
|---|---|
full_name | Полное имя / ФИО |
email | Адрес электронной почты |
phone | Номер телефона |
username | Username / логин |
account_id | Идентификатор аккаунта |
user_id | Идентификатор пользователя |
ip_address | IP-адрес |
device_id | Идентификатор устройства |
user_agent | Данные браузера и устройства |
date_of_birth | Дата рождения |
gender | Пол |
address | Адрес |
passport | Паспортные данные |
tax_id | ИНН |
payment_details | Платежные данные |
transaction_history | История операций |
Действия с персональными данными: processing_actions
| Код | Значение |
|---|---|
collection | Сбор |
recording | Фиксация |
storage | Хранение |
use | Использование |
systematization | Систематизация |
aggregation | Обобщение |
modification | Изменение |
extraction | Извлечение |
transfer | Передача |