PG SOFT Integration Document External API v1.13
1 PG SOFT™ Pocket Games Software www.pgsoft.com Contents Contents .................................................................................................................................................. 1 Revision History ...................................................................................................................................... 4 1. Overview ................................................................................................................................... 15 2. API Methods.............................................................................................................................. 16 2.1 API Formats ........................................................................................................................... 16 2.1.1 Request ..................................................................................................................... 16 2.1.2 Response ................................................................................................................... 16 2.1.3 Hash Authentication (Optional) ................................................................................ 17 2.2 Free Game [Latest version: v1] ............................................................................................. 20 2.2.1 Get Free Games List .................................................................................................. 20 2.2.2 Get List of Free Game Converted to Bonus Game/Cash ........................................... 25 2.2.3 Get List of Free Games that have Converted to Bonus Game then Cash ................. 27 2.2.4 Get Free Game Players List ....................................................................................... 29 2.2.5 Get List of Unregistered Players in Free Game ......................................................... 33 2.2.6 Get All Player Details for Free Game......................................................................... 36 2.2.7 Get Single Player Details in Free Game ..................................................................... 40 2.2.8 Create Free Game ..................................................................................................... 44 2.2.9 Create Free Game by Bet Amount ............................................................................ 47 2.2.10 Transfer Player to Standard Free Game.................................................................... 50 2.2.11 Transfer Player to Flexible Free Game ...................................................................... 52 2.2.12 Cancel Free Game ..................................................................................................... 55 2.2.13 Cancel Free Game of a Player ................................................................................... 56 2.2.14 Cancel Free Game of an Unregistered Player ........................................................... 58 2.2.15 Cancel All Free Games of a Player ............................................................................. 59 2.2.16 Get Free Game Player Summary ............................................................................... 60 2.3 Bonus [Latest version: v1] ..................................................................................................... 63 2.3.1 Get Bonus Game List ................................................................................................. 63 2.3.2 Get List of Bonus Games Converted to Cash ............................................................ 68 2.3.3 Get Bonus Game Players List .................................................................................... 70 2.3.4 Get List of Unregistered Players of Bonus Game ...................................................... 73 2.3.5 Get All Player Details in Bonus Game ....................................................................... 76 2.3.6 Get Single Player Details in Bonus Game .................................................................. 79 2.3.7 Create Bonus Game .................................................................................................. 83
2 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.8 Transfer Player to Standard Bonus Game ................................................................. 86 2.3.9 Transfer Player to Flexible Bonus Game ................................................................... 88 2.3.10 Cancel Bonus Game .................................................................................................. 91 2.3.11 Cancel Bonus Games of Registered Player ............................................................... 92 2.3.12 Cancel Bonus Game of Unregistered Player ............................................................. 93 2.3.13 Cancel All Bonus Games of a Player .......................................................................... 94 2.4 Tournament [Latest version: v2] ........................................................................................... 95 2.4.1 Get Tournaments List ................................................................................................ 95 2.4.2 Get Tournament Players List ................................................................................... 100 2.4.3 Get Tournament Top Rankings ............................................................................... 103 2.4.4 Register Tournament Players .................................................................................. 105 2.4.5 Get Tournament Cash Prize Reward List................................................................. 108 2.4.6 Create Tournament ................................................................................................. 111 2.4.7 Update Tournament................................................................................................ 115 2.4.8 Update Sub-Tournament Information .................................................................... 117 2.4.9 Get Tournament Information ................................................................................. 119 2.4.10 Create Tournament Information............................................................................. 121 2.4.11 Update Tournament Information ........................................................................... 123 2.4.12 Delete Tournament Information............................................................................. 125 2.4.13 Remove a Tournament Player................................................................................. 126 2.4.14 Revive Players ......................................................................................................... 127 2.5 Bet History [Latest version: v4] ........................................................................................... 129 2.5.1 Get History .............................................................................................................. 130 2.5.2 Get History for Specific Time .................................................................................. 134 2.5.3 Get Single Player History ......................................................................................... 138 2.5.4 Get Player’s Daily Summary .................................................................................... 141 2.5.5 Get Player’s Daily Summary for Specific Time ........................................................ 144 2.5.6 Get Hands Summary ............................................................................................... 147 2.5.7 Get Hourly Hands Summary .................................................................................... 150 2.5.8 Get Summary of Total Player Bets .......................................................................... 153 2.5.9 Get Player’s Unfinished Games ............................................................................... 157 2.5.10 Get Bet Details ........................................................................................................ 160 2.5.11 Get Failed Bets ........................................................................................................ 163 2.5.12 Pending Bets ........................................................................................................... 165
3 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.13 Get Pending Bets ..................................................................................................... 167 2.5.14 Manual Resolve of Pending Bet .............................................................................. 169 2.5.15 Manual Reset of Pending Game State .................................................................... 172 2.6 Game [Latest version: v2] ................................................................................................... 174 2.6.1 Get Games List ........................................................................................................ 174 2.6.2 Get Game Legal Bet Amounts ................................................................................. 177 2.6.3 Change Operator’s Game Release Status ............................................................... 179 2.6.4 Get Game Cert ........................................................................................................ 181 2.7 Cash [Latest version: v2] ..................................................................................................... 183 2.7.1 Get Wallet Transaction ........................................................................................... 183 2.7.2 Get Manual Adjustment Details .............................................................................. 185 2.8 Player [Latest version: v3] ................................................................................................... 188 2.8.1 Get Online Player Count.......................................................................................... 188 2.8.2 Get Players’s Online Status ..................................................................................... 190 2.8.3 Get Online Player List .............................................................................................. 192 2.8.4 Create Player ........................................................................................................... 194 2.8.5 Kick Out Player ........................................................................................................ 196 2.8.6 Suspend Player ........................................................................................................ 198 2.8.7 Resume Player......................................................................................................... 200 2.8.8 Check Player Status ................................................................................................. 202 3. Appendix ................................................................................................................................. 204 3.1.1 Platform .................................................................................................................. 204
4 PG SOFT™ Pocket Games Software www.pgsoft.com Revision History Version Date Description 1.0 2019-04-03 First draft 1.1 2019-04-12 Added new content 2.1.5 Get Free Game Unregistered Players 2.1.12 Cancel All Free Games of Player 2.2.4 Get Bonus Unregistered Players 2.2.11 Cancel All Bonus of Player 2.4.6 Get Hands Summary Amended Overview Amended API request parameter 2.1.6 Create Free Game 2.1.11 Cancel Unregistered Player Free Game 2.2.5 Create Bonus 2.2.10 Cancel Unregistered Player Bonus Amended API description 2 API Methods 2.1.2 Get List of Free Game Converted to Bonus 2.1.3 Get List of Free Game’s Bonus Converted to Cash 2.1.10 Cancel Registered Player Free Game 2.1.11 Cancel Unregistered Player Free Game 2.2.2 Get List of Bonus Converted to Cash 2.2.9 Cancel Registered Player Bonus 2.2.10 Cancel Unregistered Player Bonus 1.2 2019-04-15 Added notes for all bet history APIs (2.4) 1.3 2019-04-17 Added new contents 2.1.6 Get Free Game All Players 2.1.7 Get Player Free Games 2.2.5 Get Bonus All Players 2.2.6 Get Player Bonus Amended API descriptions & request descriptions 2.1.4 Get Free Game Players 2.1.5 Get Free Game Unregistered Players 2.2.3 Get Bonus Players 2.1.5 Get Bonus Unregistered Players 2.4.6 Get Hands Summary 2.5.1 Get Game List Amended API request 2.1.5 Get Free Game Unregistered Players
5 PG SOFT™ Pocket Games Software www.pgsoft.com 2.1.7 Create Free Game 2.2.4 Get Bonus Unregistered Players 2.2.6 Create Bonus Amended API response 2.1.6 Get Free Game All Players 2.1.7 Create Free Game 2.2.5 Get Bonus All Players 2.2.6 Create Bonus 2.4.6 Get Hands Summary 2.5.2 Get Game List 1.4 2019-07-12 Added new contents 2.1.9 Create Free Game by Bet Amount 2.3.1 Get Tournaments 2.3.2 Get Tournament Players 2.5.2 Get Game Legal Bet Amount Amended API 2.5.1 Get Game List (version 2) Amended API request 2.1.8 Create Free Game Amended API response 2.1.1 Get Free Games 1.5 2019-08-22 Amended API description 2.1.1 Get Free Games 2.1.2 Get List of Free Game Converted to Bonus/Cash 2.1.3 Get List of Free Game’s Bonus Converted to Cash 2.1.4 Get Free Game Players 2.1.6 Get Free Game All Players 2.2.1 Get Bonus 2.2.2 Get List of Bonus Converted to Cash 2.2.3 Get Bonus Players 2.2.5 Get Bonus All Players 2.3.1 Get Tournaments 2.3.2 Get Tournament Players 2.4.5 Get Player Daily Summary for Specific Time Amend API request 2.1.7 Get Player Free Games 2.2.9 Transfer Player to Flexible Bonus 2.4.1 Get History Amended API response 2.4.1 Get History 2.4.2 Get History for Specific Time
6 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.3 Get Single Player History 2.4.6 Get Hands Summary Added new contents 2.4.7 Get Player Bets Summation Total 1.6 2019-11-13 Added new contents 2.4.7 Get Hourly Hands Summary Amended API version 2.4 Bet History Amended API description 2.4 Bet History 2.4.1 Get History Amended API response 2.4.1 Get History 2.4.2 Get History for Specific Time 2.4.3 Get Single Player History 1.7 2020-02-10 Added new contents 2.5.3 Change Game Release Status 2.7.1 Get Online Player Count 2.7.2 Get Player Online Status Amended API response 2.4.1 Get History 2.4.2 Get History for Specific Time 2.4.3 Get Single Player History 2.4.4 Get Player Daily Summary 2.4.5 Get Player Daily Summary for Specific Time 2.4.6 Get Hands Summary 2.4.7 Get Hourly Hands Summary 2.4.8 Get Player Bets Summation Total 2.6.1 Get Jackpot List Amended API response parameter description 2.1.6 Get Free Game All Players 2.1.7 Get Player Free Games 2.2.5 Get All Bonus Players 2.2.6 Get Player Bonus 1.8 2020-12-11 Added new API version 2.7 Player Added new API 2.1.3 Get List of Free Game Converted to Bonus Game and Converted to Cash 2.4.13 Pending Bets 2.4.14 Manual Reset Pending Game State 2.7.3 Get Online Players
7 PG SOFT™ Pocket Games Software www.pgsoft.com 2.7.4 Create Player 2.7.5 Kick Out Player 2.7.6 Suspend Player 2.7.7 Resume Player 2.7.8 Check Player Status Amended API title or description 2.1.3 Get List of Free Game Converted to Bonus Game and Converted to Cash 2.1.10 Transfer Player to Standard Free Game 2.1.13 Cancel Player Free Game 2.2.6 Get Single Player Details in Bonus Game 2.2.7 Create Bonus Game 2.4 Bet History 2.4.1 Get History 2.4.2 Get History for Specific Time 2.4.3 Get Single Player History 2.4.4 Get Player’s Daily Summary 2.4.5 Get Player’s Daily Summary for Specific Time 2.4.6 Get Hands Summary 2.4.7 Get Hourly Hands Summary 2.4.8 Get Summary of Total Player Bets 2.4.9 Get Player’s Unfinished Games 2.4.10 Get All Unsuccessful Bets 2.4.11 Get Bet Details 2.4.12 Get Failed Bets 2.6.1 Get Jackpots List 2.7.2 Get Players Online Status Amended API request or response contents 2.1.1 Get Free Games List 2.1.4 Get Free Game Players List 2.1.5 Get List of Unregistered Players in Free Game 2.1.6 Get All Player Details for Free Game 2.1.7 Get Single Player Details in Free Game 2.1.8 Create Free Game 2.1.9 Create Free Game by Bet Amount 2.1.10 Transfer Player to Standard Free Game 2.1.11 Transfer Player to Flexible Free Game 2.2.1 Get Bonus Game List 2.2.2 Get List of Bonus Games Converted to Cash 2.2.3 Get Bonus Game Players List 2.2.4 Get List of Unregistered Players of Bonus Game 2.2.5 Get All Player Details in Bonus Game 2.2.6 Get Single Player Details in Bonus Game 2.2.9 Transfer Player to Flexible Bonus Game 2.2.13 Cancel All Bonus Games of a Player 2.3.1 Get Tournaments List
8 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.2 Get Tournament Players List 2.3.4 Register Tournament Players 2.3.5 Get Tournament Cash Prize Reward List 2.4.1 Get History 2.4.2 Get History for Specific Time 2.4.3 Get Single Player History 2.4.4 Get Player’s Daily Summary 2.4.5 Get Player’s Daily Summary for Specific Time 2.4.6 Get Hands Summary 2.4.7 Get Hourly Hands Summary 2.4.8 Get Summary of Total Player Bets 2.4.9 Get Player’s Unfinished Games 2.4.10 Get All Unsuccessful Bets 2.4.11 Get Bet Details 2.4.12 Get Failed Bets 2.6.1 Get Jackpots List 2.7.2 Get Players Online Status 1.9 2021-05-20 Added new API request parameter All APIs in 2. API Methods Added new APIs 2.4.6 Create Tournament 2.4.7 Update Tournament 2.4.8 Update Sub-Tournament 2.4.9 Get Tournament Info Language By Tournament Id 2.4.10 Create Tournament Info Language 2.4.11 Update Tournament Info Language 2.4.12 Delete Tournament Info Language 2.4.13 Cancel Tournament Player 2.4.14 Revive Players Amend API response 2.5.7 Get Hourly Hands Summary Amended API response description 2.5.7 Get Hourly Hands Summary 2.5.8 Get Summary of Total Player Bets Amend API request 2.5.8 Get Summary of Total Player Bets 2.5.9 Get Player’s Unfinished Games Added new contents 2.1.3 Hash Authentication 1.10 2021-10-13 Amended API request or response contents 2.1.3 Hash Authentication 2.2.4 Get Free Game Players List 2.2.6 Get All Player Details for Free Game 2.2.7 Get Single Player Details in Free Game 2.2.8 Create Free Game
9 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.9 Create Free Game by Bet Amount 2.2.10 Transfer Player to Standard Free Game 2.2.11 Transfer Player to Flexible Free Game 2.2.15 Cancel All Free Games of a Player 2.3.3 Get Bonus Game Players List 2.3.5 Get All Player Details in Bonus Game 2.3.6 Get Single Player Details in Bonus Game 2.3.7 Create Bonus Game 2.3.8 Transfer Player to Standard Bonus Game 2.3.9 Transfer Player to Flexible Bonus Game 2.4.1 Get Tournaments List 2.4.5 Get Tournament Cash Prize Reward List 2.4.8 Update Sub-Tournament Information 2.4.10 Create Tournament Information 2.4.11 Update Tournament Information 2.5.1 Get History 2.5.2 Get History for Specific Time 2.5.3 Get Single Player History 2.5.6 Get Hands Summary 2.5.7 Get Hourly Hands Summary 2.5.8 Get Summary of Total Player Bets 2.5.9 Get Player’s Unfinished Games 2.5.10 Get Bet Details 2.5.13 Get Pending Bets 2.6.1 Get Games List 2.8.3 Get Online Player List Added new API 2.2.16 Get Free Game Player Summary 2.6.4 Get Game Cert 2.7.1 Get Wallet Transaction 2.7.2 Get Manual Adjustment Details 1.11 2022-06-27 Removed API 2.8 Jackpot Amended API request or response contents 2.1.3 Hash Authentication (Optional) 2.2.1 Get Free Games List 2.2.2 Get List of Free Game Converted to Bonus Game/Cash 2.2.3 Get List of Free Games that have Converted to Bonus Game then Cash 2.2.4 Get Free Game Players List
10 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.5 Get List of Unregistered Players in Free Game 2.2.6 Get All Player Details for Free Game 2.2.7 Get Single Player Details in Free Game 2.2.8 Create Free Game 2.2.9 Create Free Game by Bet Amount 2.2.12 Cancel Free Game 2.2.13 Cancel Free Game of a Player 2.2.14 Cancel Free Game of an Unregistered Player 2.2.15 Cancel All Free Games of a Player 2.2.16 Get Free Game Player Summary 2.3.1 Get Bonus Game List 2.3.2 Get List of Bonus Games Converted to Cash 2.3.3 Get Bonus Game Players List 2.3.4 Get List of Unregistered Players of Bonus Game 2.3.5 Get All Player Details in Bonus Game 2.3.6 Get Single Player Details in Bonus Game 2.3.7 Create Bonus Game 2.3.10 Cancel Bonus Game 2.3.11 Cancel Bonus Games of Registered Player 2.3.12 Cancel Bonus Game of Unregistered Player 2.3.13 Cancel All Bonus Games of a Player 2.4.2 Get Tournament Players List 2.4.3 Get Tournament Top Rankings 2.4.4 Register Tournament Players 2.4.6 Create Tournament 2.5.1 Get History 2.5.2 Get History for Specific Time 2.5.3 Get Single Player History 2.5.5 Get Player’s Daily Summary for Specific Time 2.5.6 Get Hands Summary 2.5.8 Get Summary of Total Player Bets 2.5.10 Get Bet Details 2.5.13 Get Pending Bets 2.5.14 Manual Resolve of Pending Bet 2.5.15 Manual Reset of Pending Game State 2.6.1 Get Games List 2.7.1 Get Wallet Transaction 2.7.2 Get Manual Adjustment Details 2.8.3 Get Online Player List 1.12 2023-05-31 Amended API request or response contents
11 PG SOFT™ Pocket Games Software www.pgsoft.com 2.1.3 Hash Authentication (Optional) 2.2.1 Get Free Games List 2.2.2 Get List of Free Game Converted to Bonus Game/Cash 2.2.3 Get List of Free Games that have Converted to Bonus Game then Cash 2.2.4 Get Free Game Players List 2.2.5 Get List of Unregistered Players in Free Game 2.2.6 Get All Player Details for Free Game 2.2.7 Get Single Player Details in Free Game 2.2.8 Create Free Game 2.2.9 Create Free Game by Bet Amount 2.2.12 Cancel Free Game 2.2.16 Get Free Game Player Summary 2.3.1 Get Bonus Game List 2.3.2 Get List of Bonus Games Converted to Cash 2.3.3 Get Bonus Game Players List 2.3.4 Get List of Unregistered Players of Bonus Game 2.3.5 Get All Player Details in Bonus Game 2.3.6 Get Single Player Details in Bonus Game 2.3.7 Create Bonus Game 2.3.9 Transfer Player to Flexible Bonus Game 2.4.1 Get Tournaments List 2.4.2 Get Tournament Players List 2.4.3 Get Tournament Top Rankings 2.4.5 Get Tournament Cash Prize Reward List 2.4.6 Create Tournament 2.5.1 Get History 2.5.2 Get History for Specific Time 2.5.3 Get Single Player History 2.5.4 Get Player’s Daily Summary 2.5.5 Get Player’s Daily Summary for Specific Time 2.5.6 Get Hands Summary 2.5.7 Get Hourly Hands Summary 2.5.8 Get Summary of Total Player Bets 2.5.9 Get Player’s Unfinished Games 2.5.10 Get Bet Details 2.5.13 Get Pending Bets 2.5.14 Manual Resolve of Pending Bet 2.6.1 Get Games List 2.6.4 Get Game Cert 2.7.1 Get Wallet Transaction 2.7.2 Get Manual Adjustment Details
12 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8.2 Get Players’ Online Status Removed request parameter 2.2.1 Get Free Games List 2.2.3 Get List of Free Games that have Converted to Bonus Game then Cash 2.2.4 Get Free Game Players List 2.2.5 Get List of Unregistered Players in Free Game 2.2.6 Get All Player Details for Free Game 2.2.8 Create Free Game 2.2.9 Create Free Game by Bet Amount 2.3.1 Get Bonus Game List 2.3.3 Get Bonus Game Players List 2.3.4 Get List of Unregistered Players of Bonus Game 2.3.5 Get All Player Details in Bonus Game 2.3.7 Create Bonus Game 2.4.10 Create Tournament Information 2.4.11 Update Tournament Information 1.13 2025-02-21 Amended API request or response contents 2.2.1 Get Free Games List 2.2.2 Get List of Free Game Converted to Bonus Game/Cash 2.2.3 Get List of Free Games that have Converted to Bonus Game then Cash 2.2.4 Get Free Game Players List 2.2.6 Get All Player Details for Free Game 2.2.7 Get Single Player Details in Free Game 2.2.8 Create Free Game 2.2.9 Create Free Game by Bet Amount 2.2.10 Transfer Player to Standard Free Game 2.2.11 Transfer Player to Flexible Free Game 2.2.12 Cancel Free Game 2.3.1 Get Bonus Game List 2.3.3 Get Bonus Game Players List 2.3.5 Get All Player Details in Bonus Game 2.3.6 Get Single Player Details in Bonus Game 2.3.7 Create Bonus Game 2.3.8 Transfer Player to Standard Bonus Game 2.3.10 Cancel Bonus Game 2.4.2 Get Tournament Players List 2.4.4 Register Tournament Players 2.4.5 Get Tournament Cash Prize Reward List 2.4.6 Create Tournament
13 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.10 Create Tournament Information 2.4.14 Revive Players 2.5.1 Get History 2.5.2 Get History for Specific Time 2.5.3 Get Single Player History 2.5.5 Get Player’s Daily Summary for Specific Time 2.5.6 Get Hands Summary 2.5.7 Get Hourly Hands Summary 2.5.8 Get Summary of Total Player Bets 2.5.9 Get Player’s Unfinished Games 2.5.10 Get Bet Details 2.5.11 Get Failed Bets 2.5.13 Get Pending Bets Added notes 2.1.3 Hash Authentication (Optional) 2.4.6 Create Tournament 2.5.14 Manual Resolve of Pending Bet Amend notes 2.1.3 Hash Authentication (Optional) 2.2.8 Create Free Game 2.2.9 Create Free Game by Bet Amount 2.2.10 Transfer Player to Standard Free Game 2.2.11 Transfer Player to Flexible Free Game 2.3.7 Create Bonus Game 2.3.8 Transfer Player to Standard Bonus Game 2.3.9 Transfer Player to Flexible Bonus Game 2.5.4 Get Player’s Daily Summary Removed request parameter 2.2.8 Create Free Game 2.2.9 Create Free Game by Bet Amount 2.5.14 Manual Resolve of Pending Bet 2.5.15 Manual Reset of Pending Game State Removed error response 2.8.4 Create Player Amended API URL 2.8.4 Create Player 2.8.5 Kick Out Player 2.8.6 Suspend Player 2.8.7 Resume Player 2.8.8 Check Player Status Added new API request parameter
14 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.6 Create Tournament Added new API response parameter 2.2.2 Get List of Free Game Converted to Bonus Game/Cash 2.2.3 Get List of Free Games that have Converted to Bonus Game then Cash 2.2.6 Get All Player Details for Free Game 2.2.10 Transfer Player to Standard Free Game 2.2.11 Transfer Player to Flexible Free Game 2.3.2 Get List of Bonus Games Converted to Cash 2.3.3 Get Bonus Game Players List 2.3.6 Get Single Player Details in Bonus Game 2.3.8 Transfer Player to Standard Bonus Game 2.3.9 Transfer Player to Flexible Bonus Game
15 PG SOFT™ Pocket Games Software www.pgsoft.com 1. Overview The External API allows you to programmatically access PG SOFT’s tools and services. You can use these APIs to retrieve information, create, modify, or cancel various PG SOFT services such as free games, bonus games, tournament and more. PG SOFT APIs are divided by services. Each of these services has its own section in this documentation. All APIs in this documentation are optional, operator may choose to integrate API based on requirements.
16 PG SOFT™ Pocket Games Software www.pgsoft.com 2. API Methods 2.1 API Formats 2.1.1 Request The external API uses HTTP form methods and a RESTful endpoint structure. You format requests in the following content type: Content-Type: application/x-www-form-urlencoded 2.1.2 Response API returns JSON-formatted responses. For successful and failed API request, operator is required to return an API response with HTTP status code 200. API uses global JSON response format for all API methods, with the following content type: Content-Type: application/json Parameters: Parameter name Data type Description data 1 JSON Object Response information for API methods error 2 JSON Object Error information when an error or exception occur Example: Successful Response { "data": { [API method response. JSON object format may vary depending on API methods] }, "error": null, } Failed/Error Response { "data": null, "error": { "code": "[Error code]", "message": "[Error message]" } } 1 This field will show null value in error response 2 This field will show null value in success API response. Please refer to error response section for error response format
17 PG SOFT™ Pocket Games Software www.pgsoft.com 2.1.3 Hash Authentication (Optional) We highly recommend that the operator integrate hash authentication to secure every request. If the operator chooses to integrate with hash authentication, PG SOFT system will validate the hash information provided in the header fields for every request. Notes Hash Authentication is disabled by default. Please request with PG SOFT if the operator wishes to enable Hash Authentication. The operator shall perform encryption and calculations based on the received request parameters, and the body parameters should not be hardcoded. 2.1.3.1 Header Fields The following table describes the various request headers in the preceding example: Component Description Host API domain Example: apiexample.pgsoft.com x-date Current date (UTC) in YYYYMMDD format Example: 20190902 x-content- sha256 SHA256 hash of the request string body Example: 1700116101f424b9f6fc695b4dbaf2b7b0ee763ba1b3b53298 e3069143ed46f1 Authorization Combination of various components for request authentication Example: PWS-HMAC-SHA256 Credential=20190902/OPERATORTOKENEXAMPLE/pws/v1,Sig nedHeaders=host;x-content-sha256;x-date,Signature= d78220cf06ae85f9d1db11dad9c3fd926799619eab3d28574aa db8cf328cd7aa
18 PG SOFT™ Pocket Games Software www.pgsoft.com Example Host: apiexample.pgsoft.com x-date: 20190902 x-content-sha256: 1700116101f424b9f6fc695b4dbaf2b7b0ee763ba1b3b53298e3069143ed46f 1 Authorization: PWS-HMAC-SHA256 Credential=20190902/OPERATORTOKENEXAMPLE/pws/v1,SignedHeaders= host;x-content-sha256;x-date,Signature= d78220cf06ae85f9d1db11dad9c3fd926799619eab3d28574aadb8cf328cd7aa Header: x-content-sha256 Calculate a SHA256 hash of the request string body: Example POST body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&count=5000&bet_ type=1&row_version=1346592723000 x-content-sha256: 1700116101f424b9f6fc695b4dbaf2b7b0ee763ba1b3b53298e3069143ed46f1
19 PG SOFT™ Pocket Games Software www.pgsoft.com Header: Authentication The following table describes the various components of the Authorization header value in the preceding example: To calculate a signature, you first need a string that includes {host}{x-content-sha256}{x- date} to sign. You will then calculate a HMAC-SHA256 hash of the string to sign by using a signing key: Calculate a HMAC-SHA256 hash of the string body: Example Salt : SALTEXAMPLE Host : apiexample.pgsoft.com x-date : 20190902 x-content-sha256 : 1700116101f424b9f6fc695b4dbaf2b7b0ee763ba1b3b53298e3069143ed46f1 Signature: d78220cf06ae85f9d1db11dad9c3fd926799619eab3d28574aadb8cf328cd7aa Component Description Credential Your access key ID and the scope information which includes the date, operator token and service that were used to calculate the signature. This string has the following form: {x-date}/{operator_token}/pws/v1 Example: 20190902/OPERATORTOKENEXAMPLE/pws/v1 SignedHeaders A semicolon-separated list of request headers that you will use to compute the Signature. The list includes header names only, and the header names must be in lowercase. Fixed Value: host;x-content-sha256;x-date Signature The 256-bit signature is expressed as 64 lowercase hexadecimal characters. Example: d78220cf06ae85f9d1db11dad9c3fd926799619eab3d28574a adb8cf328cd7aa hmac-sha256({salt}, {host}{x-content-sha256}{x-date})
20 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2 Free Game [Latest version: v1] 2.2.1 Get Free Games List To get a list of created free games. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/GetFreeGames HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 from_time Long Yes Time range of free games’ start time (Unix time stamp in milliseconds) to_time Long Yes Time range of free games’ end time (Unix time stamp in milliseconds) free_game_id Integer No Unique identity of free game Default: All free games currency String No Currency of free game Default: All currencies of free games free_game_name String No Given name of free game Default: All given name of free games free_game_transfer_type Integer No Transfer type for free game 0: Standard 3: Flexible Default: All transfer types conversion_type Char No Type of conversion after free game is completed: C: Cash B: Bonus
21 PG SOFT™ Pocket Games Software www.pgsoft.com Default: All conversion types status Integer No Status of free game: 0: Inactive 1: Active 2: Expired Default: All status Example: URL: https://api.pg-bo.me/external/FreeGame/v1/GetFreeGames?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&f rom_time=1346592723000&to_time=1546592723000&free_game_id=12345&currency=CNY&free_ game_name=freegame2019&free_game_transfer_type=1&conversion_type=C&status=1 Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of free games JSON Array Parameter name Data type Description operatorToken String Unique identity of operator freeGameId Integer Unique identity of free game freeGameName String Given name of free game transactionId String Unique identity of External API request when creating free games isEvent Boolean Type of free game: True: Flexible False: Standard gameIds Integer Array Unique identity of games totalGame Integer Total number of free games that will be given to a single player currencyCode String Currency of free game coinSize Decimal Coin size of free game multiplier Integer Bet multiplier of free game minimumConversionAmount Decimal The minimum cash conversion amount of free game maximumConversionAmount Decimal The maximum cash conversion amount of free game
22 PG SOFT™ Pocket Games Software www.pgsoft.com conversionType Char Type of conversion after free game is completed: C: Cash B: Bonus bonusRatio Decimal Wagering requirement for bonus game. Refers to the multiple of the turnover in free game that needs to be completed after the amount won in free game has been transferred to the bonus wallet bonusRatioAmount Decimal Wagering requirement for bonus game. Refers to the total amount that needs to be completed after the amount won in free game has been transferred to the bonus wallet bonusMinimumConversionA mount Decimal The minimum cash conversion amount of bonus game bonusMaximumConversionA mount Decimal The maximum cash conversion amount of bonus game bonusType Integer Bonus game conversion type: 0: Bonus 1: Cash 2: Bonus & Cash status Integer Status of free game: 0: Inactive (Cancelled) 1: Active 2: Expired freeGameCountGiven Integer Total number of given free games numberOfPlayers Integer Total number of players in free game expiredDate Long Expiry date of free game (Unix time stamp in milliseconds) createdDate Long Created date of free game (Unix time stamp in milliseconds) createdBy String API or BackOffice user who created the free game updatedBy String API or BackOffice user who updated the free game isSupressDiscard Boolean Permission to allow players to cancel offer: True: Do not allow player to cancel offer False: Allows player to cancel offer
23 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 3, "totalPage": 1, "result": [ { "operatorToken": "operatorA", "freeGameId": 264244, "freeGameName": "FreeGame2", "isEvent": false, "gameIds": [ 1368367 ], "totalGame": 10, "currencyCode": "AED", "coinSize": 0.04000, "multiplier": 1, "minimumConversionAmount": 1.00, "maximumConversionAmount": 100.00, "conversionType": "B", "bonusRatio": 1.00, "bonusRatioAmount": 0.00, "bonusMinimumConversionAmount": 1.00, "bonusMaximumConversionAmount": 100.00, "bonusType": 0, "status": 1, "numberOfPlayers": 0, "freeGameCountGiven": 0, "expiredDate": 1734623999000, "createdDate": 1734620599000, "createdBy": "user1", "isSuppressDiscard": false }, { "operatorToken": "operatorA", "freeGameId": 264243, "freeGameName": "FreeGame1", "transactionId": "112233", "isEvent": true, "gameIds": [ 1 ], "totalGame": 10, "currencyCode": "CNY", "coinSize": 0.01000, "multiplier": 10, "conversionType": "C", "bonusRatio": 0.00, "bonusRatioAmount": 0.00, "status": 1, "numberOfPlayers": 0, "freeGameCountGiven": 0, "expiredDate": 1734658257000, "createdDate": 1734619351000,
24 PG SOFT™ Pocket Games Software www.pgsoft.com "createdBy": "External API", "isSuppressDiscard": false } ] }, "error": null }
25 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.2 Get List of Free Game Converted to Bonus Game/Cash To get a list of free games that have been converted to bonus game or cash. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/GetFreeGameConvertedWallet HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 free_game_id Integer Yes Unique identity of free game from_transaction_time Long Yes Time range of free game player’s transactions (Unix time stamp in milliseconds) to_transaction_time Long Yes player_name String No Unique identity of player Note: Fuzzy matching is implemented Default: All players Example: URL: https://api.pg- bo.me/external/FreeGame/v1/GetFreeGameConvertedWallet?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&f ree_game_id=12345&player_name=player1&from_transaction_time=1346592723000&to_trans action_time=1346592723000
26 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description totalConvertedAmount Decimal Total amount that has been converted to cash in free game totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of free games JSON Array Parameter name Data type Description balanceId Integer Unique identity of player’s free game wallet playerName String Unique identity of player currencyCode String Currency of player gameId Integer Unique identity of game transactionAmount Decimal Converted amount of player transactionDateTime Long Time of conversion betId Ulong Unique identity of the last bet for conversion Example: { "data": { "totalConvertedAmount": 1.55, "totalCount": 1, "totalPage": 1, "result": [ { "balanceId": 134242491, "playerName": "WTH", "currencyCode": "CNY", "gameId": 1368367, "transactionAmount": 1.55, "transactionDateTime": 1735221256760, "betId": 1872279768469201234 } ] }, "error": null }
27 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.3 Get List of Free Games that have Converted to Bonus Game then Cash To get a list of games that were converted from a free game to a bonus game, and then from bonus game to cash. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/GetFreeGameBonusConvertedWallet HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 free_game_id Integer Yes Unique identity of free game from_transaction_time Long Yes Time range of free game player’s transactions (Unix time stamp in milliseconds) to_transaction_time Long Yes player_name String No Unique identity of player Note: Fuzzy matching is implemented Default: All players Example: URL: https://api.pg- bo.me/external/FreeGame/v1/GetFreeGameBonusConvertedWallet?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&f ree_game_id=12345&player_name=player1&from_transaction_time=1346592723000&to_trans action_time=1346592723000
28 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description totalConvertedAmount Decimal Total amount that has been converted to cash in free game totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of free game players’ details JSON Array Parameter name Data type Description balanceId Integer Unique identity of player’s free game wallet playerName String Unique identity of player currencyCode String Currency of player gameId Integer Unique identity of game transactionAmount Decimal Amount converted of player transactionDateTime Long Time of convert (Unix time stamp in milliseconds) betId Ulong Unique identity of the last bet for conversion Example: { "data": { "totalConvertedAmount": 1.55, "totalCount": 1, "totalPage": 1, "result": [ { "balanceId": 134242493, "playerName": "LF", "currencyCode": "CNY", "gameId": 1368367, "transactionAmount": 1.55, "transactionDateTime": 1735221281698, "betId": 1872279873083531122 } ] }, "error": null }
29 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.4 Get Free Game Players List To get a list of registered players of a free game. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/GetFreeGamePlayers HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 free_game_id Integer Yes Unique identity of free game from_time Long Yes Time range of free games’ start time (Unix time stamp in milliseconds) to_time Long Yes player_name String No Unique identity of free game player Note: Fuzzy matching is implemented Default: All players status Integer No Status of free game wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending Default: All status
30 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external/FreeGame/v1/GetFreeGamePlayers?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&p layer_name=player1&from_time=1346592723000&to_time=1546592723000&free_game_id=1234 5&status=1 Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of players in a free game JSON Array Parameter name Data type Description balanceId Integer Unique identity of player’s free game wallet playerId Integer Unique identity of player in free game playerName String Unique identity of player in free game walletType String Type of player wallet in free game: G: Free Game B: Bonus balanceAmount Decimal Player balance of free game bonusRatioAmount Decimal Wagering requirement for bonus game. Refers to the total amount that need to be completed after the amount won in free game has been transferred to the bonus wallet bonusMaximumConversion Amount Decimal Maximum conversion amount for free game’s bonus freeGameMaximumConver sionAmount Decimal Maximum conversion amount for free game freeGameCount Integer Remaining free game spins available in the player's free game wallet status Integer Status of free game wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New
31 PG SOFT™ Pocket Games Software www.pgsoft.com 6: User Cancelled 8: Pending expiredDate Long Expiry date of free game (Unix time stamp in milliseconds) createdBy String API or BackOffice user who created the free game updatedBy String API or BackOffice user who updated the free game updatedDate Long Date of when a player is registered or re-registered into the free game (Unix time stamp in milliseconds) createdDate Long Date of when a player is registered into the free game (Unix time stamp in milliseconds)
32 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 2583, "totalPage": 259, "result": [ { "balanceId": 111261, "playerId": 7443, "playerName": "player1", "walletType": "B", "balanceAmount": 874.4, "bonusRatioAmount": 874.4, "bonusMaximumConversionAmount": 0, "freeGameMaximumConversionAmount": 0, "expiredDate": 1546991999000, "status": 2, "createdBy": "operator", "updatedBy": "operator", "createdDate": 1546923615000, "updatedDate": 1546991999000 }, { "balanceId": 111252, "playerId": 7443, "playerName": "player2", "walletType": "G", "balanceAmount": 8.8, "bonusMaximumConversionAmount": 0, "freeGameMaximumConversionAmount": 0, "freeGameCount": 6, "expiredDate": 1546991999000, "status": 6, "createdBy": "operator", "updatedBy": "operator", "createdDate": 1546918715000, "updatedDate": 1547028195000 } ] }, "error": null }
33 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.5 Get List of Unregistered Players in Free Game To get a list of unregistered players in free game. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/GetFreeGamePendingPlayers HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 free_game_id Integer Yes Unique identity of free game player_name String No Unique identity of free game ‘s unregistered player Note: Fuzzy matching is implemented Default: All players status Integer No Status of wallet of unregistered player: 0: Inactive (Cancelled) 1: Pending 2: Transferred Default: All status
34 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg- bo.me/external/FreeGame/v1/GetFreeGamePendingPlayers?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&p layer_name=player1&free_game_id=12345&status=1 Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of unregistered players in a free game JSON Array Parameter name Data type Description pendingWalletId Integer Unique identity of free game’s player’s pending wallet playerName String Unique identity of free game’s un-registered player status Integer Status of unregistered player’s wallet: 0: Inactive (Cancelled) 1: Pending 2: Transferred updatedDate Long Date of when a player is registered or re-registered into the free game (Unix time stamp in milliseconds) createdDate Long Date of when a player is registered into the free game (Unix time stamp in milliseconds) createdBy String API or BackOffice user who registered the player updatedBy String API or BackOffice user who register or re-registered player
35 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 2, "totalPage": 1, "result": [ { "pendingWalletId": 140392, "playerName": "eddywang9999", "status": 1, "createdDate": 1554351552000, "updatedDate": 1554351552000, "createdBy": "External API", "updatedBy": "External API" }, { "pendingWalletId": 140393, "playerName": "eddywang99999", "status": 1, "createdDate": 1554351682000, "updatedDate": 1554351682000, "createdBy": "External API", "updatedBy": "External API" } ] }, "error": null }
36 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.6 Get All Player Details for Free Game To get details of all players in a free game. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/GetFreeGameAllPlayers HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 free_game_id Integer Yes Unique identity of free game from_time Long Yes Time range of free games’ start time (Unix time stamp in milliseconds) to_time Long Yes Time range of free games’ end time (Unix time stamp in milliseconds) player_name String No Unique identity of free game’s unregistered player Note: Fuzzy matching is implemented Default: All players status Integer No Status of free game wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending Default: All status
37 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external/FreeGame/v1/GetFreeGameAllPlayers?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&p layer_name=player1&from_time=1346592723000&to_time=1546592723000&free_game_id=1234 5&status=1 Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of all players in a free game JSON Array Parameter name Data type Description balanceId Integer Unique identity of player’s free game wallet playerId Integer Unique identity of free game’s player playerName String Unique identity of free game’s player walletType String Type of player wallet: G: Free Game B: Bonus freeGameCount Integer Remaining free game spins available in the player's free game wallet balanceAmount Decimal Player balance of unconverted free game, or converted amount of converted free game bonusRatioAmount Decimal Wagering requirement for bonus game. Refers to the total amount that needs to be completed after the amount won in free game has been transferred to the bonus wallet bonusMinimumConversion Amount Decimal Minimum conversion amount for free game’s bonus bonusMaximumConversion Amount Decimal Maximum conversion amount for free game’s bonus freeGameMinimumConver sionAmount Decimal Minimum conversion amount for free game freeGameMaximumConver sionAmount Decimal Maximum conversion amount for free game status Integer Status of free game wallet: 0: Inactive (Cancelled)
38 PG SOFT™ Pocket Games Software www.pgsoft.com 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending expiredDate Long Expiry date of free game (Unix time stamp in milliseconds) updatedDate Long Date of when a player is registered or re-registered into the free game (Unix time stamp in milliseconds) createdDate Long Date of when a player is registered into the free game (Unix time stamp in milliseconds) createdBy String API or BackOffice user who registered the player updatedBy String API or BackOffice user who registered or re- registered the player
39 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 3, "totalPage": 1, "result": [ { "balanceId": 134242493, "playerId": 16726412, "playerName": "WTH", "walletType": "B", "balanceAmount": 1.55, "bonusRatioAmount": 0.00, "bonusMinimumConversionAmount": 1.00, "bonusMaximumConversionAmount": 100.00, "expiredDate": 1735228799000, "status": 3, "createdDate": 1735221257000, "updatedDate": 1735221281690, "updatedBy": "" }, { "balanceId": 134242490, "playerId": 16726423, "playerName": "LF", "walletType": "G", "freeGameCount": 0, "balanceAmount": 0.80, "bonusMinimumConversionAmount": 1.00, "bonusMaximumConversionAmount": 100.00, "freeGameMinimumConversionAmount": 1.00, "freeGameMaximumConversionAmount": 100.00, "expiredDate": 1735228799000, "status": 4, "createdDate": 1735220716000, "updatedDate": 1735221292233, "createdBy": "adminfy", "updatedBy": "" }, { "balanceId": 0, "playerId": 0, "playerName": "Linabell", "walletType": "G", "freeGameCount": 10, "balanceAmount": 0.00, "expiredDate": 1735228799000, "status": 8, "createdDate": 1735220460000, "updatedDate": 1735220460000 } ] }, "error": null }
40 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.7 Get Single Player Details in Free Game To get the details of a single player in a free game. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/GetPlayerFreeGames HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 player_name String Yes Unique identity of free game’s unregistered player status Integer Array No Status of free game wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending Default: All status Example: URL: https://api.pg-bo.me/external/FreeGame/v1/GetPlayerFreeGames?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&p layer_name=player1&status=1&status=2
41 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of free games of a single player JSON Array Parameter name Data type Description freeGameId Integer Unique identity free game freeGameName String Given name of free game transactionId String Unique identity of External API request when creating free games gameIds Integer Array Unique identity of games gameCount Integer Total number of given free games totalGame Integer Total number of free games that will be given to a single player balanceAmount Decimal Player balance of unconverted free game, or converted amount of converted free game minimumConversionAmount Decimal Minimum conversion amount for free game maximumConversionAmount Decimal Maximum conversion amount for free game multiplier Integer Bet multiplier of free game coinSize Decimal Coin size of free game expiredDate Long Expiry date of free game (Unix time stamp in milliseconds) createdDate Long Created date of free game (Unix time stamp in milliseconds) createdBy String API or BackOffice user who created the free game updatedBy String API or BackOffice user who updated the free game isSupressDiscard Boolean Permission to allow players to cancel offer: True: Do not allow player to cancel offer False: Allows player to cancel offer status Integer Status of free game wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending
42 PG SOFT™ Pocket Games Software www.pgsoft.com conversionType Char Type of conversion after free game is completed: C: Cash B: Bonus
43 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 2, "totalPage": 1, "result": [ { "freeGameId": 264750, "freeGameName": "FG241226", "transactionId": "123456", "gameIds": [ 1 ], "gameCount": 0, "totalGame": 10, "balanceAmount": 0.00, "multiplier": 10, "coinSize": 0.01000, "createdDate": 1735225163000, "expiredDate": 1735228631000, "status": 3, "conversionType": "B", "createdBy": "External API", "updatedBy": "", "isSuppressDiscard": false }, { "freeGameId": 264772, "freeGameName": "FG2412262", "gameIds": [ 1 ], "gameCount": 0, "totalGame": 10, "balanceAmount": 0.00, "minimumConversionAmount": 1.00, "maximumConversionAmount": 1000.00, "multiplier": 1, "coinSize": 0.03000, "createdDate": 1735227374000, "expiredDate": 1735228799000, "status": 3, "conversionType": "C", "createdBy": "adminfy", "updatedBy": "", "isSuppressDiscard": false } ] }, "error": null }
44 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.8 Create Free Game To create a new free game. Notes Only one player can be added per request. Operators planning to integrate with the Free Game API must notify PG SOFT in advance. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/CreateFreeGame HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator currency String Yes Currency of free game free_game_name String Yes Given name of free game expired_date long Yes Expire date of free game (Unix time stamp in milliseconds) bonus_minimum_conver sion_amount Decimal No* Minimum conversion amount for bonus NULL: No limit for conversion amount bonus_maximum_conver sion_amount Decimal No* Maximum conversion amount for bonus NULL: No limit for conversion amount minimum_conversion_a mount Decimal No Minimum conversion amount for free game NULL: No limit for conversion amount maximum_conversion_a mount Decimal No Maximum conversion amount for free game NULL: No limit for conversion amount bonus_type Integer No* Bonus wagering condition 0: Bonus 1: Cash 2: Bonus & Cash bonus_ratio Decimal No* Wagering requirement for bonus game. Refers to the multiple of the turnover in
45 PG SOFT™ Pocket Games Software www.pgsoft.com free game that needs to be completed after the amount won in free game has been transferred to the bonus wallet Turnover = bonus ratio x converted bonus amount conversion_type Char Yes Type of conversion after free game is completed: C: Cash B: Bonus multiplier Integer Yes Bet multiplier of free game coin_size Decimal Yes Coin size of free game game_count Integer Yes Total number of free games that will be given to each player game_ids Integer Array Yes Unique identity of games Note: Only games with same base bet are accepted is_event Boolean Yes Type of free game: True: Flexible False: Standard player_name String No Unique identity of player. System will create free game and assign to this player directly Note: Free game type will be standard mode if player_name is provided transaction_id String Yes Unique identity of transaction. Note: System will return a corresponding free game id for a duplicated transaction non_discardable Boolean No To prevent players discarding the offer: True: Not allow player to discard the offer False: Allow player to discard the offer (Default) *Only applicable for bonus conversion type
46 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external/FreeGame/v1/CreateFreeGame?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&currency=CNY&free_game_name=F reeGame2019&expired_date=1745289243000&bonus_maximum_conversion_amount=10&maximum_ conversion_amount=1&bonus_type=1&conversion_type=B&multiplier=5&coin_size=20&game_ count=20&game_ids=1&game_ids=2&is_event=true&player_name=player1&transaction_id=12 345&non_discardable=False Response Body Parameters: JSON Object Parameter name Data type Description freeGameId Integer Unique identity of free game Example: { "data": { "freeGameId ": 10915 } , "error": null } Error Response Code Message 1311 Unauthorized access
47 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.9 Create Free Game by Bet Amount To create a new free game using the desired bet amount. Notes Only one player can be added per request. Operators planning to integrate with the Free Game API must notify PG SOFT in advance. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/CreateFreeGameByBetAmount HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator currency String Yes Currency of free game free_game_name String Yes Given name of free game expired_date long Yes Expiry date of free game (Unix time stamp in milliseconds) bonus_minimum_conver sion_amount Decimal No* Minimum conversion amount for bonus NULL: No limit for conversion amount bonus_maximum_conver sion_amount Decimal No* Maximum conversion amount for bonus NULL: No limit for conversion amount minimum_conversion_a mount Decimal No Minimum conversion amount for free game NULL: No limit for conversion amount maximum_conversion_a mount Decimal No Maximum conversion amount for free game NULL: No limit for conversion amount bonus_type Integer No* Bonus wagering condition: 0: Bonus 1: Cash 2: Bonus & Cash bonus_ratio Decimal No* Wagering requirement for bonus game. Refers to the multiple of the turnover in
48 PG SOFT™ Pocket Games Software www.pgsoft.com free game that needs to be completed after the amount won in free game has been transferred to the bonus wallet Turnover = bonus ratio x converted bonus amount conversion_type Char Yes Type of conversion for after free game is completed: C: Cash B: Bonus bet_amount Decimal Yes Desired bet amount for each game. Note: System will round down to closest multiplier and coin size automatically game_count Integer Yes Total number of free games that will be given to each player game_ids Integer Array Yes Unique identity of games Note: Only games with same base bet are accepted is_event Boolean Yes Type of free game: True: Flexible False: Standard player_name String No Unique identity of player. System will create free game and assign to this player directly Note: Free game type will be standard mode if player_name is provided transaction_id String Yes Unique identity of transaction. Note: System will return a corresponding free game ID for a duplicate transaction non_discardable Boolean No To prevent players discarding the offer: True: Not allow player to discard the offer False: Allow player to discard the offer (Default) *Only applicable for bonus conversion type
49 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg- bo.me/external/FreeGame/v1/CreateFreeGameByBetAmount?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&currency=CNY&free_game_name=F reeGame2019&expired_date=1745289243000&bonus_maximum_conversion_amount=10&maximum_ conversion_amount=1&bonus_type=1&conversion_type=B&bet_amount=0.6&game_count=20&ga me_ids=1&game_ids=2&is_event=true&player_name=player1&transaction_id=12345&non_dis cardable=False Response Body Parameters: JSON Object Parameter name Data type Description freeGameId Integer Unique identity of free game Example: { "data": { "freeGameId ": 10915 } , "error": null } Error Response Code Message 1311 Unauthorized access
50 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.10 Transfer Player to Standard Free Game To add players into a standard free game. Notes Do not exceed 200 players per request. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/TransferInFreeGame HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator free_game_id Integer Yes Unique identity of free game player_names String Array Yes Unique identity of players transfer_reference String Yes Unique identity of transfer Example: URL: https://api.pg-bo.me/external/FreeGame/v1/TransferInFreeGame?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&free_game_id=12&player_names= player1&player_names=player2&transfer_reference=freegame_20181128
51 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description transactionId String Unique identity of External API request when creating free games balanceId Integer Unique identity of player’s free game wallet Note: balanceId value = 0 when status = 0 (Failed) or 2 (Pending) operatorToken String Unique identity of operator playerName String Unique identity of player currencyCode String Currency of player freeGameCount Integer Remaining free game spins available in the player's free game wallet description String Reference note for the transfer request status Integer Status of transfer request: 0: Failed 1: Successful 2: Pending (For non-existent player, free game will be assigned to the player automatically after player is created.) Example: { "data": [ { "transactionId": "141414", "balanceId": 0, "operatorToken": "token1122334455", "playerName": "Linabell", "currencyCode": "CNY", "freeGameCount": 10, "description": "", "status": 2 }, { "transactionId": "141414", "balanceId": 134242504, "operatorToken": "token1122334455", "playerName": "PYL", "currencyCode": "CNY", "freeGameCount": 10, "status": 1 } ], "error": null }
52 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.11 Transfer Player to Flexible Free Game To add players into a flexible free game. Operator can override the free game setting for a specific player. Notes Do not exceed 200 players per request. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/TransferInFlexibleFreeGame HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_free_games JSON String Array Yes The free game details that have been overridden for a single player free_game_id Integer Yes Unique identity of free game transfer_reference String Yes Unique identity of transfer allow_multiple Boolean Yes Allow players to re-register True: No. of times a player can re- register in a free game False: Player is only allowed to register once in a free game. player_free_games JSON String: Parameter name Data type Mandatory Description player_name String Yes Unique identity of player free_game_count Integer Yes Free game count that can be overridden for player Value range: Value ≥ 1 is_unlimited_bonus_maximu m_conversion_amount Bool Yes Sets bonus maximum conversion amount to unlimited
53 PG SOFT™ Pocket Games Software www.pgsoft.com is_unlimited_free_game_ma ximum_conversion_amount Bool Yes Sets free game maximum conversion amount to unlimited bonus_minimum_conversion _amount Decimal No* Bonus minimum conversion amount that can be overridden for a player Value range: Value ≥ 1 Default value: 0 Note: System will use default conversion amount if value = 0 bonus_maximum_conversion _amount Decimal No* Bonus maximum conversion amount that can be overridden for a player Value range: Value ≥ 1 Default value: 0 Note: System will use default conversion amount if value = 0 free_game_minimum_conver sion_amount Decimal No** Free game minimum conversion amount that can be overridden for a player Value range: Value ≥ 1 Default value: 0 Note: System will use default conversion amount if value = 0 free_game_maximum_conve rsion_amount Decimal No** Free game maximum conversion amount that can be overridden for a player Value range: Value ≥ 1 Default value: 0 Note: System will use default conversion amount if value = 0 description String No Reference note for the transfer request *Only applicable if is_unlimited_bonus_maximum_conversion_amount parameter value is false **Only applicable if is_unlimited_free_game_maximum_conversion_amount parameter value is false Example: URL: https://api.pg- bo.me/external/FreeGame/v1/TransferInFlexibleFreeGame?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_free_games={"player_na me":"player1","free_game_count":10,"is_unlimited_bonus_maximum_conversion_amount": false,"is_unlimited_free_game_maximum_conversion_amount":false,"bonus_maximum_conv ersion_amount":100.50,"free_game_maximum_conversion_amount":100.50,"description":" VIP"}&free_game_id=3&transfer_reference=freegame_20181128&allow_multiple=false
54 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description transactionId String Unique identity of External API transfer-in request for failed and pending players balanceId Integer Unique identity of External API transfer-in request for successful players operatorToken String Unique identity of operator playerName String Unique identity of player currencyCode String Currency of player freeGameCount Integer Remaining free game spins available in the player's free game wallet description String Reference note for the transfer request status Integer Status of transfer request: 0: Failed 1: Successful 2: Pending (For non-existent player, free game will be assigned to the player automatically after player is created.) Example: { "data": [ { "transactionId": "303030", "balanceId": 0, "operatorToken": "token1234", "playerName": "Linabell", "currencyCode": "CNY", "freeGameCount": 5, "description": "transfer in flexible free game", "status": 2 }, { "balanceId": 134243453, "operatorToken": "token1234", "playerName": "LF", "currencyCode": "CNY", "freeGameCount": 5, "status": 1 } ], "error": null }
55 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.12 Cancel Free Game To cancel a created free game. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/CancelFreeGame HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator free_game_id Uint Yes (Either one) Unique identity of free game transaction_id String Unique identity of transaction Example: URL: https://api.pg-bo.me/external/FreeGame/v1/CancelFreeGame?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&free_game_id=10919 Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Request results: False: Failed True: Successful Example: { "data": { "actionResult": true } , "error": null }
56 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.13 Cancel Free Game of a Player To cancel a free game of a specific player. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/CancelPlayerFreeGame HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of player balance_id Integer Yes Unique identity of player’s free game wallet Example: URL: https://api.pg-bo.me/external/FreeGame/v1/CancelPlayerFreeGame?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player1&balance_i d=10919
57 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Request results: False: Failed True: Successful Example: { "data": { "actionResult": true } , "error": null }
58 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.14 Cancel Free Game of an Unregistered Player To cancel a free game for a specific unregistered player. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/CancelPendingPlayerFreeGame HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator pending_wallet_id Integer Yes Unique identity of player’s free game wallet Example: URL: https://api.pg- bo.me/external/FreeGame/v1/CancelPendingPlayerFreeGame?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&pending_wallet_id=10919 Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Request results: False: Failed True: Successful Example: { "data": { "actionResult": true } , "error": null }
59 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.15 Cancel All Free Games of a Player To cancel all free games of a player. Request API URL : {PgSoftAPIDomain}/FreeGame/v1/CancelPlayerAllFreeGame HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of player free_game_id Integer Yes Unique identity of free game Example: URL: https://api.pg- bo.me/external/FreeGame/v1/CancelPlayerAllFreeGame?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player1&free_game _id=10919 Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Request results: True: Successful Example: { "data": { "actionResult": true } , "error": null }
60 PG SOFT™ Pocket Games Software www.pgsoft.com 2.2.16 Get Free Game Player Summary To get free game player summary. Request API URL : {DataGrabAPIDomain}/FreeGame/v1/GetFreeGamePlayerSummary HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator row_version Long No Updated time of data (Unix time stamp in milliseconds) Default value: 1 player_name String No Unique identity of player Default: All players row_count Integer No Number of records for each batch Note: Default value: 1 Value range: 1-5000 currency String No Currency of player Default: All currencies of player free_game_id Integer No Unique identity of free game Default: All free games Example: URL: https://api.pg-bo.me/external-datagrabber/ FreeGame/v1/GetFreeGamePlayerSummary?trace_id=b3f37e57-2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&row_version=1346592723000&pla yer_name=testplayer1&row_count=10&currency=CNY&free_game_id=12345
61 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description lastRowVersion Long Updated time of data (Unix time stamp in milliseconds) result JSON Array List of the result JSON Array Parameter name Data type Description freeGameId Ulong Unique identity of free game ID freeGameParentId Ulong Unique identity of free game parent ID playerName String Unique identity of player currencyCode String Currency of player totalFreeGame Integer Total number of given free games coinSize Decimal Bet size of game multiplier Integer Bet multiplier of free game payout Decimal Convert to cash amount of free game remainCount Integer Total number of remain free games conversionType Char Type of conversion after free game is completed: C: Cash B: Bonus status Integer Status of free game: 0: Inactive 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending createdTime Long Free game created time updatedTime Long Free game updated time
62 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "lastRowVersion": 1526371744000, "result": [ { "freeGameId": 2, "freeGameParentId": 2, "playerName": "qa1", "currencyCode": "CNY", "totalFreeGame": 1, "coinSize": 0.01, "multiplier": 10, "payout": 0.0, "remainCount": 1, "conversionType": "Bonus", "status": 0, "createdTime": 1526371189000, "updatedTime": 1526371744000 } ] }, "error": null }
63 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3 Bonus [Latest version: v1] 2.3.1 Get Bonus Game List To get the created bonus games list. Request API URL : {PgSoftAPIDomain}/Bonus/v1/GetBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 from_time Long Yes Time range of bonus games’ start time (Unix time stamp in milliseconds) to_time Long Yes bonus_id Integer No Unique identity of bonus game Default: All bonus games currency String No Currency of bonus game Default: All currencies of bonus games bonus_name String No Given name of bonus game Default: All given name of bonus games bonus_transfer_type Integer No Transfer type for bonus game: 0: Standard 3: Flexible Default: All transfer types status Integer No Status of bonus game: 0: Inactive 1: Active 2: Expired Default: All status
64 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external/Bonus/v1/GetBonus?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&f rom_time=1346592723000&to_time=1546592723000&bonus_id=12345&currency=CNY&bonus_nam e=BonusGame2019&bonus_transfer_type=1&status=1 Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of details of multiple bonus games JSON Array Parameter name Data type Description operatorToken String Unique identity of operator bonusId Integer Unique identity of bonus game bonusName String Given name of bonus game isEvent Boolean Type of bonus game: True: Flexible False: Standard gameIds Integer Array Unique identity of games amount Decimal Bonus amount to be given to a player assigned to this specific bonus currencyCode String Currency of bonus game bonusRatio Decimal Wagering requirement for bonus game. Refers to the multiple of the turnover that needs to be completed bonusRatioAmount Decimal Wagering requirement for bonus game. Refers to the total amount that needs to be completed minimumConversionAmou nt Decimal The minimum cash conversion amount of free game maximumConversionAmou nt Decimal The maximum cash conversion amount of free game bonusType Integer Bonus game wagering condition: 0: Bonus 1: Cash 2: Bonus & Cash
65 PG SOFT™ Pocket Games Software www.pgsoft.com status Integer Status of bonus game: 0: Inactive (Cancelled) 1: Active 2: Expired bonusAmountGiven Decimal Total amount of bonus given numberOfPlayers Integer Total number of players in bonus game expiredDate Long Expiry date of bonus game (Unix time stamp in milliseconds) createdDate Long Created date of bonus game (Unix time stamp in milliseconds) createdBy String API or BackOffice user who created the bonus game updatedBy String API or BackOffice user who updated the bonus game isSuppressDiscard Boolean Permission to allow players to cancel offer: True: Do not allow player to cancel offer False: Allows player to cancel offer
66 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 2, "totalPage": 1, "result": [ { "operatorToken": "token1234", "bonusId": 134219355, "bonusName": "B202412271", "bonusType": 1, "isEvent": false, "gameIds": [ 1 ], "amount": 100.00, "minimumConversionAmount": 1.00, "maximumConversionAmount": 1000.00, "currencyCode": "CNY", "bonusRatio": 1.00, "bonusRatioAmount": 100.00, "status": 1, "numberOfPlayers": 1, "bonusAmountGiven": 100.00, "expiredDate": 1735404941000, "createdDate": 1735232935000, "createdBy": "External API", "updatedBy": "External API", "isSuppressDiscard": false }, { "operatorToken": "token1234", "bonusId": 134219354, "bonusName": "B20241227", "bonusType": 2, "isEvent": false, "gameIds": [ 1368367 ], "amount": 100.00, "minimumConversionAmount": 1.00, "maximumConversionAmount": 1000.00, "currencyCode": "CNY", "bonusRatio": 1.00, "bonusRatioAmount": 100.00, "status": 1, "numberOfPlayers": 0, "bonusAmountGiven": 0.00, "expiredDate": 1735315199000, "createdDate": 1735232452000, "createdBy": "adminfy", "isSuppressDiscard": false } ] },
67 PG SOFT™ Pocket Games Software www.pgsoft.com "error": null }
68 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.2 Get List of Bonus Games Converted to Cash To get list of bonus games that have been converted to cash. Request API URL : {PgSoftAPIDomain}/Bonus/v1/GetBonusConvertedWallet HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 bonus_id Integer Yes Unique identity of bonus from_transaction_time Long Yes Time range of bonus player’s transactions (Unix time stamp in milliseconds) to_transaction_time Long Yes player_name String No Unique identity of player Note: Fuzzy matching is implemented Default: All players Example: URL: https://api.pg-bo.me/external/Bonus/v1/GetBonusConvertedWallet?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&b onus_id=12345&player_name=player1&from_transaction_time=1346592723000&to_transacti on_time=1346592723000
69 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description totalConvertedAmount Decimal Total amount that has been converted to cash through the bonus game totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of players details whose bonus game has been converted to cash JSON Array Parameter name Data type Description balanceId Integer Unique identity of player’s bonus game wallet playerName String Unique identity of player currencyCode String Currency of player gameId Integer Unique identity of game transactionAmount Decimal Converted amount of player transactionDateTime Long Time of conversion (Unix time stamp in milliseconds) betId Ulong Unique identity of the last bet for conversion Example: { "data": { "totalConvertedAmount": 100.00, "totalCount": 1, "totalPage": 1, "result": [ { "balanceId": 134242518, "playerName": "WTH", "currencyCode": "CNY", "gameId": 1, "transactionAmount": 100.00, "transactionDateTime": 1735304899020, "betId": 1872630589492953123 } ] }, "error": null }
70 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.3 Get Bonus Game Players List To get the list of registered players of a bonus game. Request API URL : {PgSoftAPIDomain}/Bonus/v1/GetBonusPlayers HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 bonus_id Integer Yes Unique identity of bonus from_time Long Yes Time range of bonus games’ start time (Unix time stamp in milliseconds) to_time Long Yes player_name String No Unique identity of bonus player Note: Fuzzy matching is implemented Default: All players status Integer No Status of bonus wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending Default: All status
71 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external/Bonus/v1/GetBonusPlayers?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&p layer_name=player1&from_time=1346592723000&to_time=1546592723000&bonus_id=12345&st atus=1 Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of players in bonus game JSON Array Parameter name Data type Description balanceId Integer Unique identity of player’s bonus wallet playerId Integer Unique identity of bonus game’s player playerName String Unique identity of bonus game’s player currencyCode String Currency of player walletType String Type of player wallet in bonus game: G: Free Game B: Bonus balanceAmount Decimal Player’s balance in bonus game bonusRatioAmount Decimal Wagering requirement for bonus game. Refers to the total amount that needs to be completed minimumConversionAmount Decimal Minimum conversion amount for bonus game maximumConversionAmount Decimal Maximum conversion amount for bonus game status Integer Status of bonus wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending expiredDate Long Expiry date of bonus game
72 PG SOFT™ Pocket Games Software www.pgsoft.com (Unix time stamp in milliseconds) updatedDate Long Date of when a player is registered or re-registered into the bonus game (Unix time stamp in milliseconds) createdDate Long createdBy String API or BackOffice user who created the bonus game updatedBy String API or BackOffice user who updated the bonus game Example: { "data": { "totalCount": 4, "totalPage": 1, "result": [ { "balanceId": 134242518, "playerId": 16726412, "playerName": "WTH", "currencyCode": "CNY", "walletType": "B", "balanceAmount": 0.00, "bonusRatioAmount": 0.00, "minimumConversionAmount": 1.00, "maximumConversionAmount": 1000.00, "expiredDate": 1735404941000, "status": 3, "createdDate": 1735304518000, "updatedDate": 1735304898999, "createdBy": "adminfy", "updatedBy": "" }, { "balanceId": 134242505, "playerId": 16726413, "playerName": "PYL", "currencyCode": "CNY", "walletType": "B", "balanceAmount": 100.00, "bonusRatioAmount": 100.00, "minimumConversionAmount": 1.00, "maximumConversionAmount": 1000.00, "expiredDate": 1735404941000, "status": 5, "createdDate": 1735232935000, "updatedDate": 1735232935344, "createdBy": "External API", "updatedBy": "" } ] }, "error": null }
73 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.4 Get List of Unregistered Players of Bonus Game To get list of unregistered players of a bonus game. Request API URL : {PgSoftAPIDomain}/Bonus/v1/GetBonusPendingPlayers HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 bonus_id Integer Yes Unique identity of bonus game player_name String No Unique identity of bonus game’s unregistered player Note: Fuzzy matching is implemented Default: All players status Integer No Status of unregistered player’s wallet: 0: Inactive (Cancelled) 1: Pending 2: Transferred Default: All status Example: URL: https://api.pg-bo.me/external/Bonus/v1/GetBonusPendingPlayers?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&p layer_name=player1&bonus_id=12345&status=1
74 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of unregistered players in a bonus game JSON Array Parameter name Data type Description pendingWalletId Integer Unique identity of unregistered player’s bonus wallet playerName String Unique identity of unregistered player in bonus game status Integer Status of unregistered player’s wallet: 0: Inactive (Cancelled) 1: Pending 2: Transferred updatedDate Long Date of when a player is registered or re-registered into the bonus game (Unix time stamp in milliseconds) createdDate Long createdBy String API or BackOffice user who registered the player updatedBy String
75 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 2, "totalPage": 1, "result": [ { "pendingWalletId": 140392, "playerName": "eddywang9999", "status": 1, "createdDate": 1554351552000, "updatedDate": 1554351552000, "createdBy": "External API", "updatedBy": "External API" }, { "pendingWalletId": 140393, "playerName": "eddywang99999", "status": 1, "createdDate": 1554351682000, "updatedDate": 1554351682000, "createdBy": "External API", "updatedBy": "External API" } ] }, "error": null }
76 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.5 Get All Player Details in Bonus Game To get the details of all players in a bonus game. Request API URL : {PgSoftAPIDomain}/Bonus/v1/GetBonusAllPlayers HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 bonus_id Integer Yes Unique identity of bonus game from_time Long Yes Time range of bonus games’ start time (Unix time stamp in milliseconds) to_time Long Yes player_name String No Unique identity of bonus game’s player Note: Fuzzy matching is implemented Default: All players status Integer No Status of bonus wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending Default: All status
77 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external/Bonus/v1/GetBonusAllPlayers?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&p layer_name=player1&from_time=1346592723000&to_time=1546592723000&bonus_id=12345&st atus=1 Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of all players in a bonus game JSON Array Parameter name Data type Description balanceId Integer Unique identity of player’s bonus wallet playerId Integer Unique identity of bonus game’s player playerName String Unique identity of bonus game’s player walletType String Type of player wallet: G: Free Game B: Bonus balanceAmount Decimal Player balance of unconverted bonus game, or converted amount of converted bonus game bonusRatioAmount Decimal Wagering requirement for bonus game. Refers to the total amount that needs to be completed MinimumConversionAmount Decimal Minimum conversion amount for bonus game MaximumConversionAmount Decimal Maximum conversion amount for bonus game status Integer Status of bonus wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending expiredDate Long Expiry date of bonus game
78 PG SOFT™ Pocket Games Software www.pgsoft.com (Unix time stamp in milliseconds) updatedDate Long Date of when a player is registered or re-registered into the bonus game (Unix time stamp in milliseconds) createdDate Long Example: { "data": { "totalCount": 2583, "totalPage": 259, "result": [ { "balanceId": 111261, "playerId": 7443, "playerName": "player1", "walletType": "B", "balanceAmount": 874.4, "bonusRatioAmount": 874.4, "MinimumConversionAmount": 0, "MaximumConversionAmount": 0, "expiredDate": 1546991999000, "status": 2, "createdDate": 1546923615000, "updatedDate": 1546991999000 }, { "balanceId": 111252, "playerId": 7443, "playerName": "player2", "walletType": "G", "balanceAmount": 8.8, "MinimumConversionAmount": 0, "MaximumConversionAmount": 0, "expiredDate": 1546991999000, "status": 6, "createdDate": 1546918715000, "updatedDate": 1547028195000 } ] }, "error": null }
79 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.6 Get Single Player Details in Bonus Game To get the details of a single player in a bonus game. Request API URL : {PgSoftAPIDomain}/Bonus/v1/GetPlayerBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 player_name String Yes Unique identity of bonus player status Integer Array No Status of bonus wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending Default: All status Example: URL: https://api.pg-bo.me/external/Bonus/v1/GetPlayerBonus?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=500&p layer_name=player1&status=1&status=1&status=2
80 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of bonus games of a single player JSON Array Parameter name Data type Description bonusId Ulong Unique identity of bonus game Note: Free game ID will be returned for bonus that have been converted from free game bonusName String Given name of bonus game transactionId String Unique identity of External API request when creating bonus games gameIds Integer Array Unique identity of games balanceAmount Decimal Player balance of unconverted bonus game, or converted amount of converted bonus game minimumConversionAmount Decimal Minimum conversion amount for bonus game maximumConversionAmount Decimal Maximum conversion amount for bonus game bonusRatioAmount Decimal Wagering requirement for bonus game. Refers to the total amount that needs to be completed bonusParentType Integer Type of bonus parent: B: Bonus game that was created normally G: Bonus game that was converted from free game status Integer Status of bonus wallet: 0: Inactive (Cancelled) 1: Active 2: Expired 3: Converted 4: Completed 5: New 6: User Cancelled 8: Pending createdDate Long Created date of bonus game (Unix time stamp in milliseconds) expiredDate Long Expiry date of bonus game (Unix time stamp in milliseconds) createdBy String
81 PG SOFT™ Pocket Games Software www.pgsoft.com updatedBy String API or BackOffice user who created or updated the bonus game isSuppressDiscard Boolean Permission to allow players to cancel offer: True: Do not allow player to cancel offer False: Allows player to cancel offer Example: { "data": { "totalCount": 13, "totalPage": 1, "result": [ { "bonusId": 134219358, "bonusName": "B202412275", "bonusParentType": "B", "gameIds": [ 1 ], "balanceAmount": 100.00, "bonusRatioAmount": 100.00, "minimumConversionAmount": 1.00, "maximumConversionAmount": 1000.00, "status": 2, "createdDate": 1735309728000, "expiredDate": 1735391760000, "createdBy": "External API", "updatedBy": "", "isSuppressDiscard": false }, { "bonusId": 134219500, "bonusName": "B202501091", "transactionId": "212121", "bonusParentType": "B", "gameIds": [ 1 ], "balanceAmount": 100.00, "bonusRatioAmount": 100.00, "minimumConversionAmount": 1.00, "maximumConversionAmount": 1000.00, "status": 5, "createdDate": 1736390130000, "expiredDate": 1736474112000, "createdBy": "External API", "updatedBy": "", "isSuppressDiscard": false }, { "bonusId": 264732, "bonusName": "FG20241226", "bonusParentType": "G", "gameIds": [
82 PG SOFT™ Pocket Games Software www.pgsoft.com 1368367 ], "balanceAmount": 0.00, "bonusRatioAmount": 0.00, "minimumConversionAmount": 1.00, "maximumConversionAmount": 100.00, "status": 3, "createdDate": 1735221257000, "expiredDate": 1735228799000, "updatedBy": "", "isSuppressDiscard": false } ] }, "error": null }
83 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.7 Create Bonus Game To create a new bonus game. Notes Only one player can be added per request. Operators planning to integrate with the Bonus Game API must notify PG SOFT in advance. Request API URL : {PgSoftAPIDomain}/Bonus/v1/CreateBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator currency String Yes Currency of bonus game bonus_name String Yes Given name of bonus game bonus_amount decimal Yes Bonus amount to be given for each player expired_date long Yes Expiry date of bonus game (Unix time stamp in milliseconds) minimum_conversion_a mount Decimal No Minimum conversion amount for bonus game NULL: No limit for conversion amount maximum_conversion_a mount Decimal No Maximum conversion amount for bonus game NULL: No limit for conversion amount bonus_type Integer Yes Bonus game wagering condition: 0: Bonus 1: Cash 2: Bonus & Cash bonus_ratio Decimal Yes Wagering requirement for bonus game. Refers to the multiple of the turnover that needs to be completed Turnover = bonus ratio x bonus amount
84 PG SOFT™ Pocket Games Software www.pgsoft.com game_ids Integer Array Yes Unique identity of games Note: Only games with same base bet are accepted is_event Boolean Yes Type of bonus game: True: Flexible False: Standard player_name String No Unique identity of player. System will create bonus game and assign to this player directly Note: Free game type will be standard mode if player_name is provided transaction_id String Yes Unique identity of transaction. Note: System will return a corresponding bonus ID for a duplicated transaction non_discardable Boolean No To prevent players discarding the offer: True: Not allow player to discard the offer False: Allow player to discard the offer (Default) Example: URL: https://api.pg-bo.me/external/Bonus/v1/CreateBonus?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&currency=CNY&bonus_name=Bonus 2019&bonus_amount=100.00&expired_date=1745289243000&maximum_conversion_amount=1&bo nus_type=1&bonus_ratio=1&game_ids=1&game_ids=2&is_event=true&player_name=player1& transaction_id=12345&non_discardable=False Response Body Parameters: JSON Object Parameter name Data type Description bonusId Integer Unique identity of bonus game Example: { "data": { "bonusId ": 10915 } , "error": null }
85 PG SOFT™ Pocket Games Software www.pgsoft.com Error Response Code Message 1311 Unauthorized access
86 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.8 Transfer Player to Standard Bonus Game To add players into a created standard bonus game. Operator can only transfer players into a pre-set bonus game. Notes Do not exceed 200 players per request. Request API URL : {PgSoftAPIDomain}/Bonus/v1/TransferInBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator bonus_id Integer Yes Unique identity of bonus game player_names String Array Yes Unique identity of players transfer_reference String Yes Unique identity of transfer Example: URL: https://api.pg-bo.me/external/Bonus/v1/TransferInBonus?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&bonus_id=12&player_names=play er1&player_names=player2&transfer_reference=bonusgame_20181128
87 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description transactionId String Unique identity of External API request when creating bonus games balanceId Integer Unique identity of player’s bonus wallet operatorToken String Unique identity of operator playerName String Unique identity of player currencyCode String Currency of player bonusAmount Decimal Bonus amount to be given to a player assigned to this specific bonus description String Reference note for the transfer request status Integer Status of transfer request: 0: Failed 1: Successful 2: Pending (For non-existent player, bonus game will be assigned to the player automatically after player is created.) Example: { "data": [ { "transactionId": "212121", "balanceId": 0, "operatorToken": "token123", "playerName": "Linabell", "currencyCode": "CNY", "bonusAmount": 100.00, "description": "", "status": 2 }, { "transactionId": "212121", "balanceId": 134243099, "operatorToken": "token123", "playerName": "WTH", "currencyCode": "CNY", "bonusAmount": 100.00, "description": "", "status": 1 } ], "error": null }
88 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.9 Transfer Player to Flexible Bonus Game To add players into a created flexible bonus game. Operator can override bonus game setting for a specific player. Notes Do not exceed 200 players per request. Request API URL : {PgSoftAPIDomain}/Bonus/v1/TransferInFlexibleBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_bonuses JSON String Array Yes Overridden default bonus game’s information for players bonus _id Integer Yes Unique identity of bonus game transfer_reference String Yes Unique identity of transfer allow_multiple Boolean Yes True: No. of times a player can re- register in a bonus game False: Player is only allowed to register once in a bonus game. player_bonuses JSON String: Parameter name Data type Mandatory Description player_name String Yes Unique identity of player bonus_amount Integer Yes Custom bonus amount for player Value range: Value ≥ 1 is_unlimited_bonus_maxi mum_conversion_amoun t Boolean Yes Sets bonus game’s maximum conversion amount to unlimited bonus_minimum_conver sion_amount Decimal No* Custom bonus game’s minimum conversion amount for player
89 PG SOFT™ Pocket Games Software www.pgsoft.com Value range: Value ≥ 1 Default value: 0 Note: System will use default conversion amount if value = 0 bonus_maximum_conver sion_amount Decimal No* Custom bonus game’s maximum conversion amount for player Value range: Value ≥ 1 Default value: 0 Note: System will use default conversion amount if value = 0 description String No Reference note for the transfer request *Only applicable if is_unlimited_bonus_maximum_conversion_amount parameter value is false Example: URL: https://api.pg-bo.me/external/Bonus/v1/TransferInFlexibleBonus?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_bonuses={"player_name" :"player1","bonus_amount":10,"is_unlimited_bonus_maximum_conversion_amount":false, "bonus_maximum_conversion_amount":100.50,"description":"VIP"}&bonus_id=3&transfer_ reference=bonusgame_20181128&allow_multiple=false
90 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description transactionId String Unique identity of External API transfer-in request for failed and pending players balanceId Integer Unique identity of External API transfer-in request for successful players operatorToken String Unique identity of operator playerName String Unique identity of player currencyCode String Currency of player bonusAmount Decimal Bonus amount to be given to a player assigned to this specific bonus status Integer Status of transfer request: 0: Failed 1: Successful 2: Pending (For non-existent player, bonus game will be assigned to the player automatically after player is created) Example: { "data": [ { "balanceId": 100091443, "operatorToken": "operator1", "playerName": "LF", "currencyCode": "CNY", "bonusAmount": 2000.00, "description": " Transfer to Flex Bonus", "status": 1 }, { "balanceId": 0, "operatorToken": "operator1", "playerName": "Linabell", "currencyCode": "CNY", "bonusAmount": 2000.00, "description": "Transfer to Flex Bonus", "status": 2 } ], "error": null }
91 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.10 Cancel Bonus Game To cancel a created bonus game. Request API URL : {PgSoftAPIDomain}/Bonus/v1/CancelBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator bonus _id Uint Yes Unique identity of bonus game Example: URL: https://api.pg-bo.me/external/Bonus/v1/CancelBonus?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&bonus_id=10919 Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Request results: False: Failed True: Successful Example: { "data": { "actionResult": true } , "error": null }
92 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.11 Cancel Bonus Games of Registered Player To cancel a bonus game of a specific registered player. Request API URL : {PgSoftAPIDomain}/Bonus/v1/CancelPlayerBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of player balance_id Integer Yes Unique identity of player’s bonus wallet Example: URL: https://api.pg-bo.me/external/Bonus/v1/CancelPlayerBonus?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player1&balance_i d=10919 Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Request results: False: Failed True: Successful Example: { "data": { "actionResult": true } , "error": null }
93 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.12 Cancel Bonus Game of Unregistered Player To cancel a bonus game of a specific unregistered player. Request API URL : {PgSoftAPIDomain}/Bonus/v1/CancelPendingPlayerBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator pending_wallet_id Integer Yes Unique identity of player’s bonus wallet Example: URL: https://api.pg-bo.me/external/Bonus/v1/CancelPendingPlayerBonus?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&pending_wallet_id=10919 Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Request results: False: Failed True: Succesful Example: { "data": { "actionResult": true } , "error": null }
94 PG SOFT™ Pocket Games Software www.pgsoft.com 2.3.13 Cancel All Bonus Games of a Player To cancel all bonus games of a player. Request API URL : {PgSoftAPIDomain}/Bonus/v1/CancelPlayerAllBonus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of player bonus_id Integer Yes Unique identity of bonus game Example: URL: https://api.pg-bo.me/external/Bonus/v1/CancelPlayerAllBonus?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player1&bonus_id= 10919 Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Request results: False: Failed True: Successful Example: { "data": { "actionResult": true } , "error": null }
95 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4 Tournament [Latest version: v2] 2.4.1 Get Tournaments List To get a list of tournaments. Request API URL : {PgSoftAPIDomain}/Tournament/v2/GetTournaments HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator from_created_time Long Yes* Time range of tournament’s start time and end time (Unix time stamp in milliseconds) to_created_time start_time end_time status Integer Array No Status of tournament: 0: Cancel 1: InProgress 2: New 3: End Default: All status game_ids Integer Array No Unique identity of games Default: All games language String No Response language for tournament information: en-US: English (Default) zh-CN: Chinese currency string No Currency used in the tournament: Default: All currencies used in the tournament
96 PG SOFT™ Pocket Games Software www.pgsoft.com *Either from_created_time and to_created_time parameters or start_time and end_time parameters Example: URL: https://api.pg-bo.me/external/Tournament/v2/GetTournaments?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&status=1&status=2&game_ids=1& game_ids=2&language=zh- cn&start_time=1559145500000&end_time=1559145600000&currency=CNY&from_created_time= 1559145500000&to_created_time=1559145600000 Response Body Parameters: JSON Array Parameter name Data type Description tournamentKey String Unique key of tournament tournamentId Long Unique identity of tournament subTournamentId Long Unique identity of Sub-Tournament name String Name of tournament description String Description of tournament registrationFees String Registration fee of tournament prize_type Integer Type of Tournament prize 0: Item prize 1: Cash prize prize String Array Prizes of tournament registrationUrl String Registration URL of tournament hasSubTournaments Boolean To indicate if Sub-Tournament exists subTournamentStatus Decimal Status of Sub-Tournament subTournamentStartTime Long Start time of Sub-Tournament (Unix time stamp in milliseconds) subTournamentEndTime Long End time of Sub-Tournament (Unix time stamp in milliseconds) numberOfPlayers Integer Number of participants in tournament initialPoint Decimal Initial balance of tournament qualifiedPoint Decimal Points needed for tournament player to enter the leaderboard gameMode Integer Tournament mode: 1: Accumulation 2: Depletion 3: Hybrid (Accumulation + Depletion) rankStatus Integer Tournament leaderboard status:
97 PG SOFT™ Pocket Games Software www.pgsoft.com 0: Disabled 1: Enabled 2: Cut off (Tournament rank had been finalized) status Integer Status of Tournament: 0: Cancel 1: InProgress 2: New 3: End startTime Long Start time of tournament (Unix time stamp in milliseconds) endTime Long End time of tournament (Unix time stamp in milliseconds) createdTime Long Created time or updated time of tournament (Unix time stamp in milliseconds) updatedTime Long isCashMode Boolean Tournament Mode: Cash Tournament Point Tournament isRequiredRegister Boolean To allow players to join the tournament manually or automatically group String Array List of Currency gameIds Uint Array List of game IDs turnOverLimit Decimal Points required for players to join the tournament (total amount the player has bet or spent) createdBy String API or BackOffice user who created tournament operatorInfos JSON Array Operator details operatorInfos JSON Array Parameter name Data type Description operatorName String Name of operator operatorToken String Unique identity of operator group String Array Currency list createdTime Long Created time of tournament updatedTime Long Last updated time of tournament createdBy String Creator of tournament updatedBy String Last update source of tournament
98 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": [{ "tournamentKey": "1857-2270-0_P", "tournamentId": 1857, "name": "Point Testing", "operatorToken": "a**d", "description": "", "gameIds": [ 94 ], "registrationFees": "", "prizeType": 0, "prize": { "winnerPrizeDetails": [ { "positionTo": 1, "item": "3" }, { "positionTo": 2, "item": "2" }, { "positionTo": 3, "item": "1" } ] }, "registrationUrl": "", "hasSubTournaments": false, "numberOfPlayers": 1, "initialPoint": 1.00000, "qualifiedPoint": 2.00000, "turnoverLimit": 1.0, "gameMode": 1, "rankStatus": 2, "isCashMode": false, "status": 3, "startTime": 1607558400000, "endTime": 1607644799000, "subTournamentId": 2270, "subTournamentStatus": 3, "subTournamentStartTime": 1607558400000, "subTournamentEndTime": 1607644799000, "createdTime": 1607569038000, "updatedTime": 1607569038000, "createdBy": "ExternalAPI", "isRequiredRegister": false },
99 PG SOFT™ Pocket Games Software www.pgsoft.com { "tournamentKey": "1859-2272-0_P", "tournamentId": 1859, "name": "TournamentName", "operatorToken": "a**d", "description": "TournamentDesc", "group": [ "JPY" ], "gameIds": [ 1, 2 ], "registrationFees": "RegistrationFees", "prizeType": 0, "prize": { "winnerPrizeDetails": [ { "positionTo": 1, "item": "1st prize" }, { "positionTo": 3, "item": "2rd prize" }, { "positionTo": 10, "item": "3rd prize" } ] }, "registrationUrl": "RegistrationUrl", "hasSubTournaments": false, "numberOfPlayers": 0, "initialPoint": 200.00000, "qualifiedPoint": 200.00000, "turnoverLimit": 0.0, "gameMode": 1, "rankStatus": 2, "isCashMode": false, "status": 3, "startTime": 1607644800000, "endTime": 1607731200000, "subTournamentId": 2272, "subTournamentStatus": 3, "subTournamentStartTime": 1607644800000, "subTournamentEndTime": 1607731200000, "createdTime": 1607680643000, "updatedTime": 1607680643000, "createdBy": "External API", "isRequiredRegister": false }], "error": null }
100 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.2 Get Tournament Players List To get list of tournament players. Request API URL : {PgSoftAPIDomain}/Tournament/v2/GetTournamentPlayersAsync HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator sub_tournament_id Integer Yes Unique identity of Sub-Tournament page_number Integer Yes Batch number of data return row_count Integer Yes Number of records for each batch Note: Value range 1-5000 player_names String No Unique identity of tournament players Default: All tournament players from_created_time Long No Time range of when players were added into a tournament. (Unix time stamp in milliseconds) to_created_time Long No Example: URL: https://api.pg- bo.me/external/Tournament/v2/GetTournamentPlayersAsync?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&page_number=1&row_count=1000& sub_tournament_id=1460&player_names=qafmcny18&from_created_time=1559145500000&to_c reated_time=1559145600000
101 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPage Integer Total number of available batches result JSON Array List of players in tournament JSON Array Parameter name Data type Description operatorToken String Unique identity of operator tournamentPlayerId String Unique identity of tournament player playerName String Unique identity of player balanceAmount Decimal Remaining balance of a player in tournament (Data will be retained for a period of 90 days) point Decimal Total points won by player in tournament remainingRevive Integer Remaining times to revive in tournament remainingRegister Integer Remaining times to re-register in tournament createdTime Long Time when player was added into tournament (Unix time stamp in milliseconds) updatedTime Long Time of when tournament player’s information was updated (Unix time stamp in milliseconds) createdBy String API or BackOffice user who registered the player into the tournament
102 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 1, "result": [ { "tournamentPlayerId": 0-456, "operatorToken": "1234", "playerName": "qafmcny18", "balanceAmount": 96, "point": 544.05, "remainingRevive": 0, "remainingRegister": 9, "createdTime": 1561640502000, "updatedTime": 1561640502000, "createdBy": "mei" }, { "tournamentPlayerId": 0-456, "operatorToken": "1234", "playerName": "qafmcny19", "balanceAmount": 96, "point": 544.05, "remainingRevive": 0, "remainingRegister": 9, "createdTime": 1561640502000, "updatedTime": 1561640502000, "createdBy": "mei" } ], "totalPage": 1 }, "error": null }
103 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.3 Get Tournament Top Rankings To get tournament top rankings. Request API URL : {PgSoftAPIDomain}/Tournament/v2/GetTournamentTopRankingsAsync HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator tournament_id Long Yes Unique identity of tournament count Integer Yes Records count of rankings Note: Value range 1-5000 player_name String No Unique identity of player Default: All player Example: URL: https://api.pg- bo.me/external/Tournament/v2/GetTournamentTopRankingsAsync?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&tournament_id=41&count=10&pla yer_name=player1 Response Body Parameters: JSON Object Parameter name Data type Description top_ranking JSON Array List of tournament’s top rankings
104 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description operatorToken Integer Unique identity of operator tournamentPlayerId String Unique identity of tournament player playerName String Unique identity of player point Decimal Total points won by player in tournament totalSpendPoint Decimal Total points spent by player previousRank Integer Previous ranking of player rank Integer Current ranking of player lastUpdatedOn Long Last updated time of leader board (Unix time stamp in milliseconds) IsRankingQualifiedPlayer Boolean To identify if a player is qualified to join the tournament Example: { "data":{ "top_ranking": [ { "tournamentPlayerId": 0-456, "operatorToken": "1234", "playerName": "player1", "point": 30360.98, "totalSpendPoint": 69376.8, "previousRank": 1, "rank": 1, "lastUpdatedOn": 1540380199000, "IsRankingQualifiedPlayer": true }, { "tournamentPlayerId": 0-457, "operatorToken": "1234", "playerName": "player2", "point": 10000.74, "totalSpendPoint": 33, "previousRank": 2, "rank": 2, "lastUpdatedOn": 1540380199000 "IsRankingQualifiedPlayer": true } ] }, "error": null }
105 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.4 Register Tournament Players To add multiple players into a tournament. Request API URL : {PgSoftAPIDomain}/Tournament/v2/CreateTournamentPlayersAsync HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator tournament_id Long Yes Unique identity of tournament Note: Please create tournament through PG SOFT BackOffice player_names String Array Yes Unique identity of player allow_re-register Boolean Yes To allow player to re-register to the same tournament: True: Allow False: Disallow Example: URL: https://api.pg- bo.me/external/Tournament/v2/CreateTournamentPlayersAsync?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&tournament_id=41&player_names =player1&player_names=player2&allow_re-register=true
106 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description operatorToken Integer Unique identity of operator tournamentPlayerId String Unique identity of tournament player playerName String Unique identity of player balanceAmount Integer Initial points in player balance (Data will be retained for a period of 90 days) registerAllowed Integer Number of times allowed to re-register in tournament reviveAllowed Integer Number of times allowed to revive in tournament status Integer Status of Tournament Player: 0: Duplicated 1: Successful 3: Registration limit exceeded 4: Invalid Player tournamentKey String Unique key of tournament
107 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "tournamentKey": "1855-2266-833649_P", "tournamentPlayerId": 0-456, "operatorToken": "1234", "playerName": " player1", "balanceAmount": 10000, "registerAllowed": 98, "reviveAllowed": 3, "status": 1 }, { "tournamentKey": "1865-2266-833649_P", "tournamentPlayerId": 0-457, "operatorToken": "1234", "playerName": " player1", "balanceAmount": 10000, "registerAllowed": 98, "reviveAllowed": 3, "status": 1 }, { "tournamentKey": "1866-2266-833649_P", "tournamentPlayerId": 0-458, "operatorToken": "1234", "playerName": " player2", "balanceAmount": 10000, "registerAllowed": 98, "reviveAllowed": 3, "status": 1 } ], "error": null }
108 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.5 Get Tournament Cash Prize Reward List To get cash prize reward list of the tournament. Request API URL : {PgSoftAPIDomain}/Tournament/v2/GetTournamentAutoRewardCashPrize HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator start_time Long Yes Time range of record’s start time and end time (Unix time stamp in milliseconds) Note: Value range 1 day - 14 days end_time Long Yes status Integer Yes Reward status 1: Receive reward successfully 0: Failed to receive reward tournament_ids Array Yes Unique identity of tournament Note: Max 100 tournament IDs transaction_id Long No Unique identity of reward transaction Default: All reward transaction player_name String No Unique identity of tournament players Default: All tournament players currency String No Currency used in tournament Default: All currencies used in tournament page_number Integer No Batch number of data return Default value: 1 row_count Integer No Number of records for each batch Default value: 5000
109 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg- bo.me/external/Tournament/v2/GetTournamentAutoRewardCashPrize?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&start_time=1559145500000&end_ time=1559145600000&status=1&tournament_ids=175&tournament_ids=184 Response Body Parameters: JSON Array Parameter name Data type Description totalCount Integer Total number of tournament records totalPage Integer Total pages of tournament result result JSON Array List of winners in tournament result JSON Array Parameter name Data type Description tournamentId Integer Unique identity of tournament currency string Currency used in the tournament winners JSON Array List of winners in tournament winners JSON Array Parameter name Data type Description transactionId Long Unique identity of reward transaction transactionTime Long Time of reward transaction (Unix time stamp in milliseconds) tournamentPlayerId String Unique identity of tournament player playerName String Unique identity of player rank Integer Player ranking of tournament adjustmentAmount Decimal Reward amount of player in tournament message String Error message will pop up if there is an error
110 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "totalCount": 3, "result": [ { "tournamentId": 175, "currency": "CNY", "winners": [ { "transactionId": 27021004, "transactionTime": 1599811942000, "tournamentPlayerId": 0-456, "playerName": "calven77407A5275", "rank": 2, "adjustmentAmount": 20000.00000, } ] }, { "tournamentId": 184, "currency": "CNY", "winners": [ { "transactionId": 27021007, "transactionTime": 1599811943000, "tournamentPlayerId": 0-457, "playerName": "JiaXiangHong", "rank": 1, "adjustmentAmount": 200.00000 }, { "transactionId": 27021008, "transactionTime": 1599811943000, "tournamentPlayerId": 0-458, "playerName": "dong", "rank": 2, "adjustmentAmount": 100.00000 } ] } ], "totalPage": 1 }, "error": null }
111 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.6 Create Tournament To create a tournament. Notes Operators planning to integrate with the Point Tournament, Cash Tournament or Global Tournament API must notify PG SOFT in advance. Request API URL : {PgSoftAPIDomain}/Tournament/v2/CreateTournament HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description tournament_info JSON Array Yes Tournament Info has_sub_tournaments Boolean Yes To identify if the tournament has Sub-Tournaments game_mode Uint Yes Point Tournament: 1: Accumulation 2: Depletion 3: Hybrid Cash Tournament: 4: Profit Percentage 5: Win Percentage 6: Profit Amount 7: Win Amount 8: Win count 9: Spin Count 10: Total Bet qualified_point Decimal Yes Required points for ranks initial_point Decimal Yes Initial points for tournament (only for point tournament) game_ids Uint Array Yes Game for tournament currency String Array Yes Currency used in the tournament start_time Long Yes Tournament start time
112 PG SOFT™ Pocket Games Software www.pgsoft.com end_time Long Yes Tournament end time operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator participant_tokens String Array Yes Unique identity of operator maximum_revive_allowed Uint No Maximum number of times to re-play tournament maximum_register_allowe d Uint No Maximum number of times to re-register tournament sub_tournament_info JSON Array Depends on has_sub_tourn ament Sub-Tournament information number_of_player_limit Uint No Maximum number of players to register tournament minimum_bet_amount Decimal No Minimum bet amount to register for the tournament minimum_bet_count Uint No Minimum number of bet count to register tournament leaderboard_player Uint Yes Number of players to show in the leaderboard player_multiplier Uint No Win multipliers for all players in the tournament required_register Boolean No Allows players to manually register for current tournament: 0: Do not require players to manually register for current tournament (Default) 1: Requires players to manually register for current tournament tournament_info JSON Array Parameter name Data type Description language String Tournament Language info JSON Array Tournament Information Info JSON Array Parameter name Data type Description name String Name of the Tournament prize_currency String Currency of the prize (for cash tournament/global tournament) description String Additional description
113 PG SOFT™ Pocket Games Software www.pgsoft.com rules String Rules for the Tournament winning_criteria String Winning Requirements registration_fees String Registration fees of Tournament registration_url String Tournament registration URL prize_type Uint Type of Tournament prize 0: Item prize 1: Cash prize Note: Cash prize will automatically be transferred to the player’s wallet after the tournament ends prize JSON Array Prize information prize JSON Array Parameter name Data type Description winner_prize_details JSON Array Winner prize information winner_prize_details JSON Array Parameter name Data type Description position_to Integer Range of the number of prize winners. Example: 3 = the current prize would be for 1 st to 3 rd winners. item String Prize Item Note: Cash prize will be given based on the currency base rate of the game sub_tournament_info JSON Array Parameter name Data type Description game_ids Uint Array Sub-Tournament Game IDs start_time Long Sub-Tournament Start Time end_time Long Sub-Tournament End Time Example: URL: https://api.pg-bo.me/external/Tournament/v2/CreateTournament?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: tournament_info={"language":"fi- FI","info":{"name":"TournamentName" ,"prize_currency":"CNY","description":"Tournam entDesc","rules":"TournamentRules","winning_criteria":"WinningCriteria","registrat ion_fees":"RegistrationFees","registration_url":"RegistrationUrl","prize_type":0," prize":{"winner_prize_details":[{"position_to":1,"item":"1st prize"},{"position_to":3,"item":"2rd prize"},{"position_to":10,"item":"3rd prize"}]}}}&sub_tournament_info={"game_ids":[1,2,3],"start_time":1613623305000,"en d_time":1613796105000}&has_sub_tournaments=true&start_time=1613623305000&end_time= 1613796105000&currency=JPY&qualified_point=200&initial_point=199&game_mode=1&game_
114 PG SOFT™ Pocket Games Software www.pgsoft.com ids=1&game_ids=2&operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&participant_ tokens=abc123&participant_tokens=abc123&maximum_revive_allowed=10&maximum_register _allowed=10&number_of_player_limit=10&minimum_bet_amount=3.1&minimum_bet_count=5&l eaderboard_player=100&player_multiplier=2&required_register=true Response Body Parameters: Parameter name Data type Description tournamentId Uint Create Tournament ID Example: { "data": { "tournamentId": 1859 }, "error": null } Error Response Code Message 1311 Unauthorized access
115 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.7 Update Tournament To update a tournament. Request API URL : {PgSoftAPIDomain}/Tournament/v2/UpdateTournament HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description tournament_id Integer Yes Unique identity of tournament start_time Long Yes Tournament start time end_time Long Yes Tournament end time qualified_point Decimal Yes Required points for ranks game_ids Integer Array Yes Games for tournament currency String Array Yes List of Tournament currency number_of_player_limit Integer No Maximum number of players to register tournament operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator Example: URL: https://api.pg-bo.me/external/Tournament/v2/UpdateTournament?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: tournament_id=1757&start_time=1604016000000&end_time=1604102400000&qualified_point =9639&game_ids=2&game_ids=1&currency=JPY&currency=CNY&number_of_player_limit=9639& operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl
116 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: Parameter name Data type Description data Boolean Update status Example: { "data": true, "error": null }
117 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.8 Update Sub-Tournament Information To update a Sub-Tournament’s information. Request API URL : {PgSoftAPIDomain}/Tournament/v2/UpdateSubTournament HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description tournament_id Uint Yes Unique identity of tournament sub_tournament_info JSON Array Yes Sub-Tournament information operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator participant_tokens String Array Yes Unique identity of operator sub_tournament_info JSON Array Parameter name Data type Description sub_tournament_id Uint Unique identity of sub tournament Interval_start_time Long Sub-Tournament Start / End Time (must be within start /end time of the Main Tournament) Interval_end_time Long game_ids Uint Array Sub-Tournament games Example: URL: https://api.pg- bo.me/external/Tournament/v2/UpdateSubTournament?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: tournament_id=1859&operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&sub_tourna ment_info:{"sub_tournament_id":1737,"interval_start_time":1604016000000,"interval_ end_time":1604102400000,"game_ids":[1,2]}&participant_tokens=abc123&participant_to kens=abc124
118 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: Parameter name Data type Description data Boolean Update status Example: { "data": true, "error": null }
119 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.9 Get Tournament Information To get a tournament’s information. Request API URL : {PgSoftAPIDomain}/Tournament/v2/GetTournamentInfoLanguageByTournamentId HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description tournament_id Uint Yes Unique identity of tournament operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator Example: URL: https://api.pg- bo.me/external/Tournament/v2/GetTournamentInfoLanguageByTournamentId?trace_id=b3f3 7e57-2873-40b1-aa95-f126c25ed311 Body: tournament_id=1845&operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl Response Body Parameters: Parameter name Data type Description tournamentInfoId Uint Unique identity of tournament info id language String Tournament supported language name String Name of the Tournament description String Additional description rules String Rules for the Tournament winningCriteria String Winning Requirements registrationFees String Registration fees of Tournament registrationUrl String Tournament registration URL prizeType Uint Type of tournament prize 0: Item prize 1: Cash prize prize JSON Array Tournament winner prize details
120 PG SOFT™ Pocket Games Software www.pgsoft.com createdTime Long Tournament created time updatedTime Long Tournament updated time createdBy String API or BackOffice user who registered the player into the Tournament updatedBy String API or Backoffice user who updated the Tournament Example: { "data": [ { "tournamentInfoId": 1876, "language": "ja-JA", "name": "ILName", "description": "ILDesc", "rules": "ILRules", "winningCriteria": "ILWinningCt", "registrationFees": "ILRegistrationFees", "registrationUrl": "ILRegistrationUrl", "prizeType": 1, "prize": { "winnerPrizeDetails": { "1": { "positionFrom": 1, "positionTo": 1, "item": "myItem" }, "2": { "positionFrom": 2, "positionTo": 2, "item": "myItem2" }, "3": { "positionFrom": 3, "positionTo": 3, "item": "myItem3" } } }, "createdTime": 1606969557000, "updatedTime": 1607315386000, "createdBy": "External API", "updatedBy": "External API" } ], "error": null }
121 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.10 Create Tournament Information To create a tournament’s information. Request API URL : {PgSoftAPIDomain}/Tournament/v2/CreateTournamentInfoLanguage HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator participant_tokens String Array Yes Unique identity of operator tournament_id Uint Yes Unique identity of tournament name String Yes Name of the Tournament language String Yes Tournament supported languages description String No Additional description rules String No Rules for the Tournament winning_criteria String No Winning Requirements registration_fees String No Registration fees of Tournament registration_url String No Tournament registration URL prize JSON Array No Tournament prize prize JSON Array Parameter name Data type Description winner_prize_details JSON Array Tournament winner’s prize prize JSON Array Parameter name Data type Description position_to Integer Range of the number of prize winners. Example: 3 = the current prize would be for 1 st to 3 rd winners. item String Prize Item
122 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg- bo.me/external/Tournament/v2/CreateTournamentInfoLanguage?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&tournament_id=1845&name=InfoL anguageName&language=ja- JA&description=XXX&rules=XXX&winning_criteria=XXX&registration_fees=XXX&registrati on_url=XXX&prize:{"winner_prize_details":[{"position_to":1,"item":"myItem"},{"posi tion_to":2,"item":"myItem2"},{"position_to":3,"item":"myItem3"}]}&participant_toke ns=abc123&participant_tokens=abc123 Response Body Parameters: Parameter name Data type Description tournamentInfoId Uint Unique identity of tournament info Example: { "data": 1895, "error": null }
123 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.11 Update Tournament Information To update an existing tournament’s information. Request API URL : {PgSoftAPIDomain}/Tournament/v2/UpdateTournamentInfoLanguage HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description tournament_id Uint Yes Unique identity of tournament tournament_info_id String Yes Unique identity of tournament info name String Yes Name of the Tournament language String Yes Tournament supported language description String No Additional description rules String No Rules for the Tournament winning_criteria String No Winning Requirements registration_fees String No Registration fees of Tournament registration_url String No Tournament registration URL prize JSON Array No Tournament prize operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator participant_tokens String Array Yes Unique identity of operator prize JSON Array Parameter name Data type Description winner_prize_details JSON Array Tournament winner’s prize prize JSON Array Parameter name Data type Description position_to Integer Range of the number of prize winners. Example: 3 = the current prize would be for 1 st to 3 rd winners. item String Prize Item
124 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg- bo.me/external/Tournament/v2/UpdateTournamentInfoLanguage?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&tournament_id=1845&tournament _info_id=1876&name=ILName&language=ja- JA&description=ILDesc&rules=ILRules&winning_criteria=ILWinningCt&registration_fees =ILRegistrationFees&registration_url=ILRegistrationUrl&prize:{"winner_prize_detail s":[{"position_to":1,"item":"myItem"},{"position_to":2,"item":"myItem2"},{"positio n_to":3,"item":"myItem3"}]}&participant_tokens=abc123&participant_tokens=abc123 Response Body Parameters: Parameter name Data type Description data Boolean Update status Example: { "data": true, "error": null }
125 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.12 Delete Tournament Information To delete a specific information from a tournament. Request API URL : {PgSoftAPIDomain}/Tournament/v2/DeleteTournamentInfoLanguage HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description tournament_id Uint Yes Unique identity of tournament tournament_info_id String Yes Unique identity of tournament info id operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator Example: URL: https://api.pg- bo.me/external/Tournament/v2/DeleteTournamentInfoLanguage?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: tournament_id=1845&tournament_info_id=1875&operator_token=abc123&secret_key=a1b25c de5f3gh46ijkl Response Body Parameters: Parameter name Data type Description data Boolean Update status Example: { "data": true, "error": null }
126 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.13 Remove a Tournament Player To remove a Tournament player and their progress. Request API URL : {PgSoftAPIDomain}/Tournament/v2/CancelTournamentPlayer HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description tournament_player_id String Yes Unique identity of tournament player id operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator Example: URL: https://api.pg- bo.me/external/Tournament/v2/CancelTournamentPlayer?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: tournament_player_id=843662&operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl Response Body Parameters: Parameter name Data type Description data Boolean Remove player status Example: { "data": true, "error": null }
127 PG SOFT™ Pocket Games Software www.pgsoft.com 2.4.14 Revive Players To reset the tournament progress for a specific player. Request API URL : {PgSoftAPIDomain}/Tournament/v2/RevivePlayers HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description player_name String Yes Unique identity of player name sub_tournament_id Uint Yes Unique identity of Sub- Tournament operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator Example: URL: https://api.pg-bo.me/external/Tournament/v2/RevivePlayers?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: tournament_player_id=843662&operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl
128 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: Parameter name Data type Description tournamentKey String Unique key of tournament tournamentPlayerId String Unique identity of tournament player ID operatorToken String Unique identity of operator playerName String Unique identity of player name balanceAmount Decimal Amount given to player when revived (Data will be retained for a period of 90 days) registerAllowed Integer Numbers of times a player is allowed to re-register for the tournament reviveAllowed Integer Numbers of times a player is allowed to be revived in a tournament Example: { "data": { "tournamentKey": "1870-2283-843667_P", "tournamentPlayerId": 0-456, "operatorToken": "a**d", "playerName": "hltestdev", "balanceAmount": 200.00000, "registerAllowed": 9, "reviveAllowed": 9 }, "error": null }
129 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5 Bet History [Latest version: v4] PG SOFT provides APIs to get various types of bet history data. Please take note that API data will be only available within 3-5 minutes after each spin. Only bets with a completed status will be provided. Operator may check through PG SOFT Back Office for pending and failed bets. Notes External Bet History API is a dedicated API which using standalone URL: {DataGrabAPIDomain}
130 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.1 Get History To get bet history. Notes Operator can retrieve the bet history for the last 60 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. PG SOFT may re-push data by renewing the data row version. Operator is required to identify and update duplicated data by betId. Data row version cannot be a unique value. Operators are required to grab at least 1500 records for every request. Steps Step 1: In the very first GetHistory API call, set row_version = 1. Step 2: Save the maximum rowVersion in each data grabbing request call. Step 3: In the subsequence calls, set the row_version value to the saved rowVersion in Step 2. Repeat step 2 and 3 until records returned are lesser than the required count (e.g.: 1500 records per request). If the number of records returned are less than the required count, stop, and wait for a time interval (recommended 5 minutes) for the next API call. Identify duplicate records by checking duplicate betId in each call.
131 PG SOFT™ Pocket Games Software www.pgsoft.com Request API URL : {DataGrabAPIDomain}/Bet/v4/GetHistory HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator count Integer Yes Number of records for each batch Note: Value range 1500-5000 bet_type Integer Yes Bet types of bet record: 1: Real game row_version Long Yes Updated time of data (Unix time stamp in milliseconds) Note: Set value to 1 for first call Operator is required to save maximum row_version for each call, to be used as row_version value for next call request hands_status Long No Status of hands: 0: All (Default) 1: Non-last hand 2: Last hand 3: Adjusted Example: URL: https://api.pg-bo.me/external-datagrabber/Bet/v4/GetHistory?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&count=5000&bet_type=1&row_ver sion=1346592723000&hands_status=0
132 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description betId Ulong Unique identity of child bet (Unique key value) parentBetId Ulong Unique identity of parent bet playerName String Unique identity of player currency String Currency used by player in the record gameId Integer Unique identity of game platform Integer Platform of bet record (Please refer to Platform for more information) betType Integer Category of bet record: 1: Real game transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game betAmount Decimal* Turnover of player winAmount Decimal* Pay-out of player jackpotRtpContributionAmount Decimal* Jackpot RTP contribution amount of player jackpotContributionAmount Decimal* Jackpot contribution amount of player jackpotWinAmount Decimal* Jackpot win amount of player balanceBefore Decimal* Balance of player before transaction balanceAfter Decimal* Balance of player after transaction handsStatus Integer Status of hand: 1: Non-last hand 2: Last hand 3: Adjusted rowVersion Long Updated time of data (Unix time stamp in milliseconds) betTime Integer Start time of current bet (Unix time stamp in milliseconds) betEndTime Integer End time of current bet (Unix time stamp in milliseconds) isFeatureBuy Boolean To indicate if player has purchased game feature: True: Game feature purchased (feature spin) False: No game feature purchased (normal spin) * System might return results up to 6 decimal places depending on game and balance
133 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "betId": 1443839146530971234, "parentBetId": 1443839146530971234, "playerName": "player1", "currency": "CNY", "gameId": 92, "platform": 1, "betType": 1, "transactionType": 1, "betAmount": 500.0, "winAmount": 0.0, "jackpotRtpContributionAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 78962.39, "balanceAfter": 78462.39, "handsStatus": 2, "rowVersion": 1633073283123, "betTime": 1633073052123, "betEndTime": 1633073052123, "isFeatureBuy": false }, { "betId": 1443839117799981234, "parentBetId": 1443839028721351234, "playerName": "player1", "currency": "CNY", "gameId": 92, "platform": 1, "betType": 1, "transactionType": 1, "betAmount": 0.0, "winAmount": 0.0, "jackpotRtpContributionAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 79462.39, "balanceAfter": 79462.39, "handsStatus": 2, "rowVersion": 1633073284123, "betTime": 1633073045123, "betEndTime": 1633073045123, "isFeatureBuy": false } ], "error": null }
134 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.2 Get History for Specific Time To get the bet history for a specific time range. Notes Operator can retrieve the bet history for the last 60 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. We recommend operators delay grabbing the data after an hour as the data may update within an hour. We also recommend operators always grab the data through the automated job for the data an hour ago. Other than that, we strongly recommend operators to grab the data by Get History API instead of Get History for Specific Time API, as the data may be updated within an hour. Steps Step 1: In the very first GetHistory API call, set from_time = unix timestamp of your desired time, and set to_time as current time. Step 2: Save the maximum betEndTime in each data grabbing request call. Step 3: In the subsequence calls, set the from_time parameter value to the saved betEndTime in step 2, to_time parameter value may remain unchanged (current time). Repeat step 2 and 3 until records returned are lesser than the required count (e.g.: 1500 records per request). If number of records returned are less than the required count, stop, and wait for a time interval (recommended 5 minutes) for the next API call. Identify duplicate records by checking duplicate betId in each call.
135 PG SOFT™ Pocket Games Software www.pgsoft.com Request API URL : {DataGrabAPIDomain}/Bet/v4/GetHistoryForSpecificTimeRange HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator count Integer Yes Number of records for each batch Note: Value range 1500-5000 bet_type Integer Yes Bet types of bet record: 1: Real game from_time Long Yes Time range of the start time and end time of the bet records (Unix time stamp in milliseconds) Note: Value range 1 day - 40 days to_time Long Yes Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/GetHistoryForSpecificTimeRange?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&count=5000&bet_type=1&from_ti me=1346592723000&to_time=1546592723000
136 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description betId Ulong Unique identity of child bet (Unique key value) parentBetId Ulong Unique identity of parent bet playerName String Unique identity of player currency String Currency used by player in the record gameId Integer Unique identity of game platform Integer Platform of bet record (Please refer to Platform for more information) betType Integer Category of bet record: 1: Real game transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game betAmount Decimal* Turnover of player winAmount Decimal* Pay-out of player jackpotRtpContributionAmount Decimal* Jackpot RTP contribution amount of player jackpotContributionAmount Decimal* Jackpot contribution amount of player jackpotWinAmount Decimal* Jackpot win amount of player balanceBefore Decimal* Balance of player before transaction balanceAfter Decimal* Balance of player after transaction handsStatus Integer Status of hand: 1: Non-last hand 2: Last hand 3: Adjusted rowVersion Long Updated time of data (Unix time stamp in milliseconds) betTime Integer Start time of current bet (Unix time stamp in milliseconds) betEndTime Integer End time of current bet (Unix time stamp in milliseconds) isFeatureBuy Boolean To indicate if player has purchased game feature: True: Game feature purchased (feature spin) False: No game feature purchased (normal spin) * System might return results up to 6 decimal places depending on game and balance
137 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "betId": 1443924025750851234, "parentBetId": 1443924025750851234, "playerName": "player1", "currency": "CNY", "gameId": 89, "platform": 1, "betType": 1, "transactionType": 1, "betAmount": 6.0, "winAmount": 0.0, "jackpotRtpContributionAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 17762.94, "balanceAfter": 17756.94, "handsStatus": 2, "rowVersion": 1633093531234, "betTime": 1633093281234, "betEndTime": 1633093281234, "isFeatureBuy": false }, { "betId": 1443924030033241234, "parentBetId": 1443924030033241234, "playerName": "player1", "currency": "CNY", "gameId": 89, "platform": 1, "betType": 1, "transactionType": 1, "betAmount": 6.0, "winAmount": 36.0, "jackpotRtpContributionAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 17756.94, "balanceAfter": 17786.94, "handsStatus": 1, "rowVersion": 1633093521234, "betTime": 1633093291234, "betEndTime": 1633093291234, "isFeatureBuy": false } ], "error": null }
138 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.3 Get Single Player History To get bet history of specific player. Notes Operator can retrieve the bet history for the last 60 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetPlayerHistory HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of player bet_type Integer Yes Bet types of bet record: 1: Real game start_time Long Yes Time range of start time and end time of bet records (Unix time stamp in milliseconds) Note: Value range 1 day - 7 days end_time Long Yes Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/GetPlayerHistory?trace_id=b3f37e57-2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player1&start_tim e=1346592723000&end_time=1546592723000
139 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description betId Ulong Unique identity of child bet (Unique key value) parentBetId Ulong Unique identity of parent bet playerName String Unique identity of player currency String Currency used by player in the record gameId Integer Unique identity of game platform Integer Platform of bet record (Please refer to Platform for more information) betType Integer Category of bet record: 1: Real game transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game betAmount Decimal* Turnover of player winAmount Decimal* Pay-out of player jackpotRtpContributionAmount Decimal* Jackpot RTP contribution amount of player jackpotContributionAmount Decimal* Jackpot contribution amount of player jackpotWinAmount Decimal* Jackpot win amount of player balanceBefore Decimal* Balance of player before transaction balanceAfter Decimal* Balance of player after transaction handsStatus Integer Status of hand: 1: Non-last hand 2: Last hand 3: Adjusted rowVersion Long Updated time of data (Unix time stamp in milliseconds) betTime Integer Date of current record (Unix time stamp in milliseconds) betEndTime Integer End time of current bet (Unix time stamp in milliseconds) isFeatureBuy Boolean To indicate if player has purchased game feature: True: Game feature purchased (feature spin) False: No game feature purchased (normal spin) * System might return results up to 6 decimal places depending on game and balance
140 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "betId": 1443458363362385920, "parentBetId": 1443458363362385920, "playerName": "fongying", "currency": "CNY", "gameId": 94, "platform": 1, "betType": 1, "transactionType": 1, "betAmount": 5.0, "winAmount": 0.0, "jackpotRtpContributionAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 10001704.78, "balanceAfter": 10001699.78, "handsStatus": 2, "rowVersion": 1632982509049, "betTime": 1632982266626, "betEndTime": 1632982266654, "isFeatureBuy": false }, { "betId": 1443458366315175936, "parentBetId": 1443458366315175936, "playerName": "fongying", "currency": "CNY", "gameId": 94, "platform": 1, "betType": 1, "transactionType": 1, "betAmount": 5.0, "winAmount": 0.0, "jackpotRtpContributionAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 10001699.78, "balanceAfter": 10001694.78, "handsStatus": 2, "rowVersion": 1632982515184, "betTime": 1632982267325, "betEndTime": 1632982267354, "isFeatureBuy": false } ], "error": null }
141 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.4 Get Player’s Daily Summary To get player’s daily bet history. Notes Operator can retrieve the bet history for the last 60 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. Data row version cannot be a unique value. Operators are required to grab at least 1500 records for every request. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetPlayerDailySummary HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator count Integer Yes Number of records for each batch Note: Value range 1500-5000 bet_type Integer Yes Category of bet record: 1: Real game row_version Long Yes Updated time of data (Unix time stamp in milliseconds) time_zone Integer No Time zone: -5: UTC-5 -4: UTC-4 0: UTC (Default) 1: UTC+1 4: UTC+4 7: UTC+7 8: UTC+8
142 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/GetPlayerDailySummary?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&count=5000&bet_type=1&row_ver sion=1346592723000&time_zone=8 Response Body Parameters: JSON Array Parameter name Data type Description playerName String Unique identity of player playerType Integer Category of player: 1: Real player 2: Test player gameId Integer Unique identity of game betType Integer Category of bet record: 1: Real game transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game platform Integer Platform of bet record (Please refer to Platform for more information) currency String Currency used by player in the record hands Integer Counts of main bets games Integer Counts of child bets betAmount Decimal* Turnover of player winLossAmount Decimal* Win loss amount of player jackpotContributionAmount Decimal* Jackpot contribution amount of player jackpotWinAmount Decimal* Jackpot win amount of player rowVersion Long Updated time of data (Unix time stamp in milliseconds) summaryDate Integer Date of current record (Unix time stamp in milliseconds) * System might return results up to 6 decimal places depending on game and balance
143 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "playerName": " player1", "playerType": 1, "gameId": 39, "betType": 1, "transactionType": 1, "platform": 1, "currency": "EUR", "hands": 2, "games": 2, "betAmount": 60.05, "winLossAmount": -60.05, "jackpotContributionAmount": 0, "jackpotWinAmount": 0, "rowVersion": 1545971022000, "summaryDate": 1545955200000 }, { "playerName": "player2", "playerType": 1, "gameId": 24, "betType": 1, "transactionType": 1, "platform": 1, "currency": "EUR", "hands": 9, "games": 9, "betAmount": 0.09, "winLossAmount": 1.91, "jackpotContributionAmount": 0, "jackpotWinAmount": 0, "rowVersion": 1546238743000, "summaryDate": 1546214400000 } ], "error": null }
144 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.5 Get Player’s Daily Summary for Specific Time To get player daily bet history for specific time range. Notes Operator can retrieve the bet history for the last 60 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. PG SOFT may re-push data by renewing data row version. Operator is required to identify, and update duplicated data by playerName, gameId and summaryDate. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetPlayerDailySummaryForSpecificTimeRange HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator count Integer Yes Number of records for each batch Note: Value range 1500-5000 bet_type Integer Yes Category of bet record: 1: Real game row_version Long Yes Updated time of data (Unix time stamp in milliseconds) from_time Long Yes Time range of start time and end time of bet records (Unix time stamp in milliseconds) Note: Value range 1 day -40 days to_time Long Yes time_zone Integer No Time zone: -5: UTC-5 -4: UTC-4 0: UTC (Default) 1: UTC+1 4: UTC+4 8: UTC+8
145 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/GetPlayerDailySummaryForSpecificTimeRange?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&count=5000&bet_type=1&row_ver sion=1546238743000&from_time=1346592723000&to_time=1546592723000&time_zone=8 Response Body Parameters: JSON Array Parameter name Data type Description playerName String Unique identity of player playerType Integer Category of player: 1: Real player 2: Test player gameId Integer Unique identity of game betType Integer Category of bet record: 1: Real game transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game platform Integer Platform of bet record (Please refer to Platform for more information) currency String Currency used by player in the record hands Integer Counts of main bets games Integer Counts of child bets betAmount Decimal* Turnover of player winLossAmount Decimal* Win loss amount of player jackpotContributionAmount Decimal* Jackpot contribution amount of player jackpotWinAmount Decimal* Jackpot win amount of player rowVersion Long Updated time of data (Unix time stamp in milliseconds) summaryDate Integer Date of current record (Unix time stamp in milliseconds) * System might return results up to 6 decimal places depending on game and balance
146 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "playerName": " player1", "playerType": 1, "gameId": 39, "betType": 1, "transactionType": 1, "platform": 1, "currency": "EUR", "hands": 2, "games": 2, "betAmount": 60.05, "winLossAmount": -60.05, "jackpotContributionAmount": 0, "jackpotWinAmount": 0, "rowVersion": 1545971022000, "summaryDate": 1545955200000 }, { "playerName": "player2", "playerType": 1, "gameId": 24, "betType": 1, "transactionType": 1, "platform": 1, "currency": "EUR", "hands": 9, "games": 9, "betAmount": 0.09, "winLossAmount": 1.91, "jackpotContributionAmount": 0, "jackpotWinAmount": 0, "rowVersion": 1546238743000, "summaryDate": 1546214400000 } ], "error": null }
147 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.6 Get Hands Summary To get the game summary records of each hand. Notes Operator can retrieve the bet history for the last 60 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. PG SOFT may re-push data by renewing data row version. Operators are required to identify and update duplicated data by betId. Data row version cannot be a unique value. Operators are required to grab at least 1500 records for every request. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetHandsSummary HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator count Integer Yes Number of records for each batch Note: Value range 1500-5000 bet_type Integer Yes Bet types of bet record: 1: Real game hands_status Long Yes Status of hands: 0: All 1: Incomplete 2: Completed row_version Long Yes Updated time of data (Unix time stamp in milliseconds) Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/GetHandsSummary?trace_id=b3f37e57-2873-40b1-aa95-f126c25ed311 Body:
148 PG SOFT™ Pocket Games Software www.pgsoft.com operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&count=5000&bet_type=1&hands_s tatus=2&row_version=1346592723000 Response Body Parameters: JSON Array Parameter name Data type Description parentBetId Ulong Unique identity of parent bet playerName String Unique identity of player gameId Integer Unique identity of game betType Integer Category of bet record: 1: Real game transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game platform Integer Platform of bet record (Please refer to Platform for more information) currency String Currency used by player in the record betAmount Decimal* Turnover of player winAmount Decimal* Pay-out of player jackpotContributionAmount Decimal* Jackpot contribution amount of player jackpotWinAmount Decimal* Jackpot win amount of player balanceBefore Decimal* Balance of player before transaction balanceAfter Decimal* Balance of player after transaction rowVersion Long Updated time of data (Unix time stamp in milliseconds) handStartTime Integer Start time of current hand (Unix time stamp in milliseconds) handEndTime Integer End time of current hand (Unix time stamp in milliseconds) handsStatus Integer Status of hand: 1: Non-last hand 2: Last hand 3: Adjusted collapseSpinCount Integer Number of normal spin collapsed collapseFreeSpinCount Integer Number of free spin collapsed isFeatureBuy Boolean To indicate if player has purchased game feature: True: Game feature purchased (feature spin) False: No game feature purchased (normal spin) * System might return results up to 6 decimal places depending on game and balance
149 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "parentBetId": 1443100640863068160, "playerName": "fongying", "gameId": 103, "betType": 1, "transactionType": 1, "platform": 1, "currency": "CNY", "betAmount": 6.0, "winAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 10001632.88, "balanceAfter": 10001626.88, "rowVersion": 1632897431960, "handStartTime": 1632896978967, "handEndTime": 1632896978967, "handStatus": 2, "collapseSpinCount": 0, "collapseFreeSpinCount": 0, "isFeatureBuy": false }, { "parentBetId": 1443100653622140928, "playerName": "fongying", "gameId": 103, "betType": 1, "transactionType": 1, "platform": 1, "currency": "CNY", "betAmount": 6.0, "winAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 10001626.88, "balanceAfter": 10001620.88, "rowVersion": 1632897431960, "handStartTime": 1632896982003, "handEndTime": 1632896982003, "handStatus": 2, "collapseSpinCount": 0, "collapseFreeSpinCount": 0, "isFeatureBuy": false } ], "error": null }
150 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.7 Get Hourly Hands Summary To get operator’s hourly hands summary records. Notes Operator can retrieve the bet history for the 60 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetHandsSummaryHourly HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator from_time Long Yes Time range of start time and end time of bet records (Unix time stamp in milliseconds) Note: Value range 1 day - 40 days to_time Long Yes currency String No Currency used by player in the record: Default: All currencies used by player in the record transaction_types Integer Array No Category of transaction: 1: Cash 2: Bonus 3: Free game Default: All category of transaction Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/GetHandsSummaryHourly?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311
151 PG SOFT™ Pocket Games Software www.pgsoft.com Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&from_time=1567296000000&to_ti me=1569801600000&currency=cny&transaction_types=1&transaction_types=2 Response Body Parameters: JSON Array Parameter name Data type Description dateTime Integer Date and time of a record per hour totalHands Integer Total count of game hands currency String Currency used by player in the record totalBetAmount Decimal* Total amount of turnover totalWinAmount Decimal* Total amount of pay-out totalPlayerWinLossAmount Decimal* Total amount of player’s win and loss totalCompanyWinLossAmount Decimal* Total amount of company’s win and loss transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game totalCollapseSpinCount Integer Total count of normal spin collapsed totalCollapseFreeSpinCount Integer Total count of free spin collapsed * System might return results up to 6 decimal places depending on game and balance
152 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": [ { "dateTime": 1633093200123, "totalHands": 6, "currency": "CNY", "totalBetAmount": 23.8, "totalWinAmount": 114.0, "totalPlayerWinLossAmount": 90.2, "totalCompanyWinLossAmount": -90.2, "transactionType": 1, "totalCollapseSpinCount": 8, "totalCollapseFreeSpinCount": 0 }, { "dateTime": 1633093200123, "totalHands": 13, "currency": "EUR", "totalBetAmount": 15.0, "totalWinAmount": 3.4, "totalPlayerWinLossAmount": -11.6, "totalCompanyWinLossAmount": 11.6, "transactionType": 1, "totalCollapseSpinCount": 2, "totalCollapseFreeSpinCount": 0 }, { "dateTime": 1633093200213, "totalHands": 2, "currency": "THB", "totalBetAmount": 80.0, "totalWinAmount": 0.0, "totalPlayerWinLossAmount": -80.0, "totalCompanyWinLossAmount": 80.0, "transactionType": 1, "totalCollapseSpinCount": 0, "totalCollapseFreeSpinCount": 0 } ], "error": null }
153 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.8 Get Summary of Total Player Bets To get the summary of total player bets for specific time range. Notes Operator can retrieve the bet history for the last 40 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetPlayerBetsSummationTotal HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator bet_type Integer Yes Bet types of bet record: 1: Real game from_time Long Yes Time range of start time and end time of bet records (Unix time stamp in milliseconds) Note: Value range 1 day - 40 days. The time will be rounded off hourly. Example: If the request sent by operator is 1616250600000 (20/3/2021 2:30:00 PM) ~ 1616254200000 (20/3/2021 3:30:00 PM), system will return the data from 1616252400000 (20/3/2021 3:00:00 PM) to 1616256000000 (20/3/2021 4:00:00 PM) to_time Long Yes currency String No Currency used by player in the record
154 PG SOFT™ Pocket Games Software www.pgsoft.com Default: All currencies used by player in the record game_ids Integer Array No Unique identity of games Default: All games player_modes Integer Array No Mode of game: 0: Normal 1: Cash bonus Default: All mode of game player_type Integer No Type of player: 0: All (Default) 1: Real player 2: Test player transaction_types Integer No Type of transaction: 0: All (Default) 1: Cash 2: Bonus 3: Free Game time_zone Integer No Time zone: -5: UTC-5 -4: UTC-4 0: UTC (Default) 1: UTC+1 4: UTC+4 8: UTC+8 Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/GetPlayerBetsSummationTotal?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&bet_type=1&from_time=13465927 23000&to_time=1346592723000
155 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description totalCollapseSpinCount Integer Total count of normal spin collapsed totalCollapseFreeSpinCount Integer Total count of free spin collapsed currency String Currency used by player in the record totalRowCount Integer Total count of game rows totalGames Integer Total count of game rounds totalHands Integer Total count of game hands totalBetAmountConverted Decimal* Total bet amount of the player converted (currency as EUR) totalWinLossAmountConverted Decimal* Total win loss amount of the player converted (currency as EUR) totalCompanyWinLossAmountConverted Decimal* Total win loss amount of the company converted (currency as EUR) totalJackpotRtpContributionAmountConverted Decimal* Total jackpot RTP contribution amount of the records converted (currency as EUR) totalJackpotContributionAmountConverted Decimal* Total jackpot contribution amount of the records converted (currency as EUR) totalJackpotWinAmountConverted Decimal* Total jackpot win amount of the records converted (currency as EUR) totalBetAmount Decimal* Total bet amount of records totalWinLossAmount Decimal* Total win loss amount of records totalCompanyWinLossAmount Decimal* Total company win loss amount of records totalJackpotRtpContributionAmount Decimal* Total jackpot RTP contribution amount of records totalJackpotContributionAmount Decimal* Total jackpot contribution amount of records totalJackpotWinAmount Decimal* Total jackpot win amount of records * System might return results up to 6 decimal places depending on game and balance
156 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "totalCollapseSpinCount": 8, "totalCollapseFreeSpinCount": 0, "currency": "CNY", "totalRowCount": 1, "totalGames": 14, "totalHands": 6, "totalBetAmountConverted": 3.05092, "totalWinLossAmountConverted": 11.56274, "totalCompanyWinLossAmountConverted": -11.56274, "totalJackpotRtpContributionAmountConverted": 0.0, "totalJackpotContributionAmountConverted": 0.0, "totalJackpotWinAmountConverted": 0.0, "totalBetAmount": 23.8, "totalWinLossAmount": 90.2, "totalCompanyWinLossAmount": -90.2, "totalJackpotRtpContributionAmount": 0.0, "totalJackpotContributionAmount": 0.0, "totalJackpotWinAmount": 0.0 }, { "totalCollapseSpinCount": 2, "totalCollapseFreeSpinCount": 0, "currency": "EUR", "totalRowCount": 1, "totalGames": 16, "totalHands": 13, "totalBetAmountConverted": 15.0, "totalWinLossAmountConverted": -11.6, "totalCompanyWinLossAmountConverted": 11.6, "totalJackpotRtpContributionAmountConverted": 0.0, "totalJackpotContributionAmountConverted": 0.0, "totalJackpotWinAmountConverted": 0.0, "totalBetAmount": 15.0, "totalWinLossAmount": -11.6, "totalCompanyWinLossAmount": 11.6, "totalJackpotRtpContributionAmount": 0.0, "totalJackpotContributionAmount": 0.0, "totalJackpotWinAmount": 0.0 } ], "error": null }
157 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.9 Get Player’s Unfinished Games To get a player unfinished hand. Notes Operator can retrieve the bet history for the last 60 days. This API is for reporting purposes only. We do not recommend using this API for any other business operations. Please contact PG SOFT if you require it to integrate with business operations. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetPlayerUnfinishedGamesBet HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity for player from_time Long Yes Time range of start time and end time (Unix time stamp in milliseconds) Note: Value range 1 day - 7 days to_time Long Yes game_ids Integer Array No Unique identity of games Default: All games time_zone Integer No Time zone: -5: UTC-5 -4: UTC-4 0: UTC (Default) 1: UTC+1 4: UTC+4 8: UTC+8
158 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/GetPlayerUnfinishedGamesBet?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abcd&secret_key=abc123&game_ids=1&player_name=player123&from_time=1 588723200000&to_time=1588982400000
159 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description parentBetId String Unique Identity of parent bet gameId Integer Unique Identity of game transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game platform Integer Platform of bet record currency String Currency used by player in the record betAmount Decimal Turnover of player winAmount Decimal Pay-out of player jackpotRtpContributionAmount Decimal* Jackpot RTP contribution amount of player jackpotContributionAmount Decimal Jackpot contribution amount of player balanceBefore Decimal Balance of player before transaction balanceAfter Decimal Balance of player after transaction handStartTime Long Start time of the hand (Unix time stamp in milliseconds) handEndTime Long End time of the hand (Unix time stamp in milliseconds) Example: { "data":[ { "parentBetId": 1444964157178265600, "gameId": 108, "transactionType": 1, "platform": 1, "currency": "CNY", "betAmount": 375.0, "winAmount": 0.0, "jackpotRtpContributionAmount": 0.0, "jackpotContributionAmount": 0.0, "balanceBefore": 10001446.89, "balanceAfter": 10001071.89, "handStartTime": 1633341275871, "handEndTime": 1633341278912 } ], "error": null }
160 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.10 Get Bet Details To retrieve the bet details of multiple bets Notes Operator can retrieve the bet history for the last 60 days. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetBetDetails HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator bet_ids Ulong Yes Unique identity of bets Note: Max 10 bet IDs Example: URL: https://api.pg-bo.me/external-datagrabber/Bet/v4/GetBetDetails?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abcd&secret_key=abc123&bet_ids=1315486539764989952&bet_ids=13154865 39764989960
161 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description betId Ulong Unique identity of child bet (Unique key value) parentBetId Ulong Unique identity of parent bet playerName String Unique identity of player currency String Currency used by player in the record gameId Integer Unique identity of game platform Integer Platform of bet record (Please refer to Platform for more information) betType Integer Category of bet record: 1: Real game transactionType Integer Category of transaction: 0: Adjusted bet (reset game state) 1: Cash 2: Bonus 3: Free game betAmount Decimal* Turnover of player winAmount Decimal* Pay-out of player jackpotRtpContributionAmount Decimal* Jackpot RTP contribution amount of player jackpotContributionAmount Decimal* Jackpot contribution amount of player jackpotWinAmount Decimal* Jackpot win amount of player balanceBefore Decimal* Balance of player before transaction balanceAfter Decimal* Balance of player after transaction handsStatus Integer Status of hand: 1: Non-last hand 2: Last hand 3: Adjusted rowVersion Long Updated time of data (Unix time stamp in milliseconds) betTime Integer Start time of current bet (Unix time stamp in milliseconds) betEndTime Integer End time of current bet (Unix time stamp in milliseconds) isFeatureBuy Boolean To indicate if player has purchased game feature: True: Game feature purchased (feature spin) False: No game feature purchased (normal spin) * System might return results up to 6 decimal places depending on game and balance
162 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data":[ { "betId": 1443924025750851584, "parentBetId": 1443924025750851584, "playerName": "jj02", "currency": "CNY", "gameId": 89, "platform": 1, "betType": 1, "transactionType": 1, "betAmount": 6.0, "winAmount": 0.0, "jackpotRtpContributionAmount": 0.0, "jackpotContributionAmount": 0.0, "jackpotWinAmount": 0.0, "balanceBefore": 17762.94, "balanceAfter": 17756.94, "handsStatus": 2, "rowVersion": 1633093533869, "betTime": 1633093289187, "betEndTime": 1633093289215, "isFeatureBuy": false } ], "error": null }
163 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.11 Get Failed Bets To retrieve failed bets. Notes Operator can retrieve the bet history for the last 60 days. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetFailedBets HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator from_time Long Yes Time range of the start time and end time of enquiries (Unix time stamp in milliseconds) Note: Value range 1 day - 40 days to_time Long Yes count Integer Yes Number of records for each batch Note: Value range 1500-5000 Example: URL: https://api.pg-bo.me/external-datagrabber/Bet/v4/GetFailedBets?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&count=5000&from_time=13465927 23000&to_time=1546592723000
164 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description betId Integer Unique identity of child bet (Unique key value) playerName String Unique identity of player message String Failed reason betStartTime Integer Start time of current bet (Unix time stamp in milliseconds) Example: { "data":[ { "betId": 10832988, "playerName": "testplayer1", "message": "Bet not found.", "betStartTime": 1600165980624 }, { "betId": 10832989, "playerName": " testplayer2", "message": "Bet not found.", "betStartTime": 1600165980624 } ], "error": null }
165 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.12 Pending Bets Sometimes pending bets may occur due to unforeseen circumstances during gameplay for example, network latency, system failure, system timeout and so on. Generally, pending bet will be resolved automatically when the player relaunches the game. However, the bet will remain in pending status for some rare scenarios: Player did not relaunch the game after encountering an error. PG SOFT system did not receive any response from the operator when resolving pending bets. PG SOFT system received an error response from the operator when resolving pending bets. Default interval of pending bet resolving time is set to 60 minutes. Pending bets which exceed the interval will be resolved by PG SOFT system automatically. This interval is customizable, and every operator can have their own bet resolve interval time. Manual resolve is required when failure to resolve pending bets after several attempts. In such case, operator is required to resolve the pending bet manually, and PG SOFT will mark these bets’ statuses as complete after getting the confirmation from the operator.
166 PG SOFT™ Pocket Games Software www.pgsoft.com
167 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.13 Get Pending Bets To retrieve pending bets. Notes Operator can retrieve the bet history for the last 7 days. Request API URL : {DataGrabAPIDomain}/Bet/v4/GetPendingBets HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_names string No Unique identity of player Default: All players from_time Long Yes Time range of the start time and end time of enquiries (Unix time stamp in milliseconds) Note: Value range 1 day - 7 days to_time Long Yes count Integer Yes Number of records for each batch Note: Value range 1500-5000 Example: URL: https://api.pg-bo.me/external-datagrabber/Bet/v4/GetPendingBets?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_names=testplayer1&play er_names=testplayer2&count=5000&from_time=1346592723000&to_time=1546592723000
168 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description playerName String Unique identity of player gameId String Unique identity of game betStatus Integer Status of bet 1: Pending betId Ulong Unique identity of child bet (Unique key value) betAmount Decimal Bet amount of game betTime Integer Start time of current bet (Unix time stamp in milliseconds) Example: { "data":[ { "playerName": "player1", "gameId": 38, "betStatus": 1, "betId": 1444876729369241234, "betAmount": 500.0, "betTime": 1633320431123 } ], "error": null }
169 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.14 Manual Resolve of Pending Bet To manually resolve pending bet. Notes If the error message “bet ID: {bet id} was not found in the game state” is displayed, it is likely that the current bet ID is an adjustment bet ID. In such cases, please perform a manual reset of the game state to proceed. Request API URL : {DataGrabAPIDomain}/Bet/v4/ManualResolveBet HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator bet_id Integer Yes Unique identity of child bet (Unique key value) is_success_bet Boolean Yes Status of bet: True: Successful bet False: Failed bet balance_before_adjustment Decimal No Player balance before adjustment (For successful bet only) Default value: 0
170 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/ManualResolveBet?trace_id=b3f37e57-2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&bet_id=1325714346441543680&is _success_bet=true Response Body Parameters: JSON Object Parameter name Data type Description resolveStatus Boolean Bet resolve result: True: Successful False: Failed betStatus Integer Status of bet 0: Non-pending 1: Pending 2: Failed 3: Successful 4: Adjusted Please refer to the following use cases for further details of API response: Actual Bet Status Is_Success_Bet Value in 1 st Request Is_Success_Bet Value in 2 nd Request API Response Successful Bet True - resolveStatus: False, betStatus: 0 Successful Bet True True resolveStatus: False, betStatus: 0 Successful Bet False - resolveStatus: False, betStatus: 0 Successful Bet False False resolveStatus: False, betStatus: 0 Failed Bet True - resolveStatus: False, betStatus: 0 Failed Bet False - resolveStatus: False, betStatus: 0 Pending Bet True - resolveStatus: True, betStatus: 3 Pending Bet True True resolveStatus: True, betStatus: 3 Pending Bet False - resolveStatus: True, betStatus: 2 Pending Bet False False resolveStatus: True, betStatus: 2 Pending Bet True False resolveStatus: False, betStatus: 3 Pending Bet False True resolveStatus: False, betStatus: 2
171 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "resolveStatus": true, "betStatus": 3 }, "error": null } Error Response Code Message 1307 Invalid player game session
172 PG SOFT™ Pocket Games Software www.pgsoft.com 2.5.15 Manual Reset of Pending Game State To reset pending game state. Request API URL : {DataGrabAPIDomain}/Bet/v4/ManualResetGameState HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name string Yes Unique identity of player game_id Integer Yes Unique identity of game Example: URL: https://api.pg-bo.me/external- datagrabber/Bet/v4/ManualResetGameState?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=testplayer1&game_ id=1
173 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description resetStatus Boolean Bet resolve result: True: Successful False: Failed Example: { "data": { "resetStatus": true }, "error": null }
174 PG SOFT™ Pocket Games Software www.pgsoft.com 2.6 Game [Latest version: v2] 2.6.1 Get Games List To get list of games. Request API URL : {PgSoftAPIDomain}/Game/v2/Get HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator currency String Yes Currency of game’s legal bet amount language String No Language of data content: en-us: English (Default) zh-cn: Chinese status Integer No Status of games: 0: Inactive games 1: Active games Default: All status of games Example: URL: https://api.pg-bo.me/external/Game/v2/Get?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&currency=CNY&language=en- us&status=1
175 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description gameId Integer Unique identity of game gameName String Given name of game gameCode String Unique code of game gameLegalBetAmounts JSON Array Legal bet amount of games status Integer Global status of game: 0: Inactive 1: Active 2: Suspended Note: Game will only be accessible if game status and game release status are active releaseStatus Integer Status of game for operator: 0: Inactive 1: Active 2: Suspended Note: Game will only be accessible if game status and game release status are active isSupportFreeGame Boolean To indicate if free game is supported: True: Supported False: Not supported category Integer Category of game: 1: Slot game 2: Card game gameLegalBetAmounts JSON Array Parameter name Data type Description gameId Integer Unique identity of game gameTypeId Integer Type of game (Card game only): 0: None 1: Baccarat-Supersix 2: Baccarat-Commission legalBetAmounts JSON Array Available legal bet amount of games legalBetAmounts JSON Array Parameter name Data type Description coinSize Decimal Bet size of game betMultiplier Integer Bet level of game baseBet Integer Base bet of game betAmount Decimal Bet amount of game
176 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data”: [ { "gameId": 1, "gameName": "Honey Trap of Diao Chan", "gameCode": "diaochan", "status": 1, "releaseStatus": 1, "isSupportFreeGame": true, "category": 1, "gameLegalBetAmounts": [ { "gameId": 1, "gameTypeId": 0, "legalBetAmounts": [ { "coinSize": 0.03, "betMultiplier": 1, "baseBet": 30, "betAmount": 0.9 }, { "coinSize": 0.03, "betMultiplier": 2, "baseBet": 30, "betAmount": 1.8 } ] }] }
177 PG SOFT™ Pocket Games Software www.pgsoft.com 2.6.2 Get Game Legal Bet Amounts To get the legal bet amounts of the games. Request API URL : {PgSoftAPIDomain}/Game/v2/GetGameLegalBetAmounts HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator currency String Yes Currency of game’s legal bet amount game_ids Integer Array Yes Unique identity of games Example: URL: https://api.pg-bo.me/external/Game/v2/GetGameLegalBetAmounts?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&currency=CNY&game_ids=1&game_ ids=2
178 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description gameId Integer Unique identity of game gameTypeId Integer Type of game (Card game only): 0: None 1: Baccarat-Supersix 2: Baccarat-Commission legalBetAmounts JSON Array Available legal bet amount of games legalBetAmounts JSON Array Parameter name Data type Description coinSize Decimal Bet size of game betMultiplier Integer Bet level of game baseBet Integer Base bet of game betAmount Decimal Bet amount of game Example: { "data":[ { "gameId": 1, "gameTypeId": 0, "legalBetAmounts": [ { "coinSize": 0.03, "betMultiplier": 1, "baseBet": 30, "betAmount": 0.9 }, { "coinSize": 0.03, "betMultiplier": 2, "baseBet": 30, "betAmount": 1.8 } ] } ], "error": null }
179 PG SOFT™ Pocket Games Software www.pgsoft.com 2.6.3 Change Operator’s Game Release Status To change the game release status on operator’s side. Request API URL : {PgSoftAPIDomain}/Game/v2/UpdateGameStatus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity for operator secret_key String Yes Shared passphrase between PG SOFT and operator release_status Integer Yes Release status of game: 0: Inactive 1: Active game_ids Integer Array Yes Unique identity of games Example: URL: https://api.pg-bo.me/external/Game/v2/UpdateGameStatus?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&release_status=1&game_ids=1&g ame_ids=2
180 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description actionResult Boolean Result of action request: true: Successful false: Failed Example: { "data":{ " actionResult": true }, "error": null }
181 PG SOFT™ Pocket Games Software www.pgsoft.com 2.6.4 Get Game Cert To get game certificates. Request API URL : {PgSoftAPIDomain}/Game/v2/GetGamesCert HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator game_ids Integer Array No Unique id of each game Default: All games game_codes String Array No Unique code of each game Default: All games Example: URL: https://api.pg-bo.me/external/Game/v2/GetGamesCert?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&game_ids=1&game_code=diaochan
182 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description game_id Integer Unique id of each game game_name String Unique name of each game game_code String Unique code of each game cert JSON Array List of the certificates JSON Array Parameter name Data type Description hash String Hash value of the game file file String Name of the game file Example: { "data": [ { "game_id": 1, "game_name": "Honey Trap of Diao Chan", "game_code": "diaochan", "cert": [ { "hash": "e2cac0a05c7407c32fd50c4e6fb6779161dfeecc", "file": "PG.Common.GameCore.RNG.dll" }, { "hash": "c4280d2afa00fd17e6b037bd7f4a1fa53b620775", "file": "PG.Common.GameCore.Slot.Engine.dll" }, { "hash": "144c068a7011bb22e57e967e3561200ae2b8f41e", "file": "PG.Game.DiaoChan.Engine.dll" }, { "hash": "bb95b970f2b57c62c96c111e8ddb6ac3961b0881", "file": "PG.SlotGames.Source.DiaoChan.dll" } ] } ], "error": null }
183 PG SOFT™ Pocket Games Software www.pgsoft.com 2.7 Cash [Latest version: v2] 2.7.1 Get Wallet Transaction To get the wallet transaction. Notes Operator can only retrieve records for the last 40 days. Request API URL : {DataGrabAPIDomain}/cash/v2/GetWalletTransactions HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator row_version Long Yes Updated time of data (Unix time stamp in milliseconds) player_name String No Unique identity of player Default: All players row_count Integer No Number of records for each batch Note: Default value: 1 Value range: 1-5000 currency String No Currency of player Default: All currencies of player Example: URL: https://api.pg-bo.me/external- datagrabber/cash/v1/GetWalletTransactions?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&row_version=1346592723000&pla yer_name=testplayer1&row_count=10&currency=CNY
184 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description lastRowVersion Long Updated time of data (Unix time stamp in milliseconds) result JSON Array List of the result JSON Array Parameter name Data type Description transactionId String Unique identity of transaction playerName String Unique identity of player currencyCode String Currency of player transactionType Integer Transaction type: 101: Payout 201: Bet transactionAmount Decimal Transaction amount transactionFrom Decimal Balance before transaction transactionTo Decimal Balance after transaction transactionDateTime Long Transaction date and time Example: { "data": { "lastRowVersion": 1598617560000, "result": [ { "transactionId": 13777918, "playerName": "Player1", "currencyCode": "CNY", "transactionType": 100, "transactionAmount": 2.00, "transactionFrom": 20001873.53, "transactionTo": 20001875.53, "transactionDateTime": 1598617560000 } ] }, "error": null }
185 PG SOFT™ Pocket Games Software www.pgsoft.com 2.7.2 Get Manual Adjustment Details To get the manual adjustment details. Notes Operator can only retrieve records for the last 60 days. Request API URL : {DataGrabAPIDomain}/Cash/v2/GetManualAdjustmentDetails HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator currency String No Currency of player Default: All currencies of player row_version Long Yes Updated time of data (Unix time stamp in milliseconds) row_count Integer No Number of records for each batch Note: Default value: 1 Value range: 1-5000 transaction_type String No Transaction type: 900: External Adjustment 901: Tournament Adjustment Default: All transaction type transaction_reference_id String No Reference Id for adjustment Default: All reference id for adjustment status Integer No Status of manual adjustment 1: Successful 0: Pending Default: Status of manual adjustment
186 PG SOFT™ Pocket Games Software www.pgsoft.com Example: URL: https://api.pg-bo.me/external-datagrabber /Cash/v2/GetManualAdjustmentDetails?trace_id=b3f37e57-2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&row_count=10&currency=CNY&row _version=1346592723000&row_count=1&transaction_type=901&transaction_reference_id=a djustment-001&status=1 Response Body Parameters: JSON Object Parameter name Data type Description lastRowVersion Long Updated time of data (Unix time stamp in milliseconds) result JSON Array List of the result JSON Array Parameter name Data type Description playerName String Unique identity of player operatorToken String Unique identity of operator currencyCode String Currency of player transactionReferenceId String Reference Id for adjustment transactionType Integer Transaction type: 900: External Adjustment 901: Tournament Adjustment transactionAmount Decimal Adjustment amount transactionDateTime Long Adjustment date and time status Integer Status of manual adjustment 1: Successful 0: Pending transactionRemark String Remark for Adjustment
187 PG SOFT™ Pocket Games Software www.pgsoft.com Example: { "data": { "lastRowVersion": 1624444862653, "result": [ { "playerName": "abc", "operatorToken": "aabbcc", "currencyCode": "CNY", "transactionReferenceId": "CASH-1234-1234567", "transactionType": 901, "transactionAmount": 1000.0, "transactionDateTime": 1624444862653, "status": 1, "transactionRemark": "" } ] }, "error": null }
188 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8 Player [Latest version: v3] 2.8.1 Get Online Player Count To get the total number of online players. Request API URL : {PgSoftAPIDomain}/Player/v3/GetOnlinePlayerCount HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity for operator secret_key String Yes Shared passphrase between PG SOFT and operator game_id Integer No Unique identity for game Note: System will return list of online players for all games if parameter value is not provided Example: URL: https://api.pg-bo.me/external/Player/v3/GetOnlinePlayerCount?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&game_id=1
189 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description totalCount Integer Total number of records totalPlayerCount Integer Total number of online players onlinePlayerSummary JSON Array List of online players for games JSON Array Parameter name Data type Description rowVersion Long Updated time of data (Unix time stamp in milliseconds) gameId Integer Unique identity for game playerCount Integer Total number of online players status Integer Status of player 1: Online Example: { "data":{ "onlinePlayerSummary": [ { "rowVersion": 1581073260000, "gameId": 0, "playerCount": 1, "status": 1 }, { "rowVersion": 1581073260000, "gameId": 52, "playerCount": 1, "status": 1 }, { "rowVersion": 1581073260000, "gameId": 68, "playerCount": 1, "status": 1 } ], "totalCount": 3, "totalPlayerCount": 3 }, "error": null }
190 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8.2 Get Players’s Online Status To get players’ last online statuses (maximum 10 players). Request API URL : {PgSoftAPIDomain}/Player/v3/GetPlayersOnlineStatus HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity for operator secret_key String Yes Shared passphrase between PG SOFT and operator player_names String Array Yes Unique identity of player Example: URL: https://api.pg-bo.me/external/Player/v3/GetPlayersOnlineStatus?trace_id=b3f37e57- 2873-40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_names=player1&player_n ames=player2
191 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description playerName String Unique identity for player gameId String Unique identity for game status Integer Online status of player 0: Offline 1: Online Example: { "data":[ { "playerName": "player1", "status": 1, "gameId": 12 }, { "playerName": "player2", "status": 0 } ], "error": null }
192 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8.3 Get Online Player List To get a list of online players. Request API URL : {PgSoftAPIDomain}/Player/v3/GetOnlinePlayers HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data type Mandatory Description operator_token String Yes Unique identity for operator secret_key String Yes Shared passphrase between PG SOFT and operator row_count Integer No Number of records for each batch Note: Default value: 1000 Value range: 1-1000 row_version Long No Updated time of data (Unix time stamp in milliseconds) Default value: 1 Example: URL: https://api.pg-bo.me/external/Player/v3/GetOnlinePlayers?trace_id=b3f37e57-2873- 40b1-aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&row_count=10
193 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Array Parameter name Data type Description playerName String Unique identity for player gameId Integer Unique identity for game rowVersion Long Updated time of data (Unix time stamp in milliseconds) Default value: 1 Example: { "data": [ { "playerName": "tesplayer01", "gameId": 60, "rowVersion": 1607503788000 }, { "playerName": "tesplayer02", "gameId": 65, "rowVersion": 1607503809000 } ], "error": null }
194 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8.4 Create Player To create a new player’s account in PG SOFT game system. Notes Implementation of this API is optional as player accounts will be created automatically for a first-time player to access PG SOFT games. Request API URL : {PgSoftAPIDomain}/Player/v3/Create HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data Type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of players Player’s name is not case sensitive Only alphabet, number, and “@”, “-”, ”_” symbols are allowed Note: Max 50 characters nickname String No Nickname of player Note: Max 50characters currency String Yes Currency of player Example: URL: https://api.pg-bo.me/external/Player/v3/Create?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player123&currenc y=EUR&nickname=player123
195 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data type Description action_result Integer Status of the request 1: Successful 0: failed Example: { "data": { "action_result": 1 }, "error": null } Error Response Code Message 1034 Invalid request 1035 Operation failed 1200 Internal server error 1204 Invalid operator 1305 Invalid player (player already existed)
196 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8.5 Kick Out Player To kick out a player from a PG SOFT game. The player will still be able to re-login to the game. Request API URL : {PgSoftAPIDomain}/Player/v3/Kick HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data Type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of players Example: URL: https://api.pg-bo.me/external/Player/v3/Kick?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player123
197 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data Type Description action_result Integer Status of the request 1: Successful 0: Failed Example: { "data": { "action_result": 1 }, "error": null } Error Response Code Message 1034 Invalid request 1035 Operation failed 1200 Internal server error 1204 Invalid operator 1305 Invalid player 1315 Player has another operation is in progress
198 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8.6 Suspend Player To suspend a player’s account. The suspended players will not be able to access PG SOFT games anymore. Request API URL : {PgSoftAPIDomain}/Player/v3/Suspend HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data Type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of players reason String Yes Reason to suspend the player Example: URL: https://api.pg-bo.me/external/Player/v3/Suspend?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player123&reason= suspendedplayer
199 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data Type Description action_result Integer Status of the request 1: Successful 0: Failed Example: { "data": { "action_result": 1 }, "error": null } Error Response Code Message 1034 Invalid request 1035 Operation failed 1200 Internal server error 1204 Invalid operator 1305 Invalid player 1315 Player has another operation is in progress
200 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8.7 Resume Player To resume a suspended player’s account. Request API URL : {PgSoftAPIDomain}/Player/v3/Reinstate HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data Type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of players reason String Yes Reason of resume suspended player Example: URL: https://api.pg-bo.me/external/Player/v3/Reinstate?trace_id=b3f37e57-2873-40b1- aa95-f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player123&reason= resumesuspendedplayer
201 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data Type Description action_result Integer Status of the request 1: Successful 0: Failed Example: { "data": { "action_result": 1 }, "error": null } Error Response Code Message 1034 Invalid request 1035 Operation failed 1200 Internal server error 1204 Invalid operator 1305 Invalid player 1315 Player has another operation is in progress
202 PG SOFT™ Pocket Games Software www.pgsoft.com 2.8.8 Check Player Status To check a specific player's account status. Notes This API is not to check an online player’s status, it is just to check the player’s account status in PG SOFT system. To check for an online active player, please check using the back office. Request API URL : {PgSoftAPIDomain}/Player/v3/Check HTTP method : POST URL Parameters: Parameter name Data Type Mandatory Description trace_id String Yes Unique identity (GUID) of the request Note: Please set the parameter value as GUID format Body Parameters: Parameter name Data Type Mandatory Description operator_token String Yes Unique identity of operator secret_key String Yes Shared passphrase between PG SOFT and operator player_name String Yes Unique identity of players Example: URL: https://api.pg-bo.me/external/Player/v3/Check?trace_id=b3f37e57-2873-40b1-aa95- f126c25ed311 Body: operator_token=abc123&secret_key=a1b25cde5f3gh46ijkl&player_name=player123
203 PG SOFT™ Pocket Games Software www.pgsoft.com Response Body Parameters: JSON Object Parameter name Data Type Description player_name String Unique identity of players status Integer Status of the request 0: Disabled 1: Active 2: Inactive/Deactivated 3: Suspended 4: Player has another operation is in progress Example: { "data": { "player_name": "player123", "status": 1 }, "error": null }
204 PG SOFT™ Pocket Games Software www.pgsoft.com 3. Appendix 3.1.1 Platform Code Category Platform 1 Web Windows 2 macOS 3 Android 4 iOS 5 others 6 Cordova Android 7 iOS 8 Electron Windows 9 macOS 10 Native Windows 11 macOS 12 Android 13 iOS 98 others System 99 Smartbot