createTransfer
POST
: /amsin/api/v1/business/fund/createTransfer
集成商调用本接口进行资金的转账代发。资金会转入到另一个万里汇账户,即资金是在账户之间流通。
转账代发步骤为异步。调用接口后,万里汇返回给集成商API调用结果。集成商需调用 inquiryTransfer 接口查询转账代发结果,或等待万里汇使用 notifyTransfer 接口发送结果通知。
接口结构
万里汇接口报文结构包括:请求头,请求体。
请求头的参数
HTTP请求头主要包含了客户端、加验签、加解密相关的信息,请求头中的内容不区分大小写。
请求头参数 | 是否必填 | 范例 | 说明 |
Client-Id | 是 |
| 关于这些参数的解释说明,详见:请求头 |
Signature | 是 |
| |
Content-Type | 是 |
| |
Request-Time | 是 |
| |
Connected-CustomerId | 否(有条件) |
| 当平台客户操作商户账户时需要传递。 |
请求体的参数
字段名 | 数据类型 | 是否必填 | 描述 |
transferRequestId | 字符串 | 是 | 由集成商定义的唯一转账代发识别ID。 更多信息:
|
transferFromDetail | 是 | 支付方需要支付的转账代发金额 | |
transferToDetail | 是 | 转账代发细节,包括收款方可收到的金额等。 | |
transferOrderAddition | 否 | 转账代发的更多信息,包括支付方和收款方的信息等。 |
响应体参数
字段名 | 数据类型 | 是否必填 | 描述 |
result | Result 对象 | 是 | 代表接口调用结果 |
说明:以下字段,只有当 | |||
transferRequestId | 字符串 | 是 | 由集成商定义的唯一转账代发识别ID 更多信息:
|
transferId | 字符串 | 是 | 由万里汇定义的转账代发识别ID 更多信息:
|
transferFinishTime | 字符串(DateTime) | 否 | 本次转账代发请求的结束时间。万里汇只在用户发送重复请求的时候返回此传参,以表明实际上的结束时间。 更多信息:
|
transferFromDetail | 是 | 支付方的转账代发请求细节 | |
transferToDetail | 是 | 收款方的转账代发请求细节,包括收款方所收到的转账金额等。 | |
transferOrderAddition | 否 | 转账代发的更多信息,包括支付方和收款方的信息等。 |
响应处理
集成商调用接口后,万里汇返回集成商API调用结果。result.resultStatus
字段取值范围为:
result.resultStatus | 描述 |
S | API请求成功。
|
F | API请求失败。 失败原因参见下文结果码(即 |
U | API响应结果为 |
结果码
result.resultCode
系统结果码
resultCode | resultStatus | resultMessage | 处理建议 |
PROCESSING | S | The transfer is in process. | 转账代发请求已创建,处理中。调用 inquiryTransfer 接口以查询转账代发结果。 |
PARAM_ILLEGAL | F | Illegal parameters exist. For example, a non-numeric input, or an invalid date. | 参考API文档页面,确认请求头和传参是否正确 |
PROCESS_FAIL | F | A general business failure occurred. Do not retry. | 需要人工介入,联系万里汇技术支持以解决此问题 |
UNKNOWN_EXCEPTION | U | API failed due to unknown reason. | 服务器错误,若稍后重试问题依旧,联系万里汇技术支持以解决问题 |
REQUEST_TRAFFIC_EXCEED_LIMIT | U | The request traffic exceeds the limit. | 重试,若问题依旧,联系万里汇技术支持 |
INVALID_API | F | The called API is invalid or not active. | 确认是否调用正确的API |
INVALID_CLIENT | F | The client is invalid. | Client ID不存在或无效 |
INVALID_SIGNATURE | F | The signature is invalid. | 确认请求正确加签 |
METHOD_NOT_SUPPORTED | F | The server does not implement the requested HTTP method. | 确认HTTP请求方法为 |
业务结果码
resultCode | resultStatus | resultMessage | 处理建议 |
UN_SUPPORT_BUSINESS | F | Unsupported business. | 使用正确的参数重试 |
ORDER_NOT_EXIST | F | The order does not exist. | 订单不存在,使用其他订单重试。 |
USER_NO_PERMISSION | F | User does not have permission. | 检查用户权限是否正确并重试 |
CURRENCY_NOT_SUPPORT | F | The currency is not supported. | 确认币种信息正确后重 |
USER_NOT_EXIST | F | The user does not exist. | 使用正确的用户信息重试 |
USER_ACCOUNT_ABNORMAL | F | The user account status is abnormal. | 使用其他用户信息重试。如问题依旧,联系万里汇技术支持 |
REPEAT_REQ_INCONSISTENT | F | Repeated requests are inconsistent. | 重试请求不一致。需保证所有请求参数均相同 |
USER_STATUS_ABNORMAL | F | The status of the user is abnormal. Retry with another card. | 使用其他用户信息重新下单 |
BALANCE_NOT_ENOUGH | F | Balance is not enough. | 确认余额充足后重试 |
AMOUNT_EXCEED_LIMIT | F | The amount exceeds the limit. | 确认金额正确后重试 |
CONTRACT_CHECK_FAIL | F | The contract check has failed. | 检查合约状态后重试 |
QUOTE_EXPIRED | F | The quote is expired. | 调用 |
示例代码
请求
{
"transferRequestId": "*****",
"transferFromDetail": {
"transferFromAmount": {
"currency": "USD",
"value": 1000
}
},
"transferToDetail": {
"transferToAmount": {
"currency": "EUR"
},
"feeAmount": {
"currency": "USD",
"value": 10
},
"transferToMethod": {
"customerId": "*****",
"paymentMethodType": "BALANCE"
},
"transferNotifyUrl": "www.notifyurl.com",
"transferQuote": {
"quoteId": "*****"
},
"transferMemo": "memo shows in worldfirst statement",
"purposeCode": "GDS"
},
"transferOrderAddition": {
"referenceOrderId": "*****"
}
}
响应
{
"result": {
"resultStatus": "S",
"resultCode": "PROCESSING",
"resultMessage": "Processing"
},
"transferRequestId": "*****",
"transferId": "*****",
"transferFromDetail": {
"transferFromAmount": {
"currency": "USD",
"value": 1000
}
},
"transferToDetail": {
"purposeCode": "GDS",
"transferToAmount": {
"currency": "EUR",
"value": 938
},
"feeAmount": {
"currency": "USD",
"value": 10
},
"transferToMethod": {
"customerId": "*****",
"paymentMethodType": "BALANCE"
},
"transferQuote": {
"quoteId": "*****"
},
"transferMemo": "memo shows in worldfirst statement"
},
"transferOrderAddition": {
"referenceOrderId": "*****"
}
}