Hold-booking
# 1. Tổng quan
- Action URL:
/api/v1/bamboo/flight/hold-booking - Đặc tả chi tiết: Swagger Link (opens new window)
- Mô tả: Tính năng này cho phép giữ chỗ đặt vé Bamboo Airways.
# 2. Hướng dẫn
- Thực hiện request từ thông tin mã chuyến bay để giữ chỗ đặt vé Bamboo Airways.
- POST tới API Action URL để nhận kết quả giữ chỗ.
- Nhận về response và xử lý dữ liệu ở phía ứng dụng của đại lý.
# 3. Parameters
# Bảng mô tả Parameters
| Thuộc tính | Bắt buộc | Kiểu dữ liệu | Mô tả |
|---|---|---|---|
| x-api-token | Có | String | Token API (F10) |
| x-api-password | Có | String | Mật khẩu API (F10) |
| x-api-account | Có | String | Tài khoản API (F10) |
# 4. Request Body
# 4.1 Ví dụ Request Body
{
"air_booking_id": "FLN202508141359311755154771722335099",
"pnr_on_hold": true
}
# 4.2 Bảng mô tả Request Body
| Thuộc tính | Bắt buộc | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|---|
| air_booking_id | Có | string | ID đặt chỗ từ Bamboo Airways | |
| Pnr_on_hold | Có | boolean | Có giữ chỗ hay không | true |
# 5. Response
# 5.1 Ví dụ Response
{
"statusCode": 200,
"timestamp": "2025-08-14T07:00:00.000Z",
"path": "/api/v1/bamboo/flight/hold-booking",
"message": "Giữ chỗ đặt vé Bamboo Airways thành công",
"data": {
"error": null,
"booker_detail": {
"sur_name": "",
"given_name": ""
},
"pnr_number": "VMIAJN",
"pnr_on_hold": true,
"creation_datetime": "2023-04-04 08:37:00",
"number_of_seats": 1,
"itinerary": [
{
"flight_segment_group_id": 1,
"segment_id": 1,
"carrier_code": "QH",
"flight_number": "412",
"flight_date": "2023-04-20",
"board_point": "HAN",
"off_point": "NRT",
"scheduled_departure_datetime": "2023-04-20 00:30:00",
"scheduled_arrival_time": "2023-04-20 07:45:00",
"departure_terminal": "2",
"arrival_terminal": "2",
"flight_status": "HK"
}
],
"guest_details": [
{
"given_name": "NAM HONG",
"sur_name": "NGUYEN",
"type": "ADULT",
"guest_id": 2
}
],
"pnr_contact": {
"address": {
"email": "HONGNN@BAMBOOAIRWAYS.COM",
"phone_number": "+84989989005"
},
"sur_name": "",
"given_name": ""
},
"itin_price": {
"guest_price_break_down": [
{
"price_break_down": [
{
"applied_fare_detail_type": 487,
"base_fare_currency": "USD",
"applied_fare": 1153000,
"display_fare_amount": 17904000,
"currency": "VND"
}
],
"fare_detail_for_guest_type": [
{
"cabin_class": "ECONOMY",
"booking_class": "N",
"fare_basis": "NEFRTV",
"fare_type": "EconomyFlex",
"segment_id": 1,
"fare_component_id": 1
}
],
"tax": [
{
"code": "YQ",
"amount": 4736000,
"currency": "VND",
"iata_code": "YQ"
}
],
"guest_type": "ADULT"
}
],
"total_amount_tobe_paid": {
"currency": "VND",
"amount": 17904000,
"guest_amount": [
{
"guest_id": 2,
"amount": 17904000,
"currency": "VND",
"guest_type": "ADULT"
}
]
},
"time_limit_detail": {
"time_limit_action": "CANCEL",
"time_limit_ltc": "2023-04-05 15:37:00",
"time_limit_utc": "",
"note": "QH CANCELLATION DUE TO NO TICKET HAN T IME ZONE"
},
"refund_amount": {},
"remarks": [
"BOOKED BY: TEST@BAMBOOAIRWAYS.COM - 2025-10-16T13:47:39.000Z"
],
"dealId": "test-deal-id",
"invoiceId": "test-invoice-id",
"contactId": "test-contact-id",
"leadIds": [
"test-lead-id"
],
"errors": null
}
}
}
# 5.2 Bảng mô tả Cấu trúc Response (top-level)
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| statusCode | number (integer) | Mã trạng thái HTTP | 200 |
| timestamp | string (ISO 8601) | Thời điểm phản hồi | 2025-08-14T07:00:00.000Z |
| path | string | Đường dẫn API | /api/v1/bamboo/flight/hold-booking |
| message | string | Thông báo chung | Giữ chỗ đặt vé Bamboo Airways thành công |
| data | object | Khối dữ liệu chi tiết | {...} |
| errors | array<object> | null nếu không có lỗi | null |
# 5.3 Bảng mô tả Cấu trúc data
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| error | string | null | Lỗi nếu có | null |
| booker_detail | object | Thông tin người đặt | {...} |
| pnr_number | string | Mã đặt chỗ (PNR) | VMIAJN |
| pnr_on_hold | boolean | Trạng thái giữ chỗ | true |
| creation_datetime | string (YYYY-MM-DD HH:mm:ss) | Thời điểm tạo PNR | 2023-04-04 08:37:00 |
| number_of_seats | number (integer) | Số ghế đã giữ | 1 |
| itinerary | array<object> | Danh sách chặng bay | [{...}] |
| guest_details | array<object> | Danh sách khách | [{...}] |
| pnr_contact | object | Thông tin liên hệ PNR | {...} |
| itin_price | object | Thông tin giá hành trình | {...} |
| total_amount_tobe_paid | object | Tổng tiền phải thanh toán | {...} |
| time_limit_detail | object | Thông tin hạn giữ chỗ/ra vé | {...} |
| refund_amount | object | Thông tin hoàn tiền (nếu có) | {} |
| remarks | array<string> | Ghi chú/remark hệ thống | ["BOOKED BY: TEST@..."] |
| dealId | string | ID deal (CRM) | test-deal-id |
| invoiceId | string | ID hoá đơn (CRM) | test-invoice-id |
| contactId | string | ID liên hệ (CRM) | test-contact-id |
| leadIds | array<string> | Các ID lead (CRM) | ["test-lead-id"] |
# 5.4 Bảng mô tả Cấu trúc booker_detail
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| sur_name | string | Họ người đặt | |
| given_name | string | Tên người đặt |
# 5.5 Bảng mô tả Cấu trúc itinerary[]
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| flight_segment_group_id | number (integer) | ID nhóm chặng | 1 |
| segment_id | number (integer) | ID chặng | 1 |
| carrier_code | string (IATA 2) | Mã hãng | QH |
| flight_number | number | string | Số hiệu chuyến bay | 412 |
| flight_date | string (YYYY-MM-DD) | Ngày bay | 2023-04-20 |
| board_point | string (IATA 3) | Sân bay khởi hành | HAN |
| off_point | string (IATA 3) | Sân bay đến | NRT |
| scheduled_departure_datetime | string (YYYY-MM-DD HH:mm:ss) | Giờ cất cánh dự kiến | 2023-04-20 00:30:00 |
| scheduled_arrival_time | string (YYYY-MM-DD HH:mm:ss) | Giờ hạ cánh dự kiến | 2023-04-20 07:45:00 |
| departure_terminal | string | Nhà ga đi | 2 |
| arrival_terminal | string | Nhà ga đến | 2 |
| flight_status | string | Tình trạng PNR/segment (HK = holding confirmed) | HK |
# 5.6 Bảng mô tả Cấu trúc guest_details[]
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| given_name | string | Tên khách | NAM HONG |
| sur_name | string | Họ khách | NGUYEN |
| type | string (enum) | Loại khách: ADULT/CHILD/INFANT | ADULT |
| guest_id | number (integer) | ID khách trong PNR | 2 |
# 5.7 Bảng mô tả Cấu trúc pnr_contact
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| address | object | Địa chỉ liên hệ (email/điện thoại) | {...} |
| sur_name | string | Họ người liên hệ | |
| given_name | string | Tên người liên hệ |
# 5.8 Bảng mô tả Cấu trúc pnr_contact.address
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| string (email) | Email liên hệ | HONGNN@BAMBOOAIRWAYS.COM | |
| phone_number | string | Số điện thoại liên hệ | +84989989005 |
# 5.9 Bảng mô tả Cấu trúc itin_price
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| guest_price_break_down | array<object> | Chi tiết giá theo từng khách | [{...}] |
# 5.10 Bảng mô tả Cấu trúc guest_price_break_down[]
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| price_break_down | array<object> | Các thành phần giá (fare/tax) cho khách | [{...}] |
| tax | array<object> | Thuế/phụ phí áp cho khách | [{...}] |
| guest_type | string (enum) | Loại khách | ADULT |
# 5.11 Bảng mô tả Cấu trúc price_break_down[]
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| applied_fare_detail_type | object | Nhóm tiền tệ & giá áp dụng | {...} |
| fare_detail_for_guest_type | array<object> | Thông tin hạng vé theo loại khách | [{...}] |
# 5.12 Bảng mô tả Cấu trúc applied_fare_detail_type
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| base_fare | number | Giá cước gốc (đơn vị gốc) | 487 |
| base_fare_currency | string (ISO-4217) | Tiền tệ của base_fare | USD |
| applied_fare | number | Giá cước đã áp dụng (đơn vị hiển thị) | 11533000 |
| display_fare_amount | number | Giá hiển thị (thường = applied_fare + tax) | 17904000 |
| currency | string (ISO-4217) | Tiền tệ hiển thị | VND |
# 5.13 Bảng mô tả Cấu trúc fare_detail_for_guest_type[]
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| cabin_class | string (enum) | Hạng khoang | ECONOMY |
| booking_class | string | Hạng đặt chỗ | N |
| fare_basis | string | Fare basis code | NEFRTV |
| fare_type | string | Brand/loại giá | EconomyFlex |
| segment_id | number | ID chặng | 1 |
| fare_component_id | number | ID thành phần giá | 1 |
# 5.14 Bảng mô tả Cấu trúc tax[]
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| code | string | Mã thuế/phụ phí (nội bộ) | YQ |
| amount | number | Số tiền thuế/phụ phí | 4736000 |
| currency | string (ISO-4217) | Tiền tệ | VND |
| iata_code | string | Mã IATA (nếu có) | YQ |
# 5.15 Bảng mô tả Cấu trúc total_amount_tobe_paid
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| currency | string (ISO-4217) | Tiền tệ tổng thanh toán | VND |
| amount | number | Tổng tiền phải trả | 17904000 |
| guest_amount | array<object> | Tổng theo từng khách | [{...}] |
# 5.16 Bảng mô tả Cấu trúc total_amount_tobe_paid.guest_amount[]
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| guest_id | number | ID khách | 2 |
| amount | number | Số tiền phải trả của khách | 17904000 |
| currency | string (ISO-4217) | Tiền tệ | VND |
| guest_type | string (enum) | Loại khách | ADULT |
# 5.17 Bảng mô tả Cấu trúc time_limit_detail
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| time_limit_action | string (enum) | Hành động khi quá hạn (CANCEL, TICKET...) | CANCEL |
| time_limit_ltc | string (YYYY-MM-DD HH:mm:ss) | Thời hạn theo local time | 2023-04-05 15:37:00 |
| time_limit_utc | string | Thời hạn theo UTC (rỗng nếu không có) | |
| note | string | Ghi chú | QH CANCELLATION DUE TO NO TICKET HAN TIME ZONE |