---
# System prepended metadata

title: Slotfactory-website API Spec

---

# Slotfactory-website API Spec

## /GetGameByIDByFE
**Method**：POST
**headers**：None
**Form**
|  Name  |  Type  |      |
|--------|--------|------|
| GameID | Number | Must |
| Site   | Number | Must |

**Example**

Input
```
{"Site": 1,"GameID":289}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "Game": [
        {
            "GameID": 289,
            "LanguageID": 4,
            "Description": "",
            "GameName": "GodAnubis",
            "DisplayName": "God Anubis",
            "Image": "https://stag-wb.slotfactory.com/uploadImages/GodAnubis.png",
            "PublishedTime": "2019-04-23 01:50:18",
            "CreatedTime": "2019-04-23 01:50:18",
            "LastmodifiedTime": "2019-04-23 01:50:18",
            "Status": 1,
            "Click": 0,
            "Site": 1,
            "SupportLanguageIDs": "1",
            "Theme": "1",
            "MaxWins": 0,
            "RawXReels": "",
            "Lines": "",
            "Abstract": "",
            "Volatility": "",
            "BannerImageURL": "http://laravel.test:8000/uploadImages/1567136224.png",
            "PromotURL": "http://laravel.test:8000/uploadImages/1567136224.png",  // will has this attr if is promot game,
            "BaseGameVideoURL": "http://www.youtube.com",
            "FeatureGameVideoURL": "http://www.google.com"
            "GameDisplayBehaviorType": 1  // will give if need show game video
        }
    ]
}
```



## /GetGameListByFE
**Method**：POST
**headers**：None
**Form**
|    Name    |  Type  |               |
|------------|--------|---------------|
| GameName   | string | Must/nullable |
| LanguageID | Number |      Must     |
| Site       | Number |      Must     |

**Example**

Input
```
{"GameName":"","LanguageID":1,"Site":1}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "GameList": [
        {
            "GameID": 379,
            "LanguageID": 1,
            "Description": "<p>ffff</p>\n<p>ffff</p>",
            "GameName": "AlienFarmInvasion",
            "DisplayName": "ffff",
            "Image": "http://laravel.test:8000/uploadImages/1567135139.png",
            "BannerImageURL": "http://laravel.test:8000/uploadImages/1567136224.png",
            "PublishedTime": "2019-08-30 11:16:56",
            "CreatedTime": "2019-08-30 03:19:13",
            "LastmodifiedTime": "2019-08-30 03:19:13",
            "Status": 1,
            "Click": 0,
            "Site": 1,
            "SupportLanguageIDs": "[1,2,3,4]",
            "Theme": "ffff",
            "Volatility": "ffff",
            "MaxWins": 0,
            "RawXReels": "ffff",
            "Lines": "ffff",
            "Abstract": "ffff"
        },
        {
            "GameID": 378,
            "LanguageID": 1,
            "Description": "<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>",
            "GameName": "Bingo",
            "DisplayName": "JUST TEST",
            "Image": "http://laravel.test:8000/uploadImages/1567134945.png",
            "PublishedTime": "2019-08-30 11:10:26",
            "CreatedTime": "2019-08-30 03:15:55",
            "LastmodifiedTime": "2019-08-30 03:15:55",
            "Status": 1,
            "Click": 0,
            "Site": 1,
            "SupportLanguageIDs": "[1,2,3,4]",
            "Theme": "dark",
            "Volatility": "3/5",
            "MaxWins": 23,
            "RawXReels": "3x5",
            "Lines": "15 lines",
            "Abstract": "JUST TEST JUST TEST JUST TEST",
            "BannerImageURL": "http://laravel.test:8000/uploadImages/1567136224.png",
            "PromotURL": "http://laravel.test:8000/uploadImages/1567136224.png"  // will has this attr if it is promot game.
        },
        ...
    ]
}
```

## /GetMarqueeListByFE
**Method**：POST
**headers**：None
**Form**
|    Name    |  Type  |               |
|------------|--------|---------------|
| LanguageID | Number |      Must     |
| Site       | Number |      Must     |

**Example**

Input
```
{"LanguageID":1,"Site":1}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "MarqueeList": [
        {
            "ID": 1,
            "LanguageID": 1,
            "Message": "我是跑馬燈我是跑馬燈1",
            "PublishedTime": "2019-04-06 01:15:22",
            "ExpiredTime": "2019-04-06 01:15:22",
            "CreatedTime": "2019-04-06 01:15:22",
            "LastmodifiedTime": "2019-04-15 02:40:28",
            "HyperLink": "http://laravel.test:8000/uploadImages/1567136224.png",
            "Status": 1,
            "SortID": 9,
            "Site": 1
        },
        ...
    ]
}
```

## /GetNewsByIDByFE
**Method**：POST
**headers**：None
**Form**
|    Name    |  Type  |               |
|------------|--------|---------------|
|     ID     | Number |      Must     |

**Example**

Input
```
{"ID":30}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "News": [
        {
            "ID": 30,
            "LanguageID": 4,
            "CategoryID": 0,
            "Title": "日本語021",
            "Content": "<p>日本語021</p>",
            "PublishedTime": "2019-04-09 02:04:35",
            "ExpiredTime": "2019-04-09 02:04:58",
            "CreatedTime": "2019-04-09 02:04:58",
            "LastmodifiedTime": "2019-04-09 02:05:19",
            "Status": 1,
            "Image": "https://wpimg.wallstcn.com/4c69009c-0fd4-4153-b112-6cb53d1cf943",
            "IsGame": 0,
            "Tags": "日本語02,日本語01",
            "Site": 1,
            "Abstract": "",
            "Click": 0,
            "IsFeature": null
        }
    ]
}
```
## /GetNewsListByFE
**Method**：POST
**headers**：None
**Form**
|    Name    |  Type  |               |
|------------|--------|---------------|
| LanguageID | Number |      Must     |
|   Site     | Number |      Must     |
|  Keyword   | string | Must/nullable |

**Example**

Input
```
{"LanguageID":1,"Site":1,"Keyword":"g0"}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "NewsList": [
        {
            "ID": 21,
            "LanguageID": 1,
            "CategoryID": 0,
            "Title": "eng05",
            "Content": "<p>eng05</p>",
            "PublishedTime": "2019-04-08 07:03:41",
            "ExpiredTime": "2019-04-08 07:03:58",
            "CreatedTime": "2019-04-08 07:03:58",
            "LastmodifiedTime": "2019-04-19 04:59:38",
            "Status": 0,
            "Image": "http://stag-wb.slotfactory.com/uploadImages/1555675165.jpeg",
            "IsGame": 0,
            "Tags": "",
            "Site": 1,
            "Abstract": "",
            "Click": 0,
            "IsFeature": null
        },
        ...
    ]
}
```
## /Login
**Method**：POST
**headers**：None
**Form**
|     Name     |  Type  |                                        |
|--------------|--------|----------------------------------------|
| **Site** 	   | Number | Login Site **(Must)**.                 |
| MTW     	   | Number | If given, Login with Multiwallet mode. |
| AccountID    | string | nullable if logout given.              |
| Password     | string | nullable if logout given.              |

**Example**
#### *login*
Input
```
{"AccountID":"fe_test01","Password":"PJ2rsLL2"}
```

Output
```
{"StatusCode": 0, "StatusDescription": "Success", "Token":"....", "ID": 123456789012345}
```
#### *login with mtw*
Input
```
{"AccountID":"fe_test02","Password":"md5(PJ2rsLL2)","MTW":1}
```
Output
```
{"StatusCode": 0, "StatusDescription": "Success", "Token":"...."}
```

## /Logout
**Method**：POST
**headers**：
|     Name     |  Type  |                |
|--------------|--------|----------------|
| Authorization| string |      Must      |

**Form**：None

**Example**

Input
```
None
```

Output
```
Success
```

## /SendMail
**Method**：POST
**headers**：None
**Form**
|       Name      |  Type  |      |
|-----------------|--------|------|
| ContactName     | string | Must |
| ContactEmail    | string | Must |
| ContactTel      | string | Must |
| ContactMessage  | string | Must |
| Subject  		  | string | Must |
| Country  		  | string | Must |
| Company  		  | string | Must |

**Example**

Input
```
{
    "Subject":"Test Subject",
    "Country":"USD", 
    "Company":"Taiwan",
    "contactName":"Test Subject",
    "contactEmail":"test@slotfactory.com",
    "contactTel":"0987654321",
    "contactMessage":"This is atest message.\n Can use \\n to split line."
}
```
Output
```
{
    "status": "Success",
    "StatusCode": 0
}
```

## /GetGame
**Method**：POST
**headers**：
|     Name     |  Type  |                |
|--------------|--------|----------------|
| Authorization| string |      Must      |
**Form**
|    Name    |  Type  |      |
|------------|--------|------|
|    Site    | Number | Must **(new)** |
|  GameName  | string | Must |
|  Locale    | Number | Must |
|  Mode      | Number | Must |
|  IsMobile  | boolean| Must |

**Example**
Input
```
{"Site": 1,"GameName":"SushiSlot","Locale":1,"Mode":0, "IsMobile": true}
```

Output
```
{
    "status": "Success",
    "message": "http://stag-wa.slotfactory.com/launch/?gn=SushiSlot&lb=192.168.1.199:8080&lc=en&fr=1"
}
```

## /banners/list
**Method**：POST
**headers**：None
**Form**
|    Name    |  Type  |      |
|------------|--------|------|
|   Site     | Number | Must |
| LanguageID | Number | Must |

**Example**
Input
```
{"LanguageID":1,"Site":1}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "List": [
        {
            "ID": 5,
            "PublishedTime": "2019-08-20T10:25:46Z",
            "Site": 1,
            "LanguageID": 1,
            "Order": 2,
            "ImageWeb": "http://laravel.test:8000/uploadImages/1566296763.png",
            "ImageMobile": "http://laravel.test:8000/uploadImages/1566296781.png"
        },
        {
            "ID": 3,
            "PublishedTime": "2019-08-20T09:43:39Z",
            "Site": 1,
            "LanguageID": 1,
            "Order": 2,
            "ImageWeb": "http://laravel.test:8000/uploadImages/1566294241.png",
            "ImageMobile": "http://laravel.test:8000/uploadImages/1566294248.jpeg"
        },
        ...
    ]
}
```


## /Cmwallet
**Method**：POST
**headers**：
|     Name     |  Type  |                |
|--------------|--------|----------------|
|     HMAC     | string |      Must      |

**Example**
#### *Login*

**Form**
|    Name    |  Type  |               |
|------------|--------|---------------|
|   Action   | string |      Login    |
|  AccountID | string |      Must     |
|  GameName  | string |      Must     |
|  AuthToken | string |      Must     |
|  PlayerIP  | string | Must/nullable |
|  Timestamp | string | Must/nullable |
|  SessionID | string | Must/nullable |

Input
```
{"Action":"Login","AccountID":"fe_test02","GameName":"SushiSlot","AuthToken":"5d63f4824ad77","PlayerIP":"","Timestamp":"","SessionID":""}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": 'Success proccessed',
    "FirstName":  "",
    "LastName":  "",
    "DateOfBirth":  "",
    "CountryID":  "",
    "CurrencyID":  "",
    "Balance":  "",
    "AuthToken":  "",
}
```

#### *Play*

**Form**
|     Name     |   Type   |               |
|--------------|----------|---------------|
|    Action    |  string  |      Play     |
|   AccountID  |  string  |      Must     |
|   GameName   |  string  |      Must     |
|   AuthToken  |  string  |      Must     |
|   PlayerIP   |  string  | Must/nullable |
|   Timestamp  |  string  | Must/nullable |
|   SessionID  |  string  | Must/nullable |
|    RoundID   |  string  |      Must     |
|   BetAmount  |  Number  |      Must     |
|   WinAmount  |  string  |      Must     |
|  GambleGames |  boolean |      Must     |

Input
```
{"Action":"Play","AccountID":"fe_test02","GameName":"SushiSlot","AuthToken":"5d63f4824ad77","PlayerIP":"","Timestamp":"","SessionID":"","RoundID":"","BetAmount":10000,"WinAmount":100,"GambleGames":false}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "RoundID": "",
    "Balance": 11571227352670
}
```

#### *RewardBonus*

**Form**
|        Name        |  Type  |               |
|--------------------|--------|---------------|
|       Action       | string |  RewardBonus  |
|      AccountID     | string |      Must     |
|      GameName      | string |      Must     |
|      AuthToken     | string |      Must     |
|      PlayerIP      | string | Must/nullable |
|      Timestamp     | string | Must/nullable |
|      SessionID     | string | Must/nullable |
|      RoundID       | string |  	 Must	  |
|      WinAmount     | Number |  	 Must	  |
|      Type          | string |  	 Must	  |
|      FreeGames     | boolean|  	 Must	  |
|   FreeGamePlayed   | Number |  	 Must	  |
|  FreeGameRemaining | Number |  	 Must	  |

Input
```
{
	"Action":"RewardBonus",
	"AccountID":"fe_test02",
	"GameName":"SushiSlot",
	"AuthToken":"5d63f4824ad77",
	"PlayerIP":"",
	"Timestamp":"",
	"SessionID":"",
	"RoundID":"",
	"WinAmount":100,
	"Type": "",
	"FreeGames":false,
	"FreeGamePlayed":1000,
	"FreeGameRemaining":100
}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "RoundID": "",
    "Balance": 11571227352670
}
```


## /GetBalanceAPI
**Method**：POST
**headers**：
|     Name     |  Type  |                |
|--------------|--------|----------------|
|     HMAC     | string |      Must      |

**Example**
**Form**
|    Name    |  Type  |               |
|------------|--------|---------------|
|   Action   | string |  GetBalance   |
|  AccountID | string |      Must     |
|  GameName  | string |      Must     |
|  AuthToken | string |      Must     |
|  PlayerIP  | string | Must/nullable |
|  Timestamp | string | Must/nullable |

Input
```
{"Action":"GetBalance","AccountID":"fe_test02","GameName":"SushiSlot","AuthToken":"5d63f4824ad77","PlayerIP":"","Timestamp":""}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "RoundID": "",
    "Balance": 11571227352670
}
```

## /Closewallet
**Method**：POST
**headers**：
|     Name     |  Type  |                |
|--------------|--------|----------------|
|     HMAC     | string |      Must      |
| Authorization| string |      Must      |

**Example**
**Form**
|       Name      |  Type  |               |
|-----------------|--------|---------------|
|Action           | string | "Closewallet" |
|Site             | Number |      Must **(New)**    |
|AccountID        | string |      Must     |
|LicenseeName     | string | **will be deprecated**     |
|GameName         | string |      Must     |
|WithdrawalAmount | string |      Must     |


Input
```
{"Action":"Closewallet","AccountID":"fe_test02","GameName":"SushiSlot","LicenseeName":"MTW1","WithdrawalAmount":"10000"}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "Balance" => 10000,
    "WalletTransactionID" => "",
    "Active" => 0,
}
```

## /MtwAPI
**Method**：POST
**headers**：
|     Name     |  Type  |                |
|--------------|--------|----------------|
| Authorization| string |      Must      |

**Example**
#### *CreatePlayer*

**Form**
|    Name    |     Type    |               |
|------------|-------------|---------------|
|   Action   |   string    | "CreatePlayer"|
|   Site     |   Number    |Must **(New)** |
|  AccountID |   string    |      Must     |
|  Password  | MD5(string) |      Must     |
|  GameName  |   string    | Must/nullable |
|LicenseeName|   string    | **will be Deprecated**|
| CountryID  |   string    |      Must     |
| CurrencyID |   string    |      Must     |

Input
```
{"Action":"CreatePlayer","AccountID":"fe_test02","Password":"45744abdd1699a8cc87e71a8870dd61c","GameName":"","LicenseeName":"MTW1","CountryID":"USA","CurrencyID":"USD"}
```

Output
```
{ "status": "Success", "message": "" }
```

#### *GetPlayer*

**Form**
|    Name    |     Type    |               |
|------------|-------------|---------------|
|   Action   | string      |  "GetPlayer"  |
|  AccountID | string      |      Must     |

Input
```
{"Action":"GetPlayer","AccountID":"Les1234567890"}
```

Output
```
{
    "status": "Success",
    "message": {
        "AccountID": "Les1234567890",
        "Balance": 100000
    }
}
```

#### *Deposit*

**Form**
|     Name    |   Type  |               |
|-------------|---------|---------------|
|   Action    |  string |   "Deposit"   |
|   Site      |  Number |Must **(New)** |
|  GameName   |  string |      Must     |
|DepositAmount|  Number |      Must     |

Input
```
{"Action":"Deposit","AccountID":"Les1234567890","LicenseeName":"MTW1","GameName":"SushiSlot","DepositAmount":10000}
```

Output
```
{
    "status": "Success",
    "message": {
        "AuthToken": "3362f90c-f141-4492-aa95-29a46a333eb9",
        "Balance": 10000,
        "StatusDescription": "",
        "WalletTransactionId": "13ac4188-0383-49e8-a402-2491b702ad5f",
        "Active": false,
        "StatusCode": 0
    }
}
```


#### *GetGameUrl*

**Form**
|     Name    |   Type  |               |
|-------------|---------|---------------|
|   Action    |  string | "GetGameUrl"  |
|   Site      |  Number |Must **(New)** |
|  AccountID  |  string |      Must     |
|LicenseeName |  string | **will be deprecated**     |
|  GameName   |  string |      Must     |

Input
```
{"Action":"GetGameUrl","AccountID":"Les1234567890","LicenseeName":"MTW1","GameName":"SushiSlot"}
```

Output
```
{
    "headers": {},
    "original": {
        "status": "Success",
        "message": "http://stag-wa.slotfactory.com/launch/?gn=SushiSlot&ln=MTW1&ad=Les1234567890&at=3362f90c-f141-4492-aa95-29a46a333eb9"
    },
    "exception": null
}
```


#### *GetGameOfMonth*

**Form**
|     Name    |   Type  |      |
|-------------|---------|------|
| LanguageID  | Number  | Must |
| Site        | Number  | Must |

Input
```
{"LanguageID":1,"Site":1}
```

Output
```
{
    "StatusCode": 0,
    "StatusDescription": "Success proccessed",
    "GetGameOfMonth": [
        {
            "Site": 1,
            "LanguageID": 1,
            "GameID": 378,
            "PromotURL": "http://laravel.test:8000/uploadImages/1567136224.png",
            "Description": "<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>\n<p>JUST TEST JUST TEST JUST TEST</p>",
            "GameName": "Bingo",
            "DisplayName": "JUST TEST",
            "Image": "http://laravel.test:8000/uploadImages/1567134945.png",
            "PublishedTime": "2019-08-30 11:10:26",
            "CreatedTime": "2019-08-30 03:15:55",
            "LastmodifiedTime": "2019-08-30 03:15:55",
            "Status": 1,
            "Click": 0,
            "SupportLanguageIDs": "[1,2,3,4]",
            "Theme": "dark",
            "Volatility": "3/5",
            "MaxWins": 23,
            "RawXReels": "3x5",
            "Lines": "15 lines",
            "Abstract": "JUST TEST JUST TEST JUST TEST"
        }
    ]
}
```