Overview
Set the ancillary selection (seats / bags) on an existing prebook before confirming the final booking. Each call replaces the prebook's current selection — it is not additive.
When to Use
- Seat selection - Allow users to choose specific seats after prebook
- Extra baggage - Let users add additional luggage allowance
- Detach / clear services - Remove previously attached seats or bags before book
- Price update - Required when services change the total booking cost
- Voucher discount - Optional
voucherCodewhen attaching services changes the total and you need the discount reflected on the new payment intent
What You Get
- Updated prebook with the selected services attached (or cleared)
- New payment intent (
transactionId,secretKey) reflecting the updated total price (after any voucher discount) - Same response format as
POST /flights/prebooksfor easy integration
Key Features
- Seat selection: Assign specific seats to each passenger and segment
- Extra baggage: Add checked baggage or overweight allowances
- Full replacement: Send the complete desired
selectedServiceslist every time - Detach: Omit a service from
selectedServicesto remove it; sendselectedServices: []to clear all seats/bags and refresh the payment intent to the journey-only total - Updated payment: Creates a new Stripe payment intent when the prebook used Stripe (
usePaymentSdk: true). For whitelabel/CMI prebooks (used_custom_payment_keys), no new intent is returned — re-charge via WL and submit a fresh JWT atPOST /flights/bookings - Voucher recalculation: When a voucher applies, the discount is recomputed against the updated total (journey + ancillaries); invalid or expired vouchers return
400(same as prebook) - Modifies in place: Updates the existing prebook record in the database
Changing / removing services
This endpoint replaces the prebook's ancillary selection. To detach one seat or bag, re-POST without that item. To detach all services:
{ "selectedServices": [] }The field must be present (selectedServices is required); an empty array clears the selection. Omitting the field entirely is a validation error.
Quick Start
Provide the prebookId in the URL path and selectedServices in the request body. Optionally pass voucherCode to apply a discount. Use the new transactionId from this response (not the original prebook transactionId) when confirming payment with Stripe and when calling POST /flights/bookings.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||

