notifyExchange

需要签名验签

万里汇使用此接口向集成商发送外汇交割结果通知。

接口结构

万里汇接口报文结构包括:请求头,请求体。关于头信息,详见:

请求参数

字段名

数据类型

是否为必填字段

描述

exchangeResult

Result 对象

外汇交割到户请求结果。参见:请求处理

exchangeId

字符串

由万里汇定义的,本次外汇交割到户请求的唯一ID。

更多信息:

  • 字段最大长度:64

exchangeRequestId

字符串

由集成商定义,代表本次外汇交割到户请求的唯一ID。

更多信息:

  • 字段最大长度:128

sell

QuoteAmount 对象

卖出外汇金额

buy

QuoteAmount 对象

买入外汇金额

exchangeCreateTime

Datetime 对象

外汇交割到户请求的发起时间。

更多信息:

  • 此字段采用ISO 8601 标准时间戳。如:2018-09-03T00:00:00+08:00,或2019-01-01T01:01:01Z(UTC时间)

exchangeFinishTime

Datetime 对象

外汇交割到户请求的完成时间。

更多信息:

  • 此字段采用ISO 8601 标准时间戳。如:2018-09-03T00:00:00+08:00,或2019-01-01T01:01:01Z(UTC时间)

quote

Quote 对象

本次外汇交割到户请求的外汇汇率信息。

exchangeMode

字符串

外汇交割模式。取值范围:

  • REALTIME:实时交割
  • APPOINTED:指定日期交割

关于字段枚举值,详见: exchangeMode

exchangeTradeType

字符串

外汇交割类型。取值范围:

  • SPOT:即时汇率
  • FORWARD:远期汇率
  • UNFUNDED_SPOT: 远期汇率

关于字段枚举值,详见:exchangeTradeType

exchangeUnfundedInfo

ExchangeForwardInfo 对象

是(有条件必填)

远期外汇交割信息,当exchangeTradeType取值为FORWARDUNFUNDED_SPOT时,此字段为必填。

请求处理

exchangeResult.result:此字段为远期交割到户结果。

在收到万里汇的请求之后,集成商需要向万里汇发送响应信息,以确认信息已收到。

发送响应信息前,集成商需正确加签。详见:生成签名及加验签 章节。

头信息包括:

响应头参数

是否必填

范例

Signature

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

Content-Type

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

Client-Id

Client-Id: ****

Response-Time

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

范例响应体:

copy
{
  "result":{
     "resultStatus":"S",
     "resultCode":"SUCCESS",
     "resultMessage":"success"
  }
}

更多关于响应信息,参考:API概览-响应报文结构

如果集成商不向万里汇发送响应信息,万里汇会重新发送请求通知。万里汇重发通知的规则为:

  • 重试总数:7次
  • 两次重发请求之间的间隔:2分钟,10分钟,10分钟,1小时,2小时,6小时,15小时

响应参数

字段名

数据类型

是否为必填字段

描述

result

Result 对象

代表接口调用结果

结果码

exchangeResult.resultCode

resultCode

resultStatus

resultMessage

处理建议

SUCCESS

S

The deal is successfully completed.

PROCESS_FAIL

F

A general business failure occurred. Do not retry.

需要人工介入,联系万里汇技术支持以解决此问题

范例

请求

请求体范例

copy
{
    "buy": {
        "currency": "USD",
        "value": 231
    },
    "exchangeCreateTime": "2022-05-16T08:55:09Z",
    "exchangeFinishTime": "2022-05-16T08:55:16Z",
    "exchangeId": "*****",
    "exchangeMode": "APPOINTED",
    "exchangeRequestId": "*****",
    "exchangeResult": {
        "resultCode": "SUCCESS",
        "resultMessage": "success.",
        "resultStatus": "S"
    },
    "exchangeTradeType": "SPOT",
    "quote": {
        "quoteCurrencyPair": "EUR/USD",
        "quoteExpiryTime": "2022-05-16T09:08:51Z",
        "quoteId": "*****",
        "quotePrice": "1.07461952",
        "quoteStartTime": "2022-05-16T08:53:51Z"
    },
    "sell": {
        "currency": "EUR",
        "value": 215
    }
}

响应

响应头范例

copy
{
"headers": {
  "Content-Type": "application/json",
  "client-id": "*****",
  "response-time": "2022-03-07T07:49:27Z",
  "signature": "algorithm=RSA256,keyVersion=1,signature=VelVji6jp8UJVrBUvZrwij8uPmjc//hfmVJqCCW0x+Yh/HEs5pz9wiMyYLRjykTOii+f5EznxcFIUxPae5KITe3fChufJzFhJ4iku5U/w6exmBWVR5vrvQZSYO0vG5aJKwUQW/jjgaUWg1d+ySmaJ0VZ0pniQRtwYRGCvzdey+gI0+jMFbChIQDemZ0uLCExRQ0SBKAjEH/Vq14KlY88Wr2bR829tqsxaECSq2M5eeDC7j6FGPMazfX1W+EGqa2go2Hif6BnodwXzNsEAfQlUrbwCi9Ey/uNO4ScTX6FVG1nb+q8/k09wTkCz/nHnwTQolDrLRndZqZfz79a344*****"
  }
}

响应体范例

copy
{
  "result":{
     "resultStatus":"S",
     "resultCode":"SUCCESS",
     "resultMessage":"success."
  }
}

@2024 WorldFirst