Клиент — сеть кофеен (6 точек). Бумажные штампы терялись; приложение в App Store не окупало разработку. Постоянные клиенты — в Telegram-канале кофейни (18K). Нужна цифровая лояльность без установки app. Задача: Mini App — бонусный баланс, QR для начисления/списания на кассе, история операций, уровни (Silver/Gold), акции. Кассир сканирует QR клиента или клиент показывает код. Реализация: • wallet UI: баланс баллов, tier, progress до следующего уровня; • QR dynamic token (TTL 60 сек) — защита от скриншота replay; • API: accrue/redeem webhook с POS или tablet кассира; • правила: 1 балл = 1 ₽, max 30% оплаты баллами; • push через бота: начисление, акция «двойные баллы», день рождения; • рефералка: invite link + бонус обоим; • админ: сегменты, акции, fraud alerts (аномальные начисления). Стек: React, Telegram WebApp SDK, FastAPI, PostgreSQL, Redis, aiogram, QR, Docker. Приёмка: 100 транзакций на staging POS. Итог: repeat visit rate +25%; участие в программе 4× vs бумажные штампы. NDA: сеть не публикуется.