> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gojinko.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Seats

> Find, choose, and manage flight seats with Jinko.

Help travelers choose where they sit and follow their seat confirmation, charges, and refunds.

Seats follow the same flow as every ancillary: see [Ancillaries](/concepts/ancillaries#booking-flow).

## Find available seats

Show travelers the seats available for their flight before payment.

Seat offers contain a numbered `seat_map` for one flight segment. Each seat lists its availability and characteristics, with `price_money` for a paid seat. Availability depends on the flight, and the traveler can book without selecting seats.

### Open the seat map

Read `GET /v1/trip/{trip_id}` after adding the flight and travelers. When a seat map is available and the trip can still be changed, the response includes `seat_map_url`. Open that link to let the traveler pick seats on a seat map. No API key is needed to use the page.

The link expires. Read the trip again for a fresh link. Builder MCP `get_trip` / `trip` and the CLI command `jinko trip-status` show the same link.

### Wait for availability

A seat offer in `items[].available_ancillaries[]` carries `seat_map_status` beside `seat_map`:

| Status | What to do |
| - | - |
| `pending` | Seats are still loading. Read the trip again shortly. If it stays pending, continue booking without seats. |
| `ready` | Seats are listed and can be selected. |

**Example questions**

1. "Can I choose my seats before paying?"
2. "Are seats available on both flights?"
3. "Can I book without choosing a seat?"

## Choose seats

Help each traveler choose an available seat for each flight segment.

### Seat map page

Open the Jinko seat map page using `seat_map_url` so the traveler can choose seats before payment. Paid seats are priced in the trip currency. Free seats have no price.

### Integration selection

Select seats through the [API](/api/select-ancillaries), Builder MCP `trip` with `select_ancillaries`, or [CLI `jinko select-ancillaries`](/cli/select-ancillaries).

To select a seat, send the seat offer's `offer_id`, its one `segment_ref_ids` entry, a `seat_number` whose `available` is `true`, and the traveler's `traveler_ref` from the trip response. For example, a selection can identify traveler `pax_1`, segment `["seg_1"]`, and seat `12A`. Choose one seat per traveler per segment.

Send every ancillary that should remain selected: `select_ancillaries` replaces the item's previous selections.

This illustrative trip response shows selected fields. The paid seat costs EUR 15.00; free seats omit the price.

```json theme={null}
{
  "seat_map_url": "https://app.gojinko.com/checkout/seats?t=example-token",
  "items": [
    {
      "available_ancillaries": [
        {
          "offer_id": "anc_3f9a1c27e4b8d051",
          "type": "seat",
          "scope": "PER_PAX_PER_SEGMENT",
          "segment_ref_ids": ["seg_1"],
          "seat_map_status": "ready",
          "seat_map": {
            "flight_number": "UA57",
            "seats": [
              {
                "seat_number": "12A",
                "available": true,
                "characteristics": ["WINDOW"],
                "price_money": { "value": 1500, "currency": "EUR", "decimal_places": 2, "display": "EUR 15.00" }
              }
            ]
          }
        }
      ]
    }
  ]
}
```

**Example questions**

1. "Can we sit together, with one window seat?"
2. "Which seats have extra legroom?"
3. "Change my seat and keep the checked bag I selected."

## Check out

Include the traveler's current seats in the payment flow.

Review the seat choices and prices before creating checkout. See [Trips and checkout](/guides/trips-and-checkout) for the payment flow.

> [!WARNING]
>
> After choosing or changing seats, check out again. Pay with the **latest checkout link or agent payment parameters**, so payment includes the current selections.

**Example questions**

1. "How much do these seats add to my trip?"
2. "Does this payment include the seats I just chose?"

## Manage after booking

Track each seat separately from the flight confirmation.

Read `booked_ancillaries` for each seat's `status`, assigned `seat_number`, and any `failure_reason`. Flight confirmation does not guarantee that every selected seat is confirmed.

### Confirmation and charges

Jinko sends the [`booking.completed` event](/guides/webhooks#choose-events) and booking confirmation email once the flight is ticketed, even if a seat is still pending. Check each seat's outcome in `booked_ancillaries`.

`not_charged: true` means this seat is not charged to the traveler. `failure_reason` explains why the seat is pending or failed. If a failed seat had already been charged, it is refunded.

**Example questions**

1. "My flight is confirmed. Is my seat confirmed too?"
2. "Why could the airline not confirm my seat?"
3. "What does this seat's status mean?"

### Cancel and refund

If a booking with a charged seat is canceled, the seat is refunded once the airline refunds Jinko. Until then, its `refund.status` reads `pending_airline_refund`. Show that refund as pending, rather than already returned.

**Example questions**

1. "Was my paid seat refunded too?"
2. "Is my seat refund still waiting for the airline?"

## Related guides

1. [Flight booking](/guides/flight-booking)
2. [Bags](/concepts/ancillaries/bags)
3. [Ancillaries](/concepts/ancillaries)
4. [Trips and checkout](/guides/trips-and-checkout)
5. [Flight refunds and cancellations](/tools/flight-refund)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.