Skip to main content
Version: 1.1.0 (Latest)

Tạo phiên liên kết

API này cho phép máy chủ của đối tác (Backend) khởi tạo một phiên liên kết tài khoản ngân hàng (Bank Link Session) trên hệ thống Tingee và nhận về một URL SDK bảo mật.

POST
URLhttps://open-api.tingee.vn/v1/create-bank-link-session

Tạo một phiên liên kết tài khoản ngân hàng để lấy URL SDK hiển thị ở client.

1. Request Headers

HeaderKiểuBắt buộcMô tả
Content-TypestringĐịnh dạng dữ liệu. Bắt buộc: application/json
x-client-idstringClient ID được Tingee cấp cho đối tác.
x-request-timestampstringThời gian gửi request (format: yyyyMMddHHmmssSSS, ví dụ: 20260701153045999).
x-signaturestringChữ ký HMAC-SHA512 xác thực tính toàn vẹn của dữ liệu request. Chi tiết xem tại Cách sinh chữ ký.

2. Request Body (JSON)

Thuộc tínhKiểu dữ liệuBắt buộcMô tả
typestringLoại session. Giá trị: bank-link hoặc bank-config. Mặc định của đối tác là bank-link. Nếu cần mở màn cấu hình, truyền bank-config.
shopIdnumberID cửa hàng cần liên kết tài khoản ngân hàng sau khi hoàn tất.
allowedBanksarray[string]Danh sách mã ngân hàng được hiển thị trong SDK (ví dụ: ["BIDV", "VCB", "ACB"]). Nếu không truyền, hệ thống hiển thị toàn bộ ngân hàng được hỗ trợ.
bankNamestringChỉ định mã một ngân hàng duy nhất để tự động khóa luồng và chuyển khách hàng vào thẳng giao diện liên kết của ngân hàng đó.
redirectUrlstringURL của bạn để chuyển tiếp trình duyệt của khách hàng sau khi hoàn tất liên kết trên SDK di động hoặc web.
merchantIdnumberID Merchant. Chỉ bắt buộc và được truyền khi sử dụng tài khoản Master Merchant để tạo session cho một Merchant con.

Ví dụ Request Body:

{
"shopId": 123,
"type": "bank-link",
"allowedBanks": ["BIDV", "VCB", "ACB"],
"redirectUrl": "https://merchant.example.vn/bank-link/callback"
}

3. Response Dữ Liệu

Tingee OpenAPI sẽ trả về kết quả dưới dạng JSON:

Thuộc tínhKiểu dữ liệuMô tả
codestringMã trạng thái kết quả. 00 biểu thị khởi tạo thành công.
messagestringThông báo mô tả trạng thái phản hồi.
datastringĐường dẫn URL SDK liên kết ngân hàng hoàn chỉnh chứa token bảo mật.

Ví dụ Response Thành công:

{
"code": "00",
"message": "Success",
"data": "https://uat-bank-link.tingee.vn?token=eyJtZXJjaGFudElkIjoxMDAxfQ&s=7d5b6e..."
}

Ví dụ Response Lỗi:

{
"code": "97",
"message": "Invalid signature",
"data": null
}

Danh sách mã lỗi nghiệp vụ:

Mã lỗiÝ nghĩaHướng xử lý
90Sai định dạng timestampĐảm bảo đúng định dạng yyyyMMddHHmmssSSS.
91Request quá hạnĐồng bộ lại thời gian máy chủ của bạn với múi giờ UTC+7.
92Sai credentialsKiểm tra lại x-client-id hoặc cấu hình Merchant.
97Sai chữ kýKiểm tra lại secretToken và thuật toán sinh signature.

4. Ví dụ Backend (Node.js)

Dưới đây là mã nguồn minh họa cách gọi API tạo session liên kết từ máy chủ của bạn:

// timestamp và signature được sinh theo hướng dẫn tại mục "Bắt đầu ngay"
export async function createBankLinkSession(timestamp, signature) {
const body = {
shopId: 123,
type: 'bank-link',
redirectUrl: 'https://merchant.example.vn/bank-link/callback'
};

const response = await fetch(`${process.env.TINGEE_OPEN_API_URL}/v1/create-bank-link-session`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-client-id': process.env.TINGEE_CLIENT_ID,
'x-request-timestamp': timestamp,
'x-signature': signature
},
body: JSON.stringify(body)
});

const result = await response.json();
if (result.code !== '00') {
throw new Error(`[${result.code}] ${result.message}`);
}

// data chính là URL SDK hoàn chỉnh dùng ở Client
return {
url: result.data
};
}