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

Webhook kết quả xác thực thẻ

(Merchant xây dựng)

Quy trình

Baokim gọi API webhook của MERCHANT để trả kết quả xác thực thẻ

Thông tin API

Method: POST

URL: Merchant cung cấp

Header:

  • Content-Type: application/json,
  • Signature: $signature

Baokim gọi về Merchant sau khi nhận kết quả xác thực từ ngân hàng.

Request

(Tham số Baokim gửi lên 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 của request
2request_timeString(20)Thời gian gửi Request. Format: YYYY-MM-DD H:i:s
3master_merchant_codeString(50)Mã định danh duy nhất cho master merchant
4sub_merchant_codeString(50)Mã định danh duy nhất cho sub merchant
5operationString(20)AUTHENTICATION: xác thực thẻ / REFUND: hoàn tiền
6order_codeString(50)Mã đơn hàng Baokim
7total_amountNumberTổng tiền đơn hàng
8authen_statusNumberTrạng thái authentication: 0 = Chờ / 1 = Đã xác thực / 2 = Thất bại / 3 = Bypass (3ds off)
9statusNumberTrạng thái đơn hàng trên Baokim
11save_tokenNumberCó lưu token không ? 0 = Không (default) / 1 = Có
10typeNumberLoại thanh toán: 1 = PaymentByCard / 2 = UCOF-CIT
12off_3dsNumberCó yêu cầu tắt xác thực 3DS không ?: 0 = Không / 1 = Có
13card_infoObjectThông tin thẻ (chỉ có khi UCOF-CIT)
14extendObjectDữ liệu mở rộng (billing)
15created_atDatetimeThời gian tạo đơn
16updated_atDatetimeThời gian cập nhật đơn

Thông tin extend

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1billingObjectThông tin người thanh toán

Thông tin extend.billing

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1firstnameString(255)Tên người thanh toán
2lastnameString(255)Họ người thanh toán
3addressString(500)Địa chỉ người thanh toán
4cityString(50)Thành phố (VD: HANOI)
5stateString(255)Bang/Tỉnh
6countryString(2)Quốc gia ISO2 (VD: VN)
7emailString(255)Email người thanh toán
8phoneString(10)Số điện thoại
9postal_codeString(6)Mã bưu điện

Thông tin card_info (khi UCOF-CIT)

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1tokenStringThông tin thẻ đã được mã hoá theo chuẩn của Baokim, bắt buộc nếu card_token null
2card_numberString(20)Số thẻ
3card_brandString(20)Thương hiệu: Visa / Master / JCB
4card_issue_bankNumber(1)Nơi phát hành thẻ: 1 = Trong nước, 2 = Nước ngoài
5card_on_usNumber(1)Có phải cùng ngân hàng không: 1 = Onus (cùng ngân hàng), 2 = Offus

Ví dụ Request

{
"request_id": "MERCHANT050015588AXE012",
"request_time": "2020-08-11 14:41:00",
"master_merchant_code": "MASTER_MERCHANT",
"sub_merchant_code": "SUB_MERCHANT",
"operation": "AUTHENTICATION",
"order_code": "VLAD_1753867524",
"total_amount": 10000000,
"authen_status": 1,
"status": 5,
"save_token": 0,
"type": 1,
"off_3ds": 0,
"card_info": {
"token": "BC151dsTTmdrSpRapya3rKYJmtu2Ue6e",
"card_number": "979202xxxxx28392",
"card_brand": "Visa",
"card_issue_bank": 1,
"card_on_us": 1
},
"extend": {
"billing": {
"firstname": "A",
"lastname": "NGUYEN VAN",
"address": "313 Truong Chinh, Dong Da",
"city": "HANOI",
"state": null,
"country": "VN",
"email": "[email protected]",
"phone": "0394899999",
"postal_code": "100000"
}
},
"created_at": "2020-08-11 14:41:00",
"updated_at": "2020-08-11 14:41:00"
}

Response

Merchant phải trả về cho Baokim

Bảng tham số chính

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1codeString(3)Xác nhận đã nhận (thường là 0)
2messageString(20)Thông báo
3dataObjectDữ liệu trả về nếu có

Ví dụ Response

{
"code": 0,
"message": "Success",
"data": null
}

Bảng mã lỗi Response Code

Mã lỗiMô tả
100Thành công
11Thất bại
101Lỗi hệ thống Baokim
104Lỗi xác thực Oauth
105Lỗi xác thực chữ ký
422Lỗi validate: RequestId không hợp lệ
422Lỗi validate: RequestTime không hợp lệ
422Lỗi validate: PartnerCode không hợp lệ
422Card_data không hợp lệ
422Amount không hợp lệ
301Không tìm thấy đơn hàng theo order_code
302Thẻ có vấn đề (không tồn tại, hết hạn)
303Thẻ bị từ chối
304Thẻ không đủ số dư
305User huỷ giao dịch
306Sai mã OTP
308Giao dịch chưa thực hiện Authentication
309Giao dịch chưa thực hiện Authorize
310Giao dịch đã reversal — không thể capture
311Giao dịch đã capture — không thể reversal
313Lỗi xử lý phía ngân hàng