Virtual Account
Tạo Tài khoản định danh (Tài khoản ảo).
Tài khoản định danh (Tài khoản ảo) là tài khoản phụ liên kết trực tiếp với tài khoản chính của khách hàng. Số Tài khoản định danh được thiết kế và hiển thị dưới dạng dãy chữ/số ký tự tuân theo cấu trúc VA do bankHub cung cấp.
Tài khoản định danh có chức năng là số tài khoản thụ hưởng của khách hàng, giúp quản lý khoản phải thu dễ dàng, giảm thiểu số lượng tài khoản chuyên thu tại các ngân hàng, chủ động trong việc tạo và quản lý các số Tài khoản định danh thuận tiện cho người dùng.
Các bước tích hợp Virtual Account
Dưới đây là các bước để tích hợp Virtual Account vào sản phẩm của bạn.
- Tạo một phân quyền /grant/token với
scopes
làvirtual_account
,virtualAccountNumber
có giá trị được thiết lập theo cấu trúc phía bankHub cung cấp cho bạn vàfiServiceId
mã dịch vụ tài chính đăng ký VA này.
- virtualAccountNumber: sẽ được cấu hình riêng cho mỗi ứng dụng và mỗi dịch vụ tài chính tương ứng.
- fiServiceId: bạn có thể gọi API /fi-services để lấy thông tin.
-
Mở giao diện bankHub Link bằng
grantToken
được trả về ở bước trên. Xem chi tiết -
Sau khi người dùng hoàn tất xác thực, phía giao diện của bạn sẽ nhận được một publicToken, dùng publicToken này để lấy accessToken cho phân quyền.
-
Sau khi có
accessToken
, gọi API Lấy thông tin Tài khoản định danh để kiểm tra thông tin chi tiết của TK và bắt đầu thêm vào hệ thống của bạn. -
Kiểm tra VA hợp lệ với hệ thống của bạn, với trường hợp không hợp lệ gọi API /grant/remove để thực hiện xoá phân quyền.
Gọi API
Tạo phân quyền cho Virtual Account
- CURL
- Javascript (Axios)
curl --location 'https://sandbox.bankhub.dev/grant/token' \
--header 'X-BankHub-Api-Version: 2023-01-01' \
--header 'x-client-id: <CLIENT_ID_HERE>' \
--header 'x-secret-key: <SECRET_KEY_HERE>' \
--header 'Content-Type: application/json' \
--data '{
"scopes": "virtual_account",
"language": "vi",
"redirectUri": "https://your-domain.vn/link",
"fiServiceId": "ebf7fe6d-af63-11ee-aa7e-42010a400022",
"virtualAccountNumber": "V3CASLWXF4RGGY6"
}'
const axios = require('axios');
const data = JSON.stringify({
"scopes": "virtual_account",
"language": "vi",
"redirectUri": "https://your-domain.vn/link",
"fiServiceId": "ebf7fe6d-af63-11ee-aa7e-42010a400022",
"virtualAccountNumber": "V3CASLWXF4RGGY6"
});
const config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://sandbox.bankhub.dev/grant/token',
headers: {
'X-BankHub-Api-Version': '2023-01-01',
'x-client-id': '<CLIENT_ID_HERE>',
'x-secret-key': '<SECRET_KEY_HERE>',
'Content-Type': 'application/json'
},
data: data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Xem chi tiết API, tại đây
Lấy accessToken từ publicToken
- CURL
- Javascript (Axios)
curl --location 'https://sandbox.bankhub.dev/grant/exchange' \
--header 'X-BankHub-Api-Version: 2023-01-01' \
--header 'x-client-id: <CLIENT_ID_HERE>' \
--header 'x-secret-key: <SECRET_KEY_HERE>' \
--header 'Content-Type: application/json' \
--data '{
"publicToken": "bdbde2bad-7685-4f95-987c-71309a4a3"
}'
const axios = require('axios');
const data = JSON.stringify({
"publicToken": "bdbde2bad-7685-4f95-987c-71309a4a3"
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://sandbox.bankhub.dev/grant/exchange',
headers: {
'X-BankHub-Api-Version': '2023-01-01',
'x-client-id': '<CLIENT_ID_HERE>',
'x-secret-key': '<SECRET_KEY_HERE>',
'Content-Type': 'application/json'
},
data: data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Xem chi tiết API, tại đây
Lấy thông tin Tài khoản định danh
- CURL
- Javascript (Axios)
curl --location 'https://sandbox.bankhub.dev/virtual-account/identity' \
--header 'X-BankHub-Api-Version: 2023-01-01' \
--header 'Authorization: <ACCESS_TOKEN_HERE>' \
--header 'x-client-id: <CLIENT_ID_HERE>' \
--header 'x-secret-key: <SECRET_KEY_HERE>'
const axios = require('axios');
let config = {
method: 'get',
maxBodyLength: Infinity,
url: 'https://sandbox.bankhub.dev/virtual-account/identity',
headers: {
'X-BankHub-Api-Version': '2023-01-01',
'Authorization': '<ACCESS_TOKEN_HERE>',
'x-client-id': '<CLIENT_ID_HERE>',
'x-secret-key': '<SECRET_KEY_HERE>'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Xem chi tiết API, tại đây