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

Authorization

Quy trình

Mô tả:

  • Merchant gọi API này để cấp phép giao dịch đã xác thực ở bước Authentication.
  • Tiền khách hàng bị tạm hold và đóng băng trong tài khoản (5–7 ngày).
  • API Chỉ gọi sau khi hoàn tất bước Authentication.
  • Nếu không gọi Capture trong thời gian hold, tiền sẽ tự động Reversal.
  • Incremental Authorize dùng khi muốn tăng thêm số tiền hold của giao dịch đã authorize.

Thông tin API

Method: POST

Request

(Tham số đối tác gửi lên)

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 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 của Merchant
4order_codeString(50)Mã đơn hàng Baokim trả về tại bước Authentication
5authorize_typeNumberLoại authorize: 1-Authorize / 2-Incremental Authorize
6authorize_amountNumberSố tiền authorize. Nếu authorize_type = 2 thì đây là số tiền muốn tăng thêm
7cardObjectThông tin thẻ (card_data hoặc card_token)
8extendObjectDữ liệu mở rộng (billing)
9descriptionString(255)Mô tả giao dịch Authorize

Thông tin card

(chọn 1 trong 2)

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1card_dataString(255)Thẻ đã mã hoá AES-256-CBC. Bắt buộc nếu card_token = null
2card_tokenString(255)Token đại diện cho thẻ. 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 thẻ
4card_yearString(4)Năm hết hạn thẻ
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ả
1billingObjectThông tin người thanh toán

Thông tin 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ỉ
4cityString(50)Thành phố. Ví dụ: HANOI
5stateString(255)Bang / Tỉnh
6countryString(2)Quốc gia, mã ISO2. Ví dụ: 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ụ: 100000)

Ví dụ Request

{
"request_id": "MERCHANT050015588AXE014",
"request_time": "2020-08-11 14:41:00",
"merchant_code": "MERCHANT",
"order_code": "VLAD_1753867524",
"authorize_type": 1,
"authorize_amount": 1000000,
"card": {
"card_data": "yeAhZHfP6cWkLCL28svcXv2F9ntN3I1xBFGJG17JfxERkg8913ZxV",
"card_token": null
},
"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": "10000"
}
},
"description": "description GD authorize"
}

Response

(Tham số Baokim trả về)

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
3dataObjectDữ liệu trả về

Thông tin data

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1order_codeNumberMã đơn hàng Baokim
2auth_codeString(50)Mã authorize do Ngân hàng hợp tác trả về
3authorize_statusNumberTrạng thái: 0-Pending / 1-Authorized / 2-Fail
4statusNumberTrạng thái tổng của giao dịch Baokim
5authorize_amountNumberSố tiền authorize
6total_amountNumberTổng tiền đã authorize
7tokenString(500)Token thẻ trả về sau khi khách hàng xác thực 3DS thành công nếu bước Authentication có tham số save_token = 1

Ví dụ Response

{
"code": 0,
"message": "Success",
"data": {
"order_code": "VLAD_1753867524",
"auth_code": "AUTH456789",
"authorize_status": 1,
"status": 1,
"authorize_amount": 100000,
"total_amount": 10100000,
"token": "BC151dsTTmdrSpRapya3rKYJmtu2Ue6e"
}
}

Error 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ý
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
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ệ