Create basic reservation.
# 1. Tổng quan
Action URL:
/api/v1/vj/flight/reservation - basicĐặc tả chi tiết: Swagger UI (opens new window)
Tính năng: cho phép API tạo giữ chỗ cơ bản cho chuyến bayn Vietjet Air
Điều kiện: Chỉ áp dụng cho tài khoản có quyền truy cập hợp lệ.
# 2. Hướng dẫn
- Bước 1: Xây dựng request với đầy đủ header và body
- Bước 2: Gửi request
POSTtới Action URL - Bước 3: Nhận về response chứa danh sách các dịch vụ bổ sung cho nhiều booking
# 3. Request
# 3.1 Ví dụ
{
"bookingInformation": {
"contactInformation": {
"name": "Business Name",
"phoneNumber": "+84987654222",
"extension": "123",
"email": "abc@gmail.com",
"language": {
"href": "/languages/en",
"code": "en",
"name": "English"
}
}
},
"passengers": [
{
"index": 1,
"fareApplicability": {
"child": false,
"adult": true
},
"reservationProfile": {
"lastName": "Pham",
"firstName": "Quang Minh",
"title": "Mr",
"gender": "Male",
"birthDate": "1985-03-12",
"personalContactInformation": {
"phoneNumber": "",
"mobileNumber": "0905111222",
"email": "minhpham@example.com"
}
}
}
],
"journeys": [
{
"index": 1,
"passengerJourneyDetails": [
{
"passenger": {
"index": 1
},
"segment": null,
"bookingKey": "nlBxOkrƒeWPjoL8DOWVTrSSMIRxvqAwAFKZpI1MQFZPWƒNGuZJElSP4Gl2qOREIS5RXV¥AHFGCPiLN8clSLDSxmyGm2yDqToGbfPbf5ptnEM4gAdMnM2PEdT ...",
"reservationStatus": {
"confirmed": true,
"waitlist": false,
"standby": false,
"cancelled": false,
"open": false,
"finalized": false,
"external": false
}
}
]
}
],
"paymentTransactions": [
{
"paymentMethod": {
"href": "https://vietjet-api.intelisystraining.ca/RESTv1/paymentMethods/tfCeB5%C2%A5mircWvs2C4HkDdOXNJf%C6%92NFOopDW2yQCBh2p1rOTwFA5LN6VUgknLR%C2%A5uSRURzqRAo79Q%C2%A5yB9ni61HUMA==",
"key": "tfCeB5¥mircWvs2C4HkDdOXNJfƒNFOopDW2yQCBh2p1rOTwFA5LN6VUgknLR¥uSRURzqRAo79Q¥yB9ni61HUMA==",
"identifier": "PL",
"description": "Pay Later"
},
"paymentMethodCriteria": {
"thirdParty": {
"clientIP": "118.70.168.28",
"language": {
"code": "en"
}
},
"applicationIdentifier": "",
"redirectURL": "",
"postURL": "",
"postData": "",
"reference": "",
"account": {
"company": {
"key": "AozgTRmbFSmsfRtwtRLfhtfveKseXDpGLFRvaCM7zVE=",
"account": {
"accountNumber": "34101989",
"creditLimit": 0,
"creditAvailable": 97412989333.83,
"currency": {
"code": "VND",
"description": "Vietnam Dong"
}
}
}
}
},
"currencyAmounts": [
{
"totalAmount": 3953200,
"currency": {
"code": "VND"
}
}
]
}
]
}
# 3.2 Cấu trúc dữ liệu Request
| Trường | Mô tả | Kiểu dữ liệu | Bắt buộc | Ghi chú |
|---|---|---|---|---|
bookingInformation | Thông tin liên hệ và ngôn ngữ đặt chỗ | object | Có | Gồm người liên hệ |
bookingInformation.contactInformation.name | Tên doanh nghiệp hoặc người liên hệ | string | Có | VD: “Business Name” |
bookingInformation.contactInformation.phoneNumber | Số điện thoại liên hệ | string | Có | Gồm mã quốc gia |
bookingInformation.contactInformation.extension | Số nội bộ | string | Không | VD: “123” |
bookingInformation.contactInformation.email | Email liên hệ | string | Có | Dùng nhận vé, biên lai |
bookingInformation.contactInformation.language.href | Đường dẫn ngôn ngữ | string | Không | /languages/en |
bookingInformation.contactInformation.language.code | Mã ngôn ngữ | string | Có | en |
bookingInformation.contactInformation.language.name | Tên ngôn ngữ | string | Có | English |
passengers | Danh sách hành khách | array<object> | Có | Một hoặc nhiều hành khách |
passengers.index | Số thứ tự hành khách | integer | Có | 1, 2, 3... |
passengers.fareApplicability.child | Là trẻ em | boolean | Có | true/false |
passengers.fareApplicability.adult | Là người lớn | boolean | Có | true/false |
passengers.reservationProfile.lastName | Họ hành khách | string | Có | VD: “Pham” |
passengers.reservationProfile.firstName | Tên hành khách | string | Có | VD: “Quang Minh” |
passengers.reservationProfile.title | Danh xưng | string | Có | Mr / Ms / Mrs |
passengers.reservationProfile.gender | Giới tính | string | Có | Male / Female |
passengers.reservationProfile.birthDate | Ngày sinh | string (ISO) | Có | YYYY-MM-DD |
passengers.reservationProfile.personalContactInformation.phoneNumber | Số điện thoại | string | Không | - |
passengers.reservationProfile.personalContactInformation.mobileNumber | Số di động | string | Có | - |
passengers.reservationProfile.personalContactInformation.email | Email cá nhân | string | Không | - |
journeys | Danh sách hành trình bay | array<object> | Có | Gồm chặng & hành khách |
journeys.index | Thứ tự hành trình | integer | Có | 1, 2, 3... |
journeys.passengerJourneyDetails.passenger.index | Số thứ tự hành khách | integer | Có | Liên kết với passengers |
journeys.passengerJourneyDetails.segment | Thông tin chặng | object/null | Có | Null nếu dùng bookingKey |
journeys.passengerJourneyDetails.bookingKey | Mã khóa đặt chỗ | string | Có | Từ API tìm kiếm vé |
journeys.passengerJourneyDetails.reservationStatus.confirmed | Đã xác nhận | boolean | Có | - |
journeys.passengerJourneyDetails.reservationStatus.waitlist | Danh sách chờ | boolean | Có | - |
journeys.passengerJourneyDetails.reservationStatus.standby | Đang chờ | boolean | Có | - |
journeys.passengerJourneyDetails.reservationStatus.cancelled | Bị hủy | boolean | Có | - |
journeys.passengerJourneyDetails.reservationStatus.open | Mở | boolean | Có | - |
journeys.passengerJourneyDetails.reservationStatus.finalized | Hoàn tất | boolean | Có | - |
journeys.passengerJourneyDetails.reservationStatus.external | Đặt qua bên thứ 3 | boolean | Có | - |
paymentTransactions | Thông tin thanh toán | array<object> | Có | Gồm phương thức, tiền, tài khoản |
paymentTransactions.paymentMethod.href | Đường dẫn phương thức thanh toán | string | Có | - |
paymentTransactions.paymentMethod.key | Mã định danh phương thức | string | Có | - |
paymentTransactions.paymentMethod.identifier | Mã rút gọn | string | Có | VD: PL (Pay Later) |
paymentTransactions.paymentMethod.description | Mô tả phương thức thanh toán | string | Có | - |
# 4. Response
# 4.1 Ví dụ
{
"statusCode": 200,
"timestamp": "2025-10-28T03:49:30.198Z",
"path": "/api/v1/vj/flight/reservation-basic",
"message": "Tạo giữ chỗ thành công",
"data": {
"success": true,
"reservationId": "RES1761623354765",
"bookingReference": "WJ6HB7",
"message": "Reservation created successfully",
"Booking": {
"key": "AKqlh8tSfnQBx7rF3¥xvOvtn8IVEnND8Dim4HE2QQuUzi1TKTbYSjoIX7zk26IXLniP9hkDpF¥ZKyy8pMobIUg==",
"number": 187857320,
"locator": "WJ6HB7",
"directParentReservation": null,
"subsidiaryReservations": null,
"bookingInformation": {
"key": "cmeXGƒ1QIE8CvEPsyQVZlƒxfmbHDRazBh8J¥0Nwy5HA0FgZrlF6MqCtY¥e¥¥EKBd8MT0YEDB3htzZGToeeWBhikƒ4Wz3CosP34RLfc2uY4K88xk2Fxmdqsj73jYUz¥eK",
"sessionIdentifier": "apiW184231bc-a8eb-4ea7-960f-74f99111ccd0",
"distributionChannel": {
"identifier": "W",
"description": "Web"
},
"externalLocators": null,
"agency": {
"key": "AzVnjosPcrHsLOeZtGS9XrnE6FHLhlZKkLkw7a5NbAw=",
"iataNumber": "34101989",
"name": "APIGW OTA TESTING"
},
"company": {
"key": "AozgTRmbFSmsfRtwtRLfhtfveKseXDpGLFRvaCM7zVE=",
"identifier": "34101989",
"name": "APIGW OTA TESTING"
},
"currency": {
"code": "VND",
"description": "Vietnam Dong"
},
"contactInformation": {
"name": "Business Name",
"phoneNumber": "+84987654222",
"extension": "123",
"email": "abc@gmail.com",
"language": {
"code": "en",
"name": "English"
},
"notificationPreferences": null
},
"creation": {
"time": "2025-10-28 03:49:00Z"
},
"hold": {
"overridden": false,
"expiryTime": "2025-10-28 07:49:00Z"
},
"cancellation": null,
"lock": null,
"bookingType": {
"eticketed": false,
"groupReserved": false,
"frequentFlyerRedeemed": false
},
"frequentFlyer": null,
"notes": "",
"groupName": "",
"timestamp": "AAAAFa4SYhw=",
"activeQueueSubItems": null,
"creditExpiryDate": "2027-10-28 03:49:00Z"
},
"passengers": [
{
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE=",
"reference": "JYJ5KABIQH",
"reservationOwner": true,
"reservationStatus": {
"confirmed": true,
"cancelled": false
},
"fareApplicability": {
"adult": true,
"child": false
},
"passengerTypeCode": {
"code": "ADT"
},
"reservationProfile": {
"lastName": "PHAM",
"firstName": "QUANG MINH",
"middleName": "",
"title": "Mr",
"gender": "Male",
"address": {
"address1": "",
"address2": "",
"city": "",
"location": null,
"postalCode": ""
},
"birthDate": "1985-03-12",
"nationCountry": null,
"personalContactInformation": {
"phoneNumber": "",
"mobileNumber": "0905111222",
"email": "minhpham@example.com",
"language": {
"code": "vi",
"name": "Vietnamese"
},
"notificationPreferences": null
},
"businessContactInformation": {
"phoneNumber": "",
"faxNumber": "",
"extension": ""
},
"destinationContactInformation": null,
"passport": null,
"loyaltyProgram": null,
"preBoard": false,
"status": {
"active": true,
"inactive": false,
"denied": false
},
"reference1": "",
"reference2": "",
"notes": ""
},
"frequentFlyer": null,
"advancePassengerInformation": null,
"passengerServiceRequests": [
{
"key": "WwXcehUljtnq4kkeHJJtCdFVMxadqjjHTJqOs2CmdXPppSGe¥wZbkPbm3BBUiBAkG5VTt6TƒdDJivoPITS9HWuw48wAVeS¥gS1Xq8YikDQBxkiB1T3Tn9LRAUjSrRf4o",
"serviceRequest": {
"key": "VCdctXmbmONuG8B3JRwIg8NQZSNToP1hX95YJL3oiAs=",
"code": "CBFS"
},
"notes": "",
"journeys": [
{
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
}
],
"journeySegments": [
{
"key": "SVdwUAdwphLƒjJw9rVQL8TOJD0jugWc¥762Y6xQyUPOvWP0YGaLH¥QKvAƒIqIwZd0ƒrpcSxZqCqdCVa3JfESfA=="
}
],
"timestamp": "AAAAFa4SYiA="
}
],
"passengerCostCenter": null,
"infants": [],
"passengerGdsNameGroup": null,
"weight": null,
"notes": "",
"timestamp": "AAAAFa4SYiI="
}
],
"journeys": [
{
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw=",
"departure": {
"scheduledTime": "2025-11-08 23:00:00Z",
"localScheduledTime": "2025-11-09 06:00:00",
"airport": {
"code": "HAN",
"name": "Ha Noi",
"utcOffset": {
"iso": "+07:00",
"hours": 7,
"minutes": 420
}
},
"terminal": null
},
"segments": [
{
"key": "SVdwUAdwphLƒjJw9rVQL8TOJD0jugWc¥762Y6xQyUPOvWP0YGaLH¥QKvAƒIqIwZd0ƒrpcSxZqCqdCVa3JfESfA==",
"flight": {
"key": "PPqvYGw83Xp¥7VtFay¥QwL4YTSPHT0w9jSK7mujB7b8=",
"airlineCode": {
"code": "VJ"
},
"flightNumber": "121",
"operatingPartnerCarrier": null,
"operatingPartnerFlightNumber": "",
"aircraftModel": {
"key": "2Qx¥GKVsZ08KvxdDQkIEb2UIgtzsXA¥nTWPjXFRE9io=",
"identifier": "321",
"name": "321"
}
},
"departure": {
"scheduledTime": "2025-11-08 23:00:00Z",
"localScheduledTime": "2025-11-09 06:00:00",
"airport": {
"code": "HAN",
"name": "Ha Noi",
"utcOffset": {
"iso": "+07:00",
"hours": 7,
"minutes": 420
}
},
"terminal": null
},
"arrival": {
"scheduledTime": "2025-11-09 01:10:00Z",
"localScheduledTime": "2025-11-09 08:10:00",
"airport": {
"code": "SGN",
"name": "Ho Chi Minh",
"utcOffset": {
"iso": "+07:00",
"hours": 7,
"minutes": 420
}
},
"terminal": {
"code": "T1",
"name": "1"
}
},
"legs": [
{
"key": "j9EƒkZLf6DQkƒa8DWaƒ5IExWFboxFAj¥bevcL4QOkk8UJ0rPxd29ib9MkuuLlHpS",
"departure": {
"scheduledTime": "2025-11-08 23:00:00Z",
"localScheduledTime": "2025-11-09 06:00:00",
"airport": {
"code": "HAN",
"name": "Ha Noi",
"utcOffset": {
"iso": "+07:00",
"hours": 7,
"minutes": 420
}
},
"terminal": null
},
"arrival": {
"scheduledTime": "2025-11-09 01:10:00Z",
"localScheduledTime": "2025-11-09 08:10:00",
"airport": {
"code": "SGN",
"name": "Ho Chi Minh",
"utcOffset": {
"iso": "+07:00",
"hours": 7,
"minutes": 420
}
},
"terminal": {
"code": "T1",
"name": "1"
}
}
}
],
"reservationStatus": {
"cancelled": false,
"open": false,
"finalized": false,
"external": false,
"disrupted": false
}
}
],
"passengerJourneyDetails": [
{
"key": "WwXcehUljtnq4kkeHJJtCeTJQƒ6dGw5eVhETAo3erc¥VlEAFlQNxbR2n06RFjTAvweXyZZH2YPBeT8zU0OeBiGXw5c3GSIRn3wctvUH1g3g¥pypeOnXuexLjƒ0QkD0Bw",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"segment": null,
"bookingKey": "nlBxOkrƒeWPjoL8DOWVTrSSMIRxvqAwAFKZpI1MQFZPWƒNGuZJElSP4Gl2qOREIS5RXV¥AHFGCPiLN8c ...",
"fareClass": {
"key": "wb4xb3F9Evee1nOH8bSvfcwi2IV1nwX61XfbWwY6pQc=",
"code": "W1_ECO",
"description": "Eco1"
},
"bookingCode": {
"code": "W",
"description": "Eco"
},
"cabinClass": {
"code": "Y",
"description": "Economy"
},
"realizedRevenue": false,
"shuttle": false,
"privateFares": false,
"ticketNumber": "",
"notes": "",
"reservationStatus": {
"confirmed": true,
"waitlist": false,
"standby": false,
"cancelled": false,
"open": false,
"finalized": false,
"external": false
},
"timestamp": "AAAAFa4SYbE="
}
],
"reservationStatus": {
"cancelled": false,
"open": false,
"finalized": false,
"external": false,
"disrupted": false
}
}
],
"insurancePolicies": null,
"ancillaryPurchases": [
{
"key": "fooK3HK2KMX94qPzJoQ4uwWedZrjrlQ4I9Et4DiauWngmcsTtRSvNZoeGjZXzQ4h5DhczEAAE8T3pkqhk1wyUBwhB7Dny8Z946oJbxY9ƒJU=",
"purchaseKey": "yq2CZ1dVlybyxQETDp1D5X94m3Iu0¥ƒIdNy3tSRzghpEx01aoOAdDnDO6LXWuss6cZƒrTKZ2TZgFwTw6AaTxfvLmrKvh6BGjZSRKFc4S9KY=",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"requirementLocation": {
"date": "2025-11-09",
"airport": null,
"cityPair": {
"identifier": "HAN-SGN"
},
"flight": null
},
"ancillaryItem": {
"key": "eU9Fu4zikmtsn4VBXmWLNCOwƒWz2Z2sDz9bzbFGFQqI=",
"name": "Cabin Bag 7k",
"ancillaryCategory": {
"key": "JwSyxxbv9z51Gcƒw6TjYlAAD2ePIQezLmDqzIS7olDk=",
"name": "Free Service",
"external": false
},
"serviceRequest": {
"key": "VCdctXmbmONuG8B3JRwIg8NQZSNToP1hX95YJL3oiAs=",
"code": "CBFS"
},
"serviceRequestNote": ""
},
"ancillaryRedemption": {
"reference": "",
"status": {
"available": true,
"redeemed": false
}
},
"timestamp": "AAAAFa4SYh0="
}
],
"seatSelections": [],
"passengerLegDetails": [
{
"key": "WwXcehUljtnq4kkeHJJtCQcPOa7UnYE200enh9XPtDpQMFX1o81CCYTQ8RbJUXQJ5PEcHjp2Dm7dGtHSEqniuaHCzqGc3aus8sCLIpCbyc76yjCx3d2wƒHjCsX6wGgNT",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"segment": {
"key": "SVdwUAdwphLƒjJw9rVQL8TOJD0jugWc¥762Y6xQyUPOvWP0YGaLH¥QKvAƒIqIwZd0ƒrpcSxZqCqdCVa3JfESfA=="
},
"leg": {
"key": "j9EƒkZLf6DQkƒa8DWaƒ5IExWFboxFAj¥bevcL4QOkk8UJ0rPxd29ib9MkuuLlHpS"
},
"reservationStatus": {
"confirmed": true,
"waitlist": false,
"standby": false,
"cancelled": false,
"finalized": false,
"external": false
},
"travelStatus": {
"notCheckedIn": true,
"checkedIn": false,
"boarded": false,
"noshow": false
},
"boardingSequenceNumber": null,
"thru": false,
"timestamp": "AAAAFa4SYbM="
}
],
"charges": [
{
"key": "Hm4kRrUOQubXzfVX9qNB4M65jczQrlSsGjo016vWCZX96KvƒPuAf0WLOlFfIpzRmpDjfW3O¥ƒsXH2ƒLhG0GƒSeJ0F0dD9Rq5sGLƒwT5¥qEA=",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"chargeTime": "2025-10-28 03:49:00Z",
"description": "W1_ECO - Eco1",
"chargeType": {
"code": "FA",
"description": "Fare",
"feeCategory": null,
"index": 0
},
"ancillaryPurchase": null,
"seatSelection": null,
"infant": null,
"fareClass": {
"key": "wb4xb3F9Evee1nOH8bSvfcwi2IV1nwX61XfbWwY6pQc=",
"code": "W1_ECO"
},
"bookingKey": "vGpcreI82HpY1UNRPBqiXWWieJQWb0bUP7DqvjKwHfhlFimxyYh9w4VIYKKbAbv8j3tOKhcaaNcf67R2oMZpWuFq1mUbU5wi8hUzUcKBR7K46yMYqLPqDruQYvgRx2znQtLK1zp8USEqcQVkLneScw==",
"surcharge": null,
"currencyAmounts": [
{
"baseAmount": 962000,
"discountAmount": 0,
"taxAmount": 77000,
"taxRateAmounts": [
{
"name": "Tax 1",
"amount": 77000
}
],
"totalAmount": 1039000,
"currency": {
"code": "VND",
"description": "Vietnam Dong"
},
"exchangeRate": 1.08000000003024
},
{
"totalAmount": 961200,
"currency": {
"code": "NUC",
"description": "NUC"
},
"exchangeRate": 1
}
],
"taxConfiguration": {
"key": "TCI54p3owhwgKKHNAwXBUgDwg¥kIHoP6vG¥b6KGX1xM=",
"name": "VAT8"
},
"status": {
"active": true,
"historical": false,
"pending": false
},
"discount": null,
"refundable": true,
"privateFares": false,
"notes": "",
"timestamp": "AAAAFa4SYgI="
},
{
"key": "Hm4kRrUOQubXzfVX9qNB4M65jczQrlSsGjo016vWCZX96KvƒPuAf0WLOlFfIpzRmW8p7G7brDnVKWX63QQWdLiNPZ3u8q4FbzhƒVIa¥8wAc=",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"chargeTime": "2025-10-28 03:49:00Z",
"description": "Airport Tax Domestic",
"chargeType": {
"code": "AI",
"description": "Airport Improvement Fund",
"feeCategory": null,
"index": 0
},
"ancillaryPurchase": null,
"seatSelection": null,
"infant": null,
"fareClass": null,
"bookingKey": null,
"surcharge": {
"key": "X2fXNzLhG1ZdI6mgOVBri8ETHP1¥z0ESQynMzbzZtIw=",
"identifier": "AXD",
"description": "Airport Tax Domestic"
},
"currencyAmounts": [
{
"baseAmount": 107000,
"discountAmount": 0,
"taxAmount": 0,
"taxRateAmounts": [],
"totalAmount": 107000,
"currency": {
"code": "VND",
"description": "Vietnam Dong"
},
"exchangeRate": 1.08000000003024
},
{
"totalAmount": 99000,
"currency": {
"code": "NUC",
"description": "NUC"
},
"exchangeRate": 1
}
],
"taxConfiguration": {
"key": "TCI54p3owhwgKKHNAwXBUiA1mqklQBHwTGLN3bf3CMs=",
"name": "TAX EXEMPT"
},
"status": {
"active": true,
"historical": false,
"pending": false
},
"discount": null,
"refundable": true,
"privateFares": false,
"notes": "",
"timestamp": "AAAAFa4SYgM="
},
{
"key": "Hm4kRrUOQubXzfVX9qNB4M65jczQrlSsGjo016vWCZX96KvƒPuAf0WLOlFfIpzRmHXC7GODJ42bc3qaFB0cteMQ0LJOtOHk¥WO6VcDkgmrc=",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"chargeTime": "2025-10-28 03:49:00Z",
"description": "Airport Security",
"chargeType": {
"code": "AS",
"description": "Airport Security Scan",
"feeCategory": null,
"index": 0
},
"ancillaryPurchase": null,
"seatSelection": null,
"infant": null,
"fareClass": null,
"bookingKey": null,
"surcharge": {
"key": "X2fXNzLhG1ZdI6mgOVBri7bCnzberNu3WpKckcRZOT8=",
"identifier": "AS",
"description": "Airport Security"
},
"currencyAmounts": [
{
"baseAmount": 21700,
"discountAmount": 0,
"taxAmount": 0,
"taxRateAmounts": [],
"totalAmount": 21700,
"currency": {
"code": "VND",
"description": "Vietnam Dong"
},
"exchangeRate": 1.08000000003024
},
{
"totalAmount": 20000,
"currency": {
"code": "NUC",
"description": "NUC"
},
"exchangeRate": 1
}
],
"taxConfiguration": {
"key": "TCI54p3owhwgKKHNAwXBUiA1mqklQBHwTGLN3bf3CMs=",
"name": "TAX EXEMPT"
},
"status": {
"active": true,
"historical": false,
"pending": false
},
"discount": null,
"refundable": true,
"privateFares": false,
"notes": "",
"timestamp": "AAAAFa4SYgQ="
},
{
"key": "Hm4kRrUOQubXzfVX9qNB4M65jczQrlSsGjo016vWCZX96KvƒPuAf0WLOlFfIpzRmYBHSD11kiK1¥IWreC4Cqmze03JHX0ogQFHWuƒzoCJzg=",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"chargeTime": "2025-10-28 03:49:00Z",
"description": "Admin Fee Domestic",
"chargeType": {
"code": "AM",
"description": "Admin Fee",
"feeCategory": null,
"index": 0
},
"ancillaryPurchase": null,
"seatSelection": null,
"infant": null,
"fareClass": null,
"bookingKey": null,
"surcharge": {
"key": "X2fXNzLhG1ZdI6mgOVBrixqhƒC65iPmepw¥2dlis6¥w=",
"identifier": "AFD",
"description": "Admin Fee Domestic"
},
"currencyAmounts": [
{
"baseAmount": 232300,
"discountAmount": 0,
"taxAmount": 18600,
"taxRateAmounts": [
{
"name": "Tax 1",
"amount": 18600
}
],
"totalAmount": 250900,
"currency": {
"code": "VND",
"description": "Vietnam Dong"
},
"exchangeRate": 1.08000000003024
},
{
"totalAmount": 232200,
"currency": {
"code": "NUC",
"description": "NUC"
},
"exchangeRate": 1
}
],
"taxConfiguration": {
"key": "TCI54p3owhwgKKHNAwXBUgDwg¥kIHoP6vG¥b6KGX1xM=",
"name": "VAT8"
},
"status": {
"active": true,
"historical": false,
"pending": false
},
"discount": null,
"refundable": true,
"privateFares": false,
"notes": "",
"timestamp": "AAAAFa4SYgU="
},
{
"key": "Hm4kRrUOQubXzfVX9qNB4M65jczQrlSsGjo016vWCZX96KvƒPuAf0WLOlFfIpzRmnJtWSZHT797OF3XlfRNe4oS0WuETP0NWnW9ikbIbN2s=",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"chargeTime": "2025-10-28 03:49:00Z",
"description": "Management Fee Domestic",
"chargeType": {
"code": "MF",
"description": "Management Fee",
"feeCategory": null,
"index": 0
},
"ancillaryPurchase": null,
"seatSelection": null,
"infant": null,
"fareClass": null,
"bookingKey": null,
"surcharge": {
"key": "X2fXNzLhG1ZdI6mgOVBri34PdCrKbRzAYAvtMR5Qkaw=",
"identifier": "MF",
"description": "Management Fee Domestic"
},
"currencyAmounts": [
{
"baseAmount": 232300,
"discountAmount": 0,
"taxAmount": 18600,
"taxRateAmounts": [
{
"name": "Tax 1",
"amount": 18600
}
],
"totalAmount": 250900,
"currency": {
"code": "VND",
"description": "Vietnam Dong"
},
"exchangeRate": 1.08000000003024
},
{
"totalAmount": 232200,
"currency": {
"code": "NUC",
"description": "NUC"
},
"exchangeRate": 1
}
],
"taxConfiguration": {
"key": "TCI54p3owhwgKKHNAwXBUgDwg¥kIHoP6vG¥b6KGX1xM=",
"name": "VAT8"
},
"status": {
"active": true,
"historical": false,
"pending": false
},
"discount": null,
"refundable": true,
"privateFares": false,
"notes": "",
"timestamp": "AAAAFa4SYgY="
},
{
"key": "Hm4kRrUOQubXzfVX9qNB4M65jczQrlSsGjo016vWCZX96KvƒPuAf0WLOlFfIpzRmQX7XmTNmƒGqVif7T1apLqsV3hUEKC8Co0JAcClvZSmo=",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"chargeTime": "2025-10-28 03:49:00Z",
"description": "Add Ons(1) - Cabin Bag 7k",
"chargeType": {
"code": "SR",
"description": "SSR",
"feeCategory": null,
"index": 0
},
"ancillaryPurchase": {
"key": "fooK3HK2KMX94qPzJoQ4uwWedZrjrlQ4I9Et4DiauWngmcsTtRSvNZoeGjZXzQ4h5DhczEAAE8T3pkqhk1wyUBwhB7Dny8Z946oJbxY9ƒJU=",
"purchaseKey": "yq2CZ1dVlybyxQETDp1D5X94m3Iu0¥ƒIdNy3tSRzghpEx01aoOAdDnDO6LXWuss6cZƒrTKZ2TZgFwTw6AaTxfvLmrKvh6BGjZSRKFc4S9KY=",
"passenger": {
"key": "WwXcehUljtnq4kkeHJJtCT18T6U9OBZdUiYwTLrQANwzYoL8JIiqn0lG3WWHm8kbNkY3DGUHKA1RƒWX¥cFCSGPof2WCeeDcn01cqxLWZUJE="
},
"journey": {
"key": "3j0CrSXmjkCS2yH4ciTA3ZhKB9dlƒsvoelrOBy4Fs9cJc4M7jHbrCfOO3jM0NWTTJUsKMg3EefYShGmQGEJC025KEyo21s5fbvmUi2i53Zw="
},
"requirementLocation": {
"date": "2025-11-09",
"airport": null,
"cityPair": {
"identifier": "HAN-SGN"
},
"flight": null
},
"ancillaryItem": {
"key": "eU9Fu4zikmtsn4VBXmWLNCOwƒWz2Z2sDz9bzbFGFQqI=",
"name": "Cabin Bag 7k",
"ancillaryCategory": {
"key": "JwSyxxbv9z51Gcƒw6TjYlAAD2ePIQezLmDqzIS7olDk=",
"name": "Free Service",
"external": false
},
"serviceRequest": {
"key": "VCdctXmbmONuG8B3JRwIg8NQZSNToP1hX95YJL3oiAs=",
"code": "CBFS"
},
"serviceRequestNote": ""
},
"ancillaryRedemption": {
"reference": "",
"status": {
"available": true,
"redeemed": false
}
}
},
"seatSelection": null,
"infant": null,
"fareClass": null,
"bookingKey": null,
"surcharge": null,
"currencyAmounts": [
{
"baseAmount": 0,
"discountAmount": 0,
"taxAmount": 0,
"taxRateAmounts": [],
"totalAmount": 0,
"currency": {
"code": "VND",
"description": "Vietnam Dong"
},
"exchangeRate": 1.08000000003024
}
],
"taxConfiguration": {
"key": "TCI54p3owhwgKKHNAwXBUgDwg¥kIHoP6vG¥b6KGX1xM=",
"name": "VAT8"
},
"status": {
"active": true,
"historical": false,
"pending": false
},
"discount": null,
"refundable": true,
"privateFares": false,
"notes": "",
"timestamp": "AAAAFa4SYhs="
}
],
"paymentTransactions": [
{
"key": null,
"paymentTime": null,
"description": null,
"paymentMethod": {
"key": "tfCeB5¥mircWvs2C4HkDdOXNJfƒNFOopDW2yQCBh2p1rOTwFA5LN6VUgknLR¥uSRURzqRAo79Q¥yB9ni61HUMA==",
"identifier": "PL"
},
"paymentMethodCriteria": {},
"currencyAmounts": [
{
"totalAmount": 3953200,
"currency": {
"code": "VND",
"description": "Vietnam Dong",
"baseCurrency": false
},
"exchangeRate": 1.08000000003024
},
{
"totalAmount": 0,
"currency": {
"code": "NUC",
"description": "NUC",
"baseCurrency": true
},
"exchangeRate": 1
}
],
"payerDescription": null,
"receiptNumber": null,
"payments": null,
"refundTransactions": null,
"notes": null
}
],
"eTickets": [],
"eMiscellaneousDocuments": []
},
"Summary": {
"dealId": "69003d4b6ab1a425f",
"invoiceId": "69003d4b7909febfb",
"contactId": "68b15af0c9002d09b",
"leadIds": [
"69003d4b5a4f95a8c"
],
"limitUpdated": true,
"notesCreated": 0
}
},
"errors": null
}
# 4.2 Cấu trúc dữ liệu Response
| Tên trường | Kiểu dữ liệu | Mô tả | Bắt buộc |
|---|---|---|---|
statusCode | number | Mã trạng thái HTTP (200 nếu thành công). | Có |
timestamp | string (ISO 8601) | Thời điểm phản hồi được tạo. | Có |
path | string | Đường dẫn API. | Có |
message | string | Thông điệp phản hồi tổng quát. | Có |
data | object | Dữ liệu chính của phản hồi. | Có |
success | boolean | Trạng thái thực thi (true = thành công). | Có |
reservationId | string | Mã định danh nội bộ của giao dịch giữ chỗ. | Có |
bookingReference | string | Mã đặt chỗ (PNR code) hiển thị cho khách hàng. | Có |
message (trong data) | string | Thông tin phản hồi chi tiết. | Có |
Booking | object | Thông tin chi tiết booking. | Có |
Booking.key | string | Mã định danh bảo mật của booking. | Có |
Booking.number | number | Số định danh nội bộ. | Có |
Booking.locator | string | Mã đặt chỗ (PNR). | Có |
Booking.directParentReservation | string/null | Giữ chỗ cha (nếu có). | Không |
Booking.subsidiaryReservations | array/null | Danh sách giữ chỗ con. | Không |
bookingInformation | object | Thông tin chi tiết quá trình giữ chỗ. | Có |
bookingInformation.key | string | Mã định danh bảo mật. | Có |
bookingInformation.sessionIdentifier | string | Mã phiên giao dịch. | Có |
bookingInformation.distributionChannel | object | Kênh phân phối thực hiện đặt chỗ. | Có |
bookingInformation.distributionChannel.identifier | string | Mã kênh (VD: W = Web). | Có |
bookingInformation.distributionChannel.description | string | Mô tả kênh phân phối. | Có |
bookingInformation.agency | object | Đại lý thực hiện đặt vé. | Có |
bookingInformation.agency.key | string | Mã định danh bảo mật của đại lý. | Có |
bookingInformation.agency.iataNumber | string | Mã IATA của đại lý. | Có |
bookingInformation.agency.name | string | Tên đại lý. | Có |
bookingInformation.company | object | Thông tin công ty hoặc tổ chức liên quan. | Có |
bookingInformation.company.key | string | Mã bảo mật công ty. | Có |
bookingInformation.company.identifier | string | Mã công ty. | Có |
bookingInformation.company.name | string | Tên công ty. | Có |
bookingInformation.currency | object | Tiền tệ giao dịch. | Có |
bookingInformation.currency.code | string | Mã tiền tệ (VD: VND). | Có |
bookingInformation.currency.description | string | Tên tiền tệ đầy đủ. | Có |
bookingInformation.contactInformation | object | Thông tin liên hệ người đặt chỗ. | Có |
bookingInformation.contactInformation.name | string | Tên người liên hệ. | Có |
bookingInformation.contactInformation.phoneNumber | string | Số điện thoại liên hệ. | Có |
bookingInformation.contactInformation.extension | string | Số máy lẻ (nếu có). | Không |
bookingInformation.contactInformation.email | string | Email liên hệ. | Có |
bookingInformation.contactInformation.language | object | Ngôn ngữ liên hệ. | Có |
bookingInformation.contactInformation.language.code | string | Mã ngôn ngữ (VD: en). | Có |
bookingInformation.contactInformation.language.name | string | Tên ngôn ngữ. | Có |
bookingInformation.creation | object | Thời gian tạo booking. | Có |
bookingInformation.creation.time | string (UTC) | Thời điểm tạo giữ chỗ. | Có |
bookingInformation.hold | object | Thời gian giữ chỗ. | Có |
bookingInformation.hold.overridden | boolean | Có bị ghi đè hay không. | Có |
bookingInformation.hold.expiryTime | string (UTC) | Thời điểm hết hạn giữ chỗ. | Có |
bookingInformation.bookingType | object | Loại đặt vé. | Có |
bookingInformation.bookingType.eticketed | boolean | Vé điện tử. | Có |
bookingInformation.bookingType.groupReserved | boolean | Đặt theo nhóm. | Có |
bookingInformation.bookingType.frequentFlyerRedeemed | boolean | Dùng điểm hội viên. | Có |
bookingInformation.creditExpiryDate | string (UTC) | Thời hạn tín dụng. | Có |
bookingInformation.timestamp | string | Mã đồng bộ hệ thống. | Có |
bookingInformation.notes | string | Ghi chú nội bộ. | Không |
bookingInformation.groupName | string | Tên nhóm đặt vé (nếu có). | Không |