GDPR‑совместимая SMS‑рассылка требует чёткого согласия, прозрачной политики и надёжного управления отпиской. Для европейского рынка это означает соблюдение правил обработки персональных данных и обязательства по защите прав субъектов. Ниже приведены практические шаги, которые помогут вам реализовать безопасную и законную коммуникацию по SMS.
Что такое GDPR‑совместимая SMS‑рассылка?
GDPR (General Data Protection Regulation) – регламент ЕС, регулирующий обработку персональных данных. SMS‑рассылка подпадает под категорию «обработка персональных данных», поэтому требуется соблюдение требований GDPR, включая законность, справедливость и прозрачность.
Ключевые понятия
- Персональные данные – любая информация, относящаяся к идентифицированному или идентифицируемому физическому лицу.
- Согласие – добровольное, конкретное, информированное и однозначное подтверждение субъекта.
- Обработка – любые действия с персональными данными, включая сбор, хранение, использование и удаление.
Ключевые требования GDPR для SMS‑рассылок
Ниже перечислены основные требования, которые необходимо учитывать при работе с SMS‑рассылками в ЕС.
- Законность и прозрачность – данные должны собираться только после явного согласия и в соответствии с заявленной целью.
- Минимизация данных – собирать только те данные, которые необходимы для конкретной рассылки.
- Обеспечение безопасности – использовать шифрование и защищённые каналы передачи.
- Права субъектов – право на доступ, исправление, удаление и ограничение обработки.
- Отказ от рассылки (opt‑out) – простой и быстрый механизм отписки, подтверждённый на каждом этапе.
- Обязанность хранить доказательства согласия – вести журнал согласий и сохранять его минимум 3 года.
- Оповещение о нарушениях – уведомлять регулятор и пострадавших в течение 72 часов после обнаружения утечки.
Процесс получения согласия: пошаговое руководство
Получение согласия – первый и самый важный шаг. Ниже представлен практический шаблон.
| Этап | Действие | Результат |
|---|---|---|
| 1. Сбор номера | Форма онлайн/офлайн с чек‑боксом «Я согласен(а) на получение SMS‑сообщений» | Номер + согласие в базе |
| 2. Подтверждение согласия | Отправка SMS с кодом подтверждения (только после согласия) | Пользователь подтверждает номер |
| 3. Хранение доказательств | Запись timestamp, IP, пользовательский агент в журнал | Юридическая защита |
| 4. Информирование | Отправка политики конфиденциальности и прав пользователя | Прозрачность |
Ниже пример кода для отправки SMS‑подтверждения через API.
import requests
api_url = "https://api.smsprovider.com/v1/send"
api_key = "YOUR_API_KEY"
def send_confirmation(phone_number, confirmation_code):
payload = {
"to": phone_number,
"message": f"Ваш код подтверждения: {confirmation_code}",
"sender": "CompanyName"
}
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
response = requests.post(api_url, json=payload, headers=headers)
response.raise_for_status()
return response.json()
Техническая реализация и контроль доступа
Для защиты данных в процессе отправки SMS необходимо реализовать следующие меры:
- Использовать HTTPS для всех API‑запросов.
- Шифровать номера в базе данных с помощью AES‑256.
- Внедрить двухфакторную аутентификацию для администраторов.
- Регулярно обновлять ключи API и менять пароли.
- Проводить аудит доступа к таблице согласий.
Ниже пример конфигурации шифрования в PostgreSQL.
-- Установка расширения pgcrypto
CREATE EXTENSION IF NOT EXISTS pgcrypto;
-- Таблица с зашифрованными номерами
CREATE TABLE sms_subscribers (
id serial PRIMARY KEY,
phone_encrypted bytea NOT NULL,
consent_ts timestamp with time zone NOT NULL,
ip_address inet,
user_agent text
);
-- Функция вставки
INSERT INTO sms_subscribers (phone_encrypted, consent_ts, ip_address, user_agent)
VALUES (pgp_sym_encrypt('+1234567890', 'encryption_key'), NOW(), '192.168.1.10', 'Mozilla/5.0');
Управление отпиской и обновлением данных
Опция отписки должна быть встроена в каждое сообщение. Пошаговый процесс:
- Пользователь отправляет SMS «STOP» или «UNSUBSCRIBE».
- Система автоматически обновляет статус в базе:
is_active = false. - Подтверждающее сообщение «Вы успешно отписаны» отправляется в ответ.
- Журнал отписки хранится минимум 3 года.
В случае изменения номера телефона пользователь должен пройти процесс переактивации:
- Отправка нового кода подтверждения.
- Проверка старого номера как доказательство владения.
- Обновление записи в базе.
Мониторинг, аудит и штрафы
Регулярный мониторинг позволяет обнаружить нарушения до того, как они превратятся в штрафы. Рекомендуемые действия:
- Еженедельные отчёты о количестве отправленных сообщений, отписок и ошибок.
- Автоматический скрипт проверки согласий:
SELECT COUNT(*) FROM sms_subscribers WHERE consent_ts < NOW() - INTERVAL '90 days'; - Внедрение системы логирования событий (audit trail) с неизменяемыми логами.
- Проведение внутреннего аудита каждые 6 месяцев.
Нарушения GDPR могут повлечь штрафы до 20 млн евро или 4 % от глобального годового оборота, в зависимости от того, что выше.
Сравнение GDPR и ePrivacy Regulation (ePR)
| Параметр | GDPR | ePR (планируемый) |
|---|---|---|
| Область применения | Персональные данные | Куки, сообщения, SMS, мессенджеры |
| Согласие для SMS | Явное, подтверждённое | Явное, подтверждённое, но с более строгой проверкой |
| Срок хранения | Не более 3 лет без необходимости | Не более 6 месяцев без дополнительного согласия |
| Штрафы | До 20 млн € | До 30 млн € |
Определения ключевых терминов
- Контроллер данных – лицо, определяющее цели и средства обработки.
- Обработчик данных – лицо, которое обрабатывает данные по поручению контроллера.
- Координатор согласий – система, фиксирующая и проверяющая согласия.
FAQ
Вопрос 1: Нужно ли получать согласие, если я отправляю только транзакционные SMS?
Ответ: Да, даже транзакционные сообщения требуют согласия, если они не являются обязательными для исполнения договора.
Вопрос 2: Как быстро можно отреагировать на нарушение данных?
Ответ: Согласно GDPR, уведомление регулятора должно быть сделано в течение 72 часов после обнаружения утечки.
Вопрос 3: Можно ли использовать общую базу номеров для разных компаний?
Ответ: Нет, каждая компания должна хранить собственные согласия и не использовать данные без дополнительного согласия.
Вопрос 4: Что делать, если пользователь не отвечает на SMS‑подтверждение?
Ответ: Установить лимит попыток (обычно 3) и автоматически отписать пользователя после превышения.
Вопрос 5: Как хранить доказательства согласия в облаке?
Ответ: Использовать шифрованное хранилище, ограничить доступ по ролям и вести журнал доступа.
Вопрос 6: Можно ли использовать код из примера выше в продакшене?
Ответ: Да, но обязательно замените YOUR_API_KEY на собственный ключ и настройте обработку ошибок.
«The General Data Protection Regulation (GDPR) provides for the protection of natural persons with regard to the processing of personal data. The GDPR is a regulation, not a directive, and therefore is directly applicable in all Member States.»
European Commission, 2018
«The European Data Protection Board stresses that consent must be freely given, specific, informed and unambiguous.»
EDPB, 2025