Confirm booking price.

# 1. Tổng quan

  • Action URL: /api/v1/vj/flight/confirm-price-booking
  • Đặc tả chi tiết: Swagger UI (opens new window)
  • Tính năng: API xác nhận giá đặt chỗ của Vietjet Air. Gửi thông tin đặt chỗ để xác nhận giá.
  • Đ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 POST tớ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

Tên trường Kiểu dữ liệu Bắt buộc Mô tả / Ý nghĩa
bookingInformation.contactInformation.name String Có Tên người liên hệ hoặc tên doanh nghiệp
bookingInformation.contactInformation.phoneNumber String Có Số điện thoại liên hệ chính
bookingInformation.contactInformation.extension String Không Số máy nhánh
bookingInformation.contactInformation.email String Có Địa chỉ email liên hệ
bookingInformation.contactInformation.language.code String Có Mã ngôn ngữ (ví dụ: "en")
bookingInformation.contactInformation.language.name String Có Tên ngôn ngữ (ví dụ: "English")
passengers[].index Integer Có Số thứ tự hành khách trong danh sách
passengers[].fareApplicability.child Boolean Có Xác định hành khách là trẻ em hay không
passengers[].fareApplicability.adult Boolean Có Xác định hành khách là người lớn
passengers[].reservationProfile.lastName String Có Họ của hành khách
passengers[].reservationProfile.firstName String Có Tên của hành khách
passengers[].reservationProfile.title String Có Danh xưng (Mr, Ms, Mrs, v.v.)
passengers[].reservationProfile.gender String Có Giới tính của hành khách
passengers[].reservationProfile.birthDate Date Có Ngày sinh hành khách (YYYY-MM-DD)
passengers[].reservationProfile.personalContactInformation.phoneNumber String Không Số điện thoại bàn (nếu có)
passengers[].reservationProfile.personalContactInformation.mobileNumber String Có Số điện thoại di động của hành khách
passengers[].reservationProfile.personalContactInformation.email String Có Email cá nhân của hành khách
journeys[].index Integer Có Số thứ tự hành trình
journeys[].passengerJourneyDetails[].passenger.index Integer Có Tham chiếu đến hành khách trong danh sách passengers
journeys[].passengerJourneyDetails[].segment Object / Null Có Thông tin chặng bay, có thể null
journeys[].passengerJourneyDetails[].bookingKey String Có Mã định danh duy nhất cho hành trình
journeys[].passengerJourneyDetails[].reservationStatus.confirmed Boolean Có Trạng thái đã xác nhận
journeys[].passengerJourneyDetails[].reservationStatus.waitlist Boolean Có Trạng thái danh sách chờ
journeys[].passengerJourneyDetails[].reservationStatus.standby Boolean Có Trạng thái chờ bay
journeys[].passengerJourneyDetails[].reservationStatus.cancelled Boolean Có Trạng thái hủy
journeys[].passengerJourneyDetails[].reservationStatus.open Boolean Có Trạng thái mở
journeys[].passengerJourneyDetails[].reservationStatus.finalized Boolean Có Đã hoàn tất hay chưa
journeys[].passengerJourneyDetails[].reservationStatus.external Boolean Có Xác định trạng thái bên ngoài
paymentTransactions[].paymentMethod.key String Có Mã định danh của phương thức thanh toán
paymentTransactions[].paymentMethod.identifier String Có Mã ngắn phương thức (ví dụ: "PL")
paymentTransactions[].paymentMethod.description String Có Mô tả phương thức thanh toán ("Pay Later")
paymentTransactions[].paymentMethodCriteria.thirdParty.clientIP String Có Địa chỉ IP khách hàng
paymentTransactions[].paymentMethodCriteria.thirdParty.language.code String Có Ngôn ngữ giao dịch ("en")
paymentTransactions[].paymentMethodCriteria.account.company.key String Có Khóa định danh công ty
paymentTransactions[].paymentMethodCriteria.account.company.account.accountNumber String Có Số tài khoản công ty
paymentTransactions[].paymentMethodCriteria.account.company.account.creditLimit Number Có Hạn mức tín dụng
paymentTransactions[].paymentMethodCriteria.account.company.account.creditAvailable Number Có Số dư tín dụng khả dụng
paymentTransactions[].paymentMethodCriteria.account.company.account.currency.code String Có Mã tiền tệ ("VND")
paymentTransactions[].currencyAmounts[].totalAmount Number Có Tổng số tiền giao dịch
paymentTransactions[].currencyAmounts[].currency.code String Có Mã tiền tệ của giao dịch

# 4. Response

# 4.1 Ví dụ

{
  "statusCode": 200,
  "timestamp": "2025-10-28T06:56:27.846Z",
  "path": "/api/v1/vj/flight/confirm-price-booking",
  "message": "Xác nhận giá đặt chỗ thành công",
  "data": {
    "key": null,
    "number": null,
    "locator": null,
    "charges": [
      {
        "key": null,
        "passenger": {
          "index": 1
        },
        "journey": {
          "index": 1
        },
        "chargeTime": "2025-10-28 06:56:27Z",
        "description": "W1_ECO - Eco1",
        "chargeType": {
          "code": "FA",
          "description": "Fare",
          "feeCategory": null,
          "index": 20
        },
        "ancillaryPurchase": null,
        "seatSelection": null,
        "infant": null,
        "fareClass": {
          "key": "wb4xb3F9Evee1nOH8bSvfcwi2IV1nwX61XfbWwY6pQc=",
          "code": "W1_ECO"
        },
        "bookingKey": "vGpcreI82HpY1UNRPBqiXWWieJQWb0bUP7DqvjKwHfgIFNermfujo¥Sv5S0qvc8c8gedAJBLipk61PdTNNTk54c¥r5n9WdSXZpRTy41iKvSy6tDlBNE2AEmTWKZ7xƒs3",
        "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": true
        },
        "discount": null,
        "refundable": true,
        "privateFares": false,
        "notes": "",
        "timestamp": ""
      },
      {
        "key": null,
        "passenger": {
          "index": 1
        },
        "journey": {
          "index": 1
        },
        "chargeTime": "2025-10-28 06:56:27Z",
        "description": "Airport Tax Domestic",
        "chargeType": {
          "code": "AI",
          "description": "Airport Improvement Fund",
          "feeCategory": null,
          "index": 30
        },
        "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": true
        },
        "discount": null,
        "refundable": true,
        "privateFares": false,
        "notes": "",
        "timestamp": ""
      },
      {
        "key": null,
        "passenger": {
          "index": 1
        },
        "journey": {
          "index": 1
        },
        "chargeTime": "2025-10-28 06:56:27Z",
        "description": "Airport Security",
        "chargeType": {
          "code": "AS",
          "description": "Airport Security Scan",
          "feeCategory": null,
          "index": 31
        },
        "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": true
        },
        "discount": null,
        "refundable": true,
        "privateFares": false,
        "notes": "",
        "timestamp": ""
      },
      {
        "key": null,
        "passenger": {
          "index": 1
        },
        "journey": {
          "index": 1
        },
        "chargeTime": "2025-10-28 06:56:27Z",
        "description": "Admin Fee Domestic",
        "chargeType": {
          "code": "AM",
          "description": "Admin Fee",
          "feeCategory": null,
          "index": 22
        },
        "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": true
        },
        "discount": null,
        "refundable": true,
        "privateFares": false,
        "notes": "",
        "timestamp": ""
      },
      {
        "key": null,
        "passenger": {
          "index": 1
        },
        "journey": {
          "index": 1
        },
        "chargeTime": "2025-10-28 06:56:27Z",
        "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": true
        },
        "discount": null,
        "refundable": true,
        "privateFares": false,
        "notes": "",
        "timestamp": ""
      }
    ],
    "paymentTransactions": [
      {
        "key": null,
        "paymentTime": "2025-10-28 06:56:27Z",
        "description": null,
        "paymentMethod": {
          "key": "tfCeB5¥mircWvs2C4HkDdOXNJfƒNFOopDW2yQCBh2p1rOTwFA5LN6VUgknLR¥uSRURzqRAo79Q¥yB9ni61HUMA==",
          "identifier": "PL"
        },
        "paymentMethodCriteria": {},
        "currencyAmounts": [
          {
            "totalAmount": 1669500,
            "currency": {
              "code": "VND",
              "description": "Vietnam Dong",
              "baseCurrency": false
            },
            "exchangeRate": 1.08000000003024
          },
          {
            "totalAmount": 0,
            "currency": {
              "code": "NUC",
              "description": "NUC",
              "baseCurrency": true
            },
            "exchangeRate": 1
          }
        ],
        "processingCurrencyAmounts": [
          {
            "totalAmount": 0,
            "currency": {
              "code": "VND",
              "description": "Vietnam Dong",
              "baseCurrency": false
            },
            "exchangeRate": 1.08000000003024
          }
        ],
        "payerDescription": null,
        "receiptNumber": null,
        "payments": null,
        "refundTransactions": null,
        "notes": null
      }
    ]
  },
  "errors": null
}

# 4.2 Cấu trúc dữ liệu

Tên trường Kiểu dữ liệu Bắt buộc Mô tả / Ý nghĩa
statusCode Integer Có Mã trạng thái phản hồi HTTP (200 = thành công)
timestamp String (DateTime) Có Thời gian hệ thống ghi nhận phản hồi
path String Có Endpoint được gọi
message String Có Thông báo kết quả xử lý
data.key String / Null Không Khóa định danh booking (nếu có)
data.number Integer / Null Không Số thứ tự hoặc mã nội bộ của booking
data.locator String / Null Không Mã đặt chỗ (PNR code)
data.charges[] Array Có Danh sách các khoản phí, thuế, phụ thu...
charges[].key String / Null Không Mã định danh của khoản phí
charges[].passenger.index Integer Có Thứ tự hành khách trong danh sách
charges[].journey.index Integer Có Thứ tự hành trình (ví dụ: chiều đi, chiều về)
charges[].chargeTime String (DateTime) Có Thời điểm ghi nhận phí
charges[].description String Có Mô tả loại phí (ví dụ: “Eco Fare”, “Airport Tax”)
charges[].chargeType.code String Có Mã loại phí (FA = Fare, AI = Airport Improvement...)
charges[].chargeType.description String Có Diễn giải loại phí
charges[].chargeType.feeCategory String / Null Không Nhóm loại phí (nếu có)
charges[].chargeType.index Integer Có Chỉ mục nội bộ của loại phí
charges[].fareClass.key String / Null Không Mã khóa của hạng vé (fare class)
charges[].fareClass.code String / Null Không Mã hạng vé (ví dụ: “W1_ECO”)
charges[].bookingKey String / Null Không Mã khóa đặt chỗ cho phí cụ thể
charges[].surcharge.key String / Null Không Mã phụ phí (nếu có)
charges[].surcharge.identifier String / Null Không Ký hiệu phụ phí (ví dụ: “AXD”)
charges[].surcharge.description String / Null Không Mô tả phụ phí (ví dụ: “Airport Tax Domestic”)
charges[].currencyAmounts[] Array Có Danh sách chi tiết về tiền tệ, thuế, quy đổi
currencyAmounts[].baseAmount Number Có Giá gốc của khoản phí
currencyAmounts[].discountAmount Number Có Số tiền giảm giá (nếu có)
currencyAmounts[].taxAmount Number Có Tổng thuế áp dụng
currencyAmounts[].taxRateAmounts[] Array Có Danh sách chi tiết các loại thuế cụ thể
taxRateAmounts[].name String Có Tên loại thuế (ví dụ: “Tax 1”)
taxRateAmounts[].amount Number Có Số tiền thuế tương ứng
currencyAmounts[].totalAmount Number Có Tổng số tiền sau thuế
currencyAmounts[].currency.code String Có Mã tiền tệ (VND, NUC, v.v.)
currencyAmounts[].currency.description String Có Tên tiền tệ (“Vietnam Dong”, “NUC”)
currencyAmounts[].exchangeRate Number Có Tỷ giá quy đổi (so với đơn vị chuẩn)
charges[].taxConfiguration.key String Có Mã cấu hình thuế áp dụng
charges[].taxConfiguration.name String Có Tên cấu hình thuế (ví dụ: VAT8, TAX EXEMPT)
charges[].status.active Boolean Có Cho biết phí đang được kích hoạt
charges[].status.historical Boolean Có Đánh dấu phí đã qua (lịch sử)
charges[].status.pending Boolean Có Cho biết phí đang chờ xác nhận
charges[].discount Object / Null Không Thông tin chiết khấu (nếu có)
charges[].refundable Boolean Có Cho biết có hoàn tiền được không
charges[].privateFares Boolean Có Cho biết vé thuộc loại đặc biệt hay không
charges[].notes String Không Ghi chú bổ sung
charges[].timestamp String Không Thời gian cập nhật cuối cùng

This site uses cookies to learn which topics interest our readers.