72
Page 1 of 72 FundConnext Restful Web services API Message Specification Version 1.11 April 8, 2020

Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

  • Upload
    others

  • View
    18

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 1 of 72

FundConnext

Restful Web services API

Message Specification

Version 1.11

April 8, 2020

Page 2: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 2 of 72

Revision

Revision Description Updated by Updated Date

0.23 1. Edit API Login 2. Change unitHolderId to unitholderId 3. Edit API Order Inquiry 4. Edit API Balance Inquiry 5. Change message status from 200 to 201 for

creating transaction

Nongyao J. 01/11/2016

0.24 1. Change data type of number data from char to

number

Chatchai 18/11/2016

0.25 1. Order Inquiry API: add allotted unit, allotted amount and allotted NAV

2. Balance Inquiry API: add pending unit, pending amount and average cost

3. Add error message for subscription and redemption API

4. Update error message

Chatchai 13/12/2016

0.26 1. Order Inquiry API: add fee, allotment NAV Chatchai 19/12/2016

0.30 1. Add fields to match with bulk upload format 2. Change transactionId size to 17 characters

Chatchai 25/01/2017

0.31 1. Adjust redemptionType possible value “Unit” to

“UNIT

2. Add validate minimum outstanding unit/balance for

redemption and switching out

3. Add validate minimum unit/balance redemption

and switching out

4. Update switching error message spec

5. Update cancel and approve error message spec 6. Add download API spec

Chatchai 17/2/2017

1.0 Subscription - Update settlementBankCode and

settlementBankAccount to be optional. - Disable payment type CHQ_SA and CRC_SA

(error message E112) - Add bank mapping validation (error message

E113) - paymentType CHQ_AMC, require to fill pay in

AMC bank code/ account in settlementBankCode and settlementBankAccount

- bankCode is mandatory, if paymentType is CRC_AMC

Redemption - Update settlementBankCode and

settlementBankAccount to be optional. - Add possible value of reasonToSellLtfRmf.

Cancel - If order status is APPROVED, cannot cancel with

API

Chatchai 19/05/2017

Page 3: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 3 of 72

Revision Description Updated by Updated Date

Order Inquiry - Add status WAITING - Add new feature to request all orders by effective

date - Add additional fields to order inquiry response such

as accountId and paymentType. - Update definition of fee to excluded VAT - Fix bug: SWO transaction will be return with SWI

transaction, which is the same transactionId - Add orderType XSO, XSI, TRO and TRI

Download - Add Nav to be possible value for download API Error Message - Remove error code E101 - Add required field error code in approve, cancel,

balance inquiry and order inquiry API. - Add invalid account no error code in balance

inquiry and order inquiry API

1.1 Redemption

- Add error code E208 to reject redemption order, if AMC does not update latest unitholder balance.

- Add bank mapping validation (error message E113)

Switching - Add error code E208 to reject switching out order,

if AMC does not update latest unitholder balance.

Cancel - Add fore parameter to force cancel approved order

Chatchai 26/05/2017

1.2 Subscription - Add error code E209 to reject FATCA person to

buy fund that not allow for FATCA person. - Add field chqBranch for payment type CHQ_AMC Switching - Add error code E253 and E254 to validate

switching transaction Order Inquiry - Add field reject reason for reject order by AMC Download - Add possible value to download Switching Matrix

and Trade Calendar

Chatchai 07/08/2017

Page 4: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 4 of 72

Revision Description Updated by Updated Date

1.3 Subscription/ Redemption / Switching - Add field status for create approved order Download - Add CustomerProfile to be possible value for

download API

Chatchai 24/11/2017

1.4 Add Change Password API Subscription - Add Error E115: Cannot create new unitholder

because FundConnext application form is required - Add Error E116: Cannot create new unitholder

because Citizen ID is expired Subscription / Redemption - Add payment type “COL_SA”

Switching - Edit amount and unit format to be 18,2 and 18,4

respectively. Download - Add Unitholder Balance and Allotted Transaction

Upload - Add upload order file

Chatchai 29/01/2018

1.5 Subscription/ Redemption - collateralAccount for payment type COL_SA

Order Inquiry - Add field navDate and collateralAccount Download - Add Dividend News and Dividend Transaction

Chatchai 14/05/2018

1.6 Subscription V2 - Support create multi unitholder ID Create Unitholder ID - Request new unitholder ID without subscription

order subject to AMC permission. Payment Status Inquiry - New api for inquiry payment status by transactionId Order Inquiry - Add field accountType

Chatchai 20/08//2018

1.7 Subscription - Add E260 error message to validate suitability expiration Download - Add omnibus document (1) Confirmation Note (2)

Monthly Statement (3) Witholding Tax (available

Chatchai 31/01/2019

Page 5: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 5 of 72

Revision Description Updated by Updated Date

only selling agent that subscribe omnibus support modules

1.8 Subscription Basket - Support BasketOrder Download - Add FundFee

Nongyao 9/10/2019

1.9 Payment Status Inquiry - Add failedReason when payment status is failed Download - Fund Performance - Suspend UHID - Assigned UHID - LTF Balance - Pnd2 / Pnd2A

Chatchai 11/11/2019

1.10 Payment Status Inquiry - Add field failedReason Subscription - Add field issuedBy and creditCardNo for paymentType = CRC_* Redemption - LTF order can redeem only unit Order Inquiry - Add status, channel, recurringFlag criteria for Order

Inquiry by Effective Date DCA - Create Subscription DCA order - Cancle Subscription DCA order - Inquiry DCA order Download - Master data such as postal code, bank branch

code, amc code and sa code.

Chatchai 10/01/2020

1.11 Order Inquiry - Order Inquiry by saOrderReferenceNo - Add recurringOrderId, paymentStatus and

paymentProcessingType fields in order inquiry response.

Download - Add hashnext and totalfiles in response header to

support downloading larger 200 MB file. Download Specific Part File - If file’s size is more than 200 MB, FundConnext will

spilt to more than one file. Using this api to download specific part of file.

Nongyao 08/04/2020

Page 6: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 6 of 72

Table of Contents

Login .......................................................................................................................................... 7

Change Password ...................................................................................................................... 8

Create Subscription ..................................................................................................................10

Create Subscription V2 .............................................................................................................16

Create Subscription Basket Order .............................................................................................22

Payment Status Inquiry .............................................................................................................28

Create Redemption ...................................................................................................................30

Create Switching .......................................................................................................................35

Cancel Subscription ..................................................................................................................40

Cancel Redemption ..................................................................................................................42

Cancel Switching ......................................................................................................................44

Approve Subscription ................................................................................................................46

Approve Redemption ................................................................................................................48

Approve Switching ....................................................................................................................50

Order Inquiry Response ............................................................................................................52

Order Inquiry .............................................................................................................................53

Balance Inquiry .........................................................................................................................57

Download File ...........................................................................................................................59

Download Specific Part File ......................................................................................................61

Upload File ................................................................................................................................63

Create Unitholder ......................................................................................................................64

Create Recurring Subscription Order ........................................................................................66

Cancel Recurring Subscription Order ........................................................................................70

Recurring Order Inquiry .............................................................................................................71

Page 7: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 7 of 72

Login Title Login

Description Login to the system and acquire access tokens URL /api/auth Method POST URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"Content-Type": "application/json" }

Data Params Example:

{ "username": "SAA1", "password": "1233", }

Possible Data Params

Key Mandatory Type Max size

Remark

username Y Char 15 password Y Char 15

Success Response

Example:

Status: 200 { "username": "SAA1", "access_token": "n47vrc97jvneqop57xEDKO8E19LSBOEKoseF83", "saCode": "SAOne" }

Error Response

List of error message:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } }

Possible Response

Key Mandatory Type Remark

username Y Char [Success Case] access_token Y Char [Success Case] Access token to be sent

in header of future request saCode Y Char [Success Case] Selling Agent that user

can act on behalf of errMsg Y [Fail Case] code Y Char [Fail Case] Error code message Y Char [Fail Case] Error message for Error

response (status != 200)

Note Token has session time 30 minutes.

Page 8: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 8 of 72

Change Password Title Change Password

Description Change password of current user

URL /api/auth/changePassword/

Method POST

URL Params Required:

N/A

Optional:

N/A

Header

Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{

" newPassword":"pAssword0123"

}

Possible

Data Params

Key Mandatory Type Max

size

Remark

newPassword Y Char 32 Compiled Policy Password Password Length: 8 - 32 characters (Allow special characters such as ! @ # $). Password Complexity: Password must contain at least - One uppercase letter - One lowercase letter - One numeral Enforce Password History: Five of

different unique passwords that a

user must use before the user is

allowed to reuse a previous

password.

Success

Response

Example:

Status: 200

OK

Error

Response

Example:

Status: 401 Unauthorized

{

"errMsg": {

"code": "E000",

"message": "Unauthorized access"

Page 9: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 9 of 72

}

}

Status: 500 Internal Server Error

{

"errMsg": {

"code": "E002",

"message": "InvalidPasswordPolicy"

}

}

Possible

Response

Key Mandatory Type Max

size

Remark

errMsg Y [Fail Case]

Code Y Char 4 [Fail Case] Error code

Message Y Char 100 [Fail Case] Error message for Error

response (status != 200)

Page 10: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 10 of 72

Create Subscription Title Create Subscription

Description Create new subscription order URL /api/subscriptions/ Method POST URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ "saOrderReferenceNo":"91993207101", "transactionDateTime":"20161005101010", "saCode": "SEBA", "accountId":"1233", "unitholderId":"1001", "overrideRiskProfile": "Y", "overrideFxRisk": "Y", "fundCode":"AAB", "amount":"10000.00", "effectiveDate":"20161005", "paymentType":"ATS_SA", "bankCode":"001", "bankAccount":"12345", "channel":"MOB", "icLicense":"00001", "branchNo":"001", "forceEntry":"N", “settlementBankCode”: “001”, “settlementBankAccount”: “123” }

Possible Data Params

Key Mandatory Type Max size

Remark

saOrderReferenceNo Y Char 30 Reference order from SA system

transactionDateTime Y Char 14 Transaction Time from SA System Format: YYYYMMDDHHMMSS

saCode Y Char 15 accountId Y Char 15 unitholderId Y Char 15 AMC’s unitholder ID

[SEG] when create new segregate unitholder ID [OMN] when create new omnibus unitholder ID

fundCode Y Char 30 amount Y Number 18,2 Example: 1000.00 effectiveDate Y Date 8 Format: YYYYMMDD

Example: 20160930 overrideRiskProfile Y Char 1 [Y]- accept to invest in fund that

has higher risk than risk profile. [N] – no override

Page 11: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 11 of 72

overrideFxRisk Y Char 1 [Y]- accepts to invest in fund that has FX risk [N] – no override

paymentType Y Char 8

[ATS_SA] = ATS to/by SA [EATS_SA] = E-ATS to/by SA [TRN_SA] = Bank Transfer to SA [CHQ_SA] = Cheque pay to/by SA [CRC_SA] = Credit card to SA [COL_SA] = Collateral to SA [ATS_AMC] = ATS to/by AMC [TRN_AMC] = Bank Transfer to AMC [CHQ_AMC] = Cheque pay to/by AMC [CRC_AMC] = Credit card to AMC

creditCardNo N Char 16 Credit Card No Required if paymentType = [CRC_*]

issuedBy N Char 20 Credit card issuer Required if paymentType = [CRC_*]

bankCode N Char 4 Required if paymentType = [ATS_*] , [EATS_*],[TRN_*],[CHQ_*]

bankAccount N Char 20 Bank Account

Required if paymentType = [ATS_*] , [EATS_*],[TRN_*]

payChequeNo N Char 10 Required if paymentType = [CHQ_*]

payChequeDate N Date 8 Required if paymentType = [CHQ_*]

channel Y Char 3 [MOB] = Order from mobile device [ONL] = Internet exclude mobile [MKT] = Marketing/Counter

icLicense Y Char 10 Existing IC License branchNo N Char 5 SA Branch Code forceEntry Y Char 1 [Y] = Force to skip cut-off time

validation [N] = Normal order

ltfCondition N Char 1 Only LTF [0] = Not transfer to another LTF [1] = Transfer to another LTF

autoRedeemFundCode N Char 30 Only term fund Fill fund code that subscription when auto redeem term fund.

settlementBankCode N Char 4 Mandatory if paymentType is CHQ_AMC

settlementBankAccount N Char 20 Mandatory if paymentType is CHQ_AMC

chqBranch N Char 5 Mandatory if paymentType is CHQ_AMC

status N Char 10 [APPROVED] = create approved order

collateralAccount N Char 20 Collateral Account for payment type COL_SA

Page 12: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 12 of 72

Success Response

Example:

Status: 200 { "transactionId": "00116100600159217", "saOrderReferenceNo": "91993207101" }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E002", "message": "Invalid field format." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E003", "message": "<Field Name> is invalid." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E102", "message": "Account ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E103", "message": "Unitholder ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E104", "message": " Fund Code cannot be found." }

Page 13: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 13 of 72

} Status: 422 Unprocessable Entry { "errMsg": { "code": "E105", "message": "Investment Consultant cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E112", "message": "Payment type cheque to SA and credit card to SA are not available " } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E113", "message": "Bank code mapping not found" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E115", "message": " Cannot create new unitholder because FundConnext application form is required" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E116", "message": " Cannot create new unitholder because Citizen ID is expired" } }

Status: 422 Unprocessable Entry { "errMsg": { "code": "E201", "message": "Amount must be greater than zero" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E202", "message": " Amount must not be over two place of decimal." } } Status: 422 Unprocessable Entry { "errMsg": {

Page 14: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 14 of 72

"code": "E209", "message": " This fund does not accept order from US citizen." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E251", "message": "Subscription amount is less than minimum initial purchase" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E252", "message": "Subscription amount is less than minimum purchase" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E260", "message": " Suitability Test is expired Please contact your Investment Consultant for update." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E301", "message": " Effective Date cannot be past date" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E302", "message": " Effective date must be the business date for this fund" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E303", "message": " This transaction is submitted after cut-off time, please change the effective date" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E401", "message": " Duplicated SA Order Reference No" }

Page 15: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 15 of 72

}

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

saOrderReferenceNo Y Char 30 [Success Case] Same value of original reference id

errMsg Y [Fail Case] Code Y Char 4 [Fail Case] Error code Message Y Char 100 [Fail Case] Error message for Error

response (status != 200)

Page 16: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 16 of 72

Create Subscription V2 Title Create Subscription V2

Description Create new subscription order version 2

URL /api/subscriptions/v2

Method POST URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ "saOrderReferenceNo":"91993207101", "transactionDateTime":"20161005101010", "saCode": "SEBA", "accountId":"1233", "unitholderId":"NEW_SEG", "overrideRiskProfile": "Y", "overrideFxRisk": "Y", "fundCode":"AAB", "amount":"10000.00", "effectiveDate":"20161005", "paymentType":"ATS_SA", "bankCode":"001", "bankAccount":"12345", "channel":"MOB", "icLicense":"00001", "branchNo":"001", "forceEntry":"N", “settlementBankCode”: “001”, “settlementBankAccount”: “123” }

Possible Data Params

Key Mandatory Type Max size

Remark

saOrderReferenceNo Y Char 30 Reference order from SA system

transactionDateTime Y Char 14 Transaction Time from SA System Format: YYYYMMDDHHMMSS

saCode Y Char 15 accountId Y Char 15 unitholderId Y Char 15 AMC’s unitholder ID

[SEG] when create new segregate unitholder ID [OMN] when create new omnibus unitholder ID [NEW_SEG] when create new segregate unitholder ID for each transaction [NEW_OMN] when create new omnibus unitholder ID for each transaction

Page 17: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 17 of 72

fundCode Y Char 30 amount Y Number 18,2 Example: 1000.00 effectiveDate Y Date 8 Format: YYYYMMDD

Example: 20160930 overrideRiskProfile Y Char 1 [Y]- accept to invest in fund that

has higher risk than risk profile. [N] – no override

overrideFxRisk Y Char 1 [Y]- accepts to invest in fund that has FX risk [N] – no override

paymentType Y Char 8 [ATS_SA] = ATS to/by SA [EATS_SA] = E-ATS to/by SA [TRN_SA] = Bank Transfer to SA [CHQ_SA] = Cheque pay to/by SA [CRC_SA] = Credit card to SA [COL_SA] = Collateral to SA [ATS_AMC] = ATS to/by AMC [TRN_AMC] = Bank Transfer to AMC [CHQ_AMC] = Cheque pay to/by AMC [CRC_AMC] = Credit card to AMC

creditCardNo N Char 16 Credit Card No Required if paymentType = [CRC_*]

issuedBy N Char 20 Credit card issuer Required if paymentType = [CRC_*]

bankCode N Char 4 Required if paymentType = [ATS_*] , [EATS_*],[TRN_*],[CHQ_*]

bankAccount N Char 20 Bank Account

Required if paymentType = [ATS_*] , [EATS_*],[TRN_*]

payChequeNo N Char 10 Required if paymentType = [CHQ_*]

payChequeDate N Date 8 Required if paymentType = [CHQ_*]

channel Y Char 3 [MOB] = Order from mobile device [ONL] = Internet exclude mobile [MKT] = Marketing/Counter

icLicense Y Char 10 Existing IC License branchNo N Char 5 SA Branch Code forceEntry Y Char 1 [Y] = Force to skip cut-off time

validation [N] = Normal order

ltfCondition N Char 1 Only LTF [0] = Not transfer to another LTF [1] = Transfer to another LTF

autoRedeemFundCode N Char 30 Only term fund Fill fund code that subscription when auto redeem term fund.

settlementBankCode N Char 4 Mandatory if paymentType is CHQ_AMC

Page 18: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 18 of 72

settlementBankAccount N Char 20 Mandatory if paymentType is CHQ_AMC

chqBranch N Char 5 Mandatory if paymentType is CHQ_AMC

status N Char 10 [APPROVED] = create approved order

collateralAccount N Char 20 Collateral Account for payment type COL_SA

Success

Response

Example:

Status: 200 { "transactionId": "00116100600159217", "saOrderReferenceNo": "91993207101", "unitholderId": "DUMMY112" }

Error

Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E002", "message": "Invalid field format." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E003", "message": "<Field Name> is invalid." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E102", "message": "Account ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": {

Page 19: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 19 of 72

"code": "E103", "message": "Unitholder ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E104", "message": " Fund Code cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E105", "message": "Investment Consultant cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E112", "message": "Payment type cheque to SA and credit card to SA are not available " } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E113", "message": "Bank code mapping not found" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E115", "message": " Cannot create new unitholder because FundConnext application form is required" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E116", "message": " Cannot create new unitholder because Citizen ID is expired" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E201", "message": "Amount must be greater than zero" } } Status: 422 Unprocessable Entry

Page 20: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 20 of 72

{ "errMsg": { "code": "E202", "message": " Amount must not be over two place of decimal." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E209", "message": " This fund does not accept order from US citizen." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E251", "message": "Subscription amount is less than minimum initial purchase" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E252", "message": "Subscription amount is less than minimum purchase" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E259", "message": " Cannot create additional Unitholder ID } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E260", "message": " Suitability Test is expired Please contact your Investment Consultant for update." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E301", "message": " Effective Date cannot be past date" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E302", "message": " Effective date must be the business date for this fund"

Page 21: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 21 of 72

} } Status: 422 Unprocessable Entry { "errMsg": { "code": "E303", "message": " This transaction is submitted after cut-off time, please change the effective date" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E401", "message": " Duplicated SA Order Reference No" } }

Possible

Response

Key Mandatory Type Max

size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

saOrderReferenceNo Y Char 30 [Success Case] Same value of original reference id

unitholderId Y Char 20 [Success Case] Unitholder ID in FundConnext

errMsg Y [Fail Case] Code Y Char 4 [Fail Case] Error code Message Y Char 100 [Fail Case] Error message for Error

response (status != 200)

Page 22: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 22 of 72

Create Subscription Basket Order Title Create Subscription Basket Order

Description Create new subscription Basket order URL /api/subscriptions/basket Method POST URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ "transactionDateTime":"20161005101010", "saCode": "SEBA", "accountId":"1233", "effectiveDate":"20161005", "paymentType":"ATS_SA", "bankCode":"001", "bankAccount":"12345", "channel":"MOB", "icLicense":"00001", "branchNo":"001", "forceEntry":"N", "basketOrders": [{ "saOrderReferenceNo":"91993207101", "unitholderId":"1001", "overrideRiskProfile": "Y", "overrideFxRisk": "Y", "fundCode":"AAB", "amount":"10000.00", "autoRedeemFundCode": "CCDFund", "settlementBankCode": "001", "settlementBankAccount": "123" }, [{ "saOrderReferenceNo":"23455207101", "unitholderId":"1002", "overrideRiskProfile": "N", "overrideFxRisk": "Y", "fundCode":"AACLTF", "amount":"20000.00", "ltfCondition":"1", "settlementBankCode": "001", "settlementBankAccount": "123" }] }

Possible Data Params

Key Mandatory Type Max size

Remark

transactionDateTime Y Char 14 Transaction Time from SA System Format: YYYYMMDDHHMMSS

saCode Y Char 15

Page 23: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 23 of 72

accountId Y Char 15 effectiveDate Y Date 8 Format: YYYYMMDD

Example: 20160930 paymentType Y Char 8 [ATS_SA] = ATS to/by SA

[TRN_SA] = Bank Transfer to SA [COL_SA] = Collateral to SA

bankCode N Char 4 Required if paymentType = [ATS_SA], [TRN_SA]

bankAccount N Char 20 Bank Account / Credit Card No Required if paymentType = [ATS_SA], [TRN_SA]

channel Y Char 3 [MOB] = Order from mobile device [ONL] = Internet exclude mobile [MKT] = Marketing/Counter

icLicense Y Char 10 Existing IC License branchNo N Char 5 SA Branch Code forceEntry Y Char 1 [Y] = Force to skip cut-off time

validation [N] = Normal order

basketOrders Y [ ] 10 List of Orders consists of

- saOrderReferenceNo - unitholderId - overrideRiskProfile - overrideFxRisk - fundCode - amount - ltfCondition - autoRedeemFundCode - settlementBankCode - settlementBankAccount

saOrderReferenceNo Y Char 30 Reference order from SA system

unitholderId Y Char 15 AMC’s unitholder ID [SEG] when create new segregate unitholder ID [OMN] when create new omnibus unitholder ID

overrideRiskProfile Y Char 1 [Y]- accept to invest in fund that has higher risk than risk profile. [N] – no override

overrideFxRisk Y Char 1 [Y]- accepts to invest in fund that has FX risk [N] – no override

fundCode Y Char 30 amount Y Number 18,2 Example: 1000.00 ltfCondition N Char 1 Only LTF [0] = Not transfer to

another LTF [1] = Transfer to another LTF

autoRedeemFundCode N Char 30 Only term fund Fill fund code that subscription when auto redeem term fund.

settlementBankCode N Char 4 settlementBankAccount N Char 20

Success Response

Example:

Status: 200 { “basketTransactionId: “B12345678”, “basketOrders”: [{

Page 24: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 24 of 72

"transactionId": "00116100600159217", "saOrderReferenceNo": "91993207101" }, { "transactionId": "00116100600159218", "saOrderReferenceNo": "23455207101" }] }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E280", "message": "Basket size exceeds the allowable limit" } } Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E001", "message": "<Field Name> is required field." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E002", "message": "Invalid field format." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E003", "message": "<Field Name> is invalid." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E102", "message": "Account ID cannot be found." } }]

Page 25: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 25 of 72

Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E103", "message": "Unitholder ID cannot be found." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E104", "message": " Fund Code cannot be found." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E105", "message": "Investment Consultant cannot be found." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E112", "message": "Payment type cheque to SA and credit card to SA are not available " } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E113", "message": "Bank code mapping not found" } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E115", "message": " Cannot create new unitholder because FundConnext application form is required" } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E116", "message": " Cannot create new unitholder because Citizen ID is expired" }

Page 26: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 26 of 72

}] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E201", "message": "Amount must be greater than zero" } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E202", "message": " Amount must not be over two place of decimal." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E209", "message": " This fund does not accept order from US citizen." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E251", "message": "Subscription amount is less than minimum initial purchase" } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E252", "message": "Subscription amount is less than minimum purchase" } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E260", "message": " Suitability Test is expired Please contact your Investment Consultant for update." } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E301",

Page 27: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 27 of 72

"message": " Effective Date cannot be past date" } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E302", "message": " Effective date must be the business date for this fund" } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E303", "message": " This transaction is submitted after cut-off time, please change the effective date" } }] Status: 422 Unprocessable Entry [{ "saOrderReferenceNo": "xxxxxxxxx", "errMsg": { "code": "E401", "message": " Duplicated SA Order Reference No" } }]

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

saOrderReferenceNo Y Char 30 [Success Case] Same value of original reference id

errMsg Y [Fail Case] Code Y Char 4 [Fail Case] Error code Message Y Char 100 [Fail Case] Error message for Error

response (status != 200) basketTransactionId Y Char 16 [Success Case] BasketTransaction

Id in fundConnext

Page 28: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 28 of 72

Payment Status Inquiry Title Payment Status Inquiry

Descriptio

n

Payment Status Inquiry

URL /api/payment/query/:transactionId

Method GET URL Params

Required: transactionId Optional: N/A

Possible URL Params

Key Mandatory Type Max size

Remark

transactionId Y Char 16 Transaction Id in fundConnext

Success

Response

Example:

Status: 200 { "paymentStatus": "SUCCESS", "paymentInstructor": "FND", "paymentProcessingType" : "R" } Status: 200 { "paymentStatus": "FAILED", "paymentInstructor": "FND", "paymentProcessingType" : "R",

"failedReason": "เงนิในบญัชไีมพ่อจา่ย"

} Error

Response

Example:

Status: 422 Unprocessable Entry { "errMsg": { "code": "E107", "message": "Transaction ID cannot be found." } }

Possible

Response

Key Mandatory Type Max

size

Remark

paymentInstructor N Char 3 [Success Case] Only paymentType = [ATS_*] [FND] = processed by FinNet [SA] = processed by SA [AMC] = process by AMC

paymentProcessingType N Char 1 [Success Case] Only paymentInstructor = [FND] [B]= Batch [R]= Real time

paymentStatus N Char 10 [Success Case] Only paymentInstructor = [FND] [QUEUING] = in queue [PROCESSING]= processing by FinNet [SUCCESS] = payment sucess [FAILED] = payment failed

failedReason N Char 50 [Success Case]

Page 29: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 29 of 72

Only paymentStatus = [FAILED]

errMsg Y [Fail Case]

Code Y Char 4 [Fail Case] Error code

Message Y Char 100 [Fail Case] Error message for Error response (status != 200)

Page 30: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 30 of 72

Create Redemption Title Create Redemption

Description Create new redemption order URL /api/redemptions/ Method POST URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ "saOrderReferenceNo":"91993207101", "transactionDateTime":"20161005101010", "saCode": "SEBA", "accountId":"1233", "unitholderId":"1001", "fundCode":"AAB", "redemptionType": "AMT", "amount":"10000.00", "effectiveDate":"20161005", "paymentType":"ATS_SA", "bankCode":"001", "bankAccount":"123", "channel":"MOB", "icLicense":"00001", "branchNo":"BB001", "forceEntry":"Y", }

Possible Data Params

Key Mandatory Type Max size

Remark

saOrderReferenceNo Y Char 30 Reference order from SA system

transactionDateTime Y Char 14 Transaction Time from SA System Format: YYYYMMDDHHMMSS

saCode Y Char 15 accountId Y Char 15 unitholderId Y Char 15 AMC’s unitholder ID

fundCode Y Char 30 redemptionType Y Char 4 “UNIT” : unit

“AMT”: amount amount N Number 18,2 Example: 1000.00 unit N Number 18,4 Example: 100.0000 effectiveDate Y Date 8 Format: YYYYMMDD

Example: 20160930 paymentType Y Char 8 [ATS_SA] = ATS to/by SA

[CHQ_SA] = Cheque pay to/by SA [COL_SA] = Collateral by SA [ATS_AMC] = ATS to/by AMC [CHQ_AMC] = Cheque pay to/by AMC

Page 31: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 31 of 72

bankCode N Char 4 Required if paymentType = [ATS_*]

bankAccount N Char 20 Required if paymentType = [ATS_*]

channel Char 3 [MOB] = Order from mobile device [ONL] = Internet exclude mobile [MKT] = Marketing/Counter

icLicense Y Char 10 Existing IC License branchNo N Char 5 SA Branch Code forceEntry Y Char 1 [Y] = Force to skip cut-off

time validation [N] = Normal order

reasonToSellLtfRmf N Char 1 Only LTF/RMF: เหตุผลการขายคนืกรณ๊ กองทุน LTF /RMF

1 = ตาย 2 = ทพุพลภาพ

3 = ตามเงือ่นไขตามกรมสรรพากร 4 = ไมเ่ป็นไปตามเงือ่นไข 5 = ซือ้เกนิในปีปัจจุบนั

rmfCapGainWhtChoice N Char 1 Only RMF: ลกูคา้ใชส้ทิธปิระโยชน์ทางภาษ ีจากกองทนุ RMF รวมทุก บลจ.ไม่น้อยกวา่ 5 ปี

Y : Waive withholding tax N : Charge withholding tax

rmfCapAmtRedeemChoice N Char 1 Only RMF: เงือ่นไขการตดัตน้ทุนเงนิลงทนุกองทุน RMF

1 : ตดัตน้ทนุเงนิลงทุนกอ่นประกาศ 2 : ตดัตน้ทนุเงนิลงทุนหลงัประกาศ 3 : ตดัตน้ทนุเงนิลงทุนทีซ่ ือ้ในปีปัจจุบนั

4 : ตดั FIFO ตามปกต ิsellAllUnitFlag N Char 1 [Y] = Sell all unit

[N] = Not sell all unit settlementBankCode N Char 4 settlementBankAccount N Char 20 status N Char 10 [APPROVED] = create

approved order collateralAccount N Char 20 Collateral Account for payment

type COL_SA

Success Response

Example:

Status: 200 { "transactionId": "00116100600159217", "saOrderReferenceNo": "91993207101", "settlementDate": "20161005" }

Error Response

Example: Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001",

Page 32: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 32 of 72

"message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E002", "message": "Invalid field format." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E003", "message": "<Field Name> is invalid." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E102", "message": "Account ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E103", "message": "Unitholder ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E104", "message": " Fund Code cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E105", "message": "Investment Consultant cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E113", "message": "Bank code mapping not found" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E201", "message": "Amount must be greater than zero" } }

Page 33: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 33 of 72

Status: 422 Unprocessable Entry { "errMsg": { "code": "E202", "message": " Amount must not be over two place of decimal." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E203", "message": " Redemption amount/unit exceeds outstand amount/unit " } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E204", "message": "Unit must be greater than zero" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E205", "message": " Unit must not be over four place of decimal." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E206", "message": "Remaining unit/balance is lower than required minimum unit/balance." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E207", "message": " Redemption amount/unit is less than minimum redemption amount/unit” } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E208", "message": "Order cannot redeem because latest unitholder balance from AMC does not update” } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E286", "message": "LTF can be redeemed by units only" } }

Page 34: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 34 of 72

Status: 422 Unprocessable Entry { "errMsg": { "code": "E287", "message": "LTF cannot be redeemed all units" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E301", "message": " Effective Date cannot be past date" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E302", "message": " Effective date must be the business date for this fund" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E303", "message": " This transaction is submitted after cut-off time, please change the effective date" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E401", "message": " Duplicated SA Order Reference No" } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

saOrderReferenceNo Y Char 30 [Success Case] Same value of original reference id

settlementDate Y Date 8 [Success Case] YYYYMMDD errMsg Y [Fail Case] code Y Char 4 [Fail Case] Error code message Y Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 35: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 35 of 72

Create Switching Title Create Switching

Description

Create new switching order

URL /api/switchings/ Method POST URL Params

Required: N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params

Example:

{ "saOrderReferenceNo":"91993207101", "transactionDateTime":"20161005101010", "saCode": "SEBA", "accountId":"1233", "unitholderId":"1001", "fundCode":"AAB", "overrideRiskProfile": "Y", "overrideFxRisk": "Y", "redemptionType ": "AMT", "amount":"10000.00", "counterFundCode ": "AALTF", "effectiveDate ":"20161005", "channel":"MOB ", "icLicense":"00001", "forceEntry":"N" }

Possible Data Params

Key Mandatory Type Max size

Remark

saOrderReferenceNo Y Char 30 Reference order from SA system

transactionDateTime Y Char 14 Transaction Time from SA System Format: YYYYMMDDHHMMSS

saCode Y Char 15 accountId Y Char 15 unitholderId Y Char 15 fundCode Y Char 30 Switch out: Fund Code redemptionType Y Char 4 “UNIT” : unit

“AMT”: amount amount Number 18,2 Example: 1000.00 unit Number 18,4 Example: 100.0000 counterFundCode Y Char 30 Switch in: Fund Code effectiveDate Y Date 8 overrideRiskProfile Y Char 1 [Y]- accept to invest in fund

that has higher risk than risk profile. [N] – no override

overrideFxRisk Y Char 1 [Y]- accepts to invest in fund that has FX risk [N] – no override

channel Y Char 3 [MOB] = Order from mobile device

Page 36: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 36 of 72

[ONL] = Internet exclude mobile [MKT] = Marketing/Counter

icLicense Y Char 10 Existing IC License branchNo N Char 5 SA Branch Code forceEntry Y Char 1 [Y] = Force to skip cut-off

time validation [N] = Normal order

sellAllUnitFlag N Char 1 [Y] = Sell all unit [N] = Not sell all unit

status N Char 10 [APPROVED] = create approved order

Success Response

Example:

Status: 201 { "transactionId": "00116100600159217", "saOrderReferenceNo": "91993207101", }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E002", "message": "Invalid field format." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E003", "message": "<Field Name> is invalid." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E102", "message": "Account ID cannot be found." } }

Page 37: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 37 of 72

Status: 422 Unprocessable Entry { "errMsg": { "code": "E103", "message": "Unitholder ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E104", "message": " Fund Code cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E105", "message": "Investment Consultant cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E108", "message": " Counter Fund Code cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E201", "message": "Amount must be greater than zero" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E202", "message": " Amount must not be over two place of decimal." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E203", "message": " Redemption amount/unit exceeds outstand amount/unit " } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E204",

Page 38: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 38 of 72

"message": "Unit must be greater than zero" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E205", "message": " Unit must not be over four place of decimal." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E206", "message": "Remaining unit/balance is lower than required minimum unit/balance." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E207", "message": " Redemption amount/unit is less than minimum redemption amount/unit” } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E208", "message": "Order cannot redeem because latest unitholder balance from AMC does not update” } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E251", "message": "amount is less than minimum initial purchase" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E252", "message": "amount is less than minimum purchase" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E253", "message": "Switching transaction is not valid from switching matrix" } }

Page 39: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 39 of 72

Status: 422 Unprocessable Entry { "errMsg": { "code": "E254", "message": "Switching’s type is not supported" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E301", "message": " Effective Date cannot be past date" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E302", "message": " Effective date must be the business date for this fund" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E303", "message": " This transaction is submitted after cut-off time, please change the effective date" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E401", "message": " Duplicated SA Order Reference No" } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

saOrderReferenceNo Char 30 [Success Case] Same value of original reference id

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 40: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 40 of 72

Cancel Subscription Title Cancel Subscription

Description Cancel subscription order URL /api/subscriptions/:transactionId Method DELETE URL Params Required:

N/A Optional: N/A

Header Attribute Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ" }

Data Params Example:

{ "force": "Y" }

Possible Data Params

Key Mandatory Type Max size

Remark

force N Char 1 Default : N Y=force to cancel order N=if order status is “APROVED”, order cannot be cancelled.

Success Response

Example:

Status: 200 { "transactionId": "00116100600159217", }

Error Response Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E107", "message": "Transaction ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E109", "message": "Transaction ID cannot be cancelled." }

Page 41: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 41 of 72

} Status: 422 Unprocessable Entry { "errMsg": { "code": "E304", "message": "Transaction ID cannot be cancelled after cut-off time." } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 42: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 42 of 72

Cancel Redemption Title Cancel Redemption

Description Cancel redemption order URL /api/redemptions/:transactionId Method DELETE URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ" }

Data Params Example:

{ "force": "Y" }

Possible Data Params

Key Mandatory Type Max size

Remark

force N Char 1 Default : N Y=force to cancel order N=if order status is “APROVED”, order cannot be cancelled.

Success Response

Example:

Status: 200 { "transactionId": "00116100600159217", }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E107", "message": "Transaction ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E109", "message": "Transaction ID cannot be cancelled." }

Page 43: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 43 of 72

} Status: 422 Unprocessable Entry { "errMsg": { "code": "E304", "message": "Transaction ID cannot be cancelled after cut-off time." } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 44: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 44 of 72

Cancel Switching Title Cancel Switching

Description Cancel switching order URL /api/switchings/:transactionId Method DELETE URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ" }

Data Params Example:

{ "force": "Y" }

Possible Data Params

Key Mandatory Type Max size

Remark

force N Char 1 Default : N Y=force to cancel order N=if order status is “APROVED”, order cannot be cancelled.

Success Response

Example:

Status: 200 { "transactionId": "00116100600159217", }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E107", "message": "Transaction ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E109", "message": "Transaction ID cannot be cancelled." }

Page 45: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 45 of 72

} Status: 422 Unprocessable Entry { "errMsg": { "code": "E304", "message": "Transaction ID cannot be cancelled after cut-off time." } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 46: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 46 of 72

Approve Subscription Title Approve Subscription

Description Approve subscription order URL /api/subscriptions/:transactionId Method PATCH URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ "status": "Approve" }

Possible Data Params

Key Mandatory Type Max size

Remark

status Y Char 10

Success Response

Example:

Status: 200 { "transactionId": "00116100600159217" }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E107", "message": "Transaction ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E106", "message": "Transaction is already approved." } }

Page 47: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 47 of 72

Status: 422 Unprocessable Entry { "errMsg": { "code": "E110", "message": "Transaction ID cannot be approved." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E305", "message": "Transaction ID cannot be approved after cut-off time." } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 48: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 48 of 72

Approve Redemption Title Approve Redemption

Description Approve redemption order URL /api/redemptions/:transactionId Method PATCH URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ "status": "Approve" }

Possible Data Params

Key Mandatory Type Max size

Remark

status Y Char 10

Success Response

Example:

Status: 200 { "transactionId": "00116100600159217" }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E107", "message": "Transaction ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E106", "message": "Transaction is already approved." } }

Page 49: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 49 of 72

Status: 422 Unprocessable Entry { "errMsg": { "code": "E110", "message": "Transaction ID cannot be approved." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E305", "message": "Transaction ID cannot be approved after cut-off time." } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 50: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 50 of 72

Approve Switching Title Approve Switching

Description Approve switching order URL /api/switchings/:transactionId Method PATCH URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ "status": "Approve" }

Possible Data Params

Key Mandatory Type Max size

Remark

status Y Char 10

Success Response

Example:

Status: 200 { "transactionId": "00116100600159217" }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E107", "message": "Transaction ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E106", "message": "Transaction is already approved." } }

Page 51: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 51 of 72

Status: 422 Unprocessable Entry { "errMsg": { "code": "E110", "message": "Transaction ID cannot be approved." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E305", "message": "Transaction ID cannot be approved after cut-off time. } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 17 [Success Case] Transaction Id in fundConnext

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 52: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 52 of 72

Order Inquiry Response

Order Types

Key Type Max size

Remark SUB RED SWO SWI

transactionId Char 17 Y Y Y Y

saOrderReferenceNo Char 30 Y Y Y Y

transactionDateTime Char 14 Y Y Y Y

orderType Char 3 Y Y Y Y accountId Char 15 Y Y Y Y

unitholderId Char 15 Y Y Y Y

fundCode Char 30 Y Y Y Y

redemptionType Char 4 Y Y

amount Number 18,2 Y Y Y

unit Number 18,4 Y Y

sellAllUnitFlag Char 1 Y Y

status Char 10 Y Y Y Y

effectiveDate Char 8 Y Y Y Y

settlementDate Char 8 Y n/a

amcOrderReferenceNo Char 30 Y Y Y Y

allottedAmount Number 18,2 Y Y Y Y

allottedUnit Number 18,4 Y Y Y Y

allottedNAV Number 13,4 Y Y Y Y

allotmentDate Char 8 Y Y Y Y

fee (excluded VAT) Number 18,2 Y Y Y Y

transactionLastUpdated Char 14 Y Y Y Y

paymentType Char 8 Y Y

bankCode Char 4 Y Y

bankAccount Char 20 Y Y

channel Char 3 Y Y Y Y

icLicense Char 10 Y Y Y Y

branchNo Char 5 Y Y Y Y

forceEntry Char 1 Y Y Y Y

settlementBankCode Char 4 Y Y

settlementBankAccount Char 20 Y Y

chqBranch Char 5 Y

rejectReason Char 50 Y Y Y Y

navDate Char 10 Y Y Y Y

collateralAccount Char 20 Y Y

accountType Char 6 Y Y Y Y

recurringOrderId Char 20 Y

paymentStatus Char 10 Y Y

paymentProcessingType Char 1 Y Y

Page 53: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 53 of 72

Order Inquiry Title 1. Order Inquiry by Account No

Description List orders by account with criteria excluding pass through orders URL /api/account/fundOrders Method GET URL Params

Required: Example:

accountNo=123&begEffectiveDate=20160601&endEffectiveDate=20161031 Optional: N/A

Possible URL Params

Key Mandatory Type Max size

Remark

accountNo Y Char begEffectiveDate Y Date 8 Format: YYYYMMDD

Example: 20160930 endEffectiveDate Y Date 8 Format: YYYYMMDD

Example: 20160930

Title 2. Order Inquiry by Effective Date

Description List all orders by effective date with criteria URL /api /fundOrders Method GET URL Params

Required: Example:

effectiveDate=20160601&status=SUBMITTED&channel=MOB&recurringFlag=Y

Possible URL Params

Key Mandatory Type Max size

Remark

effectiveDate Y Date 8 Format: YYYYMMDD Example: 20160930

status O Char 10 Possilble value ALLOTTED APPROVED CANCELLED EXPIRED REJECTED SUBMITTED WAITING

channel O Char 3 Possible value MOB ONL MKT

recurringFlag O Char 1 “Y” = This order is recurring order. “N” = This order is normal order.

Title 3. Order Inquiry by saOrderReferenceNo Description Get orders by saOrderReferenceNo URL /api/fundOrders/saOrderReferenceNo Method GET URL Params

Required: Example:

saOrderReferenceNo=1234/5678

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Possible URL Params

Key Mandatory Type Max size

Remark

Page 54: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 54 of 72

saOrderReferenceNo Y Char

Success Response

Example:

Status: 200 { “result”: [ { "transactionId": "00116100600159217", "saOrderReferenceNo": "91993207101", “orderType”: “SUB”, “accountId”: “A001”, "unitholderId":"1001", "fundCode":"BTP", "amount":10000.00, “status”: “SUBMITTED”, "transactionDateTime":"20161005101010", "transactionLastUpdated": "20161213101010", "effectiveDate":"20160601", “paymentType”: “TRN_SA”, “bankCode”: “004”, “bankAccount”: “1234567890”, “channel”: “MKT”, “icLicense”: “0001”, “branchNo”: “00001”, “forceEntry”: “N”, “settlementBankCode”: “002”, “settlementBankAccount”: “9876543210” }] } In case of not found saOrderReferenceNo will return response as Status: 200 { “result”: [] }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } }

Possible Response

Key Mandatory Type Max size

Remark

transactionId Y Char 16 [Success Case] Transaction Id in fundConnext

saOrderReferenceNo Y Char 30 [Success Case] orderType Y Char 3 [Success Case]

“SUB” – Subscription

Page 55: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 55 of 72

“RED” – Redemption “SWO” – Switch out “SWI” – Switch in “XSO” – Cross switch out “XSI” – Cross switch in “TRO” – Transfer out “TRI” – Transfer in

accountId Y Char 15 [Success Case]

unitholderId Y Char 15 [Success Case]

fundCode Y Char 30 [Success Case]

redemptionType Y Char 4 [Success Case] Only orderType = “RED” and “SWO” “AMT” – by amount “UNIT” – by unit

unit Number 18,4 [Success Case] Only redemptionType = “UNIT”” Example: 1000.0000

amount Number 18,2 [Success Case] Example : 1000.00

sellAllUnitFlag Char 1 [Success Case] “Y” = Sell all unit “N” = Not sell all unit

status Y Char 10 [Success Case] “SUBMITTED” “APPROVED” “CANCELLED” “EXPIRED” “REJECTED” “WAITING” “ALLOTTED”

transactionDateTime Y Char 14 [Success Case] Format: YYYYMMDDHHMMSS

effectiveDate Y Char 8 [Success Case] Format: YYYYMMDD

settlementDate Y Char 8 [Success Case] Format: YYYYMMDD

amcOrderReferenceNo Char 30 [Success Case] allottedUnit Number 18,4 [Success Case]

1000.1234 allottedAmount Number 18,2 [Success Case]

10000.00 allottedNAV Number 13,4 [Success Case]

10.1234 allotmentDate Char 8 [Success Case]

20161229 fee Number 18,2 [Success Case]

Front-end or Back-end fee 10.1234

transactionLastUpdated Y Char 14 [Success Case] Format: YYYYMMDDHHMMSS Display the lateststatus timestamp

paymentType Char 8 [Success Case]

bankCode Char 4 [Success Case]

bankAccount Char 20 [Success Case]

channel Y Char 3 [Success Case]

Page 56: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 56 of 72

icLicense Y Char 10 [Success Case]

branchNo Char 5 [Success Case]

forceEntry Y Char 1 [Success Case]

settlementBankCode Char 4 [Success Case]

settlementBankAccount Char 20 [Success Case]

chqBranch Char 5 [Success Case] rejectReason Char 50 [Success Case] navDate Char 10 [Success Case] collateralAccount Char 20 [Success Case] accountType Char 6 [Success Case]

[SEG] - Segregrate [OMN] - Omnibus [SEG_NT] - Segregate for non tax [SEG_T] - Segregate for tax [OMN_NT] - Omnibus for non tax [OMN_T] - Omnibus for tax

recurringOrderId C Char 20 [Success Case] Recurring Order Id from FundConnext (only recurring order)

paymentStatus C Char 10 [Success Case] Only paymentInstructor = [FND] [QUEUING] = in queue [PROCESSING]= processing by FinNet [SUCCESS] = payment success [FAILED] = payment failed

paymentProcessingType C Char 1 [Success Case] Only paymentInstructor = [FND] [B]= Batch [R]= Real time

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error

message for Error response (status != 200)

Note

Page 57: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 57 of 72

Balance Inquiry Title Balance Inquiry

Description List unit holder balance by account URL /api/account/balances Method GET URL Params Required:

Example: accountNo=123 Optional: N/A

Possible URL Params

Key Mandatory Type Max size

Remark

accountNo Y Char

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params N/A Success Response

Example:

Status: 200 {[ { “unitholderId: “0001”, "fundCode": "BTP", “unit": 1000.0000, “amount”: 20000.00, “remainUnit": 500.0000, “remainAmount”:10000.00, “pendingAmount”: 0.00, “pendingUnit”: 0.00, “avgCost”: 10.1234, “nav”: 11.1234, “navDate”: “20170124” }, { “unitholderId: “0002”, "fundCode": "KFSDIV", “unit": 1000.0000, “amount”: 20000.00, “remainUnit": 1000.0000, “remainAmount”:20000.00, “pendingAmount”: 0.00, “pendingUnit”: 0.00, “avgCost”: 10.1234, “nav”: 11.1234, “navDate”: “20170124” } ]}

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } }

Page 58: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 58 of 72

Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E102", "message": "Account ID cannot be found." } }

Possible Response

Key Mandatory Type Max size

Remark

unitholderId Y Char 15 [Success Case] fundCode Y Char 30 [Success Case] unit Y Number [Success Case] available

Outstanding unit Example: 1000.0000

amount Y Number [Success Case] available outstanding amount Example: 1000.00

pendingUnit Y Number [Success Case] Pending unit balance Example: 1000.0000

pendingAmount Y Number [Success Case] Pending amount Example: 1000.00

remainUnit Y Number [Success Case] Remaining unit Example: 1000.0000

remainAmount Y Number [Success Case] Remaining amount Example: 1000.00

avgCost N Number [Success Case] Average Cost Example: 15.1234

nav Y Number [Success Case] navDate Y Char 8 [Success Case] errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 59: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 59 of 72

Download File Title Download File

Description Download file by fileType and businessDate URL /api/files/:businessDate/:fileType.zip

Method GET URL Params Required:

Example: /api/files/20170218/FundMapping.zip Optional: N/A

Possible URL Params

Key Mandatory Type Max size

Remark

fileType Y Char 50 Possible Value 1. Fund Data* “FundMapping” “FundProfile” “FundHoliday” “SwitchingMatrix” “TradeCalendar” “Fee” “FundPerformance” 2. Account Data* “AccountProfile” “UnitholderMapping” “BankAccountUnitholder” “CustomerProfile”

3. Confirmation** “Nav” “UnitholderBalance” “AllottedTransactions” “LtfBalance” 4.Dividend** “DividendNews” “DividendTransactions” 5.Omnibus Account Support - “ConfirmationNote”* (available daily after 4:05 pm) - “MonthlyStatement”*** (available monthly after next two business days) - “WitholdingTax”*(available daily after 11:35 am) 6. Others - “SuspendUnitholder”* - “AssignUnitholderId”* - “Pnd2” ”**** (available monthly after next two business days) - “Pnd2A”***** (available yearly after next two business days)

7. Master Data - “PostalCode”* - “BankBranch”* - “AMCCode”* - “SACode”*

Page 60: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 60 of 72

*Use Trading Day ** Use Trading Day -1 *** Use last business day of month ****Use last calendar day of month

businessDate Y Char 10 Format YYYYMMDD

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params N/A Success Response

Example:

Status: 200 Response Header

Content-Type: application/zip Content-Disposition: attachment; filename=":fileType.zip" hasnext: true/false (If the value of this field is true, this file type is splitted to more than one file. Using Download Specific Part File API to download other files.) totalfiles: 5 (In case of the file type has more than one file) Response Body

[File content]

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E500", "message": "Requested file is not found" } }

Possible Response

Key Mandatory Type Max size

Remark

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 61: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 61 of 72

Download Specific Part File Title Download Specific Part File

Description Download file by fileType and businessDate and specific part file URL /api/files/:businessDate/:fileType.zip

Method GET URL Params Required:

Example: /api/files/20200331/MonthlyStatement.zip?part=2 Optional: N/A

Possible URL Params

Key Mandatory Type Max size

Remark

fileType Y Char 50 Possible Value - “MonthlyStatement”*** (available monthly after next two business days) *** Use last business day of month

businessDate Y Char 10 Format YYYYMMDD part Y Number 3 Specific part of file

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params N/A Success Response

Example:

Status: 200 Response Header

Content-Type: application/zip Content-Disposition: attachment; filename=":fileType.zip" hasnext: true/false (If the value of this field is false, this file is the last file) totalfiles: 5 (No of total files) Response Body

[File content]

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E500", "message": "Requested file is not found" } }

Page 62: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 62 of 72

Possible Response

Key Mandatory Type Max size

Remark

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 63: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 63 of 72

Upload File Title Upload File

Description Uploadload file by fileType URL /api/sa/upload/:fileType

Method POST URL Params Required:

Example: /api/sa/upload/orderTransaction Optional: N/A

Possible URL Params

Key Mandatory Type Max size

Remark

fileType Y Char 50 Possible Value “orderTransaction”

Header Attribute Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "multipart/form-data" } Note: The uploaded file must be zipped

Data Params N/A Success Response

Example:

Status: 200

Error Response Example: Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E500", "message": "Upload failed : error message depends on failed case " } }

Possible Response

Key Mandatory Type Max size

Remark

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Page 64: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 64 of 72

Create Unitholder Title Create Unitholder

Description Create new unitholder URL /api/unitholders/dummy Method POST URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ "amcCode":"ABC", "accountId":"A001", "unitholderType": "SEG” }

Possible Data Params

Key Mandatory Type Max size

Remark

amcCode Y Char 20 accountId Y Char 15 unitholderType Y Char 3 AMC’s unitholder Type

[SEG] when create new segregate unitholder ID [OMN] when create new omnibus unitholder ID

Success Response

Example:

Status: 200 { "unitholderId": "DUMMY112" }

Error Response

Example:

Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E002", "message": "Invalid field format." }

Page 65: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 65 of 72

} Status: 422 Unprocessable Entry { "errMsg": { "code": "E003", "message": "<Field Name> is invalid." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E102", "message": " Account ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E117", "message": " Data inconsistency: There is information pending for approval" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E257", "message": "This AMC does not support request new unitholder ID." } }

Possible

Response

Key Mandatory Type Max size

Remark

unitholderId Y Char 20 [Success Case] Unitholder ID in fundConnext

errMsg Y [Fail Case] Code Y Char 4 [Fail Case] Error code Message Y Char 100 [Fail Case] Error message for Error

response (status != 200)

Page 66: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 66 of 72

Create Recurring Subscription Order Title Create Recurring Subscription Order

Description Create Recurring Subscription Order. - Order will be created in next business day, if selected date or selected day is not business date

for each fund. URL /api/subscriptions/recurring Method POST URL Params Required:

N/A Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params Example:

{ “saRecurringOrderRefNo”: “DCA12345”, "saCode": "SACODE", "fundCode":"FUNDLTF", "accountId": "10002201", "unitholderId":"DUMMY5413", "amount":1234.56, "frequency": "WEEKLY", "selectDay": "MON", "effectiveDateFrom": "20191015", "effectiveDateTo": "20201231", "paymentType": "ATS_SA", "bankCode": "001", "bankAccount": "1234567890", "channel": "MOB", "overrideRiskProfile": "Y", "overrideFxRisk": "Y"

} Possible Data Params

Key Mandatory Type Max size

Remark

saRecurringOrderRefNo Y Char 30 Reference recurring order from SA system

saCode Y Char 15 fundCode Y Char 30 accountId Y Char 15 unitholderId Y Char 15 AMC’s unitholder ID

[SEG] when create new segregate unitholder ID [OMN] when create new omnibus unitholder ID

amount Y Number 18,2 Example: 1000.00 frequency Y Char 10 MONTHLY or WEEKLY selectDate N Number 2 [1-31] in case frequency is

Monthly selectDay N Char 3 [MON, TUE, WED, THU, FRI] in

case frequency is Weekly effectiveDateFrom Y Date 8 Must be in advance

Format: YYYYMMDD Example: 20160930

effectiveDateTo N Date 8 Format: YYYYMMDD Example: 20160930

paymentType Y Char 8 [ATS_SA] = ATS to/by SA [ATS_AMC] = ATS to/by AMC

bankCode Y Char 4

Page 67: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 67 of 72

bankAccount Y Char 20 channel Y Char 3 [MOB] = Order from mobile

device [ONL] = Internet exclude mobile [MKT] = Marketing/Counter

Success Response

Example:

Status: 200 { "recurringOrderId": "00116100600159217", “saRecurringOrderRefNo”: “DCA12345” }

Error Response

Example: Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "<Field Name> is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E002", "message": "Invalid field format." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E003", "message": "<Field Name> is invalid." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E102", "message": "Account ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E103", "message": "Unitholder ID cannot be found." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E104", "message": " Fund Code cannot be found." }

Page 68: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 68 of 72

} Status: 422 Unprocessable Entry { "errMsg": { "code": "E113", "message": "Bank code mapping not found" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E115", "message": " Cannot create new unitholder because FundConnext application form is required" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E116", "message": " Cannot create new unitholder because Citizen ID is expired" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E201", "message": "Amount must be greater than zero" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E202", "message": " Amount must not be over two place of decimal." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E209", "message": " This fund does not accept order from US citizen." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E251", "message": "Subscription amount is less than minimum initial purchase" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E252", "message": "Subscription amount is less than minimum purchase" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E260", "message": " Suitability Test is expired Please contact your Investment Consultant for update."

Page 69: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 69 of 72

} } Status: 422 Unprocessable Entry { "errMsg": { "code": "E300", "message": " SaRecurringOrderReferenceNo is duplicated" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E301", "message": " Effective Date From must be advance date" } }

Possible

Response

Key Mandatory Type Max size

Remark

recurringOrderId Y Char 20 [Success Case] Recurring Transaction ID in FundConnext

saRecurringOrderRefNo Y Char 30 [Success Case] Same value of original reference id

errMsg Y [Fail Case] Code Y Char 4 [Fail Case] Error code Message Y Char 100 [Fail Case] Error message for

Error response (status != 200)

Page 70: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 70 of 72

Cancel Recurring Subscription Order Title Cancel Recuring Subscription Order

Description Cancel Recuring Subscription Order URL /api/subscriptions/recurring/:recurringOrderId Method DELETE URL Params Required:

N/A Optional: N/A

Header Attribute Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ" }

Success Response

Example:

Status: 200 { "recurringOrderId": "00116100600159217" }

Error Response Example: Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E107", "message": "Recurring Order ID cannot be found." } }

Possible Response

Key Mandatory Type Max size

Remark

recurringOrderId Y Char 20 [Success Case] Recurring Order Id in FundConnext

errMsg [Fail Case] code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for Error

response (status != 200)

Note

Page 71: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 71 of 72

Recurring Order Inquiry Title Recurring Order Inquiry by Account No

Description List recurring order by account with criteria URL /api/account/recurringOrders Method GET URL Params

Required: Example:

accountNo=123&status=ALL Optional: N/A

Header Attribute

Example: {

"X-Auth-Token": "01KEOKD0387dKEPGKJEEDFKLJ", "Content-Type": "application/json" }

Data Params

N/A

Possible URL Params

Key Mandatory Type Max size

Remark

accountNo Y Char 20 status N Char 10 ACTIVE, CANCELLED, EXPIRED

or ALL

Success Response

Example: Status: 200 [{ "recurringOrderId": "00116100600159217", “orderType”: “SUB”, "status": "ACTIVE", "fundCode":"FUNDLTF", "accountId": "10002201", "unitholderId":"DUMMY5413", "amount":1234.56, "frequency": "Weekly", "selectDay": "Mon", "effectiveDateFrom": "20191015", "effectiveDateTo": null, "paymentType": "ATS_SA", "bankCode": "004", "bankAccount": "4822028182", "channel": "MKT", "overrideRiskProfile": "Y", "overrideFxRisk": "Y" }, { "recurringOrderId": "00116100600159210", “orderType”: “SUB”, "status": "EXPIRED", "fundCode":"FUNDLTF", "accountId": "10002201", "unitholderId":"DUMMY5413", "amount":1234.56, "frequency": "Monthly", "selectDate": 25, "effectiveDateFrom": "20190915", "effectiveDateTo": "20191013", "paymentType": "ATS_SA", "bankCode": "004", "bankAccount": "4822028182", "channel": "MKT", "overrideRiskProfile": "Y", "overrideFxRisk": "Y" }]

Page 72: Restful Web services API Message Specification...Restful Web services API Message Specification Version 1.11 April 8, 2020 Page 2 of 72 Revision Revision Description Updated by Updated

Page 72 of 72

Error Response

Example: Status: 401 Unauthorized { "errMsg": { "code": "E000", "message": "Unauthorized access" } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E001", "message": "accountId is required field." } } Status: 422 Unprocessable Entry { "errMsg": { "code": "E102", "message": "Account ID cannot be found." } }

Possible Response

Key Mandatory Type Max size

Remark

recurringOrderId Y Char 20 [Success Case] Unitholder ID in fundConnext

saRecurringOrderRefNo N Char 30 orderType Y Char 5 SUB status Y Char 10 ACTIVE, CANCELLED, or

EXPIRED fundCode Y Char 30 [Fail Case] accountId Y Char 15 unitholderId Y Char 15 amount Y Number 18,2 frequency Y Char 10 Monthly or Weekly selectDate N Number 2 [1-31] in case of Monthly selectDay N Char 3 [Mon, Tue, Wed, Thu, Fri] in

case of Weekly effectiveDateFrom Y Date 8 effectiveDateTo N Date 8 paymentType Y Char 8 bankCode Y Char 4 bankAccount Y Char 20 channel Y Char 3 overrideRiskProfile Y Char 1 overrideFxRisk Y Char 1 code Char 4 [Fail Case] Error code message Char 100 [Fail Case] Error message for

Error response (status != 200)