代付订单 · 印度
大约 5 分钟
请求
代付 API 用于向受益人发起代付交易。本页为 印度(国家码 in)的代付说明。bankCode 以本国银行为准。
请求路径
域名:推荐使用统一域名
openapi.toppayment.com(路径不变);原国别域名(如global-in-openapi.toppayment.com)仍可用。
| 环境 | 地址 |
|---|---|
| 沙箱 | https://openapi.toppayment.com/sandbox/in/disbursement/cash |
| 生产 | https://openapi.toppayment.com/in/disbursement/cash |
代付 bankCode / bankName 见 地区支付说明 — 印度 — 代付银行编码。
请求头
| 字段 | 必填 | 类型 | 描述 |
|---|---|---|---|
| Content-Type | M | String | HTTP内容类型规范 固定值:application/json 正确解析请求所必需 |
请求体
| 字段 | 必填 | 类型 | 描述 |
|---|---|---|---|
| mchNo | M | String(32) | 商户编号 平台分配的唯一商户标识符 用于商户认证和交易路由 |
| orderNum | M | String(50) | 商户订单号 唯一交易标识符 格式:字母数字字符串 用于交易跟踪和参考 |
| amount | M | Number(32,8) | 交易金额 格式:数值类型 示例:100 |
| bankCode | M | String(32) | 银行代码(印度代付) 见 地区支付说明 — 印度 中「代付银行编码」 |
| bankCard | M | String(50) | 银行卡号/账户号 收款人的银行账户号码或钱包账号 格式:数字字符串 |
| accountName | M | String(50) | 账户名 收款人账户名称 格式:UTF-8编码字符串 |
| description | O | String(255) | 描述 交易目的或描述 格式:UTF-8编码字符串 |
| feeType | M | Number(0或1) | 手续费类型 0 : 代付金额内扣除(实际到账金额=下单金额-手续费) 1 : 手续费另计(实际到账金额=下单金额) |
| downNotifyUrl | M | String(164) | 异步通知地址 交易状态更新的Webhook通知URL 格式:有效的HTTP/HTTPS URL 用于实时交易状态通知 |
| timestamp | M | String(13位数字) | 时间戳 请求时间戳 示例:1749451858772 |
| sign | M | String | 签名 请求认证的数字签名 参见签名生成 |
请求体示例 – 付款请求(示例为 HDFC,bankCode 以实际文档为准):
Content-type: application/json
{
"mchNo": "{{mchNo}}",
"orderNum": "INPAYOUT1234561",
"amount": 1000,
"bankCode": "HDFC",
"bankCard": "50100123456789",
"accountName": "Rajesh Kumar",
"description": "test",
"feeType": 1,
"downNotifyUrl": "https://example.com/notify",
"timestamp": "1749451858772",
"sign": "按签名规则生成后替换"
}
响应
HTTP响应
| 字段 | 必填 | 类型 | 描述 |
|---|---|---|---|
| Content-Type | M | String | HTTP响应内容类型规范 固定值:application/json 指示JSON响应格式 |
响应字段
| 字段 | 必填 | 类型 | 描述 |
|---|---|---|---|
| success | M | Boolean | 请求是否成功 true:成功,false:失败 |
| code | M | String | 响应状态码 9999:成功 其他:请根据订单状态码判断,不能直接处理订单失败,以免造成资金损失 |
| msg | O | String | 响应消息 可读的响应状态描述 包含订单详细信息 |
| timeStamp | M | Number | 响应时间戳 服务器响应时间(毫秒级) |
| data | M | Object | 响应数据对象 包含交易详细信息 |
| orderNum | M | String | 商户订单号 与请求中提供的orderNum相同 用于交易跟踪和参考 |
| platOrderNum | M | String | 平台订单号 系统生成的内部交易参考号 用于内部交易管理和支持 |
| amount | M | Number | 交易金额 确认的交易金额 |
| fee | M | Number | 手续费 交易产生的手续费 |
| feeType | M | Number | 手续费类型 1:商户承担手续费 |
| status | M | Number | 交易状态 订单当前处理状态码 |
| statusMsg | M | String | 状态消息 订单状态的文字描述 |
| bankCode | M | String | 银行代码(印度) 含义见 地区支付说明 — 印度 |
| bankCard | M | String | 银行卡号/账户号 收款人的银行账户号码或钱包账号 |
| accountName | M | String | 账户名 收款人账户名称 |
| description | O | String | 描述 交易目的或描述 |
响应示例
Content-type: application/json
{
"success": true,
"code": "9999",
"msg": "SUCCESS",
"timeStamp": 1767772957433,
"data": {
"orderNum": "INPAYOUT12345617",
"platOrderNum": "TRANS2008811496544403456",
"amount": 1000,
"fee": 20,
"feeType": 1,
"status": 1,
"statusMsg": "ORDER_RECEIVED_PROCESSING",
"bankCode": "HDFC",
"bankCard": "50100123456789",
"accountName": "Rajesh Kumar",
"description": "test"
}
}
通知
HTTP请求
| 字段 | 必填 | 类型 | 描述 |
|---|---|---|---|
| Content-Type | M | String | HTTP请求内容类型规范 固定值:application/json 指示JSON请求格式 |
通知体
| 字段 | 必填 | 类型 | 描述 |
|---|---|---|---|
| platOrderNum | M | String | 平台订单号 系统生成的内部交易参考号 用于内部交易管理和支持 |
| version | M | String | 版本号 接口版本标识 示例:v1 |
| orderNum | M | String | 商户订单号 与原始请求中提供的orderNum相同 用于交易识别和验证 |
| amount | M | Number | 交易金额 确认的交易金额 |
| fee | M | Number | 手续费 交易产生的手续费 |
| feeType | M | Number | 手续费类型 1:商户承担手续费 |
| status | M | Number | 交易状态 取值见 交易状态码 |
| statusMsg | M | String | 状态消息 订单状态的文字描述 |
| bankCode | M | String | 银行代码(印度) 见 地区支付说明 — 印度 |
| bankCard | M | String | 银行卡号/账户号 |
| accountName | M | String | 账户名 |
| description | O | String | 描述 |
| sign | M | String | 签名 回调数据的数字签名 |
返回
重要响应
通知响应: 请仅返回字符串
SUCCESS以确认收到通知
{
"platOrderNum": "TRANS2008812168572567552",
"version": "v1",
"orderNum": "INPAYOUT12345648",
"amount": 1110,
"fee": 30,
"feeType": 1,
"status": 2,
"statusMsg": "supplement success!",
"bankCode": "HDFC",
"bankCard": "50100123456789",
"accountName": "Rajesh Kumar",
"description": "test",
"sign": "KCitZCmhtuoGtVOl/EC4Mn1vwf3QRkoL9Ged0psKiCzATvP0AePNc8P1PEcWrbJYAPctewCRO9jW+vHjtXrh6ozk2OUvVDUlLTiM3PS7ydpeogy+W6w3b4OZDg5vUtaTVwz5mpEKBZv/XEhOes1C16+ec36PLp3Mi0Y0g4ivgwk="
}
SUCCESS
