createExchange需要签名验签
集成商可调用此接口发起外汇交割请求。万里汇支持两种外汇交割场景:
- 远期外汇。用户可以获得一段时间后的稳定外汇汇率。此场景下,createExchange接口为异步。万里汇响应给集成商的结果为API调用结果而非外汇交割结果。集成商需调用inquiryExchange接口查询是否外汇交割到户,或等待万里汇使用notifyExchange接口发送通知。
- 即期外汇。用户可以获得当下的即时外汇汇率。此场景下,createExchange接口响应外汇交割到户的结果。
报文结构
万里汇接口报文结构包括:请求头,请求体。关于头信息,详见:
入参
customerId String CONDITIONAL
由万里汇定义、用于唯一标识某万里汇账户。
customerId 和 accessToken 不能同时为空。
更多信息:
- 最大长度:64 字符
accessToken String CONDITIONAL
用于OAuth校验的访问令牌。
customerId 和 accessToken 不能同时为空。
更多信息:
- 最大长度:64 字符
exchangeRequestId String REQUIRED
由集成商定义,代表本次外汇交割到户请求的唯一ID。
更多信息:
- 此为幂等字段。
- 最大长度:128 字符
quote Quote CONDITIONAL
本次外汇交割到户请求的外汇汇率信息。
当exchangeMode取值为
APPOINTED
时,此字段为必传,且该字段取值应与createQuote接口响应体中的quote字段一致。
sell QuoteAmount REQUIRED
卖出外汇金额。
buy QuoteAmount REQUIRED
买入外汇金额。
exchangeMode String REQUIRED
外汇交割模式。
取值范围:
REALTIME
:实时交割APPOINTED
:指定日期交割
exchangeTradeType String REQUIRED
外汇交割类型。
取值范围:
SPOT
:即时汇率FORWARD
:远期汇率UNFUNDED_SPOT
: 指该笔外汇交易类型为资金不充足的即期交易,使用的是远期汇率
exchangeUnfundedInfo ExchangeForwardInfo CONDITIONAL
外汇交割相关信息。
当exchangeTradeType字段取值为
UNFUNDED_SPOT
时,此字段为必传。
exchangeForwardInfo ExchangeForwardInfo CONDITIONAL
外汇交割相关信息。
当exchangeTradeType 字段取值为
FORWARD
时,此字段为必传。
exchangeOrderAddition ExchangeQuoteAddition
外汇交割附加信息,如客户端的订单ID等。
出参
result Result REQUIRED
代表API接口的调用结果。
exchangeId String REQUIRED
由万里汇定义的,本次外汇交割到户请求的唯一ID。
该字段只有当 result.resultStatus =
S
时才会按需返回。
更多信息:
- 最大长度:64 字符
exchangeRequestId String REQUIRED
由集成商定义,代表本次外汇交割到户请求的唯一ID。
该字段只有当 result.resultStatus =
S
时才会按需返回。
更多信息:
- 此为幂等字段。
- 最大长度:128 字符
sell QuoteAmount REQUIRED
卖出外汇金额。
该字段只有当 result.resultStatus =
S
时才会按需返回。
buy QuoteAmount REQUIRED
买入外汇金额。
该字段只有当 result.resultStatus =
S
时才会按需返回。
exchangeCreateTime DateTime REQUIRED
外汇交割到户请求的发起时间。
该字段只有当 result.resultStatus =
S
时才会按需返回。
更多信息:
- 值遵循 ISO 8601 标准格式。例如,“2019-11-27T12:01:01+08:00”。
exchangeFinishTime DateTime
外汇交割到户请求的完成时间。
该字段只有当 result.resultStatus =
S
时才会按需返回。
更多信息:
- 值遵循 ISO 8601 标准格式。例如,“2019-11-27T12:01:01+08:00”。
quote Quote REQUIRED
本次外汇交割到户请求的外汇汇率信息。
该字段只有当 result.resultStatus =
S
时才会按需返回。
exchangeMode String REQUIRED
外汇交割模式。
可取值范围:
REALTIME
:实时交割APPOINTED
:指定日期交割
该字段只有当 result.resultStatus =
S
时才会按需返回。
exchangeTradeType String REQUIRED
外汇交割类型。
可取值范围:
SPOT
:即时汇率FORWARD
:远期汇率UNFUNDED_SPOT
: 指该笔外汇交易类型为资金不充足的即期交易,使用的是远期汇率
该字段只有当 result.resultStatus =
S
时才会按需返回。
exchangeUnfundedInfo ExchangeForwardInfo CONDITIONAL
外汇交割信息。
当result.resultStatus =
S
且exchangeTradeType取值为UNFUNDED_SPOT
时,此字段为必传。
exchangeForwardInfo ExchangeForwardInfo CONDITIONAL
外汇交割相关信息。
当result.resultStatus =
S
且exchangeTradeType取值为FORWARD
时,此字段为必传。
请求
响应
响应处理
集成商调用接口后,万里汇响应集成商API调用结果。result.resultStatus 字段取值范围为:
result.resultCode:系统结果码
结果码 | 值 | 结果码信息 | 行动建议 |
---|---|---|---|
SUCCESS | S | Success | |
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请求方法为 |
result.resultCode:业务结果码
结果码 | 值 | 结果码信息 | 行动建议 |
---|---|---|---|
PROCESSING | S | The payment order is being processed. | 订单已创建,处理中。调用inquiryExchange来获取结果或等到万里汇使用notifyExchange发送结果通知 |
BALANCE_INSUFFICIENT | F | The balance is insufficient for the exchange. | 仅出现于即期外汇交易场景。确认余额充足后重试 |
AUTHORIZATION_NOT_EXIST | F | The authorization does not exist. | 当前授权关系不存在,请联系万里汇技术支持检查授权关系 |
UN_SUPPORT_BUSINESS | F | Unsupported business. | 包含无效参数(如货币代码错误),使用正确的参数重试 |
QUOTE_EXPIRED | F | The quote is expired. | 调用createQuote接口来获取新汇率报价,并使用新汇率报价完成外汇请求 |
FX_RELATED_ORDER_NOT_EXIST | F | The exchange order does not exist. | 仅出现于远期外汇交割场景。确认dealId正确后重试 |
CURRENCY_NOT_SUPPORT | F | The currency is not supported. | 确认币种信息正确后重试 |
CONTRACT_CHECK_FAIL | F | The contract check has failed. | 检查合约状态后重试 |