---
title: "Select services on a ticketed booking"
method: POST
path: "/flights/bookings/{bookingId}/services"
tags: ["Flight Bookings"]
---

# Select services on a ticketed booking

`POST /flights/bookings/{bookingId}/services`

## Request

- Base URL: `https://api.liteapi.travel/v3.0`
- URL: `https://api.liteapi.travel/v3.0/flights/bookings/{bookingId}/services`
- Auth: API key in header `X-API-Key`

## Overview

Selects seats / bags to sell on a **ticketed** booking (status `CONFIRMED`, `canAddServicesAfterTicketing: true`) and prepares their payment. Nothing is sold yet: confirm with `POST /flights/bookings/{bookingId}/services/confirm`.

## Payment

The services are paid with the booking's own method:

- **Stripe bookings (`TRANSACTION_ID`)** - a new payment intent is created for `pendingTotal` (`transactionId`, `secretKey`). Confirm it with the Stripe SDK; it is captured only once the airline sells the services.
- **Credit-line bookings (`CREDIT`)** - the credit line is checked now and billed after the sale.

Bookings paid otherwise (partner card, account card, third party) cannot buy services after ticketing.

## Changing the selection

Calling this endpoint again replaces the pending selection (its payment intent is cancelled). Send `selectedServices: []` to clear it.

## Access

Not enabled by default — contact the LiteAPI team. System admins and operations users (Connect dashboard) can act on any account's booking; the request then uses the booking owner's markups and payment settings.

## Path parameters

- `bookingId` string, uuid, required

## Request body

- FlightTicketedServicesAttachRequest
  - `selectedServices` SelectedService[], required: Services from GET /flights/bookings/{bookingId}/services (encoded serviceId + passengerIndex, optional quantity). An empty array clears the pending selection and releases its payment.
    - `passengerIndex` integer, required: Zero-based index of the passenger this service is for (matches position in passengers array)
    - `serviceId` string, required: Service identifier from servicesAttachable.groups[].services[].serviceId
    - `quantity` integer: Number of units of this service to attach

## Response `200`

Selection stored and payment prepared

- object
  - `data` FlightTicketedServicesAttachData
    - `bookingId` string
    - `batchId` string: Send to POST /flights/bookings/{bookingId}/services/confirm
    - `selectedServices` SelectedService[]
      - `passengerIndex` integer, required: Zero-based index of the passenger this service is for (matches position in passengers array)
      - `serviceId` string, required: Service identifier from servicesAttachable.groups[].services[].serviceId
      - `quantity` integer: Number of units of this service to attach
    - `servicesAmount` number: Services total (post-margin)
    - `platformFee` number: Merchant-of-record fee passed to the customer
    - `pendingTotal` number: Amount to pay: servicesAmount + platformFee
    - `currency` string
    - `paymentTypes` string[]: The only accepted method: TRANSACTION_ID for Stripe bookings, CREDIT for credit-line bookings
    - `transactionId` string: New Stripe payment intent for the services (TRANSACTION_ID). Confirm it with the Stripe SDK before /services/confirm.
    - `secretKey` string: Stripe client secret of transactionId
    - `creditLine` object: Remaining credit (CREDIT)
      - `remainingCredit` number
      - `currency` string
    - `message` string

## Other responses

- `400`: the services request is invalid
- `401`: Unauthorized
- `402`: Credit line over limit
- `403`: Adding flight services after ticketing is not enabled for this account. Please contact support to get access
- `404`: the booking was not found
- `409`: services cannot be added to this booking after ticketing
- `502`: provider authentication failed; nothing was sold
- `503`: services cannot be added to this booking after ticketing

---

[API](https://skmtc.dev/liteapi/apis/api-flights.md) - [All operations](https://skmtc.dev/liteapi/apis/api-flights/llms.txt) - [OpenAPI document](https://skmtc.dev/liteapi/apis/api-flights/revisions/7ccb4b3a8bde?raw)
