Only this pageAll pages
Powered by GitBook
1 of 10

Operator API Documentation v2

Loading...

API Reference

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

API Key Setup

Please approach Technical Support for API Keys

API Response Statuses

Response status code and description for Seamless Wallet API.

Status Code
Description

SC_OK

Successful response.

SC_UNKNOWN_ERROR

Generic status code for unknown errors.

SC_INVALID_REQUEST

Wrong/missing parameters sent in request body.

SC_AUTHENTICATION_FAILED

Sample response format

Platforms

Platform Code
Platform Name

H5

Mobile Web

WEB

Web

Authentication failed. X-API-Key is missing or invalid.

SC_INVALID_SIGNATURE

X-Signature verification failed.

SC_INVALID_TOKEN

Invalid token on Operator's system.

SC_INVALID_GAME

Not a valid game.

SC_DUPLICATE_REQUEST

Duplicate request.

SC_CURRENCY_NOT_SUPPORTED

Currency is not supported.

SC_WRONG_CURRENCY

Transaction's currency is different from user's wallet currency.

SC_INSUFFICIENT_FUNDS

User's wallet does not have enough funds.

SC_USER_NOT_EXISTS

User does not exists in Operator's system

SC_USER_DISABLED

User is disabled and not allowed to place bets.

SC_TRANSACTION_DUPLICATED

Duplicate transaction Id was sent.

SC_TRANSACTION_NOT_EXISTS

Corresponding bet transaction cannot be found.

SC_VENDOR_ERROR

Error encountered on game vendor

SC_UNDER_MAINTENANCE

Game is under maintenance.

SC_MISMATCHED_DATA_TYPE

Invalid data type.

SC_INVALID_RESPONSE

Invalid response.

SC_INVALID_VENDOR

Vendor is not supported

SC_INVALID_LANGUAGE

Language is not supported.

SC_GAME_DISABLED

Game is disabled.

SC_INVALID_PLATFORM

Platform is not supported.

SC_GAME_LANGUAGE_NOT_SUPPORTED

Game language is not supported.

SC_GAME_PLATFORM_NOT_SUPPORTED

Game platform is not supported.

SC_GAME_CURRENCY_NOT_SUPPORTED

Game currency is not supported.

SC_VENDOR_LINE_DISABLED

Vendor line is disabled.

SC_VENDOR_CURRENCY_NOT_SUPPORTED

Vendor currency is not supported.

SC_VENDOR_LANGUAGE_NOT_SUPPORTED

Vendor language is not supported.

SC_VENDOR_PLATFORM_NOT_SUPPORTED

Vendor platform is not supported.

{
    "traceId": "e62ceec8-1c18-48fc-af0e-9f9f943b2554",
    "status": "SC_INVALID_REQUEST",
    "message": "Wrong/missing parameters sent in request body.",
    "validation": {
        "platform": "Platform is not supported."
    }
}

Languages

The Language code for support API Endpoints with localisation

Language Code
Language Name

zh

Chinese Simplified

hk

Chinese Traditional

en

English

id

Glossary

This page contains the list of terms used throughout this document with the definition of each term.

Term
Definition

API Key (X-API-Key)

It is a unique 64 characters alphanumeric string used to identify the Operator system that makes the API call. This value is generated by Game Aggregator and is given to the Operator during the Wallet Integration Process.

API Secret

It is a unique 64 characters alphanumeric string that is used for producing digital signatures via HMAC-SHA256 algorithm. This value is generated by Game Aggregator and is given to the Operator during the Wallet Integration Process. It must be stored securely on the Operator's system.

X-Signature

It is a digital signature generated using the algorithm HMAC-SHA256. This is produced by signing the API's request body using the Operator's API Secret.

HTTPS

Currencies

Currency Code
Currency Name

PHP

Philippine Peso

IDR(K)

Indonesian Rupiah

VND(K)

Vietnamese Dong

INR

Bahasa

tl

Tagalog

vi

Vietnamese

hi

Hindi

pt

Portugese

th

Thailand

es

Spanish

Hypertext Transfer Protocol Secure. The communication protocol is encrypted using SSL certificate to prevent man-in-the-middle attacks and eavesdropping.

traceId

An ID to uniquely identify every request.

Indian Rupee

BRL

Brazilian Real

MYR

Malaysian Ringgit

THB

Thai baht

COP(K)

Colombian Peso

NGN

Nigerian Naira

BWP

Botswana Pula

ZAR

South African Rand

GHS

Ghanaian Cedi

KES

Kenyan Shilling

CNY

Chinese Yuan

JPY

Japanese Yen

MMK (K)

Myanma Kyat

KRW

South Korean Won

HKD

Hong Kong Dollar

TRY

Turkish Lira

USD

United States Dollar

USDT

Tether

Overview

This document details the integration process and API endpoints for seamless wallet.

Seamless Wallet Integration

This integration requires the Operator to integrate the following REST APIs:

Games API (provided by Game Aggregator)

This API allows the Operator to access games related information as well as requesting a game URL for their players to access the games.

Wallet API (provided by Operator)

This API allows the Game Aggregator to inform the Operator's system about the transactions made by their players that manipulates their wallet balance.

Examples of such transactions are:

  • Placing a bet (a deduction to the wallet balance)

  • Winning a bet (an increase to the wallet balance)

API Security

This page explains the security requirements enforced by Game Aggregator.

Before integration starts, Operator must request API credentials from Game Aggregator.

  • API Key - A unique 64 characters alphanumeric string to identify the Operator.

  • API Secret - A unique 64 characters alphanumeric string that is used to sign request body.

Transport Layer Encryption

All communications between Operator and Game Aggregator must be secured through HTTPS.

This is to protect against man-in-the-middle attacks and eavesdropping.

Authentication

All API calls from Operator to Game Aggregator must include X-API-Key and X-Signature in the header.

This is to allow the Game Aggregator system to verify the Operator's identity.

X-Signature

This value provided in the request header is used to prevent data tampering.

The signature is generated using HMAC-SHA256 algorithm.

Request Body:

API Secret:

Signature generated

{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3455",
    "username": "bob12345",
    "gameId": 1,
    "language": "zh",
    "platform": "web",
    "currency": "CNY"
}
813e9cb10f35c37a059c2761465781275ad641d3cb85436cdd17f08b0a6b50bf
echo -n "{\"traceId\":\"f8c3de3d-1fea-4d7c-a8b0-29f63c4c3455\",\"username\":\"bob12345\",\"gameId\":1,\"language\":\"zh\",\"platform\":\"web\",\"currency\":\"CNY\"}" | openssl dgst -sha256 -hmac "813e9cb10f35c37a059c2761465781275ad641d3cb85436cdd17f08b0a6b50bf"
d6b093eef96f5f2557589bd188f49d030eed994b69612fbaf3690b2b8b897362

API Endpoints

Seamless wallet endpoints

Games API

Request game landing URL

POST https://<oneapi_site>/game/url

The game operator will open a new window with the provided game url to allow the user to access the game.

Headers

Name
Type
Description

Request Body

Name
Type
Description

Returns the list of supported vendors for the operator.

POST https://<oneapi_site>/game/vendors

Headers

Name
Type
Description

Request Body

Name
Type
Description

Returns the list of supported games for the operator.

POST https://<oneapi_site>/game/list

Headers

Name
Type
Description

Request Body

Name
Type
Description

Terminates a player's game session.

POST https://<oneapi_site>/game/terminate

Headers

Name
Type
Description

Request Body

Name
Type
Description

Wallet API

Retrieve user's latest balance.

POST https://<operator_site>/wallet/balance

Implemented by Operator. The Game Aggregator will call this endpoint to retrieve the user's latest wallet balance.

Headers

Name
Type
Description

Request Body

Name
Type
Description

A bet transaction to deduct amount from the wallet balance.

POST https://<operator_site>/wallet/bet

Called by the Game Aggregator when the user performs a bet. The Operator is expected to deduct the given amount from user's wallet and returns the latest balance.

Each bet transaction is identified by transactionId, Operator is expected to validate that the bet transaction is not processed before.

Important: This API call is idempotent, multiple calls with the same transactionId should not be processed again and return the latest balance of the user (SC_OK) if the Operator has successfully processed the transaction before.

Currently, this API only applies to Pragmatic Play & CQ9 game vendors.

Headers

Name
Type
Description

Request Body

Name
Type
Description

A bet transaction request to add and/or deduct funds from the user balance.

POST https://<operator_site>/wallet/bet_result

Called by the Game Aggregator when the user performs a bet or receives a bet result. The Operator is expected to update the user's wallet balance based on the resultType and return the final balance.

Important: This API call is idempotent, multiple calls with the same transactionId should not be processed again and return the latest balance of the user (SC_OK) if the Operator has successfully processed the transaction before.

Headers

Name
Type
Description

Request Body

Name
Type
Description

A rollback action on a bet transaction

POST https://<operator_site>/wallet/rollback

Called by the Game Aggregator to reverse a previous bet transaction. The Operator is expected to find the previous bet transaction based on the given betId to roll back its effect (credit/debit) to the user balance and return the latest balance.

Important: This API call is idempotent, multiple calls with the same transactionId should not be processed again and return the latest balance of the user (SC_OK) if the Operator has successfully processed the transaction before.

Headers

Name
Type
Description

Request Body

Name
Type
Description

An adjustment on the win amount of a game round.

POST https://<operator_site>/wallet/adjustment

Called by the Game Aggregator to adjust a previous round of the bet transaction win/loss result. The Operator is expected to add or deduct the given amount on the user's wallet and returns the latest balance.

This API only applies to Live and Sport game categories.

Important: This API call is idempotent, multiple calls with the same transactionId should not be processed again and return the latest balance of the user (SC_OK) if the Operator has successfully processed the transaction before.

Headers

Name
Type
Description

Request Body

Name
Type
Description

Transactions API

Returns the list of transactions by a specific time period.

POST https://<oneapi_site>/transaction/list

The game operator will get a list of transaction history by searching the transaction bet time

Bet Status definition:

0 = Unsettled Bet

1 = Settled Bet

2 = Cancelled Bet

3 = Refunded Bet

Headers

Name
Type
Description

Request Body

Name
Type
Description

Returns the detail transaction info for a specific bet transaction

POST https://<oneapi_site>transaction/detail

The game operator will get a single transaction history detail by searching the transactionId with/without the bet history detail url provided by Game Vendor

Bet Status definition:

0 = Unsettled Bet

1 = Settled Bet

2 = Cancelled Bet

3 = Refunded Bet

Headers

Name
Type
Description

Request Body

Name
Type
Description

platform*

String

The platform that the game will open on. Possible values: 1. web (default)

2. H5

currency*

String

ISO-4217 currency code (eg. USD)

lobbyUrl*

String

Operator site Url to navigate the user back to the game lobby.

ipAddress*

String

User's location IP Address in either IPv4 or IPv6 format.

displayLanguage

String

The language code for localized Game name and images text translation

currency

String

ISO-4217 currency code (eg. USD)

externalTransactionId*

String

An external transaction Id provided by Game Vendors.

amount*

Decimal

Amount of the bet transaction

currency*

String

ISO-4217 currency code representing the currency used for this transaction.

token*

String

User's session token generated by Game Aggregator.

gameCode*

String

A unique game identifier in Game Aggregator system.

roundId*

String

Game round Id for grouping all bets and wins in a single round.

timestamp

Number

Unix timestamp of this transaction in milliseconds.

externalTransactionId*

String

An external transaction Id provided by Game Vendors.

roundId*

String

Game round Id for grouping all bets and wins in a single round.

betAmount*

Decimal

Amount of the bet transaction.

winAmount*

Decimal

Amount of the win, Operator is expected to add winAmount to user's wallet when the winAmount is more than 0.

effectiveTurnover*

Decimal

Amount of the effective turnover

winLoss*

Decimal

Amount of the absolute Win or Loss

jackpotAmount

Decimal

Amount of the Jackpot, Operator is expected to add jackpotAmount to user's wallet when jackpotAmount is more than 0.

resultType*

String

The type of transaction process

1) "WIN" - (Player wins a bet)

2) "BET_WIN" - (Player places a bet and win)

3) "BET_LOSE" - (Player places a bet and lose)

4) "LOSE" - (Player loses a bet)

5) "END" - (To notify Operator that the round has ended for a bet, no operation on wallet is required)

isFreespin*

Integer (0,1)

The status to indicate the bet is a free spin bet

isEndRound*

Integer (0,1)

The status to indicate the bet is completed

currency*

String

ISO-4217 currency code representing the currency used for this transaction.

token*

String

User's session token generated by Game Aggregator.

gameCode*

String

A unique game identifier in Game Aggregator system.

betTime*

Number

The initial request Unix timestamp of this transaction in milliseconds.

settledTime

Number

The bet settlement Unix timestamp of this transaction in milliseconds.

roundId*

String

Game round Id for grouping all bets and wins in a single round.

gameCode*

String

A unique game identifier in Game Aggregator system.

username*

String

The username of the user in the Operator's system.

currency*

String

ISO-4217 currency code representing the currency used for this transaction.

timestamp

Number

Unix timestamp of this transaction in milliseconds.

roundId*

String

Game round Id for the previous transaction to be adjusted

amount*

Decimal

Amount to be adjusted for this transaction

1) positive (add balance)

2) negative (deduct balance)

currency*

String

ISO-4217 currency code representing the currency used for this transaction.

gameCode*

String

A unique game identifier in Game Aggregator system.

timestamp

Number

Unix timestamp of this transaction in milliseconds.

pageSize

Integer

Page size. Default: 2000, Max: 5000

Content-Type*

String

application/json

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

X-API-Key*

String

Operator's API key

username*

String

The username of the user in the operator's system.

traceId*

String

A Universally Unique Identifier (UUID) generated by the Operator's system for each API request.

gameCode*

String

Game code of the selected game in Game Aggregator's system.

language*

String

The selected language which the game should be opened. Default: 'en'

Content-Type*

String

application/json

X-API-Key*

String

Operator's API key

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) generated by the Operator's system for each API request.

displayLanguage

String

The language code for localised Game Vendor name translation

currency

String

ISO-4217 currency code (eg. USD)

Content-Type*

String

application/json

X-API-Key*

String

Operator's API key

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) generated by the Operator's system for each API request.

vendorCode*

String

Vendor's code

pageNo*

Integer

Page number

pageSize

Integer

Page size. Default: 100

Content-Type*

String

application/json

X-API-Key*

String

Operator's API key

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) generated by the Operator's system for each API request.

username*

String

The username of the user in the operator's system.

Content-Type*

String

application/json

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) provided by the Game Aggregator's system for each API request.

username*

String

The username of the user in the Operator's system.

currency*

String

ISO-4217 currency code (eg. USD)

token*

String

User's session token generated by Game Aggregator.

Content-Type*

String

application/json

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) provided by the Game Aggregator's system for each API request.

username*

String

The username of the user in the Operator's system.

transactionId*

String

A unique Id that identifies this transaction.

betId*

String

A unique Id that identifies this bet request transaction

Content-Type*

String

application/json

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) provided by the Game Aggregator's system for each API request.

username*

String

The username of the user in the Operator's system.

transactionId*

String

A unique Id that identifies this transaction.

betId*

String

A unique Id that identifies this bet request transaction

Content-Type*

String

application/json

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) provided by the Game Aggregator's system for each API request.

transactionId*

String

A unique Id that identifies this transaction.

betId*

String

A bet transaction Id to roll back its affected (credit/debit) to the user balance.

externalTransactionId*

String

An external transaction Id provided by Game Vendors.

Content-Type*

String

application/json

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) provided by the Game Aggregator's system for each API request.

username*

String

The username of the user in the Operator's system.

transactionId*

String

A unique Id that identifies this transaction.

externalTransactionId*

String

An external transaction Id provided by Game Vendors.

Content-Type*

String

application/json

X-API-Key*

String

Operator's API key

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) generated by the Operator's system for each API request.

fromTime*

Long

The timestamp to retrieve transactions from.

toTime*

Long

To retrieve transactions up to this timestamp.

pageNo*

Integer

Page number.

Content-Type*

String

application/json

X-API-Key*

String

Operator's API key

X-Signature*

String

A digital signature generated using HMAC-SHA256 algorithm signed using the operator's API secret key on the request body.

traceId*

String

A Universally Unique Identifier (UUID) generated by the Operator's system for each API request.

betId*

String

The unique Id that identifies this bet request transaction

displayLanguage

String

The language code for localised Game Vendor bet detail Url translation

{
    "status": "SC_OK",
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "data": {
        "gameUrl": "https://zf006.prerelease-env.biz/gs2c/playGame.do?key=token%3Df8c3de3d-1fea-4d7c-a8b0-29f63c4ab146%26symbol%3Dvswaysfltdrg%26platform%3DWEB%26language%3Dzh%26currency%3DCNY&stylename=zf06_rtw015sw",
        "token": "f8c3de3d-1fea-4d7c-a8b0-29f63c4ab146"
    }
}
{
    "status": "SC_INVALID_OPERATOR",
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456"
}
{
    "status": "SC_INVALID_SIGNATURE",
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456"
}
{
    "status": "SC_INVALID_GAME",
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456"
}
{
    "status": "SC_WRONG_CURRENCY",
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456"
}
{
    "status": "SC_INVALID_REQUEST",
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "validation": {
        "username": "Invalid value."
    }
}
{
    "status": "SC_UNKNOWN_ERROR",
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456"
}
{
  "traceId": "3b37a2f9-f0c3-47d4-b396-ff8e1309a84d",
  "status": "SC_OK",
  "message": "Successful response.",
  "data": [
    {
      "name": "PP EN",
      "currencyCode": "PHP,BRL",   
      "code": "PP",
      "categoryCode": "SLOTS,LIVE"
    },
    {
      "name": "PG Soft",
      "currencyCode": "BRL",      
      "code": "PGS",
      "categoryCode": "SLOTS"
    },
    {
      "name": "CQ9",
      "currencyCode": "PHP,BRL",        
      "code": "CQ9",
      "categoryCode": "SLOTS"
    }
  ]
}
```json
{
    "traceId": "706bb933-0c18-4b79-bed9-bf0b99c724ee",
    "status": "SC_OK",
    "message": "Successful response.",
    "data": {
        "headers": {
            "gameCode": 0,
            "gameName": 1,
            "categoryCode": 2,
            "imageSquare": 3,
            "imageLandscape": 4,
            "languageCode": 5,
            "platformCode": 6,
            "currencyCode": 7
        },
        "games": [
            [
                "PP_1302",
                "Spaceman",
                "SLOTS",
                "https://cdn-dev.gasea168.com/game/PP/Spaceman.png",
                null,
                "en,hk,id,pt,th,vi,zh",
                "H5,WEB",
                "CNY,PHP"
            ],
            [
                "PP_bca",
                "Baccarat",
                "SLOTS",
                "https://cdn-dev.gasea168.com/game/PP/Baccarat.png",
                null,
                "en,hk,id,pt,th,vi,zh",
                "H5,WEB",
                "CNY,PHP"
            ],
            [
                "PP_bjma",
                "Multihand Blackjack",
                "SLOTS",
                "https://cdn-dev.gasea168.com/game/PP/Multihand Blackjack.png",
                null,
                "en,hk,id,pt,th,vi,zh",
                "H5,WEB",
                "CNY,PHP"
            ],
            [
                "PP_bjmb",
                "American Blackjack",
                "SLOTS",
                "https://cdn-dev.gasea168.com/game/PP/American Blackjack.png",
                null,
                "en,hk,id,pt,th,vi,zh",
                "H5,WEB",
                "CNY,PHP"   
            ],
            [
                "PP_bnadvanced",
                "Dragon Bonus Baccarat",
                "SLOTS",
                "https://cdn-dev.gasea168.com/game/PP/Dragon Bonus Baccarat.png",
                null,
                "en,hk,id,pt,th,vi,zh",
                "H5,WEB",
                "CNY,PHP" 
            ]
        ],
        "currentPage": 1,
        "totalItems": 316,
        "totalPages": 64
    }
}
```
{
    "traceId": "639cb889-1a49-448b-a1e0-82e9d2ecacb5",
    "status": "SC_OK",
    "message": "Successful response."
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_OK",
    "data": {
        "username": "bob12345",
        "currency": "USD",
        "balance": 100.00
    }
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_USER_NOT_EXISTS"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_INVALID_TOKEN"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_INVALID_SIGNATURE"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_WRONG_CURRENCY"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_WRONG_PARAMETERS"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_OK",
    "data": {
        "username": "bob12345",
        "currency": "USD",
        "balance": 100.00
    }
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_INVALID_SIGNATURE"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_INVALID_TOKEN"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_USER_NOT_EXISTS"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456,
    "status": "SC_WRONG_CURRENCY"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_INVALID_REQUEST"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_INSUFFICIENT_FUNDS"
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_OK",
    "data": {
        "username": "bob12345",
        "currency": "USD",
        "balance": 100.00
    }
}
{
    "status": "SC_OK",
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "data": {
        "username": "bob12345",
        "currency": "USD",
        "balance": 100.00
    }
}
{
    "traceId": "f8c3de3d-1fea-4d7c-a8b0-29f63c4c3456",
    "status": "SC_OK",
    "data": {
        "username": "bob12345",
        "currency": "USD",
        "balance": 100.00
    }
}
{
    "traceId": "04cb48ce-346f-4dcc-ae49-7955805c50fc",
    "status": "SC_OK",
    "message": "Successful response.",
    "data": {
        "headers": {
            "betId": 0,
            "roundId": 1,
            "externalTransactionId": 2,
            "username": 3,
            "currencyCode": 4,
            "gameCode": 5,
            "vendorCode": 6,
            "gameCategoryCode": 7,
            "betAmount": 8,
            "winAmount": 9,
            "winLoss": 10,
            "effectiveTurnover": 11,
            "jackpotAmount": 12,
            "refundAmount": 13,
            "status": 14,
            "vendorBetTime": 15,
            "vendorSettleTime": 16,
            "isFreeSpin": 17
        },
        "transactions": [
            [
                "3358049710",
                "8865512900",
                "8865512900",
                "alex50",
                "CNY",
                "PP_vs7monkeys",
                "PP",
                "SLOTS",
                5.6000,
                11.0000,
                5.4000,
                5.6000,
                0.0000,
                0.0000,
                2,
                1681467405636,
                1681467405862,
                "TRUE"          
            ]
        ],
        "currentPage": 1,
        "totalItems": 0,
        "totalPages": 0
    }
}
{
    "traceId": "6caee2f4-f636-449d-be67-e81d63394dd0",
    "status": "SC_OK",
    "message": "Successful response.",
    "data": {
        "detailUrl": "https://public.pg-redirect.net/history/redirect.html?trace_id=64591026-ec82-4b76-9cca-958bfce047d3&t=7D1DE1DD-883F-44BA-8003-5312F15024CF&psid=1646444472307331072&sid=1646444515999514624&lang=zh&type=operator",
        "betDetail": {
            "betId": "1646444515999514624",
            "externalTransactionId": "1646444515999514624",
            "roundId": "1646444472307331072",
            "username": "dfasdfgasdfasdf",
            "currencyCode": "CNY",
            "gameCode": "PGS_100",
            "vendorCode": "PGS",
            "gameCategoryCode": "SLOTS",
            "betAmount": 1010.0000,
            "winAmount": 0.0000,
            "winLoss": -1010.0000,
            "effectiveTurnover": 1010.0000,
            "jackpotAmount": 0.0000,
            "refundAmount": 0.0000,
            "status": 2,
            "isFreeSpin": "TRUE",
            "vendorBetTime": 1672985880016,
            "vendorSettleTime": 1672985880016
        }
    }
}