Перейти к содержимому
easy-connect
ГлавнаяДокументацияБиллинг, право, безопасность
Содержание ТЗ
Техническое заданиеВерсия 1.0 · 18.10.2026

07. Биллинг, юридические требования и безопасность

Модель 200 ₽ за связку, ЮKassa, 152-ФЗ, оферта, безопасность, SLA и поддержка.

1. Биллинг

1.1. Модель

  • 200 ₽/мес за одну активную связку.
  • Нет списаний за транзакции, пользователей или шаги.
  • Trial: 7 дней и 100 тестовых запусков на каждую связку.
  • Пауза: списания прекращаются со следующего периода.
  • Удаление: списания прекращаются, доступ к истории — 90 дней.
  • Один платёж может покрывать несколько связок (сводный счёт).

1.2. Жизненный цикл подписки

                 активация
   [trial] ─────────────────▶ [active] ──────▶ [past_due] ──▶ [paused]
      │                          │  ▲              │             │
      │ отмена/удаление          │  │ оплата       │ 3 дня       │ оплата
      ▼                          ▼  │              ▼             ▼
   [canceled] ◀──────────────── [canceled]      [paused] ────▶ [active]
СтатусПоведение
trialРаботает, не списывается; напоминание за 24 ч
activeРаботает, списание в дату активации
past_dueРаботает в grace 3 дня, ретраи оплаты
pausedНе работает, события не принимаются (или принимаются с ошибкой)
canceledНе работает, доступ к настройкам/истории ограничен

1.3. Расчёт периода

  • Первый период: с момента активации до той же даты следующего месяца.
  • Если дата отсутствует в следующем месяце (31-е), используется последний день.
  • Продление: в next_charge_at 03:00 МСК.
  • При активации в середине месяца — полный месяц (упрощение MVP).
  • При паузе и возобновлении — новый период с даты возобновления.
  • Часовой пояс биллинга: Europe/Moscow.

1.4. Платёжный провайдер

ЮKassa (обязательно):

  • Способы: банковская карта, СБП.
  • Автоплатежи: сохранённый способ (save_payment_method).
  • Чеки 54-ФЗ: email/телефон, номенклатура «Подписка easy-connect».
  • Вебхуки: payment.succeeded, payment.canceled, refund.succeeded.
  • Проверка подлинности вебхука: IP allowlist + подпись/перепроверка через API.
  • Идемпотентность: Idempotency-Key = payment:{subscription_id}:{period_start}.

1.5. Сценарий оплаты

  1. Пользователь нажимает «Оплатить 200 ₽».
  2. API создаёт payment (pending) и платёж в ЮKassa.
  3. Редирект на confirmation_url.
  4. Пользователь оплачивает.
  5. ЮKassa шлёт вебхук; API проверяет и переводит в succeeded.
  6. Создаётся/продлевается подписка, активации включаются.
  7. Отправляется письмо с чеком.
  8. При ошибке — failed, уведомление, ретрай.

1.6. Неуспешная оплата

  • Ретраи: через 1 час, 24 часа, 48 часов (всего 4 попытки).
  • Уведомления после каждой неудачи.
  • После 3 дней — past_due → paused, активации останавливаются.
  • После 30 дней — данные архивируются, связки отключаются.
  • Восстановление: оплата → активации включаются, история сохраняется.

1.7. Возвраты

  • Возврат пропорционально неиспользованным дням при:
    • длительном сбое (> 24 ч подряд) по вине сервиса;
    • двойном списании;
    • ошибочном списании.
  • Не возвращаются: использованный trial, месяцы с успешной работой.
  • Решение — в админке, с аудитом, срок 10 рабочих дней.
  • Чек коррекции — через ЮKassa.

1.8. Счета и документы для юрлиц

  • Счёт на оплату от 3 месяцев (P1).
  • Акты/чеки в личном кабинете.
  • Реквизиты и налоговая схема — после регистрации юрлица.
  • Ориентир: УСН, без НДС; если НДС — цена включает НДС, указывается в чеке.

1.9. Промокоды (P1)

  • Типы: скидка на первый период, фиксированная сумма, бесплатные дни.
  • Ограничения: срок, количество использований, один на пользователя.
  • Не суммируются, если не задано иное.
  • Учёт в отдельной таблице promo_codes и promo_redemptions.

1.10. Метрики биллинга

  • MRR, ARR, ARPU, LTV.
  • Trial → paid conversion.
  • Churn по связкам и пользователям.
  • Failed payment rate, recovery rate.
  • Refund rate, средний срок оплаты.
  • Gross margin по связке.

2. Юридические требования

2.1. Документы

ДокументНазначениеОбновление
Публичная офертаДоговор с пользователемПри изменении тарифа/услуг
Пользовательское соглашениеПравила использованияПри изменении продукта
Политика обработки ПДн152-ФЗПри изменении процессов
Согласие на обработку ПДнОтдельный чекбоксВерсионируется
Согласие на рекламные рассылкиМаркетингОтдельно от оферты
Политика cookieАналитикаПри изменении cookie
Договор для юрлицB2BПо запросу
SLA (P1)Гарантии доступностиДля B2B

2.2. 152-ФЗ

Обязательные меры:

  1. Уведомление Роскомнадзора об обработке ПДн.
  2. Согласия на обработку, отдельно для маркетинга.
  3. Минимизация: собираем только email, имя (опционально), платёжные данные через провайдера (мы не храним номера карт).
  4. Локализация: серверы и бэкапы в РФ.
  5. Права субъекта: доступ, исправление, удаление, экспорт, отзыв согласия.
  6. Сроки ответа: 10 рабочих дней (или по закону).
  7. Журнал согласий и версий документов.
  8. Назначение ответственного за организацию обработки ПДн.
  9. Политика конфиденциальности на русском, доступна без регистрации.
  10. Меры защиты: шифрование, доступ по ролям, аудит, резервное копирование.

2.3. Данные, которые обрабатываются

КатегорияПримерОснованиеСрок
Аккаунтemail, имяДоговорДо удаления + 30 дней
ПлатёжныеID платежа, сумма, чекЗакон/договор5 лет
Подключениятокены (шифр), ID аккаунтаДоговорДо удаления
События/запускиpayload сервисовДоговор90 дней
ЛогиIP, user-agent, ошибкиЗаконный интерес30–90 дней
Маркетингemail, согласиеСогласиеДо отзыва

Важно: payload может содержать ПДн клиентов пользователя. Мы обрабатываем его как обработчик по поручению пользователя (ст. 6 152-ФЗ), без собственных целей. Это фиксируется в оферте и DPA (для B2B).

2.4. Cookies и аналитика

  • Обязательные cookie (сессия) — без согласия.
  • Аналитические (Яндекс Метрика) — после согласия, с возможностью отказа.
  • Баннер с настройками, а не только «ОК».
  • Не передавать ПДн в аналитику; маскировать email/user_id.

2.5. Возрастные ограничения

  • Сервис для лиц 18+ или с согласия законных представителей.
  • В оферте — запрет использования для незаконных рассылок.

2.6. Интеллектуальная собственность

  • Права на ПО принадлежат владельцу сервиса.
  • Пользователь не вправе перепродавать доступ, кроме партнёрской программы.
  • Названия и логотипы сервисов — собственность правообладателей; использование в каталоге — номинативное, с указанием принадлежности.

2.7. Ограничение ответственности

  • Сервис не гарантирует работу сторонних API.
  • Ответственность ограничена суммой оплаты за последние 3 месяца (для B2B).
  • Пользователь отвечает за законность передаваемых данных и наличие согласий своих клиентов.

2.8. Санкционные и экспортные ограничения

  • Сервис доступен пользователям из РФ.
  • Ограничения по работе с отдельными зарубежными провайдерами могут меняться; это отражается в статусе коннекторов.
  • Не гарантируется работа сервисов, заблокированных на территории РФ.

3. Безопасность

3.1. Модель угроз (кратко)

УгрозаВекторМеры
Кража токеновУтечка БД/логовAES-256-GCM, маскирование, доступ по ролям
Подделка вебхукаПубличный ingest URLТокен энтропией 32+ байта, подпись, replay-защита
SSRFПроизвольные URLAllowlist доменов, запрет приватных IP
CSRFCookie-сессииSameSite, double-submit, проверка Origin
XSSПользовательские текстыЭкранирование, CSP, sanitize
Brute forceЛогинRate limit, блокировка, Argon2id
Абьюз рассылокСвязки с SMS/TelegramВерификация, лимиты, модерация, жалобы
Утечка PII в логиЛогирование payloadМаскирование на уровне логгера
Захват аккаунтаСлабый пароль/сессии2FA, инвалидация сессий, уведомления
DDoSПубличные эндпоинтыnginx rate limit, Cloudflare-совместимый прокси (P1)
ЗависимостиУязвимости пакетовSCA, обновления, lockfile

3.2. Аутентификация и сессии

  • Пароли: Argon2id (memory 64 МБ, iterations 3, parallelism 1) или bcrypt cost 12.
  • Пароль ≥ 8 символов, проверка по списку утечек (P1).
  • Сессии: httpOnly, Secure, SameSite=Lax; TTL 7 дней (30 при «запомнить»).
  • Ротация session id при входе и повышении привилегий.
  • Выход из всех сессий при смене пароля.
  • 2FA для админов обязательна, для пользователей — опционально.
  • Ограничение попыток входа: 5/15 мин, затем backoff.
  • Уведомление о новом входе (P1).

3.3. Авторизация

  • RBAC: user, support, admin, superadmin.
  • Проверка владельца на каждом запросе (tenant isolation).
  • Нельзя получить доступ к чужому activation_id/run_id.
  • Admin actions — только через отдельный контур + 2FA.
  • Impersonation — только superadmin, с согласия и аудитом.

3.4. Шифрование

  • TLS 1.2+ (TLS 1.3 приоритет), HSTS 1 год.
  • Секреты подключений: AES-256-GCM, уникальный nonce, key version.
  • Ключ: переменная окружения/secret manager, ротация раз в 12 месяцев.
  • Бэкапы: шифрование на диске/в объектном хранилище.
  • Пароли: необратимый хеш.
  • Платёжные данные: не храним, только токены провайдера.

3.5. Защита API

  • Валидация всех входов (Zod), ограничение размера тела.
  • Rate limit по IP, пользователю, токену, активации.
  • CORS строго по доменам.
  • CSP: default-src 'self', без unsafe-inline для скриптов (nonce).
  • Security headers: X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy.
  • Ошибки не раскрывают стек и внутренние детали.
  • Идемпотентность критичных POST.
  • Аудит мутаций.

3.6. Безопасность коннекторов

  • Минимальные OAuth scopes.
  • Allowlist доменов, запрет редиректов на приватные адреса.
  • Таймауты, ограничение размера ответа.
  • Проверка TLS-сертификатов.
  • Запрет выполнения пользовательского кода.
  • Изоляция секретов: коннектор получает только токен своего подключения.
  • Ревью кода и тесты на SSRF/инъекции.

3.7. Мониторинг безопасности

  • Алерты на аномалии: всплеск 401/403/429, массовые регистрации, спам-паттерны.
  • Журнал входов и админ-действий.
  • Еженедельный обзор зависимостей.
  • Ежегодный пентест (P1), после крупных релизов — выборочный.
  • Bug bounty (P1).

3.8. Реагирование на инциденты

  1. Обнаружение (алерт/жалоба).
  2. Классификация (P1–P4), назначение ответственного.
  3. Локализация: отключение коннектора/функции, блокировка токенов.
  4. Устранение, проверка.
  5. Уведомление пользователей (при утечке ПДн — в сроки 152-ФЗ).
  6. Постмортем без поиска виновных, с планом действий.
  7. Обновление документации и тестов.

Целевые сроки:

УровеньРеакцияУстранение
P1 (утечка/недоступность)15 мин4 часа
P2 (крупный сбой)1 час24 часа
P3 (частичный сбой)4 часа72 часа
P4 (косметика)1 деньПланово

4. SLA и доступность

4.1. Целевые показатели

ПоказательMVPv1.0
Доступность API99,5 %99,9 %
Доступность сайта99,5 %99,9 %
Успешность запусков99 %99,5 %
p95 ingest300 мс200 мс
p95 запуска (webhook)10 с5 с
RPO24 ч1 ч
RTO4 ч2 ч

4.2. Компенсации (B2B, P1)

  • 99,0–99,5 % — 10 % месячной платы.
  • 95–99 % — 25 %.
  • < 95 % — 50 %.
  • Компенсация по заявлению, не автоматически.
  • Не применяется к сбоям сторонних провайдеров, если мы уведомили и предложили обход.

4.3. Исключения

  • Плановые работы (уведомление за 48 ч, окно 02:00–05:00 МСК).
  • Форс-мажор.
  • Действия пользователя (неверные токены, удаление данных).
  • Блокировки сторонних сервисов.

5. Поддержка

5.1. Каналы

  • Email: support@easy-connect.ru.
  • Telegram-бот/чат.
  • Форма в кабинете с привязкой run_id.
  • База знаний и статус.

5.2. SLA первой линии

ПриоритетПервый ответРешение
Критичный (сервис не работает)1 час4 часа
Высокий (связка не работает)4 часа24 часа
Обычный (вопрос)24 часа3 дня

Рабочее время: пн–пт, 09:00–19:00 МСК. Инциденты — 24/7 (P1).

5.3. База знаний

  • Статьи по каждому сервису: «где взять токен», «как подключить».
  • Разбор топ-20 ошибок.
  • Видео/гифки для топ-10 связок.
  • Поиск, обратная связь «помогло/не помогло».

6. Комплаенс-чеклист запуска

  • Юрлицо/ИП зарегистрировано, реквизиты добавлены на сайт.
  • Уведомление РКН подано.
  • Оферта, политика, согласия опубликованы и версионируются.
  • Договор с ЮKassa подписан, магазин настроен, чеки проверены.
  • Данные и бэкапы размещены в РФ.
  • Назначен ответственный за ПДн.
  • Процедура ответа на запросы субъектов ПДн.
  • Политика cookie и баннер согласия.
  • SLA/оферта для B2B (P1).
  • Пентест/сканер уязвимостей проведён.
  • Резервное копирование и восстановление проверены.
  • Инцидентный план и контакты.
  • Обучение поддержки по 152-ФЗ и безопасности.