创建付款(Create Payout)
商户调用本接口向收款人发起付款。系统受理后返回统一付款单号和初始状态。
资金安全提示
- 同一个
merchantOrderId只能发起一次付款,请勿使用相同商户订单号重复提交。 - 订单状态未明确时,请先调用付款查询或等待付款结果通知,切勿重复发起付款。
- 如果订单状态为失败,请先联系 Velora 确认订单最终结果,再决定是否使用新的商户订单号重新发起。
重复提交可能造成重复付款及贵司资金损失,请务必做好订单幂等控制。
请求说明
- 方法:
POST - 路径:
/api/v1/payout/createPayout - Content-Type:
application/json - 鉴权:参考 接入准备
请求字段
| 字段名 | 类型 | 长度 / 限制 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
merchantOrderId | string | ≤ 64 字符 | 是 | PAYOUT_1786700000721_DDHTLU | 商户付款订单号,商户维度唯一 |
country | string | 2 字符,ISO-3166 | 是 | RU | 二位国家代码 |
amount | object | — | 是 | — | 付款金额,见 amount 对象 |
payoutMethod | object | — | 是 | — | 付款方式,见 payoutMethod 对象 |
beneficiary | object | — | 是 | — | 收款人信息,见 beneficiary 对象 |
notifyUrl | string | ≤ 256 字符,URL | 是 | https://merchant.example/payout/callback | 付款结果异步通知地址 |
description | string | ≤ 256 字符 | 是 | Payout test order | 附言需简要说明订单付款目的、出款合同号(ContractNo,建议包含日期)及用户全名(须与护照一致)。未按要求填写可能触发系统风控 |
amount 对象
| 字段名 | 类型 | 长度 / 限制 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
value | string | 数值大于 0,字符串长度 ≤ 12 | 是 | 100.00 | 付款金额 |
currency | string | 3 字符,ISO-4217 | 是 | RUB | 三位币种代码 |
payoutMethod 对象
| 字段名 | 类型 | 长度 / 限制 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
type | string | 枚举:bank | 是 | bank | 付款方式类型 |
bank | object | — | 条件必填 | — | 当 type 为 bank 时必须上送的银行付款信息 |
payoutMethod.bank 对象
| 字段名 | 类型 | 长度 / 限制 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
payoutBrand | string | ≤ 20 字符 | 是 | sbp | 付款品牌 |
accountNumber | string | ≤ 128 字符 | 是 | 79261234567 | 收款账户号码;当 payoutBrand 为 sbp 时,请使用以 7 开头的 11 位账户号,例如 79261234567 |
bankCode | string | ≤ 32 字符 | 是 | NORVIK | 收款银行代码;通过获取付款支持参数查询当前付款品牌支持的值 |
提交 sbp/RU/RUB 银行付款时,bankCode 必须与支持参数接口返回的编码完全一致,否则请求将返回 C0002。
beneficiary 对象
| 字段名 | 类型 | 长度 / 限制 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
type | string | 枚举:individual | 是 | individual | 收款人类型 |
name | object | — | 是 | — | 收款人姓名 |
phone | string | ≤ 50 字符 | 是 | 09171234567 | 收款人手机号 |
email | string | ≤ 254 字符 | 否 | test@example.com | 收款人邮箱 |
beneficiary.name 对象
| 字段名 | 类型 | 长度 / 限制 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
firstName | string | ≤ 64 字符 | 是 | Test | 名 |
lastName | string | ≤ 64 字符 | 是 | User | 姓 |
请求示例
json
{
"merchantOrderId": "PAYOUT_1786700000721_DDHTLU",
"country": "RU",
"amount": {
"value": "100.00",
"currency": "RUB"
},
"payoutMethod": {
"type": "bank",
"bank": {
"payoutBrand": "sbp",
"accountNumber": "79261234567",
"bankCode": "NORVIK"
}
},
"beneficiary": {
"type": "individual",
"name": {
"firstName": "Test",
"lastName": "User"
},
"phone": "09171234567",
"email": "test@example.com"
},
"notifyUrl": "*******",
"description": "Payout test order"
}响应示例
json
{
"result": {
"code": "S0000",
"msg": "Payout request accepted"
},
"data": {
"payoutId": "payout_20260814032225670788850",
"channelOrderId": "89821020319231231",
"merchantOrderId": "PAYOUT_1786677623288_5TI24J",
"status": "Processing",
"amount": {
"value": "100.00",
"currency": "RUB"
},
"createdAt": "2026-08-14T03:22:25+00:00",
"updatedAt": "2026-08-14T03:22:26+00:00"
}
}响应字段
| 字段名 | 类型 | 长度 / 限制 | 必返 | 说明 |
|---|---|---|---|---|
result | object | — | 是 | 请求受理结果 |
data | object | — | 成功时返回 | 创建成功后的付款订单信息 |
result 对象
| 字段名 | 类型 | 长度 / 限制 | 必返 | 示例值 | 说明 |
|---|---|---|---|---|---|
code | string | ≤ 32 字符 | 是 | S0000 | 返回码 |
msg | string | ≤ 255 字符 | 是 | Payout request accepted | 返回信息 |
data 对象
| 字段名 | 类型 | 长度 / 限制 | 必返 | 示例值 | 说明 |
|---|---|---|---|---|---|
payoutId | string | ≤ 64 字符 | 是 | payout_20260814032225670788850 | Velora 付款单号 |
channelOrderId | string | ≤ 64 字符 | 否 | 89821020319231231 | PSP 通道订单号 |
merchantOrderId | string | ≤ 64 字符 | 是 | PAYOUT_1786677623288_5TI24J | 商户付款订单号 |
status | string | 枚举 | 是 | Processing | 付款订单状态 |
amount | object | — | 是 | — | 付款金额 |
createdAt | string | ISO 8601 | 是 | 2026-08-14T03:22:25+00:00 | 付款订单创建时间 |
updatedAt | string | ISO 8601 | 是 | 2026-08-14T03:22:26+00:00 | 付款订单更新时间 |
data.amount 对象
| 字段名 | 类型 | 长度 / 限制 | 必返 | 示例值 | 说明 |
|---|---|---|---|---|---|
value | string | 数值字符串 | 是 | 100.00 | 付款金额 |
currency | string | 3 字符,ISO-4217 | 是 | RUB | 三位币种代码 |