Check payout result

POST: /amsin/api/v1/business/fund/inquiryPayout

Signature required

The Partner can use the inquiryPayout interface to query the payout result.

Structure

A message consists of a header and body.

Request header parameters

Field

Required

Sample

Description

Client-Id

Yes

Client-Id: *****

For detailed field descriptions, see API Overview

Signature

Yes

Signature: algorithm=RSA256, keyVersion=2, signature=*****

Content-Type

Yes

Content-Type: application/json; charset=UTF-8

Request-Time

Yes

Request-Time: 2019-04-04T12:08:56+08:00

Connected-CustomerId

No (Conditional)

Connected-CustomerId: ******

Pay special attention to this filed

Required when a partner manages a customer's account. 

Request body parameters

Field

Data type

Required

Description

transferRequestId

String

Yes

The unique ID assigned by the Partner to identify a payout request.

Note:

  • This field is an API idempotency field. For details about API idempotency, see the Idempotency chapter.

More information:

  • Maximum length: 64 characters

Response body parameters

Field

Data type

Required

Description

result

Result object

Yes

Indicates whether this API is called successfully.

Note: The following fields are returned as needed only when result.resultStatus =.

transferResult

Result object

No

Indicates the result of the payout request.

transferRequestId

String

No

The unique ID assigned by the Partner to identify a payout request.

Note:

  • This field is an API idempotency field. For details about API idempotency, see the Idempotency chapter.

More information:

  • Maximum length: 64 characters

transferId

String

No

The unique ID assigned by WorldFirst to identify a payout.

  • Maximum length: 64 characters

transferFinishTime

DateTime object

No

Indicates the finishing time of a payout.

Note:

  • The value of this field follows the ISO 8601 standard format. For example, 2019-01-01T01:01:01+08:00, or 2019-01-01T01:01:01Z(UTC timezone).

transferFromDetail

TransferFromDetail object

No

Payout details submitted by the payer.

transferToDetail

TransferToDetail object

No

Payout details for the beneficiary.

transferOrderAddition

TransferOrderAddition object

No

Additional information about the payout, such as the payer and the beneficiary.

Result processing logic

After calling the API, a response is returned with two result codes, result.resultStatus and transferResult.resultStatus.

  • result.resultStatus indicates the result of the inquiry.
  • transferResult.resultStatus indicates the result of the payout.

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 specific reasons, see result.resultCode.

U

This indicates the API call result is unknown. Partner can make a query when the returned status is UNKNOWN. Use the following query strategy:

  • A Partner can make 7 queries at maximum.
  • Intervals between queries: 5m, 10m, 20m, 40m, 80m, 160m, and 320m.

If none of the queries is successful, contact our Technical Support Team.

The possible responses for transferResult.resultStatus are:

Result status

Description

S

This indicates the payout succeeded.

  • If result.resultStatus is S, and transferResult.resultCode is PROCESSING, the payout is being processed.

F

This indicates the payout failed.

For more information on why the payout failed, see transferResult.resultCode.

U

This indicates the payout result is unknown. Call the interface again. If the issue is not resolved, contact our Technical Support Team.

Result codes

result.resultCode

resultCode

resultStatus

resultMessage

Further action

SUCCESS

S

Success

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.

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.

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 POST.

transferResult.resultCode

resultCode

resultStatus

resultMessage

处理建议

SUCCESS

S

Success

PROCESSING

S

The transfer is in process.

Try again later.

ORDER_NOT_FOUND

U

Order not found.

Retry with correct order information.

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.

ORDER_IS_REVERSED

F

The order is reversed.

Retry with another payout order.

USER_NOT_EXIST 

F

The user does not exist.

Retry with the correct user information.

USER_ACCOUNT_ABNORMAL

F

The user account status is abnormal.

Retry with a different user. If the issue persists, contact our Technical Support Team for more details.

USER_STATUS_ABNORMAL

F

The status of the user is abnormal. Retry with another card.

Retry with a different user.

AMOUNT_EXCEED_LIMIT

F

The amount exceeds the limit.

Make sure the amount submitted is correct and retry.

RISK_REJECT

F

The transfer is rejected for risk control reasons.

Prompt the user that the request is rejected because the risk control failed.

CARD_INFO_NOT_MATCH

F

The card information does not match.

Retry with the correct card information.

BALANCE_NOT_ENOUGH

F

Balance is not enough.

Make sure the balance is sufficient and retry.

CURRENCY_NOT_SUPPORT

F

The currency is not supported.

Make sure the currency is correct and retry.

UN_SUPPORT_BUSINESS

F

Unsupported business.

Retry with correct parameters.

USER_NO_PERMISSION

F

User does not have permission.

Check user permission and retry.

Samples

Request

Request body sample

copy
{
    "transferRequestId": "*****"
}

Request calling samples

copy
var jsonStr="{\"transferRequestId\":\"*****\"}";
var client = new RestClient("http://{domain_name}/amsin/api/v1/business/fund/inquiryPayout");
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=abc*****");
request.AddParameter("application/json; charset=utf-8", jsonStr, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
copy
url = "http://{domain_name}/amsin/api/v1/business/account/inquiryPayout"
headers = {
        "client-id": "*****",
        "request-time": "2022-05-17T11:19:20+08:00",
        "Content-Type": "application/json",
        "signature": "algorithm=RSA256,keyVersion=1,signature=abc*****"
    }
datas ={"transferRequestId":"*****"}
res = requests.post(url=url, data=json.dumps(datas), headers=headers)
copy
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost("http://{domain_name}/amsin/api/v1/business/fund/inquiryPayout");
httpPost.addHeader("client-id", "*****");
httpPost.addHeader("request-time", "2022-05-17T11:19:20+08:00");
httpPost.addHeader("signature","algorithm=RSA256,keyVersion=1,signature=*****" );
httpPost.addHeader("Content-Type","application/json");
StringEntity entity = new StringEntity("{\"transferRequestId\":\"*****\"}");
httpPost.setEntity(entity);
CloseableHttpResponse response = client.execute(httpPost);
copy
var jsonStr="{\"transferRequestId\":\"*****\"}";
var client = "http://{domain_name}/amsin/api/v1/business/fund/inquiryPayout";
var xhr = new XMLHttpRequest;
xhr.open("POST",client,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=abc*****");
xhr.send(jsonStr);

Response

copy
{
    "result": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    },
    "transferResult": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    },
    "transferRequestId": "*****",
    "transferId": "*****",
    "transferFromDetail": {
        "transferFromAmount": {
            "currency": "USD",
            "value": 1000
        }
    },
    "transferToDetail": {
        "purposeCode": "GDS",
        "transferToAmount": {
            "currency": "EUR",
            "value": 938
        },
        "feeAmount": {
            "currency": "USD",
            "value": 10
        },
        "transferToMethod": {
            "paymentMethodId": "*****",
            "paymentMethodType": "BANK_ACCOUNT_DETAIL"
        },
        "transferQuote": {
            "quoteId": "*****"
        },
        "transferMemo": "memo shows in worldfirst statement",
        "transferRemark": "remark shows in bank statement"
    },
    "transferOrderAddition": {
        "referenceOrderId": "*****"
    }
}

@2024 WorldFirst