Skip to main content

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:

FieldTypeDescription
idnumberBooking ID (ve_id) - Use for MMB operations
pnrstringPNR - Booking reference code
uuidstringBooking UUID
trang_thainumberStatus: 0 = HOLD, 1 = ISSUED
hang_baystringAirline code ("VJ")
so_hieustringFlight number
hanh_trinhstringRoute (e.g., "SGN - HAN")
nguoi_dai_dienstringLead passenger name
ngay_baystringFlight date
ngay_bookstringBooking date
ngay_het_hanstringPayment deadline (HOLD only)
gia_netnumberTotal 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:

  1. Get Details02-GET-DETAILS.md

    GET /api/v1/services/booking/v1/thong-tin-ve/{ve_id}
  2. PaymentPAYMENT.md (for HOLD bookings)

    POST /api/v1/services/booking/v1/thanh-toan
  3. Add ServicesUPDATE-SERVICES.md

    POST /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 id field for MMB operations (not uuid)
  • Filter by trang_thai to separate HOLD vs ISSUED
  • HOLD bookings have ngay_het_han (payment deadline)
  • ISSUED bookings have trang_thai: 1