Процесс регистрации пользователя
Полный путь пользователя от анонимного посетителя до полностью верифицированного пользователя платформы.
Обзор
Процесс регистрации состоит из нескольких этапов:
- Анонимный визит с атрибуцией реферала
- Регистрация и подтверждение email
- Заполнение профиля
- KYC-верификация (требуется для инвестиций и выплат)
Основная диаграмма процесса
Детали этапов
1. Анонимный визит
Триггер: Пользователь заходит на платформу по реферальной ссылке или напрямую.
Формат реферальной ссылки:
https://platform.com/?ref=ABC123&utm_source=instagram&utm_medium=post&utm_campaign=summerХранение в Cookie:
| Ключ | Значение | Длительность |
|---|---|---|
iwm_ref_code | Реферальный код партнера | 30 дней |
iwm_ref_link_id | ID конкретной ссылки (если отслеживается) | 30 дней |
iwm_first_touch | Временная метка первого визита | 30 дней |
iwm_utm | JSON с UTM-параметрами | Сессия |
Сохраняемые данные атрибуции:
json
{
"partner_code": "ABC123",
"link_id": "uuid-of-link",
"first_touch_at": "2024-01-15T10:30:00Z",
"last_touch_at": "2024-01-15T10:30:00Z",
"utm_source": "instagram",
"utm_medium": "post",
"utm_campaign": "summer",
"landing_page": "/products",
"ip_address": "192.168.1.1",
"user_agent": "Mozilla/5.0..."
}2. Регистрация
Эндпоинт: POST /auth/register
Тело запроса:
json
{
"email": "user@example.com",
"password": "SecureP@ss123",
"firstName": "John",
"lastName": "Doe",
"phone": "+7900123456",
"acceptTerms": true,
"acceptMarketing": false
}Правила валидации:
| Поле | Правила |
|---|---|
| Обязательно, корректный формат email, уникальный в БД | |
| password | Минимум 8 символов, 1 заглавная, 1 строчная, 1 цифра, 1 спецсимвол |
| firstName | Обязательно, 2-100 символов, только буквы |
| lastName | Обязательно, 2-100 символов, только буквы |
| phone | Опционально, формат E.164 |
| acceptTerms | Обязательно, должно быть true |
Сценарии ошибок:
| Код | Сценарий | Ответ |
|---|---|---|
| 400 | Ошибка валидации | { "errors": [...] } |
| 409 | Email существует | { "code": "EMAIL_EXISTS" } |
| 429 | Превышен лимит запросов | Заголовок Retry-After |
3. Подтверждение Email
Токен верификации:
- Формат: UUID v4
- Срок действия: 24 часа
- Одноразовый (удаляется после верификации)
Содержимое письма верификации:
- Тема: "Подтвердите email - IWM Platform"
- Ссылка:
https://platform.com/verify?token={token} - Включает: Имя пользователя, уведомление об истечении, контакт поддержки
Логика повторной отправки:
- Максимум 3 повторных отправки в час
- Каждый раз генерируется новый токен
- Предыдущие токены аннулируются
Обработка таймаута:
- Токен истекает через 24 часа
- Пользователь может запросить новый токен
- Аккаунт автоматически удаляется через 7 дней, если не верифицирован
4. Заполнение профиля
Эндпоинт: PATCH /users/me/profile
Опциональные поля:
json
{
"middleName": "Ivanovich",
"dateOfBirth": "1990-05-15",
"avatarUrl": "https://cdn.example.com/avatar.jpg",
"language": "ru",
"timezone": "Europe/Moscow"
}Загрузка аватара:
- Эндпоинт:
POST /users/me/avatar - Максимальный размер: 5MB
- Форматы: JPEG, PNG, WebP
- Масштабируется до: 200x200, 400x400
5. Отправка KYC
Уровни KYC:
| Уровень | Требования | Возможности |
|---|---|---|
| NONE | По умолчанию | Просмотр, базовые покупки |
| BASIC | Email подтвержден | Все покупки |
| STANDARD | ID + Селфи верифицированы | Инвестиции до 1 млн руб. |
| ENHANCED | Подтверждение адреса + Подтверждение дохода | Неограниченные инвестиции |
Требуемые документы (STANDARD):
| Документ | Принимаемые типы |
|---|---|
| Документ удостоверяющий личность | Паспорт, Национальный ID, Водительские права |
| Селфи | Фото с видимым ID |
Загрузка документов:
- Эндпоинт:
POST /kyc/documents - Максимальный размер: 10MB на файл
- Форматы: JPEG, PNG, PDF
- Шифрование при хранении (AES-256)
Правила валидации:
- Документ должен быть читаемым
- На селфи должны быть четко видны лицо и ID
- ID не просрочен
- Имя совпадает с профилем
6. Процесс проверки KYC
Поток статусов:
NOT_STARTED -> DOCUMENTS_PENDING -> SUBMITTED -> UNDER_REVIEW -> APPROVED/REJECTED/NEEDS_INFOСроки проверки:
- Стандартный: 24-48 рабочих часов
- Приоритетный (крупные инвестиции): 4-8 часов
Причины отказа:
| Код | Описание | Действие пользователя |
|---|---|---|
| DOCUMENT_BLURRY | Документ нечитаемый | Загрузить более четкое изображение |
| DOCUMENT_EXPIRED | ID просрочен | Загрузить действующий ID |
| SELFIE_MISMATCH | Лицо не совпадает с ID | Переснять селфи |
| INFO_MISMATCH | Данные не совпадают с профилем | Обновить профиль или загрузить корректные документы |
| SUSPECTED_FRAUD | Подозрительная активность | Связаться с поддержкой |
Повторная отправка:
- Максимум 3 попытки на тип документа
- После 3 неудач требуется ручная проверка
- Период ожидания: 24 часа между отправками
Сценарии ошибок
Ошибки регистрации
| Сценарий | HTTP-код | Код ошибки | Сообщение пользователю |
|---|---|---|---|
| Email уже зарегистрирован | 409 | EMAIL_EXISTS | "Этот email уже зарегистрирован. Попробуйте войти." |
| Слабый пароль | 400 | WEAK_PASSWORD | "Пароль не соответствует требованиям." |
| Неверный формат email | 400 | INVALID_EMAIL | "Пожалуйста, введите корректный email адрес." |
| Условия не приняты | 400 | TERMS_REQUIRED | "Необходимо принять условия для продолжения." |
| Превышен лимит запросов | 429 | RATE_LIMITED | "Слишком много попыток. Пожалуйста, подождите." |
Ошибки верификации
| Сценарий | HTTP-код | Код ошибки | Сообщение пользователю |
|---|---|---|---|
| Токен истек | 400 | TOKEN_EXPIRED | "Срок действия ссылки истек. Запросите новую." |
| Токен уже использован | 400 | TOKEN_USED | "Эта ссылка уже была использована." |
| Токен не найден | 404 | TOKEN_NOT_FOUND | "Недействительная ссылка верификации." |
Ошибки KYC
| Сценарий | HTTP-код | Код ошибки | Сообщение пользователю |
|---|---|---|---|
| Файл слишком большой | 413 | FILE_TOO_LARGE | "Файл превышает лимит 10MB." |
| Неверный тип файла | 400 | INVALID_FILE_TYPE | "Пожалуйста, загрузите JPEG, PNG или PDF." |
| KYC уже подтвержден | 400 | ALREADY_VERIFIED | "Ваша личность уже верифицирована." |
| Превышено число попыток | 400 | MAX_ATTEMPTS | "Пожалуйста, свяжитесь с поддержкой для помощи." |