PMobile 2 - Global API
Welcome to the POEMS Mobile 2.0 - Global API!.
We have language bindings in curl, Ruby, and Python! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.
Authentication
We have three different authentications:
Authenticate - This is the normal login function, to authenticate with client login id and password.
touch id/face id login - This function allows to authenticate with the touch id or face id, but it will only grant for query mode. Need to do re-authenticate to have the full access.
TwoFA Authentication (device OTP or SMS OTP) - Currently, TwoFA (Second Factor Authentication) is not mandatary yet. But, if the client has register the 2FA then need to authenticate 2FA for any transaction in each session.
Presession
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/onefa/presession \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'versionno: 2.0.0' \
-d osVersion=5
OneFACall oneFACall = new OneFACall();
ResponseCallback<Presession> responseCallback = new ResponseCallback<Presession>() {
@Override
protected void onResponse(Presession data) {
API2Settings.getInstance().setSessionId(data.getSessionID());
API2Settings.getInstance().setPublicKey(data.getPublicKey());
API2Settings.getInstance().setRandomNumber(data.getRandomNo());
// your codes to populate and show the login screen
}
@Override
protected void onError(int code, Throwable t) {
// your codes to handle the error
}
};
oneFACall.sendPresessionRequest(responseCallback);
let apiManager = APIManager()
apiManager.getPresessionData() { (response) in
// handle response
}
var client = new RestClient("http://118.189.144.221:80/pmobile2/global/onefa/presession");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddHeader("sessionid", "0E7B9C3F-5033-4752-BF73-33DCF30E870B");
request.AddHeader("accountno", "0000000");
request.AddHeader("versionno", "2.0.0");
request.AddHeader("apikey", "3FA5B748-9EC7-41EF-93FA-8C93AC349312");
request.AddHeader("deviceid", "deviceid-tint");
request.AddParameter("application/x-www-form-urlencoded", "osVersion=5", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client
conn = http.client.HTTPConnection("118.189.144.221:80")
payload = "osVersion=5"
headers = {
'deviceid': "deviceid-tint",
'apikey': "3FA5B748-9EC7-41EF-93FA-8C93AC349312",
'versionno': "2.0.0",
'accountno': "0000000",
'sessionid': "0E7B9C3F-5033-4752-BF73-33DCF30E870B",
'content-type': "application/x-www-form-urlencoded",
'cache-control': "no-cache",
'postman-token': "27715faf-d605-0c9e-36ce-27f92bbc73dd"
}
conn.request("POST", "/pmobile2/global/onefa/presession", payload, headers)
res = conn.getresponse()
data = res.read()
Dim Http As New WinHttpRequest
Dim Url As String: Url = "/global/onefa/presession"
Dim Body As String: Body = "osVersion=5&language=1"
Http.Open "POST", Mobile2URL & Url, False
Http.SetRequestHeader "apikey", "3FA5B748-9EC7-41EF-93FA-8C93AC349312"
Http.SetRequestHeader "versionNo", "2.0.0"
Http.SetRequestHeader "deviceId", "excel-test"
Http.Send Body
Dim Resp As String: Resp = Http.ResponseText
Dim Json As Object
Set Json = JsonConverter.ParseJson(Resp)
Sample Result
{
"msg": "success",
"code": 1,
"sessionID": "2ED00080-FB94-409E-88BF-CA9FB26F39CB",
"randomNo": "EFB55F99548D0D9EE9A0C2A0E56AE4600292E28B",
"publicKey": "00C3537B3253203059000F13C3D7D262F5A2B20F029CB7D93AB0CF86A690617890B4900D07E6F2BB7455CFFCC523594D56E2C89314F4D410CB706C678A41183A9CC9BD2DFFA9E7657A553564DE21EDADD07213D76CB9D28A47BEE4761024E43592094C240935AC0D938179C621EEBDF9F93E7E393611758A311FCAB4B7F3928193:010001",
"touchIDEnabled": true,
"urls": {
"termsAndConditions": "http://www.poems.com.sg/iphone/termsandconditions_new.htm",
"accountOpening": "https://www.poems.com.sg/pre-aop/",
"facebook": "https://www.facebook.com/PhillipCapital",
"twitter": "https://twitter.com/PhillipCapital",
"youtube": "https://www.youtube.com/user/PhillipCapital",
"forgotPwd": "https://www.poems.com.sg/poems-password-reset/",
"appStore": "https://play.google.com/store/apps/details?id=sg.com.poems.mobile&hl=en",
"faq": "https://www.poems.com.sg/faq-lists/?id=1424"
}
}
This is the first function to be called for the login authentication. This end point will return all the required information for the E2EE encryption and also the information to populate the login screen.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/onefa/presession
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Authenticate
Sample Request
curl -X POST \
http://118.189.144.221:80/pmobile2/global/onefa/authenticate \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'encryptedpin: 13BC859444FF15D7CEE3672F56937E2B84740E0B3B2EF12C47F526136409EC956F091CB2371F6790BDDC601259AE6B15154DB160F20FB653C2AD0CC3D468A5B2DCCE9E0854DCE08A40CAD1D9996890CCAC057945D98AC654ECA1E96FCC34D2497EDB30EE6BA635D5689FD06078B7C37A8A54DDCDEB7871D9C833BBD597C1AF10' \
-H 'sessionid: 9AEB0BC8-4B9C-4804-B9C4-52057565D845' \
-H 'versionno: 2.0.0' \
-d osVersion=5
SncE2EEClient client = new SncE2EEClient();
String password = "plain_password";
String pin = client.encryptPIN1(API2Settings.getInstance().getPublicKey(),
API2Settings.getInstance().getRandomNumber(), password);
OneFACall oneFACall = new OneFACall();
oneFACall.sendAuthenticateRequest(pin, new ResponseCallback<Authenticate>() {
@Override
protected void onResponse(Authenticate data) {
// your code to do necessary action
}
@Override
protected void onError(int code, Throwable t) {
// your code to do necessary action
}
});
Objective-C code here
Sample Response
{
"msg": "Success",
"code": 1,
"pwdStatus": "A",
"accountActivatedFlag": "T",
"accountType": "C",
"pwdAttempts": 0,
"lastLoginTime": "Jan 15 2018 1:48PM",
"pwdChangeNotifyStatus": 0,
"pwdChangeNotifyMsg": "",
"twoFARequired": true,
"twoFAUsers": [
{
"nric": "S7YYY181H",
"nafUserName": "philliptesti",
"spid": "03",
"device": [
{
"id": "VA-2646008716",
"type": "0101"
},
{
"id": "VB-90077574",
"type": "0103"
}
]
}
]
}
This function is to authenticate and login with the client's login credential. If it is successfully authenticate then the provided session id will be activated and able to use this session id when you call the other functions.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/onefa/authenticate
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
encryptedPIN | Encrypted PIN generated from client's password by using e2ee client lib |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Touch ID/Face ID Registeration
Sample Request
curl -X POST \
http://118.189.144.221:80/pmobile2/global/onefa/touchid/register \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'encryptedpin: 748EA4BD898C0F4A08CED59D488E342D75F7A171713E5624CDFCA337038FBAE943436892E33C7F87B652D33D3FB06F2327BB5153CF2ACADCF1AF12503C26280DC83A61619BB054D60826DE925DFFA8B267B9BF58AE9C0B205235CB1A71C7FA1EE54A0FD7AA7584E86ADDB5A0C17ACA039FBDDE45BD1772B664878FDAE060B9B6' \
-H 'sessionid: B17272F9-F0BA-4207-BF54-F12FF9118ECD' \
-H 'versionno: 2.0.0' \
-d osVersion=5
SncE2EEClient client = new SncE2EEClient();
String pin = client.encryptPIN2(API2Settings.getInstance().getPublicKey(),
API2Settings.getInstance().getRandomNumber(), password, touch_id_token);
TouchIdCall touchIdCall = new TouchIdCall();
touchIdCall.sendRegisterRequest(pin, new ResponseCallback<Response>() {
@Override
protected void onResponse(Response data) {
// your codes
}
@Override
// your codes
}
});
Sample Response
{
"msg": "Success",
"code": 1
}
This function allow you to register the client's touch id/ face id token. Should request the client to key in the login in password to register the touch id. Need to generate the e2ee change pin by passing the client password and touch id token to e2ee lib change password function.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/onefa/touchid/register
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
encryptedPIN | Encrypted PIN generated from client's password and touch id token by using e2ee client lib |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Touch ID/Face ID Authenticate
Sample Request
curl -X POST \
http://118.189.144.221:80/pmobile2/global/onefa/touchid \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'encryptedpin: 748EA4BD898C0F4A08CED59D488E342D75F7A171713E5624CDFCA337038FBAE943436892E33C7F87B652D33D3FB06F2327BB5153CF2ACADCF1AF12503C26280DC83A61619BB054D60826DE925DFFA8B267B9BF58AE9C0B205235CB1A71C7FA1EE54A0FD7AA7584E86ADDB5A0C17ACA039FBDDE45BD1772B664878FDAE060B9B6' \
-H 'sessionid: B17272F9-F0BA-4207-BF54-F12FF9118ECD' \
-H 'versionno: 2.0.0' \
-d osVersion=5
SncE2EEClient client = new SncE2EEClient();
String pin = client.encryptPIN1(API2Settings.getInstance().getPublicKey(),
API2Settings.getInstance().getRandomNumber(), touch_id_token);
TouchIdCall touchIdCall = new TouchIdCall();
touchIdCall.sendAuthenticateRequest(pin, new ResponseCallback<Authenticate>() {
@Override
protected void onResponse(Authenticate data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
});
Objective-C code here
Sample Response
{
"msg": "Success",
"code": 1,
"pwdStatus": "A",
"accountActivatedFlag": "T",
"accountType": "V",
"pwdAttempts": 0,
"lastLoginTime": "(Not Available)",
"pwdChangeNotifyStatus": 0,
"pwdChangeNotifyMsg": "",
"twoFARequired": false,
"twoFAUsers": null
}
This function will alow you to login (authenticate) by using the registerred touch id token. But api will grant access for read only (query mode) only. Need to re-authenticate for the transaction functions.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/onefa/touchid
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
encryptedPIN | Encrypted PIN generated from touch id token by using e2ee client lib |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Touch ID/Face ID Terms & Condition
Sample Request
curl -X GET \
'http://118.189.144.221:80/pmobile2/global/onefa/touchid/termcondition?osVersion=5' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'versionno: 2.0.0' \
-d osVersion=5
TouchIdCall touchIdCall = new TouchIdCall();
touchIdCall.sendGetDisclaimerRequest(new ResponseCallback<Disclaimer>() {
@Override
protected void onResponse(Disclaimer data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
});
Objective-C code here
Sample Response
{
"msg": "Success",
"code": 1,
"disclaimer": "Touch ID allows you to use finger authentication to log into POEMS Mobile app.\r\n\r\nAnyone who has access to your device and/or has a fingerprint registered to your device will be able to access the POEMS Mobile app and see your account information. You are strongly advised to review who has access to your device and remove and registered fingerprints if necessary. You understand the need to protect/secure your mobile device and will be responsible for any transactions or modifications made to your account when logged in.\r\n\r\nThe Touch ID feature is provided and operated by Apple. PhillipCapital and/or its member companies will not have access to your fingerprint data. For more information on how Apple protects fingerprint data, please visit https://support.apple.com/en-sg/HT204587."
}
This function will return the touch id/face id terms and condtion information to show when user try to register the touch id.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/onefa/touchid/termcondition
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Re-Authenticate
Sample Request
curl -X POST \
http://118.189.144.221:80/pmobile2/global/onefa/reauthenticate \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'encryptedpin: 13BC859444FF15D7CEE3672F56937E2B84740E0B3B2EF12C47F526136409EC956F091CB2371F6790BDDC601259AE6B15154DB160F20FB653C2AD0CC3D468A5B2DCCE9E0854DCE08A40CAD1D9996890CCAC057945D98AC654ECA1E96FCC34D2497EDB30EE6BA635D5689FD06078B7C37A8A54DDCDEB7871D9C833BBD597C1AF10' \
-H 'sessionid: 9AEB0BC8-4B9C-4804-B9C4-52057565D845' \
-H 'versionno: 2.0.0' \
-d osVersion=5
SncE2EEClient client = new SncE2EEClient();
String password = "plain_password";
String pin = client.encryptPIN1(API2Settings.getInstance().getPublicKey(),
API2Settings.getInstance().getRandomNumber(), password);
OneFACall oneFACall = new OneFACall();
oneFACall.sendReAuthenticateRequest(pin, new ResponseCallback<Authenticate>() {
@Override
protected void onResponse(Authenticate data) {
// your code to do necessary action
}
@Override
protected void onError(int code, Throwable t) {
// your code to do necessary action
}
});
Objective-C code here
Sample Response
{
"msg": "Success",
"code": 1,
"pwdStatus": "A",
"accountActivatedFlag": "T",
"accountType": "V",
"pwdAttempts": 0,
"lastLoginTime": "(Not Available)",
"pwdChangeNotifyStatus": 0,
"pwdChangeNotifyMsg": "",
"twoFARequired": false,
"twoFAUsers": null
}
This function is to re-authenticate to have a full access for the touch id/face id authentication.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/onefa/reauthenticate
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
encryptedPIN | Encrypted PIN generated from client's password by using e2ee client lib |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Change Password
Sample Request
curl -X POST \
http://118.189.144.221:80/pmobile2/global/onefa/changepassword \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'encryptedpin: 13BC859444FF15D7CEE3672F56937E2B84740E0B3B2EF12C47F526136409EC956F091CB2371F6790BDDC601259AE6B15154DB160F20FB653C2AD0CC3D468A5B2DCCE9E0854DCE08A40CAD1D9996890CCAC057945D98AC654ECA1E96FCC34D2497EDB30EE6BA635D5689FD06078B7C37A8A54DDCDEB7871D9C833BBD597C1AF10' \
-H 'sessionid: 9AEB0BC8-4B9C-4804-B9C4-52057565D845' \
-H 'versionno: 2.0.0' \
-d osVersion=5
String pin = client.encryptPIN2(API2Settings.getInstance().getPublicKey(),
API2Settings.getInstance().getRandomNumber(), password, newPassword);
ResponseCallback<Response> responseCallback = new ResponseCallback<Response>() {
@Override
protected void onResponse(Response data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
};
OneFACall oneFACall = new OneFACall();
oneFACall.sendChangePasswordRequest(pin, responseCallback);
Objective-C code here
Sample Response
{
"msg": "Success",
"code": 1,
}
This function is to allow the client to change the password. Need to follow below password policies:
- Minimum length should be 8.
- Maximum length should be 8
- Should include at lease one character
- Should include at lease one digit
- Did not allow to use previous last 6 password
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/onefa/changepassword
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
encryptedPIN | Encrypted PIN generated from client's current password and new password by using e2ee client lib |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Logout
Sample Request
curl -X POST \
http://118.189.144.221:80/pmobile2/global/onefa/logout \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'sessionid: 9AEB0BC8-4B9C-4804-B9C4-52057565D845' \
-H 'versionno: 2.0.0' \
-d osVersion=5
ResponseCallback<Logout> responseCallback = new ResponseCallback<Logout>() {
@Override
protected void onResponse(Logout data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
};
OneFACall oneFACall = new OneFACall();
oneFACall.sendLogoutRequest(responseCallback);
Objective-C code here
Sample Response
{
"msg": "Success",
"code": 1
}
This function will de-activate the current session (session id)
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/onefa/logout
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
2FA Info
Sample Request
curl -X get \
'http://118.189.144.221:80/pmobile2/global/twofa?osVersion=5&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'postman-token: fa8d848b-41e2-d697-be19-836d5fad516f' \
-H 'sessionid: FFCC8127-77DA-400A-A8CA-F86ED1BEB15D' \
-H 'versionno: 2.0.0'
TwoFACall twoFACall = new TwoFACall();
twoFACall.sendGetTwoFAInfoRequest(new ResponseCallback<TwoFAInfo>() {
@Override
protected void onResponse(TwoFAInfo data) {
sendGetTwoFAInfoRequestCode = data.getCode();
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
});
Objective-C code here
Sample Result
{
"msg": "success",
"code": 1,
"status": true,
"rasflag": false,
"linkUsers": [
{
"nric": "S7YYY181H",
"nafUserName": "philliptesti",
"spid": "03",
"device": [
{
"id": "VA-2646008716",
"type": "0101"
},
{
"id": "VB-90077574",
"type": "0103"
}
]
}
],
"twofaRAS": []
}
This function is to get the 2FA information for the current client.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/twofa
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinesea |
2FA SMS Token
Sample Request
curl -X post \
'http://118.189.144.221:80/pmobile2/global/twofa/outofboundotp?osVersion=5' \
-H 'accountno: 0252070' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'nafusername: S7YYY181H' \
-H 'postman-token: b64d3a8f-5587-62ce-f506-6de36fde2015' \
-H 'sessionid: 97AA3099-4CFE-4C98-8E81-85D741C17839' \
-H 'spid: 03' \
-H 'twofadeviceid: VB-90077574' \
-H 'versionno: 2.0.0'
Objective-C code here
Sample Response
{
"msg": "Successful",
"code": 1,
"challenge": "BBB464BA5DCE2D715F21441AC38152==",
"securityCode": "F6C6"
}
This function will send the 2FA OTP (one time password) to the client's registerred mobile number. API only send one SMS OTP in every 20 seconds.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/twofa/outofboundotp
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
nafUserName | NAF User Name returned from two FA info function |
twoFADeviceId | TwoFA device id returned from two FA info function (should be start with TB) |
spid | spid (service provider id) returned from two FA info function |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinesea |
2FA Authenticate
Sample Request
curl -X POST \
http://118.189.144.221:80/pmobile2/global/twofa/authenticate \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'sessionid: 9AEB0BC8-4B9C-4804-B9C4-52057565D845' \
-H 'versionno: 2.0.0' \
-H 'nafUserName: naf_user_name' \
-H 'twoFADeviceId: twofa_device_id' \
-H 'spid: sp_id' \
-H 'type: two_fa_device_type' \
-H 'twofadata: tow_fa_data' \
-H 'chllenge: chllchllenge' \
-d osVersion=5
Objective-C code here
Sample Response
{
"msg": "Success",
"code": 1
}
Call this function to do the Two FA authentication. If the client registerred for two FA then need to authenticate two FA for each session.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/twofa/authenticate
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
nafUserName | NAF User Name returned from two FA info function |
twoFADeviceId | TwoFA device id returned from two FA info function (should be start with TB) |
spid | spid (service provider id) returned from two FA info function |
type | TwoFA OTP Type (Device OTP or SMS OTP) |
twoFAData | OTP (One Time Password) |
challenge | challenge for SMS OTP |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinesea |
Acknowledge RAS
Sample Request
curl -X POST \
http://118.189.144.221:80/pmobile2/global/twofa/aknowledgeras \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-tint' \
-H 'sessionid: 9AEB0BC8-4B9C-4804-B9C4-52057565D845' \
-H 'versionno: 2.0.0' \
-d 'acknowledge: 1' \
-d osVersion=5
Objective-C code here
Sample Response
{
"msg": "Success",
"code": 1
}
This function is to acknowledge the Two FA Risk Awareness Statement. According to rules and regulation, all the clients must use 2FA to have more secure trading platform. Need to acknoledge the 2FA Risk Awareness Statement if the cient want to proceed without 2FA.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/twofa/acknowledgeras
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinesea |
acknowledge | 0 | 1: acknowledge, 0: not |
Watchlist
The watchlist that we have in POEMS Mobile 2.0 is the global watchlist. You can add any supported product counter in the watchlist. We allow 10 watchlists and maximum 50 counters in each watchlist.
Get all the Watchlist
Sample Request
curl -X GET \
'http://118.189.144.221:80/pmobile2/global/watchlist?osVersion=5' \
-H 'accountno: 0252070' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-tint' \
-H 'sessionid: 97AA3099-4CFE-4C98-8E81-85D741C17839' \
-H 'versionno: 2.0.0'
WatchlistCall watchlist = new WatchlistCall();
ResponseCallback<WatchlistInfo> responseCallback = new ResponseCallback<WatchlistInfo>() {
@Override
protected void onResponse(WatchlistInfo data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
};
watchlist.sendGetWatchlistRequest(language, responseCallback);
Objective-C code here
Sample Response
{
"msg": "success",
"code": 1,
"watchlistDataList": [
{
"watchlistID": 6234,
"name": "WatchList1",
"counterlistURI": "/global/watchlist/6234",
"index": 0
},
{
"watchlistID": 6235,
"name": "WatchList2",
"counterlistURI": "/global/watchlist/6235",
"index": 1
},
{
"watchlistID": 6236,
"name": "WatchList3",
"counterlistURI": "/global/watchlist/6236",
"index": 2
},
{
"watchlistID": 6237,
"name": "WatchList4",
"counterlistURI": "/global/watchlist/6237",
"index": 3
},
{
"watchlistID": 6238,
"name": "WatchList5",
"counterlistURI": "/global/watchlist/6238",
"index": 4
},
{
"watchlistID": 6239,
"name": "WatchList6",
"counterlistURI": "/global/watchlist/6239",
"index": 5
},
{
"watchlistID": 6240,
"name": "WatchList7",
"counterlistURI": "/global/watchlist/6240",
"index": 6
},
{
"watchlistID": 6241,
"name": "WatchList8",
"counterlistURI": "/global/watchlist/6241",
"index": 7
},
{
"watchlistID": 6242,
"name": "WatchList9",
"counterlistURI": "/global/watchlist/6242",
"index": 8
},
{
"watchlistID": 6243,
"name": "WatchList10",
"counterlistURI": "/global/watchlist/6243",
"index": 9
}
]
}
This function is to retrieve all the watchlists for the current login client.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/watchlist
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Get details for specific Watchlist
Sample Request
curl -X GET \
'http://118.189.144.221:80/pmobile2/global/watchlist/828?osVersion=5' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-tint' \
-H 'sessionid: 0E7B9C3F-5033-4752-BF73-33DCF30E870B' \
-H 'versionno: 2.0.0'
WatchlistCall watchlist = new WatchlistCall();
ResponseCallback<WatchlistDetails> responseCallback = new ResponseCallback<WatchlistDetails>() {
@Override
protected void onResponse(WatchlistDetails data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
};
watchlist.sendWatchlistDetailsRequest(language, watchlistID, responseCallback);
Objective-C code here
Sample Response
{
"msg": "success",
"code": 1,
"name": null,
"id": 828,
"counters": [
{
"name": "TOSHIBA CORP",
"nameDisplay": "TOSHIBA CORP",
"code": "6502.JP",
"index": 3,
"symbol": "6502",
"symbolDisplay": null,
"market": "JP",
"exchange": "TSE",
"exchangeDisplay": "TSE",
"globalChartExchange": "TSE",
"product": "ST",
"pmpTopic": "\\JP\\6502.JP",
"counterID": "ST/JP/TSE/6502.JP",
"productIcon": "EQ",
"delayIndicator": ""
},
{
"name": "SingTel",
"nameDisplay": "SingTel",
"code": "SGT.SG",
"index": 4,
"symbol": "Z74",
"symbolDisplay": null,
"market": "SG",
"exchange": "SGX",
"exchangeDisplay": "SGX",
"globalChartExchange": "SGX",
"product": "ST",
"pmpTopic": "\\SGXSE\\Z74_RY",
"counterID": "ST/SG/SGX/SGT.SG",
"productIcon": "EQ",
"delayIndicator": ""
},
{
"name": "DBS",
"nameDisplay": "DBS",
"code": "DBS.SG",
"index": 8,
"symbol": "D05",
"symbolDisplay": null,
"market": "SG",
"exchange": "SGX",
"exchangeDisplay": "SGX",
"globalChartExchange": "SGX",
"product": "CFDDMA",
"pmpTopic": "\\SGXSE\\D05_RY",
"counterID": "CFDDMA/SG/SGX/DBS.SG",
"productIcon": "CFD\r\nDMA",
"delayIndicator": ""
},
{
"name": "DBS",
"nameDisplay": "DBS",
"code": "DBS.SG",
"index": 9,
"symbol": "D05",
"symbolDisplay": null,
"market": "SG",
"exchange": "SGX",
"exchangeDisplay": "SGX",
"globalChartExchange": "SGX",
"product": "ST",
"pmpTopic": "\\SGXSE\\D05_RY",
"counterID": "ST/SG/SGX/DBS.SG",
"productIcon": "EQ",
"delayIndicator": ""
}
]
}
This function is to retrieve the list of counters in specified watchlist.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/{watchListID}
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
Path Parameters
Parameter | Description |
---|---|
watchListID | the watchlist id that you want to get the list of counters |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
Add counter to the Watchlist
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/830/add \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1&counterID=UT%2FUT%2FUT%2F555001&symbol=555001'
Sample Response
{
"msg": "Aberdeen Global - Multi Asset Income Fd Cl A MInc Hedged SGD added to Hello from the other sideeeee.",
"code": 1,
"id": 830,
"counters": [
{
"name": "BEMIS CO INC",
"nameDisplay": "BEMIS CO INC",
"code": "BMS",
"index": 15,
"symbol": "BMS",
"symbolDisplay": null,
"market": "US",
"exchange": "NYSE",
"exchangeDisplay": "NYSE",
"globalChartExchange": "NYSE",
"product": "CFD",
"pmpTopic": "\\NYSE.D\\BMS",
"counterID": "CFD/US/NYSE/BMS",
"productIcon": "CFD",
"delayIndicator": "*"
},
{
"name": "Aberdeen American Opportunities Fund",
"nameDisplay": "Aberdeen American Opportunities Fund",
"code": "501010",
"index": 21,
"symbol": "501010",
"symbolDisplay": null,
"market": "UT",
"exchange": "UT",
"exchangeDisplay": "UT",
"globalChartExchange": "UT",
"product": "UT",
"pmpTopic": "",
"counterID": "UT/UT/UT/501010",
"productIcon": "UT",
"delayIndicator": ""
},
...
]
}
This function is to add the specific counter to the specified watchlist.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/{watchListID}/add
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
osVersion | Client's device OS version |
accountNo | Login Account Number |
sessionId | Session ID |
Path Parameters
Parameter | Description |
---|---|
watchListID | the watchlist id that you want to add the counter |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
counterID | PMobile Counter ID (product/market/exchange/companyCode) e.g, ST/SG/SGX/DBS.SG |
Remove counter from the Watchlist
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/828/remove \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1&counterIDs=ST%2FSG%2FSGX%2FSIAA.SG'
Sample Response
{
"msg": "Instrument deleted from WatchList.",
"code": 1,
"name": null,
"id": 828,
"counters": [
{
"name": "Aberdeen Global - Multi Asset Income Fd Cl A MInc Hedged SGD",
"nameDisplay": "Aberdeen Global - Multi Asset Income Fd Cl A MInc Hedged SGD",
"code": "555001",
"index": 3,
"symbol": "555001",
"symbolDisplay": null,
"market": "UT",
"exchange": "UT",
"exchangeDisplay": "UT",
"globalChartExchange": "UT",
"product": "UT",
"pmpTopic": "",
"counterID": "UT/UT/UT/555001",
"productIcon": "UT",
"delayIndicator": ""
},
{
"name": "B Communications Ltd",
"nameDisplay": "B Communications Ltd",
"code": "BCOM",
"index": 4,
"symbol": "BCOM",
"symbolDisplay": null,
"market": "US",
"exchange": "NASD",
"exchangeDisplay": "NASDAQ",
"globalChartExchange": "NASD",
"product": "ST",
"pmpTopic": "\\NASD.D\\BCOM",
"counterID": "ST/US/NASD/BCOM",
"productIcon": "EQ",
"delayIndicator": "*"
},
...
]
}
This function is to delete multi counters from watch list for login account. Counters will be for all products Stocks, CFD, CFDDM, FT, FXMN and UT.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/{watchListID}/remove
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
counterIDs | Counter ID are separated by comma |
Path Parameters
Parameter | Description |
---|---|
watchlistID | Watchlist ID |
Move counter(s) from one Watchlist to another
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/move \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1&counterIDs=ST%2FUS%2FNASD%2FBCOM&fromWatchlistID=828&toWatchlistID=517'
Sample Response
{
"msg":"Instruments moved to Stocks.",
"code":1,
"moveCounters":[
"ST/SG/SGX/NOBSC.SG"
],
"name":"Qween1",
"id":828,
"counters":[
{
"name":"Aberdeen Global - Multi Asset Income Fd Cl A MInc Hedged SGD",
"nameDisplay":"Aberdeen Global - Multi Asset Income Fd Cl A MInc Hedged SGD",
"code":"555001",
"index":3,
"symbol":"555001",
"symbolDisplay":null,
"market":"UT",
"exchange":"UT",
"exchangeDisplay":"UT",
"globalChartExchange":"UT",
"product":"UT",
"pmpTopic":"",
"counterID":"UT/UT/UT/555001",
"productIcon":"UT",
"delayIndicator":""
},
{
"name":"B Communications Ltd",
"nameDisplay":"B Communications Ltd",
"code":"BCOM",
"index":4,
"symbol":"BCOM",
"symbolDisplay":null,
"market":"US",
"exchange":"NASD",
"exchangeDisplay":"NASDAQ",
"globalChartExchange":"NASD",
"product":"ST",
"pmpTopic":"\\NASD.D\\BCOM",
"counterID":"ST/US/NASD/BCOM",
"productIcon":"EQ",
"delayIndicator":"*"
},
...
]
}
This function is to move multi counters between two watch lists for login account. Counters will be for all products Stocks, CFD, CFDDM, FT, FXMN and UT.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/move
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
counterIDs | Counter ID are separated by comma | |
fromWatchlistID | WatchList ID that counter move from this ID | |
toWatchlistID | WatchList ID that counter move into this ID |
Update counter sequences in the Watchlist
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/828/updatesequence \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1&sequence=UT%2FUT%2FUT%2F555001%2CST%2FUS%2FNYSE%2FBAC%2CST%2FUS%2FNASD%2FBCOM%2CUT%2FUT%2FUT%2F549006%2CCFD%2FUS%2FNYSE%2FFO%2CCFD%2FUS%2FNYSE%2FF%2CCFDDMA%2FSG%2FSGX%2FFCC.SG%2CST%2FHK%2FSEHK%2F8411.HK%2CST%2FUS%2FNYSE%2FLB%2CUT%2FUT%2FUT%2F526055%2CCFD%2FSG%2FSGX%2FMDL.SG%2CST%2FJP%2FTSE%2F7211.JP%2CCFD%2FUS%2FNYSE%2FM%2CFT%2FOSE%2FOSE%2FNKZ18%2CST%2FSG%2FSGX%2FOCBS.SG%2CST%2FSI%2FSGX%2FIXP%2FN.SG%2CFT%2FTOCOM%2FTOCOM%2FJCOJ18%2CST%2FJP%2FTSE%2F7203.JP%2CCFD%2FSG%2FSGX%2FUOB.SG%2CST%2FSG%2FSGX%2FSGT.SG%2CFT%2FICESG%2FICESG%2FSDXU18%2CST%2FSG%2FSGX%2FASHT.SG%2CST%2FCN%2FSZSE%2F002129.CN%2CST%2FJI%2FTSE%2FFD.JP'
Sample Response
{
"msg":"success",
"code":1,
"name":null,
"id":828,
"counters":[
{
"name":"Aberdeen Global - Multi Asset Income Fd Cl A MInc Hedged SGD",
"nameDisplay":"Aberdeen Global - Multi Asset Income Fd Cl A MInc Hedged SGD",
"code":"555001",
"index":1,
"symbol":"555001",
"symbolDisplay":null,
"market":"UT",
"exchange":"UT",
"exchangeDisplay":"UT",
"globalChartExchange":"UT",
"product":"UT",
"pmpTopic":"",
"counterID":"UT/UT/UT/555001",
"productIcon":"UT",
"delayIndicator":""
},
{
"name":"Bank of America Corp",
"nameDisplay":"Bank of America Corp",
"code":"BAC",
"index":2,
"symbol":"BAC",
"symbolDisplay":null,
"market":"US",
"exchange":"NYSE",
"exchangeDisplay":"NYSE",
"globalChartExchange":"NYSE",
"product":"ST",
"pmpTopic":"\\NYSE.D\\BAC",
"counterID":"ST/US/NYSE/BAC",
"productIcon":"EQ",
"delayIndicator":"*"
},
...
]
}
This function is to sort the watch list counters in watch list edit screen. This function will return back the sorted watch list counter details.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/{watchListID}/updatesequence
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
watchlistID | WatchList ID | |
sequence | List of comma separated Counter information (product, market, exchange, company code) |
Update the Watchlist name
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/828/rename \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1&nameNew=Sample'
Sample Response
{
"msg": "success",
"code": 1,
"watchlistDataList": [
{
"watchlistID": 828,
"name": "Sample",
"counterlistURI": "/global/watchlist/828",
"index": 0
},
{
"watchlistID": 829,
"name": "1 watchlist",
"counterlistURI": "/global/watchlist/829",
"index": 1
},
...
]
}
This function is to change the name of watch list for login account. Watch list's name should not be duplicate.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/watchlist/{watchListID}/rename
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
watchlistID | WatchList ID | |
nameNew | Name for renaming |
Counter
Get Pre-login Counter Information
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/counter/prelogin?osVersion=2&keyword=sony&productFlag=2&market=jp&exchange=tes&geography=1&count=2' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: BA31C574-ED52-4EE1-81DA-C8F47D1BA7EF' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterIDs=FX%2FFX%2FFX%2FAUDCAD'
Sample Response
{
"msg": "Success",
"code": 1,
"preloginList": [
{
"title": "Indices",
"uri": "/st/counter/prelogin/worldindices",
"type": "PRELOGIN_COUNTER_WI"
},
{
"title": "STI Component Stock",
"uri": "/st/counter/prelogin/indicescomponent/sgx/STI",
"type": "PRELOGIN_COUNTER_STI"
},
{
"title": "FX/GOLD",
"uri": "/FX/contract/watchlist/prelogin",
"type": "PRELOGIN_COUNTER_FX"
}
]
}
This function is to get pre-login counters information.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/counter/prelogin
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Search Counter
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/counter/search?osVersion=2&keyword=sony&productFlag=2&market=jp' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: FC480CA5-515B-4FC5-B3C2-1F7887364DB9' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterIDs=FX%2FFX%2FFX%2FAUDCAD'
CounterCall counterCall = new CounterCall();
ResponseCallback<CounterList> responseCallback = new ResponseCallback<CounterList>() {
@Override
protected void onResponse(CounterList data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
};
counterCall.sendSearchRequest(language, productFlag, module, keyword, market, exchange, count, responseCallback);
Sample Response
{
"msg": "Success",
"code": 1,
"counterList": [
{
"name": "SONY CORP",
"nameDisplay": "SONY CORP",
"code": "SNE",
"index": 0,
"symbol": "SNE",
"symbolDisplay": "SNE",
"market": "US",
"exchange": "NYSE",
"exchangeDisplay": "NYSE",
"globalChartExchange": "NYSE",
"product": "CFD",
"pmpTopic": null,
"counterID": "CFD/US/NYSE/SNE",
"productIcon": "CFD",
"delayIndicator": null
},
{
"name": "SONY CORP",
"nameDisplay": "SONY CORP",
"code": "6758.JP",
"index": 0,
"symbol": "6758",
"symbolDisplay": "6758",
"market": "JP",
"exchange": "TSE",
"exchangeDisplay": "TSE",
"globalChartExchange": "TSE",
"product": "CFD",
"pmpTopic": null,
"counterID": "CFD/JP/TSE/6758.JP",
"productIcon": "CFD",
"delayIndicator": null
},
{
"name": "Sony Financial Holdings Inc",
"nameDisplay": "Sony Financial Holdings Inc",
"code": "8729.JP",
"index": 0,
"symbol": "8729",
"symbolDisplay": "8729",
"market": "JP",
"exchange": "TSE",
"exchangeDisplay": "TSE",
"globalChartExchange": "TSE",
"product": "CFD",
"pmpTopic": null,
"counterID": "CFD/JP/TSE/8729.JP",
"productIcon": "CFD",
"delayIndicator": null
}
]
}
This function is to search counters.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/counter/search
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
productFlag | 127 | |
module | 0 | |
keyword | ||
market | ||
exchange | ||
count | 10 |
Search Counter by Geography
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/counter/searchbygeography?osVersion=2&keyword=sony&productFlag=2&market=jp&exchange=tes&geography=1&count=2' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: A11CB820-8E40-4D4A-A978-371938437916' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterIDs=FX%2FFX%2FFX%2FAUDCAD'
CounterCall counterCall = new CounterCall();
ResponseCallback<CounterList> responseCallback = new ResponseCallback<CounterList>() {
@Override
protected void onResponse(CounterList data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
};
counterCall.sendSearchByGeographyRequest(language, productFlag, module, keyword, market, exchange, geography, count, responseCallback);
Sample Response
{
"msg": "Success",
"code": 1,
"counterList": [
{
"name": "ADVANTEST CORP",
"nameDisplay": "ADVANTEST CORP",
"code": "6857.JP",
"index": 0,
"symbol": "6857",
"symbolDisplay": "6857",
"market": "JP",
"exchange": "TSE",
"exchangeDisplay": "TSE",
"globalChartExchange": "TSE",
"product": "CFD",
"pmpTopic": null,
"counterID": "CFD/JP/TSE/6857.JP",
"productIcon": "CFD",
"delayIndicator": null
},
{
"name": "AEON CO LTD",
"nameDisplay": "AEON CO LTD",
"code": "8267.JP",
"index": 0,
"symbol": "8267",
"symbolDisplay": "8267",
"market": "JP",
"exchange": "TSE",
"exchangeDisplay": "TSE",
"globalChartExchange": "TSE",
"product": "CFD",
"pmpTopic": null,
"counterID": "CFD/JP/TSE/8267.JP",
"productIcon": "CFD",
"delayIndicator": null
}
]
}
This function is to search counters by geography.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/counter/searchbygeography
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
productFlag | 127 | |
module | 0 | |
keyword | ||
market | ||
exchange | ||
geography | ||
count | 10 |
Get Prices for Counter(s)
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/counter/pricelist?osVersion=2&counterIDs=ST%2FSG%2FSGX%2FDBS.SG&size=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: A7B879BE-0164-4F97-B1E4-11E7B4F88CAB' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterIDs=FX%2FFX%2FFX%2FAUDCAD'
CounterCall counterCall = new CounterCall();
ResponseCallback<PriceInfoList> responseCallback = new ResponseCallback<PriceInfoList>() {
@Override
protected void onResponse(PriceInfoList data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
};
counterCall.sendGetPriceListRequest(language, counterIDs, size, responseCallback);
Sample Response
{
"msg": "Success",
"code": 1,
"priceList": [
{
"product": "ST",
"productIcon": "EQ",
"counterName": "DBS",
"delayIndiciator": "",
"lastDone": "26.68",
"change": "+0.1",
"changePercent": "+0.37%",
"bid": "26.68",
"ask": "26.69",
"bVolK": "2.1",
"sVolK": "1.9",
"volK": "1,167.5",
"open": "26.6",
"high": "26.78",
"low": "26.6",
"prevClose": "26.58",
"currency": null,
"asset": null,
"oneYearReturn": null,
"threeYearReturn": null,
"oneYearAnnReturn": null,
"threeYearAnnReturn": null,
"minInvestment": null,
"subInvestment": null,
"serviceCharge": null,
"symbol": "D05",
"pmpTopic": "\\SGXSE\\D05_RY",
"counterID": "ST/SG/SGX/DBS.SG",
"spread": null,
"spTickSize": null,
"dealingDate": null
}
]
}
This function is to get the price of counters.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/counter/pricelist
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
size | ||
counterIDs | CounterIDs format separates by comma for each counterID.(e.g: ST/SG/SGX/DBS.SG,CFD/SG/SGX/DBS.SG) |
Get Counter Information
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/counter/info?osVersion=2&counterID=ST%2FSG%2FSGX%2FDBS.SG&language=1&priceMode=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: E3FB4D79-017F-4FD7-AF34-89A785F006AB' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterIDs=FX%2FFX%2FFX%2FAUDCAD'
CounterCall counterCall = new CounterCall();
ResponseCallback<CounterDetails> responseCallback = new ResponseCallback<CounterDetails>() {
@Override
protected void onResponse(CounterDetails data) {
// your code here
}
@Override
protected void onError(int code, Throwable t) {
// your code here
}
};
counterCall.sendGetCounterInfoRequest(language, counterID, priceMode, responseCallback);
Sample Response
{
"msg": "success",
"code": 1,
"product": "ST",
"productIcon": "EQ",
"counterName": "DBS",
"market": "SG",
"delayIndicator": "",
"lastDone": "26.71",
"change": "+0.13",
"changePercent": "+0.48%",
"bid": "26.71",
"ask": "26.72",
"bVolK": "31",
"sVolK": "25.3",
"volK": null,
"open": null,
"prevClose": null,
"low": "26.6",
"high": "26.78",
"remark": null,
"remarkDesc": null,
"fiftyTwoWkHigh": null,
"fiftyTwoWkLow": null,
"cpf": null,
"lastDoneDate": "10:41",
"cfdContractInfo": null,
"pmpTopic": "\\SGXSE\\D05_RY",
"symbol": "D05"
}
This function is to retrieve the counter information for Stocks, CFD and UT. This function allows to filter the counter information (Short or Details) by passing the price mode.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/counter/info
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
counterID | ||
priceMode | 1 | 1: Short Info, 2: Detail Info |
Chart
This is global chat, which you can get contract information for charting PMP service.
Get global chart topic
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/chart/globalchartpreauth?osVersion=2&language=1&counterID=ST%2FCN%2FSZSE%2F000009.CN&authCode=' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 8E8CC490-9938-41DE-BD85-27EFCF3751C9' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "success",
"code": 1,
"authCode": "e0aadfb621cf452e9848ec5632c83363",
"contractInfo": {
"contractCode": "000009.CN",
"contractName": "China Baoan Group Co Ltd",
"exchangeCode": "SZSE",
"marketCode": "CN",
"serverHisDaily": "10.30.6.96:1292",
"serverHisMinutely": "10.30.6.96:1292",
"serverLiveMinutely": "10.30.6.95:1291",
"serverHisDailyD": "chartgateway2.test.itsd",
"serverHisMinutelyD": "chartgateway2.test.itsd",
"serverLiveMinutelyD": "chartpmp2.test.itsd",
"topicHisDaily": "\\D\\CN\\SZSE\\000009.CN",
"topicHisMinutely": "\\N\\CN\\SZSE\\000009.CN",
"topicLiveMinutely": "\\STK\\F1\\[CN]000009R",
"historyMinDate": "20170329",
"historyDayDate": "20170606",
"pmpPublishDate": "20180305"
}
}
This function is to retrieve contract information for charting PMP service.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/chart/globalchartpreauth
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
counterID | ||
authCode | Authentication Code return from CFD service (Optional) |
Order Status
This is global order status, which you can get today and past orders information, get order details, withdraw order, amend order and cancel order.
Get Today Orders
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/order/today?osVersion=6.0.1&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 8E24D187-175A-4D2D-8B4E-F243DD51F96A' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "Success",
"code": 1,
"passwordRequire": true,
"twoFARequire": false,
"newOrderPMPTopic": "ZZ|ZZ_0000000|POEMS",
"orders": [
{
"counterID": "ST/SG/SGX/DBS.SG",
"name": "DBS",
"symbol": "D05",
"product": "ST",
"productIcon": "EQ",
"action": "BUY",
"status": "OR",
"statusColor": "BLACK",
"submittedPrice": "28",
"submittedQty": "100",
"remainingQty": "100",
"submittedTime": "05 Mar 2018 05:31 PM",
"executedPrice": "0",
"executedQty": "0",
"updatedTime": "",
"orderNo": "5329077",
"lotSize": "100",
"stopPrice": "0",
"stopLimitPrice": null,
"ocoPrice": null,
"trailingStop": null,
"triggeredType": "",
"units": null,
"investedAmmount": null,
"nav": null,
"netSalesCharge": null,
"receivedTime": "",
"executedTime": "",
"amendURI": "/st/order/5329077/amend",
"withdrawURI": "/st/order/5329077/withdraw",
"isTradeable": true,
"isInfoAvailable": true,
"orderDetailsURI": "/st/order/5329077",
"orderPMPTopic": "ZZ|ZZ_0000000|5329077_L",
"orderType": "Limit Order",
"orderStatusDesc": "Order Received",
"cancelURI": null,
"referenceNo": "5329077",
"delayIndicator": "",
"market": "SG",
"exchange": "SGX",
"paymentCurrency": null,
"latestUpdatedTime": "2018-03-05 17:31:57"
},
{
"counterID": "ST/SG/SGX/DBS.SG",
"name": "DBS",
"symbol": "D05",
"product": "ST",
"productIcon": "EQ",
"action": "BUY",
"status": "WD",
"statusColor": "RED",
"submittedPrice": "28",
"submittedQty": "200",
"remainingQty": "200",
"submittedTime": "05 Mar 2018 06:08 PM",
"executedPrice": "0",
"executedQty": "0",
"updatedTime": "05 Mar 2018 06:09 PM",
"orderNo": "5329079",
"lotSize": "100",
"stopPrice": "0",
"stopLimitPrice": null,
"ocoPrice": null,
"trailingStop": null,
"triggeredType": "",
"units": null,
"investedAmmount": null,
"nav": null,
"netSalesCharge": null,
"receivedTime": "",
"executedTime": "05 Mar 2018 06:09 PM",
"amendURI": "",
"withdrawURI": "",
"isTradeable": true,
"isInfoAvailable": true,
"orderDetailsURI": "/st/order/5329079",
"orderPMPTopic": "ZZ|ZZ_0000000|5329079_L",
"orderType": "Limit Order",
"orderStatusDesc": "Withdrawn",
"cancelURI": null,
"referenceNo": "5329078",
"delayIndicator": "",
"market": "SG",
"exchange": "SGX",
"paymentCurrency": null,
"latestUpdatedTime": "2018-03-05 18:09:46"
},
...
]
}
This function is to get the today order status list. Order status list will be for all products ST, CFD, CFDDM, FT, FXMN, UT.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/order/today
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Get Past Orders Dates
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/order/history/dates?osVersion=6.0.1&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 8E24D187-175A-4D2D-8B4E-F243DD51F96A' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "success",
"code": 1,
"dates": [
{
"display": "05 Mar 2018",
"historyURI": "/global/order/history/20180305"
},
{
"display": "02 Mar 2018",
"historyURI": "/global/order/history/20180302"
},
{
"display": "01 Mar 2018",
"historyURI": "/global/order/history/20180301"
},
{
"display": "28 Feb 2018",
"historyURI": "/global/order/history/20180228"
},
{
"display": "27 Feb 2018",
"historyURI": "/global/order/history/20180227"
},
{
"display": "GTD (Past 7 Days)",
"historyURI": "/global/order/history/gtd_past_7_days"
}
]
}
This function is to get the order status past dates of previous 7 days. Date List will be for all products ST, CFD, CFDDM, FT, FXMN, UT.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/order/history/dates
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Get Past Orders
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/order/history/20180305?osVersion=6.0.1&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 8E24D187-175A-4D2D-8B4E-F243DD51F96A' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "Success",
"code": 1,
"passwordRequire": false,
"twoFARequire": false,
"newOrderPMPTopic": null,
"orders": [
{
"counterID": "ST/SG/SGX/DBS.SG",
"name": "DBS",
"symbol": "D05",
"product": "ST",
"productIcon": "EQ",
"action": "BUY",
"status": "WD",
"statusColor": "RED",
"submittedPrice": "28.09",
"submittedQty": "200",
"remainingQty": "200",
"submittedTime": "05 Mar 2018 01:47 PM",
"executedPrice": "0",
"executedQty": "0",
"updatedTime": "05 Mar 2018 01:48 PM",
"orderNo": "5329070",
"lotSize": null,
"stopPrice": "0",
"stopLimitPrice": null,
"ocoPrice": null,
"trailingStop": null,
"triggeredType": "",
"units": null,
"investedAmmount": null,
"nav": null,
"netSalesCharge": null,
"receivedTime": "",
"executedTime": "05 Mar 2018 01:48 PM",
"amendURI": null,
"withdrawURI": null,
"isTradeable": true,
"isInfoAvailable": true,
"orderDetailsURI": "/st/order/5329070",
"orderPMPTopic": null,
"orderType": "Limit Order",
"orderStatusDesc": "Withdrawn",
"cancelURI": null,
"referenceNo": "5329069",
"delayIndicator": "",
"market": "SG",
"exchange": "SGX",
"paymentCurrency": null,
"latestUpdatedTime": "2018-03-05 13:48:42"
},
{
"counterID": "ST/SG/SGX/DBS.SG",
"name": "DBS",
"symbol": "D05",
"product": "ST",
"productIcon": "EQ",
"action": "BUY",
"status": "WD",
"statusColor": "RED",
"submittedPrice": "28.1",
"submittedQty": "400",
"remainingQty": "400",
"submittedTime": "05 Mar 2018 01:49 PM",
"executedPrice": "0",
"executedQty": "0",
"updatedTime": "05 Mar 2018 01:50 PM",
"orderNo": "5329072",
"lotSize": null,
"stopPrice": "0",
"stopLimitPrice": null,
"ocoPrice": null,
"trailingStop": null,
"triggeredType": "",
"units": null,
"investedAmmount": null,
"nav": null,
"netSalesCharge": null,
"receivedTime": "",
"executedTime": "05 Mar 2018 01:50 PM",
"amendURI": null,
"withdrawURI": null,
"isTradeable": true,
"isInfoAvailable": true,
"orderDetailsURI": "/st/order/5329072",
"orderPMPTopic": null,
"orderType": "Limit Order",
"orderStatusDesc": "Withdrawn",
"cancelURI": null,
"referenceNo": "5329072",
"delayIndicator": "",
"market": "SG",
"exchange": "SGX",
"paymentCurrency": null,
"latestUpdatedTime": "2018-03-05 13:50:13"
},
...
]
}
This function is get the past order status and GTD orders status list according to give pastOrderDate. Past order date is should be within previous 7 days. Order status list will for all products ST, CFD, CFDDM, FT, FXMN, UT.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/order/history/{pastOrderDate}
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Path Parameters
Parameter | Description |
---|---|
pastOrderDate | Date to get past orders list.Format is yyyyMMdd |
Portfolio
This is the global portfolio, which you can get Stocks, CFD and UT account details and position details.
Get Equity Balance
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/portfolio/equitybalance?osVersion=6.0.1&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 8E24D187-175A-4D2D-8B4E-F243DD51F96A' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "Success",
"code": 1,
"clientName": "Gen***94449 ",
"accountType": "V",
"total": "SGD 148,684.63",
"balanceInfo": [
{
"type": "ST",
"lastUpdated": "07-Mar-2018 07:15AM",
"balance": "129,984.13",
"currency": "SGD",
"typeIcon": "EQ"
},
{
"type": "CFD",
"lastUpdated": "07-Mar-2018 09:56AM",
"balance": "0.00",
"currency": "SGD",
"typeIcon": "CFD"
},
{
"type": "FT",
"lastUpdated": "07-Mar-2018 09:58AM",
"balance": "18,700.50",
"currency": "SGD",
"typeIcon": "FUT/FX"
},
{
"type": "UT",
"lastUpdated": "07-Mar-2018 09:56AM",
"balance": "0.00",
"currency": "SGD",
"typeIcon": "UT"
}
],
"needDisclaimer": true,
"disclaimers": [
"Use of ìPortfolioî module under ìAccount Managementî in POEMS is provided for your convenience and should only serve as a guide. Phillip Futures Pte Ltd provides no guarantee with regard to its content and completeness and does not accept any liability for losses which might arise from making use of this information. Futures Call-in trades through dealers or trades done through platforms other than POEMS will not be reflected in the net position calculation."
]
}
This function is to retrieve equity balance details.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/portfolio/equitybalance
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Outstanding Positions
This is global outstanding postions, which you can get outstanding position information for Stocks and UT.
Get Outstanding Positions
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/osposition/bytradecurrency?osVersion=6.0.1&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: D18D1B1E-E011-485D-8F18-6FDF9E3EA98E' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "Success",
"code": 1,
"osposition": [
{
"dueDate": "16-Mar-2018",
"list": [
{
"subTotal": "-43,843.94",
"currency": "SGD",
"list": [
{
"counterID": "ST/SG/SGX/ASHT.SG",
"detailURI": "/st/osposition/contra",
"product": "ST",
"productIcon": "EQ",
"name": "ASCENDAS-HTRUST",
"amountDue": "223.13",
"amountDueBase": 223.13,
"amountDueColor": "Green",
"id": "0501948",
"currency": "SGD",
"market": "SG",
"delayIndicator": "",
"tradable": true
},
{
"counterID": "ST/SG/SGX/BUN.SG",
"detailURI": "/st/osposition/contract",
"product": "ST",
"productIcon": "EQ",
"name": "BUND CENTER",
"amountDue": "-48.95",
"amountDueBase": -48.95,
"amountDueColor": "Red",
"id": "455355/400/01",
"currency": "SGD",
"market": "SG",
"delayIndicator": "",
"tradable": true
},
...
]
},
{
"subTotal": "8,315.65",
"currency": "USD",
"list": [
{
"counterID": "ST/SG/SGX/JMH.SG",
"detailURI": "/st/osposition/contra",
"product": "ST",
"productIcon": "EQ",
"name": "JMH",
"amountDue": "41.65",
"amountDueBase": 56.08,
"amountDueColor": "Green",
"id": "0501943",
"currency": "USD",
"market": "SG",
"delayIndicator": "",
"tradable": true
},
{
"counterID": "ST/SG/SGX/JMH.SG",
"detailURI": "/st/osposition/contract",
"product": "ST",
"productIcon": "EQ",
"name": "JMH",
"amountDue": "9,707.68",
"amountDueBase": 13132.56,
"amountDueColor": "Green",
"id": "453676/700/02",
"currency": "USD",
"market": "SG",
"delayIndicator": "",
"tradable": true
},
...
]
}
]
},
{
"dueDate": "17-Mar-2018",
"list": [
{
"subTotal": "-72,885.73",
"currency": "SGD",
"list": [
{
"counterID": "ST/SG/SGX/BUN.SG",
"detailURI": "/st/osposition/contract",
"product": "ST",
"productIcon": "EQ",
"name": "BUND CENTER",
"amountDue": "-33.61",
"amountDueBase": -33.61,
"amountDueColor": "Red",
"id": "469587/400/01",
"currency": "SGD",
"market": "SG",
"delayIndicator": "",
"tradable": true
},
{
"counterID": "ST/SG/SGX/CLT.SG",
"detailURI": "/st/osposition/contract",
"product": "ST",
"productIcon": "EQ",
"name": "CACHE LOG TRUST",
"amountDue": "-25,136.2",
"amountDueBase": -25136.2,
"amountDueColor": "Red",
"id": "468792/400/01",
"currency": "SGD",
"market": "SG",
"delayIndicator": "",
"tradable": true
},
...
]
},
{
"subTotal": "49,417.72",
"currency": "HKD",
"list": [
{
"counterID": "ST/HK/SEHK/0494.HK",
"detailURI": "/st/osposition/contract",
"product": "ST",
"productIcon": "EQ",
"name": "LI & FUNG",
"amountDue": "49,417.72",
"amountDueBase": 8534.44,
"amountDueColor": "Green",
"id": "484478/700/01",
"currency": "HKD",
"market": "HK",
"delayIndicator": "*",
"tradable": true
}
]
},
...
]
},
...
],
"lastUpdated": "Mar 06 2018 03:47 PM",
"needDisclaimer": true,
"disclaimers": [
"Stocks:",
"Notes: All trades done will be displayed on a best effort basis in the module on T+1. However, clients are advised to refer to the official contract notes for the settlement details. The Company does not accept any responsibility or liability for any loss or inaccuracy of information displayed on its Electronic Broking Services per the Conditions Governing Phillip Securities Trading Accounts.",
" ",
"Unit Trust:",
"Important Notice :",
"1) Payment for Unit Trust transaction is due on the transaction date.",
"2) For CPF/SRS transaction, payment will be updated after money is collected successfully from CPF/SRS Investment bank.",
..."
]
}
This function is to retrieve Client outstanding position.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/osposition/bytradecurrency
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
News
This is the global News, which you can get client My News, get and update My News settings.
Get My News Settings
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/news/settings?language=1&osVersion=5' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 32647BB5-5F4A-4F01-8867-4282E795D308' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&wdProcessNos=&ccProcessNos=186272'
Sample Response
{
"msg": "Success",
"code": 1,
"autoDetect": [
{
"title": "Autodetect",
"value": "1",
"checked": false
}
],
"language": [
{
"title": "English",
"value": "EN",
"checked": false
},
{
"title": "Chinese",
"value": "zhtw",
"checked": false
}
],
"asset": [
{
"title": "Unit Trust",
"value": "ut",
"checked": true
},
{
"title": "Equities",
"value": "st",
"checked": true
},
{
"title": "Forex/Futures",
"value": "fut",
"checked": true
}
],
"source": [
{
"title": "All",
"value": "0",
"checked": true
},
{
"title": "Associated Press Newswires",
"value": "1",
"checked": true
},
...
],
"subject": [
{
"title": "All Headlines",
"value": "200",
"checked": true
},
{
"title": "Stock Market Commentary",
"value": "201",
"checked": true
},
...
],
"industry": [
{
"title": "All",
"value": "0",
"checked": true
},
{
"title": "Agriculture",
"value": "1",
"checked": true
},
...
],
"country": [
{
"title": "All",
"value": "0",
"checked": true
},
{
"title": "Australia",
"value": "1",
"checked": true
},
...
]
}
This function is to retrieve client My News settings.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/news/settings
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Update My News Settings
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/news/settings/update \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 32647BB5-5F4A-4F01-8867-4282E795D308' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&autoDetect=1&newsLanguage=EN&assets=st&source=1&subject=201&industry=1&country=1'
Sample Response
{
"msg": "Success",
"code": 1
}
This function is to update client My News settings.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/news/settings/update
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
autoDetect | 1 | Auto detect client watch list counter related news |
newsLanguage | News content language format | |
assets | Asset class choices (EQ, UT, FUT) | |
source | News content source provider (1, 2, 3...) | |
subject | News content subject or category (201,202...) | |
industry | News content category type (1, 2, 3....) | |
country | News content country coverage (1, 2, 3...) |
Get My News
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/news/mynews?osVersion=2&language=1&count=30&search=China' \
-H 'accountno: 0008911' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 6F52FE61-4D1C-4303-B977-BC7CFF0F14DC' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "Success",
"code": 1,
"newsHeadline": [
{
"title": "CHINA RATES: The seven-day repo average was last...[More]",
"description": "",
"publishedTime": "7 hours 11 mins ago",
"source": null,
"logoURL": null,
"contentURI": "FX/news/2/2656",
"publishedDateTime": 1520556600000
},
{
"title": "CHINA YUAN: The yuan opened at 6.6355 against the...[More]",
"description": "",
"publishedTime": "7 hours 11 mins ago",
"source": null,
"logoURL": null,
"contentURI": "FX/news/1/2886",
"publishedDateTime": 1520556600000
},
...
]
}
This function is to retrieve news base on client My News settings.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/news/mynews
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
count | 30 | |
search |
Announcement
This is the global announcement, which you can get the list of the announcements and the detail of the announcement.
Get Pre-login Announcement
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/prelogin/announcement?osVersion=2&language=1' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "success",
"code": 1,
"timeStamp": "20180312102651",
"announcements": [
{
"announcementID": "677",
"product": "ST",
"title": "mobile announcement testing 2",
"time": "14 Feb 2018 04:36 PM SGT",
"highlight": false
},
{
"announcementID": "676",
"product": "ST",
"title": "test",
"time": "14 Feb 2018 04:35 PM SGT",
"highlight": false
},
{
"announcementID": "675",
"product": "ST",
"title": "test",
"time": "09 Feb 2018 05:17 PM SGT",
"highlight": false
}
]
}
This function is to retrieve the list of the pre-login announcement.This function will return 3 pre-login announcements as default.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/prelogin/announcement
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Get Pre-login Announcement Details
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/prelogin/announcement/677?osVersion=2&language=1' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "success",
"code": 1,
"announcementID": "677",
"product": "ST",
"title": "mobile announcement testing 2",
"time": "14 Feb 2018 04:36 PM SGT",
"content": "mobile announcement testing 2"
}
This function is to retrieve the detail of the pre-login announcement by announcement ID.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/prelogin/announcement/{announcementID}
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Get Announcements
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/announcement?language=1&osVersion=5&product=st&announcementTimeStamp=' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: F40E6287-9F7E-4140-AD52-313CD8E4B8A3' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&wdProcessNos=&ccProcessNos=186272'
Sample Response
{
"msg": "success",
"code": 1,
"timeStamp": "20180312104237",
"announcements": [
{
"announcementID": "677",
"product": "ST",
"title": "mobile announcement testing 2",
"time": "14 Feb 2018 04:36 PM SGT",
"highlight": true
},
{
"announcementID": "676",
"product": "ST",
"title": "test",
"time": "14 Feb 2018 04:35 PM SGT",
"highlight": true
},
...
]
}
This function is to retrieve the list of the announcements for each product by using product key.The function allows to differentiate between the read and unread announcements by passing the timestamp.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/announcement
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
product | Product Key (eg. ST: Stocks, CFD: CFD, etc) | |
announcementTimeStamp | TimeStamp for Announcement Alert (yyyyMMddHHmmss) |
Get Announcement Details
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/announcement/676?language=1&osVersion=5&product=st' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: F40E6287-9F7E-4140-AD52-313CD8E4B8A3' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&wdProcessNos=&ccProcessNos=186272'
Sample Response
{
"msg": "success",
"code": 1,
"announcementID": "676",
"product": "ST",
"title": "test",
"time": "14 Feb 2018 04:35 PM SGT",
"content": "test"
}
This function is to retrieve the announcement detail by product key and announcement ID.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/announcement/{announcementID}
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
product | Product Key (eg. ST: Stocks, CFD: CFD, etc) |
Alerts
This is the global alerts, which you can get the number of notification alerts, get the price alert list, get the price alert detail, update and remove price alerts, get order alerts, get account alerts, get and update alerts settings.
Get Alerts Count
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/count?language=1&osVersion=5&priceAlertTimeStamp=&orderAlertTimeStamp=&accountAlertSTTimeStamp=&accountAlertCFDTimeStamp=&accountAlertUTTimeStamp=&accountAlertFTTimeStamp=&announcementTimeStamp=' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: F40E6287-9F7E-4140-AD52-313CD8E4B8A3' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&wdProcessNos=&ccProcessNos=186272'
Sample Response
{
"msg": "Success",
"code": 1,
"price": 23,
"order": 45,
"account": 0,
"announcement": 162
}
This function is to retrieve the number of notification alerts (price alert count, order alert count, ST account alert, CFD account alert, UT account alert, FT account alert, announcement). The function allows to filter the number of alert by passing the timestamp for each alert type.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/count
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
priceAlertTimeStamp | TimeStamp for Price Alert (yyyyMMddHHmmss) | |
orderAlertTimeStamp | TimeStamp for Order Alert (yyyyMMddHHmmss) | |
accountAlertSTTimeStamp | TimeStamp for Stocks Account Alert (yyyyMMddHHmmss) | |
accountAlertCFDTimeStamp | TimeStamp for CFD Account Alert (yyyyMMddHHmmss) | |
accountAlertUTTimeStamp | TimeStamp for UT Account Alert (yyyyMMddHHmmss) | |
accountAlertFTTimeStamp | TimeStamp for FT Account Alert (yyyyMMddHHmmss) | |
announcementTimeStamp | TimeStamp for Announcement Alert (yyyyMMddHHmmss) |
Get Price Alerts
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/price?language=1&osVersion=5&priceAlertTimeStamp=' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: F40E6287-9F7E-4140-AD52-313CD8E4B8A3' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&wdProcessNos=&ccProcessNos=186272'
Sample Response
{
"msg": "success",
"code": 1,
"timeStamp": "20180312120135",
"triggered": [
{
"counterID": "ST/CN/SSE/601288.CN",
"product": "ST",
"productIcon": "EQ",
"counterName": "Agricultural Bank of China Ltd",
"delayIndicator": "*",
"market": "CN",
"alerts": [
{
"alertID": "239558",
"alertField": "Change %",
"operator": "<=",
"alertType": null,
"alertValue": "1",
"updatedTime": "09-Mar, 10:09AM",
"updatedTimestamp": 1520561397787,
"highlight": true,
"latestValue": "+0.25%"
}
]
},
{
"counterID": "ST/US/NYSE/BAC.PD",
"product": "ST",
"productIcon": "EQ",
"counterName": "BANK OF AMER CRP PREF SHARE BAC 6.204 P12/31/49 D",
"delayIndicator": "*",
"market": "US",
"alerts": [
{
"alertID": "239559",
"alertField": "Change %",
"operator": "<=",
"alertType": null,
"alertValue": "1",
"updatedTime": "08-Mar, 10:45PM",
"updatedTimestamp": 1520520304643,
"highlight": true,
"latestValue": "+0.18%"
}
]
},
...
],
"unTriggered": [
{
"counterID": "CFD/US/NYSE/O",
"product": "CFD",
"productIcon": "CFD",
"counterName": "REALTY INCOME CORP MD",
"delayIndicator": "*",
"market": "US",
"alerts": [
{
"alertID": "239564",
"alertField": "Bid Price",
"operator": "<=",
"alertType": null,
"alertValue": "48.5",
"updatedTime": "12-Mar, 11:58AM",
"updatedTimestamp": 1520827114903,
"highlight": false,
"latestValue": "49.69"
},
{
"alertID": "239563",
"alertField": "Bid Price",
"operator": "<=",
"alertType": null,
"alertValue": "47",
"updatedTime": "12-Mar, 11:54AM",
"updatedTimestamp": 1520826865107,
"highlight": false,
"latestValue": "49.69"
},
{
"alertID": "239562",
"alertField": "Bid Price",
"operator": "<=",
"alertType": null,
"alertValue": "48",
"updatedTime": "12-Mar, 11:49AM",
"updatedTimestamp": 1520826585083,
"highlight": false,
"latestValue": "49.69"
}
]
},
{
"counterID": "ST/CN/SSE/601288.CN",
"product": "ST",
"productIcon": "EQ",
"counterName": "Agricultural Bank of China Ltd",
"delayIndicator": "*",
"market": "CN",
"alerts": [
{
"alertID": "239561",
"alertField": "Last Done",
"operator": "<=",
"alertType": null,
"alertValue": "3",
"updatedTime": "08-Mar, 06:05PM",
"updatedTimestamp": 1520503500227,
"highlight": false,
"latestValue": "4.03"
}
]
},
...
]
}
This function is to get the price alert list for Stocks, CFD, CFDDMA and UT. Highlight's value will set according to filter with time stamp.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/price
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
priceAlertTimeStamp | TimeStamp for Price Alert (yyyyMMddHHmmss) |
Get Price Alert Details
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/price/detail?language=1&osVersion=5&counterID=ST%2FCN%2FSSE%2F601288.CN' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: F40E6287-9F7E-4140-AD52-313CD8E4B8A3' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&wdProcessNos=&ccProcessNos=186272'
Sample Response
{
"msg": "Success",
"code": 1,
"counterID": "ST/CN/SSE/601288.CN",
"product": "ST",
"productIcon": "EQ",
"counterName": "Agricultural Bank of China Ltd",
"delayIndicator": "*",
"alerts": [
{
"alertID": "239561",
"alertField": "Last Done",
"operator": "<=",
"alertType": "last_done_down",
"alertValue": "3",
"updatedTime": null,
"updatedTimestamp": null,
"highlight": null,
"latestValue": null
}
]
}
This function is to get the price alert detail by counterID. CounterID will be for product Stocks, CFD, CFDDMA and UT.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/price/detail
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
counterID |
Update Price Alert
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/alert/price/update \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: F40E6287-9F7E-4140-AD52-313CD8E4B8A3' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&rules=%5B%7B%22alertID%22%3A%22%22%2C%22alertSwitch%22%3A%22true%22%2C%22alertType%22%3A%22last_done_up%22%2C%22alertValue%22%3A%225%22%7D%2C%7B%22alertID%22%3A%22239561%22%2C%22alertSwitch%22%3A%22true%22%2C%22alertType%22%3A%22last_done_down%22%2C%22alertValue%22%3A%223%22%7D%2C%7B%22alertID%22%3A%22%22%2C%22alertSwitch%22%3A%22true%22%2C%22alertType%22%3A%22pct_change_up%22%2C%22alertValue%22%3A%221%22%7D%2C%7B%22alertID%22%3A%22%22%2C%22alertSwitch%22%3A%22true%22%2C%22alertType%22%3A%22pct_change_down%22%2C%22alertValue%22%3A%2210%22%7D%5D&counterID=ST%2FCN%2FSSE%2F601288.CN'
Sample Response
{
"msg":"Your alerts are successfully saved. We will notify you when any of the following conditions you set are met:",
"code":1,
"disclaimer":"Alert on POEMS should only serve as a guide and should not be relied upon in any way. PhillipCapital accepts no liability whatsoever for any losses or damages resulting from the use of reliance on this service. Please check the actual update info on the trading platform before making any transactions.",
"alerts":[
{
"alertID":"239561",
"alertField":"Last Done",
"operator":"<=",
"alertType":"last_done_down",
"alertValue":"3",
"updatedTime":null,
"updatedTimestamp":null,
"highlight":null,
"latestValue":null
},
{
"alertID":"239565",
"alertField":"Last Done",
"operator":">=",
"alertType":"last_done_up",
"alertValue":"5",
"updatedTime":null,
"updatedTimestamp":null,
"highlight":null,
"latestValue":null
},
{
"alertID":"239566",
"alertField":"Change %",
"operator":">=",
"alertType":"pct_change_up",
"alertValue":"1",
"updatedTime":null,
"updatedTimestamp":null,
"highlight":null,
"latestValue":null
},
{
"alertID":"239567",
"alertField":"Change %",
"operator":"<=",
"alertType":"pct_change_down",
"alertValue":"10",
"updatedTime":null,
"updatedTimestamp":null,
"highlight":null,
"latestValue":null
}
]
}
This function is to update for given counerID of rules.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/alert/price/update
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
counterID | ||
rules | Json format String (eg.[{"alertID": String, "alertType": String, "alertValue": String, "alertSwitch": String}]) |
Remove Price Alert
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/alert/price/delete \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: F40E6287-9F7E-4140-AD52-313CD8E4B8A3' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&alertIDs=%5B%7B%22alertIDs%22%3A%5B%7B%22alertID%22%3A%22239565%22%7D%2C%7B%22alertID%22%3A%22239561%22%7D%5D%2C%22counterID%22%3A%22ST%2FCN%2FSSE%2F601288.CN%22%7D%5D'
Sample Response
{
"msg":"Success",
"code":1
}
This function is to delete price alert for given counterID.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/alert/price/delete
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
alertIDs | ||
rules | Json format String [{counterID: String, alertIDs: [{ alertID: String }] }] |
Get Order Alerts
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/order?osVersion=2&language=1&orderAlertTimeStamp=' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: F40E6287-9F7E-4140-AD52-313CD8E4B8A3' \
-H 'versionno: 2.0.0' \
-d 'language=1&osVersion=5&counterID=ST%2FSG%2FSGX%2FCRP.SG'
Sample Response
{
"msg": "Success",
"code": 1,
"timeStamp": "20180312144458",
"orderAlerts": [
{
"counterID": "ST/SG/SGX/DBS.SG",
"product": "ST",
"productIcon": "EQ",
"counterName": "DBS",
"orderNo": "5329180",
"refNo": "5329180",
"orderType": "Limit Order",
"orderStatus": "Order Received",
"orderStatusColor": "BLACK",
"action": "BUY",
"price": "28.13",
"quantity": "100",
"execTime": "12 Mar 2018 01:20 AM",
"highlight": true,
"delayIndicator": "",
"market": "SG"
},
{
"counterID": "ST/ //AMRK",
"product": "ST",
"productIcon": "EQ",
"counterName": "",
"orderNo": "315288",
"refNo": "315288",
"orderType": "Limit Order",
"orderStatus": "Rejected",
"orderStatusColor": "RED",
"action": "BUY",
"price": "16.52",
"quantity": "800",
"execTime": "03 Oct 2017 04:03 PM",
"highlight": true,
"delayIndicator": "",
"market": " "
},
...
]
}
This function is to get the order alert list for Stocks, CFD, CFDDMA and UT.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/order
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
orderAlertTimeStamp | TimeStamp for Order Alert (yyyyMMddHHmmss) |
Get Alerts Settings
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/settings?osVersion=2&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: 801d0c3e3631a7bf' \
-H 'notificationtoken: ecDgFhnevlI:APA91bEy_-1KnRglThmDvluIzggdQLHbqjaTuNBdIuUDQ0UU-jACP3McodjvxMDtN8Zvbh8oYR53Kc6hJqXzXtRanYj8hBEjihxsQOwbkfEeHAo_AKfRhRHPaPACFcLUSaCvPHOjhoJc' \
-H 'sessionid: 523AEDDD-3EBB-45CC-A74D-726C6758A7BB' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "Alert has not been setup yet.",
"code": 1,
"alertSettings": [
{
"key": "AllAlerts",
"display": "All Alerts",
"value": false,
"subSettings": null
}
]
}
This function is to retrieve the alert settings(AllAlerts, Price Alerts, Order Alerts, Stocks Account Alerts, Unit Trust Account Alerts, CFD Account Alerts, Announcements) for current login account. If the notification is not enabled, this function will return false for "AllAlerts" and will not return the other alerts.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/gloabl/alert/settings
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
notificationToken | Application Token provided by GCM or APN |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Update Alerts Settings
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/alert/settings/update \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: 801d0c3e3631a7bf' \
-H 'sessionid: 523AEDDD-3EBB-45CC-A74D-726C6758A7BB' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1&settingKey=9001&settingValue=1&='
Sample Response
{
"msg": "Settings have been saved successfully.",
"code": 1
}
This function is to allow the user to enable or disable the notification setting of each alert setting key for current login user.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/alert/settings/update
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
settingKey | Alert Setting Key (eg. AllAlerts: All Alerts, 9001: Price Alerts, etc) | |
settingValue | 1: Enable, 0: Disable |
Notification
This is the global notification, which you can check notification device, update notification device and update notification token.
Check Notification Device
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/alert/device?osVersion=2&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: 801d0c3e3631a7bf' \
-H 'sessionid: DFD5C8BC-B513-41C7-9C92-911CD9167FFD' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "Do you want to receive POEMS Notifications for this account on this device?",
"code": -333
}
This function is to check whether the current device and current login id has been registered for notification or not. If not yet then application should request the user to enable the notification.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/alert/device
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Update Notification Device
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/alert/device/update \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: 801d0c3e3631a7bf' \
-H 'sessionid: 64356748-B006-499E-BA94-771FBCCF7FC0' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1¬ificationToken=edR8-VCUAZM%3AAPA91bGpuRsr_Z-L0jrguLbKCrgF8KnOKsucM2uQ10mRTrLgz2h86364MMBpAJ0o04hCUnyEgredJv0IZ1-5EtvIa91M6yMAHSQ0mgasd0b6cngWpvnqVSfGs2RQJhfM5vEtDUxWR7Hi&updateDevice=true'
Sample Response
{
"msg": "success",
"code": 1
}
This function is to update notification device.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/alert/device/update
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
notificationToken | Application Token provided by GCM or APN | |
updateDevice | false |
Update Notification Token
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/alert/updatetoken \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: 801d0c3e3631a7bf' \
-H 'sessionid: 64356748-B006-499E-BA94-771FBCCF7FC0' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1¬ificationToken=edR8-VCUAZM%3AAPA91bGpuRsr_Z-L0jrguLbKCrgF8KnOKsucM2uQ10mRTrLgz2h86364MMBpAJ0o04hCUnyEgredJv0IZ1-5EtvIa91M6yMAHSQ0mgasd0b6cngWpvnqVSfGs2RQJhfM5vEtDUxWR7Hi'
Sample Response
{
"msg": "success",
"code": 1
}
This function is to update notification token.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/alert/updatetoken
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
notificationToken | Application Token provided by GCM or APN |
Settings
This is the global settings, which you can get main menu, hotline information, remisier information, product access pmp configuration, client settings etc.
Get Main Menu
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/settings/menu?osVersion=2&language=1&module=' \
-H 'accountno: 0008911' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: FF5608B9-5999-4607-8B5E-72086DBF1A0A' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "success",
"code": 1,
"Menu": [
{
"id": "Watchlist",
"displayName": "Watchlist",
"groupName": "LeftTop",
"index": 1
},
{
"id": "Trade",
"displayName": "Trade",
"groupName": "LeftTop",
"index": 2
},
...
]
}
This function is to get main menu.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/settings/menu
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
module |
Get Hotline Info
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/settings/hotline?osVersion=2&language=1' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "success",
"code": 1,
"stocks": "6531 1555",
"cfddma": "6336 4564",
"ftfx": "6538 0500",
"contactUsCategories": [
{
"value": "ContactUs_1Feedback",
"text": "Feedback"
},
{
"value": "ContactUs_2General",
"text": "General Enquiry"
},
{
"value": "ContactUs_3TechSup",
"text": "Technical Support"
},
{
"value": "ContactUs_4Other",
"text": "Others"
}
]
}
This function is to get hotline information.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/settings/hotline
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Get Remisier Info
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/settings/remisier?osVersion=2&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "Success",
"code": 1,
"remisier": [
{
"type": "TR",
"name": "zzz***",
"code": "ZZ",
"email": "NA*14@67.xx",
"officeNumber1": "12345678 ",
"officeNumber2": "12345678 ",
"mobileNumber": "12345678 "
},
{
"type": "AE",
"name": "",
"code": "ZZ",
"email": "",
"officeNumber1": "",
"officeNumber2": "",
"mobileNumber": ""
}
]
}
This function is to retrieve remisier detilas.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/settings/remisier
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Contact Us
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/settings/contactus \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1&category=ContactUs_1Feedback&message=sample&email=sample%40test.com&name=test'
Sample Response
{
"msg": "Success",
"code": 1
}
This function is to send customer feedback.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/settings/contactus
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
category | ContactUs_1Feedback | |
message | ||
name |
Get Product Access
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/settings/productaccess?osVersion=2&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "success",
"code": 1,
"ST": {
"access": true,
"binaryFlag": 1,
"icon": "EQ",
"name": "Equities",
"searchEnabled": true
},
"CFD": {
"access": true,
"binaryFlag": 2,
"icon": "CFD",
"name": "CFD",
"searchEnabled": true
},
...
},
"allSearchValue": 127,
"searchOptions": [
{
"binaryFlag": 127,
"name": "All"
},
{
"binaryFlag": 1,
"name": "EQ"
},
...
]
}
This function is to retrieve product access information.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/settings/productaccess
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Get PMP Configuration
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/settings/pmp?osVersion=2&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "success",
"code": 1,
"module": {
"watchlist": true,
"top30": true,
"counterDetails": true,
"marketDepth": true,
"liveChart": true,
"timeSales": false,
"orderStatus": false
},
"liveChart": {
"topicURL": "...",
"liveURL": "http://chartpmp2.poems.com.sg",
"alternativeLiveURLs": [
...
],
"historicalURL": "...",
"alternativeHistoricalURLs": [
...
]
},
"enabledProducts": [
{
"product": "ST",
"markets": [
{
"market": "SG",
"primaryURL": "...",
"alternativeURLs": [
...
],
"primaryDelayedURL": null,
"alternativeDelayedURLs": null
},
{
"market": "US",
"primaryURL": "...",
"alternativeURLs": [
...
],
"primaryDelayedURL": "...",
"alternativeDelayedURLs": [
...
]
},
...
],
"orderStatusURL": null,
"orderStatusAlternativeURL": null
},
{
"product": "CFD",
"markets": [
{
"market": "US",
"primaryURL": "...",
"alternativeURLs": [
...
],
"primaryDelayedURL": "...",
"alternativeDelayedURLs": [
...
]
},
{
"market": "SG",
"primaryURL": "...",
"alternativeURLs": [
...
],
"primaryDelayedURL": null,
"alternativeDelayedURLs": null
},
...
],
"orderStatusURL": null,
"orderStatusAlternativeURL": null
},
...
]
}
This function is to retrieve pmp configuration.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/settings/pmp
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Get Client/Device Settings
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/settings/account?osVersion=2&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "success",
"code": 1,
"sessionExpire": {
"value": "0",
"text": "No Session Timeout"
},
"passwordConfirmation": true,
"landingScreen": {
"value": "LastViewed",
"text": "Last Viewed"
},
"defaultProduct": {
"value": "ST",
"text": "Stocks"
},
"language": {
"value": "1",
"text": "English"
}
}
This function is to retrieve client settings.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/settings/account
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Get Client/Device Settings Options
Sample Request
curl -X GET \
'https://sandboxapi.poems.com.sg/pmobile2/global/settings/options/defaultProduct?osVersion=2&language=1' \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'deviceid: deviceid-sample' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0'
Sample Response
{
"msg": "success",
"code": 1,
"settingOptions": [
{
"value": "ST",
"text": "Stocks"
},
{
"value": "CFD",
"text": "CFD"
},
{
"value": "UT",
"text": "Unit Trust"
},
{
"value": "FUT",
"text": "Futures"
},
{
"value": "FX",
"text": "Forex"
}
]
}
This function is to retrieve client settings options information.
HTTP Request
GET https://sandboxapi.poems.com.sg/pmobile2/global/settings/options/{settingType}
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
Query Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version |
Path Parameters
Parameter | Description |
---|---|
settingType | Setting Type |
Update Client/Device Settings
Sample Request
curl -X POST \
https://sandboxapi.poems.com.sg/pmobile2/global/settings/account/update \
-H 'accountno: 0000000' \
-H 'apikey: 3FA5B748-9EC7-41EF-93FA-8C93AC349312' \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-H 'deviceid: deviceid-sample' \
-H 'encryptedpin: 56ABB123D85C7186150DBA71F9EB48482B094D2A78725E4F11376E946B8AD18BB9E6BF0E1BF3BC2EDE7287F6B97A844E54F55A3375253FD5C7197ACF790E2DCC9FD5132E9E807BAD5DFC7E5ED832692AF555416BD60850CB2BB71BCF9002F9DFB791A4BEC01175014F8C3C2FA4C7E32B91164333D4CA3CD0143FDFA89E7D31BF' \
-H 'postman-token: 37699b4f-7b1a-e45e-3dc1-70aec1dbf29f' \
-H 'sessionid: 3D27207A-7D80-4F4F-8116-8A2802324EF6' \
-H 'versionno: 2.0.0' \
-d 'osVersion=2&language=1&settingType=defaultProduct&settingValue=UT'
Sample Response
{
"msg": "success",
"code": 1
}
This function is to update client settings.
HTTP Request
POST https://sandboxapi.poems.com.sg/pmobile2/global/settings/account/update
Header Parameters
Parameter | Description |
---|---|
apikey | API key to access the api |
versionNo | Application version number |
deviceId | Client's device id |
accountNo | Login Account Number |
sessionId | Session ID |
encryptedPIN | Encrypted PIN generated from client's password by using e2ee client lib |
Form Parameters
Parameter | Default | Description |
---|---|---|
language | 1 | 1: English, 2: Chinese |
osVersion | Client's device OS version | |
settingType | ||
settingValue |
Errors
The Kittn API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The kitten requested is hidden for administrators only. |
404 | Not Found -- The specified kitten could not be found. |
405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The kitten requested has been removed from our servers. |
418 | I'm a teapot. |
429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |