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

Webhook thông báo kết quả giao dịch

Quy trình​

Mô tả:

  • Baokim gửi webhook cho Merchant khi mỗi giao dịch được duyệt vay hoặc bị huỷ trả chậm.
  • Merchant cần xây dựng API webhook để nhận thông báo này.
  • Baokim ký dữ liệu request gửi sang Merchant bằng SHA256withRSA.

Thông tin API​

Method: POST

URL: Merchant cung cấp

Header:

Content-Type: application/json
Signature: $signature

Request​

(Tham số Baokim gửi tới Merchant)

Bảng tham số chính​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1request_idString(100)✅ID duy nhất ứng với mỗi Request từ MERCHANT sang Baokim
2request_timeString(20)✅Thời gian gửi request. Format: YYYY-MM-DD H:i:s
3merchant_codeString(50)✅Mã định danh duy nhất cho đối tác: MERCHANT
4operationString✅Loại thao tác: PAYMENT hoặc REFUND
5dataObject✅Thông tin chi tiết giao dịch

Thông tin data​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1order_idNumber✅Mã đơn hàng Baokim
2mrc_order_idString(50)✅Mã đơn hàng Merchant
3merchant_codeString(50)✅Mã định danh Merchant
4customer_nameString(200)✅Tên đầy đủ khách hàng, không dấu, có khoảng trắng
5customer_phoneString(10)✅Số điện thoại khách hàng
6customer_emailString(255)✅Email khách hàng
7customer_addressString(500)✅Địa chỉ khách hàng
8package_codeString(255)✅Mã gói vay
9nameString(20)✅Tên gói vay
10periodNumber✅Kỳ hạn (1, 3, 6, 9, 12 tháng)
11min_amountNumber✅Số tiền tối thiểu áp dụng gói vay
12max_amountNumber✅Số tiền tối đa áp dụng gói vay
13down_payment_percentNumber✅% số tiền trả trước
14down_payment_amountNumber✅Số tiền trả trước
15original_amountNumber✅Số tiền đơn hàng
16user_feeNumber✅Phí người mua chịu
17merchant_feeNumber✅Phí người bán chịu
18total_paylater_amountNumber✅Tổng số tiền trả sau (đã tính phí)
19payment_per_periodNumber✅Số tiền trả mỗi kỳ
20total_amountNumber✅Tổng số tiền user cần thanh toán (trả trước + trả sau)
21difference_amountNumber✅Số tiền chênh lệch so với trả thẳng
22document_requiredString(4)✅Giấy tờ cần có (CCCD/CMND)
23provider_codeString(20)✅Tên tổ chức tài chính
24descriptionString(255)✅Mô tả đơn hàng
25url_successString(255)✅URL redirect khi duyệt vay thành công
26url_failString(255)✅URL redirect khi duyệt vay thất bại
27statusNumber✅Trạng thái giao dịch
28extensionObject✅Thông tin mở rộng (danh sách sản phẩm)
29created_atDatetime✅Thời gian tạo đơn hàng
30updated_atDatetime✅Thời gian cập nhật đơn hàng

Thông tin extension​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1itemsArray✅Danh sách object thông tin ngân hàng và gói vay

Thông tin items​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1item_idString(50)✅ID sản phẩm
2item_codeString(50)✅Mã sản phẩm
3item_nameString(255)✅Tên sản phẩm
4item_amountNumber✅Giá tiền sản phẩm
5quantityNumber✅Số lượng sản phẩm
6urlString(500)✅Link sản phẩm

Ví dụ Request​

{
"request_id": "MERCHANT050015588AXE012",
"request_time": "2020-08-11 14:41:00",
"merchant_code": "MERCHANT",
"operation": "PAYMENT/REFUND",
"data": {
"order_id": 1870436,
"mrc_order_id": "VLAD_1753867524",
"merchant_code": "MERCHANT",
"customer_name": "Nguyễn Trung Quân",
"customer_phone": "0394827170",
"customer_email": "[email protected]",
"customer_address": "40, ngách 16/255 đường Láng, Đống Đa, Hà Nội",
"package_code": "homecredit_1month",
"name": "Home Credit 1 tháng",
"period": 1,
"min_amount": 1000000,
"max_amount": 500000,
"down_payment_percent": 20,
"down_payment_amount": 2000000,
"original_amount": 10000000,
"user_fee": 0,
"merchant_fee": 100000,
"total_paylater_amount": 8000000,
"payment_per_period": 8000000,
"total_amount": 10100000,
"difference_amount": 100000,
"document_required": "CCCD",
"provider_code": "HOMECREDIT",
"description": "Đơn hàng trả chậm",
"url_success": "https://example.com/success",
"url_fail": "https://example.com/fail",
"status": 1,
"extension": {
"items": [
{
"item_id": 123456,
"item_code": "AEIQ_4562",
"item_name": "Máy tính xách tay ABC",
"item_amount": 10000000,
"quantity": 1,
"url": "https://example.com/product-detail"
}
]
},
"created_at": "2020-08-11 14:41:00",
"updated_at": "2020-08-11 15:41:00"
}
}

Response​

(Merchant phản hồi lại Baokim)

Bảng tham số chính​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1codeInteger✅Mã kết quả. 0, 100 hoặc 200 = Thành công
2messageString✅Thông báo kết quả xử lý
3dataObject❌Dữ liệu trả về (nếu có)

Ví dụ Response​

{
"code": 200,
"message": "Successfully",
"data": null
}