Chuyển tới nội dung chính

Webhook thông báo giao dịch

Quy trình

Mô tả: Baokim gửi thông báo kết quả giao dịch tới Merchant sau khi nhận tiền từ khách hàng qua VA.

Thông tin API

Method: POST

URL /api/merchant-hosted/bank-transfer/notification

Request

(Tham số Baokim gửi cho Merchant)

Bảng tham số chính

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1request_idString(50)ID duy nhất của request từ Baokim gửi sang Merchant
2request_timeDatetimeThời gian gửi request. Format: YYYY-MM-DD H:m:s
3merchant_codeString(30)Mã định danh Merchant trên hệ thống Baokim
4store_codeStringMã cửa hàng
5staff_codeStringMã nhân viên
6signatureStringChữ ký số xác thực request từ Baokim
7transactionObjectThông tin giao dịch
8va_infoObjectThông tin tài khoản VA

Thông tin transaction

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1idIntegerMã giao dịch trên Baokim
2order_idIntegerID đơn hàng liên kết
3mrc_order_idString(50)Mã đơn hàng merchant
4typeInteger1 = Thanh toán, 2 = Hoàn tiền
5payment_methodInteger1 = VA
6merchant_feeIntegerPhí merchant chịu
7user_feeIntegerPhí user chịu
8total_amountIntegerTổng tiền giao dịch (bao gồm phí)
9amountIntegerSố tiền merchant thực nhận
10descriptionStringMô tả nội dung giao dịch
11statusInteger1 = Thành công
12bank_codeString(19)Mã ngân hàng
13completed_atDatetimeThời gian thành công
14created_atDatetimeThời gian tạo
15updated_atDatetimeThời gian cập nhật

Thông tin va_info

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1bank_nameString(255)Tên ngân hàng VA
2bank_branchString(255)Chi nhánh ngân hàng
3acc_noString(50)Số tài khoản định danh
4acc_nameString(255)Tên người nhận
5qr_stringStringMã QR dạng text
6qr_pathStringĐường dẫn ảnh QR

Ví dụ Request

{
"request_id": "req_20250717154500123",
"request_time": "2025-07-07 12:00:00",
"merchant_code": "MERCHANT001",
"store_code": "STORE001",
"staff_code": "STORE001",
"transaction": {
"id": 555002,
"order_id": 987654322,
"mrc_order_id": "ORDER20250717_002",
"type": 1,
"payment_method": 1,
"merchant_fee": 10000,
"user_fee": 0,
"total_amount": 2000000,
"amount": 1990000,
"description": "Thanh toán đơn hàng qua tài khoản định danh (VA)",
"status": 1,
"bank_code": "VCB",
"completed_at": "2025-07-17 15:45:00",
"created_at": "2025-07-17 15:43:00",
"updated_at": "2025-07-17 15:45:00"
},
"va_info": {
"bank_name": "Ngân hàng TMCP Ngoại Thương Việt Nam (Vietcombank)",
"bank_branch": "Chi nhánh Hà Nội",
"acc_no": "0123456789012",
"acc_name": "Nguyen Van A",
"qr_string": "00020101021238550010A0000007270123000697040300000000000020386304C3A4",
"qr_path": "https://sandbox.baokim.vn/qr/BK987654322.png"
},
"signature": "0xd329a892110ff6a76cdaf650f6e78fcdf1a79eb0c9f6a5a91bd6aa12be223c05"
}

Response

(Merchant trả lại cho Baokim)

Quan trọng

Merchant cần response HTTP 200 với body xác nhận đã nhận thành công. Nếu không nhận được phản hồi hợp lệ, Baokim sẽ gửi lại webhook theo cơ chế retry.

Error Codes

codemessage
100Thành công
101Lỗi hệ thống
102Lỗi nhà cung cấp
104Lỗi xác thực JWT
105Chữ ký số không hợp lệ
106Số tiền đơn hàng không đủ để hoàn tiền
107Đơn hàng không thể hoàn
108Đơn hàng không thể hủy
109Đơn hàng không tồn tại
110Mã đơn hàng merchant đã tồn tại
422Lỗi validate