Tra cứu giao dịch
Quy trình
Mô tả:
- Merchant gọi API để lấy thông tin đầy đủ và trạng thái hiện tại của đơn hàng.
- Response trả về cấu trúc
stepsgồm toàn bộ lịch sử: authentication, authorize, capture, refund, reversal, void.
Thông tin API
Method: GET
Request
(Tham số đối tác gửi lên)
Bảng tham số chính
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | request_id | String(100) | ✅ | ID duy nhất của request từ Merchant sang Baokim |
| 2 | request_time | String(20) | ✅ | Thời gian gửi request. Format: YYYY-MM-DD H:i:s |
| 3 | merchant_code | String(50) | ✅ | Mã định danh duy nhất của Merchant |
| 4 | order_code | String(50) | ✅ | Mã đơn hàng Baokim trả về tại bước Authentication |
Ví dụ Request
{
"request_id": "MERCHANT050015588AXE014",
"request_time": "2020-08-11 14:41:00",
"merchant_code": "MERCHANT",
"order_code": "VLAD_1753867524"
}
Response
(Tham số Baokim trả về)
Bảng tham số chính
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | code | Number(3) | ✅ | Mã lỗi của Baokim |
| 2 | message | String(200) | ✅ | Thông báo mã lỗi |
| 3 | data | Object | ✅ | Dữ liệu Baokim trả về |
Thông tin data
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | order_code | Number | ✅ | Mã đơn hàng Baokim |
| 2 | amount | Number | ✅ | Số tiền của đơn hàng |
| 3 | status | Number | ✅ | Trạng thái đơn hàng |
| 4 | created_at | Datetime | ✅ | Thời gian tạo đơn hàng |
| 5 | updated_at | Datetime | ✅ | Thời gian cập nhật đơn hàng |
| 6 | steps | Object | ✅ | Thông tin từng bước xử lý |
Thông tin steps
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | authentication | Object | ✅ | Thông tin bước Authentication |
| 2 | authorize | Array | ✅ | Mảng object các lần Authorize |
| 3 | capture | Array | ✅ | Mảng object các lần Capture |
| 4 | refund | Array | ❌ | Mảng object các lần Refund |
| 5 | reversal | Array | ❌ | Mảng object các lần Reversal |
| 6 | void | Array | ❌ | Mảng object các lần Void |
Thông tin steps.authentication
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | authen_status | Number | ✅ | Trạng thái xác thực thẻ: 0-Chờ xác thực / 1-Đã xác thực / 2-Thất bại / 3-Bypass (3DS off) |
| 2 | authen_amount | Number | ✅ | Số tiền authentication |
| 3 | request_time | String(20) | ✅ | Thời gian gửi request. Format: YYYY-MM-DD H:i:s |
| 4 | url_success | String(255) | ✅ | URL redirect khi xác thực thành công |
| 5 | url_fail | String(255) | ✅ | URL redirect khi xác thực thất bại |
| 6 | off_3ds | Number | ❌ | 0-Không tắt 3DS / 1-Tắt 3DS |
| 7 | 3ds_url | String(255) | ✅ | Link xác thực 3DS |
| 8 | extend | Object | ❌ | Dữ liệu mở rộng |
Thông tin từng object trong steps.authorize
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | authorize_status | Number | ✅ | Trạng thái authorization: 0-Pending / 1-Authorized / 2-Fail |
| 2 | authorize_amount | Number | ✅ | Số tiền authorize |
| 3 | request_time | String(20) | ✅ | Thời gian gửi request |
| 4 | authorize_type | Number | ✅ | Loại authorize: 1-Authorize / 2-Incremental Authorize |
| 5 | auth_code | String(50) | ✅ | Mã authorize do Ngân hàng trả về |
| 6 | description | String(255) | ❌ | Mô tả giao dịch Authorize |
| 7 | extend | Object | ❌ | Dữ liệu mở rộng |
Thông tin từng object trong steps.capture
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | capture_status | Number | ✅ | Trạng thái capture: 0-Pending / 1-Captured / 2-Partial Captured / 3-Fail |
| 2 | bank_code | String(50) | ✅ | Mã ngân hàng |
| 3 | capture_type | Number | ✅ | Loại capture: 1-Capture / 2-Partial Capture |
| 4 | capture_amount | Number | ✅ | Số tiền capture |
| 5 | request_time | String(20) | ✅ | Thời gian gửi request |
| 6 | description | String(255) | ❌ | Mô tả giao dịch Capture |
| 7 | extend | Object | ❌ | Dữ liệu mở rộng |
Thông tin từng object trong steps.refund
| STT | Tên trường | Ki ểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | refund_status | Number | ✅ | Trạng thái refund: 0-Refund Pending / 1-Refunded / 2-Fail |
| 2 | refund_amount | Number | ✅ | Số tiền refund |
| 3 | request_time | String(20) | ✅ | Thời gian gửi request. Format: YYYY-MM-DD H:i:s |
| 4 | description | String(255) | ✅ | Mô tả |
| 5 | extend | Object | ❌ | Dữ liệu mở rộng |
Thông tin từng object trong steps.reversal
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | reversal_status | Number | ✅ | Trạng thái capture: 0-Reversal Pending / 1-Reversed / 2-Fail |
| 2 | description | String(255) | ✅ | Mô tả |
| 3 | request_time | String(20) | ✅ | Thời gian gửi request. Format: YYYY-MM-DD H:i:s |
| 4 | extend | Object | ❌ | Dữ liệu mở rộng |
Thông tin từng object trong steps.void
| STT | Tên trường | Kiểu dữ liệu | Bắt buộc | Mô tả |
|---|---|---|---|---|
| 1 | void_status | Number | ✅ | Trạng thái void: 0-Void Pending / 1-Voided / 2-Fail |
| 2 | description | String(255) | ✅ | Mô tả |
| 3 | request_time | String(20) | ✅ | Thời gian gửi request |
| 4 | extend | Object | ❌ | Dữ liệu mở rộng |
Ví dụ Response
{
"code": 0,
"message": "Success",
"data": {
"order_code": "VLAD_1753867524",
"amount": 1000000,
"status": 1,
"created_at": "2020-08-11 14:41:00",
"updated_at": "2020-08-11 15:41:00",
"steps": {
"authentication": {
"authen_status": 1,
"authen_amount": 1000000,
"request_time": "2020-08-11 14:41:00",
"url_success": "https://example.com/success",
"url_fail": "https://example.com/fail",
"off_3ds": 1,
"3ds_url": "https://payment-page.baokim.vn/payment/?oid=38260&checksum=d863a2d66f76e3fc7bcfe302bfc19ff3e5253f5c",
"extend": {}
},
"authorize": [
{
"authorize_status": 1,
"authorize_amount": 1000000,
"request_time": "2020-08-11 14:41:00",
"authorize_type": 1,
"auth_code": "AUTH456789",
"description": "",
"extend": {}
}
],
"capture": [
{
"capture_status": 1,
"capture_amount": 1000000,
"request_time": "2020-08-11 14:41:00",
"bank_code": "970436",
"capture_type": 1,
"description": "",
"extend": {}
}
],
"refund": [],
"reversal": [],
"void": []
}
}
}
Error Code
| Mã lỗi | Mô tả |
|---|---|
| 100 | Thành công |
| 11 | Thất bại |
| 101 | Lỗi hệ thống Baokim |
| 104 | Lỗi xác thực OAuth |
| 105 | Lỗi xác thực chữ ký |
| 301 | Không tìm thấy đơn hàng theo order_code |
| 302 | Thẻ có vấn đề (không tồn tại, hết hạn) |
| 303 | Thẻ bị từ chối |
| 304 | Thẻ không đủ số dư |
| 305 | User huỷ giao dịch |
| 306 | Sai mã OTP |
| 308 | Giao dịch chưa thực hiện Authentication |
| 309 | Giao dịch chưa thực hiện Authorize |
| 310 | Giao dịch đã Reversal, không thể Capture |
| 311 | Giao dịch đã Capture, không thể Reversal |
| 313 | Lỗi xử lý phía ngân hàng |
| 422 | Lỗi validate: RequestId không hợp lệ |
| 422 | Lỗi validate: RequestTime không hợp lệ |
| 422 | Lỗi validate: PartnerCode không hợp lệ |
| 422 | Card_data không hợp lệ |
| 422 | Amount không hợp lệ |