入款下单
接口地址
POST /v1/api/deposit请求
请求参数
| 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
mcode | 是 | string | M10086 | 商户 ID |
tno | 是 | string | T202608020001 | 商户侧订单号 |
amt | 是 | string | 126.35 | 订单金额 |
chnl | 是 | string | CHNL_CODE | 渠道 code |
ip | 否 | string | 127.0.0.1 | 发起支付请求客户端 IP |
rtn_url | 否 | string | https://example.com/return | 同步返回地址 |
ntf_url | 是 | string | https://example.com/notify | 异步通知地址 |
ts | 是 | string | 1785138705251 | 请求毫秒时间戳 长度13位 |
extra | 否 | string | remark=demo | 扩展参数 |
acct | 否 | object | { "name": "Tom" } | 参考下方acct例子 |
| ─ ─ 账户名 | acct.name | string | 入款账户名/姓名 | |
| ─ ─ 账户号 | acct.number | string | 入款账户/账户号 | |
| ─ ─ 手机号 | acct.phone | string | 入款电话/手机号 | |
| ─ ─ 邮箱 | acct.email | string | 入款邮箱 | |
| ─ ─ 银行 | acct.bank | string | 入款银行/银行代码(当同时要求提供 bank_code、bank_name 时,该字段为 bank_code,否则为银行名称) | |
| ─ ─ 姓氏 | acct.first_name | string | 入款 KYC first_name | |
| ─ ─ 姓氏 | acct.last_name | string | 入款 KYC last_name | |
| ─ ─ 银行名称 | acct.bank_name | string | 入款银行名称(当同时要求提供 bank_code、bank_name 时使用) | |
| ─ ─ 用户ID | acct.user_id | string | 入款用户ID,产品唯一ID。长度限制64 | |
sign | 是 | string | c380be... | 签名值 |
请求示例
{
"mcode": "M10086",
"tno": "T202608020001",
"amt": "50.00",
"chnl": "cscn_cspb",
"ip": "127.0.0.1",
"rtn_url": "https://example.com/return",
"ntf_url": "https://example.com/notify",
"ts": "1785138705251",
"extra": "",
"sign": "9a9cba23f9075ff01b2ed2050f52f42d"
}关于 acct 字段
不同国家以及不同渠道对 acct 字段的要求存在差异。代码层面建议:
- 在无法获取用户真实信息时,直接传递格式合法的占位内容;
- 若目标国家明确要求提供真实信息,则必须传递正常/真实的信息,否则可能影响入款到账。
不同国家acct可能样例
PH
{
"...",
"acct": {
"name": "Juan Dela Cruz"
},
"..."
}PK
{
"...",
"acct": {
"name": "Muhammad Ali",
"number": "03001234567"
},
"..."
}BD
{
"...",
"acct": {
"name": "Mohammad Rahman",
"number": "01712345678"
},
"..."
}ID
{
"...",
"acct": {
"name": "Budi Santoso",
"number": "081234567890"
},
"..."
}VN
{
"...",
"acct": {
"name": "Nguyễn Văn A",
"number": "0901234567",
"phone": "0901234567",
"email": "[email protected]",
"bank": "VCB",
"last_name": "Nguyễn",
"bank_name": "Ngân hàng Ngoại thương Việt Nam",
"user_id": "U10086001"
},
"..."
}TH
{
"...",
"acct": {
"name": "สมชาย ใจดี",
"number": "0812345678",
"phone": "0812345678",
"email": "[email protected]",
"bank": "KBANK",
"first_name": "ใจดี",
"last_name":"xxx",
"bank_name": "ธนาคารกสิกรไทย",
"user_id": "U10086002"
},
"..."
}JP
{
"...",
"acct": {
"name": "山田太郎"
},
"..."
}IN
{
"...",
"acct": {
"name": "Rajesh Kumar",
"number": "9876543210"
},
"..."
}不同国家acct.bank 可选表(如没有则没有特殊要求)
TH
BANK TRANSFER
| Code | Bank |
|---|---|
KBank | KASIKORN BANK (KBANK) |
KrungThaiBank | KRUNG THAI BANK (KTB) |
SCBBank | SIAM COMMERCIAL BANK (SCB) |
KrungsriBank | KRUNGSRI BANK (BAY) |
BangkokBank | BANGKOK BANK |
BAACBank | BANK FOR AGRICULTURE AND AGRICULTURAL COOPERATIVES (BAAC) |
TTBBank | THANACHART BANK (TTB) |
GSBBank | GOVERNMENT SAVINGS BANK (GSB) |
CimbBankTH | CIMB THAI |
LHBank | LAND AND HOUSES BANK |
KKPBank | KIATNAKIN PHATRA BANK |
GHBank | GOVERNMENT HOUSING BANK |
UOBBankTH | UOB THAI |
QRPAY
| Code | Bank |
|---|---|
PromptPaySCB | SCB PROMPTPAY QR |
PromptPayKTB | KTB PROMPTPAY QR |
PromptPayBAY | BAY PROMPTPAY QR |
PromptPayGSB | GSB PROMPTPAY QR |
PromptPayKBANK | KBANK PROMPTPAY QR |
PromptPayTTB | TTB PROMPTPAY QR |
PromptPayBBL | BBL PROMPTPAY QR |
PromptPayKKP | KKP PROMPTPAY QR |
PromptPayUOB | UOB PROMPTPAY QR |
PromptPayGHB | GHB PROMPTPAY QR |
PromptPayLHB | LHB PROMPTPAY QR |
PromptPayBAAC | BAAC PROMPTPAY QR |
返回
关于response的判定
由于近期BDT,IDR上游更换频繁的问题,导致原本的直接返回下单错误的不友好情况.近期作出调整,不再直接返回上游下单失败错误
response 的http状态是200,且 response中code必须是0 (这个约定和之前一致)
response的data中的url或者data不是空。才表示“拿到了”正常结果。否则跟据msg返回的信息做错误提示或自行处理
返回参数
| 字段名 | 变量名 | 类型 | 描述 |
|---|---|---|---|
| 状态码 | code | number | 响应码,0 表示成功 |
| 响应数据 | data | object | 响应数据对象 |
| ─ 商户号 | data.mcode | string | 商户 ID |
| ─ 平台订单号 | data.sn | string | 平台订单号 |
| ─ 商户订单号 | data.tno | string | 商户订单号 |
| ─ 金额 | data.amt | string | 订单金额 |
| ─ 手续费 | data.fee | string | 手续费 |
| ─ 跳转地址 | data.url | string | 收银台地址 |
| ─ 订单状态 | data.sts | string | 订单状态 |
| ─ 创建时间 | data.ctm | string | 创建时间 |
| ─ 返回数据 | data.data | object | 原始返回数据,不同市场返回格式/字段可能不同 |
| ─ ─ 如款银行 | data.data.bank_name | string | 入款银行,不同市场可能存在或不存在 |
| ─ ─ 入款银行代码 | data.data.bank_code | string | 入款银行代码,不同市场可能存在或不存在 |
| ─ ─ 入款账号/卡号 | data.data.number | string | 入款账号/卡号,不同市场可能存在或不存在 |
| ─ ─ 入款账户名 | data.data.name | string | 入款账户名,不同市场可能存在或不存在 |
| ─ ─ 二维码 | data.data.qr | string | 二维码数据,不同市场可能存在或不存在 |
| ─ ─ 参考号/凭据号 | data.data.ref | string | 参考号/凭据号,不同市场可能存在或不存在 |
| ─ ─ 链接数据 | data.data.link | string | 链接数据,不同市场可能存在或不存在 |
| ─ ─ 附言/备注 | data.data.remark | string | 附言/备注,不同市场可能存在或不存在 |
| ─ 签名 | data.sign | string | 返回签名 |
返回示例
{
"code": 0,
"data": {
"mcode": "B342342",
"sn": "D13JKXGHXZTEL55CO",
"tno": "bbbb1787749056295",
"amt": "120.00",
"fee": "7.20",
"url": "https://example.com/payurl.html",
"data": {
"acct": "dp acct",
"number": "dp number",
"qr": "qrqrqr",
"ref": "dp ref"
},
"sts": "DS_SUBMIT",
"ctm": "2026-08-26T21:22:48+08:00",
"sign": "CVn+gu/gfuD55Cj6KuBPZPkmJtC+EuOBBw6Hsr5P/7U="
}
}不同国家返回data可能样例
PH
{
"...",
"data": {
"acct": "Juan Dela Cruz",
"ref": "PH123456789"
},
"..."
}PK
{
"...",
"data": {
"acct": "Muhammad Ali",
"number": "03001234567"
},
"..."
}BD
{
"...",
"data": {
"acct": "Mohammad Rahman",
"number": "01712345678"
},
"..."
}ID
{
"...",
"data": {
"acct": "Budi Santoso",
"number": "081234567890",
"ref": "ID-REF-8899"
},
"..."
}VN
{
"...",
"data": {
"acct": "LE THI HUYNH NHU",
"bank": "ACBNEW",
"number": "26316681",
"qr": "00020101021138520010A000000727012200069704160108263166810208QRIBFTTA530370454061230005802VN62220818CHUYEN KHOAN68A0RG6304DBB2",
"remark": "CHUYEN KHOAN68A0RG",
"user_id": "444444"
},
"..."
}TH
{
"...",
"data": {
"qr": "000201010211...",
"ref": "THB-55667788"
},
"..."
}JP
{
"...",
"data": {
"acct": "山田太郎"
},
"..."
}IN
{
"...",
"data": {
"acct": "Rajesh Kumar",
"number": "9876543210",
"qr": "upi://pay?pa=xxx@upi&pn=Rajesh"
},
"..."
}