Крипто-обменник в Telegram Mini App с курсом, который не встаёт
Офлайн-пункт обмена USDT/RUB переехал внутрь Telegram: курс собирается из четырёх источников с резервированием, заявки считаются сами, есть AML-проверка кошельков и синхронизация с Google Sheets.
Обменник держался на одном курсе и ручном счёте
До Mini App обмен USDT/RUB шёл по старинке. Курс брали из одного источника — и стоило этому API лечь или отдать кривое число, как обменник буквально вставал: оператор не понимал, по какой цене считать, а клиент ждал в переписке. Заявки оформляли вручную в чате, сумму в USDT считали на калькуляторе, реквизиты переспрашивали по несколько раз.
Вторая боль — деньги и доверие. В обмене криптовалюты нельзя просто «принять кошелёк»: нужно понимать, не пришли ли средства с грязного адреса. Без проверки это риск и для обменника, и для клиента. А любая попытка вырастить поток через рефералов упиралась в то, что бонусы и скидки тоже считались руками.
Запрос был такой: вынести обмен в удобный интерфейс внутри Telegram, чтобы клиент сам выбирал направление, видел актуальный курс и итоговую сумму, оставлял заявку с реквизитами — а курс, AML-проверка и реферальная экономика работали автоматически и не зависели от одного сервиса.
Как мы разложили обменник на части
Обменник — это не «бот, который пишет курс». Здесь критична надёжность цифры и сделки: ошибка в курсе — это прямой убыток, а пропущенный грязный кошелёк — риск посерьёзнее. Поэтому скоуп разбили на отдельные, изолированные блоки:
- Курс — отдельный слой с резервированием. Один источник — единая точка отказа. Нужна цепочка из нескольких API с приоритетом и автоматическим переключением на следующий, плюс кэш в базе как последний рубеж.
- Калькулятор и маржа — гибко и под контролем владельца. К рыночному курсу применяется настраиваемая маржа (offset на покупку и продажу), фиксированный спред и персональные/реферальные скидки. Это считается на сервере, а не «на глаз».
- AML — обязательный шаг, а не опция. Перед сделкой клиент проверяет кошелёк: уровень риска и лимит проверок в день, всё с логом в базе.
- Заявки и учёт — Mini App + зеркало в Google Sheets. Заявка оформляется в пару кликов, а владелец видит весь поток в привычной таблице, без захода в админку.
Такая нарезка дала продукт, понятный клиенту в две минуты, и при этом устойчивый: даже если внешний сервис курса временно недоступен, обменник продолжает работать.
Что получил владелец обменника
Клиент открывает Mini App внутри Telegram, выбирает направление (купить или продать USDT), вводит сумму в рублях — и сразу видит итоговую сумму в USDT по актуальному курсу с уже учтённой маржой и его личной скидкой. Дальше оставляет заявку: ФИО и кошелёк TRC-20, всё в одной форме. Интерфейс отвечает мгновенно — благодаря оптимистичному UI заявка показывается принятой сразу, а на сервер уходит в фоне.
Курс, который не зависит от одного API
Под капотом — агрегатор, который опрашивает источники по приоритету: Rapira → Binance P2P → CoinGecko → CryptoCompare → кэш в базе. Если первый источник недоступен или отдал явно некорректное значение, система переходит к следующему. Поэтому даже в момент, когда биржевой API лежит, обменник продолжает считать и принимать заявки. К базовому курсу применяется настраиваемая маржа на покупку и продажу, фиксированный спред и скидки клиента — владелец управляет экономикой из админки.
AML-проверка и реферальная программа
Перед сделкой клиент может проверить адрес: система определяет уровень риска (low / medium / high), ограничивает 3 проверками в день и пишет результат в лог. Реферальная программа считает сама: каждому выдаётся уникальный код, за сделки приглашённых начисляется бонус (рубли за каждый обменянный USDT), а за количество приглашений (3+ и 10+) клиент получает скидку на собственный курс. Поверх — персональная скидка, которую владелец может выдать вручную.
Google Sheets и параллельный бот
Все пользователи и заявки синхронизируются в Google Sheets в реальном времени через Service Account — владелец видит поток в привычной таблице, а реферальные бонусы начисляются по статусу сделки прямо из Sheets. Параллельно с Mini App работает обычный Telegram-бот: /start с реферальным кодом, профиль, текущие курсы и главное меню. При каждой новой заявке админу и поддержке прилетает уведомление.
Что под капотом
Курс: агрегация и отказоустойчивость
Сделки, AML и реферальная экономика
Интеграции, админка и UX
Обменник работает и не зависит от одного сервиса
Вместо переписки и калькулятора — обмен в пару кликов внутри Telegram. Курс агрегируется из 4 источников с fallback, есть AML-проверка и синхронизация с Google Sheets — обменник не встаёт, даже если один API упал. Клиент сам выбирает направление, видит итоговую сумму и оставляет заявку, а курс, проверка кошелька и реферальные начисления считаются автоматически.
- Падение одного источника курса больше не останавливает обмен — есть цепочка резервов и кэш.
- AML-шаг встроен в сценарий: уровень риска кошелька виден до сделки, с лимитом и логом.
- Реферальная экономика и скидки считаются сами — без ручного счёта бонусов.
- Владелец видит весь поток заявок в Google Sheets и управляет курсом из админки.
Конкретные обороты и количество сделок — на стороне владельца обменника; готовы добавить их в кейс по запросу, когда накопится статистика.
Нужен обменник или платёжный Mini App?
Расскажите про направления обмена, источники курса и реферальную схему — за день пришлём фиксированную смету и план запуска. Исходники ваши с первого дня.
Берём в работу ограниченное число проектов одновременно — ближайший слот ограничен.