NAV Navbar
cURL Java Objective-C C# (RestSharp) Python VB/Excel
  • PMobile 2 - Global API
  • Authentication
  • Watchlist
  • Counter
  • Chart
  • Order Status
  • Portfolio
  • Outstanding Positions
  • News
  • Announcement
  • Alerts
  • Notification
  • Settings
  • Errors
  • 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:

    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:

    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&notificationToken=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&notificationToken=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
    email
    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.