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

Authentication

Quy trình​

  • MERCHANT gửi yêu cầu tới Baokim

Thông tin API​

Method: POST

URL:

Merchant gửi thông tin thẻ → Baokim trả về link 3DS để redirect user xác thực OTP.

Request​

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
5amountNumber✅Giá trị đơn hàng (không bị trừ sau xác thực thành công)
6cardObject✅Thông tin thẻ — xem bên dưới
7url_successString(255)✅URL redirect khi xác thực thành công
8url_failString(255)✅URL redirect khi xác thực thất bại
9save_tokenNumber❌Có lưu token không ?: 0 = Không (default) ; 1 = Có
10typeNumber✅Loại thanh toán: 1 = PaymentByCard (default), 2 = UCOF-CIT
11off_3dsNumber❌Có yêu cầu tắt xác thực 3DS không ?: 0 = Không (default) / 1 = Tắt 3DS
12extendObject❌Thông tin mở rộng (billing)

Thông tin card​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1card_dataString❌Thông tin thẻ đã được mã hoá theo chuẩn của Baokim, bắt buộc nếu card_token null. Nếu type = 2 (UCOF-CIT), bắt buộc truyền card_data
2card_tokenString(255)❌Token thẻ đã lưu. Bắt buộc nếu card_data null

Thông tin card_data trước khi mã hoá​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1card_numberString(20)✅Số thẻ
2card_nameString(255)✅Tên chủ thẻ
3card_monthString(2)✅Tháng hết hạn
4card_yearString(4)✅Năm hết hạn
5card_cvvString(3)✅Mã bảo mật trên thẻ

Thông tin extend​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1billingObject❌Thô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

Ví dụ Request​

{
"request_id": "MERCHANT050015588AXE00",
"request_time": "2020-08-11 14:41:00",
"master_merchant_code": "MASTER_MERCHANT",
"sub_merchant_code": "SUB_MERCHANT",
"amount": 20000,
"card": {
"card_data": "yeAhZHfP6cWkLCL28svcXv2F9ntN3I1xBFGJG17JfxERkg8913ZxV",
"card_token": null },
"url_success": "https://example.com/success",
"url_fail": "https://example.com/fail",
"save_token": 0,
"type": 1,
"off_3ds": 0,
"extend": {
"billing": {
"firstname": "A",
"lastname": "NGUYEN VAN",
"city": "HANOI",
"state": null,
"country": "VN",
"email": "[email protected]",
"phone": "0394899999"
"postal_code": "10000"
}
}
}

Response​

Bảng tham số chính​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1codeNumber(3)✅Mã lỗi của Baokim
2messageString(200)✅Thông báo mã lỗi của Baokim
3dataObject✅Dữ liệu Baokim trả về

Thông tin data​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1order_idNumber✅Mã đơn hàng Baokim
2order_codeString(50)✅Mã giao dịch xác thực Baokim
3authen_statusNumber✅Trạng thái xác thực thẻ: 0 = Chờ / 1 = Đã xác thực / 2 = Thất bại / 3 = Bypass (3DS off) / 4 = Pending
43ds_urlString(255)✅Link xác thực 3DS — redirect user tới đây

Ví dụ Response​

{
"code": 0,
"message": "Success",
"data": {
"order_id": 1870436,
"order_code": "VLAD_1753867524",
"authen_status": 0,
"3ds_url": "https://payment-page.baokim.vn/payment/?oid=38260&checksum=d863a2d66f76e3fc7bcfe302bfc19ff3e5253f5c"
}
}

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