API For Hotdog Seamless
Version: V1.6.3
API Summary Document Version Getting Started  1.1 Demo Play  1.2 Get Game Result  1.3 Single Login  1.4 Exit Game  1.5 Online Status  1.6 Get Game List  1.7 Get Bet Options  1.8 Get Player Stats  2.1 Get Balance  2.2 Place Bet  2.3 Win/Settle  2.4 Rollback  2.5 Cashbonus  2.6 Exit Appendix  1. Currency Code  2. Language Code  3. Error Code  4. Encrytion  5. Test kit
Hotdog Staging Enviroment Endpoint: https://seamless.hotdog-gaming.com
Hotdog Production Enviroment Endpoint: https://seamless.hotdog-yee.com

Section 1: Available APIs for Agent Interaction

Hotdog provides these corresponding APIs interfaces for Agent to call.

Section 2: Integration APIs for Hotdog Interaction

Hotdog will actively call Agent APIs interface and Agent needs to obtain the corresponding information to the Hotdog server.

Document Version
No. Document Description Date Version
1 Add single round result page 2024-06-15 1.2
2 Add supported currencies & language 2024-09-10 1.3
3 Add singlelogin and add exitgame function 2024-09-15 1.3.1
4 Add game exit callback and add onlinestatus api 2024-09-30 1.3.2
5 Add game list and modify supported currencies 2024-12-12 1.3.3
6 Modify supported currencies 2024-12-12 1.3.4
7 Add Cash Bonus 2024-12-31 1.4
8 Add session_id description for win&rollback api, Add parent_id,amount in win api 2025-01-06 1.4.1
9 Add New Currency for PGK 2025-03-03 1.4.2
10 Add image url for banner 300x300 size Get Game List API 2025-04-07 1.4.3
11 Add New API for Bet Options 2025-04-09 1.5
12 Add New API for Get Player/Agent Stats 2025-04-23 1.6
13 Add image url for banner 380x500 size Get Game List API 2025-07-09 1.6.1
14 Add optional "bet_completed" parameter in win request 2025-10-31 1.6.2
15 Add optional parameter "mcode" in Single Login request. It is for sub agent flag 2026-01-12 1.6.3
16 Add Appendix: Test Kit 2026-03-31 1.6.4
17 Add parameter "code" to rollback response 2026-04-11 1.6.5
Getting Started
1.1 Demo Play : POST {Hotdog Endpoint}/demo (Type Json)

Get demo play, service actived for Staging Enviroment ONLY. Launch demo using production API will auto redirect to staging enviroment demo service

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
agent_id String Yes Provided by Hotdog
game_id String Yes Provided by Hotdog
language String Yes Please refer to Language Code
return_url String Optional Redirect url when player exit game
Response Body :
Key Type Required Description
status Boolean Yes true on success, false on failure
url String Yes Demo game running address
Sample Request :
{
    "agent_id": ""Agent1",
    "game_id": "hd-bull-bull",
    "language": "en",
    "return_url": "https://agentsite.com"
}
Sample Response :
{
    "status": true,
    "url": "https://example.com?game=hd-bull-bull&code=xxxxx"
}
1.2 Get Game Result : POST {Hotdog Endpoint}/result (Type Json)

Get result page for single round

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
agent_id String Yes Provided by Hotdog
round_id String Yes Generated by Hotdog
Response Body :
Key Type Required Description
status Boolean Yes true on success, false on failure
url String Yes Browser open url directly, will expired in 10 minutes
Sample Request :
{
    "agent_id": "Agent1",
    "round_id": "23567689072"
}
Sample Response :
{
    "status": true,
    "url": "https://example.com/result?code=GK6BMY"
}
1.3 Single Login : POST {Hotdog Endpoint}/singlelogin (Type Json)

Launch lobby/game & SingleLogin (Please provide your balance endpoint before launch game, HOTDOG will try to get player's balance from agent when launch game, you will receive error FAILED_GET_BALANCE_AGENT when it failed to get balance.)
Lanuch to HOTDOG Gaming lobby set game_id as "lobby" in your request and Lanuch to Specified game(hd-bull-bull) set game_id as "hd-bull-bull"

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
agent_id String Yes Provided by Hotdog
game_id String Yes Provided by Hotdog
player_id String Yes Player id from Agent, numbers, english letters, @, #, -, _, 3-20 characters.
session_id String Yes Unique,Generated by Agent,Use in following communicate API
language String Yes Please refer to Language Code
currency String Yes Please refer to Currency Code
return_url String Optional Redirect url when player exit game
mcode String Optional It is for sub agent flag
Response Body :
Key Type Required Description
status Boolean Yes true on success, false on failure
url String Yes Game running address
Sample Request :
{
    "agent_id": "Agent1",
    "game_id": "hd-bull-bull",
    "player_id": "PLAYER1",
    "session_id": "c4ca4238a0b923820dcc509a6f75849b",
    "language": "en",
    "currency": "USD",
    "return_url": "https://agentsite.com",
    "mcode": "pipo"
}
Sample Response :
{
    "status": true,
    "url": "https://example.com?game=hd-bull-bull&code=xxxxx"
}
1.4 Exit Game : POST {Hotdog Endpoint}/exitgame (Type Json)

Exit Game directly then callback Agent's exit api

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
agent_id String Yes Provided by Agent
game_id String Yes Provided by Hotdog
player_id String Yes Player id from Agent
Response Body :
Key Type Required Description
status Boolean Yes true on success, false on failure
Sample Request :
{
    "agent_id": "Agent1",
    "game_id": "hd-bull-bull",
    "player_id": "PLAYER1"
}
Sample Response :
{
    "status": true
}
1.5 Online Status : POST {Hotdog Endpoint}/onlinestatus (Type Json)

Check player online status at Hotdog

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
agent_id String Yes Provided by Agent
game_id String Yes Provided by Hotdog
player_id String Yes Player id from Agent
Response Body :
Key Type Required Description
status Boolean Yes true on success, false on failure
online Boolean Yes true is online, false is offline
Sample Request :
{
    "agent_id": "Agent1",
    "game_id": "hd-bull-bull",
    "player_id": "PLAYER1"
}
Sample Response :
{
    "status": true,
    "online": true
}
1.6 Get Game List : POST {Hotdog Endpoint}/game/list (Type Json)

Get game list for Hotdog

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
currency String Yes Please refer to Currency Code
agent_id String Yes Provide by HOTDOG
Response Body :
Key Type Required Description
list Game List Yes Game list, please refer to Sample Response for format
Game List :
Key Type Required Description
id string Yes Unique identifier for the game
game string Yes Game name identifier (usually matches id)
name string Yes Display name of the game
ecode string Yes Short game code/abbreviation
logo_url string Yes URL to the game's logo image
image_url string Yes Primary banner image URL for the game
image_url_300x300 string Yes Square thumbnail image URL (300×300 pixels)
image_url_380x500 string Yes Portrait banner image URL (380×500 pixels)
type string Yes Game type/format (e.g., "3x5 slot")
rtp string Yes Return to Player percentage (e.g., "97.50%")
betline integer Yes Number of betting lines/paylines in the game
multiplier string Yes Maximum win multiplier (e.g., "5000x")
volatility string Yes Risk level (Low/Medium/High)
betsize array Yes Array of bet size options, each containing [coin value, max bet] pairs
freegame_chance string Yes Probability of triggering free games (e.g., "0.55%")
Sample Request :
{
    "currency": "USD",
	"agent_id": "1"
}
Sample Response :
{
    "list": [
        {
            "id": "hd-labubu-win",
            "game": "hd-labubu-win",
            "name": "Labubu Win!",
            "ecode": "LBW",
            "logo_url": "https://examples.com/icons/hd-labubu-win.png",
            "image_url": "https://examples.com/banners/hd-labubu-win.png",
            "image_url_300x300": "https://examples.com/banners/300x300/hd-labubu-win.png",
            "image_url_380x500": "https://examples.com/banners/380x500/hd-labubu-win.png",
            "type": "3x5 slot",
            "rtp": "97.50%",
            "betline": 30,
            "multiplier": "5000x",
            "volatility": "High",
            "betsize": [
                [
                    1.5,
                    300
                ],
                [
                    1.5,
                    600
                ],
                [
                    1.5,
                    900
                ]
            ],
            "freegame_chance": "0.55%"
        }
    ]
}
1.7 Get Bet Options : POST {Hotdog Endpoint}/game/betoptions (Type Json)

Get Bet Options for Hotdog(bet size details by level)

Header :
Key Type Required Description
--
Request Body :
Key Type Required Description
currency String Yes MUST currency supported by HOTDOG
level Integer Yes MUST 1,2,3,4,5
Response Body :
Key Type Required Description
level Integer Yes Player's bet limit setting
options Array Yes Player's bet limit setting
Sample Request :
{
    "currency": "THB",
	"level": 3
}
Sample Response :
{
    "level": 3,
    "options": [
        0.05,
        0.1,
        0.5,
        1,
        2,
        3
    ]
}
1.8 Get Player Stats : POST {Hotdog Endpoint}/playerstats (Type Json)

Get Player/Agent Stats, Time range max 30 days.

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
agent_id String Yes Provided by HOTDOG
player_id String Optional Player id from Agent
game_id String Optional Provided by HOTDOG
start_timestamp Integer Yes Query start time
end_timestamp Integer Yes Query end time
Response Body :
Key Type Required Description
status Boolean Yes true on success, false on failure
player_id String Optional Player id from Agent
game_id String Optional Provided by Hotdog
stats Array Yes include total_bet, total_win, total_spincount, win_lose
Sample Request :
{
    "agent_id":"AGENT1",
    "player_id":"PLAYER1",
    "game_id":"hd-labubu-win",
    "start_timestamp":1743436800000,
    "end_timestamp":1745942400000
}
Sample Response :
{
    "status": true,
    "player_id": "PLAYER1",
    "game_id": "hd-labubu-win",
    "stats": {
        "total_bet": 17.1,
        "total_win": 7.29,
        "total_spincount": 19,
        "win_loss": -9.81
    }
}
2.1 Get Balance : POST {Agent Endpoint} (Type Json)

Get Player Balance

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
action String Yes MUST "balance"
player_id String Yes Player id from Agent
session_id String Yes Unique,Generated by Agent,Use in following communicate API
Response Body :
Key Type Required Description
balance String Yes
status Boolean Yes true on success, false on failure
Sample Request :
{
    "action": "balance",
    "player_id": "PLAYER1",
    "session_id": "c4ca4238a0b923820dcc509a6f75849b"
}
Sample Response :
{
    "balance": "20.02",
    "status": true
}
2.2 Place Bet : POST {Agent Endpoint} (Type Json)

This API is called when player place bet.

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
action String Yes MUST "bet"
player_id String Yes Player id from Agent
session_id String Yes Unique,Generated by Agent,Use in following communicate API
transaction_id String Yes Unique id used to identify the communicate message only, can directly reply to the same or create with YY + MM + DD + HH + MIN + SS + IPs + Random(Ips: Last 3 number of your IP, pad 0 when less than 3 digits, 19->019.Random: Random(1,99999), pad 0 when less than 5 digits, 8765->08765.)
game_id String Yes Provided by Hotdog
parent_id String Yes Parent round_id of free spin
round_id String Yes Unique id of game round/bet
amount String Yes Total bet amount
currency String Yes Please refer to Currency Code
Response Body :
Key Type Required Description
balance String Yes
status Boolean Yes true on success, false on failure
Sample Request :
{
    "action": "bet",
    "player_id": "some_user_id",
    "session_id": "c4ca4238a0b923820dcc509a6f75849b",
    "transaction_id":"202403012206010100",
    "game_id": "hd-bull-bull",
    "parent_id":"1286579087",
    "round_id":"1286579088",
    "amount":"1.50",
    "currency": "USD"
}
Sample Response :
{
    "balance": "20.02",
    "status": true
}
2.3 Win/Settle : POST {Agent Endpoint} (Type Json)

This API is called when bet receive success respond.

The round_id is unique and Agent is required to check if they received a duplicate and respond the appropriate error. Agent needs to also match the round_id in Win API with round_id in Bet API request. Please respond error if unable to match the round_id. if timeout or receive false, Hotdog will try to re-send until success.

The session_id is unique and Generated by Agent, It will keep 24 hours in memory for Hotdog System. Sometimes, there is no session_id for repair win transacion due to it was over 24 hours and removed already. Agent should ignore verify when it was over 24 hours.

⚠️ IMPORTANT NOTE

Agent MUST implement idempotent handling for the WIN (deposit) API and perform the following validation checks upon receiving a WIN request:

  • Verify the existence of the round_id
  • Verify whether a rollback has already been processed for the specified round_id. If so, the WIN request MUST be rejected
  • Verify whether the WIN has already been successfully processed for the same round_id. If so, the WIN MUST NOT be processed again

WIN MUST ONLY be processed if the original bet exists, was successfully deducted, and no rollback has been executed for the same round_id.

Failure to implement the above validations may result in duplicate credits or players receiving WIN payouts on already-cancelled bets, presenting a fraud risk.

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
action String Yes MUST "win"
player_id String Yes Player id from Agent
session_id String Yes Unique,Generated by Agent,Use in following communicate API
transaction_id String Yes Unique id used to identify the communicate message only, can directly reply to the same or create with YY + MM + DD + HH + MIN + SS + IPs + Random(Ips: Last 3 number of your IP, pad 0 when less than 3 digits, 19->019.Random: Random(1,99999), pad 0 when less than 5 digits, 8765->08765.)
game_id String Yes Provided by Hotdog
round_id String Yes Unique id of game round/bet
parent_id String Yes parent round id which get free spin
amount String Yes Total bet amount
payout String Yes Total win amount, not winlose or PnL
currency String Yes Please refer to Currency Code
bet_completed Integer Optional 1: end round true, 0: end round false
Response Body :
Key Type Required Description
balance String Yes
status Boolean Yes true on success, false on failure
Sample Request :
{
    "action": "win",
    "player_id": "PLAYER1",
    "session_id": "c4ca4238a0b923820dcc509a6f75849b",
    "transaction_id":"202403012206010100",
    "game_id": "hd-bull-bull",
    "round_id":"1286579088",
    "parent_id":"",
    "amount":"1.50",
    "payout":"1.50",
    "currency": "USD",
    "bet_completed": 1
}
Sample Response :
{
    "balance": "20.02",
    "status": true
}
2.4 Rollback : POST {Agent Endpoint} (Type Json)

This API is called when we did not receive a respond from bet API hence Agent would need to do their own checking whether the bet for the specified round_id has been received and player balance is deducted, ALWAYS need return with status as "true" after handle this rollback transaction even specified round_id has not been received or the balance has been returned to the player. If Hotdog receive "false" will try to re-send until receive "true".

The session_id is unique and Generated by Agent, It will keep 24 hours in memory for Hotdog System. Sometimes, there is no session_id for re-send rollback transacion due to it was over 24 hours and removed already. Agent should ignore verify when it was over 24 hours.

⚠️ IMPORTANT NOTE

Agent MUST implement idempotent handling for the rollback API and perform the following validation checks upon receiving a rollback request:

  • Verify the existence of the round_id
  • Verify whether the bet has already been successfully deducted/settled for the specified round
  • Verify whether the rollback has already been processed for the same round_id

Rollback MUST ONLY be processed if the bet exists and the balance has been successfully deducted/settled.

In all cases, Agent MUST return status = "true" after handling the request (including cases where no action is taken), to prevent repeated retries.

Failure to implement the above validations may result in duplicate refunds or incorrect balance adjustments.

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
action String Yes MUST "refund"
player_id String Yes Player id from Agent
session_id String Yes Unique,Generated by Agent,Use in following communicate API
transaction_id String Yes Unique id used to identify the communicate message only, can directly reply to the same or create with YY + MM + DD + HH + MIN + SS + IPs + Random(Ips: Last 3 number of your IP, pad 0 when less than 3 digits, 19->019.Random: Random(1,99999), pad 0 when less than 5 digits, 8765->08765.)
game_id String Yes Provided by Hotdog
round_id String Yes Unique id of game round/bet
currency String Yes Please refer to Currency Code
Response Body :
Key Type Required Description
balance String Yes
status Boolean Yes true on success, false on failure
code String Yes R001: Transaction not found | R002: Already rollback | Empty or omitted: Treated as success
Sample Request :
{
    "action": "refund",
    "player_id": "PLAYER1",
    "session_id": "c4ca4238a0b923820dcc509a6f75849b",
    "transaction_id":"202403012206010100",
    "game_id": "hd-bull-bull",
    "round_id":"1286579088",
    "currency": "USD"
}
Sample Response :
{
    "balance": "20.02",
    "status": true,
    "code": "" // Success: ""; Failure: Transaction not found ("code": "R001") | Already rollback ("code": "R002")
}
2.5 Cashbonus : POST {Agent Endpoint} (Type Json)

This API is called when player win or get bonus from event. The transaction_id and bonus_id combinated with unique and Agent is required to check if they received a duplicate and respond the appropriate error. If there is no duplication, Agent would need to add the payout to player balance.

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
action String Yes MUST "cashbonus"
player_id String Yes Player id from Agent
transaction_id String Yes Unique id used to identify the communicate message only, can directly reply to the same or create with YY + MM + DD + HH + MIN + SS + IPs + Random(Ips: Last 3 number of your IP, pad 0 when less than 3 digits, 19->019.Random: Random(1,99999), pad 0 when less than 5 digits, 8765->08765.)
bonus_id String Yes bonus id
bonus_type String Yes bonus type
payout String Yes amount for cash bouns
currency String Yes Please refer to Currency Code
Response Body :
Key Type Required Description
balance String Yes
status Boolean Yes true on success, false on failure
Sample Request :
{
    "action": "cashbonus",
    "player_id": "PLAYER1",
    "transaction_id":"202403012206010100",
    "bonus_id": "123ABC",
    "bonus_type": "cash",
    "payout":"1.50",
    "currency": "USD"
}
Sample Response :
{
    "balance": "20.02",
    "status": true
}
2.6 Exit : POST {Agent Endpoint} (Type Json)

If the agent provides an exit callback endpoint, HOTDOG will call the endpoint after the player leaves the game view for 60 seconds, or when the player exit the game by in-game menu.

Header :
Key Type Required Description
Reference to the Encrytion
Request Body :
Key Type Required Description
action String Yes MUST "exit"
session_id String Yes Unique,Generated by Agent,Use in following communicate API
game_id String Yes Provided by Hotdog
player_id String Yes Player id from Agent
Response Body :
Key Type Required Description
status Boolean Yes true on success, false on failure
Sample Request :
{
    "action": "exit",
    "session_id": "c4ca4238a0b923820dcc509a6f75849b",
    "game_id": "hd-bull-bull",
    "player_id": "PLAYER1"
}
Sample Response :
{
    "status": true
}
Appendix
Currency Code
Currency Code Currency Description Currency Ratio
AED UAE Dirham 1
AFN Afghan Afghani 1
ALL Albanian Lek 1
AMD Armenian Dram 1
ANG Netherlands Antillean Guilder 1
AOA Angolan Kwanza 1
ARS Argentine Peso 1
AUD Australian Dollar 1
AWG Aruban Florin 1
AZN Azerbaijani Manat 1
BAM Bosnia-Herzegovina Convertible Mark 1
BBD Barbadian Dollar 1
BDT Bangladeshi Taka 1
BGN Bulgarian Lev 1
BHD Bahraini Dinar 1
BIF Burundian Franc 1
BMD Bermudian Dollar 1
BND Brunei Dollar 1
BOB Bolivian Boliviano 1
BRL Brazilian Real 1
BSD Bahamian Dollar 1
BTN Bhutanese Ngultrum 1
BWP Botswana Pula 1
BYN Belarusian Ruble 1
BZD Belize Dollar 1
CAD Canadian Dollar 1
CDF Congolese Franc 1
CHF Swiss Franc 1
CLF Chilean Unit of Account (UF) 1
CLP Chilean Peso 1
CNH Chinese Yuan (Offshore) 1
CNY Chinese Yuan 1
COP Colombian Peso 1
CRC Costa Rican Colón 1
CUC Cuban Convertible Peso 1
CUP Cuban Peso 1
CVE Cape Verdean Escudo 1
CZK Czech Koruna 1
DEMO Testing Currency Code 1
DJF Djiboutian Franc 1
DKK Danish Krone 1
DOP Dominican Peso 1
DZD Algerian Dinar 1
EGP Egyptian Pound 1
ERN Eritrean Nakfa 1
ETB Ethiopian Birr 1
ETBB ETBB 1
EUR Euro 1
FJD Fijian Dollar 1
FKP Falkland Islands Pound 1
GBP British Pound 1
GEL Georgian Lari 1
GGP Guernsey Pound 1
GHS Ghanaian Cedi 1
GIP Gibraltar Pound 1
GMD Gambian Dalasi 1
GNF Guinean Franc 1
GTQ Guatemalan Quetzal 1
GYD Guyanese Dollar 1
HKD Hong Kong Dollar 1
HNL Honduran Lempira 1
HRK Croatian Kuna 1
HTG Haitian Gourde 1
HUF Hungarian Forint 1
IDR Indonesian Rupiah 1
ILS Israeli New Shekel 1
IMP Isle of Man Pound 1
INR Indian Rupee 1
IQD Iraqi Dinar 1
IRR Iranian Rial 1
ISK Icelandic Króna 1
JEP Jersey Pound 1
JMD Jamaican Dollar 1
JOD Jordanian Dinar 1
JPY Japanese Yen 1
KES Kenyan Shilling 1
KGS Kyrgyzstani Som 1
KHR Cambodian Riel 1
KMF Comorian Franc 1
KPW North Korean Won 1
KRW South Korean Won 1
KWD Kuwaiti Dinar 1
KYD Cayman Islands Dollar 1
KZT Kazakhstani Tenge 1
LAK Lao Kip 1
LBP Lebanese Pound 1
LKR Sri Lankan Rupee 1
LRD Liberian Dollar 1
LSL Lesotho Loti 1
LYD Libyan Dinar 1
MAD Moroccan Dirham 1
MDL Moldovan Leu 1
MGA Malagasy Ariary 1
MKD Macedonian Denar 1
MMK Myanmar Kyat 1
MNT Mongolian Tugrik 1
MOP Macanese Pataca 1
MRU Mauritanian Ouguiya 1
MUR Mauritian Rupee 1
MVR Maldivian Rufiyaa 1
MWK Malawian Kwacha 1
MXN Mexican Peso 1
MYR Malaysian Ringgit 1
MZN Mozambican Metical 1
NAD Namibian Dollar 1
NGN Nigerian Naira 1
NIO Nicaraguan Córdoba 1
NOK Norwegian Krone 1
NPR Nepalese Rupee 1
NZD New Zealand Dollar 1
OMR Omani Rial 1
PAB Panamanian Balboa 1
PEN Peruvian Sol 1
PGK Papua New Guinean Kina 1
PHP Philippine Peso 1
PKR Pakistani Rupee 1
PLN Polish Złoty 1
PYG Paraguayan Guaraní 1
QAR Qatari Riyal 1
RON Romanian Leu 1
RSD Serbian Dinar 1
RUB Russian Ruble 1
RWF Rwandan Franc 1
SAR Saudi Riyal 1
SBD Solomon Islands Dollar 1
SCR Seychellois Rupee 1
SDG Sudanese Pound 1
SEK Swedish Krona 1
SGD Singapore Dollar 1
SHP Saint Helena Pound 1
SLL Sierra Leonean Leone 1
SOS Somali Shilling 1
SRD Surinamese Dollar 1
SSP South Sudanese Pound 1
STD SSão Tomé & Príncipe Dobra (Pre-2018) 1
STN SSão Tomé & Príncipe Dobra 1
SVC Salvadoran Colón 1
SYP Syrian Pound 1
SZL Swazi Lilangeni 1
THB Thai Baht 1
TJS Tajikistani Somoni 1
TMT Turkmenistani Manat 1
TND Tunisian Dinar 1
TOP Tongan Paʻanga 1
TRY Turkish Lira 1
TTC Testing Currency Code 1
TTD Trinidad & Tobago Dollar 1
TWD New Taiwan Dollar 1
TZS Tanzanian Shilling 1
UAH Ukrainian Hryvnia 1
UGX Ugandan Shilling 1
USD US Dollar 1
USDT - 1
UYU Uruguayan Peso 1
UZS Uzbekistani Som 1
VES Venezuelan Bolívar Soberano 1
VND Vietnamese Đồng 1
VUV Vanuatu Vatu 1
WST Samoan Tala 1
XAF Central African CFA Franc 1
XAG Silver (Troy Ounce) 1
XCD East Caribbean Dollar 1
XDR IMF Special Drawing Rights 1
XOF West African CFA Franc 1
XPF CFP Franc 1
YER Yemeni Rial 1
ZAR South African Rand 1
ZMW Zambian Kwacha 1
ZWL Zimbabwean Dollar (2009) 1
{CURRENCY_CODE}# Base on {CURRENCY_CODE} 1:1000 ( Example: IDR# | 1 IDR# = 1000 IDR )
MMK3 Base on MMK 1:100 (Example: 1 MMK3 = 100 MMK)
TWD2 Base on TWD 130:1 (Example: 130 TWD2 = 1 TWD)
YHD Base on TWD 130:1 (Example: 130 YHD = 1 TWD)
MYR2 Base on MYR 1:100 (Example: 1 MYR2 = 100 MYR)
CREDITS Base on USD 100:1 (Example: 100 CREDITS = 1 USD)
PHPT Base on PHP 1:1 (Example: 1 PHPT = 1 PHP)
Note:
* Support for customized proportional currencies.
Language Code
Language Code Language
en English
ko Korean
th Thai
vi Vietnamese
hi Hindi
ru Russian
ja Japanese
fr French
tr Turkish
es Spanish
de German
id Indonesian
pt-br Portuguese
uz Uzbek
zh-TW Traditional Chinese
Error Code
Code Description
UNDER_MAINTENANCE UNDER_MAINTENANCE
INTERNAL_ERROR INTERNAL_ERROR
SESSION_NOT_FOUND SESSION_NOT_FOUND
INVALID_SIGN_OR_IP INVALID_SIGN_OR_IP
WRONG_INPUT_PARAMETERS WRONG_INPUT_PARAMETERS
AMOUNT_SHOULD_BE_POSITIVE AMOUNT_SHOULD_BE_POSITIVE
INSUFFICIENT_BALANCE INSUFFICIENT_BALANCE
ACTION_IS_NOT_EXIST ACTION_IS_NOT_EXIST
FAILED_GET_BALANCE FAILED_GET_BALANCE
INVALID_GAME_ID INVALID_GAME_ID
GAME_NOT_AVAILABLE GAME_NOT_AVAILABLE
Encrytion

All requests between Agent and HOTDOG must contain authorization header.Sha256 hmac algorithm with Secret (provided by HOTDOG) is used for signing.

Authorization headers
x-sign: Sign calculated with sha256 hmac

PHP example of the X-Sign :
$secret= 'MVaoC9xKdJesozkX';
$requestBody = [ 'return_url' => 'https://abc', 'game_id' => 'zxcv67890'];
$requestJson = json_encode($requestBody);
$sign = hash_hmac('sha256', $requestJson, $secret);
$headers = [
'Content-Type: application/json',
'x-sign:'. $sign
];
-> ff0873a8d79f744158a46944ae3387677004b116171a68d4998147c8b84c74e8

Node example of the X-Sign :
let secret= 'MVaoC9xKdJesozkX';
let requestJson = JSON.stringify({return_url:'https://abc',game_id:'zxcv67890'});
requestJson = requestJson.replace(/\//g, "\\/"); //!important
const sign = crypto.createHmac('sha256',secret).update(requestJson).digest('hex');
const headers = {
'Content-Type: application/json',
'x-sign:'. $sign
};
-> ff0873a8d79f744158a46944ae3387677004b116171a68d4998147c8b84c74e8

Test kit

The Test Kit is a sandbox environment designed to support integration and testing of the gaming platform.

URL:https://testkit.hotdog-gaming.com/seamless
Through the Test Kit, partners can:
  • Perform end-to-end testing of game integration
  • Simulate API calls and verify responses
  • Validate configurations and parameters
  • Ensure system compatibility before going live
Note: This environment should be used during development and QA phases only, and not for production usage.
×
API Summary Document Version Getting Started  1.1 Demo Play  1.2 Get Game Result  1.3 Single Login  1.4 Exit Game  1.5 Online Status  1.6 Get Game List  1.7 Get Bet Options  1.8 Get Player Stats  2.1 Get Balance  2.2 Place Bet  2.3 Win/Settle  2.4 Rollback  2.5 CashBonus  2.6 Exit Appendix  1. Currency Code  2. Language Code  3. Error Code  4. Encrytion  5. Test kit