1. Overview
This document describes the transfer wallet integration between casino and merchant. In transfer wallet, the member's balance is kept at casino.
1.1 Items provided by casino
- casino endpoint
- casino merchant code
- casino merchant token
2. User authentication
Merchant will call this casino API to get the url of the game for a specified user. The API will create new member if it is not found in casino system.
URL :
<casino endpoint>/auth
2.1 Request format
Method : POST
Content type : JSON
Content type : JSON
Header
| Key | Value |
|---|---|
| merchant-code | Provided by casino |
| merchant-token | Provided by casino |
Content
| Field | Type | Description | Mandatory |
|---|---|---|---|
| user | object | y | |
| user.id | integer | Unique identifier for user | y |
| user.name | string | Name | y |
| user.currency | string | ISO 4217 code, can't change In staging environment, currency will be hardcoded to UAT |
y |
| user.language | string | Game language, ISO 639-1 code | y |
| user.bet_limit | integer | Refer to casino for latest bet limit Default bet limit by currency will be used if not defined |
n |
| table | integer | Launch direct to table Refer to casino for table ID |
n |
{
"user":
{
"id":1,
"name":"tester01",
"currency":"USD",
"language":"en",
"bet_limit":1,
},
"table":1
}
"user":
{
"id":1,
"name":"tester01",
"currency":"USD",
"language":"en",
"bet_limit":1,
},
"table":1
}
2.2 Response format
Content
| Field | Type | Description |
|---|---|---|
| status | integer | 0 if fail, 1 if success |
| member_id | integer | casino member id |
| launch_url | string | Launch URL |
| error | string | Error details if fail |
Success
{"status":1,
"member_id":10001,
"launch_url":"http://test.com",
}
Error
{"status":0,
"error":"UNAUTHORIZED_ACCESS",
}
Error code
| Error code | Description |
|---|---|
| UNAUTHORIZED_ACCESS | Invalid merchant token |
| INVALID_USER_PARAMS | Invalid format for user object |
| INVALID_GAME_PARAMS | Invalid format for game object |
| MEMBER_CREATION_FAILED | Fail to create member |
| INTERNAL_ERROR | System error |
3. Member Balance
Merchant will call this casino API to get the balance for a specified user.
URL :
<casino endpoint>/balance
3.1 Request format
Method : POST
Content type : JSON
Content type : JSON
Header
| Key | Value |
|---|---|
| merchant-code | Provided by casino |
| merchant-token | Provided by casino |
Content
| Field | Type | Description | Mandatory |
|---|---|---|---|
| member_id | integer | casino member id | y |
{
"member_id":1001
}
"member_id":1001
}
3.2 Response format
Content
| Field | Type | Description |
|---|---|---|
| status | integer | 0 if fail, 1 if success |
| balance | decimal(20,2) | Latest member balance |
| error | string | Error details if fail |
Success
{"status":1,
"balance":999.99,
}
Error
{"status":0,
"error":"UNAUTHORIZED_ACCESS",
}
Error code
| Error code | Description |
|---|---|
| UNAUTHORIZED_ACCESS | Invalid merchant token |
| MEMBER_NOT_EXIST | Member not found in casino system |
| INTERNAL_ERROR | System error |
4. Transfer
Merchant will call this casino API to get the add or deduct balance for a specified user.
URL :
<casino endpoint>/transfer
4.1 Request format
Method : POST
Content type : JSON
Content type : JSON
Header
| Key | Value |
|---|---|
| merchant-code | Provided by casino |
| merchant-token | Provided by casino |
Content
| Field | Type | Description | Mandatory |
|---|---|---|---|
| member_id | integer | casino member id | y |
| txn_id | integer | Merchant transaction ID for reference usage | y |
| amount | decimal(20,2) | Amount to transfer +ve for transfer in -ve for transfer out |
y |
{
"member_id":1001,
"txn_id":1,
"amount":100
}
"member_id":1001,
"txn_id":1,
"amount":100
}
4.2 Response format
Content
| Field | Type | Description |
|---|---|---|
| status | integer | 0 if fail, 1 if success |
| balance | decimal(20,2) | Latest member balance |
| error | string | Error details if fail |
Success
{"status":1,
"balance":999.99
}
Error
{"status":0,
"error":"UNAUTHORIZED_ACCESS",
}
Error code
| Error code | Description |
|---|---|
| UNAUTHORIZED_ACCESS | Invalid merchant token |
| MEMBER_NOT_EXIST | Member not found in casino system |
| INVALID_AMOUNT | Invalid amount |
| INSUFFICIENT_FUNDS | Member do not have enough funds to transfer out |
| INTERNAL_ERROR | System error |
5. Transfer status
Merchant will call this casino API to check the transfer status.
URL :
<casino endpoint>/transfer/status
5.1 Request format
Method : POST
Content type : JSON
Content type : JSON
Header
| Key | Value |
|---|---|
| merchant-code | Provided by casino |
| merchant-token | Provided by casino |
Content
| Field | Type | Description | Mandatory |
|---|---|---|---|
| txn_id | integer | Merchant transaction ID for reference usage | y |
{
"txn_id":1,
}
"txn_id":1,
}
5.2 Response format
Content
| Field | Type | Description |
|---|---|---|
| status | integer | 0 if fail, 1 if success |
| txn_status | integer | 0 if fail, 1 if success |
| error | string | Error details if fail |
Success
{"status":1,
"txn_status":1
}
Error
{"status":0,
"error":"UNAUTHORIZED_ACCESS",
}
Error code
| Error code | Description |
|---|---|
| UNAUTHORIZED_ACCESS | Invalid merchant token |
| INTERNAL_ERROR | System error |
6. Check wager
Merchant can use this API to check the results of wager. Only settled wager will be retrieved.
URL :
<casino endpoint>/wager
6.1 Request format
Method : POST
Content type : JSON
Content type : JSON
Header
| Key | Value |
|---|---|
| merchant-code | Provided by casino |
| merchant-token | Provided by casino |
Content
| Field | Type | Description | Mandatory |
|---|---|---|---|
| txn_id | integer | Transaction ID | y (not mandatory when time is used) |
| from_time | datetime | UTC timezone ISO 8601 format Maximum 3 hour data |
n |
| to_time | datetime | UTC timezone ISO 8601 format Maximum 3 hour data |
n |
| details | integer | 0 = no details 1 = with details |
n |
{
"from_time":"2000-01-01T00:00:00",
"to_time":"2000-01-01T02:00:00",
"details":1
}
"from_time":"2000-01-01T00:00:00",
"to_time":"2000-01-01T02:00:00",
"details":1
}
6.2 Response format
Content
| Field | Type | Description |
|---|---|---|
| status | integer | 0 if fail, 1 if success |
| wager | array | |
| wager.game_id | integer | Refer appendix |
| wager.round_id | integer | Round ID |
| wager.ext_round_id | string | Round ID shown in the game and video If empty string means wager.round_id is shown instead |
| wager.txn_id | integer | Transaction ID |
| wager.member_id | integer | casino member ID |
| wager.stakes | decimal(20,2) | Stakes |
| wager.stakes_valid | decimal(20,2) | Valid stakes |
| wager.payout | decimal(20,2) | Payout |
| wager.is_cancel | integer | 0=normal 1=cancel |
| wager.debit_time | datetime | UTC timezone ISO 8601 format |
| wager.credit_time | datetime | UTC timezone ISO 8601 format |
| wager.currency | string | ISO 4217 code In staging environment, currency will be hardcoded to UAT |
| wager.table_id | integer | Table ID |
| wager.ip_addr | string | Member's IP address |
| details | array | Will be available if request "details" = 1 Refer appendix |
| error | string | Error details if fail |
Success
{"status":1,
"wager":[
{
"game_id":1,
"round_id":50,
"ext_round_id":"",
"txn_id":1000,
"member_id":5000,
"stakes":100.00,
"stakes_valid":100.00,
"payout":195.00,
"is_cancel":0,
"debit_time":"2000-12-01T00:18:00.000",
"credit_time":"2000-12-01T00:18:00.000",
"currency":"USD",
"table_id":1
}],
"details":[
{
"txn_id":1000,
...
}]
}
Error
{"status":0,
"error":"UNAUTHORIZED_ACCESS",
}
Error code
| Error code | Description |
|---|---|
| UNAUTHORIZED_ACCESS | Invalid merchant token |
| INTERNAL_ERROR | System error |
7. Appendix
7.1 Game ID
| Key | Value |
|---|---|
| 1 | Baccarat |
| 2 | Dragon Tiger |
7.2 Card ID
| Key | Value |
|---|---|
| Suit + Number | S = Spade suit H = Heart suit C= Club suit D = Diamond suit 1 = Ace 2-10 = Number card J,Q,K = Face card example: S1 = Spade Ace HK = Heart King C10 = Club 10 |
7.3 Game details - format
Game ID : 1
| Field | Type | Description |
|---|---|---|
| comm | integer | 0=no commission 1=commission |
| bet_player | decimal(20,2) | Total bets on player |
| bet_banker | decimal(20,2) | Total bets on banker |
| bet_tie | decimal(20,2) | Total bets on tie |
| bet_playerpair | decimal(20,2) | Total bets on player pair |
| bet_bankerpair | decimal(20,2) | Total bets on banker pair |
| bet_luckysix | decimal(20,2) | Total bets on lucky six |
| bet_luckyseven | decimal(20,2) | Total bets on lucky seven |
| bet_superluckyseven | decimal(20,2) | Total bets on super lucky seven |
| bet_smalldragon | decimal(20,2) | Total bets on small dragon |
| bet_bigdragon | decimal(20,2) | Total bets on big dragon |
| bet_smalltiger | decimal(20,2) | Total bets on small tiger |
| bet_bigtiger | decimal(20,2) | Total bets on big tiger |
| bet_dragontiger | decimal(20,2) | Total bets on dragon tiger |
| bet_tigerpair | decimal(20,2) | Total bets on tiger pair |
| bet_eitherpair | decimal(20,2) | Total bets on either pair |
| bet_perfectpair | decimal(20,2) | Total bets on perfect pair |
| bet_dragonseven | decimal(20,2) | Total bets on dragon seven |
| bet_pandaeight | decimal(20,2) | Total bets on panda eight |
| bet_playerdragon | decimal(20,2) | Total bets on player dragon |
| bet_bankerdragon | decimal(20,2) | Total bets on banker dragon |
| bet_superpair | decimal(20,2) | Total bets on super pair |
| bet_tigertie | decimal(20,2) | Total bets on tiger tie |
| bet_playerheaven | decimal(20,2) | Total bets on player heaven |
| bet_bankerheaven | decimal(20,2) | Total bets on banker heaven |
| bet_heavencard | decimal(20,2) | Total bets on heaven card |
| bet_supertie0 | decimal(20,2) | Total bets on super tie 0 |
| bet_supertie1 | decimal(20,2) | Total bets on super tie 1 |
| bet_supertie2 | decimal(20,2) | Total bets on super tie 2 |
| bet_supertie3 | decimal(20,2) | Total bets on super tie 3 |
| bet_supertie4 | decimal(20,2) | Total bets on super tie 4 |
| bet_supertie5 | decimal(20,2) | Total bets on super tie 5 |
| bet_supertie6 | decimal(20,2) | Total bets on super tie 6 |
| bet_supertie7 | decimal(20,2) | Total bets on super tie 7 |
| bet_supertie8 | decimal(20,2) | Total bets on super tie 8 |
| bet_supertie9 | decimal(20,2) | Total bets on super tie 9 |
| win_player | decimal(20,2) | Total winnings on player |
| win_banker | decimal(20,2) | Total winnings on banker |
| win_tie | decimal(20,2) | Total winnings on tie |
| win_playerpair | decimal(20,2) | Total winnings on player pair |
| win_bankerpair | decimal(20,2) | Total winnings on banker pair |
| win_luckysix | decimal(20,2) | Total winnings on lucky six |
| win_luckyseven | decimal(20,2) | Total winnings lucky seven |
| win_superluckyseven | decimal(20,2) | Total winnings super lucky seven |
| win_smalldragon | decimal(20,2) | Total winnings small dragon |
| win_bigdragon | decimal(20,2) | Total winnings big dragon |
| win_smalltiger | decimal(20,2) | Total winnings small tiger |
| win_bigtiger | decimal(20,2) | Total winnings big tiger |
| win_dragontiger | decimal(20,2) | Total winnings dragon tiger |
| win_tigerpair | decimal(20,2) | Total winnings tiger pair |
| win_eitherpair | decimal(20,2) | Total winnings either pair |
| win_perfectpair | decimal(20,2) | Total winnings perfect pair |
| win_dragonseven | decimal(20,2) | Total winnings dragon seven |
| win_pandaeight | decimal(20,2) | Total winnings panda eight |
| win_playerdragon | decimal(20,2) | Total winnings player dragon |
| win_bankerdragon | decimal(20,2) | Total winnings banker dragon |
| win_superpair | decimal(20,2) | Total winnings super pair |
| win_tigertie | decimal(20,2) | Total winnings tiger tie |
| win_playerheaven | decimal(20,2) | Total winnings player heaven |
| win_bankerheaven | decimal(20,2) | Total winnings banker heaven |
| win_heavencard | decimal(20,2) | Total winnings heaven card |
| win_supertie0 | decimal(20,2) | Total winnings super tie 0 |
| win_supertie1 | decimal(20,2) | Total winnings super tie 1 |
| win_supertie2 | decimal(20,2) | Total winnings super tie 2 |
| win_supertie3 | decimal(20,2) | Total winnings super tie 3 |
| win_supertie4 | decimal(20,2) | Total winnings super tie 4 |
| win_supertie5 | decimal(20,2) | Total winnings super tie 5 |
| win_supertie6 | decimal(20,2) | Total winnings super tie 6 |
| win_supertie7 | decimal(20,2) | Total winnings super tie 7 |
| win_supertie8 | decimal(20,2) | Total winnings super tie 8 |
| win_supertie9 | decimal(20,2) | Total winnings super tie 9 |
| result_player_card | string | Refer card id in appendix 2-3 cards,separated by comma example S1,S2,S3 |
| result_banker_card | string | Refer card id in appendix 2-3 cards,separated by comma example S1,S2,S3 |
Game ID : 2
| Field | Type | Description |
|---|---|---|
| bet_dragon | decimal(20,2) | Total bets on dragon |
| bet_tiger | decimal(20,2) | Total bets on tiger |
| bet_tie | decimal(20,2) | Total bets on tie |
| win_dragon | decimal(20,2) | Total winnings on dragon |
| win_tiger | decimal(20,2) | Total winnings on tiger |
| win_tie | decimal(20,2) | Total winnings on tie |
| result_dragon_card | string | Refer card id in appendix 1 card only example: S1 |
| result_tiger_card | string | Refer card id in appendix 1 card only example: S1 |