Bỏ qua để đến nội dung chính
Phiên bản: 1.2.2 (Latest)

Duyệt lệnh chi hộ

POST
URLhttps://open-api.tingee.vn/v1/direct-link/approve-transfer

Phê duyệt lệnh chi hộ (Checker)

Header Request​

HeaderBắt buộcMô tả
Content-Type✓application/json
x-client-id✓Mã định danh của đối tác do TINGEE cung cấp.
x-signature✓Chữ ký xác thực HMAC SHA512.
x-request-timestamp✓Thời gian gửi request (format: yyyyMMddHHmmssSSS, múi giờ UTC+7)

Body Parameter​

TrườngKiểuBắt buộcMô tả
bankBinstring✓Mã BIN ngân hàng. Hiện chỉ hỗ trợ 970418 (BIDV). API sử dụng phiên ủy quyền BIDV của vai trò Checker.
actionTypestring✓Loại lệnh chi hộ
- INTERNAL_TRANSFER: Chuyển tiền trong nước
- SALARY: Thanh toán Lương
- BILL_PAYMENT: Thanh toán Hóa đơn-Bảng kê
transactionIdsarray✓Danh sách mã giao dịch đang chờ duyệt cần phê duyệt (trường id trong kết quả Truy vấn giao dịch với inquiryType = PENDING_APPROVAL_LIST).

Ví dụ mã nguồn​

curl --location --request POST 'https://open-api.tingee.vn/v1/direct-link/approve-transfer' \
--header 'accept: application/json' \
--header 'x-client-id: YOUR_CLIENT_ID' \
--header 'x-request-timestamp: 20240509154004003' \
--header 'x-signature: YOUR_SIGNATURE' \
--header 'Content-Type: application/json' \
--data '{
"bankBin": "970418",
"actionType": "INTERNAL_TRANSFER",
"transactionIds": [
"PM0226061000074420"
]
}'

Response mẫu​

{
"code": "00",
"message": "Success",
"data": {
"successfulTransactions": [],
"failedTransactions": [],
"requireAuth": true,
"transAuth": {
"authType": "SMARTOTP",
"expTime": 120,
"qrData": "OTkwMDVCMDUwMDMyMTc4MTE0MjI4NDkwNS1kYjdjZWU3NC1hNTdjLTQxMjItODljZi1jZmEyYWNjMDkyZjgwNjAwMDQ3OTczMjAwMDEzQklEVklCQU5LX1RSQU5TX09UUA=="
},
"confirmId": "TXNKEY_APPROVAL_25607354makerotv_a8993883-d5fe-4ced-a0c0-20cff5b5120b",
"confirmUrl": null
}
}
TrườngKiểuMô tả
codestringMã kết quả (00 = Thành công).
messagestringThông điệp phản hồi.
dataobjectĐối tượng chứa kết quả phê duyệt giao dịch.
data.successfulTransactionsarrayDanh sách các giao dịch phê duyệt thành công (kết quả nguyên bản từ BIDV, mỗi phần tử có transactionId). Thường rỗng khi requireAuth = true — kết quả cuối cùng trả về ở bước xác nhận OTP.
data.failedTransactionsarrayDanh sách các giao dịch phê duyệt thất bại.
data.requireAuthbooleanCờ xác định có yêu cầu xác thực thêm hay không (VD: SmartOTP).
data.transAuthobjectThông tin xác thực thêm (chỉ có giá trị khi requireAuth = true, ngược lại là null).
data.confirmIdstringChuỗi key xác nhận. Khi requireAuth = true, truyền giá trị này cùng mã OTP vào API Xác nhận duyệt lệnh chi hộ để hoàn tất phê duyệt.
data.confirmUrlstringURL để người dùng xác nhận giao dịch (nếu BIDV trả về).
data.transactionobjectThông tin tóm tắt lệnh lô được duyệt (chỉ với SALARY / BILL_PAYMENT), gồm: id (mã giao dịch), originId, status, amount, currency, feeTotal, feeMethod, processDate, effectiveDate.

Chi tiết data.transAuth (khi requireAuth = true)​

TrườngKiểuMô tả
authTypestringPhương thức xác thực (VD: SMARTOTP).
expTimenumberThời gian hiệu lực của mã QR (tính bằng giây).
qrDatastringChuỗi dữ liệu dùng để render hình ảnh QR Code; quét bằng ứng dụng BIDV Direct để lấy mã SmartOTP.

Mã lỗi thường gặp​

CodeMô tảHướng xử lý
1077Phiên ủy quyền BIDV của người duyệt (Checker) đã hết hạn hoặc chưa được cấpGọi Lấy đường dẫn xác thực với role = Checker để ủy quyền lại, sau đó gửi lại yêu cầu duyệt.
1021Ngân hàng không được hỗ trợ cho API nàyKiểm tra bankBin; API này chỉ hỗ trợ BIDV (970418).
90, 91, 92, 97Lỗi xác thực request (timestamp, client-id, chữ ký)Xem Mã lỗi hệ thống.
OthersLỗi khácXem Danh sách mã lỗi.