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

Capture — Ghi nhận tiền thực tế

Quy trình

  • MERCHANT gọi API Capture giao dịch để thực hiện ghi nhận số tiền đã tạm giữ của khách hàng sau khi thực hiện bước Authorize ở trên.
  • Chỉ thực hiện capture với giao dịch đã được Authorize trước đó.
  • Nếu số tiền yêu cầu capture ít hơn tổng số tiền đã authorize, Baokim sẽ hiểu yêu cầu này là Capture 1 phần (partial capture), phần tiền còn lại sẽ được tự động reversal sau 5-7 ngày.
  • Sau khi giao dịch đã hoàn thành Capture sẽ không thể thực hiện reversal mà sẽ dùng Void/Refund để hoàn, huỷ giao dịch

Thông tin API

Method:

URL:

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
5order_codeString(50)Mã đơn Baokim từ bước Authentication
6capture_amountNumberSố tiền capture
7descriptionString(255)Mô tả giao dịch
8extendObjectDữ liệu mở rộng

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

Ví dụ Request

{
"request_id":"MERCHANT050015588AXE012",
"request_time":" 2020-08-11 14:41:00 ",
"master_merchant_code": "MASTER_MERCHANT",
"sub_merchant_code": "SUB_MERCHANT",
"capture_amount":10100000,
"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 capture"
}

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

Thông tin data

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1order_codeStringMã đơn hàng Baokim
2bank_codeString(50)Mã ngân hàng
3capture_statusNumberTrạng thái capture: 0 = Pending, 1 = Captured, 2 = Partial Captured, 3 = Fail
4statusNumberTrạng thái tổng đơn hàng
5capture_amountNumberSố tiền capture
6total_amountNumberTổng tiền cuối đơn hàng
7extendObjectDữ liệu mở rộng

Ví dụ Response

{
"code": 0,
"message": "Success",
"data": {
"order_code": "VLAD_1753867524",
"bank_code": "970415",
"capture_status": 1,
"status": 1,
"capture_amount": 10100000,
"total_amount": 10100000,
"extend": {}
}
}

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