越南支付接口
2096字约7分钟
注意
阅读该接口文档前,务必先查看 接口说明
限额
交易类型 | 限额(单位:VND) |
---|---|
代收 | 5万-1亿 |
代付 | 10万-1千万 |
账户余额查询
URL:/common/openapi/account/balance
param 参数:
参数名 | 必选 | 固定值 | 说明 |
---|---|---|---|
country | 是 | VNM | 国家编码 |
currency | 是 | VND | 币种 |
request
{
"param": {
"country": "VNM",
"currency": "VND",
},
"sign": "Gw6D0kuWlnngLMiSxQQ2Dz2ciZz4LUZ7gWA8dRkEbcsE+UoiTOy6T3g6vNvGUlz+vPV2aRHKZ6aPBh0PaJkWW36T/lf8qId4D9uh8lFeTe7zW0+hTgTnN9YmruA6rlRNCo9QytbMRk6qkEZh1PZ2NrFnC77FhYVEVdOk6bIOv/vnGo1RVpbmsO+Gw+tPnvkQ1jvVDEHUlKgnAFGYa7+oWw8eClh9T4Ob7ZUPI0Z+dhefAmEX+z8DCyUxZrtbgA0li21KW2TmErIiRJQxep/f4quWRoTKkPziiMefKo1jFgbyL/gVzgkp91YaMMyk1QJKW1UoZ8iqHKNMI6pmvBCk8g=="
}
response
{
"code": 200,
"message": "",
"data": {
"merId": "",
"merName": "",
"currency": "",
"amountTotal": "0.00",
"freeAmount": "1085178690.00",
"unrecordedAmount": "0.00",
"freezeAmount": "1085178690.00",
"frzBal": "0.00",
"sign": "签名"
}
}
返回data参数说明
参数名 | 类型 | 说明 |
---|---|---|
merId | string | 商户号 |
merName | string | 商户名称 |
currency | string | 币种 |
amountTotal | BigDecimal | 总金额 |
freeAmount | BigDecimal | 可用金额 |
unrecordedAmount | BigDecimal | 在途金额 |
freezeAmount | BigDecimal | 冻结金额 |
sign | string | 签名 |
代付接口
代付下单
URL:/vnm/openapi/disburse
param参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
accountName | 是 | string | 银行账号名称 |
accountNumber | 是 | string | 银行账号 |
amount | 是 | number | 交易金额(小数点后尾数不带0, 例如: 禁止传输 123.40, 应传: 123.4 ) |
app | 否 | string | 应用名称 |
bankCode | 是 | string | 银行代码 |
channelCode | 是 | string | 支付渠道 |
currency | 是 | string | 币种:VND |
merchantOrderNo | 是 | string | 商户订单号 |
notifyUrl | 是 | string | 回调地址 |
timestamp | 是 | long | 交易时间戳(秒时间戳) |
request
{
"param": {
"accountName": "test",
"accountNumber": "123456789",
"amount": 100000,
"bankCode": "VB",
"channelCode": "bank",
"merchantOrderNo": "5825683320230508569",
"notifyUrl": "http://www.",
"timestamp": 1684591961
},
"sign": "111"
}
response
{
"code": 200,
"message": "操作成功",
"data": {
"merchantNo": "58256833",
"merchantOrderNo": "5825683320230508569",
"plaOrderNo": "1223050839733260230",
"bankCode": "VB",
"bankName": "VB",
"accountNumber": "123456789",
"accountName": "test",
"amount": "100000",
"status": "PENDING"
}
}
返回data参数说明
参数名 | 类型 | 说明 |
---|---|---|
accountName | string | 交易账号名称 |
accountNumber | string | 交易账号 |
amount | string | 订单金额 |
bankCode | string | 银行代码 |
bankName | string | 银行名称 |
merchantNo | string | 平台商户号 |
merchantOrderNo | string | 商户订单号 |
plaOrderNo | string | 平台订单号 |
status | string | 交易状态('PENDING','COMPLETED','FAILED') |
银行编码(代付)
bankCode | BANK NAME |
---|---|
VP | Ngân hàng TMCP Việt Nam Thịnh Vượng (VPBank) |
ACB | Ngân hàng TMCP Á Châu (ACB) |
BIDV | Ngân hàng Đầu tư và Phát triển Việt Nam (BIDV) |
VTB | Ngân hàng TMCP Công Thương (VietinBank) |
MB | Ngân hàng TMCP Quân Đội (MB) |
SAC | Ngân hàng TMCP Sài Gòn Thương Tín (Sacombank) |
VCB | Ngân hàng TMCP Ngoại Thương Việt Nam (Vietcombank) |
MSB | Ngân hàng TMCP Hàng Hải (MariTimeBank) |
HDB | Ngân hàng TMCP Phát Triển Nhà TP. Hồ Chí Minh (HDBank) |
NCB | Ngân hàng TMCP Quốc dân (NCB) |
TPB | Ngân hàng TMCP Tiên Phong (TienPhong Bank) |
NAB | Ngân hàng Nam Á (NamABank) |
SCB | Ngân hàng Thương Mại Cổ Phần Sài Gòn - SCB |
WCP | WeChat Pay |
GDB | Ngân hàng TMCP Bản Việt |
SEA | Ngân hàng TMCP Đông Nam Á |
EXB | Ngân hàng TMCP Xuất Nhập Khẩu (Eximbank) |
VIB | Ngân hàng TMCP Quốc tế (VIB) |
SHB | Ngân hàng TMCP Sài Gòn - Hà Nội (SHB) |
VAB | Ngân hàng TMCP Việt Á (VietA Bank) |
BAB | Ngân hàng TMCP Bắc Á |
AGB | Ngân hàng Nông nghiệp và Phát triển Nông thôn (Agribank) |
OJB | Ngân hàng TMCP Đại Dương (OceanBank) |
SGB | Ngân hàng Sài Gòn Công Thương |
ABB | Ngân hàng TMCP An Bình |
IVB | Ngân hàng trách nhiệm hữu hạn Indovina |
OCB | Ngân hàng TMCP Phương Đông |
BIDC | Ngân hàng đầu tư và phát triển Campuchia |
WRB | Ngân hàng WOORIL |
VB | Ngân hàng TMCP Việt Nam Thương Tín |
PVCOMBANK | Ngân hàng TMCP Đại chúng Việt Nam (PVcomBank |
VINID | Công ty cổ phần VinID |
SHNB | Ngân hàng Shinhan |
KLB | Ngân hàng Kiên Long Bank |
BVB | Ngân hàng BaoVietbank |
NVB | Ngân hàng Navibank |
代收接口
支付视频
网银转账:
momo钱包扫码:
viet钱包扫码:
QR收款
URL:/vnm/openapi/qrcode
param参数:
参数名 | 必选 | 类型 | 说明 | 注意 |
---|---|---|---|---|
accountNumber | 否 | string | 账号 | channelCode为momo_qr时必填 |
amount | 是 | number | 订单金额 | 单笔限额参考商务报价单 (小数点后尾数不带0, 例如: 禁止传输 123.40, 应传: 123.4 ) |
app | 否 | string | 应用名称 | |
bankCode | 否 | string | 银行代码 | 参考 银行代码(代收),channelCode为bank_qr时必填 |
channelCode | 是 | string | 支付渠道 | 参考 支付渠道(代收) |
currency | 否 | string | 币种 | 默认 VND |
merchantOrderNo | 是 | string | 商户订单号 | 长度小于等于 32 |
notifyUrl | 是 | string | 回调地址 | 交易完成通知地址 |
redirectUrl | 是 | string | 重定向地址 | 商户重定向地址 |
timestamp | 是 | integer | 交易时间戳 | 当前时间戳 |
customerName | 是 | string | 客户姓名 | 英语或越南语 |
是 | string | 邮箱 | 符合邮箱格式 | |
mobile | 是 | string | 真实手机号 | 符合越南真实手机号格式 |
request
{
"param": {
"accountNumber": "",
"amount": 50000,
"app": "NICE",
"bankCode": "VP",
"channelCode": "bank_qr",
"currency": "VDN",
"merchantOrderNo": "5825683320230508569",
"notifyUrl": "http://www.",
"redirectUrl": "http://www.",
"timestamp": 1684591961,
"customerName": "",
"email": "",
"mobile": ""
},
"sign": "111"
}
response
{
"code": 200,
"message": "操作成功",
"data": {
"merchantNo": "58256833",
"merchantOrderNo": "5825683320230508569",
"plaOrderNo": "1123050864351040473",
"bankCode": "VP",
"bankName": "VP BANK",
"amount": "50000",
"status": "PENDING",
"qrUrl": "",
"qrCode": "data:image/png;base64,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ze0t/QdYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgbQXrddpBbD8ieQrENFhbJra0dnxSNmABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAVDFbLkcRT5W+5OPYaTGnLGtovEgYWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYW8FK25R7bQD7ma3ntHHR/o8CsIAFLGABC1jAAhawgAUsP8ACFrCABSxgAQtYwAIWsNqXNbSkHbK0crbXT8vymqnf74hkYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgPV/X+DC59gvO+JUh9t6sW7LBast7QUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawnDg6C0Ha5uT2gZ3Wf9onTssagAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAtYOsFo+q289urdlwKf1w7QJuKXfPqkTYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAWsmM/2aZClLftIW67Rvnxk6/IdYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAWsrmUN7QMsrfybPsMngP66/JY1AAtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABayuI5JbYH3dgQAxO4ElA5E23oEFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAJWMlhbj3a99r5bf0/LBbEmJGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsICVCZaIyJcBlogAS0QEWCICLBERYImIAEtEgCUiAiwREWCJCLBERIAlIgIsEQGWiAiwRET+JX8BDOkSrumohIUAAAAASUVORK5CYII="
}
}
返回data参数说明
参数名 | 类型 | 说明 |
---|---|---|
amount | string | 订单金额 |
bankCode | string | 银行代码 |
bankName | string | 银行名称 |
merchantNo | string | 平台商户号 |
merchantOrderNo | string | 商户订单号 |
plaOrderNo | long | 平台订单号 |
qrCodeUrl | string | 支付url |
qrCode | string | 收款二维码(base64) |
status | string | 交易状态('PENDING','COMPLETED','FAILED') |
银行转账
URL:/vnm/openapi/qrcode
param参数:
参数名 | 必选 | 类型 | 说明 | |
---|---|---|---|---|
amount | 是 | number | 订单金额 | 单笔限额参考商务报价单, (尾数不带0, 例如: 禁止传输 123.40, 应传: 123.4 ) |
app | 否 | string | 应用名称 | |
bankCode | 是 | string | 银行代码 | 见附录 |
channelCode | 是 | string | 支付渠道 | 固定值: bank_transfer, ib_online |
currency | 否 | string | 币种 | 暂时默认本币 |
merchantOrderNo | 是 | string | 商户订单号 | |
notifyUrl | 是 | string | 回调地址 | 交易完成通知地址 |
redirectUrl | 是 | string | 重定向地址 | 商户重定向地址 |
timestamp | 是 | integer | 交易时间戳 | 当前时间戳 |
customerName | 是 | string | 客户姓名 | 英语或越南语 |
是 | string | 邮箱 | 符合邮箱格式 | |
mobile | 是 | string | 真实手机号 | 符合越南真实手机号格式 |
request
{
"param": {
"amount": 50000,
"app": "NICE",
"bankCode": "VP",
"channelCode": "bank_transfer",
"currency": "VDN",
"merchantOrderNo": "5825683320230508569",
"notifyUrl": "http://www.",
"redirectUrl": "http://www.",
"timestamp": 1684591961,
"customerName": "",
"email": "",
"mobile": ""
},
"sign": "111"
}
response
{
"code": 200,
"message": "操作成功",
"data": {
"merchantNo": "58256833",
"merchantOrderNo": "5825683320230508569",
"plaOrderNo": "1123050864351040473",
"bankCode": "VP",
"bankName": "VP BANK",
"amount": "50000",
"status": "PENDING",
"accountNumber": "",
"accountName": "",
"descCode": "",
"payUrl": ""
}
}
返回data参数说明
参数名 | 类型 | 说明 |
---|---|---|
amount | string | 订单金额 |
bankCode | string | 银行代码 |
bankName | string | 银行名称 |
merchantNo | string | 平台商户号 |
merchantOrderNo | string | 商户订单号 |
plaOrderNo | integer(int64) | 平台订单号 |
status | string | 交易状态'PENDING','COMPLETED','FAILED' |
accountNumber | string | 银行卡号 |
accountName | string | 账号名称 |
descCode | string | 转账备注 |
payUrl | string | 支付链接 |
支付渠道
渠道编码channelCode | 支付渠道描述 |
---|---|
momo_qr | momo电子钱包qr码 |
zalo_qr | zalo电子钱包qr码 |
viettel_qr | viettelpay电子钱包qr码 |
bank_qr | 银行qr码 |
银行代码
银行编码 | 银行名称 |
---|---|
VP | VP BANK |
ACB | ACB BANK |
BIDV | BIDV BANK |
VTB | VIETTIN BANK |
MB | MB BANK |
EXB | EXIM BANK |
SAC | SACOM |
VCB | VIETCOM BANK |
VIB | VIB BANK |
MSB | MSB BANK |
SHB | SHB BANK |
交易状态查询
URL:/vnm/openapi/orderStatus
param参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
plaOrderNo | 是 | String | 平台订单号 |
request
{
"param": {
"plaOrderNo": "1223050839733260230"
},
"sign": "111"
}
response — 订单成功
{
"code": 200,
"message": "操作成功",
"data": {
"merchantNo": "58256833",
"merchantOrderNo": "5825683320230508569",
"plaOrderNo": "1223050839733260230",
"channelCode": "bank_transfer",
"status": "COMPLETED",
"amount": "50000",
"fee": "600",
"merchantPayTime": "2023-05-08 11:13:21",
"plaStatusTime": "2023-05-08 11:13:41"
}
}
返回data参数说明
参数名 | 类型 | 说明 |
---|---|---|
amount | string | 订单金额 |
channelCode | string | 支付渠道 |
fee | string | 手续费 |
merchantNo | string | 平台商户号 |
merchantOrderNo | string | 商户订单号 |
merchantPayTime | string | 商户交易时间 |
plaOrderNo | long | 平台订单号 |
plaStatusTime | string | 平台订单状态流转时间 |
status | string | 支付状态('PENDING','COMPLETED','FAILED') |
订单回调通知
URL: 系统交易完成或余额不足时会发送回调到notify_url回调通知地址
响应: 接受请求后请返回“success”字符串给我们
请求方式:
- method: POST
- Content Type: application/json
body参数:
参数名 | 类型 | 说明 |
---|---|---|
amount | string | 订单金额 |
fee | string | 手续费 |
merchantNo | string | 平台商户号 |
merchantOrderNo | string | 商户订单号 |
merchantPayTime | string | 商户交易时间 |
plaOrderNo | long | 平台订单号 |
plaStatusTime | string | 平台订单状态流转时间 |
status | string | 支付状态('PENDING','COMPLETED','FAILED') |
errorCode | string | 错误编码(status为FAILED时有值) |
errorMessage | string | 错误信息(status为FAILED时有值) |
sign | string | 签名使用平台公钥验签(取reqeust body里的数据,) |
request
{
"merchantNo": "58256833",
"merchantOrderNo": "5825683320230508569",
"plaOrderNo": "1223050839733260230",
"status": "COMPLETED",
"amount": "100000",
"merchantPayTime": "2023-05-08 11:14:01",
"plaStatusTime": "2023-05-08 11:14:30",
"fee": "200",
"sign": "bXE1dI7TrjmRvIGrcfgBqMKhSCsTAtvtoZBd4GIl6NQOqd/8qGudTmX3WJn37NX+v8ehaSGUNSa+4ocAzWQlNQMqJ/OH2Hd+mViXjR2+6n3q4WsvHTzoDGR0VT85jT2cjR421RnnzaC/eLy/02Zx/j7y2snodVnzi6L3RfiY2gM="
}