Retrieve FX rates
POST
: /amsin/api/v1/business/fund/inquiryRate
The Partner can use this API to request an unquoted foreign exchange rate. The Partner can call the inquiryRate API with higher frequencies.
The foreign exchange rate provided by the inquiryRate API is for reference purposes. To create a quote for transactional foreign exchanges, the Partner needs to call the createQuote API instead.
Structure
A message consists of a header and body. The following sections are focused on the body structure. For the header structure, see:
Request parameters
Field | Data type | Required | Description |
inquiryRateConditionList | List<InquiryRateCondition object> | Yes | A list of the conditions for the inquiry, which includes the currency to buy and the currency to sell. |
Response parameters
Field | Data type | Required | Description |
result | Result object | Yes | Indicates whether this API is called successfully. |
responseId | String | Yes | The unique ID that is assigned by WorldFirst to identify a response. More information:
|
rateList | List<ReferenceRate object> | No | A list of the foreign exchange rates that WorldFirst returns to the Partner. |
Result processing logic
After calling the API, a response is returned. The possible responses for result.resultStatus
are:
Result status | Description |
S | This indicates the API call succeeded. |
F | This indicates the API call failed. For more information on why the call failed, see |
U | This indicates the API call result is unknown. Partner can make a query when the returned status is
If none of the queries is successful, contact our Technical Support Team. |
Result codes
result.resultCode
System-related result codes
resultCode | resultStatus | resultMessage | Further action |
SUCCESS | S | Success | |
PARAM_ILLEGAL | F | Illegal parameters exist. For example, a non-numeric input, or an invalid date. | Check and verify whether the request fields, including the header fields and body fields, are correct and valid. For details on the fields of each API, see the specific API Structure section. |
PROCESS_FAIL | F | A general business failure occurred. Do not retry. | Human intervention is usually needed. It is recommended that you contact our Technical Support Team to resolve the issue. |
UNKNOWN_EXCEPTION | U | API failed due to unknown reason. | The service might be down, retry later. If the issue persists, contact our Technical Support Team. |
REQUEST_TRAFFIC_EXCEED_LIMIT | U | The request traffic exceeds the limit. | Call the interface again to resolve the issue. If the issue persists, contact our Technical Support Team. |
OAUTH_FAIL | F | OAuth process failed. | Contact our Technical Support Team for detailed reasons. |
INVALID_API | F | The called API is invalid or not active. | Check whether the correct API is being called. |
INVALID_CLIENT | F | The client is invalid. | The Client ID does not exist or is invalid. |
INVALID_SIGNATURE | F | The signature is invalid. | Make sure the request is properly signed with a valid signature. |
METHOD_NOT_SUPPORTED | F | The server does not implement the requested HTTP method. | Ensure the HTTP method is |
Business-related result codes
resultCode | resultStatus | resultMessage | Further action |
UN_SUPPORT_BUSINESS | F | Unsupported business. | Invalid parameters are used e.g. currency is incorrect. Retry with the correct information. |
SYSTEM_ERROR | F | System error. | Do not retry, and contact our Technical Support Team for more details. |
USER_NOT_EXIST | F | The user does not exist. | Retry with the correct user information. |
Samples
Request
Request body sample
{
"inquiryRateConditionList": [
{"sellCurrency":"USD","buyCurrency":"CNH"},
{"sellCurrency":"CNH","buyCurrency":"USD"},
{"sellCurrency":"USD","buyCurrency":"EUR"},
{"sellCurrency":"EUR","buyCurrency":"USD"}
]
}
Request calling samples
var jsonStr="{"inquiryRateConditionList":[{"sellCurrency":"USD","buyCurrency":"CNH"},{"sellCurrency":"CNH","buyCurrency":"USD"},{"sellCurrency":"USD","buyCurrency":"EUR"},{"sellCurrency":"EUR","buyCurrency":"USD"}]}";
var client = new RestClient("http://{domain_name}.com/amsin/api/v1/business/fund/inquiryRate");
var request = new RestRequest(Method.POST);
request.AddHeader("client-id","*****");
request.AddHeader("request-time","2022-05-17T11:19:20+08:00");
request.AddHeader("Content-Type","application/json");
request.AddHeader("signature","algorithm=RSA256,keyVersion=1,signature=RckSOIrxy%2FKqC%2FZQOO0t74U9U4TFVYKmW%2FZflFRut7W1hipos3NLBGdpzbulcc5Q7XwZP1t3qgTZMFrC%2FlzOQCOsBhUgelvEAuACu49PEGiAus8sU%2FFJa1HOIUmst3oWjLT%2BDqY083mR7jVwc5O2JYP08wNCLu55PFZtXHBUfwEAYoZInhgRoLtQTr%2F7Bphd7L9cS3xD3tluxbgkcaFr7NQVrfWJuQKp%2BFrabo6xZr%2FRHZRd%2FijALuUYYjXH92n4VFwSXSO%2B%2BUBVPoGyWWz1q3QJ2tHNVU7wpc3wtCwwB76pNfGTbJit%2BdylGU8O5UkW3TwSkNnpzepRABM8bBQpgQ%*****");
request.AddParameter("application/json; charset=utf-8", jsonStr, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
url = "http://{domain_name}.com/amsin/api/v1/business/fund/inquiryRate"
headers = {
"client-id": "*****",
"request-time": "2022-05-17T11:19:20+08:00",
"Content-Type": "application/json",
"signature": "algorithm=RSA256,keyVersion=1,signature=RckSOIrxy%2FKqC%2FZQOO0t74U9U4TFVYKmW%2FZflFRut7W1hipos3NLBGdpzbulcc5Q7XwZP1t3qgTZMFrC%2FlzOQCOsBhUgelvEAuACu49PEGiAus8sU%2FFJa1HOIUmst3oWjLT%2BDqY083mR7jVwc5O2JYP08wNCLu55PFZtXHBUfwEAYoZInhgRoLtQTr%2F7Bphd7L9cS3xD3tluxbgkcaFr7NQVrfWJuQKp%2BFrabo6xZr%2FRHZRd%2FijALuUYYjXH92n4VFwSXSO%2B%2BUBVPoGyWWz1q3QJ2tHNVU7wpc3wtCwwB76pNfGTbJit%2BdylGU8O5UkW3TwSkNnpzepRABM8bBQpgQ%*****"
}
datas ={{"inquiryRateConditionList":[{"sellCurrency":"USD","buyCurrency":"CNH"},{"sellCurrency":"CNH","buyCurrency":"USD"},{"sellCurrency":"USD","buyCurrency":"EUR"},{"sellCurrency":"EUR","buyCurrency":"USD"}]}}
res = requests.post(url=url, data=json.dumps(datas), headers=headers)
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost("http://{domain_name}.com/amsin/api/v1/business/fund/inquiryRate");
httpPost.addHeader("client-id", "*****");
httpPost.addHeader("request-time", "2022-05-17T11:19:20+08:00");
httpPost.addHeader("signature","algorithm=RSA256,keyVersion=1,signature=RckSOIrxy%2FKqC%2FZQOO0t74U9U4TFVYKmW%2FZflFRut7W1hipos3NLBGdpzbulcc5Q7XwZP1t3qgTZMFrC%2FlzOQCOsBhUgelvEAuACu49PEGiAus8sU%2FFJa1HOIUmst3oWjLT%2BDqY083mR7jVwc5O2JYP08wNCLu55PFZtXHBUfwEAYoZInhgRoLtQTr%2F7Bphd7L9cS3xD3tluxbgkcaFr7NQVrfWJuQKp%2BFrabo6xZr%2FRHZRd%2FijALuUYYjXH92n4VFwSXSO%2B%2BUBVPoGyWWz1q3QJ2tHNVU7wpc3wtCwwB76pNfGTbJit%2BdylGU8O5UkW3TwSkNnpzepRABM8bBQpgQ%*****" );
httpPost.addHeader("Content-Type","application/json");
StringEntity entity = new StringEntity("{\"inquiryRateConditionList\":[{\"sellCurrency\":\"USD\",\"buyCurrency\":\"CNH\"},{\"sellCurrency\":\"CNH\",\"buyCurrency\":\"USD\"},{\"sellCurrency\":\"USD\",\"buyCurrency\":\"EUR\"},{\"sellCurrency\":\"EUR\",\"buyCurrency\":\"USD\"}]}");
httpPost.setEntity(entity);
CloseableHttpResponse response = client.execute(httpPost);
var xhr = new XMLHttpRequest;
var jsonStr="{\"inquiryRateConditionList\":[{\"sellCurrency\":\"USD\",\"buyCurrency\":\"CNH\"},{\"sellCurrency\":\"CNH\",\"buyCurrency\":\"USD\"},{\"sellCurrency\":\"USD\",\"buyCurrency\":\"EUR\"},{\"sellCurrency\":\"EUR\",\"buyCurrency\":\"USD\"}]}";
var url = "http://{domain_name}.com/amsin/api/v1/business/fund/inquiryRate";
xhr.open("POST",url,true);
xhr.setRequestHeader("client-id","*****");
xhr.setRequestHeader("request-time","2022-05-17T11:19:20+08:00");
xhr.setRequestHeader("Content-Type","application/json");
xhr.setRequestHeader("signature","algorithm=RSA256,keyVersion=1,signature=RckSOIrxy%2FKqC%2FZQOO0t74U9U4TFVYKmW%2FZflFRut7W1hipos3NLBGdpzbulcc5Q7XwZP1t3qgTZMFrC%2FlzOQCOsBhUgelvEAuACu49PEGiAus8sU%2FFJa1HOIUmst3oWjLT%2BDqY083mR7jVwc5O2JYP08wNCLu55PFZtXHBUfwEAYoZInhgRoLtQTr%2F7Bphd7L9cS3xD3tluxbgkcaFr7NQVrfWJuQKp%2BFrabo6xZr%2FRHZRd%2FijALuUYYjXH92n4VFwSXSO%2B%2BUBVPoGyWWz1q3QJ2tHNVU7wpc3wtCwwB76pNfGTbJit%2BdylGU8O5UkW3TwSkNnpzepRABM8bBQpgQ%*****");
xhr.send(jsonStr);
Response
Response body sample
{
"rateList": [
{
"buyCurrency": "CNH",
"rate": 6.25215,
"sellCurrency": "USD"
},
{
"buyCurrency": "USD",
"rate": 0.15677274,
"sellCurrency": "CNH"
},
{
"buyCurrency": "EUR",
"rate": 0.86850790,
"sellCurrency": "USD"
},
{
"buyCurrency": "USD",
"rate": 1.10880,
"sellCurrency": "EUR"
}
],
"responseId": "*****",
"result": {
"resultCode": "SUCCESS",
"resultMessage": "success",
"resultStatus": "S"
}
}