External API Document
| Version |
Description |
| 1.1.0 |
Init Document |
| 1.2.0 |
Add Create free round and Get free round |
| 1.2.1 |
Create free round should return freeGameId |
| 1.2.2 |
Add Cancel free round, update create free round response |
| 1.3.0 |
Update history response |
| 1.4.0 |
Update Get Player Status Bet Limits request/response |
| 1.4.1 |
New Set Player Bet Limits API |
| 1.4.2 |
Update Providers list API to return bet limits |
| 1.5.0 |
Update create/get/cancel free round request/response |
| 1.5.0 |
Update create/get/cancel free chip request/response |
| 1.5.1 |
Player Daily Report request now require from/to |
| 1.6.0 |
Update Game Logs API to have from / to params |
| 1.6.1 |
Update /games API |
| 1.6.2 |
PlayerIP required in /launchGame API |
| 1.6.3 |
Add filter params providerId to /games |
| 1.6.4 |
Update getFreeChip |
| 1.6.5 |
Update freeChip & freeRound |
| 1.6.6 |
Update /games API to have activePlayers in response |
| 1.6.7 |
Update /games API to have rtp, restrictedCountries, prohibitedCountries in response |
Table of Contents
- Create Player
- Get Player Balance
- Get Player Status
- Games
- Launch Game
- Deposit
- Withdraw
- History
- Player Daily Report
- Game Logs
- Providers
- Create free round
- Get free round
- Cancel free round
- Set Player Bet Limits
- Create free chip
- Get free chip
- Cancel free chip
Introduction
All apis are made in POST and Content-Type is application/json with Authorization header.
Error Codes
| Code |
Description |
| IP_NOT_ALLOWED |
ip not allowed |
| AGENT_NOT_FOUND |
agent not found |
| AGENT_NOT_ACTIVE |
agent not active |
| AGENT_PROVIDER_NOT_FOUND |
agent provider not found, provider is not configured for this agent |
| AGENT_NOT_UNDER |
agent not under |
| AGENT_INVALID_TYPE |
invalid agent type |
| PLAYER_USERNAME_UNAVAILABLE |
username unavailable |
| PLAYER_INACTIVE |
player not active |
| Header |
Value |
| Authorization |
Bearer {externalApiKey} |
Result
All result will be in the below format but data field is vary depending on each callback.
| Params |
Value |
Description |
| ok |
bool |
true if success, false if fail |
| message |
string |
reason of failure |
| data |
object |
data of api |
1. Create Player
To create player with unique username, username must not contain special characters
POST {{api_url}}/createPlayer
Request Params
| Params |
Value |
Description |
| username |
*string |
4 - 30 characters, alphanumeric, lowercase only |
Request Example
{
"username": "player0001"
}
Response Example
{
"ok": true,
"result": {}
}
{
"ok": false,
"error": {
"code": "PLAYER_USERNAME_UNAVAILABLE",
"message": "username unavailable"
}
}
2. Get Player Balance
To get player’s current balance and current outstanding, only for Transfer Agent Type
POST {{api_url}}/getPlayerBalance
Request Params
| Params |
Value |
Description |
| username |
*string |
Username of the player from player.create |
| currency |
*string |
Currency in ISO-4217 |
Request Example
{
"username": "player0001",
"currency": "THB"
}
Response Params
| Params |
Value |
Description |
| balance |
string |
Decimal format |
| currency |
string |
Currency in ISO-4217 |
Response Example
{
"ok": true,
"result": {
"balance": "110.01",
"currency": "THB"
}
}
{
"ok": false,
"error": {
"code": "PLAYER_NOT_FOUND",
"message": "player not found"
}
}
3. Get Player Status
To get player’s current status, please send agentSystemCurrency to get the correct bet limits
POST {{api_url}}/getPlayerStatus
Request Params
| Params |
Value |
Description |
| username |
*string |
Username of the player from player.create |
| agentSystemCurrency |
*string |
agent system currency |
Request Example
{
"username": "player0001",
"agentSystemCurrency": "THB"
}
Response Params
| Params |
Value |
Description |
| id |
string |
Player ID in System |
| currency |
string |
Currency in ISO-4217 |
| active |
bool |
Player status, true if active, false if not |
| betLimits |
object |
Provider Bet Limits Item list, null if not set |
| createdAt |
string |
Player created date, format is RFC3339 |
Provider Bet Limits Item
| Params |
Value |
Description |
| [providerId] |
object |
Bet Limits Category Item |
Category Bet Limits Item
| Params |
Value |
Description |
| [category] |
string |
Bet Limits Item |
Bet Limit Item
| Params |
Value |
Description |
| id |
string |
Bet Limit ID |
| info |
object |
Bet Limit Info |
Response Example
{
"ok": true,
"result": {
"id": "player0001",
"username": "daniel",
"active": true,
"betLimits": null,
"createdAt": "2023-03-04T09:20:13.499634Z"
}
}
{
"ok": true,
"result": {
"username": "daniel",
"active": true,
"betLimits": {
"ae": {},
"sbo": {
"live_casino": [
{
"id": "1",
"info": {}
},
{
"id": "3",
"info": {}
}
],
"sport": [
{
"id": "100001",
"info": {
"max": 50000,
"maxPerMatch": 200000,
"min": 1
}
},
{
"id": "100002",
"info": {
"max": 100000,
"maxPerMatch": 500000,
"min": 10000
}
}
]
}
},
"createdAt": "2023-03-04T09:20:13.499634Z"
}
}
4. Games List
To get list of games
POST {{api_url}}/games
Request Params
| Params |
Value |
Description |
| query |
string |
search query from id or name |
| providerId |
string |
filter providerId, all providerIds can be listed from /providers endpoint |
Request Example
{
"query": "evolution_00325",
"providerId": "evolution"
}
Response Params
Game Item
| Params |
Value |
Description |
| id |
string |
game id used to launch game |
| name |
string |
game name |
| logoUrl |
string |
game logo url |
| category |
object |
game category |
| hasFreeRound |
bool |
game can call freeRound api to give free rounds to players |
| provider |
object |
game provider |
| activePlayers |
number |
current active players |
| rtp |
string |
(new) game RTP |
Category Item
| Params |
Value |
Description |
| id |
string |
category id |
| label |
string |
category name |
Provider Item
| Params |
Value |
Description |
| id |
string |
provider id |
| name |
string |
provider name |
| restrictedCountries |
string[] |
(new) list of restricted countries |
| prohibitedCountries |
string[] |
(new) list of prohibited countries |
Response Example
{
"ok": true,
"result": {
"items": [
{
"id": "evolution_00325",
"name": "XXXtreme Lightning Baccarat",
"logoUrl": "https://storage.googleapis.com/luxino-public/game/evolutionLive/lobby.png",
"category": {
"id": "live_casino",
"label": "Live Casino"
},
"hasFreeRound": true,
"rtp": "0",
"provider": {
"id": "evolution",
"name": "Evolution (new)",
"restrictedCountries": [
"DZ",
"AO",
"BO",
"BG",
"BF",
"CM",
"CI",
"CD",
"HT",
"KE",
"LA",
"LB",
"MC",
"MZ",
"NA",
"NP",
"NG",
"SS",
"SY",
"ZA",
"VE",
"VN",
"VG",
"YE"
],
"prohibitedCountries": [
"AU",
"CU",
"IR",
"KP",
"SS",
"SD",
"SY",
"TW",
"UA-43",
"MM"
]
},
"activePlayers": 0
}
]
}
}
5. Launch Game
To launch game
POST {{api_url}}/launchGame
Request Params
Note: currency that player will be charged with, might not be the same with currency that player is playing with
| Params |
Value |
Description |
| username |
*string |
player username |
| isMobile |
*bool |
if user is logged in from mobile, only support in some games |
| gameId |
*string |
game id from games list api |
| lang |
*string |
language code, default is en |
| playerIp |
*string |
player ip address |
| currency |
*string |
currency in ISO-4217 (currency that player will be charged with) |
| lobbyUrl |
string |
lobby url to redirect if game has option |
| cashierUrl |
string |
cashier url to redirect if game has option |
Request Example
{
"username": "player0001",
"isMobile": false,
"gameId": "pg_00001",
"lang": "th",
"currency": "THB"
}
Response Params
| Params |
Value |
Description |
| type |
string |
"url" or "html" |
| url |
string |
url to launch game if type is "url" |
| html |
string |
html to launch game if type if "html" |
Response Example
{
"ok": true,
"result": {
"type": "url",
"url": "https://m.pg-redirect.net/60/index.html?ot=63f8e33e8d5599a75980832baac1b3f8&ops=175ea1d0f047a561f40825f6eb0eec21&btt=1"
}
}
6. Deposit
To increase player’s balance
POST {{api_url}}/deposit
Request Params
| Params |
Value |
Description |
| username |
*string |
Username of the player from player.create |
| amount |
*string |
amount to deposit |
| currency |
*string |
currency in ISO-4217 |
Request Example
{
"username": "player0001",
"amount": "100",
"currency": "EUR"
}
Response Params
| Params |
Value |
Description |
| txId |
string |
transactionId |
| currency |
string |
currency in ISO-4217 |
| agent.txId |
string |
agent wallet transactionId |
| agent.beforeBalance |
string |
agent before balance (decimal format) |
| agent.afterBalance |
string |
agent after balance (decimal format) |
| player.txId |
string |
player wallet transactionId |
| player.beforeBalance |
string |
player before balance (decimal format) |
| player.afterBalance |
string |
player after balance (decimal format) |
Response Example
{
"ok": true,
"result": {
"txId": "175ea1dd7c39deaa7ecef310c05973df",
"currency": "EUR",
"agent": {
"txId": "175ea1dd7c8e2427ce012029766578bb",
"beforeBalance": "9982909.49",
"afterBalance": "9982809.49"
},
"player": {
"txId": "175ea1dd7cd55d928644d6d27ce7d722",
"beforeBalance": "100",
"afterBalance": "200"
}
}
}
{
"ok": false,
"error": {
"code": "PLAYER_NOT_FOUND",
"message": "player not found"
}
}
7. Withdraw
To decrease player’s balance
POST {{api_url}}/withdraw
Request Params
| Params |
Value |
Description |
| username |
*string |
Username of the player from player.create |
| amount |
*string |
amount to deposit |
| currency |
*string |
currency in ISO-4217 |
Request Example
{
"username": "player0001",
"amount": "100",
"currency": "EUR"
}
Response Params
| Params |
Value |
Description |
| txId |
string |
transactionId |
| currency |
string |
currency in ISO-4217 |
| agent.txId |
string |
agent wallet transactionId |
| agent.beforeBalance |
string |
agent before balance (decimal format) |
| agent.afterBalance |
string |
agent after balance (decimal format) |
| player.txId |
string |
player wallet transactionId |
| player.beforeBalance |
string |
player before balance (decimal format) |
| player.afterBalance |
string |
player after balance (decimal format) |
Response Example
{
"ok": true,
"result": {
"txId": "175ea20f8d2d09b3a3137b27dc0b883d",
"currency": "EUR",
"agent": {
"txId": "175ea20f8d65d518d44f2f3aa418d0a5",
"beforeBalance": "9982809.49",
"afterBalance": "9982909.49"
},
"player": {
"txId": "175ea20f8d85bfff72d9db11fd070124",
"beforeBalance": "200",
"afterBalance": "100"
}
}
}
{
"ok": false,
"error": {
"code": "PLAYER_NOT_FOUND",
"message": "player not found"
}
}
8. History
To get player history
POST {{api_url}}/history
Request Params
| Params |
Value |
Description |
| username |
string |
player username |
| gameId |
string |
game id from games list api, empty to search all |
| roundId |
string |
round id, empty to search all |
| from |
string |
start date, format is RFC3339 |
| to |
string |
end date, format is RFC3339 |
| paginate.page |
int |
page number |
| paginate.perPage |
int |
page size (default: 30) |
Request Example
{
"username": "player0001",
"gameId": "",
"roundId": "",
"from": null,
"to": null,
"paginate": {
"page": 1,
"perPage": 2
}
}
Response Params
Provider Item
| Params |
Value |
Description |
| id |
string |
provider id |
| name |
string |
provider name |
Game Item
| Params |
Value |
Description |
| gameId |
string |
game id |
| name |
string |
game name |
| category |
string |
game category |
UserInGame Item
| Params |
Value |
Description |
| userInGame |
string |
username in provider system |
| playerId |
string |
player id |
| agentId |
int |
agent id |
| agentPrefix |
string |
agent prefix |
| currency |
string |
currency in provider system |
| username |
string |
username |
TxType Item
| Params |
Value |
Description |
| id |
int |
tx type id |
| label |
string |
tx type label |
| flag |
string |
tx type flag |
Amount Item
Ratio between provider and system currency. Mostly provider and system currency is 1:1 ratio.
Sometimes provider currency is different with system currency, so we need to convert it to system currency.
Ex. Provider currency is KIDR, system currency is IDR, so we need to convert KIDR to IDR with 1:1000 ratio.
| Params |
Value |
Description |
| playerCurrency |
string |
player wallet |
| settleCurrency |
string |
currency that will be settled with operator |
| playerToSettleRate |
string |
rate from player to settle |
| amount.providerAmount |
string |
amount in provider currency |
| amount.playerAmount |
string |
amount in player currency |
History Item
| Params |
Value |
Description |
| id |
string |
history id |
| provider |
object |
provider object |
| userInGame |
object |
userInGame object |
| game |
object |
game object |
| roundId |
string |
round id |
| walletTxId |
string |
seamless: agent’s transactionId, transfer: wallet transactionId |
| providerTxId |
string |
game reference transactionId |
| txType |
object |
txType object |
| amount |
object |
amount object |
| walletBeforeBalance |
string |
wallet before balance |
| walletAfterBalance |
string |
wallet after balance |
| receivedAt |
string |
received timestamp, format is RFC3339 |
CurrencyGroup Item is map<string, History[]> where key is currency, values is list of History items
| Params |
Value |
Description |
| currencyGroup |
object |
histories are grouped in base currency |
| paginate.page |
int |
page number start from 1 |
| paginate.perPage |
int |
how many item per page |
| paginate.next |
boolean |
have next page |
Response Example
{
"ok": true,
"result": {
"currencyGroup": {
"EUR": {
"items": [
{
"id": "17ed71c33d5d684bd10b18d816c83099",
"provider": {
"id": "pg",
"name": "Pocket Games Soft"
},
"userInGame": {
"userInGame": "2sjcc5qal9bq21ud-IDR",
"playerId": "2sjcc5qal9bq21ud",
"agentId": 9,
"agentPrefix": "2sjcc",
"currency": "IDR",
"username": "player0001"
},
"game": {
"gameId": "pg_00001",
"name": "Leprechaun Riches",
"category": "slot"
},
"roundId": "1825882618634307073",
"walletTxId": "17ed71c2e8151189ec73baeab9d19a65",
"providerTxId": "1825882618634307073-1825882618634307073-106-0",
"txType": {
"id": 2,
"label": "Settle",
"flag": ""
},
"amount": {
"playerCurrency": "IDR",
"settleCurrency": "EUR",
"playerToSettleRate": "0.0002",
"amount": {
"providerAmount": "0",
"playerAmount": "0",
}
},
"walletBeforeBalance": "5011680",
"walletAfterBalance": "5011680",
"receivedAt": "2024-08-20T13:08:34.280062+07:00"
},
{
"id": "17ed71c33d5d50bdf5f7fafed4683bf7",
"provider": {
"id": "pg",
"name": "Pocket Games Soft"
},
"userInGame": {
"userInGame": "2sjcc5qal9bq21ud-IDR",
"playerId": "2sjcc5qal9bq21ud",
"agentId": 9,
"agentPrefix": "2sjcc",
"currency": "IDR",
"username": "player0001"
},
"game": {
"gameId": "pg_00001",
"name": "Leprechaun Riches",
"category": "slot"
},
"roundId": "1825882618634307073",
"walletTxId": "17ed71c2e815058b453e6564348caf09",
"providerTxId": "1825882618634307073-1825882618634307073-106-0",
"txType": {
"id": 1,
"label": "Bet",
"flag": ""
},
"amount": {
"playerCurrency": "IDR",
"settleCurrency": "EUR",
"playerToSettleRate": "0.0002",
"amount": {
"settleAmount": "-1.6",
"playerAmount": "-1600",
}
},
"walletBeforeBalance": "5011680",
"walletAfterBalance": "5010080",
"receivedAt": "2024-08-20T13:08:34.280062+07:00"
}
]
}
},
"paginate": {
"page": 1,
"perPage": 20,
"next": true
}
}
}
{
"ok": false,
"error": {
"code": "PLAYER_NOT_FOUND",
"message": "player not found"
}
}
9. Player Daily Report
To get player daily report
POST {{api_url}}/playerDailyReport
Response is always in Base currency
Request Params
| Params |
Value |
Description |
| username |
*string |
player username |
| gameId |
string |
game id from games list api, empty to search all |
| roundId |
string |
round id, empty to search all |
| from |
*string |
start date, format is RFC3339 |
| to |
*string |
end date, format is RFC3339 |
| paginate.page |
int |
page number |
| paginate.perPage |
int |
page size (default: 30) |
Request Example
{
"username": "player0001",
"from": null,
"to": null,
"paginate": {
"page": 1,
"perPage": 2
}
}
Response Params
Player Report Item
| Params |
Value |
Description |
| playerWinLoss |
string |
player win loss |
| validTurnOver |
string |
valid turn over |
| agentWinLoss |
string |
agent win loss |
| agentCommission |
string |
agent commission |
| agentContribution |
string |
agent contribution |
| playerFreeRound |
string |
player free round amoun |
| freeRoundCount |
int |
free round count |
| Params |
Value |
Description |
| items |
object[] |
player report object |
| paginate.page |
int |
page number start from 1 |
| paginate.perPage |
int |
how many item per page |
| paginate.next |
boolean |
have next page |
Response Example
{
"ok": true,
"result": {
"items": [
{
"playerWinLoss": "-0.3771380888",
"validTurnOver": "0.3771380888",
"agentWinLoss": "0.1885690444",
"agentCommission": "0",
"agentContribution": "-0.0018856904",
"playerFreeRound": "0",
"freeRoundCount": 0,
"timestamp": "2024-08-20T13:00:00Z"
},
{
"playerWinLoss": "-0.8323673728",
"validTurnOver": "8.3226951414",
"agentWinLoss": "0.4161836864",
"agentCommission": "0",
"agentContribution": "-0.0416134758",
"playerFreeRound": "0",
"freeRoundCount": 0,
"timestamp": "2024-08-15T09:00:00Z"
},
{
"playerWinLoss": "0.1008338974",
"validTurnOver": "0.7739576284",
"agentWinLoss": "-0.0344169487",
"agentCommission": "0",
"agentContribution": "-0.0021897882",
"playerFreeRound": "4140",
"freeRoundCount": 12,
"timestamp": "2024-08-15T07:00:00Z"
},
{
"playerWinLoss": "0",
"validTurnOver": "0",
"agentWinLoss": "0",
"agentCommission": "0",
"agentContribution": "0",
"playerFreeRound": "60",
"freeRoundCount": 2,
"timestamp": "2024-08-09T15:00:00Z"
},
{
"playerWinLoss": "-0.4",
"validTurnOver": "0.4",
"agentWinLoss": "0.184",
"agentCommission": "0",
"agentContribution": "-0.00032",
"playerFreeRound": "0",
"freeRoundCount": 2,
"timestamp": "2024-08-09T14:00:00Z"
}
],
"paginate": {
"page": 1,
"perPage": 30,
"next": 1
}
}
}
{
"ok": false,
"error": {
"code": "PLAYER_NOT_FOUND",
"message": "player not found"
}
}
10. Game Logs
To get game logs
POST {{api_url}}/gameLogs
Request Params
Send gameId + username + roundId
If from and to is not specified, it will default to last 7 days.
If you need to query older data, please specify from and to in RFC3339 format.
| Params |
Value |
Description |
| gameId |
*string |
gameId from /history api items[].game.gameId |
| username |
*string |
username from /history api items[].username |
| roundId |
*string |
roundId from /history api items[].roundId |
| from |
string |
start date, format is RFC3339 |
| to |
string |
end date, format is RFC3339 |
Request Example
{
"gameId": "habanero_00001",
"username": "player0001",
"roundId": "wwsnprklgu",
"from": "2025-07-21T00:00:00+07:00",
"to": "2025-07-22T00:00:00+07:00"
}
or
{
"gameId": "habanero_00001",
"username": "player0001",
"roundId": "wwsnprklgu",
"from": "2025-07-21T00:00:00z",
"to": "2025-07-22T00:00:00z"
}
or
{
"gameId": "habanero_00001",
"username": "player0001",
"roundId": "wwsnprklgu"
}
Response Params
Some data might be empty, it depends on provider
Result Item
| Params |
Value |
Description |
| logType |
string |
see logType |
| url |
string |
iframe url |
| gameName |
string |
game name |
| gameResult |
string |
game result |
Transaction Item
| Params |
Value |
Description |
| id |
string |
transaction id |
| type |
string |
transaction type |
| providerAmount |
string |
transaction amount |
| providerCurrency |
string |
transaction currency |
| playerAmount |
string |
player amount |
| playerCurrency |
string |
player currency |
| beforeBalance |
string |
before balance |
| afterBalance |
string |
after balance |
| createdAt |
string |
transaction timestamp, format is RFC3339 |
Hands Item
| Params |
Value |
Description |
| title |
string |
hand title |
| cards[] |
string[] |
hand cards |
| result |
string |
hand result |
Pocket Item
| Params |
Value |
Description |
| number |
string |
pocket number |
| color |
string |
pocket color |
| evenOdd |
string |
pocket evenOdd |
| Params |
Value |
Description |
| providerId |
string |
provider id |
| gameType |
string |
game type |
| gameName |
string |
game name |
| roundId |
string |
round id |
| result |
object |
result object |
| transactions[] |
object[] |
transaction object list |
| hands[] |
object[] |
hands object list |
| pockets[] |
object[] |
pockets object list |
| dices[] |
string[] |
(optional) dice result |
| rows[].key |
string |
(optional) row key |
| rows[].value |
string |
(optional) row value |
| Log Type |
Description |
| nodata |
no data |
| iframe |
will send url iframe |
| hand |
will send hands json item, hand results ex. banker hands, player hands |
| roulette |
will send pocket json item, result of pocket |
| dice |
will send dices json item, array of dices result |
| table |
will send rows json item, should show in table view with given key-value |
Response Example
{
"ok": true,
"result": {
"providerId": "pg",
"gameType": "Slot",
"gameName": "Leprechaun Riches",
"roundId": "1825882618634307073",
"result": {
"logType": "iframe",
"url": "https://public.pg-staging.com//history/redirect.html?trace_id=17ef3c5a35ff0afb09d65788c2084318&psid=1825882618634307073&sid=1825882618634307073-1825882618634307073-106-0&lang=en&type=operator&t=6269A17A-B45C-4C07-844E-0ABFF3310A6D",
"gameName": "",
"gameResult": ""
},
"transactions": [
{
"id": "1825882618634307073-1825882618634307073-106-0",
"type": "Bet",
"providerAmount": "-1.6",
"providerCurrency": "IDR",
"playerAmount": "-1.6",
"playerCurrency": "IDR",
"beforeBalance": "5011680",
"afterBalance": "5010080",
"createdAt": "2024-08-20T13:08:34.280062+07:00"
},
{
"id": "1825882618634307073-1825882618634307073-106-0",
"type": "Settle",
"providerAmount": "0",
"providerCurrency": "IDR",
"playerAmount": "0",
"playerCurrency": "IDR",
"beforeBalance": "5011680",
"afterBalance": "5011680",
"createdAt": "2024-08-20T13:08:34.280062+07:00"
}
]
}
}
11. Providers
To get list of providers, please send agentSystemCurrency to get the correct bet limits
If you don't send agentSystemCurrency, the response will use base currency
POST {{api_url}}/providers
Request Params
| Params |
Value |
Description |
| agentSystemCurrency |
string |
agent system currency |
Request Example
{
"agentSystemCurrency": "IDR"
}
Response Params
| Params |
Value |
Description |
| items[].id |
string |
providerId |
| items[].name |
string |
provider name |
| items[].logoUrl |
string |
provider logo url |
| items[].active |
boolean |
provider active status |
| items[].online |
boolean |
provider online status |
| items[].categories[] |
[]object |
provider categories |
| items[].categories[].id |
string |
category id |
| items[].categories[].label |
string |
category label |
| items[].categories[].betLimits |
object |
betLimits object |
Bet Limits Item
| Params |
Value |
Description |
| id |
string |
Bet Limit ID |
| label |
string |
Bet Limit Label |
| info |
object |
Bet Limit Info |
{
"ok": true,
"result": {
"items": [
{
"id": "pg",
"name": "Pocket Games Soft",
"logoUrl": "https://cdn.zgaggregator.com/17e2088b03ac99bf23be7e656d88926d",
"active": true,
"online": true,
"categories": [
{
"id": "slot",
"label": "Slot"
}
]
},
{
"id": "pp",
"name": "Pragmatic Play",
"logoUrl": "https://cdn.zgaggregator.com/17e208872f9db8d10e959de030b465a1",
"active": true,
"online": true,
"categories": [
{
"id": "slot",
"label": "Slot"
}
]
},
{
"id": "sbo",
"name": "SBOBET",
"logoUrl": "https://cdn.nonprod-external.com/1767029152107142844e32d3e41c2398",
"active": true,
"online": true,
"categories": [
{
"id": "live_casino",
"label": "Live Casino",
"betLimits": [
{
"id": "1",
"label": "Low",
"isDefault": true
},
{
"id": "2",
"label": "Medium",
"isDefault": false
},
{
"id": "3",
"label": "High",
"isDefault": false
},
{
"id": "4",
"label": "VIP",
"isDefault": false
}
]
},
{
"id": "slot",
"label": "Slot",
"betLimits": []
},
{
"id": "sport",
"label": "Sport",
"betLimits": [
{
"id": "100001",
"label": "1 - 50,000 (max per match 200,000)",
"isDefault": true
},
{
"id": "100002",
"label": "10,000 - 100,000 (max per match 500,000)",
"isDefault": false
},
{
"id": "100003",
"label": "100,000 - 500,000 (max per match 1,000,000)",
"isDefault": false
}
]
}
]
}
]
}
}
12. Create free round
To create free rounds for a player for a specific game
POST {{api_url}}/freeRound
Request Params
| Params |
Value |
Description |
| currency |
string |
currency when player luanch game |
| bonusCode |
string |
unique code to send to provider for reference |
| username |
string |
player's username |
| gameId |
string |
gameId that free game will occure |
| from |
string |
from date that free game will be avialiable. format is RFC3339 (note that some providers will support this parameter) |
| to |
string |
to date that free game will be avialiable. format is RFC3339 (note that some providers will support this parameter) |
| rounds |
integer |
number of free games giving out |
| betAmount |
string |
betAmount giving per game in string decimal format. (note that some providers will be totalBet or line betAmount) |
Request Example
{
"currency": "IDR",
"bonusCode": "freeRound0001",
"username": "player0001",
"gameId": "pg_00001",
"from": "2024-08-20T13:08:34.280062+07:00",
"to": "2024-08-20T13:08:34.280062+07:00",
"rounds": 10,
"betAmount": "1.6"
}
Response Params
| Params |
Value |
Description |
| id |
string |
free round id that created on ifuse system |
| providerId |
string |
provider id of created free round |
| gameId |
string |
gameId of created free round |
| username |
string |
return username of that user tie to the currency of the provider |
| agentId |
string |
agentId of that username |
| betAmount |
string |
bet amount of that free round |
| playerCurrency |
string |
currency of that player's wallet |
| providerCurrency |
string |
currency of that provider key |
| rounds |
integer |
number of free games giving out |
| freeRoundCode |
string |
This freeRoundCode will be matched when player plays that game associated with bonusCode |
| freeRoundId |
string |
freeRoundId that created on provider system, can be used to cancel free round |
Response Example
{
"ok": true,
"result": {
"id": "18371997db6d6bf10b449f2fc03c77c7",
"providerId": "pg",
"gameId": "pg_00013",
"username": "player0001",
"agentId": 9,
"betAmount": "20",
"playerCurrency": "IDR",
"providerCurrency": "IDR",
"rounds": 1,
"freeRoundCode": "24bb1c5d-e7f3-44d5-8032-4f41598007d9",
"freeRoundId": "273183",
"startTime": "2025-03-15T00:00:00+07:00",
"endTime": "2025-04-20T00:00:00+07:00",
"createdAt": "2025-04-17T12:05:20.641493611Z",
"canceledAt": "0001-01-01T00:00:00Z"
}
}
Response Example
- When bonusCode is duplicated per provider
{
"ok": false,
"error": {
"code": "BONUS_CODE_ALREADY_EXISTS",
"message": "bonusCode already exists"
}
}
13. Get free round
To get free rounds detail for a player from the provider
POST {{api_url}}/getFreeRound
Request Params
| Params |
Value |
Description |
| id |
string |
free round id that created on ifuse system |
Request Example
{
"id": "18371997db6d6bf10b449f2fc03c77c7"
}
Response Params
| Params |
Value |
Description |
| id |
string |
free round id that created on ifuse system |
| providerId |
string |
provider id of created free round |
| gameId |
string |
gameId of created free round |
| username |
string |
return username of that user tie to the currency of the provider |
| agentId |
string |
agentId of that username |
| betAmount |
string |
bet amount of that free round |
| playerCurrency |
string |
currency of that player's wallet |
| providerCurrency |
string |
currency of that provider key |
| rounds |
integer |
number of free games giving out |
| freeRoundCode |
string |
This freeRoundCode will be matched when player plays that game associated with bonusCode |
| freeRoundId |
string |
freeRoundId that created on provider system, can be used to cancel free round |
| info |
string |
info from provider, will be in JSON string format |
Response Example
{
"ok": true,
"result": {
"id": "1837197fe213afe2b342ef2aa6bdea52",
"providerId": "pg",
"gameId": "pg_00013",
"username": "player0001",
"agentId": 9,
"betAmount": "20",
"playerCurrency": "IDR",
"providerCurrency": "IDR",
"rounds": 1,
"freeGameCode": "a1f33cb7-2ef2-4ce1-8c94-c46a38e5062e",
"freeGameId": "273182",
"startAt": "2025-03-15T00:00:00Z",
"endAt": "2025-04-20T00:00:00Z",
"createdAt": "2025-04-17T12:03:37.673838Z",
"canceledAt": "2025-04-17T12:03:46.190973Z",
"info": "{\"totalCount\":0,\"totalPage\":0,\"result\":[{\"freeGameId\":247814,\"freeGameName\":\"\",\"playerName\":\"2sjcc5qal9bq21ud-IDR\",\"currencyCode\":\"IDR\",\"totalFreeGame\":1,\"coinSize\":0.04,\"multiplier\":1,\"payout\":1.92,\"remainCount\":0,\"conversionType\":\"Cash\",\"transactionId\":\"\",\"isEvent\":false,\"gameIds\":null,\"totalGame\":0,\"status\":3,\"createdTime\":1723098520000,\"updatedTime\":1723099591221}]}"
}
}
14. Cancel free round
To cancel free rounds for a player from the provider
POST {{api_url}}/cancelFreeRound
Request Params
| Params |
Value |
Description |
| id |
string |
free round id that created on ifuse system |
Request Example
{
"id": "18371997db6d6bf10b449f2fc03c77c7"
}
15. Set Player Bet Limits
To set player bet limits
POST {{api_url}}/setPlayerBetLimits
Request Params
| Params |
Value |
Description |
| username |
string |
player's username |
| providerId |
string |
provider id |
| agentSystemCurrency |
string |
agent system currency |
| categories |
[]object |
Categories Bet Limit object |
Categories Bet Limit object
| Params |
Value |
Description |
| category |
string |
category id |
| ids |
[]string |
bet limit ids |
Request Example
{
"username": "player0001",
"providerId": "sbo",
"agentSystemCurrency": "IDR",
"categories": [
{
"category": "sport",
"ids": [
"100001", "100002"
]
}
]
}
Response Params
| Params |
Value |
Description |
| ok |
boolean |
true if success |
| error |
object |
error object if failed |
| error.code |
string |
error code |
| error.message |
string |
error message |
Response Example
{
"ok": true
}
16. Create free chip
To create free chips for a player for a specific game
POST {{api_url}}/freeChip
Request Params
| Params |
Value |
Description |
| currency |
string |
currency when player luanch game |
| bonusCode |
string |
unique code to send to provider for reference |
| usernames |
[]string |
player's usernames in array |
| gameId |
string |
gameId that free game will occure |
| from |
string |
from date that free game will be avialiable. format is RFC3339 (note that some providers will support this parameter) |
| to |
string |
to date that free game will be avialiable. format is RFC3339 (note that some providers will support this parameter) |
| rounds |
integer |
number of free games giving out |
| betAmount |
string |
betAmount giving per chip in string decimal format. (note that must be equal to chip amount in game) |
Request Example
{
"currency": "THB",
"bonusCode": "freeChip0001",
"usernames": ["player0001"],
"gameId": "pp_00323",
"from": "2024-08-20T13:08:34.280062+07:00",
"to": "2024-08-20T13:08:34.280062+07:00",
"rounds": 2,
"betAmount": "500"
}
Response Params
| Params |
Value |
Description |
| id |
string |
free chip id that created on ifuse system |
| providerId |
string |
provider id of created free chip |
| gameId |
string |
gameId of created free chip |
| usernames |
[]string |
return usernames of that users tie to the currency of the provider |
| agentId |
string |
agentId of that usernames |
| betAmount |
string |
bet amount of that free chip |
| playerCurrency |
string |
currency of that player's wallet |
| providerCurrency |
string |
currency of that provider key |
| rounds |
integer |
number of free games giving out |
| freeChipCode |
string |
This freeChipCode will be matched when player plays that game associated with bonusCode |
| freeChipId |
string |
freeChipId that created on provider system, can be used to cancel free chip |
Response Example
{
"ok": true,
"result": {
"id": "18371997db6d6bf10b449f2fc03c77c7",
"providerId": "pg",
"gameId": "pg_00013",
"usernames": ["player0001"],
"agentId": 9,
"betAmount": "20",
"playerCurrency": "IDR",
"providerCurrency": "IDR",
"rounds": 1,
"freeChipCode": "24bb1c5d-e7f3-44d5-8032-4f41598007d9",
"freeChipId": "273183",
"startTime": "2025-03-15T00:00:00+07:00",
"endTime": "2025-04-20T00:00:00+07:00",
"createdAt": "2025-04-17T12:05:20.641493611Z",
"canceledAt": "0001-01-01T00:00:00Z"
}
}
Response Example
- When bonusCode is duplicated per provider
{
"ok": false,
"error": {
"code": "BONUS_CODE_ALREADY_EXISTS",
"message": "bonusCode already exists"
}
}
17. Get free chip
To get free chip detail for a player from the provider
POST {{api_url}}/getFreeChip
Request Params
| Params |
Value |
Description |
| id |
string |
free chip id that created on ifuse system |
| username |
string |
username of player |
Request Example
{
"id": "18371997db6d6bf10b449f2fc03c77c7",
"username": "player0001"
}
Response Params
| Params |
Value |
Description |
| id |
string |
free chip id that created on ifuse system |
| providerId |
string |
provider id of created free chip |
| gameId |
string |
gameId of created free chip |
| usernames |
[]string |
return array usernames of that user tie to the currency of the provider |
| agentId |
string |
agentId of that usernames |
| betAmount |
string |
bet amount of that free chip |
| playerCurrency |
string |
currency of that player's wallet |
| providerCurrency |
string |
currency of that provider key |
| rounds |
integer |
number of free games giving out |
| freeChipCode |
string |
This freeChipCode will be matched when player plays that game associated with bonusCode |
| freeChipId |
string |
freeChipId that created on provider system, can be used to cancel free chip |
| info |
string |
info from provider, will be in JSON string format |
Response Example
{
"ok": true,
"result": {
"id": "1837197fe213afe2b342ef2aa6bdea52",
"providerId": "pg",
"gameId": "pg_00013",
"usernames": ["player0001"],
"agentId": 9,
"betAmount": "20",
"playerCurrency": "IDR",
"providerCurrency": "IDR",
"rounds": 1,
"freeGameCode": "a1f33cb7-2ef2-4ce1-8c94-c46a38e5062e",
"freeGameId": "273182",
"startAt": "2025-03-15T00:00:00Z",
"endAt": "2025-04-20T00:00:00Z",
"createdAt": "2025-04-17T12:03:37.673838Z",
"canceledAt": "2025-04-17T12:03:46.190973Z",
"info": ""
}
}
18. Cancel free chip
To cancel free chip for a player from the provider
POST {{api_url}}/cancelFreeChip
Request Params
| Params |
Value |
Description |
| id |
string |
free chip id that created on ifuse system |
Request Example
{
"id": "18371997db6d6bf10b449f2fc03c77c7"
}