NAV
代码示例

Payroad跨境支付API文档

1. 概述

1.1 编写目的

目的是约定商户与Payroad付款系统间的业务接口。包括通讯协议、交易接口规范、文件格式、加密和摘要规范。指 导商户开发人员依据本规范开发,并与Payroad付款系统对接。

1.2 定义和缩略语

UML时序图

UML时序图

1.3 平台测试/上线准备事项

测试联调阶段

平台开发完成进行系统联调测试前,需要准备如下事项: 1. 平台生成测试环境的RSA密钥对,并将公钥发提供给Payroad; 2. 申请开通测试环境平台号;

上线阶段

  1. 平台生成生产环境的RSA密钥对,并将公钥提供给Payroad;
  2. 向Payroad提供平台服务器IP地址
  3. 申请开通生产环境平台号

2. 通讯协议

2.1 协议约定

  1. 平台与Payroad之间基于HTTPS1.2协议通讯,报文组织形式采用 json 规范。
  2. 双方的报文都密文形式发送,必须同时将报文的密文、会话密钥密文和签名传输给对方。
  3. 平台和Payroad双方互为客户端和服务端。根据应用的要求,可以由平台作为客户端主动发起交易请求,Payroad 来做应答。也可以由Payroad主动发起交易请求,平台来做应答,平台在开户时需提前设置接收Payroad的请求地址。
  4. 客户端提交请求使用POST表单方式 (Content-Type:application/json) 提交,内容采用UTF-8编码。
  5. 请求和响应均由五个域:merchantNo=平台代码、jsonEnc=报文密文、keyEnc=会话密钥密文、sign=报文签名

3 交易接口规范

3.1 请求报文

交易报文遵循JSON规范。示例:

{
    "head":{
        "version":"1.0.1",          //--报文版本号
        "tradeType":"00",           //--00请求报文
        "tradeTime":"1551341750",   //--请求时间,10位unix时间戳
        "tradeCode":"pr1001",       //–请求交易代码
        "language":"cn",            //–语言
    },
    "body":{
        //…
    }
}
  1. 请求报文由两部分组成:请求报文头和请求报文体。其中请求报文头信息在报文头(head. 节点内,请求报文体信息 在报文体(body. 节点内。
  2. 报文头是每个交易都相同的。请求报文头信息的填写标准请参看“公共报文头说明”章节。
  3. 报文体根据每个交易的接口定义而各不相同。请求报文体的定义请参看“业务交易接口”章节。需按照每个交易的接 口定义组装和解析请求报文体。
  4. 客户端请求报文上送时,POST提交四个参数:merchantNo=平台代码;jsonEnc=报文密文;keyEnc=会话密钥密 文;sign=报文签名,其中merchantNo为Payroad为合作平台分配的商户号明文,jsonEnc参数的内容就是整个报文加 密以后的十六进制字符串keyEnc参数为报文加密会话密钥的密文,sign参数的内容是本次报文的签名。

服务器端收到请求后按照HTTPS的方式获取参数后,按如下步骤处理:
步骤1:使用解密会话密钥
步骤2:对密文报文解密,得到报文明文;
步骤3:验证签名,签名通过后在解析报文内容。

报文加密、签名和校验方式请参看“加密及签名规范”章节

3.2 响应报文

交易报文遵循JSON规范。示例:

{
    "head":{
        "version":"1.0.0",          //--报文版本号
        "tradeType":"01",           //--01响应报文
        "tradeTime":"1551341750",   //--响应时间,10位unix时间戳
        "tradeCode":"pr1001",       //--对应请求的交易代码
        "respCode":"S00000",        //--请求返回码
        "respDesc":"请求成功"        //--请求返回码
    },
    "body":{
        //…
    }
}
  1. 交易应答报文由两部分组成:应答报文头和应答报文体。其中应答报文头信息在报文头(head)节点内,应答报文体 信息在报文体(body)节点内。
  2. 报文头是每个交易都相同的。应答报文头信息的填写标准请参看"公共报文头说明”章节。
  3. 报文体根据每个交易的接口定义而各不相同。应答报文体的定义请参看"交易报文接口”章节。需按照每个交易的接口 定义组装和解析应答报文体。
  4. 交易成功时的应答报文,报文头的respCode为S00000,respDesc为"交易成功”,此时报文体(body)节点根据 实际业务需要为空也可以不为空。
  5. 交易错误时的应答报文,错误码和错误信息填写在报文头的respCode(返回码)和respDesc(返回信息描述)域 中;报文体(body)节点为空。
  6. 服务器端响应报文返回时,将商户号、报文密文、会话密钥和签名以标准json字符串返回 {"merchantNo”:"",jsonEnc":"","keyEnc":"","sign":""},然后将字符串的字节流写入http的返回对象。客户端收到服务器端的响应时将HTTP服务方返回的字节流按照相应格式的字符串进行报文和摘要参数的获取,参数获 取后,先要进行摘要校验,校验通过后在解析报文内容。

报文摘要生成和校验方式请参看"加密及签名规范”章节。

4 加密及签名规范

4.1 原则

  1. 交易报文传输都需要进行加密、签名和校验。
  2. 无论是请求端还是响应端接收到报文后,都需要进行签名验证,即按照约定算法重新生成签名,然后和收到的签名进 行对比,对比通过后才能进行报文内容的解析,否则报文或文件内容可能出现篡改、部分丢失、伪造的问题。
  3. 报文加密算法:DES/CBC/PKCS5Padding
  4. 会话密钥生成:KeyGenerator生成
  5. 会话密钥加密算法:RSA/ECB/PKCS1Padding
  6. 签名算法:SHA1withRSA

4.2 RSA密钥对获得

openssl genrsa –out rsa_private_key_2048.pem2048 
#生成rsa私钥,以X509编码,指定生成的密钥的位数:2048

openssl pkcs8 –topk8 –in rsa_private_key_2048.pem –out pkcs8_rsa_private_key_2048.pem –nocrypt
#将上一步生成的rsa私钥转换成PKCS#8编码

openssl rsa –in rsa_private_key_2048.pem –out rsa_public_key_2048.pem –pubout
#导出rsa公钥,以X509编码商户需要按上面步骤生成商户的公钥pem发给Payroad,
#或商户直接可以向Payroad索要密钥对的生成脚本,生成商户所需的公私钥。
#Payroad也需要把Payroad生成的对应的公钥pem发给商户。

对于商户来说,需要生成商户自己的RSA密钥对(包含公钥和私钥),其中,私钥合作方自己保留,同时公钥提供给Payroad。

对于Payroad来说,需要为每个商户生成对应的公私钥对。其中,私钥Payroad自己保留,公钥需要提供给商户。

4.3 报文加密及签名

加密及签名

  1. 对请求或响应Json报文明文(UTF-8编码. 使用发送方的私钥进行签名(SHA1withRSA. ,并将签名结果转换为HEX字符串,得到sign域。
  2. 使用KeyGenerator生成器,生成DES加密会话密钥SK
  3. 使用SKJson明文进行加密(DES/CBC/PKCS5Padding. ,并将加密结果转换为HEX字符串,得到jsonEnc 域。
  4. 使用接收方公钥对会话密钥SK加密(RSA/ECB/PKCS1Padding. ,并将结果转换为HEX字符串,得到keyEnc 域。

4.4 报文解密及验签

解密及验签

  1. keyEnc域转换为二进制byte数组,使用接收方放的私钥对会话密钥,得到明文SK
  2. jsonEnc与转换为二进制byte数组,使用上一步得到的会话密钥SK解密,得到明文json;
  3. 使用上一步解密得到的明文、发送方公钥和sign域数据验证签名的有效性。

5 业务接口

本章节描述商户接入Payroad相关业务接口。
M表示必输字段,O表示可选字段

5.1 收款

5.1.1 申请账号

1 功能描述

交易代码 pr3001
功能名称 申请账号
功能描述 申请账号
调用方式 实时接口
调用流程 --
应用场景 申请账号

2 请求地址

Url: https://{baseUrl}/api/pr3001

Method: POST

请求示例:

{
    "merOrderNo": "MERCHANT20260324001",
    "network": "SWIFT",
    "accountCategory":"CRYPTO",
    "supportCurrencyList": ["USD"],
    "callbackUrl": "https://xxxx.xxxx.xxxx/xxxx/xxxx"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
商户订单号 merOrderNo String(64) M 商户订单号,用于幂等校验
账户类别 accountCategory String(10) M CRYPTO-数字货币 FIAT-法币
网络 network String(5) M 网络类型,如 SWIFT、TRC20、ERC20、SPL、Base
支持币种 supportCurrencyList List M 支持币种列表,支持USD,USDC,USDT(法币和稳定币不支持同时传递)
回调地址 callbackUrl String(256) O 异步回调地址,传入则账号申请成功发送通知

返回示例:

{
    "bizFlow": "1234567890",
    "auditStatus": "00",
    "success": true
}

4 响应字段

名称 Json标签 类型 属性 取值说明
平台流水号 bizFlow String(64) M 平台流水号,可用于后续查询
审核状态 auditStatus String(2) M 00-待审核 01-审核通过 02-审核不通过
申请是否成功 success Boolean M 申请是否成功

5.1.2 查询收款账户

1 功能描述

交易代码 pr3020
功能名称 查询收款账户
功能描述 查询收款账户
调用方式 实时接口
调用流程 --
应用场景 查询收款账户

2 请求地址

Url: https://{baseUrl}/api/pr3020

Method: POST

请求示例:

{
    "accountCategory":"FIAT",
    "currency":"USD",
    "bizFlow": "1234567890"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
账户类别 accountCategory String(10) M CRYPTO-数字货币 FIAT-法币
收款币种 currency String(10) O 要查询的单个币种,支持USD,USDC,USDC
链上地址 cryptoAddress String(255) O 查询某个特定地址的数字货币账户时传入
法币银行账号 bankAccountNumber String(50) O 查询某个特定银行账号的法币货币账户时传入
平台流水号 bizFlow String(64) O 平台流水号,可用于查询

返回示例:

{
  "list": [{
    "accountNo": "CN00000700",
    "bizFlow": "1234567890",
    "accountCategory": "FIAT",
    "cryptoAddress": null,
    "fiatAccount": {
      "network": "SWIFT",
      "bankName": "招商",
      "bankAccountNumber": "123456",
      "accountHolderName": "张三",
      "bic": "1212",
      "fiatCurrency": "USD",
      "bankCity": "HK",
      "bankCountry": "HK",
      "bankAddress": "九龙"
    },
    "accountStatus": "ACTIVE"
  },
    {
      "accountNo": "CN00001500",
      "bizFlow": "1234567891",
      "accountCategory": "FIAT",
      "cryptoAddress": null,
      "fiatAccount": {
        "network": "SWIFT",
        "bankName": "12312",
        "bankAccountNumber": "12312",
        "accountHolderName": "12312",
        "bic": "111",
        "fiatCurrency": "USD",
        "bankCity": "12",
        "bankCountry": "12",
        "bankAddress": "1231"
      },
      "accountStatus": "ACTIVE"
    }]
}

4 响应字段

名称 Json标签 类型 属性 取值说明
返回集合 list List<ReceiveAccountInfo> M 收款账号列表

ReceiveAccountInfo 的字段

名称 Json标签 类型 属性 取值说明
账户编号 accountNo string(64) M 系统生成的账户编号
平台流水号 bizFlow String(64) O 平台流水号,可用于查询
账户分类 accountCategory string(10) M CRYPTO-数字货币 FIAT-法币
账户状态 accountStatus string(10) M ACTIVE-激活 INACTIVE-禁用 PENDING-开通中
加密货币账号 cryptoAddress CryptoAddress O 加密货币账号信息
法币账号 fiatAccount FiatAccount O 法币账号信息

CryptoAddress 的字段

名称 Json标签 类型 属性 取值说明
网络 network string(30) O ERC20 SPL Tron Base
加密货币地址 address string(255) O 链上的地址
支持币种 supportCurrency string(100) O 支持入金的币种 USDC,USDT

FiatAccount 的字段

名称 Json标签 类型 属性 取值说明
网络类型 network string(10) M SWIFT
银行名称 bankName string(100) M
账户号码 bankAccountNumber string(50) M
账户持有人 accountHolderName string(100) M
bic/swift码 bic string(20) M
账户币种 fiatCurrency string(10) M
所在城市 bankCity string(128) O
所在国家 bankCountry string(2) M
具体地址 bankAddress string(512) M

5.1.3 添加汇入账号

1 功能描述

交易代码 pr1021
功能名称 添加汇入账号(此接口暂时只支持法币)
功能描述 录入收款账户允许转账的汇入账号信息
调用方式 实时接口
调用流程 --
应用场景 添加收款账户

2 请求地址

Url: https://{baseUrl}/api/pr1021

Method: POST

请求示例:

{
  "accountNo": "CN00000700",
  "fiatAccount": {
    "network": "SWIFT",
    "bankName": "招商",
    "bankAccountNumber": "123456",
    "accountHolderName": "张三",
    "bic": "1212",
    "fiatCurrency": "USD",
    "bankCity": "HK",
    "bankCountry": "HK",
    "bankAddress": "九龙",
    "accountType": "0",
    "companyName": "张三",
    "registerNumber": "29900999111"
  }
}

3 请求字段

名称 Json标签 类型 属性 取值说明
账户编号 accountNo String(64) M 收款账户查询接口返回的参数
法币账户 fiatAccount FiatAccount M

FiatAccount 的字段

名称 Json标签 类型 属性 取值说明
网络 network string(10) M SWIFT
银行名称 bankName string(100) M
账户号码 bankAccountNumber string(50) M
账户持有人 accountHolderName string(100) M
bic/swift码 bic string(20) M
账户币种 fiatCurrency string(10) M
银行所在城市 bankCity string(128) M
银行所在国家 bankCountry string(2) M
银行地址 bankAddress string(512) M
账户类型 accountType string(1) M 0-对公 1-对私 (暂时只支持对公账户)
公司名称 companyName string(255) C 账户类型是对公时必填,且需要和账户持有人一致
注册证书编号 registerNumber string(255) C 账户类型是对公时必填,公司注册文件编号

返回示例:

{
  "accountNo": "CN00000700",
  "fiatAccount": {
    "network": "SWIFT",
    "bankName": "招商",
    "bankAccountNumber": "123456",
    "accountHolderName": "张三",
    "bic": "1212",
    "fiatCurrency": "USD",
    "bankCity": "HK",
    "bankCountry": "HK",
    "bankAddress": "九龙",
    "accountType": "0",
    "companyName": "张三",
    "registerNumber": "29900999111"
  }
}

4 响应字段

名称 Json标签 类型 属性 取值说明
账户编号 accountNo String(64) M 收款账户查询接口返回的参数
法币账户 fiatAccount FiatAccount M

FiatAccount 的字段

名称 Json标签 类型 属性 取值说明
网络 network string(10) M SWIFT
银行名称 bankName string(100) M
账户号码 bankAccountNumber string(50) M
账户持有人 accountHolderName string(100) M
bic/swift码 bic string(20) M
账户币种 fiatCurrency string(10) M
所在城市 bankCity string(128) O
所在国家 bankCountry string(2) O
具体地址 bankAddress string(512) O
账户类型 accountType string(1) M
公司名称 companyName string(255) C
注册证书编号 registerNumber string(255) C 账户类型是对公时必填,公司注册文件编号

5.1.4 查询汇入账号列表

1 功能描述

交易代码 pr1022
功能名称 查询汇入账号列表
功能描述 查找收款账号允许汇入账号列表
调用方式 实时接口
调用流程 --
应用场景 查询汇入账号列表

2 请求地址

Url: https://{baseUrl}/api/pr1022

Method: POST

请求示例:

{
    "accountNo": "CN00000700",
    "accountHolderName": "张三",
    "bankAccountNumber": "123456",
    "pageNum": 1,
    "pageSize": 10
}

3 请求字段

名称 Json标签 类型 属性 取值说明
账户编号 accountNo String(64) M 账户编号
账户持有人姓名 accountHolderName String(255) O 用于过滤
银行账号 bankAccountNumber String(255) O 用于过滤
页码 pageNum Integer O 页码,从1开始,默认1
每页大小 pageSize Integer O 每页大小,默认10,最大100

返回示例:

{
    "list": [
        {
            "network": "SWIFT",
            "bankAccountNumber": "123456",
            "accountHolderName": "张三",
            "bic": "1212",
            "bankName": "招商",
            "currency": "USD",
            "referenceMessage": "reference",
            "bankCity": "HK",
            "bankCountry": "HK",
            "bankAddress": "九龙",
            "reviewStatus": "01"
        }
    ],
    "total": 1,
    "pageNum": 1,
    "pageSize": 10
}

4 响应字段

名称 Json标签 类型 属性 取值说明
汇入账号列表 list List<FiatAccountInfoVo> M 汇入账号列表
总记录数 total Long M 总记录数
当前页码 pageNum Integer M 当前页码
每页大小 pageSize Integer M 每页大小

FiatAccountInfoVo 的字段

名称 Json标签 类型 属性 取值说明
网络类型 network string(64) M 网络类型,如 SWIFT
银行账号 bankAccountNumber string(255) M 银行账号
账户持有人姓名 accountHolderName string(255) M 账户持有人姓名
BIC/SWIFT码 bic string(64) M BIC代码
银行名称 bankName string(255) M 银行名称
币种 currency string(10) M 币种
参考消息 referenceMessage string(255) O 备注
银行城市 bankCity string(255) O 银行城市
银行国家 bankCountry string(2) O ISO Alpha-2国家代码,如SG
银行地址 bankAddress string(255) O 银行地址
审核状态 reviewStatus string(2) O 审核状态

5.1.5 收款订单查询

1 功能描述

交易代码 pr3022
功能名称 收款订单查询
功能描述 收款订单查询
调用方式 实时接口
调用流程 --
应用场景 收款订单查询

2 请求地址

Url: https://{baseUrl}/api/pr3022

Method: POST

请求示例:

{
    "accountCategory": "FIAT",
    "bankAccountNumber": "999999",
    "pageNum": 1,
    "pageSize": 10
}

3 请求字段

名称 Json标签 类型 属性 取值说明
账户分类 accountCategory string(10) O CRYPTO-数字货币 FIAT-法币
银行账号 bankAccountNumber String(255) O 如果accountCategory填写FIAT,必填
收款地址 cryptoAddress String(255) O 如果accountCategory填写CRYPTO,必填
业务单号 bizFlow String(64) O
页码 pageNum Integer O 页码,从1开始,默认1
每页大小 pageSize Integer O 每页大小,默认10,最大100

返回示例:

{
  "list": [
    {
      "receiveTime": 1780145831,
      "receiveAmount": "501.00",
      "feeAmount": "5.00",
      "actualCreditAmount": "496.00",
      "currency": "USD",
      "feeCurrency": "USD",
      "receiveAddress": "",
      "payerName": "43214321",
      "receiveNo": "fc-828b-89bdc4db14e6",
      "transactionNo": "PT00021700",
      "bankAccountNumber": "999999",
      "exrateStatus": "N"
    }
  ],
  "total": 1,
  "pageNum": 1,
  "pageSize": 10
}

4 响应字段

名称 Json标签 类型 属性 取值说明
汇入账号列表 list List<QueryApiReceiveRsp> M 汇入账号列表
总记录数 total Long M 总记录数
当前页码 pageNum Integer M 当前页码
每页大小 pageSize Integer M 每页大小

QueryApiReceiveRsp 的字段

名称 Json标签 类型 属性 取值说明
收款时间 receiveTime Long M
收款金额 receiveAmount string(32) M
手续费金额 feeAmount string(32) O
实际到账金额 actualCreditAmount string(32) M
收款币种 currency string(10) M
手续费币种 feeCurrency string(10) O
收款地址 receiveAddress string(255) O
汇款方名称 payerName string(255) O
收款订单号 receiveNo string(64) M
收款账号 bankAccountNumber string(255) M
是否换汇 exrateStatus string(1) M N-未换汇 P-待换汇 Y-已换汇

5.2 换汇

5.2.1 汇率查询

1 功能描述

交易代码 pr3021
功能名称 汇率查询
功能描述 查询一对币种之间的汇率
调用方式 实时接口
调用流程 --
应用场景 查询一对币种之间的汇率

2 请求地址

Url: https://{baseUrl}/api/pr3021

Method: POST

请求示例:

{
  "sellCurrency": "USD",
  "amount": 3,
  "buyCurrency": "CNY",
  "lockDirection": "BUY"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
卖出币种 sellCurrency String(8) M
买入币种 buyCurrency String(8) M
锁定金额 amount decimal(20,8) M 指定的FX金额
锁定方向 lockDirection String(10) M 锁定卖出或买入币种;传SELL则锁定卖出币种的金额,传BUY则锁定买入币种的金额

返回示例:

{
  "sellCurrency":"USD",
  "buyCurrency":"CNY",
  "rate":"7.0102",
  "sellAmount":"1000.00",
  "buyAmount":"7010.20",
  "expireTime": 1576560599598
}

4 响应字段

名称 Json标签 类型 属性 取值说明
卖出币种 sellCurrency String(8) M
卖出金额 sellAmount decimal(20,8) M
买入币种 buyCurrency String(8) M
买入金额 buyAmount decimal(20,8) M
汇率 rate String(18) M
过期时间 expireTime long M 13位时间戳

5.2.2 交易查询

1 功能描述

交易代码 pr3019
功能名称 交易查询
功能描述 查询某交易单号或者某商户某时间段的所有交易单号
调用方式 实时接口
调用流程 --
应用场景 在进行FX牌价查询前,需要先查询此接口获取交易单号

2 请求地址

Url: https://{baseUrl}/api/pr3019

Method: POST

请求示例:

{
    "pageNum": 1,
    "pageSize": 10,
    "flowNo":"156165641688",
    "flowType": "00"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
第几页 pageNo Integer O 查询第几页
每页多少条 pageSize Integer O 每页多少条,每页最多支持100条
查询起始时间 beginDate Long O Unix13位时间戳,查询开始时间,闭区间
查询结束时间 endDate Long O Unix13位时间戳,查询结束时间,闭区间
交易单号 flowNo String(32) O 指定交易单号
交易类型 flowType String(2) O 00-充值 01-收款
是否换汇 exrateStatus string(1) M N-未换汇 P-待换汇 Y-已换汇

返回示例:

{
  "pageNo": 1,
  "pageSize": 10,
  "totalRecord": 7,
  "totalPage": 1,
  "results": [
    {
      "flowNo":"156165641688",
      "flowType": "00",
      "payCurrency": "USD",
      "payAmount": 2,
      "paymentType": "FIAT_PAYIN",
      "exrateStatus": "P"
    },
    {
      "flowNo":"156165641689",
      "flowType": "00",
      "payCurrency": "USD",
      "payAmount": 100,
      "paymentType": "FIAT_PAYIN",
      "exrateStatus": "N"
    },
    {
      "flowNo":"156165641690",
      "flowType": "00",
      "payCurrency": "USD",
      "payAmount": 102,
      "paymentType": "FIAT_PAYIN",
      "exrateStatus": "N"
    }
  ]
}

4 响应字段

名称 Json标签 类型 属性 取值说明
当前页码 pageNum Integer M
页显示数 pageSize Integer M
总条数 totalRecord Integer M
总页数 totalPage Integer M
交易信息集合 results List<QueryTransactionNoRes> M

QueryTransactionNoRes 的字段

名称 Json标签 类型 属性 取值说明
交易单号 flowNo String(32) M 指定交易单号
交易类型 flowType String(2) M 00-充值 01-收款
支付币种 payCurrency string(10) M 入金记录币种
支付金额 payAmount decimal(28,10) M 入金记录可换汇金额
支付类型 paymentType string(32) M 法币收入-FIAT_PAYIN
是否换汇 exrateStatus string(1) M N-未换汇 P-待换汇 Y-已换汇

5.2.3 牌价查询

1 功能描述

交易代码 pr1002
功能名称 牌价查询
功能描述 查询某币种的FX牌价
调用方式 实时接口
调用流程 --
应用场景 在进行FX交易前,需要先询价

2 请求地址

Url: https://{baseUrl}/api/pr1002

Method: POST

请求示例:

{
    "merOrderNo":"1734276289293",
    "buyCurrency":"USDT",
    "flowNo":"156165641688",
    "flowType": "00"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
商户订单号 merOrderNo String(32) M 商户自定义的唯一订单号
交易单号 flowNo String(32) M 指定交易单号
交易类型 flowType String(2) M 00-充值 01-收款
买入币种 buyCurrency String(10) M 买入币种 目前支持USDC,USDT

返回示例:

{
    "sellCurrency":"USD",
    "buyCurrency":"USDT",
    "rate":"0.9988",
    "sellAmount":"1000.000000",
    "buyAmount":"998.800000",
    "quoteId": 7843892398239,
    "expireTime": 1576560599598,
    "merOrderNo":"32894398349",
    "feeAmount": "2.000000",
    "feeCurrency":"USDT"
}

4 响应字段

名称 Json标签 类型 属性 取值说明
卖出币种 sellCurrency String(10) M 卖出币种
买入币种 buyCurrency String(10) M 买入币种
汇率 rate String(18) M 汇率报价
卖出金额 sellAmount String(18) M 卖出金额
买入金额 buyAmount String(20) M 买入金额
报价ID quoteId Long M 报价ID
报价有效期 expireTime Long M unix时间戳,此次询价的有效时间。如若过了有效时间,此次询价作废
商户订单号 merOrderNo String(32) M 商户传入的订单号
手续费 feeAmount String(18) O 手续费
手续费币种 feeCurrency String(10) O 手续费币种

5.2.4 FX交易

1 功能描述

交易代码 pr1003
功能名称 FX交易
功能描述 根据询价后的牌价,发起FX交易
调用方式 实时接口
调用流程 在发起牌价查询接口后,根据所得到的quoteId,发起相应的FX交易
应用场景 --

2 请求地址

Url: https://{baseUrl}/api/pr1003

Method: POST

请求示例:

{
    "quoteId": 7843892398239,
    "callbackUrl":"https://xxxx.xxxx.xxxx/xxxx/xxxx",
    "flowNo":"156165641688",
    "flowType": "00"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
报价ID quoteId Long M 报价ID
回调url callbackUrl String(256) M 回调通知Url
交易单号 flowNo String(32) M 指定交易单号
交易类型 flowType String(2) M 00-充值 01-收款

返回示例:

{
    "sellCurrency":"USD",
    "buyCurrency":"USDT",
    "rate":"0.999999",
    "sellAmount":"1000.00",
    "buyAmount":"999.999000",
    "quoteId": 7843892398239,
    "expireTime": 1576560599598,
    "merOrderNo":"32894398349"
}

4 响应字段

名称 Json标签 类型 属性 取值说明
卖出币种 sellCurrency String(10) M 卖出币种
买入币种 buyCurrency String(10) M 买入币种
汇率 rate String(18) M 汇率报价
卖出金额 sellAmount String(18) M 卖出金额
买入金额 buyAmount String(20) M 买入金额
报价ID quoteId Long M 报价ID
结果码 code String M Fx交易结果码
结果描述 message String M 交易结果描述
交易流水号 bizFlow String(32) M 对应Fx交易的唯一流水号
手续费金额 feeAmount String(18) O 手续费金额
手续费币种 feeCurrency String(10) O 手续费币种

5.2.5 换汇历史交易查询

1 功能描述

交易代码 pr3003
功能名称 换汇历史交易查询
功能描述 换汇历史交易查询
调用方式 实时接口
调用流程 --
应用场景 查询以往的换汇历史交易

2 请求地址

Url: https://{baseUrl}/api/pr3003

Method: POST

3 请求字段

名称 Json标签 类型 属性 取值说明
查询起始时间 startTime Long O Unix13位时间戳,查询开始时间,闭区间
查询结束时间 endTime Long O Unxi13位时间戳,查询结束时间,闭区间
报价ID quoteId Long O 报价ID

说明: 若startTime与endTime没填,则quoteId为必填。若quoteId没填,则startTime与endTime为必填,且间隔不能超过24小时。

返回示例:

[
    {
        "sellCurrency":"USD",
        "buyCurrency":"USDT",
        "rate":"0.999999",
        "sellAmount":"1000.00",
        "buyAmount":"999.999000",
        "quoteId": 7843892398240,
        "code": "S00000",
        "message":"success",
        "bizFlow":"983788743"
    }
]

4 响应字段

接口返回对象为: List<ExchangeHistory>

ExchangeHistory 字段:

名称 Json标签 类型 属性 取值说明
卖出币种 sellCurrency String(10) M 卖出币种
买入币种 buyCurrency String(10) M 买入币种
汇率 rate String(18) M 汇率报价
卖出金额 sellAmount String(20) M 卖出金额
买入金额 buyAmount String(20) M 买入金额
报价ID quoteId Int M 报价ID
结果码 code String M Fx交易结果码
结果描述 message String M 交易结果描述
业务流水号 bizFlow String(32) M 对应唯一业务流水号

5.2.6 FX交易结果通知

1 功能描述

交易代码 pr2002
功能名称 FX交易结果通知
功能描述 Fx的交易结果异步通知
调用方式 通知接口
调用流程 --
应用场景 5.4.2 Fx交易发起成功且交易处理完毕后,
将根据5.4.2 Fx交易参数内的回调Url进行回调通知最终结果。

2 请求地址

Url: 5.4.2 Fx交易中的 callbackUrl

Method: POST

请求示例:

 {
    "sellCurrency":"USD",
    "buyCurrency":"CNY",
    "rate":"7.0102",
    "sellAmount":"1000.00",
    "buyAmount":"7010.20",
    "quoteId": 7843892398239,
    "code": "AR0021",
    "message":"not enough balance",
    "bizFlow":"983788743"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
卖出币种 sellCurrency String(10) M 卖出币种
买入币种 buyCurrency String(10) M 买入币种
汇率 rate String(18) M 汇率报价
卖出金额 sellAmount String(20) M 卖出金额
买入金额 buyAmount String(20) M 买入金额
报价ID quoteId Long M 报价ID
结果码 code String M Fx交易结果码
结果描述 message String M 交易结果描述
业务流水号 bizFlow String(32) M 业务流水号

5.2.7 查询支持换汇币种对

1 功能描述

交易代码 pr3002
功能名称 查询换汇支持币种对
功能描述 查询换汇支持币种对,可在当前支持的币种内进行FX交易
调用方式 实时接口
调用流程 --
应用场景 需要查询目前已支持的FX币种

2 请求地址

Url: https://{baseUrl}/api/pr3002

Method: POST

3 请求字段

4 响应字段

接口返回对象为: List<CurrencyPair>

CurrencyPair字段:

名称 Json标签 类型 属性 取值说明
卖出币种 sellCurrency String(10) M 卖出币种
买入币种 buyCurrency String(10) M 买入币种

5.3 付款

5.3.1 增加收款人

1 功能描述

交易代码 pr4001
功能名称 增加收款人
功能描述 增加收款人用于创建付款订单
调用方式 实时接口
调用流程 --
应用场景 增加收款人

2 请求地址

Url: https://{baseUrl}/api/pr4001

Method: POST

请求示例:

{
  "relationshipType": "THIRD_PARTY",
  "accountType": "CRYPTO",
  "thirdPartParam": {
    "beneficiaryType": "INDIVIDUAL",
    "phone": "13800138000",
    "email": "beneficiary@example.com",
    "companyParam": null,
    "personalParam": {
      "firstName": "John",
      "lastName": "Doe",
      "dateOfBirth": "1990-05-15",
      "idCardNo": "ID123456789012",
      "passportNo": "",
      "countryCode": "CN"
    }
  },
  "cryptoAddress": {
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "memo": "MEMO123456",
    "network": "TRC20",
    "currency": "USDT"
  },
  "fiatAccount": null
}

3 请求字段

名称 Json标签 类型 属性 取值说明
账户类型 accountType String(6) M CRYPTO-数字货币 FIAT-法币
关系类型 relationshipType String(15) M SELF_OWNED-自有 THIRD_PARTY-第三方
第三方信息 thirdPartParam ThirdPartParam C 关系类型为THIRD_PARTY时填写
数字货币账户信息 cryptoAddress CryptoAddress C 账户类型为CRYPTO时填写
法币账户信息 fiatAccount FiatAccount C 账户类型为FIAT时填写

ThirdPartParam字段:

名称 Json标签 类型 属性 取值说明
付款人类型 beneficiaryType String(15) C 关系类型为第三方时必填 INDIVIDUAL-个人 COMPANY-公司
电话 phone String(32) C 关系类型为第三方时必填
邮箱 email String(128) C 关系类型为第三方时必填
公司信息 companyParam CompanyParam C 付款人类型为COMPANY时填写
个人信息 personalParam PersonalParam C 付款人类型为INDIVIDUAL时填写

CompanyParam字段:

名称 Json标签 类型 属性 取值说明
公司名称 legalName String(255) C 关系类型为第三方且付款人为公司时必填 英文格式
国家 countryCode String(2) C 关系类型为第三方时必填 国家二字码 如:CN US
公司注册号 registrationNumber String(255) C 国家为非CN时填写
营业执照号 businessLicenseNo String(255) C 国家为CN时填写
公司地址 address String(512) C 英文格式

PersonalParam字段:

名称 Json标签 类型 属性 取值说明
firstName String(255) C 关系类型为第三方且付款人为个人时必填 英文格式
lastName String(255) C 关系类型为第三方且付款人为个人时必填 英文格式
出生日期 dateOfBirth String(15) C 格式 yyyy-mm-dd
国家 countryCode String(2) C 关系类型为第三方时必填 国家二字码 如:CN US
身份证号 idCardNo String(255) C 国家为CN时填写
护照号 passportNo String(255) C 国家为非CN时填写

CryptoAddress字段:

名称 Json标签 类型 属性 取值说明
加密货币地址 address String(512) C 账户类型为数字货币时填写
区块链网络 network String(32) C 区块链网络 TRC20, ERC20, SPL, Base
加密货币币种 currency String(32) C 加密货币币种 暂只支持 USDC USDT
加密货币备注 memo String(255) O 加密货币备注

FiatAccount字段:

名称 Json标签 类型 属性 取值说明
银行账号 bankAccountNumber String(255) C 账户类型为法币时填写
账户持有人姓名 bankAccountHolder String(255) C 英文格式
BIC/SWIFT代码 bic String(32) C
银行账户币种 bankCurrency String(8) C 法币币种如USD
银行所在国家 bankCountryCode String(2) C 国家二字码 如:CN US
银行所在城市 bankCity String(255) C 英文格式
银行地址 bankAddress String(512) C 英文格式

返回示例:

{
  "beneficiaryNo": "11476040318471700003",
  "beneficiaryName": "John Doe",
  "relationshipType": "THIRD_PARTY",
  "accountType": "CRYPTO",
  "status": "00",
  "thirdPartParam": {
    "beneficiaryType": "INDIVIDUAL",
    "phone": "13800138000",
    "email": "beneficiary@example.com",
    "companyParam": {
      "legalName": "",
      "registrationNumber": "",
      "businessLicenseNo": "",
      "address": "",
      "countryCode": ""
    },
    "personalParam": {
      "firstName": "John",
      "lastName": "Doe",
      "dateOfBirth": "1990-05-15",
      "idCardNo": "ID123456789012",
      "passportNo": "PASS1234567",
      "countryCode": "CN"
    }
  },
  "cryptoAddress": {
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "memo": "MEMO123456",
    "network": "TRC20",
    "currency": "USDT"
  },
  "fiatAccount": {
    "bankAccountNumber": "",
    "bankAccountHolder": "",
    "bankName": "",
    "bic": "",
    "bankCurrency": "",
    "bankCountryCode": "",
    "bankCity": "",
    "bankAddress": "",
    "referenceMessage": ""
  }
}

4 响应字段

名称 Json标签 类型 属性 取值说明
收款人编号 beneficiaryNo String(64) M 该收款人的编号,后续付款时需要传入
收款人名称 beneficiaryName String(100) M 收款人名称 英文格式
账户类型 accountType String(6) M CRYPTO-数字货币 FIAT-法币
关系类型 relationshipType String(15) M SELF_OWNED-自有 THIRD_PARTY-第三方
状态 status String(2) M 00-待审核 01-正常 02-拒绝
第三方信息 thirdPartParam ThirdPartParam C 关系类型为THIRD_PARTY时填写
数字货币账户信息 cryptoAddress CryptoAddress C 账户类型为CRYPTO时填写
法币账户信息 fiatAccount FiatAccount C 账户类型为FIAT时填写

ThirdPartParam字段:

名称 Json标签 类型 属性 取值说明
收款人类型 beneficiaryType String(15) C 关系类型为第三方时必填 INDIVIDUAL-个人 COMPANY-公司
电话 phone String(32) C 关系类型为第三方时必填
邮箱 email String(128) C 关系类型为第三方时必填
公司信息 companyParam CompanyParam C 收款人类型为COMPANY时填写
个人信息 personalParam PersonalParam C 收款人类型为INDIVIDUAL时填写

CompanyParam字段:

名称 Json标签 类型 属性 取值说明
公司名称 legalName String(255) C 关系类型为第三方且付款人为公司时必填
国家 countryCode String(2) C 关系类型为第三方时必填 国家二字码 如:CN US
公司注册号 registrationNumber String(255) C 国家为非CN时填写
营业执照号 businessLicenseNo String(255) C 国家为CN时填写
公司地址 address String(512) C

PersonalParam字段:

名称 Json标签 类型 属性 取值说明
firstName String(255) C 关系类型为第三方且付款人为个人时必填
lastName String(255) C
出生日期 dateOfBirth String(15) C 格式 yyyy-mm-dd
国家 countryCode String(2) C 关系类型为第三方时必填 国家二字码 如:CN US
身份证号 idCardNo String(255) C 国家为CN时填写
护照号 passportNo String(255) C 国家为非CN时填写

CryptoAddress字段:

名称 Json标签 类型 属性 取值说明
加密货币地址 address String(512) C 账户类型为数字货币时填写
区块链网络 network String(32) C 区块链网络 TRC20, ERC20, SPL,Base
加密货币币种 currency String(32) C 加密货币币种 暂只支持 USDC USDT
加密货币备注 memo String(255) O 加密货币备注

FiatAccount字段:

名称 Json标签 类型 属性 取值说明
银行账号 bankAccountNumber String(255) C 账户类型为法币时填写
账户持有人姓名 bankAccountHolder String(255) C
BIC/SWIFT代码 bic String(32) C
银行账户币种 bankCurrency String(8) C 法币币种如USD
银行所在国家 bankCountryCode String(2) C 国家二字码 如:CN US
银行所在城市 bankCity String(255) C 英文格式
银行地址 bankAddress String(512) C 英文格式

5.3.2 收款人查询接口

1 功能描述

交易代码 pr4002
功能名称 收款人查询接口
功能描述 收款人查询接口
调用方式 实时接口
调用流程 --
应用场景 收款人查询接口

2 请求地址

Url: https://{baseUrl}/api/pr4002

Method: POST

请求示例:

{
  "beneficiaryNo": "11406032717474000002",
  "pageNo": 1,
  "pageSize": 10
}

3 请求字段

名称 Json标签 类型 属性 取值说明
收款人编号 beneficiaryNo String(64) O pr4001接口创建后返回的参数,如果不传则返回该商户号下所有的收款人信息
第几页 pageNo Integer O 查询第几页
每页多少条 pageSize Integer O 每页多少条,每页最多支持100条

返回示例:

{
  "pageNo": 1,
  "pageSize": 3,
  "totalRecord": 92,
  "totalPage": 31,
  "results": [
    {
      "beneficiaryNo": "11116051921093900017",
      "beneficiaryName": "Test Corp",
      "relationshipType": "THIRD_PARTY",
      "accountType": "CRYPTO",
      "status": "00",
      "thirdPartParam": {
        "beneficiaryType": "COMPANY",
        "phone": "+8613800138000",
        "email": "test@example.com",
        "companyParam": {
          "legalName": "Test Corp",
          "registrationNumber": null,
          "businessLicenseNo": "91110000MA12345678",
          "address": "No.1 Test Road, Chaoyang District",
          "countryCode": "CN"
        },
        "personalParam": null
      },
      "cryptoAddress": {
        "address": "0x1109e3d349f6c",
        "memo": null,
        "network": "TRC20",
        "currency": "USDT"
      },
      "fiatAccount": null
    },
    {
      "beneficiaryNo": "11116051921093800016",
      "beneficiaryName": "Test Corp",
      "relationshipType": "THIRD_PARTY",
      "accountType": "FIAT",
      "status": "00",
      "thirdPartParam": {
        "beneficiaryType": "COMPANY",
        "phone": "+8613800138000",
        "email": "test@example.com",
        "companyParam": {
          "legalName": "Test Corp",
          "registrationNumber": null,
          "businessLicenseNo": "91110000MA12345678",
          "address": "No.1 Test Road, Chaoyang District",
          "countryCode": "CN"
        },
        "personalParam": null
      },
      "cryptoAddress": null,
      "fiatAccount": {
        "bankAccountNumber": "6222025957371900",
        "bankAccountHolder": "Test Corp",
        "bankName": "zhaos",
        "bic": "CMBCCNBS",
        "bankCurrency": "USD",
        "bankCountryCode": "CN",
        "bankCity": "shenz1",
        "bankAddress": "shenz1",
        "referenceMessage": null,
        "network": null
      }
    },
    {
      "beneficiaryNo": "11116051921030300014",
      "beneficiaryName": "Test Corp",
      "relationshipType": "THIRD_PARTY",
      "accountType": "CRYPTO",
      "status": "00",
      "thirdPartParam": {
        "beneficiaryType": "COMPANY",
        "phone": "+8613800138000",
        "email": "test@example.com",
        "companyParam": {
          "legalName": "Test Corp",
          "registrationNumber": null,
          "businessLicenseNo": "91110000MA12345678",
          "address": "No.1 Test Road, Chaoyang District",
          "countryCode": "CN"
        },
        "personalParam": null
      },
      "cryptoAddress": {
        "address": "0x11041fa551980",
        "memo": null,
        "network": "TRC20",
        "currency": "USDT"
      },
      "fiatAccount": null
    }
  ]
}

4 响应字段

名称 Json标签 类型 属性 取值说明
当前页码 pageNum Integer M
页显示数 pageSize Integer M
总条数 totalRecord Integer M
总页数 totalPage Integer M
收款人信息 results List<BeneficiaryInfo> M

BeneficiaryInfo:

名称 Json标签 类型 属性 取值说明
收款人编号 beneficiaryNo String(64) M 该收款人的编号,后续付款时需要传入
收款人名称 beneficiaryName String(100) M 收款人名称
账户类型 accountType String(6) M CRYPTO-数字货币 FIAT-法币
关系类型 relationshipType String(15) M SELF_OWNED-自有 THIRD_PARTY-第三方
状态 status String(2) M 00-初始化 01-正常 02-拒绝
第三方信息 thirdPartParam ThirdPartParam C 关系类型为THIRD_PARTY时填写
数字货币账户信息 cryptoAddress CryptoAddress C 账户类型为CRYPTO时填写
法币账户信息 fiatAccount FiatAccount C 账户类型为FIAT时填写

ThirdPartParam字段:

名称 Json标签 类型 属性 取值说明
收款人类型 beneficiaryType String(15) C 关系类型为第三方时必填 INDIVIDUAL-个人 COMPANY-公司
电话 phone String(32) C 关系类型为第三方时必填
邮箱 email String(128) C 关系类型为第三方时必填
公司信息 companyParam CompanyParam C 收款人类型为COMPANY时填写
个人信息 personalParam PersonalParam C 收款人类型为INDIVIDUAL时填写

CompanyParam字段:

名称 Json标签 类型 属性 取值说明
公司名称 legalName String(255) C 关系类型为第三方且付款人为公司时必填
国家 countryCode String(2) C 关系类型为第三方时必填 国家二字码 如:CN US
公司注册号 registrationNumber String(255) C 国家为非CN时填写
营业执照号 businessLicenseNo String(255) C 国家为CN时填写
公司地址 address String(512) C

PersonalParam字段:

名称 Json标签 类型 属性 取值说明
firstName String(255) C 关系类型为第三方且付款人为个人时必填,英文格式
lastName String(255) C 关系类型为第三方且付款人为个人时必填,英文格式
出生日期 dateOfBirth String(15) C 格式 yyyy-mm-dd
国家 countryCode String(2) C 关系类型为第三方时必填 国家二字码 如:CN US
身份证号 idCardNo String(255) C 国家为CN时填写
护照号 passportNo String(255) C 国家为非CN时填写

CryptoAddress字段:

名称 Json标签 类型 属性 取值说明
加密货币地址 address String(512) C 账户类型为数字货币时填写
区块链网络 network String(32) C 区块链网络 TRC20, ERC20, SPL ,Base
加密货币币种 currency String(32) C 加密货币币种 暂只支持 USDC USDT
加密货币备注 memo String(255) O 加密货币备注

FiatAccount字段:

名称 Json标签 类型 属性 取值说明
银行账号 bankAccountNumber String(255) C 账户类型为法币时填写
账户持有人姓名 bankAccountHolder String(255) C
BIC/SWIFT代码 bic String(32) C
银行账户币种 bankCurrency String(8) C 法币币种如USD
银行所在国家 bankCountryCode String(2) C 国家二字码 如:CN US
银行所在城市 bankCity String(255) C
银行地址 bankAddress String(512) C

5.3.3 更新收款人

1 功能描述

交易代码 pr4006
功能名称 更新收款人
功能描述 更新收款人
调用方式 实时接口
调用流程 --
应用场景 更新收款人

2 请求地址

Url: https://{baseUrl}/api/pr4006

Method: POST

请求示例:

{
  "beneficiaryNo": "11486042220291900002",
  "relationshipType": "THIRD_PARTY",
  "accountType": "CRYPTO",
  "thirdPartParam": {
    "beneficiaryType": "INDIVIDUAL",
    "phone": "13800138000",
    "email": "beneficiary@example.com",
    "companyParam": {
      "legalName": "",
      "registrationNumber": "",
      "businessLicenseNo": "",
      "address": "",
      "countryCode": ""
    },
    "personalParam": {
      "firstName": "John",
      "lastName": "Doe",
      "dateOfBirth": "1990-05-15",
      "idCardNo": "ID123456789012",
      "passportNo": "",
      "countryCode": "CN"
    }
  },
  "cryptoAddress": {
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "memo": "MEMO123456",
    "network": "TRC20",
    "currency": "USDT"
  },
  "fiatAccount": {
    "bankAccountNumber": "",
    "bankAccountHolder": "",
    "bankName": "",
    "bic": "",
    "bankCurrency": "",
    "bankCountryCode": "",
    "bankCity": "",
    "bankAddress": "",
    "referenceMessage": ""
  }
}

3 请求字段

名称 Json标签 类型 属性 取值说明
收款人编号 beneficiaryNo String(64) M pr4001接口创建后返回的参数
账户类型 accountType String(6) M CRYPTO-数字货币 FIAT-法币
关系类型 relationshipType String(15) M SELF_OWNED-自有 THIRD_PARTY-第三方
第三方信息 thirdPartParam ThirdPartParam C 关系类型为THIRD_PARTY时填写
数字货币账户信息 cryptoAddress CryptoAddress C 账户类型为CRYPTO时填写
法币账户信息 fiatAccount FiatAccount C 账户类型为FIAT时填写

ThirdPartParam字段:

名称 Json标签 类型 属性 取值说明
付款人类型 beneficiaryType String(15) M 关系类型为第三方时必填 INDIVIDUAL-个人 COMPANY-公司
电话 phone String(32) M 关系类型为第三方时必填
邮箱 email String(128) M 关系类型为第三方时必填
公司信息 companyParam CompanyParam C 付款人类型为COMPANY时填写
个人信息 personalParam PersonalParam C 付款人类型为INDIVIDUAL时填写

CompanyParam字段:

名称 Json标签 类型 属性 取值说明
公司名称 legalName String(255) M 关系类型为第三方且付款人为公司时必填
国家 countryCode String(2) M 关系类型为第三方时必填 国家二字码 如:CN US
公司注册号 registrationNumber String(255) C 国家为非CN时填写
营业执照号 businessLicenseNo String(255) C 国家为CN时填写
公司地址 address String(512) M

PersonalParam字段:

名称 Json标签 类型 属性 取值说明
firstName String(255) M 关系类型为第三方且付款人为个人时必填
lastName String(255) M
出生日期 dateOfBirth String(15) M 格式 yyyy-mm-dd
国家 countryCode String(2) M 关系类型为第三方时必填 国家二字码 如:CN US
身份证号 idCardNo String(255) C 国家为CN时填写
护照号 passportNo String(255) C 国家为非CN时填写

CryptoAddress字段:

名称 Json标签 类型 属性 取值说明
加密货币地址 address String(512) M 账户类型为数字货币时填写
区块链网络 network String(32) M 区块链网络 TRC20, ERC20, SPL ,Base
加密货币币种 currency String(32) M 加密货币币种 暂只支持 USDC USDT
加密货币备注 memo String(255) O 加密货币备注

FiatAccount字段:

名称 Json标签 类型 属性 取值说明
银行账号 bankAccountNumber String(255) M 账户类型为法币时填写
账户持有人姓名 bankAccountHolder String(255) M
BIC/SWIFT代码 bic String(32) M
银行账户币种 bankCurrency String(8) M 法币币种如USD
银行所在国家 bankCountryCode String(2) M 国家二字码 如:CN US
银行所在城市 bankCity String(255) M
银行地址 bankAddress String(512) M

返回示例:

{
  "beneficiaryNo": "11476040318471700003",
  "beneficiaryName": "John Doe",
  "relationshipType": "THIRD_PARTY",
  "accountType": "CRYPTO",
  "status": "00",
  "thirdPartParam": {
    "beneficiaryType": "INDIVIDUAL",
    "phone": "13800138000",
    "email": "beneficiary@example.com",
    "companyParam": {
      "legalName": "",
      "registrationNumber": "",
      "businessLicenseNo": "",
      "address": "",
      "countryCode": ""
    },
    "personalParam": {
      "firstName": "John",
      "lastName": "Doe",
      "dateOfBirth": "1990-05-15",
      "idCardNo": "ID123456789012",
      "passportNo": "PASS1234567",
      "countryCode": "CN"
    }
  },
  "cryptoAddress": {
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "memo": "MEMO123456",
    "network": "TRC20",
    "currency": "USDT"
  },
  "fiatAccount": {
    "bankAccountNumber": "",
    "bankAccountHolder": "",
    "bankName": "",
    "bic": "",
    "bankCurrency": "",
    "bankCountryCode": "",
    "bankCity": "",
    "bankAddress": "",
    "referenceMessage": ""
  }
}

4 响应字段

名称 Json标签 类型 属性 取值说明
收款人编号 beneficiaryNo String(64) M 该收款人的编号,后续付款时需要传入
收款人名称 beneficiaryName String(100) M 收款人名称
账户类型 accountType String(6) M CRYPTO-数字货币 FIAT-法币
关系类型 relationshipType String(15) M SELF_OWNED-自有 THIRD_PARTY-第三方
状态 status String(2) M 00-初始化 01-正常 02-拒绝
第三方信息 thirdPartParam ThirdPartParam C 关系类型为THIRD_PARTY时填写
数字货币账户信息 cryptoAddress CryptoAddress C 账户类型为CRYPTO时填写
法币账户信息 fiatAccount FiatAccount C 账户类型为FIAT时填写

ThirdPartParam字段:

名称 Json标签 类型 属性 取值说明
收款人类型 beneficiaryType String(15) M 关系类型为第三方时必填 INDIVIDUAL-个人 COMPANY-公司
电话 phone String(32) M 关系类型为第三方时必填
邮箱 email String(128) M 关系类型为第三方时必填
公司信息 companyParam CompanyParam C 收款人类型为COMPANY时填写
个人信息 personalParam PersonalParam C 收款人类型为INDIVIDUAL时填写

CompanyParam字段:

名称 Json标签 类型 属性 取值说明
公司名称 legalName String(255) M 关系类型为第三方且付款人为公司时必填
国家 countryCode String(2) M 关系类型为第三方时必填 国家二字码 如:CN US
公司注册号 registrationNumber String(255) C 国家为非CN时填写
营业执照号 businessLicenseNo String(255) C 国家为CN时填写
公司地址 address String(512) M

PersonalParam字段:

名称 Json标签 类型 属性 取值说明
firstName String(255) M 关系类型为第三方且付款人为个人时必填
lastName String(255) M
出生日期 dateOfBirth String(15) M 格式 yyyy-mm-dd
国家 countryCode String(2) M 关系类型为第三方时必填 国家二字码 如:CN US
身份证号 idCardNo String(255) C 国家为CN时填写
护照号 passportNo String(255) C 国家为非CN时填写

CryptoAddress字段:

名称 Json标签 类型 属性 取值说明
加密货币地址 address String(512) M 账户类型为数字货币时填写
区块链网络 network String(32) M 区块链网络 TRC20, ERC20, SPL ,Base
加密货币币种 currency String(32) M 加密货币币种 暂只支持 USDC USDT
加密货币备注 memo String(255) O 加密货币备注

FiatAccount字段:

名称 Json标签 类型 属性 取值说明
银行账号 bankAccountNumber String(255) M 账户类型为法币时填写
账户持有人姓名 bankAccountHolder String(255) M
BIC/SWIFT代码 bic String(32) M
银行账户币种 bankCurrency String(8) M 法币币种如USD
银行所在国家 bankCountryCode String(2) M 国家二字码 如:CN US
银行所在城市 bankCity String(255) M
银行地址 bankAddress String(512) M

5.3.4 收款人删除接口

1 功能描述

交易代码 pr4007
功能名称 收款人删除接口
功能描述 收款人删除接口
调用方式 实时接口
调用流程 --
应用场景 收款人删除接口

2 请求地址

Url: https://{baseUrl}/api/pr4007

Method: POST

请求示例:

{
  "beneficiaryNo": "11406032717474000002"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
收款人编号 beneficiaryNo String(64) M pr4001接口创建后返回的参数,根据该编号删除收款人数据

返回示例:

{
  "code": "S00000",
  "msg": "请求成功",
  "data": null,
  "succ": true
}

4 响应字段

说明: code返回S00000即为删除成功

5.3.5 提交付款订单

1 功能描述

交易代码 pr4003
功能名称 提交付款订单
功能描述 提交付款订单
调用方式 实时接口
调用流程 --
应用场景 提交付款订单

2 请求地址

Url: https://{baseUrl}/api/pr4003

Method: POST

请求示例:

{
  "beneficiaryNo": "11406032717474000002",
  "payCurrency": "USDT",
  "payAmount": 3,
  "purpose": "COMMISSION",
  "arriveCurrency": "USD",
  "merOrderNo": "147852"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
商户付款订单号 merOrderNo String(64) M 商户提交付款订单的系统唯一编号
付款人编号 beneficiaryNo String(64) M pr4001返回的付款人唯一编号
支付币种 payCurrency String(8) M 目前只支持USDC,USDT
支付金额 payAmount decimal(20,8) C 填写payAmount即无需填写arriveAmount
收款币种 arriveCurrency String(8) M 目前只支持USDC,USDT,USD
收款金额 arriveAmount decimal(20,8) C 填写arriveAmount即无需填写payAmount
付款目的 purpose String(30) M 7.1.2付款目的
订单备注 memo String(512) O

返回示例:

{
  "beneficiaryNo": "11256040320064600002",
  "payCurrency": "USDT",
  "payAmount": 280,
  "purpose": "COMMISSION",
  "arriveCurrency": "USD",
  "arriveAmount": 233.85,
  "merOrderNo": "00000028",
  "quoteId": 1494100602533023744,
  "expireTime": 1776262954,
  "rate": 0.9987,
  "feeAmount": 45.84,
  "feeCurrency": "USDT",
  "beneficiaryInfo": {
    "beneficiaryName": "jack Doe",
    "beneficiaryType": "INDIVIDUAL",
    "relationType": "THIRD_PARTY",
    "countryCode": "CN",
    "dateOfBirth": "1990-05-15",
    "companyAddress": null,
    "companyRegistrationNo": null,
    "accountType": "CRYPTO",
    "cryptoAddress": {
      "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
      "memo": null,
      "network": "TRC20",
      "currency": "USDT"
    },
    "fiatAccount": null
  },
  "payerInfo": {
    "payerType": "COMPANY",
    "payerLegalName": "wahaha",
    "payerRelationshipType": "SELF_OWNED",
    "payerCountryCode": "HK",
    "payerRegistrationNumber": "12311",
    "payerAddress": null
  }
}

4 响应字段

名称 Json标签 类型 属性 取值说明
报价id quoteId Long M 报价id
商户付款订单号 merOrderNo String(64) M 商户提交付款订单的系统唯一编号
付款人编号 beneficiaryNo String(64) M pr4001返回的付款人唯一编号
支付币种 payCurrency String(8) M
支付金额 payAmount decimal(20,8) M
收款币种 arriveCurrency String(8) M
收款金额 arriveAmount decimal(20,8) M
付款目的 purpose String(30) M
过期时间 expireTime Long M
汇率 rate Long M
手续费金额 feeAmount decimal(20,8) O
手续费币种 feeCurrency String(10) O
汇款人信息 beneficiaryInfo BeneficiaryInfoVo M
付款人信息 payerInfo PayerInfoVo M

BeneficiaryInfoVo 字段:

名称 Json标签 类型 属性 取值说明
汇款人名称 beneficiaryName String(255) C 账户类型为法币时填写
汇款人类型 beneficiaryType String(20) C
BIC/SWIFT代码 relationType String(32) C
所在国家 countryCode String(2) C 法币币种如USD
出生日期 dateOfBirth String(20) C 国家二字码 如:CN US
公司地址 companyAddress String(255) C
账户类型 accountType String(10) C
公司注册号 companyRegistrationNo String(512) C
数字货币账户信息 cryptoAddress CryptoAddress C
法币账户信息 fiatAccount FiatAccount C

CryptoAddress字段:

名称 Json标签 类型 属性 取值说明
加密货币地址 address String(512) C 账户类型为数字货币时填写
区块链网络 network String(32) C 区块链网络 TRC20, ERC20, SPL, Base
加密货币币种 currency String(32) C 加密货币币种 暂只支持 USDC USDT
加密货币备注 memo String(255) O 加密货币备注

FiatAccount字段:

名称 Json标签 类型 属性 取值说明
银行账号 bankAccountNumber String(255) C 账户类型为法币时填写
账户持有人姓名 bankAccountHolder String(255) C
BIC/SWIFT代码 bic String(32) C
银行账户币种 bankCurrency String(8) C 法币币种如USD
银行所在国家 bankCountryCode String(2) C 国家二字码 如:CN US
银行所在城市 bankCity String(255) C
银行地址 bankAddress String(512) C
银行网络 network String(512) C

PayerInfoVo 字段:

名称 Json标签 类型 属性 取值说明
付款人类型 payerType String(20) C 公司或者个人
付款人名称 payerLegalName String(255) C
付款人账号类型 payerRelationshipType String(32) C
付款人国家 payerCountryCode String(2) C
付款人注册号 payerRegistrationNumber String(64) C
付款人地址 payerAddress String(255) C

5.3.6 确认付款订单

1 功能描述

交易代码 pr4004
功能名称 确认付款订单
功能描述 对上一步提交的付款订单进行确认动作
调用方式 实时接口
调用流程 --
应用场景 确认付款订单

2 请求地址

Url: https://{baseUrl}/api/pr4004

Method: POST

请求示例:

{
  "quoteId": 4196032719075000002,
  "callbackUrl": "https://xxxx.xxxx.xxxx/xxxx/xxxx"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
报价id quoteId Long M 报价id
回调url callbackUrl String(2) O 回调通知Url

返回示例:

{
  "beneficiaryNo": "11256040320064600002",
  "status": "04",
  "quoteId": 1494100602533023744,
  "merOrderNo": "00000028",
  "payCurrency": "USDT",
  "payAmount": 280,
  "arriveCurrency": "USD",
  "arriveAmount": 233.85,
  "rate": 0.9987,
  "feeAmount": 45.84,
  "feeCurrency": "USDT",
  "beneficiaryInfo": {
    "beneficiaryName": "jack Doe",
    "beneficiaryType": "INDIVIDUAL",
    "relationType": "THIRD_PARTY",
    "countryCode": "CN",
    "dateOfBirth": "1990-05-15",
    "companyAddress": null,
    "companyRegistrationNo": null,
    "accountType": "CRYPTO",
    "cryptoAddress": {
      "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
      "memo": null,
      "network": "TRC20",
      "currency": "USDT"
    },
    "fiatAccount": null
  },
  "payerInfo": {
    "payerType": "COMPANY",
    "payerLegalName": "wahaha",
    "payerRelationshipType": "SELF_OWNED",
    "payerCountryCode": "HK",
    "payerRegistrationNumber": "12311",
    "payerAddress": null
  }
}

4 响应字段

名称 Json标签 类型 属性 取值说明
报价id quoteId String(64) M
商户付款订单号 merOrderNo String(64) M
付款人编号 beneficiaryNo String(64) M
订单状态 status String(2) M 01-处理中 04-下发中 05-付款完成 06-付款失败
支付币种 payCurrency String(8) M
支付金额 payAmount decimal(20,8) M
收款币种 arriveCurrency String(8) M
收款金额 arriveAmount decimal(20,8) M
汇率 rate Long M
手续费金额 feeAmount decimal(20,8) O
手续费币种 feeCurrency String(10) O
汇款人信息 beneficiaryInfo BeneficiaryInfoVo M
付款人信息 payerInfo PayerInfoVo M

BeneficiaryInfoVo 字段:

名称 Json标签 类型 属性 取值说明
汇款人名称 beneficiaryName String(255) C 账户类型为法币时填写
汇款人类型 beneficiaryType String(20) C
BIC/SWIFT代码 relationType String(32) C
所在国家 countryCode String(2) C 法币币种如USD
出生日期 dateOfBirth String(20) C 国家二字码 如:CN US
公司地址 companyAddress String(255) C
账户类型 accountType String(10) C
公司注册号 companyRegistrationNo String(512) C
数字货币账户信息 cryptoAddress CryptoAddress C
法币账户信息 fiatAccount FiatAccount C

CryptoAddress字段:

名称 Json标签 类型 属性 取值说明
加密货币地址 address String(512) C 账户类型为数字货币时填写
区块链网络 network String(32) C 区块链网络 TRC20, ERC20, SPL , Base
加密货币币种 currency String(32) C 加密货币币种 暂只支持 USDC USDT
加密货币备注 memo String(255) O 加密货币备注

FiatAccount字段:

名称 Json标签 类型 属性 取值说明
银行账号 bankAccountNumber String(255) C 账户类型为法币时填写
账户持有人姓名 bankAccountHolder String(255) C
BIC/SWIFT代码 bic String(32) C
银行账户币种 bankCurrency String(8) C 法币币种如USD
银行所在国家 bankCountryCode String(2) C 国家二字码 如:CN US
银行所在城市 bankCity String(255) C
银行地址 bankAddress String(512) C
银行网络 network String(512) C

PayerInfoVo 字段:

名称 Json标签 类型 属性 取值说明
付款人类型 payerType String(20) C 公司或者个人
付款人名称 payerLegalName String(255) C
付款人账号类型 payerRelationshipType String(32) C
付款人国家 payerCountryCode String(2) C
付款人注册号 payerRegistrationNumber String(64) C
付款人地址 payerAddress String(255) C

5.3.7 查询付款订单

1 功能描述

交易代码 pr4005
功能名称 查询付款订单
功能描述 查询付款订单
调用方式 实时接口
调用流程 --
应用场景 查询付款订单

2 请求地址

Url: https://{baseUrl}/api/pr4005

Method: POST

请求示例:

{
  "pageNum": 1,
  "pageSize": 10,
  "beneficiaryNo":"11406032717474000002",
  "merOrderNo":"147258"
}

3 请求字段

名称 Json标签 类型 属性 取值说明
第几页 pageNum Integer O 查询第几页
每页多少条 pageSize Integer O 每页多少条,每页最多支持100条
付款人编号 beneficiaryNo String(64) O
商户付款订单 merOrderNo String(32) O 商户提交付款订单的系统唯一编号

返回示例:

{
  "pageNum": 1,
  "pageSize": 10,
  "total": 2,
  "list": [
    {
      "beneficiaryNo": "11286041321052700002",
      "payCurrency": "USDC",
      "payAmount": 100.00000000,
      "purpose": "COMMISSION",
      "arriveCurrency": "USDC",
      "arriveAmount": 74.70000000,
      "merOrderNo": "12678581",
      "status": "04",
      "quoteId": 1494103717469007872,
      "expireTime": null,
      "rate": 1.0000000000,
      "feeAmount": 25.30000000,
      "feeCurrency": "USDC",
      "beneficiaryInfo": {
        "beneficiaryName": "wahaha",
        "beneficiaryType": "COMPANY",
        "relationType": "SELF_OWNED",
        "countryCode": "HK",
        "dateOfBirth": null,
        "companyAddress": "js",
        "companyRegistrationNo": "",
        "accountType": "CRYPTO",
        "cryptoAddress": {
          "address": "0x2b8Bd91e632D8797aF5e163BB1461DBf16365A02",
          "memo": null,
          "network": "Base",
          "currency": "USDC"
        },
        "fiatAccount": null
      },
      "payerInfo": {
        "payerType": "COMPANY",
        "payerLegalName": "wahaha",
        "payerRelationshipType": "SELF_OWNED",
        "payerCountryCode": "HK",
        "payerRegistrationNumber": "12311",
        "payerAddress": null
      }
    },
    {
      "beneficiaryNo": "11286041321052700002",
      "payCurrency": "USDT",
      "payAmount": 100.00000000,
      "purpose": "COMMISSION",
      "arriveCurrency": "USD",
      "arriveAmount": 54.62000000,
      "merOrderNo": "678583",
      "status": "01",
      "quoteId": 1494103519254589440,
      "expireTime": 1776263649,
      "rate": 0.9987000000,
      "feeAmount": 45.30000000,
      "feeCurrency": "USDT",
      "beneficiaryInfo": {
        "beneficiaryName": "wahaha",
        "beneficiaryType": "COMPANY",
        "relationType": "SELF_OWNED",
        "countryCode": "HK",
        "dateOfBirth": null,
        "companyAddress": "js",
        "companyRegistrationNo": "",
        "accountType": "CRYPTO",
        "cryptoAddress": {
          "address": "0x2b8Bd91e632D8797aF5e163BB1461DBf16365A02",
          "memo": null,
          "network": "Base",
          "currency": "USDC"
        },
        "fiatAccount": null
      },
      "payerInfo": {
        "payerType": "COMPANY",
        "payerLegalName": "wahaha",
        "payerRelationshipType": "SELF_OWNED",
        "payerCountryCode": "HK",
        "payerRegistrationNumber": "12311",
        "payerAddress": null
      }
    }
  ]
}

4 响应字段

名称 Json标签 类型 属性 取值说明
当前页码 pageNum Integer M
页显示数 pageSize Integer M
总数 total Integer M
交易信息集合 list List<CryptoPayoutApiResp> M

CryptoPayoutApiResp 的字段

名称 Json标签 类型 属性 取值说明
报价id quoteId String(64) M 系统付款唯一编号
商户付款订单号 merOrderNo String(64) M 商户提交付款订单的系统唯一编号
付款人编号 beneficiaryNo String(64) M pr4001返回的收款人唯一编号
支付币种 payCurrency String(8) M
支付金额 payAmount decimal(20,8) M
收款币种 arriveCurrency String(8) M
收款金额 arriveAmount decimal(20,8) M
付款目的 purpose String(30) M
订单状态 status String(2) M 01-处理中 04-下发中 05-付款成功 06-付款失败
过期时间 expireTime Long M
汇率 rate Long M
手续费金额 feeAmount decimal(20,8) O
手续费币种 feeCurrency String(10) O
汇款人信息 beneficiaryInfo BeneficiaryInfoVo M
付款人信息 payerInfo PayerInfoVo M

BeneficiaryInfoVo 字段:

名称 Json标签 类型 属性 取值说明
汇款人名称 beneficiaryName String(255) M 账户类型为法币时填写
汇款人类型 beneficiaryType String(20) M
BIC/SWIFT代码 relationType String(32) M
所在国家 countryCode String(2) M 法币币种如USD
出生日期 dateOfBirth String(20) M 国家二字码 如:CN US
公司地址 companyAddress String(255) M
账户类型 accountType String(10) M
公司注册号 companyRegistrationNo String(512) M
数字货币账户信息 cryptoAddress CryptoAddress C
法币账户信息 fiatAccount FiatAccount C

CryptoAddress字段:

名称 Json标签 类型 属性 取值说明
加密货币地址 address String(512) M 账户类型为数字货币时填写
区块链网络 network String(32) M 区块链网络 TRC20, ERC20, SPL ,Base
加密货币币种 currency String(32) M 加密货币币种 暂只支持 USDC USDT
加密货币备注 memo String(255) O 加密货币备注

FiatAccount字段:

名称 Json标签 类型 属性 取值说明
银行账号 bankAccountNumber String(255) M 账户类型为法币时填写
账户持有人姓名 bankAccountHolder String(255) M
BIC/SWIFT代码 bic String(32) M
银行账户币种 bankCurrency String(8) M 法币币种如USD
银行所在国家 bankCountryCode String(2) M 国家二字码 如:CN US
银行所在城市 bankCity String(255) M
银行地址 bankAddress String(512) M
银行网络 network String(512) M

PayerInfoVo 字段:

名称 Json标签 类型 属性 取值说明
付款人类型 payerType String(20) C 公司或者个人
付款人名称 payerLegalName String(255) C
付款人账号类型 payerRelationshipType String(32) C
付款人国家 payerCountryCode String(2) C
付款人注册号 payerRegistrationNumber String(64) C
付款人地址 payerAddress String(255) C

5.4 账务

5.4.1 账户余额查询

1 功能描述

交易代码 pr3004
功能名称 账户余额查询
功能描述 当前账户余额查询
调用方式 实时接口
调用流程 --
应用场景 当前账户余额查询

2 请求地址

Url: https://{baseUrl}/api/pr3004

Method: POST

3 请求字段

名称 Json标签 类型 属性 取值说明
币种 currency String(10) O 币种,若不传则为查询所有币种账户

返回示例:

[
    {
        "currency": "USD",
        "balance": "2000.00",
        "status":"on"
    },
    {
        "currency": "CNY",
        "balance": "8231.22",
        "status":"off"
    }
]

4 响应字段

接口返回对象为: List<CurrencyBalance>

CurrencyBalance 字段:

名称 Json标签 类型 属性 取值说明
币种 currency String(10) M 币种
余额 balance String(10) M 账户余额
账户状态 status String(3) M 账户状态: on 为启用, off为禁用

5.4.2 账务流水交易查询

1 功能描述

交易代码 pr3009
功能名称 账务流水历史交易查询
功能描述 账务流水历史交易查询
调用方式 实时接口
调用流程 --
应用场景 查询以往的账务流水历史交易

2 请求地址

Url: https://{baseUrl}/api/pr3009

Method: POST

3 请求字段

名称 Json标签 类型 属性 取值说明
查询起始时间 beginDate Long O Unix13位时间戳,查询开始时间,闭区间
查询结束时间 endDate Long O Unix13位时间戳,查询开始时间,闭区间
业务订单号 batchNo String(32) O Payroad生成的唯一流水号
币种 currency String(10) O 币种
收支类型 flowType String(3) O 收支类型 1: "入金", 2: "出金"
流水类型 busiType String(3) O 7.1.1流水类型
第几页 pageNum Integer O 查询第几页
每页多少条 pageSize Integer O 每页多少条,每页最多支持100条

返回示例:

{
    "pageNum": 1,
    "pageSize": 10,
    "total": 9668,
    "list": [{
        "currency": "USD",
        "busiType": "C11",
        "busiDate": "2020-05-28 19:32:14",
        "inAmount": null,
        "outAmount": 7.0000,
        "vailAmount": 5572.3100,
        "batchNo": "41200528653124170019"
    }, {
        "currency": "USD",
        "busiType": "C07",
        "busiDate": "2020-05-27 17:52:56",
        "inAmount": null,
        "outAmount": 2218.0000,
        "vailAmount": 5628.3100,
        "batchNo": "41200527728820950004"
    }]
}

4 响应字段

名称 Json标签 类型 属性 取值说明
当前页码 pageNum Int M --
页显示数 pageSize Int M --
总数 total Int M --
账务流水信息集合 list List<CurFlowRes> M --

CurFlowRes 的字段

名称 Json标签 类型 属性 取值说明
账务流水订单 batchNo string(32) M 账务流水订单
币种 currency string(10) M 账务流水币种
流水类型 busiType String(3) M 7.1.1流水类型
入金 inAmount decimal(18,2) M 入金金额
出金 outAmount decimal(18,2) M 出金金额
可用金额 vailAmount decimal(18,2) M 可用金额
交易时间 busiDate Date M 交易时间

6 Webhook

6.1 Webhook 说明

1 功能描述

交易代码 pr2006
功能名称 Webhook 统一回调
功能描述 商户订阅事件后,Payroad 通过该接口推送事件通知

2 推送地址

商户需提前向Payroad提供 Webhook 回调地址(webhookUrl)和订阅的事件类型。

3 推送规则

  1. 推送方式:Payroad 向商户配置的 webhookUrl 发送 POST 请求
  2. 推送协议:HTTPS JSON,遵循与业务接口相同的加密加签规范
  3. 推送内容:body 中包含 event(事件类型)和 data(事件数据)
  4. 幂等保证:系统可能发送重复通知,商户需实现幂等处理

4 推送报文结构

推送的加密报文解密后结构如下:

{
  "event": "payment",
  "source": "payment",
  "time": 1738655445123,
  "idempotencyKey": "payment_BIZ001",
  "data": {
    // 事件数据,具体字段见各事件定义
  }
}

6.2 事件类型(event)说明

event source 说明
payment payment 付款结果状态变更
exchange exchange 换汇状态变更
vaOpen va VA开户结果
recharge recharge 充值入账成功通知
receiveRelation receiveRelation 收款入账成功通知
vaAccountReviewer va VA账户汇入账号审核结果
remitterReviewer remitter 收款人审核结果

6.3 payment(付款结果状态变更)

1 触发条件

商户发起付款请求后,付款状态发生变更时触发。

2 data 字段

名称 Json标签 类型 属性 取值说明
商户订单号 merOrderNo String(64) M 商户提交的订单号
付款状态 status String(20) M 01-处理中 04-下发中 05-付款成功 06-付款失败

3 示例

{
  "event": "payment",
  "source": "payment",
  "time": 1738655445123,
  "idempotencyKey": "payment_REF202506040001",
  "data": {
    "merOrderNo": "ORD123456",
    "status": "05"
  }
}

6.4 exchange(换汇状态变更)

1 触发条件

商户发起换汇交易后,换汇状态发生变更时触发。

2 data 字段

名称 Json标签 类型 属性 取值说明
报价ID quoteId Long M 报价ID
卖出币种 sellCurrency String(10) M 卖出币种
卖出金额 sellAmount String(20) M 卖出金额
买入币种 buyCurrency String(10) M 买入币种
买入金额 buyAmount String(20) M 买入金额
汇率 rate String(20) M 汇率
结果码 code String M Fx交易结果码
结果描述 message String M 交易结果描述
交易流水号 bizFlow String(32) M 对应Fx交易的唯一流水号

3 示例

{
  "event": "exchange",
  "source": "exchange",
  "time": 1738655445123,
  "idempotencyKey": "exchange_FX001",
  "data": {
    "quoteId": 123456,
    "sellCurrency": "USD",
    "sellAmount": "1000.00",
    "buyCurrency": "CNY",
    "buyAmount": "7200.00",
    "rate": "7.20",
    "code": "00000",
    "message": "success",
    "bizFlow": "FX001"
  }
}

6.5 vaOpen(VA开户结果)

1 触发条件

VA 开户申请审核完成时触发。

2 data 字段

名称 Json标签 类型 属性 取值说明
业务流水号 bizFlow String(64) M Payroad 生成的业务流水号
商户订单号 merOrderNo String(64) M 商户提交的订单号
账户编号 accountNo String(64) C 开户成功时有值
币种 currency String(10) C 开通的币种
审核状态 auditStatus String(2) M 00-待审核 01-审核通过 02-审核不通过

3 示例

{
  "event": "vaOpen",
  "source": "va",
  "time": 1738655445123,
  "idempotencyKey": "vaOpen_VA001",
  "data": {
    "bizFlow": "VA001",
    "merOrderNo": "VA20250604001",
    "accountNo": "CN00000700",
    "currency": "USD",
    "auditStatus": "01"
  }
}

6.6 recharge(充值入账成功通知)

1 触发条件

商户充值成功时发送通知,收到则表示充值成功一笔金额。

2 data 字段

名称 Json标签 类型 属性 取值说明
充值金额 amount String(20) M 充值金额
实际到账金额 actualAmt String(20) M 实际到账金额(扣除手续费后金额)
充值时间 rechargeTime String(30) M 充值时间
币种 currency String(10) M 币种
交易单号 flowNo String(64) M Payroad 生成的交易单号

3 示例

{
  "event": "recharge",
  "source": "recharge",
  "time": 1738655445123,
  "idempotencyKey": "recharge_BATCH001",
  "data": {
    "amount": "10000.00",
    "actualAmt": "9950.00",
    "rechargeTime": "1776687462",
    "currency": "USD",
    "flowNo": "BATCH001"
  }
}

6.7 receiveRelation(收款入账成功通知)

1 触发条件

收款审核完成时触发。

2 data 字段

名称 Json标签 类型 属性 取值说明
交易单号 flowNo String(64) M 交易单号
收款金额 amount String(20) M 收款金额
实际到账金额 actualAmt String(20) M 实际到账金额(扣除手续费后金额)
收款时间 receiveTime String(30) M 收款时间
币种 currency String(10) M 币种

3 示例

{
  "event": "receiveRelation",
  "source": "receiveRelation",
  "time": 1738655445123,
  "idempotencyKey": "receiveRelation_RECV001",
  "data": {
    "flowNo": "RECV001",
    "amount": "1000.00",
    "actualAmt": "980.00",
    "receiveTime": "1776687462",
    "currency": "USD"
  }
}

6.8 vaAccountReviewer(VA账户汇入账号审核结果)

1 触发条件

VA 账户录入汇款方信息审核完成时触发。

2 data 字段

名称 Json标签 类型 属性 取值说明
账户编号 accountNo String(64) M VA 账户编号
网络类型 network string(64) M 网络类型,如 SWIFT
银行账号 bankAccountNumber string(255) M 银行账号
账户持有人姓名 accountHolderName string(255) M 账户持有人姓名
BIC/SWIFT码 bic string(64) M BIC代码
银行名称 bankName string(255) M 银行名称
币种 currency string(10) M 币种
参考消息 referenceMessage string(255) O 备注
银行城市 bankCity string(255) O 银行城市
银行国家 bankCountry string(2) O ISO Alpha-2国家代码,如SG
银行地址 bankAddress string(255) O 银行地址
审核状态 reviewStatus string(2) O 审核状态
账户类型 accountType string(1) M 0-对公 1-对私 (暂时只支持对公账户)
公司名称 companyName string(255) C 账户类型是对公时必填,且需要和账户持有人一致

3 示例

{
  "event": "vaAccountReviewer",
  "source": "va",
  "time": 1738655445123,
  "idempotencyKey": "vaAccountReviewer_VAR001",
  "data": {
    "accountNo": "CN00000700",
    "network": "SWIFT",
    "bankAccountNumber": "1234567890",
    "accountHolderName": "John Doe",
    "bic": "ICBCHKHH",
    "bankName": "ABC Bank",
    "currency": "USD",
    "accountType": "0",
    "companyName": "John Doe"
  }
}

6.9 remitterReviewer(收款人审核结果)

1 触发条件

收款人审核完成时触发。

2 data 字段

名称 Json标签 类型 属性 取值说明
收款人编号 beneficiaryNo String(64) M 收款人唯一编号
审核状态 status String(20) M 00-初始化 01-正常 02-拒绝

3 示例

{
  "event": "remitterReviewer",
  "source": "remitter",
  "time": 1738655445123,
  "idempotencyKey": "remitterReviewer_REM001",
  "data": {
    "beneficiaryNo": "BENE001",
    "status": "01"
  }
}

7 附录

7.1.1 busiType 流水类型

字段值 说明
C00 充值
C01 换汇
C02 换汇退回
C11 手续费
C12 手续费退回
C25 付款
C26 收款
C31 付款退回

7.1.2 purpose 类型

字段值 说明
REFUND 因订单取消、超额支付或服务不满产生的退款
GOODS_SERVICES 为购买实物商品、数字产品或接受服务所支付的款项
COMMISSION 经纪人费用、前端费、承诺费、担保费及托管费
ROYALTY_DIVIDENDS 特许权使用费、著作权使用费、专利许可费或股息分配款项
LOAN_REPAY 贷款本金、利息的偿还,或相关贷款债务的清偿
TREASURY 企业内部资金划转、资金管理或账户间资金分配
RENT 房地产、办公场地、设备或其他租赁资产的租金款项
OTHERS 保险费或其他未做分类的支付用途
REJECT_RETURN 因支付被驳回、交易失败或收款方信息无效导致的资金退回

6.1.3 purpose 付款目的

字段值 汇款目的(en) 汇款目的(zh)
1 Transfer to own account 付款至自己账户
2 Family Maintenance 赡家款
3 Education-related student expenses 教育相关的学生开支
4 Medical Treatment 医疗费
5 Hotel Accomodation 酒店费用
6 Travel 旅行
7 Utility Bills 支付水电煤等基础设施账单
8 Repayment of Loans 归还借款
9 Tax Payment 支付税款
10 Purchase of Residential Property 购买住宅
11 Payment of Property Rental 支付房屋租金
12 Insurance Premium 保险预付
13 Product indemnity insurance 产品保险
14 Insurance Claims Payment 支付保费
15 Mutual Fund Investment 共同基金投资
16 Investment in Shares 股权投资
17 Donations 捐赠
18 Information Service Charges 信息服务费
19 Advertising & Public relations-related expenses 广告或公关费用
20 Royalty fees, trademark fees,
patent fees, and copyright fees
忠诚服务费、商标费、专利费以及著作权费用
21 Fees for brokers, front end fee,
commitment fee, guarantee fee and custodian fee
交易费、担保费、保理费
22 Fees for advisors, technical assistance,
and academic knowledge, including remuneration for specialists
咨询费、技术服务、学术费、专家费
23 Representative office expenses 代表处开支
24 Construction costs/expenses 建筑建设费用
25 Transportation fees for goods 商品转移费
26 For payment of exported goods 出口货物货款支付
27 Delivery fees for goods 商品物流费
28 General Goods Trades - Offine trade 常规线下货物贸易
29 Other services charges 其他服务贸易支出
30 Salary / Commission Payment 工资或佣金支付
31 Fixed Maintenance Expenses 定期维护费用
99 Other fees (Please specify) 其他费用(请详述)