Payroad跨境支付API文档
1. 概述
1.1 编写目的
目的是约定商户与Payroad付款系统间的业务接口。包括通讯协议、交易接口规范、文件格式、加密和摘要规范。指 导商户开发人员依据本规范开发,并与Payroad付款系统对接。
1.2 定义和缩略语
UML时序图

1.3 平台测试/上线准备事项
测试联调阶段
平台开发完成进行系统联调测试前,需要准备如下事项: 1. 平台生成测试环境的RSA密钥对,并将公钥发提供给Payroad; 2. 申请开通测试环境平台号;
上线阶段
- 平台生成生产环境的RSA密钥对,并将公钥提供给Payroad;
- 向Payroad提供平台服务器IP地址
- 申请开通生产环境平台号
2. 通讯协议
2.1 协议约定
- 平台与Payroad之间基于HTTPS1.2协议通讯,报文组织形式采用 json 规范。
- 双方的报文都密文形式发送,必须同时将报文的密文、会话密钥密文和签名传输给对方。
- 平台和Payroad双方互为客户端和服务端。根据应用的要求,可以由平台作为客户端主动发起交易请求,Payroad 来做应答。也可以由Payroad主动发起交易请求,平台来做应答,平台在开户时需提前设置接收Payroad的请求地址。
- 客户端提交请求使用POST表单方式 (Content-Type:application/json) 提交,内容采用UTF-8编码。
- 请求和响应均由五个域: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":{
//…
}
}
- 请求报文由两部分组成:请求报文头和请求报文体。其中请求报文头信息在报文头(head. 节点内,请求报文体信息 在报文体(body. 节点内。
- 报文头是每个交易都相同的。请求报文头信息的填写标准请参看“公共报文头说明”章节。
- 报文体根据每个交易的接口定义而各不相同。请求报文体的定义请参看“业务交易接口”章节。需按照每个交易的接 口定义组装和解析请求报文体。
- 客户端请求报文上送时,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":{
//…
}
}
- 交易应答报文由两部分组成:应答报文头和应答报文体。其中应答报文头信息在报文头(head)节点内,应答报文体 信息在报文体(body)节点内。
- 报文头是每个交易都相同的。应答报文头信息的填写标准请参看"公共报文头说明”章节。
- 报文体根据每个交易的接口定义而各不相同。应答报文体的定义请参看"交易报文接口”章节。需按照每个交易的接口 定义组装和解析应答报文体。
- 交易成功时的应答报文,报文头的respCode为S00000,respDesc为"交易成功”,此时报文体(body)节点根据 实际业务需要为空也可以不为空。
- 交易错误时的应答报文,错误码和错误信息填写在报文头的respCode(返回码)和respDesc(返回信息描述)域 中;报文体(body)节点为空。
- 服务器端响应报文返回时,将商户号、报文密文、会话密钥和签名以标准json字符串返回 {"merchantNo”:"",jsonEnc":"","keyEnc":"","sign":""},然后将字符串的字节流写入http的返回对象。客户端收到服务器端的响应时将HTTP服务方返回的字节流按照相应格式的字符串进行报文和摘要参数的获取,参数获 取后,先要进行摘要校验,校验通过后在解析报文内容。
报文摘要生成和校验方式请参看"加密及签名规范”章节。
4 加密及签名规范
4.1 原则
- 交易报文传输都需要进行加密、签名和校验。
- 无论是请求端还是响应端接收到报文后,都需要进行签名验证,即按照约定算法重新生成签名,然后和收到的签名进 行对比,对比通过后才能进行报文内容的解析,否则报文或文件内容可能出现篡改、部分丢失、伪造的问题。
- 报文加密算法:DES/CBC/PKCS5Padding
- 会话密钥生成:KeyGenerator生成
- 会话密钥加密算法:RSA/ECB/PKCS1Padding
- 签名算法: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 报文加密及签名

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

- 将keyEnc域转换为二进制byte数组,使用接收方放的私钥对会话密钥,得到明文SK;
- 将jsonEnc与转换为二进制byte数组,使用上一步得到的会话密钥SK解密,得到明文json;
- 使用上一步解密得到的明文、发送方公钥和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 | 关系类型为第三方时必填 |
| 邮箱 | 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 | 关系类型为第三方时必填 |
| 邮箱 | 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 | 关系类型为第三方时必填 |
| 邮箱 | 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 | 关系类型为第三方时必填 |
| 邮箱 | 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 | 关系类型为第三方时必填 |
| 邮箱 | 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 推送规则
- 推送方式:Payroad 向商户配置的 webhookUrl 发送 POST 请求
- 推送协议:HTTPS JSON,遵循与业务接口相同的加密加签规范
- 推送内容:body 中包含
event(事件类型)和data(事件数据) - 幂等保证:系统可能发送重复通知,商户需实现幂等处理
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) | 其他费用(请详述) |