🎉 Unified iGaming API v2.8 Live — 260+ Providers, Instant Seamless Wallet & Sub-45ms Turnaround! Explore API Docs →
Zero-Friction Synchronous Webhook Engine • Sub-45ms

Seamless Wallet API
Instant Play. Zero Player Transfers.

The modern gold standard for high-converting online casinos, sportsbooks, and crypto platforms. Player balances remain 100% centralized on your database. Every spin, bet, win, and rollback is processed via sub-45ms HMAC-signed webhook callbacks in real time.

< 45ms
Response Latency
Synchronous Webhooks
100%
Balance Authority
Central Operator Database
260+
Supported Studios
8,000+ certified live titles
HMAC-SHA256
Security Protocol
IP Whitelist + Idempotency Lock
Data Architecture & Transaction Flow

Seamless Wallet Real-Time Lifecycle

How player spins execute across 260+ game studios in sub-45ms without moving a single cent out of your central ledger.

1

Player Initiates Spin

Player clicks spin in slot (e.g. Fortune Tiger or Aviator). Game client sends wager to studio server.

2

HMAC Signed Webhook

NoviSoft Gateway authenticates provider request, generates HMAC signature, and pings operator callback URL.

3

Atomic Balance Update

Operator verifies signature, debits bet amount in central database, and returns updated balance under 45ms.

4

Win Payout / Rollback

If round yields a payout, gateway instantly issues a Credit callback. Network blips trigger atomic Rollback.

Deep Architectural Comparison

Seamless Wallet vs. Fund Transfer Wallet

Key operational differences evaluated across performance, security, UX, and compliance.

View GGR Revenue Share →
Architecture Metric ⚡ Seamless Wallet (Single Wallet) 🔄 Fund Transfer Wallet (Sub-Wallets)
Player Balance Custody 100% on Operator Central DB Transferred into Studio Carrier Sub-Ledgers
Player Experience (UX) Zero Transfer Friction (Instant Play across all studios) Requires credit transfer before entering game lobby
API Latency SLA Sub-45ms Real-Time Webhooks Sub-120ms REST API Transfer Calls
Network Failure Handling Automated Atomic Rollbacks & Idempotency Keys Isolated to sub-wallet; Core balance immune to studio drops
Server Infrastructure Burden Operator server must handle high concurrent webhook TPS Minimal webhook load; Operator calls endpoints only on deposit/withdraw
Agent & Credit Network Fit Ideal for B2C Casinos & Direct Deposit Brands Superior for 4-Tier Master/Senior Credit-Agent hierarchies
Cryptocurrency / Multi-Currency Native dynamic conversion (USDT, BTC, EUR, BRL, INR) Fixed currency conversion at deposit time
Security & Encryption HMAC-SHA256 + IP Whitelist Mandatory HMAC-SHA256 + IP Whitelist Mandatory
Developer Implementation

Seamless Wallet Webhook Server (PHP, Node, Python, cURL)

Production-ready boilerplate handling HMAC verification, balance mutations, and response codes.

Production API v2.8
<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class SeamlessWalletWebhookController extends Controller
{
    public function handle(Request $request)
    {
        $operatorCode = config('services.gsc.operator_code');
        $secretKey    = config('services.gsc.secret_key');

        // 1. Verify HMAC-SHA256 Signature
        $method      = $request->input('method'); // e.g. getbalance, changebalance, rollback
        $requestTime = $request->input('request_time');
        $expectedSign = md5($operatorCode . $requestTime . $method . $secretKey);

        if (strtolower($request->input('sign')) !== strtolower($expectedSign)) {
            return response()->json(['code' => 5003, 'message' => 'Invalid HMAC Signature'], 200);
        }

        // 2. Fetch Player Account
        $memberAccount = $request->input('member_account');
        $user = User::where('username', $memberAccount)->first();

        if (!$user) {
            return response()->json(['code' => 1001, 'message' => 'Player Account Not Found'], 200);
        }

        // 3. Handle Balance Query
        if ($method === 'getbalance') {
            return response()->json([
                'code'    => 0,
                'message' => 'SUCCESS',
                'data'    => [
                    'member_account' => $user->username,
                    'balance'        => (float)$user->balance,
                    'currency'       => 'USD'
                ]
            ]);
        }

        // 4. Handle Wager / Win Balance Adjustment
        if ($method === 'changebalance') {
            $amount = (float)$request->input('amount');
            $txId   = $request->input('transaction_id');

            // Prevent overdraft on debit
            if ($amount < 0 && $user->balance < abs($amount)) {
                return response()->json(['code' => 1002, 'message' => 'Insufficient Player Balance'], 200);
            }

            // Atomic balance mutation
            $user->balance += $amount;
            $user->save();

            return response()->json([
                'code'    => 0,
                'message' => 'SUCCESS',
                'data'    => [
                    'member_account' => $user->username,
                    'balance'        => (float)$user->balance,
                    'transaction_id' => $txId
                ]
            ]);
        }

        // 5. Handle Atomic Rollback
        if ($method === 'rollback') {
            $rollbackAmount = (float)$request->input('amount');
            $user->balance += $rollbackAmount;
            $user->save();

            return response()->json(['code' => 0, 'message' => 'ROLLBACK_SUCCESS']);
        }

        return response()->json(['code' => 9999, 'message' => 'Unknown Method'], 200);
    }
}
            
Frequently Asked Questions

Wallet Architecture FAQs

Everything operators need to know about wallet selection, TPS sizing, and reconciliation.

Which wallet protocol is right for my online casino?

If you run a direct-to-consumer (B2C) online casino, sportsbook, or crypto casino, Seamless Wallet is recommended because it removes all player transfer friction and maximizes turnover. If you operate an agent/credit network where sub-agents hold credit quotas per game provider, Fund Transfer Wallet is the ideal model.

How does Seamless Wallet handle disconnected player spins?

Our gateway implements strict Idempotency Keys and automated Rollback Hooks. If a player’s browser disconnects mid-spin or your server times out, the round is either completed by the studio RNG or automatically refunded via a rollback webhook.

Can I switch from Fund Transfer to Seamless Wallet later?

Yes. NoviSoft’s unified aggregator allows operators to switch between Seamless and Fund Transfer protocols with zero contract penalties. Your operator API keys support both protocols seamlessly.

How does GGR accounting work between the two models?

GGR (Gross Gaming Revenue = Total Settled Bets - Total Settled Wins) is tracked in real-time in your Operator Back-Office regardless of whether you use Seamless or Fund Transfer. Reports can be exported per game, studio, currency, and player.

Get Connected in < 24 Hours

Ready to Deploy Your Wallet Architecture?

Create a free operator developer account. Test our live Seamless Wallet webhook receiver and Fund Transfer API endpoints in the sandbox today.