Seamless wallet против transfer wallet: как на самом деле движутся деньги в казино-играх
Любая интеграция игр должна ответить на один вопрос: где живёт баланс игрока, пока он играет? Seamless wallet (бесшовный кошелёк) держит его на вашем сервере и получает вызов на каждую ставку. Transfer wallet (трансферный кошелёк) переводит деньги в систему провайдера и обратно. В этом гайде разбираем обе модели вместе со сбоями, которые и решают, какую выбрать.
Два места, где может жить баланс
Когда игрок открывает слот, деньги должны находиться там, где игра до них дотянется. Вариантов два.
В seamless wallet (его ещё называют single wallet) баланс всю сессию остаётся на сервере оператора. У провайдера игры ничего не лежит. Каждая ставка приходит на ваш сервер запросом на списание (debit), каждый выигрыш — запросом на начисление (credit). Вы отвечаете новым балансом.
В transfer wallet оператор переводит часть денег игрока на баланс, который держит провайдер игры. Игрок играет против этого баланса. Когда он уходит, остаток переводится обратно.
Обе модели работают. Ломаются они совершенно по-разному, и на самом деле вы выбираете именно между этими поломками.
Как работает seamless wallet: вызов за вызовом
Типичная seamless-интеграция предполагает четыре-пять эндпоинтов на вашей стороне:
- Balance: вернуть текущий баланс игрока в валюте сессии.
- Debit (ставка): списать сумму по уникальному ID транзакции.
- Credit (выигрыш): начислить сумму по своему ID транзакции с привязкой к раунду.
- Rollback: отменить конкретное предыдущее списание.
- Некоторые вендоры добавляют комбинированный вызов bet-and-win для instant-игр или сообщение end round.
Агрегатор подписывает каждый запрос — обычно HMAC-хешем от тела запроса с общим секретом, — чтобы ваш сервер мог отклонить всё, что пришло не от него.
У SoftAggregator, например, оператор открывает HTTP-колбэки для balance, debit и credit, и эти же колбэки обслуживают слоты, лайв-казино, виртуальный спорт и спортсбук. В этом главное удобство seamless-модели: один набор эндпоинтов покрывает все продукты. SOFTSWISS, Hub88, St8 и большинство крупных студий работают по той же схеме — с различиями в названиях и в том, как группируются раунды.
Три правила, которые имеют значение
- Идемпотентность. Если один и тот же ID транзакции пришёл дважды, примените его один раз и оба раза верните одинаковый ответ. Ретраи — норма. Двойные выплаты — нет.
- Атомарность. Проверка баланса и списание должны происходить в одной транзакции БД. Иначе две быстрые ставки из двух вкладок обе пройдут проверку баланса, которую должна была пройти только одна.
- Терпимость к роллбэкам. Вам будут приходить роллбэки на обработанные списания — и иногда на списания, которые вы вообще не получили, потому что запрос умер по дороге. Сохраняйте роллбэк в любом случае, чтобы, если запоздавшее списание придёт после, вы могли его отклонить.
Разработчики, которые сделали эти три вещи правильно, проделали большую часть сложной работы.
Как работает transfer wallet
На бумаге поток проще:
- Игрок открывает игру. Вы вызываете у провайдера эндпоинт «deposit» или «transfer in» с суммой.
- Провайдер зачисляет эту сумму на свой баланс для игрока.
- Игрок играет. Во время игры вы ничего не слышите.
- Игрок уходит, или вы вызываете «transfer out». Провайдер возвращает остаток.
Ваш сервер не стоит на пути каждой ставки, так что его скорость и аптайм во время игры значат меньше. Это и есть реальное преимущество, и именно поэтому некоторые операторы с хрупким бэкендом когда-то его предпочитали.
Где ломается каждая модель
Seamless: ваш сервер участвует в каждом спине
Если эндпоинт кошелька тормозит, тормозят все игры. Если он падает, все ставки по всем студиям отваливаются разом. Игроки винят игру, а не вас, но из вашего казино уходят в любом случае.
Меры — стандартная инженерия: держите сервис кошелька маленьким и отдельным от остального сайта, размещайте его ближе к серверам агрегатора, мониторьте задержку по каждому эндпоинту и ставьте алерты на долю ошибок.
Seamless: недозавершённый раунд
Игрок ставит, списание проходит, игра показывает выигрыш, а вызов начисления трижды падает. Агрегатор будет повторять попытки, или поставит начисление в очередь на потом, или пометит раунд для ручного расчёта. Спросите у вендора, что именно. И убедитесь, что ваша поддержка видит нерассчитанные раунды, потому что игрок напишет через несколько минут.
Transfer: деньги застряли посередине
Transfer in проходит на стороне провайдера, но ваш сервер не получает подтверждения. В вашей картине мира деньги игрока ушли с баланса, но вы не знаете, дошли ли они. Или наоборот — на transfer out. Каждый такой случай требует задачи сверки, которая спрашивает у провайдера его версию и исправляет расхождение. Умножьте на всех провайдеров — и сверка становится ежедневной рутиной.
Transfer: игрок в двух играх
С transfer-кошельком игроку, который открыл две игры двух провайдеров, нужны деньги в двух местах. Многие казино это просто блокируют или забирают всё из игры A, прежде чем открыть игру B. Опыт получается неуклюжим, особенно на мобильных, где игроки быстро переключаются.
Transfer: бонусные деньги
Если у вас бонусные балансы с правилами отыгрыша, на transfer-кошельке сложно понять, какие деньги сейчас отыгрываются, потому что провайдер видит один недифференцированный баланс. В seamless-кошельке вы видите каждую ставку и можете применять к ней свои правила.
Бок о бок
Где баланс во время игры. Seamless: на вашем сервере. Transfer: на сервере провайдера.
Вызовов на спин. Seamless: один-два к вашему серверу. Transfer: ни одного во время игры, два на сессию.
Что ломается, если ваш сервер медленный. Seamless: каждая ставка. Transfer: только открытие и закрытие сессий.
Трудозатраты на сверку. Seamless: сравнить свой лог с отчётом вендора. Transfer: разбирать каждый неподтверждённый перевод.
Сессии в нескольких играх. Seamless: естественно. Transfer: неудобно.
Контроль отыгрыша бонусов. Seamless: по каждой ставке. Transfer: в лучшем случае по сессии.
Работа разработчиков. Seamless: больше на старте, в основном идемпотентность и роллбэки. Transfer: меньше на старте, больше на постоянной сверке.
Что выбрать
Для нового казино в 2026 году выбирайте seamless, если нет конкретной причины поступить иначе. Вокруг него построено большинство агрегаторов и студий, он даёт полный контроль над бонусной логикой и делает возможным единый баланс для всех продуктов. Работа, которую он требует, реальна, но делается один раз.
Transfer wallet по-прежнему оправдан в нескольких случаях:
- Вы добавляете одного провайдера, который работает только в transfer-режиме, и не хотите строить второй путь кошелька ради одного поставщика.
- Ваш бэкенд не может гарантировать быстрые ответы, и в ближайшее время это не изменить.
- Вы строите игровой хаб, который перепродаёт контент операторам с очень разным техническим уровнем, и вам нужен вариант по «наименьшему общему знаменателю».
Что протестировать до запуска
Попросите разработчика прогнать в песочнице не только «счастливый путь», но и вот это:
- Отправьте одно и то же списание дважды. Баланс должен измениться один раз.
- Заставьте эндпоинт списания «уснуть» дольше таймаута вендора. Убедитесь, что приходит и применяется роллбэк.
- Отправьте роллбэк на ID транзакции, которого вы не видели. Сервер должен его принять и записать.
- Откройте две игры в двух вкладках и быстро ставьте в обеих. Проверьте итоговый баланс вручную.
- Убейте сервис кошелька посреди раунда, перезапустите и посмотрите, дойдёт ли ожидающее начисление.
- Сравните лог транзакций за один день с отчётом вендора с точностью до цента.
Если все шесть проверок пройдены, кошелёк готов к реальным игрокам. Если вендор не даёт прогнать это в песочнице, добавьте это в список вопросов из нашего гайда по выбору агрегатора игр.
Пара слов о предоплаченном кредите
Модель кошелька и модель оплаты — разные вещи, но операторы их иногда путают. Одни агрегаторы выставляют счёт за GGR ежемесячно. Другие просят предоплаченный кредит, который списывается по мере проигрышей игроков. При предоплатной модели seamless-кошелёк работает точно так же. Единственная дополнительная задача — следить за уровнем кредита, чтобы игры не остановились, когда он закончится. SoftAggregator использует такой предоплатный подход с пополнением в USDT или USDC: это удобно криптоказино, которые и так держат стейблкоины, но значит, что за пополнения должен кто-то отвечать.
Частые вопросы
Какую модель кошелька сегодня используют большинство агрегаторов?
Seamless — стандарт для большинства агрегаторов и студий. Transfer-кошельки ещё встречаются, в основном в старых интеграциях, у части провайдеров с азиатских рынков и там, где оператор не может открыть API реального времени. Если вендор предлагает оба варианта, для новой сборки почти всегда лучше seamless.
Насколько быстрым должен быть эндпоинт кошелька?
Настолько, чтобы игроки никогда его не ждали. Каждый спин может вызвать списание и начисление, так что ваш эндпоинт сидит внутри каждого раунда. Цельтесь в ответ сильно меньше 200 миллисекунд со своего сервера и спросите у вендора, через какой таймаут он отменяет ставку.
Что такое роллбэк?
Роллбэк отменяет списание, которое было отправлено, но не подтверждено, — обычно потому, что ваш сервер не ответил вовремя. Агрегатор присылает его со ссылкой на ID исходной транзакции. Ваш сервер должен вернуть это списание один раз и обязан принять роллбэк даже для списания, которого он не видел.
Может ли игрок играть в две игры одновременно на seamless-кошельке?
Да. Обе игры обращаются к одному балансу на вашем сервере, так что баланс всегда корректен во всех вкладках. На transfer-кошельке игроку пришлось бы переводить деньги к каждому провайдеру отдельно — одна из главных причин, по которым операторы от него ушли.
Влияет ли модель кошелька на то, как мне выставляют счета?
Напрямую — нет. Биллинг обычно считается от GGR по каждой студии при любом кошельке. Меняется сверка: с seamless-кошельком источник правды — ваш собственный лог транзакций, и вы сравниваете его с отчётом вендора.