# ТЗ: Evrone Crypto Checkout — приём криптоплатежей

Демонстрационная версия документа · категория «Крипто» · №14

> Это демонстрационное техническое задание: оно показывает структуру и глубину
> документа, который передаётся вместе с прототипом. Боевое ТЗ по этому солюшену
> готовится и заменит этот файл.

## 1. Суть решения

API и виджет оплаты, инвойсы с QR, вебхуки, автоконвертация в стейблкоин.

Продукт для мерчантов: API и виджет оплаты, инвойс со ссылкой/QR, отслеживание транзакции в сети, вебхуки о статусе, автоконвертация в стейблкоин/фиат по курсу на момент оплаты, кабинет мерчанта (платежи, вывод, отчёты), плагины для популярных платформ.

## 2. Технологический стек

| Слой | Решение |
|---|---|
| Backend | Ruby on Rails 8, PostgreSQL |
| Frontend | Hotwire (Turbo + Stimulus), Tailwind CSS |
| Фоновые задачи | Solid Queue |
| Файлы | Active Storage, S3-совместимое хранилище |
| Деплой | Docker, Kamal, production + staging |

## 3. Роли

- Мерчант
- Плательщик
- Администратор платформы

## 4. Модель данных

### 4.1. Invoice

```
merchant_id: references
amount: integer
currency: string
address: string
state: enum # ожидает, оплачен, просрочен
expires_at: datetime
```

### 4.2. Webhook

```
merchant_id: references
url: string
secret: string
deliveries: has_many
```

### 4.3. Settlement

```
merchant_id: references
amount: integer
converted_to: string
rate: decimal
```

## 5. Ключевые сценарии

1. Мерчант создаёт инвойс через API и получает ссылку или QR
2. Плательщик отправляет средства, платформа отслеживает транзакцию в сети
3. Статус уходит мерчанту вебхуком с подписью и повторными попытками
4. Полученное автоматически конвертируется в стейблкоин или фиат

## 6. Интеграции

- Блокчейн-ноды и эксплореры
- Провайдер конвертации
- Плагины для CMS

## 7. Нефункциональные требования

- Серверный рендеринг, работоспособность ключевых страниц без JavaScript
- Мобильная адаптивность обязательна
- Роли и права проверяются на уровне сервера, а не интерфейса
- Логирование действий пользователей по значимым операциям
- Покрытие тестами моделей и ключевых сценариев
- Развёртывание одной командой, окружения production и staging

## 8. Состав MVP

Инвойс + виджет + вебхук + кабинет мерчанта.

## 9. Критерии приёмки

1. Все сценарии из раздела 5 проходят end-to-end на тестовом стенде
2. Роли из раздела 3 видят только то, что им положено
3. Интеграции из раздела 6 работают через слой адаптеров и переключаются конфигурацией
4. Прототип разворачивается из репозитория одной командой
5. Документация по запуску и переменным окружения лежит в README
