List Bookings - Danh Sách Booking
API Endpoint: GET /api/v1/services/booking/v1/danh-sach-ve
📋 Overview
Lấy danh sách tất cả bookings của F2 account.
Returns: Array of bookings (HOLD + ISSUED)
🔌 API Specification
Endpoint
GET {{base_url}}/api/v1/services/booking/v1/danh-sach-ve
Headers
{
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {access_token}"
}
Query Parameters
No query parameters required. Returns all bookings for authenticated F2 account.
✅ Success Response
Status: 200 OK
{
"data": [
{
"id": 68,
"pnr": "37UQPF",
"uuid": "b31c2b48-aea3-11f0-8b81-86d224031662",
"hang_bay": "VJ",
"so_hieu": "VJ 636",
"hanh_trinh": "SGN - DAD",
"nguoi_dai_dien": "NGUYEN VAN TEST",
"tong_hanh_khach": 1,
"tong_nguoi_lon": 1,
"tong_tre_em": 0,
"tong_em_be": 0,
"tong_so_chang": 1,
"ngay_bay": "Sat, 25 Oct 2025 20:20:00 GMT",
"ngay_book": "Wed, 22 Oct 2025 00:31:00 GMT",
"ngay_het_han": "Wed, 22 Oct 2025 04:31:00 GMT",
"trang_thai": 0,
"gia_net": 1436400,
"thue": 97000,
"ho_ten_booker": "TRAN THI BOOKER",
"email_1": "test@example.com",
"email_2": "booker@example.com",
"hang_ve": "Eco1",
"diem_di_1": "SGN",
"diem_den_1": "DAD"
}
]
}
Key Fields:
| Field | Type | Description |
|---|---|---|
id | number | Booking ID (ve_id) - Use for MMB operations |
pnr | string | PNR - Booking reference code |
uuid | string | Booking UUID |
trang_thai | number | Status: 0 = HOLD, 1 = ISSUED |
hang_bay | string | Airline code ("VJ") |
so_hieu | string | Flight number |
hanh_trinh | string | Route (e.g., "SGN - HAN") |
nguoi_dai_dien | string | Lead passenger name |
ngay_bay | string | Flight date |
ngay_book | string | Booking date |
ngay_het_han | string | Payment deadline (HOLD only) |
gia_net | number | Total price (VND) |
💡 Example: cURL
curl -X GET "{{base_url}}/api/v1/services/booking/v1/danh-sach-ve" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {access_token}"
Response:
{
"data": [
{ "id": 68, "pnr": "37UQPF", "trang_thai": 0 },
{ "id": 67, "pnr": "ABC123", "trang_thai": 1 }
]
}
📋 Filtering Bookings
By Status
// HOLD bookings
const holdBookings = response.data.filter((b) => b.trang_thai === 0);
// ISSUED bookings
const issuedBookings = response.data.filter((b) => b.trang_thai === 1);
By Date
// Recent bookings (last 7 days)
const sevenDaysAgo = Date.now() - 7 * 24 * 60 * 60 * 1000;
const recentBookings = response.data.filter((b) => {
const bookDate = new Date(b.ngay_book);
return bookDate.getTime() > sevenDaysAgo;
});
By Route
// SGN-HAN flights
const sgnHanFlights = response.data.filter((b) => b.hanh_trinh === "SGN - HAN");
⚠️ Important Notes
1. Save Booking ID
To perform MMB operations, save id field:
const ve_id = booking.id; // Use for get-details, payment, etc.
2. Date Format
Response uses GMT format:
"ngay_bay": "Sat, 25 Oct 2025 20:20:00 GMT"
Convert to local timezone if needed.
3. All Bookings Returned
API returns all bookings for F2 account:
- No pagination
- Includes HOLD and ISSUED
- Includes past and future flights
Filter on client side as needed.
🔗 Next Steps
After getting booking list:
-
Get Details →
02-GET-DETAILS.mdGET /api/v1/services/booking/v1/thong-tin-ve/{ve_id} -
Payment →
PAYMENT.md(for HOLD bookings)POST /api/v1/services/booking/v1/thanh-toan -
Add Services →
UPDATE-SERVICES.mdPOST /api/v1/services/booking/v1/cap-nhat-dich-vu
📝 Notes
- Returns all bookings for authenticated F2 account
- No pagination (all results in one response)
- Use
idfield for MMB operations (notuuid) - Filter by
trang_thaito separate HOLD vs ISSUED - HOLD bookings have
ngay_het_han(payment deadline) - ISSUED bookings have
trang_thai: 1