### Request Signature Example Source: https://docs.hub88.io/developer-docs/operator-api-reference/getting-started An example of the BASE64 encoded signature generated from the request body using RSA-SHA256. This signature is placed in the X-Hub88-Signature header. ```text DYKK0KsSMayoyHcpFx32R57mZ8ey2r8U4RscT9LiWEFkd40V/f2n9JafsC+yuB8OSHz+wdCvyxvqacNiL8r3ZGEBdTL4lrcjdM5PWHQu8auYNp2mGE0tbX6/KGyk8nyQ3+h1HogIHj5hnMNYx0r+AhFT2tD/IT2b3Pq6oDPNL8rK0CbDCm8w7+gal1i0T1pDo61e2CTDTHpfm4ELEKcff2iiIRvgQ52nUCkuxQjCN/BGyEC1il0AVwlcb8CKU6Utg48UqvPLqu38qahI5X53zBMpLFIOtOYcFoepWmHvBxh0GDM4NIfQQ3Cm5sFyN3AsqzM7rqA0N9VZP0QPK8fA0g== ``` -------------------------------- ### Operator API Request Body Example Source: https://docs.hub88.io/developer-docs/operator-api-reference/getting-started An example of a typical request body sent to the Operator API. This body is used as the raw payload for generating the signature. ```json { "user": "3nYTOSjdlF6UTz9Ir", "country": "XX", "currency": "EUR", "operator_id": 1, "token": "cd6bd8560f3bb8f84325152101adeb45", "platform": "GPL_DESKTOP", "game_code": "clt_dragonrising", "lang": "en", "lobby_url": "https://examplecasino.io", "ip": "::ffff:10.0.0.39" } ``` -------------------------------- ### Generate Private/Public Key Pair Source: https://docs.hub88.io/developer-docs/operator-api-reference/getting-started Commands to generate an RSA private and public key pair using OpenSSL. The private key is used for signing requests, and the public key is used by Hub88 to verify these requests. ```shell openssl genrsa -out private.pem 2048 openssl rsa -pubout -in private.pem -out public.pem ``` -------------------------------- ### Get List of Products - POST /operator/generic/v2/products/list Source: https://docs.hub88.io/developer-docs/operator-api-reference/games-api Retrieves a list of products offered by Hub88. This endpoint provides information about various product offerings beyond just games. ```APIDOC POST /operator/generic/v2/products/list Description: Fetches a list of all products available from Hub88. Parameters: (Request Body - JSON) - operator_id: string (Required) - Identifier for the operator. Returns: (JSON) - products: array of objects - product_id: string - Unique identifier for the product. - name: string - Display name of the product. - type: string - Type of product (e.g., 'game', 'promotion'). ``` -------------------------------- ### Get Game List - POST /operator/generic/v2/game/list Source: https://docs.hub88.io/developer-docs/operator-api-reference/games-api Retrieves a comprehensive list of all available games. This endpoint is essential for displaying game catalogs to users. ```APIDOC POST /operator/generic/v2/game/list Description: Returns a list of all games available through the Hub88 platform. Parameters: (Request Body - JSON) - operator_id: string (Required) - Identifier for the operator. - currency: string (Optional) - Filter games by supported currency. - category: string (Optional) - Filter games by category. Returns: (JSON) - games: array of objects - game_id: string - Unique identifier for the game. - name: string - Display name of the game. - provider: string - The provider of the game. - categories: array of strings - Categories the game belongs to. - supported_currencies: array of strings - Currencies supported by the game. ``` -------------------------------- ### Operator API: Get Enabled Products List Source: https://docs.hub88.io/api-changelog/july-2025/new-endpoint-get-enabled-products-list This endpoint retrieves a list of all enabled products (game suppliers) available in an operator's game catalogue. It requires a valid X-Hub88-Signature matching the operator_id in the request body. The response includes product details such as name, code, and logo URL, with the product_code being particularly useful for filtering games via other API endpoints like /operator/generic/v2/game/list. ```APIDOC Endpoint: POST /operator/generic/v2/products/list Purpose: Retrieves a list of all enabled products (game suppliers) available in the operator's game catalogue. Request: Method: POST Path: /operator/generic/v2/products/list Headers: X-Hub88-Signature: (Required. Must match operator_id) Body: Type: JSON Content: operator_id: integer (Required. The ID of the operator) Response: Type: JSON Array Content: Each object represents a product and contains: product_name: string (The name of the product supplier) product_code: string (A unique code for the product, usable in other API calls) product_logo_url: string (URL to the product's logo) Example Response: [ { "product_name": "Hacksaw Gaming", "product_code": "hsg", "product_logo_url": "https://cdn.hub88.io/suppliers_logos/hacksaw.svg" } ] Key Details: - Only enabled products are returned. - Disabled products are automatically excluded. - The `product_code` can be used with endpoints like `/operator/generic/v2/game/list` for game filtering. Related Endpoints: - `/operator/generic/v2/game/list` (for querying games specific to a supplier using `product_code`) ``` -------------------------------- ### Get Supplier Data via OnDemand API Source: https://docs.hub88.io/developer-docs/operator-api-reference/ondemand-api This endpoint allows for retrieving supplier data through a custom on-demand mechanism. It requires specific configuration and is available upon request. Contact Hub88 for setup details. ```APIDOC POST /operator/generic/v2/service/provider_proxy Description: Retrieves supplier data via a custom on-demand endpoint. Specification: spec: "hub88-operator-api-general" Parameters: (Request body schema not provided in snippet) Returns: (Response schema not provided in snippet) Notes: - This API is available upon request. - Contact your technical contact on Hub88's side for access and setup. ``` -------------------------------- ### Demo Gameplay Flow Source: https://docs.hub88.io/developer-docs/supplier-api-reference/supplier-api-overview Outlines the interaction flow for launching a game in DEMO mode. This involves obtaining a game URL from the Supplier's Game API and redirecting the user, without expecting Wallet API calls. ```APIDOC Demo Gameplay Flow: 1. Hub88 calls the Supplier's Game API `/game/url` endpoint. - DEMO mode is indicated by passing `"currency":"XXX"`. - `token` and `user` parameters are omitted in DEMO mode. 2. The Supplier returns a game launch URL. 3. Hub88 uses the URL to direct the user to the game (e.g., via iframe or redirect). Note: In DEMO mode, Hub88 does not expect any calls to the Wallet API. ``` -------------------------------- ### Create Support Case - Game Launch Issue Source: https://docs.hub88.io/hubconnect/customer-support Submits a support ticket for 'Game Launch Issue', requiring game details, user information, and potentially launch URLs or test credentials. ```APIDOC POST /support/cases Request Body (Game Launch Issue): { "caseType": "Technical Support", "subType": "Game Launch Issue", "summary": "string (required)", "timeRange": "string (optional)", "userSessionToken": "string (optional)", "gameName": "string (required)", "description": "string (required) - Detailed steps to replicate the issue. Include game launch URL and test credentials if applicable.", "attachments": ["file_reference"], "additionalContacts": ["email_address"] } Returns: - Case ID and status upon successful submission. ``` -------------------------------- ### Get Game Round - POST /operator/generic/v2/game/round Source: https://docs.hub88.io/developer-docs/operator-api-reference/games-api Retrieves details about a specific game round. This is crucial for tracking game states and outcomes. ```APIDOC POST /operator/generic/v2/game/round Description: Fetches information about a specific game round. Parameters: (Request Body - JSON) - round_id: string (Required) - The unique identifier for the game round. - game_id: string (Required) - The identifier for the game. - operator_id: string (Required) - Identifier for the operator. Returns: (JSON) - round_id: string - The identifier of the game round. - game_id: string - The identifier of the game. - status: string - The current status of the round (e.g., 'completed', 'in_progress'). - outcome: object - Details of the round's outcome. ``` -------------------------------- ### Hub88 Game and Wallet API Endpoints Source: https://docs.hub88.io/developer-docs/supplier-api-reference/supplier-api-overview This section documents the key API endpoints used in the real gameplay interaction flow. It covers the initial game session URL retrieval and subsequent wallet transactions for user balance and betting operations. ```APIDOC Supplier Game API: POST /game/url Description: Requests a valid game URL from the Supplier. Hub88 generates and passes a unique game session token along with other request parameters. Parameters: - game_session_token: (string) A unique token generated by Hub88 for the game session. - ... (other request parameters) Returns: - game_url: (string) A valid URL to launch the game. Usage: Called by Hub88 to initiate a game session. Wallet API (Hub88): GET /supplier/generic/v2/user/balance Description: Retrieves the user's balance after verifying the game session token. Parameters: - game_session_token: (string) The token identifying the active game session. Returns: - user_balance: (number) The current balance of the user. Usage: Called by the Game Supplier's server when the game URL is loaded to fetch user balance. POST /supplier/generic/v2/transaction/bet Description: Processes a user's bet. Hub88 verifies the token, forwards the request to the Operator for balance check and deduction, and returns the updated balance. Parameters: - game_session_token: (string) The token identifying the active game session. - bet_amount: (number) The amount the user is betting. Returns: - updated_user_balance: (number) The user's balance after the bet deduction. Usage: Triggered by the Game Supplier when a user attempts to place a bet. POST /supplier/generic/v2/transaction/win Description: Processes a user's win. Hub88 verifies the token, forwards the request to the Operator for balance update, and returns the new balance. Parameters: - game_session_token: (string) The token identifying the active game session. - win_amount: (number) The amount the user has won. Returns: - updated_user_balance: (number) The user's balance after the win addition. Usage: Triggered by the Game Supplier when a user wins a bet. Related: - /supplier/generic/v2/transaction/bet: For handling bet placement. - /supplier/generic/v2/user/balance: For initial balance checks. ``` -------------------------------- ### Hub88 Wallet API Endpoints (Seamless Integration) Source: https://docs.hub88.io/developer-docs/operator-api-reference/operator-api-overview Details the Wallet API endpoints for seamless wallet integration, covering balance inquiries, bet placements, and win notifications. Emphasizes idempotency requirements. ```APIDOC Wallet API (Seamless Integration): Request Consistency: - All Wallet API requests must be idempotent. - Requests must include a 'transaction_uuid' field. - The Operator must ensure requests with the same 'transaction_uuid' are not processed twice. - Duplicate requests must yield the same response. - Idempotency requirement can be ignored for the '/user/balance' call. Endpoints: /user/balance - Called by Hub88 server to the Operator's server to get the user's balance. - Parameters: - token: (String) Operator-generated game session token. - user: (String) User identifier. - Returns: The user's current balance. - Notes: - Operator verifies the token against stored token. - Operator can ignore idempotency for this call. /transaction/bet - Triggered when a user attempts to place a bet. - Parameters: - token: (String) Operator-generated game session token. - user: (String) User identifier. - bet_amount: (Number) The amount the user is betting. - Returns: The updated user's balance after the bet. - Notes: - Operator verifies the token. - Operator ensures sufficient funds. - Operator decreases the user's balance by the bet amount. /transaction/win - Triggered when a user wins. - Parameters: - token: (String) Operator-generated game session token. - user: (String) User identifier. - win_amount: (Number) The amount the user has won. - Returns: The updated user's balance after the win. - Notes: - Operator verifies the token. - Operator increases the user's balance by the win amount. User Loss Handling: - Behavior depends on game provider's internal logic. - Possible outcomes: - Nothing is sent. - A win transaction with amount 0 is sent. ``` -------------------------------- ### Get User Wallet Balance Source: https://docs.hub88.io/developer-docs/operator-api-reference/transferwallet-api Retrieves the current balance of a user's wallet. This operation is part of the TransferWallet API, which requires specific availability. ```APIDOC POST /operator/generic/v2/transfer_wallet/balance Description: Get wallet balance. Dependencies: hub88-operator-api-general Parameters: (Details not provided in source text) Returns: (Details not provided in source text) Error Conditions: (Details not provided in source text) ``` -------------------------------- ### POST /operator/generic/v2/freebet/campaigns/info - Get Campaign Info Source: https://docs.hub88.io/developer-docs/operator-api-reference/freebets-api Retrieves detailed information about a specific reward campaign, identified by its UUID. This provides insights into campaign settings and status. ```APIDOC POST /operator/generic/v2/freebet/campaigns/info - Gets campaign information. - Parameters: - spec: hub88-operator-api-general - path: /operator/generic/v2/freebet/campaigns/info - method: post ``` -------------------------------- ### Supplier API Request Signing Source: https://docs.hub88.io/developer-docs/supplier-api-reference/supplier-api-overview Details the process for signing API requests using RSA-SHA256 and BASE64 encoding for secure communication between game suppliers and the Hub88 platform. Includes requirements for key exchange and signature placement in headers. ```APIDOC Supplier API Request Signing and Verification: Process: 1. Game Supplier generates a private/public key pair. 2. Supplier sends its public key to Hub88. 3. Hub88 sends its public key to the game Supplier. 4. The body of all requests is signed with RSA-SHA256 using the respective private key. 5. The signature is encoded to BASE64. 6. The signature is placed in the `X-Hub88-Signature` header. 7. Hub88 verifies all Supplier API requests using the Supplier's public key. 8. The game Supplier verifies all Wallet API requests using Hub88's public key. Example Request Body: ```json { "user": "3nYTOSjdlF6UTz9Ir", "country": "XX", "currency": "EUR", "operator_id": 1, "token": "cd6bd8560f3bb8f84325152101adeb45", "platform": "GPL_DESKTOP", "game_code": "ctl_dragonrising", "lang": "en", "lobby_url": "https://examplecasino.io", "ip": "::ffff:10.0.0.39" } ``` Example Signature: `FFdiceKlsnmrBMhWopZYQXrJSMqxJWkynbaiOnuUE1p4mrg2UydlSAdKbOWQZ7o5USbA3SHPum3XuRCa9INWbcp+fdcOhjz0S0JLKF6uXJR2T8zlF+L+8v2lkBzPOvLg6yRuUyspxtcHB6Vlyd0Sj4v8vk5HxoVv1ZV7EpJglzHs7xKchuifjjhUwkX7AAZwvJCNKo/VZrhtfxHd/k8aq7+9h7AztiiiLO7CXbEbo8snDqMqoB/tBAImv45NcAuReBZGb3QY37MbRoOT/uQGj+9ae5VRNpJ74qs3COraDqZ5kqzsa5SjN1cML2foP13Deqp0FTY0Ek521d8CPWQY6A==` Dependencies: - RSA-SHA256 algorithm - BASE64 encoding - Private/Public key pairs - `X-Hub88-Signature` header ``` -------------------------------- ### Hub88 Game API Endpoints Source: https://docs.hub88.io/developer-docs/operator-api-reference/operator-api-overview Details the Game API endpoints used for launching games and managing game sessions. Includes parameters for demo and real gameplay modes. ```APIDOC Game API: /game/url - Retrieves a game launch URL. - Parameters: - currency: (String, required for DEMO mode) Specifies the currency for demo play. - token: (String, required for REAL mode) A unique game session token generated by the Operator. - user: (String, optional for DEMO mode) User identifier. - Returns: A game launch URL. - Notes: - For DEMO mode, 'currency' must be passed, and 'token'/'user' may be omitted. - For REAL mode, a unique game session token must be generated and passed. ``` -------------------------------- ### Get Game URL - POST /operator/generic/v2/game/url Source: https://docs.hub88.io/developer-docs/operator-api-reference/games-api Retrieves a URL for a specific game. This endpoint is part of the core Games API for accessing individual game instances. ```APIDOC POST /operator/generic/v2/game/url Description: Requests a URL to launch a specific game. Parameters: (Request Body - JSON) - game_id: string (Required) - Identifier for the game. - operator_id: string (Required) - Identifier for the operator. - player_id: string (Required) - Identifier for the player. - currency: string (Required) - Currency code for the game session. - language: string (Optional) - Language code for the game interface. - country: string (Optional) - Country code for player location. Returns: (JSON) - url: string - The URL to launch the game. - game_id: string - The identifier of the game. - session_id: string - A unique identifier for the game session. ``` -------------------------------- ### Create Support Case - Configuration / Limit Adjustment Source: https://docs.hub88.io/hubconnect/customer-support Submits a support ticket for 'Configuration / Limit Adjustment' requests, requiring operator details and a description of the desired change. ```APIDOC POST /support/cases Request Body (Configuration / Limit Adjustment): { "caseType": "Technical Support", "subType": "Configuration / Limit Adjustment", "summary": "string (required)", "operatorBrand": "string (required)", "description": "string (optional) - Detailed description of the requested adjustment.", "attachments": ["file_reference"], "additionalContacts": ["email_address"] } Returns: - Case ID and status upon successful submission. ``` -------------------------------- ### Create Support Case - IP Whitelisting Source: https://docs.hub88.io/hubconnect/customer-support Submits a support ticket for 'IP Whitelisting' requests, specifying IP addresses to be added or changed on the Hub88 side. ```APIDOC POST /support/cases Request Body (IP Whitelisting): { "caseType": "Access Request", "subType": "IP Whitelisting", "summary": "string (required)", "ipAddresses": ["string (required)"], "description": "string (optional) - Reason for whitelisting.", "attachments": ["file_reference"], "additionalContacts": ["email_address"] } Returns: - Case ID and status upon successful submission. ``` -------------------------------- ### Games API Endpoints Source: https://docs.hub88.io/developer-docs/supplier-api-reference/games-api Reference for the Games API endpoints, including operations for getting game URLs, game rounds, and lists of games. All operations use the 'hub88-supplier-api-general' specification and are POST requests. ```APIDOC Games API Reference: Endpoint: /game/url Method: POST Specification: hub88-supplier-api-general Description: Retrieves a game URL. Endpoint: /game/round Method: POST Specification: hub88-supplier-api-general Description: Retrieves a game round. Endpoint: /game/list Method: POST Specification: hub88-supplier-api-general Description: Retrieves a list of games. ``` -------------------------------- ### Get User Gameplay Transactions (POST /operator/generic/v2/transactions/list) Source: https://docs.hub88.io/developer-docs/operator-api-reference/transactions-api Retrieves a list of all user's gameplay transactions. This API endpoint is essential for tracking transaction statuses and unique identifiers, aiding in processing and troubleshooting gameplay issues. It requires a POST request to the specified path. ```APIDOC POST /operator/generic/v2/transactions/list Description: Retrieves a list of all user's gameplay transactions, including their status and unique transaction IDs. Request Body: (Details not provided in source, typically includes filters or pagination parameters) Response: (Details not provided in source, typically includes a list of transaction objects) Example Usage: (No specific example provided in source) Related Operations: (No related operations specified in source) ``` -------------------------------- ### Deposit Money to User Wallet Source: https://docs.hub88.io/developer-docs/operator-api-reference/transferwallet-api Initiates a deposit of funds into a user's wallet. This operation is part of the TransferWallet API, which requires specific availability. ```APIDOC POST /operator/generic/v2/transfer_wallet/deposit Description: Deposit money to user's wallet. Dependencies: hub88-operator-api-general Parameters: (Details not provided in source text) Returns: (Details not provided in source text) Error Conditions: (Details not provided in source text) ```