В этом релизе добавлен headless API-доступ, точное отслеживание расчётов, QR-коды для депозитных платежей и ряд улучшений безопасности.
Важно: переименование пути API
Все эндпоинты панели мерчанта перемещены с /api/dashboard/* на /api/merchant/*. Старые пути больше не работают. Обновите свои интеграции соответственно.
Мастер-ключ API
Мерчанты теперь могут сгенерировать мастер-ключ API (префикс msk_) в Панель управления → Настройки. Этот ключ аутентифицируется против всех эндпоинтов /api/merchant/*: создавайте платежи, перечисляйте каналы, управляйте расчётами. Браузерная сессия не нужна. Удобно для бэкенд-сервисов, скриптов и CI-пайплайнов.
Управление мастер-ключом (генерация, смена, отзыв) требует входа через браузер. Мастер-ключ не может ротировать или отзывать сам себя.
Суммы расчётов в вебхуках
Пэйлоады вебхуков теперь включают dest_amount и dest_decimals, точное количество токенов, поступивших в ваш кошелёк. Это критично для расчётов в не-стейблкоинах (например, TON), где amount_usd не даёт информацию о количестве токенов. Разделите dest_amount на 10^dest_decimals для получения человекочитаемой цифры.
QR-коды для депозитных платежей
Клиенты, платящие через депозит (Rubic кросс-чейн маршруты, TON, Tron), теперь видят сканируемый QR-код над полями для копирования. Сетезависимые URI: EIP-681 для нативного EVM, ton://transfer с memo для TON, Solana Pay с SPL-токеном + memo, BIP-21 для BTC.
Страница редактирования канала
Каждый канал теперь имеет отдельную страницу редактирования по адресу /dashboard/channels/:id с разделами для брендинга, URL вебхука, расчётного переопределения, ротации API-ключа и зоной опасных действий для отзыва доступа.
Канал Pay Me Page
Настройка Pay Me страницы теперь автоматически создаёт для неё отдельный канал. Это даёт вашей Pay Me странице собственный брендинг, расчётное назначение и URL вебхука. Настройки не зависят от других каналов.
Надёжность вебхуков
Новая catch-all cron-задача отправляет вебхуки для любого платежа, завершившегося через встроенный опрос статуса, но чей вебхук был молча пропущен. Больше никаких пропущенных уведомлений.
Безопасность
- Ограничение попыток входа администратора (5 попыток / 15 мин на IP)
- CORS ограничен mutopay.com + localhost
- Заголовок Content-Security-Policy на всех страницах
- AES-256-GCM шифрование для хранимых API-ключей
- Защита от open redirect на URL возврата