---
title: "Get Flight Hotel Obligation"
method: GET
path: "/flight-hotel-obligations/{obligation_id}"
tags: ["flight-hotel-offers"]
---

# Get Flight Hotel Obligation

`GET /flight-hotel-obligations/{obligation_id}`

## Path parameters

- `obligation_id` string, uuid, required

## Response `200`

Successful Response

- FlightHotelObligationResponse
  - `id` string, uuid, required
  - `user_id` string, uuid, required
  - `flight_booking_id` string, required
  - `payment_intent_id` string, required
  - `qualification_conditions` HotelQualificationConditions, required — Versioned JSON; new fields require explicit schema/evaluator support.
    - `schema_version` integer, required
    - `all` HotelStarRatingCondition[], required
      - `field` 'hotel.star_rating', required
      - `operator` 'eq' | 'gte', required
      - `value` number, required
  - `accepted_terms_version` string, required
  - `accepted_terms_text` string, required
  - `customer_deadline` string, date-time, required
  - `final_cutoff` string, date-time, required
  - `flight_booking_session_id` string, uuid, required
  - `status` 'waiting_hotel' | 'capture_pending' | 'satisfied' | 'expiry_checking' | 'expiring' | 'expired' | 'needs_review' | 'cancelled', required
  - `accepted_at` string, date-time, required
  - `window_started_at` string, date-time, required
  - `qualifying_hotel_purchase_id` string, uuid, nullable, required
  - `hotel_completed_at` string, date-time, nullable, required
  - `captured_at` string, date-time, nullable, required
  - `expiry_started_at` string, date-time, nullable, required
  - `hold_released_at` string, date-time, nullable, required
  - `expired_at` string, date-time, nullable, required
  - `payment_status` string, nullable, required — Persisted flight payment status; not a live Stripe lookup.
  - `flight_cancellation_status` 'not_requested' | 'pending' | 'cancelled' | 'failed', required
  - `flight_cancelled_at` string, date-time, nullable, required
  - `recovery` FlightHotelObligationRecovery, required — Customer-safe recovery guidance; never supplier or payment error text.
    - `code` 'flight_capture_needs_review' | 'flight_expiry_needs_review' | 'flight_cancellation_needs_review' | 'obligation_needs_review', required
    - `action` 'contact_support', required
  - `hotel_search_context` HotelSearchCriteria — Criteria snapshot for a hotel search session/map token. Criteria changes create a new hotel search session; FE should reject stale updates whose criteria_hash does not match the active map instance.
    - `check_in` string, date, required
    - `check_out` string, date, required
    - `guests` HotelSearchGuestConfig, required — Wraps a list of GuestRoom into a typed config object for the discovery API. Reuses the shared GuestRoom model — just adds a container with validation.
      - `rooms` GuestRoomOutput[], required
        - `adults` integer, required — Number of adults
        - `children` object[] — List of children with ages
    - `anchor` HotelSearchAnchor, required — Canonical search anchor for a hotel map session. Extends LocationRadius to keep the existing flat latitude/longitude/radius_km shape while adding the label/type metadata FE needs. This prevents map-first hotel search from falling back to a vague destination code or implicit city centroid.
      - `latitude` number, required
      - `longitude` number, required
      - `radius_km` number, required
      - `label` string, required
      - `source` 'city' | 'neighborhood' | 'hotel' | 'airport' | 'user_phrase' | 'map', required — Source/type of the canonical hotel map search anchor.
      - `place_code` string, nullable
  - `card_hold_cents` integer
  - `credit_applied_cents` integer
  - `credit_status` 'none' | 'applied' | 'restore_pending' | 'restored'
  - `credit_restored_at` string, date-time, nullable
  - `ancillary_amount_cents` integer
  - `ancillary_status` 'none' | 'held' | 'fulfilled' | 'refund_pending' | 'refunded' | 'released'
  - `reminder_sent_at` string, date-time, nullable
  - `sms_reminder_sent_at` string, date-time, nullable

## Other responses

- `422` — Validation Error

## Changes

> 22 revisions in range; 1 not diffed.

- **2026-09-26** `ff95d5d338e4` — 1 warning
  - added the new `cancelled` enum value to the `status` response property for the response status `200`
- **2026-09-24** `c1e649dcf8e0` — 9 info
  - added the optional property `ancillary_amount_cents` to the response with the `200` status
  - added the optional property `ancillary_status` to the response with the `200` status
  - added the optional property `card_hold_cents` to the response with the `200` status
  - added the optional property `credit_applied_cents` to the response with the `200` status
  - …5 more
- **2026-09-23** `5d2121d26b96` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/helloaxel/apis/client-api-gateway/changes/flight-hotel-obligations/:obligation_id/get.md)

---

[API](https://skmtc.dev/helloaxel/apis/client-api-gateway.md) · [All operations](https://skmtc.dev/helloaxel/apis/client-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/helloaxel/apis/client-api-gateway/revisions/ff95d5d338e4?raw)
