Add a new beneficiary
POST
: /amsin/api/v1/business/account/bindBeneficiary
To create a beneficiary, the Partner can call this API to bind a beneficiary by connecting the bank card information of the beneficiary to a WorldFirst account.
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 |
bindBeneficiaryRequestId | String | Yes | The unique ID assigned by the Partner to identify a request for beneficiary binding. Note:
More information:
|
customerId | String | Yes(Conditional) | The unique ID assigned by WorldFirst to identify an account on WorldFirst. Note:
More information:
|
accessToken | String | Yes(Conditional) | The access token used for OAuth authorization. Note:
More information:
|
beneficiaryBankAccount | BeneficiaryBankAccount object | No | Details about the beneficiary's bank account, such as the name of the account holder, region and BIC of the beneficiary's bank, etc. |
beneficiaryType | String | Yes | Defines the type of beneficiary's card. Valid values are:
For more information, refer to BeneficiaryType. |
countryCode | String | Yes | 2-character ISO 3166 country/region code that represents the country/region where the beneficiary locates. More information:
|
currency | String | Yes | 3-character ISO 4217 currency code that represents the currency used. Currently, the following currencies are supported:
|
beneficiaryNick | String | Yes | The nickname of the beneficiary. The nickname is defined by the Customer to identify the beneficiary easily. |
templateCategory | String | No | Defines the type of the template used for the beneficiary. Valid values are:
More information:
|
referenceBeneficiaryId | String | No | The unique ID defined by the Partner to identify a beneficiary. More information:
|
Response parameters
Field | Data type | Required | Description |
result | Result object | Yes | Indicates whether this API is called successfully. |
beneficiary | Beneficiary object | Yes | Describes details about the beneficiary. |
Result processing logic
After calling the API, a response is returned with two result codes, result.resultStatus
and beneficiary.status
.
result.resultStatus
indicates the result of the inquiry.beneficiary.status
indicates the status of the submitted beneficiary.
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 | |
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. |
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. |
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. |
USER_NOT_EXIST | F | The user does not exist. | Retry with the correct user information. |
RISK_REJECT | F | The transfer is rejected for risk control reasons. | Prompt the user that the request is rejected because the risk control failed. |
REPEAT_BIND_BENEFICIARY_REQUEST | U | Repeated request to bind a beneficiary. | Check whether the beneficiary has already been successfully bound with the inquiryBeneficiary API. |
EXCEED_MAX_COUNT_LIMIT | F | Exceed max count limit. | Ensure the data lies within the limit and try again. |
USER_NO_PERMISSION | F | User does not have permission. | Check the permission of the user and retry. |
BENEFICIARY_ALREADY_EXISTED | F | Beneficiary already existed. | Check whether the beneficiary has already been successfully bonded with the inquiryBeneficiary API. |
REPEAT_REQ_INCONSISTENT | F | Repeated requests are inconsistent. | Ensure all the fields in the requests are the same. |
REFERENCE_BENEFICIARY_ID_EXIST | F | Reference beneficiary id exist. | Check whether the beneficiary has already been successfully bound. |
CARD_TEMPLATE_NOT_EXIST | F | No card templates met the query conditions. | Check whether the correct beneficiary template has been used. |
Samples
Samples using general template
Request
{
"customerId":"*****",
"bindBeneficiaryRequestId": "*****",
"beneficiaryType": "THIRD_PARTY_COMPANY_BANK_ACCOUNT",
"countryCode":"DE",
"currency":"EUR",
"beneficiaryNick":"NickABC",
"beneficiaryBankAccount": {
"bankAccountName":"shen***",
"bankName": "***BANK",
"bankBIC":"CHASDE*****",
"bankAccountIBAN":"DE111234432112345*****"
}
}
Response
{
"beneficiary": {
"beneficiaryBankAccount": {
"bankAccountIBAN": "DE111234432112345*****",
"bankAccountName": "shen***",
"bankBIC": "CHASDE*****"
},
"beneficiaryNick": "NickABC",
"beneficiaryToken": "ALIPAYroc+DTRHtO8*****",
"beneficiaryType": "THIRD_PARTY_COMPANY_BANK_ACCOUNT",
"bindBeneficiaryRequestId": "*****",
"countryCode": "DE",
"currency": "EUR",
"status": "SUCCESS"
},
"result": {
"resultCode": "SUCCESS",
"resultMessage": "success.",
"resultStatus": "S"
}
}
Samples using local template
Request
{
"customerId":"*****",
"bindBeneficiaryRequestId": "*****",
"beneficiaryType": "THIRD_PARTY_COMPANY_BANK_ACCOUNT",
"countryCode":"DE",
"currency":"EUR",
"beneficiaryNick":"NickABC",
"templateCategory":"LOCAL_TEMPLATE",
"beneficiaryBankAccount": {
"bankAccountName":"shen***",
"bankBIC":"CHASDE*****",
"bankAccountIBAN":"DE315001051765761*****"
}
}
Response
{
"beneficiary": {
"beneficiaryBankAccount": {
"bankAccountIBAN": "DE315001051765761*****",
"bankAccountName": "shen***",
"bankBIC": "CHASDE*****"
},
"beneficiaryNick": "shen***",
"beneficiaryToken": "ALIPAYjIIt8*****",
"beneficiaryType": "THIRD_PARTY_COMPANY_BANK_ACCOUNT",
"bindBeneficiaryRequestId": "*****",
"countryCode": "DE",
"currency": "EUR",
"status": "SUCCESS"
},
"result": {
"resultCode": "SUCCESS",
"resultMessage": "success",
"resultStatus": "S"
}
}
Samples using cross-border template
Request
{
"customerId":"*****",
"bindBeneficiaryRequestId": "*****",
"beneficiaryType": "THIRD_PARTY_COMPANY_BANK_ACCOUNT",
"countryCode":"DE",
"currency":"EUR",
"beneficiaryNick":"NickABC",
"templateCategory":"CROSS_BORDER_TEMPLATE",
"beneficiaryBankAccount": {
"bankAccountName":"shen***",
"bankAccountLocalName":"shen***",
"bankBIC":"CHASDE*****",
"bankAccountIBAN":"DE315001051765761*****"
}
}
Response
{
"beneficiary": {
"beneficiaryBankAccount": {
"bankAccountIBAN": "DE315001051765761*****",
"bankAccountLocalName": "shen***",
"bankAccountName": "shen***",
"bankBIC": "CHASDE*****"
},
"beneficiaryNick": "NickABC",
"beneficiaryToken": "ALIPAYjIIt8*****",
"beneficiaryType": "THIRD_PARTY_COMPANY_BANK_ACCOUNT",
"bindBeneficiaryRequestId": "*****",
"countryCode": "DE",
"currency": "EUR",
"status": "SUCCESS"
},
"result": {
"resultCode": "SUCCESS",
"resultMessage": "success",
"resultStatus": "S"
}
}
Samples using referenceBeneficiaryId
Request
{
"customerId":"*****",
"bindBeneficiaryRequestId": "*****",
"beneficiaryType": "THIRD_PARTY_COMPANY_BANK_ACCOUNT",
"countryCode":"DE",
"currency":"EUR",
"beneficiaryNick":"NickABC",
"templateCategory":"LOCAL_TEMPLATE",
"referenceBeneficiaryId":"2022*****",
"beneficiaryBankAccount": {
"bankAccountName":"shen***",
"bankBIC":"CHASDE*****",
"bankAccountIBAN":"DE315001051765761*****"
}
}
Response
{
"beneficiary": {
"beneficiaryBankAccount": {
"bankAccountIBAN": "DE315001051765761*****",
"bankAccountName": "shen***",
"bankBIC": "CHASDE*****"
},
"beneficiaryNick": "NickABC",
"beneficiaryToken": "ALIPAYjIIt8*****",
"beneficiaryType": "THIRD_PARTY_COMPANY_BANK_ACCOUNT",
"bindBeneficiaryRequestId": "*****",
"countryCode": "DE",
"currency": "EUR",
"referenceBeneficiaryId": "2022****",
"status": "SUCCESS"
},
"result": {
"resultCode": "SUCCESS",
"resultMessage": "success",
"resultStatus": "S"
}
}