@gojinko/api-client 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,72 @@
3
3
  * Do not make direct changes to the file.
4
4
  */
5
5
  export interface paths {
6
+ "/api/v1/bookings/lookup": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ get?: never;
14
+ put?: never;
15
+ /**
16
+ * Look up a booking by reference + last name (guest access)
17
+ * @description Anonymous lookup for end-users checking their own booking. Returns generic errors to avoid leaking existence information.
18
+ */
19
+ post: {
20
+ parameters: {
21
+ query?: never;
22
+ header?: never;
23
+ path?: never;
24
+ cookie?: never;
25
+ };
26
+ /** @description Booking lookup request */
27
+ requestBody: {
28
+ content: {
29
+ "application/json": components["schemas"]["BookingLookupRequest"];
30
+ };
31
+ };
32
+ responses: {
33
+ /** @description OK */
34
+ 200: {
35
+ headers: {
36
+ [name: string]: unknown;
37
+ };
38
+ content: {
39
+ "application/json": components["schemas"]["BookingLookupResponse"];
40
+ };
41
+ };
42
+ /** @description Bad Request */
43
+ 400: {
44
+ headers: {
45
+ [name: string]: unknown;
46
+ };
47
+ content: {
48
+ "application/json": {
49
+ [key: string]: unknown;
50
+ };
51
+ };
52
+ };
53
+ /** @description Not Found */
54
+ 404: {
55
+ headers: {
56
+ [name: string]: unknown;
57
+ };
58
+ content: {
59
+ "application/json": {
60
+ [key: string]: unknown;
61
+ };
62
+ };
63
+ };
64
+ };
65
+ };
66
+ delete?: never;
67
+ options?: never;
68
+ head?: never;
69
+ patch?: never;
70
+ trace?: never;
71
+ };
6
72
  "/api/v1/devplatform/admin/users/{id}/role": {
7
73
  parameters: {
8
74
  query?: never;
@@ -1846,7 +1912,7 @@ export interface paths {
1846
1912
  patch?: never;
1847
1913
  trace?: never;
1848
1914
  };
1849
- "/api/v1/flights/refund-check": {
1915
+ "/api/v1/flights/exchange-commit": {
1850
1916
  parameters: {
1851
1917
  query?: never;
1852
1918
  header?: never;
@@ -1856,8 +1922,8 @@ export interface paths {
1856
1922
  get?: never;
1857
1923
  put?: never;
1858
1924
  /**
1859
- * Check flight refund eligibility
1860
- * @description Check whether a flight booking is eligible for a refund and get the refund amount
1925
+ * Commit a flight exchange
1926
+ * @description Execute a previously priced exchange. Poll /flights/exchange-status for terminal state.
1861
1927
  */
1862
1928
  post: {
1863
1929
  parameters: {
@@ -1869,10 +1935,10 @@ export interface paths {
1869
1935
  path?: never;
1870
1936
  cookie?: never;
1871
1937
  };
1872
- /** @description Refund check request */
1938
+ /** @description Exchange commit request */
1873
1939
  requestBody: {
1874
1940
  content: {
1875
- "application/json": components["schemas"]["RefundCheckRequest"];
1941
+ "application/json": components["schemas"]["ExchangeCommitRequest"];
1876
1942
  };
1877
1943
  };
1878
1944
  responses: {
@@ -1882,7 +1948,7 @@ export interface paths {
1882
1948
  [name: string]: unknown;
1883
1949
  };
1884
1950
  content: {
1885
- "application/json": components["schemas"]["RefundCheckResponse"];
1951
+ "application/json": components["schemas"]["ExchangeCommitResponse"];
1886
1952
  };
1887
1953
  };
1888
1954
  /** @description Bad Request */
@@ -1915,7 +1981,7 @@ export interface paths {
1915
1981
  patch?: never;
1916
1982
  trace?: never;
1917
1983
  };
1918
- "/api/v1/flights/search": {
1984
+ "/api/v1/flights/exchange-price": {
1919
1985
  parameters: {
1920
1986
  query?: never;
1921
1987
  header?: never;
@@ -1925,20 +1991,23 @@ export interface paths {
1925
1991
  get?: never;
1926
1992
  put?: never;
1927
1993
  /**
1928
- * Search flights (synchronous, filter-based)
1929
- * @description Search flights with filter-based criteria
1994
+ * Price a specific exchange offer
1995
+ * @description Get the priced difference (including penalties) for a selected exchange offer from /flights/exchange-shop.
1930
1996
  */
1931
1997
  post: {
1932
1998
  parameters: {
1933
- query?: never;
1999
+ query?: {
2000
+ /** @description Target a specific provider (sabre, travelfusion). When omitted, uses request body provider field. */
2001
+ provider?: string;
2002
+ };
1934
2003
  header?: never;
1935
2004
  path?: never;
1936
2005
  cookie?: never;
1937
2006
  };
1938
- /** @description Flight search request */
2007
+ /** @description Exchange price request */
1939
2008
  requestBody: {
1940
2009
  content: {
1941
- "application/json": components["schemas"]["FlightSearchRequest"];
2010
+ "application/json": components["schemas"]["ExchangePriceRequest"];
1942
2011
  };
1943
2012
  };
1944
2013
  responses: {
@@ -1948,7 +2017,7 @@ export interface paths {
1948
2017
  [name: string]: unknown;
1949
2018
  };
1950
2019
  content: {
1951
- "application/json": components["schemas"]["FlightSearchResponse"];
2020
+ "application/json": components["schemas"]["ExchangePriceResponse"];
1952
2021
  };
1953
2022
  };
1954
2023
  /** @description Bad Request */
@@ -1981,7 +2050,7 @@ export interface paths {
1981
2050
  patch?: never;
1982
2051
  trace?: never;
1983
2052
  };
1984
- "/api/v1/hotels/semantic-search": {
2053
+ "/api/v1/flights/exchange-shop": {
1985
2054
  parameters: {
1986
2055
  query?: never;
1987
2056
  header?: never;
@@ -1991,20 +2060,23 @@ export interface paths {
1991
2060
  get?: never;
1992
2061
  put?: never;
1993
2062
  /**
1994
- * Semantic hotel search
1995
- * @description Search hotels with a natural-language query (e.g. "beach
2063
+ * Search for flight exchange options
2064
+ * @description Return available exchange offers for a booked flight. Next step is /flights/exchange-price for a specific offer.
1996
2065
  */
1997
2066
  post: {
1998
2067
  parameters: {
1999
- query?: never;
2068
+ query?: {
2069
+ /** @description Target a specific provider (sabre, travelfusion). When omitted, uses request body provider field. */
2070
+ provider?: string;
2071
+ };
2000
2072
  header?: never;
2001
2073
  path?: never;
2002
2074
  cookie?: never;
2003
2075
  };
2004
- /** @description Semantic search request */
2076
+ /** @description Exchange shop request */
2005
2077
  requestBody: {
2006
2078
  content: {
2007
- "application/json": components["schemas"]["SemanticSearchRequest"];
2079
+ "application/json": components["schemas"]["ExchangeShopRequest"];
2008
2080
  };
2009
2081
  };
2010
2082
  responses: {
@@ -2014,7 +2086,7 @@ export interface paths {
2014
2086
  [name: string]: unknown;
2015
2087
  };
2016
2088
  content: {
2017
- "application/json": components["schemas"]["SemanticSearchResult"];
2089
+ "application/json": components["schemas"]["ExchangeShopResponse"];
2018
2090
  };
2019
2091
  };
2020
2092
  /** @description Bad Request */
@@ -2023,7 +2095,9 @@ export interface paths {
2023
2095
  [name: string]: unknown;
2024
2096
  };
2025
2097
  content: {
2026
- "application/json": components["schemas"]["ErrorResponse"];
2098
+ "application/json": {
2099
+ [key: string]: unknown;
2100
+ };
2027
2101
  };
2028
2102
  };
2029
2103
  /** @description Internal Server Error */
@@ -2032,7 +2106,9 @@ export interface paths {
2032
2106
  [name: string]: unknown;
2033
2107
  };
2034
2108
  content: {
2035
- "application/json": components["schemas"]["ErrorResponse"];
2109
+ "application/json": {
2110
+ [key: string]: unknown;
2111
+ };
2036
2112
  };
2037
2113
  };
2038
2114
  };
@@ -2043,7 +2119,7 @@ export interface paths {
2043
2119
  patch?: never;
2044
2120
  trace?: never;
2045
2121
  };
2046
- "/api/v1/hotels/shop": {
2122
+ "/api/v1/flights/exchange-status": {
2047
2123
  parameters: {
2048
2124
  query?: never;
2049
2125
  header?: never;
@@ -2053,20 +2129,23 @@ export interface paths {
2053
2129
  get?: never;
2054
2130
  put?: never;
2055
2131
  /**
2056
- * Shop hotel rates
2057
- * @description Search hotels by destination and return available rooms with live pricing
2132
+ * Check the status of a flight exchange
2133
+ * @description Poll for terminal state of a previously committed exchange (succeeded, failed, in_progress).
2058
2134
  */
2059
2135
  post: {
2060
2136
  parameters: {
2061
- query?: never;
2137
+ query?: {
2138
+ /** @description Target a specific provider (sabre, travelfusion). When omitted, uses request body provider field. */
2139
+ provider?: string;
2140
+ };
2062
2141
  header?: never;
2063
2142
  path?: never;
2064
2143
  cookie?: never;
2065
2144
  };
2066
- /** @description Hotel shop request */
2145
+ /** @description Exchange status request */
2067
2146
  requestBody: {
2068
2147
  content: {
2069
- "application/json": components["schemas"]["ShopRequest"];
2148
+ "application/json": components["schemas"]["ExchangeStatusRequest"];
2070
2149
  };
2071
2150
  };
2072
2151
  responses: {
@@ -2076,7 +2155,7 @@ export interface paths {
2076
2155
  [name: string]: unknown;
2077
2156
  };
2078
2157
  content: {
2079
- "application/json": components["schemas"]["HotelShopResponse"];
2158
+ "application/json": components["schemas"]["ExchangeStatusResponse"];
2080
2159
  };
2081
2160
  };
2082
2161
  /** @description Bad Request */
@@ -2109,28 +2188,35 @@ export interface paths {
2109
2188
  patch?: never;
2110
2189
  trace?: never;
2111
2190
  };
2112
- "/api/v1/payment/authorization/{id}": {
2191
+ "/api/v1/flights/refund-check": {
2113
2192
  parameters: {
2114
2193
  query?: never;
2115
2194
  header?: never;
2116
2195
  path?: never;
2117
2196
  cookie?: never;
2118
2197
  };
2198
+ get?: never;
2199
+ put?: never;
2119
2200
  /**
2120
- * Get payment authorization by ID
2121
- * @description Retrieve payment authorization information by ID
2201
+ * Check flight refund eligibility
2202
+ * @description Check whether a flight booking is eligible for a refund and get the refund amount
2122
2203
  */
2123
- get: {
2204
+ post: {
2124
2205
  parameters: {
2125
- query?: never;
2126
- header?: never;
2127
- path: {
2128
- /** @description Payment Authorization ID */
2129
- id: string;
2206
+ query?: {
2207
+ /** @description Target a specific provider (sabre, travelfusion). When omitted, uses request body provider field. */
2208
+ provider?: string;
2130
2209
  };
2210
+ header?: never;
2211
+ path?: never;
2131
2212
  cookie?: never;
2132
2213
  };
2133
- requestBody?: never;
2214
+ /** @description Refund check request */
2215
+ requestBody: {
2216
+ content: {
2217
+ "application/json": components["schemas"]["RefundCheckRequest"];
2218
+ };
2219
+ };
2134
2220
  responses: {
2135
2221
  /** @description OK */
2136
2222
  200: {
@@ -2138,7 +2224,7 @@ export interface paths {
2138
2224
  [name: string]: unknown;
2139
2225
  };
2140
2226
  content: {
2141
- "application/json": components["schemas"]["PaymentAuthorization"];
2227
+ "application/json": components["schemas"]["RefundCheckResponse"];
2142
2228
  };
2143
2229
  };
2144
2230
  /** @description Bad Request */
@@ -2152,17 +2238,6 @@ export interface paths {
2152
2238
  };
2153
2239
  };
2154
2240
  };
2155
- /** @description Not Found */
2156
- 404: {
2157
- headers: {
2158
- [name: string]: unknown;
2159
- };
2160
- content: {
2161
- "application/json": {
2162
- [key: string]: unknown;
2163
- };
2164
- };
2165
- };
2166
2241
  /** @description Internal Server Error */
2167
2242
  500: {
2168
2243
  headers: {
@@ -2176,15 +2251,13 @@ export interface paths {
2176
2251
  };
2177
2252
  };
2178
2253
  };
2179
- put?: never;
2180
- post?: never;
2181
2254
  delete?: never;
2182
2255
  options?: never;
2183
2256
  head?: never;
2184
2257
  patch?: never;
2185
2258
  trace?: never;
2186
2259
  };
2187
- "/api/v1/payment/authorization/{id}/capture": {
2260
+ "/api/v1/flights/refund-commit": {
2188
2261
  parameters: {
2189
2262
  query?: never;
2190
2263
  header?: never;
@@ -2194,23 +2267,23 @@ export interface paths {
2194
2267
  get?: never;
2195
2268
  put?: never;
2196
2269
  /**
2197
- * Capture payment
2198
- * @description Capture an authorized payment (full or partial amount)
2270
+ * Initiate a refund for a booked flight
2271
+ * @description Commit a refund after checking eligibility with refund-check. Poll /flights/refund-status for terminal state.
2199
2272
  */
2200
2273
  post: {
2201
2274
  parameters: {
2202
- query?: never;
2203
- header?: never;
2204
- path: {
2205
- /** @description Payment Authorization ID */
2206
- id: string;
2275
+ query?: {
2276
+ /** @description Target a specific provider (sabre, travelfusion). When omitted, uses request body provider field. */
2277
+ provider?: string;
2207
2278
  };
2279
+ header?: never;
2280
+ path?: never;
2208
2281
  cookie?: never;
2209
2282
  };
2210
- /** @description Amount to capture (optional, defaults to full amount) */
2211
- requestBody?: {
2283
+ /** @description Refund commit request */
2284
+ requestBody: {
2212
2285
  content: {
2213
- "application/json": components["schemas"]["Amount"];
2286
+ "application/json": components["schemas"]["RefundCommitRequest"];
2214
2287
  };
2215
2288
  };
2216
2289
  responses: {
@@ -2220,7 +2293,7 @@ export interface paths {
2220
2293
  [name: string]: unknown;
2221
2294
  };
2222
2295
  content: {
2223
- "application/json": components["schemas"]["PaymentCapture"];
2296
+ "application/json": components["schemas"]["RefundCommitResponse"];
2224
2297
  };
2225
2298
  };
2226
2299
  /** @description Bad Request */
@@ -2234,17 +2307,6 @@ export interface paths {
2234
2307
  };
2235
2308
  };
2236
2309
  };
2237
- /** @description Not Found */
2238
- 404: {
2239
- headers: {
2240
- [name: string]: unknown;
2241
- };
2242
- content: {
2243
- "application/json": {
2244
- [key: string]: unknown;
2245
- };
2246
- };
2247
- };
2248
2310
  /** @description Internal Server Error */
2249
2311
  500: {
2250
2312
  headers: {
@@ -2264,28 +2326,35 @@ export interface paths {
2264
2326
  patch?: never;
2265
2327
  trace?: never;
2266
2328
  };
2267
- "/api/v1/payment/authorization/{id}/status": {
2329
+ "/api/v1/flights/refund-status": {
2268
2330
  parameters: {
2269
2331
  query?: never;
2270
2332
  header?: never;
2271
2333
  path?: never;
2272
2334
  cookie?: never;
2273
2335
  };
2336
+ get?: never;
2337
+ put?: never;
2274
2338
  /**
2275
- * Check payment status
2276
- * @description Check the current status of a payment from Stripe and update local record
2339
+ * Check the status of a refund
2340
+ * @description Poll for terminal state of a previously committed refund (succeeded, failed, in_progress).
2277
2341
  */
2278
- get: {
2342
+ post: {
2279
2343
  parameters: {
2280
- query?: never;
2281
- header?: never;
2282
- path: {
2283
- /** @description Payment Authorization ID */
2284
- id: string;
2344
+ query?: {
2345
+ /** @description Target a specific provider (sabre, travelfusion). When omitted, uses request body provider field. */
2346
+ provider?: string;
2285
2347
  };
2348
+ header?: never;
2349
+ path?: never;
2286
2350
  cookie?: never;
2287
2351
  };
2288
- requestBody?: never;
2352
+ /** @description Refund status request */
2353
+ requestBody: {
2354
+ content: {
2355
+ "application/json": components["schemas"]["RefundStatusRequest"];
2356
+ };
2357
+ };
2289
2358
  responses: {
2290
2359
  /** @description OK */
2291
2360
  200: {
@@ -2293,7 +2362,7 @@ export interface paths {
2293
2362
  [name: string]: unknown;
2294
2363
  };
2295
2364
  content: {
2296
- "application/json": components["schemas"]["PaymentAuthorization"];
2365
+ "application/json": components["schemas"]["RefundStatusResponse"];
2297
2366
  };
2298
2367
  };
2299
2368
  /** @description Bad Request */
@@ -2307,17 +2376,6 @@ export interface paths {
2307
2376
  };
2308
2377
  };
2309
2378
  };
2310
- /** @description Not Found */
2311
- 404: {
2312
- headers: {
2313
- [name: string]: unknown;
2314
- };
2315
- content: {
2316
- "application/json": {
2317
- [key: string]: unknown;
2318
- };
2319
- };
2320
- };
2321
2379
  /** @description Internal Server Error */
2322
2380
  500: {
2323
2381
  headers: {
@@ -2331,15 +2389,13 @@ export interface paths {
2331
2389
  };
2332
2390
  };
2333
2391
  };
2334
- put?: never;
2335
- post?: never;
2336
2392
  delete?: never;
2337
2393
  options?: never;
2338
2394
  head?: never;
2339
2395
  patch?: never;
2340
2396
  trace?: never;
2341
2397
  };
2342
- "/api/v1/payment/authorize": {
2398
+ "/api/v1/flights/search": {
2343
2399
  parameters: {
2344
2400
  query?: never;
2345
2401
  header?: never;
@@ -2349,8 +2405,8 @@ export interface paths {
2349
2405
  get?: never;
2350
2406
  put?: never;
2351
2407
  /**
2352
- * Create payment authorization
2353
- * @description Create a payment authorization for a quote using Stripe
2408
+ * Search flights (synchronous, filter-based)
2409
+ * @description Search flights with filter-based criteria
2354
2410
  */
2355
2411
  post: {
2356
2412
  parameters: {
@@ -2359,20 +2415,20 @@ export interface paths {
2359
2415
  path?: never;
2360
2416
  cookie?: never;
2361
2417
  };
2362
- /** @description Payment authorization request */
2418
+ /** @description Flight search request */
2363
2419
  requestBody: {
2364
2420
  content: {
2365
- "application/json": components["schemas"]["PaymentAuthorizationRequest"];
2421
+ "application/json": components["schemas"]["FlightSearchRequest"];
2366
2422
  };
2367
2423
  };
2368
2424
  responses: {
2369
- /** @description Created */
2370
- 201: {
2425
+ /** @description OK */
2426
+ 200: {
2371
2427
  headers: {
2372
2428
  [name: string]: unknown;
2373
2429
  };
2374
2430
  content: {
2375
- "application/json": components["schemas"]["PaymentAuthorizationResponse"];
2431
+ "application/json": components["schemas"]["FlightSearchResponse"];
2376
2432
  };
2377
2433
  };
2378
2434
  /** @description Bad Request */
@@ -2405,7 +2461,7 @@ export interface paths {
2405
2461
  patch?: never;
2406
2462
  trace?: never;
2407
2463
  };
2408
- "/api/v1/payment/cart/authorize": {
2464
+ "/api/v1/flights/shop": {
2409
2465
  parameters: {
2410
2466
  query?: never;
2411
2467
  header?: never;
@@ -2415,8 +2471,8 @@ export interface paths {
2415
2471
  get?: never;
2416
2472
  put?: never;
2417
2473
  /**
2418
- * Create payment authorization for cart
2419
- * @description Create a payment authorization for a shopping cart quote using Stripe
2474
+ * Shop for flights or re-price an offer
2475
+ * @description Unified flight shop endpoint. When offer_token is present the handler re-prices that offer (price-check mode); otherwise it performs a live search by route with optional JIN-187 filter fields (cabin_class, direct_only, max_price, include_carriers, exclude_carriers).
2420
2476
  */
2421
2477
  post: {
2422
2478
  parameters: {
@@ -2425,20 +2481,20 @@ export interface paths {
2425
2481
  path?: never;
2426
2482
  cookie?: never;
2427
2483
  };
2428
- /** @description Cart payment authorization request */
2484
+ /** @description Shop flight request */
2429
2485
  requestBody: {
2430
2486
  content: {
2431
- "application/json": components["schemas"]["CartPaymentAuthorizationRequest"];
2487
+ "application/json": components["schemas"]["ShopFlightRequest"];
2432
2488
  };
2433
2489
  };
2434
2490
  responses: {
2435
- /** @description Created */
2436
- 201: {
2491
+ /** @description OK */
2492
+ 200: {
2437
2493
  headers: {
2438
2494
  [name: string]: unknown;
2439
2495
  };
2440
2496
  content: {
2441
- "application/json": components["schemas"]["PaymentAuthorizationResponse"];
2497
+ "application/json": components["schemas"]["ShopFlightResponse"];
2442
2498
  };
2443
2499
  };
2444
2500
  /** @description Bad Request */
@@ -2448,7 +2504,7 @@ export interface paths {
2448
2504
  };
2449
2505
  content: {
2450
2506
  "application/json": {
2451
- [key: string]: unknown;
2507
+ [key: string]: string;
2452
2508
  };
2453
2509
  };
2454
2510
  };
@@ -2459,7 +2515,7 @@ export interface paths {
2459
2515
  };
2460
2516
  content: {
2461
2517
  "application/json": {
2462
- [key: string]: unknown;
2518
+ [key: string]: string;
2463
2519
  };
2464
2520
  };
2465
2521
  };
@@ -2471,7 +2527,7 @@ export interface paths {
2471
2527
  patch?: never;
2472
2528
  trace?: never;
2473
2529
  };
2474
- "/api/v1/payment/quote/{quote_id}": {
2530
+ "/api/v1/hotels/{id}/details": {
2475
2531
  parameters: {
2476
2532
  query?: never;
2477
2533
  header?: never;
@@ -2479,16 +2535,21 @@ export interface paths {
2479
2535
  cookie?: never;
2480
2536
  };
2481
2537
  /**
2482
- * Get payment authorization by quote ID
2483
- * @description Retrieve payment authorization information by quote ID
2538
+ * Get rich hotel details
2539
+ * @description Returns gallery, facilities, policies, and per-room metadata for a single hotel. Intended for lazy loading from the hotel fullscreen widget.
2484
2540
  */
2485
2541
  get: {
2486
2542
  parameters: {
2487
- query?: never;
2543
+ query?: {
2544
+ /** @description Check-in date (YYYY-MM-DD). Accepted for future cache-key alignment; currently unused by the underlying fetch. */
2545
+ checkin?: string;
2546
+ /** @description Check-out date (YYYY-MM-DD). Accepted for future cache-key alignment; currently unused by the underlying fetch. */
2547
+ checkout?: string;
2548
+ };
2488
2549
  header?: never;
2489
2550
  path: {
2490
- /** @description Quote ID */
2491
- quote_id: number;
2551
+ /** @description Hotel ID */
2552
+ id: string;
2492
2553
  };
2493
2554
  cookie?: never;
2494
2555
  };
@@ -2500,7 +2561,7 @@ export interface paths {
2500
2561
  [name: string]: unknown;
2501
2562
  };
2502
2563
  content: {
2503
- "application/json": components["schemas"]["PaymentAuthorization"];
2564
+ "application/json": components["schemas"]["HotelDetailsResponse"];
2504
2565
  };
2505
2566
  };
2506
2567
  /** @description Bad Request */
@@ -2546,7 +2607,7 @@ export interface paths {
2546
2607
  patch?: never;
2547
2608
  trace?: never;
2548
2609
  };
2549
- "/api/v1/payment/stripe/client-secret": {
2610
+ "/api/v1/hotels/cancel-booking": {
2550
2611
  parameters: {
2551
2612
  query?: never;
2552
2613
  header?: never;
@@ -2556,20 +2617,23 @@ export interface paths {
2556
2617
  get?: never;
2557
2618
  put?: never;
2558
2619
  /**
2559
- * Get client secret or checkout URL
2560
- * @description Get the Stripe client secret (PaymentIntent flow) or checkout URL (Checkout Session flow)
2620
+ * Cancel a hotel booking
2621
+ * @description Cancel a hotel booking by provider_booking_id (authenticated) or booking_ref + last_name (guest). Idempotent — repeat calls on an already-cancelled booking return the stored cancellation result without hitting the upstream provider.
2561
2622
  */
2562
2623
  post: {
2563
2624
  parameters: {
2564
- query?: never;
2625
+ query?: {
2626
+ /** @description Target a specific provider (e.g. nuitee). When omitted, body provider field is used. */
2627
+ provider?: string;
2628
+ };
2565
2629
  header?: never;
2566
2630
  path?: never;
2567
2631
  cookie?: never;
2568
2632
  };
2569
- /** @description Client secret request */
2633
+ /** @description Cancel hotel booking request */
2570
2634
  requestBody: {
2571
2635
  content: {
2572
- "application/json": components["schemas"]["ClientSecretRequest"];
2636
+ "application/json": components["schemas"]["CancelHotelBookingRequest"];
2573
2637
  };
2574
2638
  };
2575
2639
  responses: {
@@ -2579,7 +2643,7 @@ export interface paths {
2579
2643
  [name: string]: unknown;
2580
2644
  };
2581
2645
  content: {
2582
- "application/json": components["schemas"]["ClientSecretResponse"];
2646
+ "application/json": components["schemas"]["CancelHotelBookingResponse"];
2583
2647
  };
2584
2648
  };
2585
2649
  /** @description Bad Request */
@@ -2593,6 +2657,17 @@ export interface paths {
2593
2657
  };
2594
2658
  };
2595
2659
  };
2660
+ /** @description Not Found */
2661
+ 404: {
2662
+ headers: {
2663
+ [name: string]: unknown;
2664
+ };
2665
+ content: {
2666
+ "application/json": {
2667
+ [key: string]: unknown;
2668
+ };
2669
+ };
2670
+ };
2596
2671
  /** @description Internal Server Error */
2597
2672
  500: {
2598
2673
  headers: {
@@ -2604,6 +2679,17 @@ export interface paths {
2604
2679
  };
2605
2680
  };
2606
2681
  };
2682
+ /** @description Not Implemented */
2683
+ 501: {
2684
+ headers: {
2685
+ [name: string]: unknown;
2686
+ };
2687
+ content: {
2688
+ "application/json": {
2689
+ [key: string]: unknown;
2690
+ };
2691
+ };
2692
+ };
2607
2693
  };
2608
2694
  };
2609
2695
  delete?: never;
@@ -2612,7 +2698,7 @@ export interface paths {
2612
2698
  patch?: never;
2613
2699
  trace?: never;
2614
2700
  };
2615
- "/api/v1/shop/{cart_id}/quoted/{quoted_item_id}/ancillaries": {
2701
+ "/api/v1/hotels/retrieve-booking": {
2616
2702
  parameters: {
2617
2703
  query?: never;
2618
2704
  header?: never;
@@ -2620,26 +2706,25 @@ export interface paths {
2620
2706
  cookie?: never;
2621
2707
  };
2622
2708
  get?: never;
2709
+ put?: never;
2623
2710
  /**
2624
- * Select ancillaries for a quoted item
2625
- * @description Replace all ancillary selections on a quoted cart item (full-replace semantics)
2711
+ * Retrieve a hotel booking
2712
+ * @description Fetch a hotel booking snapshot by provider_booking_id (authenticated) or booking_ref + last_name (guest). Returns status, hotel + stay details, total price, and a normalised cancellation policy. Cancellation policies remain populated on cancelled bookings so callers can surface the original rules.
2626
2713
  */
2627
- put: {
2714
+ post: {
2628
2715
  parameters: {
2629
- query?: never;
2630
- header?: never;
2631
- path: {
2632
- /** @description Cart ID */
2633
- cart_id: number;
2634
- /** @description Quoted Cart Item ID */
2635
- quoted_item_id: number;
2716
+ query?: {
2717
+ /** @description Target a specific provider (e.g. nuitee). When omitted, body provider field is used. */
2718
+ provider?: string;
2636
2719
  };
2720
+ header?: never;
2721
+ path?: never;
2637
2722
  cookie?: never;
2638
2723
  };
2639
- /** @description Ancillary selections */
2724
+ /** @description Retrieve hotel booking request */
2640
2725
  requestBody: {
2641
2726
  content: {
2642
- "application/json": components["schemas"]["SelectAncillariesRequest"];
2727
+ "application/json": components["schemas"]["RetrieveHotelBookingRequest"];
2643
2728
  };
2644
2729
  };
2645
2730
  responses: {
@@ -2649,7 +2734,7 @@ export interface paths {
2649
2734
  [name: string]: unknown;
2650
2735
  };
2651
2736
  content: {
2652
- "application/json": components["schemas"]["SelectAncillariesResponse"];
2737
+ "application/json": components["schemas"]["RetrieveHotelBookingResponse"];
2653
2738
  };
2654
2739
  };
2655
2740
  /** @description Bad Request */
@@ -2663,8 +2748,8 @@ export interface paths {
2663
2748
  };
2664
2749
  };
2665
2750
  };
2666
- /** @description Forbidden */
2667
- 403: {
2751
+ /** @description Not Found */
2752
+ 404: {
2668
2753
  headers: {
2669
2754
  [name: string]: unknown;
2670
2755
  };
@@ -2674,8 +2759,8 @@ export interface paths {
2674
2759
  };
2675
2760
  };
2676
2761
  };
2677
- /** @description Not Found */
2678
- 404: {
2762
+ /** @description Internal Server Error */
2763
+ 500: {
2679
2764
  headers: {
2680
2765
  [name: string]: unknown;
2681
2766
  };
@@ -2685,8 +2770,8 @@ export interface paths {
2685
2770
  };
2686
2771
  };
2687
2772
  };
2688
- /** @description Internal Server Error */
2689
- 500: {
2773
+ /** @description Not Implemented */
2774
+ 501: {
2690
2775
  headers: {
2691
2776
  [name: string]: unknown;
2692
2777
  };
@@ -2698,14 +2783,13 @@ export interface paths {
2698
2783
  };
2699
2784
  };
2700
2785
  };
2701
- post?: never;
2702
2786
  delete?: never;
2703
2787
  options?: never;
2704
2788
  head?: never;
2705
2789
  patch?: never;
2706
2790
  trace?: never;
2707
2791
  };
2708
- "/api/v1/shop/fulfillment/confirm-payment": {
2792
+ "/api/v1/hotels/semantic-search": {
2709
2793
  parameters: {
2710
2794
  query?: never;
2711
2795
  header?: never;
@@ -2715,8 +2799,8 @@ export interface paths {
2715
2799
  get?: never;
2716
2800
  put?: never;
2717
2801
  /**
2718
- * Confirm payment and trigger booking
2719
- * @description Verify payment with Stripe API and transition fulfillment from awaiting_payment to processing
2802
+ * Semantic hotel search
2803
+ * @description Search hotels with a natural-language query (e.g. "beach
2720
2804
  */
2721
2805
  post: {
2722
2806
  parameters: {
@@ -2725,10 +2809,10 @@ export interface paths {
2725
2809
  path?: never;
2726
2810
  cookie?: never;
2727
2811
  };
2728
- /** @description Confirm payment request */
2812
+ /** @description Semantic search request */
2729
2813
  requestBody: {
2730
2814
  content: {
2731
- "application/json": components["schemas"]["ConfirmPaymentRequest"];
2815
+ "application/json": components["schemas"]["SemanticSearchRequest"];
2732
2816
  };
2733
2817
  };
2734
2818
  responses: {
@@ -2738,7 +2822,7 @@ export interface paths {
2738
2822
  [name: string]: unknown;
2739
2823
  };
2740
2824
  content: {
2741
- "application/json": components["schemas"]["ConfirmPaymentResponse"];
2825
+ "application/json": components["schemas"]["SemanticSearchResult"];
2742
2826
  };
2743
2827
  };
2744
2828
  /** @description Bad Request */
@@ -2747,20 +2831,7 @@ export interface paths {
2747
2831
  [name: string]: unknown;
2748
2832
  };
2749
2833
  content: {
2750
- "application/json": {
2751
- [key: string]: unknown;
2752
- };
2753
- };
2754
- };
2755
- /** @description Not Found */
2756
- 404: {
2757
- headers: {
2758
- [name: string]: unknown;
2759
- };
2760
- content: {
2761
- "application/json": {
2762
- [key: string]: unknown;
2763
- };
2834
+ "application/json": components["schemas"]["ErrorResponse"];
2764
2835
  };
2765
2836
  };
2766
2837
  /** @description Internal Server Error */
@@ -2769,9 +2840,7 @@ export interface paths {
2769
2840
  [name: string]: unknown;
2770
2841
  };
2771
2842
  content: {
2772
- "application/json": {
2773
- [key: string]: unknown;
2774
- };
2843
+ "application/json": components["schemas"]["ErrorResponse"];
2775
2844
  };
2776
2845
  };
2777
2846
  };
@@ -2782,7 +2851,7 @@ export interface paths {
2782
2851
  patch?: never;
2783
2852
  trace?: never;
2784
2853
  };
2785
- "/api/v1/shop/fulfillment/pull": {
2854
+ "/api/v1/hotels/shop": {
2786
2855
  parameters: {
2787
2856
  query?: never;
2788
2857
  header?: never;
@@ -2792,8 +2861,8 @@ export interface paths {
2792
2861
  get?: never;
2793
2862
  put?: never;
2794
2863
  /**
2795
- * Pull fulfillment results
2796
- * @description Retrieve current fulfillment orchestration status and results
2864
+ * Shop hotel rates
2865
+ * @description Search hotels by destination and return available rooms with live pricing
2797
2866
  */
2798
2867
  post: {
2799
2868
  parameters: {
@@ -2802,10 +2871,10 @@ export interface paths {
2802
2871
  path?: never;
2803
2872
  cookie?: never;
2804
2873
  };
2805
- /** @description Pull fulfillment request */
2874
+ /** @description Hotel shop request */
2806
2875
  requestBody: {
2807
2876
  content: {
2808
- "application/json": components["schemas"]["PullFulfillmentRequest"];
2877
+ "application/json": components["schemas"]["ShopRequest"];
2809
2878
  };
2810
2879
  };
2811
2880
  responses: {
@@ -2815,7 +2884,7 @@ export interface paths {
2815
2884
  [name: string]: unknown;
2816
2885
  };
2817
2886
  content: {
2818
- "application/json": components["schemas"]["PullFulfillmentResponse"];
2887
+ "application/json": components["schemas"]["HotelShopResponse"];
2819
2888
  };
2820
2889
  };
2821
2890
  /** @description Bad Request */
@@ -2829,17 +2898,6 @@ export interface paths {
2829
2898
  };
2830
2899
  };
2831
2900
  };
2832
- /** @description Not Found */
2833
- 404: {
2834
- headers: {
2835
- [name: string]: unknown;
2836
- };
2837
- content: {
2838
- "application/json": {
2839
- [key: string]: unknown;
2840
- };
2841
- };
2842
- };
2843
2901
  /** @description Internal Server Error */
2844
2902
  500: {
2845
2903
  headers: {
@@ -2859,32 +2917,28 @@ export interface paths {
2859
2917
  patch?: never;
2860
2918
  trace?: never;
2861
2919
  };
2862
- "/api/v1/shop/fulfillment/schedule": {
2920
+ "/api/v1/payment/authorization/{id}": {
2863
2921
  parameters: {
2864
2922
  query?: never;
2865
2923
  header?: never;
2866
2924
  path?: never;
2867
2925
  cookie?: never;
2868
2926
  };
2869
- get?: never;
2870
- put?: never;
2871
2927
  /**
2872
- * Schedule fulfillment orchestration
2873
- * @description Schedule fulfillment orchestration for all successfully quoted products
2928
+ * Get payment authorization by ID
2929
+ * @description Retrieve payment authorization information by ID
2874
2930
  */
2875
- post: {
2931
+ get: {
2876
2932
  parameters: {
2877
2933
  query?: never;
2878
2934
  header?: never;
2879
- path?: never;
2880
- cookie?: never;
2881
- };
2882
- /** @description Schedule fulfillment request */
2883
- requestBody: {
2884
- content: {
2885
- "application/json": components["schemas"]["ScheduleFulfillmentRequest"];
2935
+ path: {
2936
+ /** @description Payment Authorization ID */
2937
+ id: string;
2886
2938
  };
2939
+ cookie?: never;
2887
2940
  };
2941
+ requestBody?: never;
2888
2942
  responses: {
2889
2943
  /** @description OK */
2890
2944
  200: {
@@ -2892,7 +2946,7 @@ export interface paths {
2892
2946
  [name: string]: unknown;
2893
2947
  };
2894
2948
  content: {
2895
- "application/json": components["schemas"]["ScheduleFulfillmentResponse"];
2949
+ "application/json": components["schemas"]["PaymentAuthorization"];
2896
2950
  };
2897
2951
  };
2898
2952
  /** @description Bad Request */
@@ -2917,17 +2971,6 @@ export interface paths {
2917
2971
  };
2918
2972
  };
2919
2973
  };
2920
- /** @description Conflict */
2921
- 409: {
2922
- headers: {
2923
- [name: string]: unknown;
2924
- };
2925
- content: {
2926
- "application/json": {
2927
- [key: string]: unknown;
2928
- };
2929
- };
2930
- };
2931
2974
  /** @description Internal Server Error */
2932
2975
  500: {
2933
2976
  headers: {
@@ -2941,13 +2984,15 @@ export interface paths {
2941
2984
  };
2942
2985
  };
2943
2986
  };
2987
+ put?: never;
2988
+ post?: never;
2944
2989
  delete?: never;
2945
2990
  options?: never;
2946
2991
  head?: never;
2947
2992
  patch?: never;
2948
2993
  trace?: never;
2949
2994
  };
2950
- "/api/v1/shop/quote/pull": {
2995
+ "/api/v1/payment/authorization/{id}/capture": {
2951
2996
  parameters: {
2952
2997
  query?: never;
2953
2998
  header?: never;
@@ -2957,20 +3002,23 @@ export interface paths {
2957
3002
  get?: never;
2958
3003
  put?: never;
2959
3004
  /**
2960
- * Pull quote results
2961
- * @description Retrieve current quote orchestration status and results
3005
+ * Capture payment
3006
+ * @description Capture an authorized payment (full or partial amount)
2962
3007
  */
2963
3008
  post: {
2964
3009
  parameters: {
2965
3010
  query?: never;
2966
3011
  header?: never;
2967
- path?: never;
3012
+ path: {
3013
+ /** @description Payment Authorization ID */
3014
+ id: string;
3015
+ };
2968
3016
  cookie?: never;
2969
3017
  };
2970
- /** @description Pull quote request */
2971
- requestBody: {
3018
+ /** @description Amount to capture (optional, defaults to full amount) */
3019
+ requestBody?: {
2972
3020
  content: {
2973
- "application/json": components["schemas"]["PullQuoteRequest"];
3021
+ "application/json": components["schemas"]["Amount"];
2974
3022
  };
2975
3023
  };
2976
3024
  responses: {
@@ -2980,7 +3028,7 @@ export interface paths {
2980
3028
  [name: string]: unknown;
2981
3029
  };
2982
3030
  content: {
2983
- "application/json": components["schemas"]["PullQuoteResponse"];
3031
+ "application/json": components["schemas"]["PaymentCapture"];
2984
3032
  };
2985
3033
  };
2986
3034
  /** @description Bad Request */
@@ -3024,32 +3072,28 @@ export interface paths {
3024
3072
  patch?: never;
3025
3073
  trace?: never;
3026
3074
  };
3027
- "/api/v1/shop/quote/schedule": {
3075
+ "/api/v1/payment/authorization/{id}/status": {
3028
3076
  parameters: {
3029
3077
  query?: never;
3030
3078
  header?: never;
3031
3079
  path?: never;
3032
3080
  cookie?: never;
3033
3081
  };
3034
- get?: never;
3035
- put?: never;
3036
3082
  /**
3037
- * Schedule quote orchestration
3038
- * @description Schedule quote orchestration for all products in a cart
3083
+ * Check payment status
3084
+ * @description Check the current status of a payment from Stripe and update local record
3039
3085
  */
3040
- post: {
3086
+ get: {
3041
3087
  parameters: {
3042
3088
  query?: never;
3043
3089
  header?: never;
3044
- path?: never;
3045
- cookie?: never;
3046
- };
3047
- /** @description Schedule quote request */
3048
- requestBody: {
3049
- content: {
3050
- "application/json": components["schemas"]["ScheduleQuoteRequest"];
3090
+ path: {
3091
+ /** @description Payment Authorization ID */
3092
+ id: string;
3051
3093
  };
3094
+ cookie?: never;
3052
3095
  };
3096
+ requestBody?: never;
3053
3097
  responses: {
3054
3098
  /** @description OK */
3055
3099
  200: {
@@ -3057,7 +3101,7 @@ export interface paths {
3057
3101
  [name: string]: unknown;
3058
3102
  };
3059
3103
  content: {
3060
- "application/json": components["schemas"]["ScheduleQuoteResponse"];
3104
+ "application/json": components["schemas"]["PaymentAuthorization"];
3061
3105
  };
3062
3106
  };
3063
3107
  /** @description Bad Request */
@@ -3082,17 +3126,6 @@ export interface paths {
3082
3126
  };
3083
3127
  };
3084
3128
  };
3085
- /** @description Conflict */
3086
- 409: {
3087
- headers: {
3088
- [name: string]: unknown;
3089
- };
3090
- content: {
3091
- "application/json": {
3092
- [key: string]: unknown;
3093
- };
3094
- };
3095
- };
3096
3129
  /** @description Internal Server Error */
3097
3130
  500: {
3098
3131
  headers: {
@@ -3106,13 +3139,15 @@ export interface paths {
3106
3139
  };
3107
3140
  };
3108
3141
  };
3142
+ put?: never;
3143
+ post?: never;
3109
3144
  delete?: never;
3110
3145
  options?: never;
3111
3146
  head?: never;
3112
3147
  patch?: never;
3113
3148
  trace?: never;
3114
3149
  };
3115
- "/api/v1/shopping_cart/shop": {
3150
+ "/api/v1/payment/authorize": {
3116
3151
  parameters: {
3117
3152
  query?: never;
3118
3153
  header?: never;
@@ -3122,8 +3157,8 @@ export interface paths {
3122
3157
  get?: never;
3123
3158
  put?: never;
3124
3159
  /**
3125
- * Create shopping cart
3126
- * @description Create a new shopping cart bound to a session
3160
+ * Create payment authorization
3161
+ * @description Create a payment authorization for a quote using Stripe
3127
3162
  */
3128
3163
  post: {
3129
3164
  parameters: {
@@ -3132,10 +3167,10 @@ export interface paths {
3132
3167
  path?: never;
3133
3168
  cookie?: never;
3134
3169
  };
3135
- /** @description Cart create request */
3170
+ /** @description Payment authorization request */
3136
3171
  requestBody: {
3137
3172
  content: {
3138
- "application/json": components["schemas"]["CartCreateRequest"];
3173
+ "application/json": components["schemas"]["PaymentAuthorizationRequest"];
3139
3174
  };
3140
3175
  };
3141
3176
  responses: {
@@ -3145,7 +3180,7 @@ export interface paths {
3145
3180
  [name: string]: unknown;
3146
3181
  };
3147
3182
  content: {
3148
- "application/json": components["schemas"]["CartCreateResponse"];
3183
+ "application/json": components["schemas"]["PaymentAuthorizationResponse"];
3149
3184
  };
3150
3185
  };
3151
3186
  /** @description Bad Request */
@@ -3159,15 +3194,6 @@ export interface paths {
3159
3194
  };
3160
3195
  };
3161
3196
  };
3162
- /** @description Cart already exists */
3163
- 409: {
3164
- headers: {
3165
- [name: string]: unknown;
3166
- };
3167
- content: {
3168
- "application/json": components["schemas"]["CartCreateResponse"];
3169
- };
3170
- };
3171
3197
  /** @description Internal Server Error */
3172
3198
  500: {
3173
3199
  headers: {
@@ -3187,36 +3213,40 @@ export interface paths {
3187
3213
  patch?: never;
3188
3214
  trace?: never;
3189
3215
  };
3190
- "/api/v1/shopping_cart/shop/{cart_id}": {
3216
+ "/api/v1/payment/cart/authorize": {
3191
3217
  parameters: {
3192
3218
  query?: never;
3193
3219
  header?: never;
3194
3220
  path?: never;
3195
3221
  cookie?: never;
3196
3222
  };
3223
+ get?: never;
3224
+ put?: never;
3197
3225
  /**
3198
- * Get shopping cart
3199
- * @description Retrieve a shopping cart with its products
3226
+ * Create payment authorization for cart
3227
+ * @description Create a payment authorization for a shopping cart quote using Stripe
3200
3228
  */
3201
- get: {
3229
+ post: {
3202
3230
  parameters: {
3203
3231
  query?: never;
3204
3232
  header?: never;
3205
- path: {
3206
- /** @description Cart ID */
3207
- cart_id: number;
3208
- };
3233
+ path?: never;
3209
3234
  cookie?: never;
3210
3235
  };
3211
- requestBody?: never;
3236
+ /** @description Cart payment authorization request */
3237
+ requestBody: {
3238
+ content: {
3239
+ "application/json": components["schemas"]["CartPaymentAuthorizationRequest"];
3240
+ };
3241
+ };
3212
3242
  responses: {
3213
- /** @description OK */
3214
- 200: {
3243
+ /** @description Created */
3244
+ 201: {
3215
3245
  headers: {
3216
3246
  [name: string]: unknown;
3217
3247
  };
3218
3248
  content: {
3219
- "application/json": components["schemas"]["CartGetResponse"];
3249
+ "application/json": components["schemas"]["PaymentAuthorizationResponse"];
3220
3250
  };
3221
3251
  };
3222
3252
  /** @description Bad Request */
@@ -3230,17 +3260,6 @@ export interface paths {
3230
3260
  };
3231
3261
  };
3232
3262
  };
3233
- /** @description Not Found */
3234
- 404: {
3235
- headers: {
3236
- [name: string]: unknown;
3237
- };
3238
- content: {
3239
- "application/json": {
3240
- [key: string]: unknown;
3241
- };
3242
- };
3243
- };
3244
3263
  /** @description Internal Server Error */
3245
3264
  500: {
3246
3265
  headers: {
@@ -3254,26 +3273,34 @@ export interface paths {
3254
3273
  };
3255
3274
  };
3256
3275
  };
3276
+ delete?: never;
3277
+ options?: never;
3278
+ head?: never;
3279
+ patch?: never;
3280
+ trace?: never;
3281
+ };
3282
+ "/api/v1/payment/quote/{quote_id}": {
3283
+ parameters: {
3284
+ query?: never;
3285
+ header?: never;
3286
+ path?: never;
3287
+ cookie?: never;
3288
+ };
3257
3289
  /**
3258
- * Add product to cart
3259
- * @description Add a product to an existing shopping cart
3290
+ * Get payment authorization by quote ID
3291
+ * @description Retrieve payment authorization information by quote ID
3260
3292
  */
3261
- put: {
3293
+ get: {
3262
3294
  parameters: {
3263
3295
  query?: never;
3264
3296
  header?: never;
3265
3297
  path: {
3266
- /** @description Cart ID */
3267
- cart_id: number;
3298
+ /** @description Quote ID */
3299
+ quote_id: number;
3268
3300
  };
3269
3301
  cookie?: never;
3270
3302
  };
3271
- /** @description Add product request */
3272
- requestBody: {
3273
- content: {
3274
- "application/json": components["schemas"]["AddProductRequest"];
3275
- };
3276
- };
3303
+ requestBody?: never;
3277
3304
  responses: {
3278
3305
  /** @description OK */
3279
3306
  200: {
@@ -3281,7 +3308,7 @@ export interface paths {
3281
3308
  [name: string]: unknown;
3282
3309
  };
3283
3310
  content: {
3284
- "application/json": components["schemas"]["AddProductResponse"];
3311
+ "application/json": components["schemas"]["PaymentAuthorization"];
3285
3312
  };
3286
3313
  };
3287
3314
  /** @description Bad Request */
@@ -3306,17 +3333,6 @@ export interface paths {
3306
3333
  };
3307
3334
  };
3308
3335
  };
3309
- /** @description Conflict */
3310
- 409: {
3311
- headers: {
3312
- [name: string]: unknown;
3313
- };
3314
- content: {
3315
- "application/json": {
3316
- [key: string]: unknown;
3317
- };
3318
- };
3319
- };
3320
3336
  /** @description Internal Server Error */
3321
3337
  500: {
3322
3338
  headers: {
@@ -3330,6 +3346,7 @@ export interface paths {
3330
3346
  };
3331
3347
  };
3332
3348
  };
3349
+ put?: never;
3333
3350
  post?: never;
3334
3351
  delete?: never;
3335
3352
  options?: never;
@@ -3337,30 +3354,32 @@ export interface paths {
3337
3354
  patch?: never;
3338
3355
  trace?: never;
3339
3356
  };
3340
- "/api/v1/shopping_cart/shop/{cart_id}/{product_id}": {
3357
+ "/api/v1/payment/stripe/client-secret": {
3341
3358
  parameters: {
3342
3359
  query?: never;
3343
3360
  header?: never;
3344
3361
  path?: never;
3345
3362
  cookie?: never;
3346
3363
  };
3364
+ get?: never;
3365
+ put?: never;
3347
3366
  /**
3348
- * Get product from cart
3349
- * @description Retrieve a specific product's details from the cart
3367
+ * Get client secret or checkout URL
3368
+ * @description Get the Stripe client secret (PaymentIntent flow) or checkout URL (Checkout Session flow)
3350
3369
  */
3351
- get: {
3370
+ post: {
3352
3371
  parameters: {
3353
3372
  query?: never;
3354
3373
  header?: never;
3355
- path: {
3356
- /** @description Cart ID */
3357
- cart_id: number;
3358
- /** @description Product ID */
3359
- product_id: string;
3360
- };
3374
+ path?: never;
3361
3375
  cookie?: never;
3362
3376
  };
3363
- requestBody?: never;
3377
+ /** @description Client secret request */
3378
+ requestBody: {
3379
+ content: {
3380
+ "application/json": components["schemas"]["ClientSecretRequest"];
3381
+ };
3382
+ };
3364
3383
  responses: {
3365
3384
  /** @description OK */
3366
3385
  200: {
@@ -3368,7 +3387,7 @@ export interface paths {
3368
3387
  [name: string]: unknown;
3369
3388
  };
3370
3389
  content: {
3371
- "application/json": components["schemas"]["CartProduct"];
3390
+ "application/json": components["schemas"]["ClientSecretResponse"];
3372
3391
  };
3373
3392
  };
3374
3393
  /** @description Bad Request */
@@ -3382,17 +3401,6 @@ export interface paths {
3382
3401
  };
3383
3402
  };
3384
3403
  };
3385
- /** @description Not Found */
3386
- 404: {
3387
- headers: {
3388
- [name: string]: unknown;
3389
- };
3390
- content: {
3391
- "application/json": {
3392
- [key: string]: unknown;
3393
- };
3394
- };
3395
- };
3396
3404
  /** @description Internal Server Error */
3397
3405
  500: {
3398
3406
  headers: {
@@ -3406,25 +3414,42 @@ export interface paths {
3406
3414
  };
3407
3415
  };
3408
3416
  };
3409
- put?: never;
3410
- post?: never;
3417
+ delete?: never;
3418
+ options?: never;
3419
+ head?: never;
3420
+ patch?: never;
3421
+ trace?: never;
3422
+ };
3423
+ "/api/v1/shop/{cart_id}/quoted/{quoted_item_id}/ancillaries": {
3424
+ parameters: {
3425
+ query?: never;
3426
+ header?: never;
3427
+ path?: never;
3428
+ cookie?: never;
3429
+ };
3430
+ get?: never;
3411
3431
  /**
3412
- * Remove product from cart
3413
- * @description Remove a product from the shopping cart (soft delete)
3432
+ * Select ancillaries for a quoted item
3433
+ * @description Replace all ancillary selections on a quoted cart item (full-replace semantics)
3414
3434
  */
3415
- delete: {
3435
+ put: {
3416
3436
  parameters: {
3417
3437
  query?: never;
3418
3438
  header?: never;
3419
3439
  path: {
3420
3440
  /** @description Cart ID */
3421
3441
  cart_id: number;
3422
- /** @description Product ID */
3423
- product_id: string;
3442
+ /** @description Quoted Cart Item ID */
3443
+ quoted_item_id: number;
3424
3444
  };
3425
3445
  cookie?: never;
3426
3446
  };
3427
- requestBody?: never;
3447
+ /** @description Ancillary selections */
3448
+ requestBody: {
3449
+ content: {
3450
+ "application/json": components["schemas"]["SelectAncillariesRequest"];
3451
+ };
3452
+ };
3428
3453
  responses: {
3429
3454
  /** @description OK */
3430
3455
  200: {
@@ -3432,7 +3457,7 @@ export interface paths {
3432
3457
  [name: string]: unknown;
3433
3458
  };
3434
3459
  content: {
3435
- "application/json": components["schemas"]["CartGetResponse"];
3460
+ "application/json": components["schemas"]["SelectAncillariesResponse"];
3436
3461
  };
3437
3462
  };
3438
3463
  /** @description Bad Request */
@@ -3446,6 +3471,17 @@ export interface paths {
3446
3471
  };
3447
3472
  };
3448
3473
  };
3474
+ /** @description Forbidden */
3475
+ 403: {
3476
+ headers: {
3477
+ [name: string]: unknown;
3478
+ };
3479
+ content: {
3480
+ "application/json": {
3481
+ [key: string]: unknown;
3482
+ };
3483
+ };
3484
+ };
3449
3485
  /** @description Not Found */
3450
3486
  404: {
3451
3487
  headers: {
@@ -3470,12 +3506,14 @@ export interface paths {
3470
3506
  };
3471
3507
  };
3472
3508
  };
3509
+ post?: never;
3510
+ delete?: never;
3473
3511
  options?: never;
3474
3512
  head?: never;
3475
3513
  patch?: never;
3476
3514
  trace?: never;
3477
3515
  };
3478
- "/api/v1/shopping_cart/shop/{cart_id}/travelers": {
3516
+ "/api/v1/shop/fulfillment/confirm-payment": {
3479
3517
  parameters: {
3480
3518
  query?: never;
3481
3519
  header?: never;
@@ -3483,24 +3521,22 @@ export interface paths {
3483
3521
  cookie?: never;
3484
3522
  };
3485
3523
  get?: never;
3524
+ put?: never;
3486
3525
  /**
3487
- * Update cart travelers
3488
- * @description Update contact info and/or travelers on a shopping cart
3526
+ * Confirm payment and trigger booking
3527
+ * @description Verify payment with Stripe API and transition fulfillment from awaiting_payment to processing
3489
3528
  */
3490
- put: {
3529
+ post: {
3491
3530
  parameters: {
3492
3531
  query?: never;
3493
3532
  header?: never;
3494
- path: {
3495
- /** @description Cart ID */
3496
- cart_id: number;
3497
- };
3533
+ path?: never;
3498
3534
  cookie?: never;
3499
3535
  };
3500
- /** @description Update travelers request */
3536
+ /** @description Confirm payment request */
3501
3537
  requestBody: {
3502
3538
  content: {
3503
- "application/json": components["schemas"]["CartUpdateTravelersRequest"];
3539
+ "application/json": components["schemas"]["ConfirmPaymentRequest"];
3504
3540
  };
3505
3541
  };
3506
3542
  responses: {
@@ -3510,9 +3546,7 @@ export interface paths {
3510
3546
  [name: string]: unknown;
3511
3547
  };
3512
3548
  content: {
3513
- "application/json": {
3514
- [key: string]: unknown;
3515
- };
3549
+ "application/json": components["schemas"]["ConfirmPaymentResponse"];
3516
3550
  };
3517
3551
  };
3518
3552
  /** @description Bad Request */
@@ -3526,17 +3560,6 @@ export interface paths {
3526
3560
  };
3527
3561
  };
3528
3562
  };
3529
- /** @description Forbidden */
3530
- 403: {
3531
- headers: {
3532
- [name: string]: unknown;
3533
- };
3534
- content: {
3535
- "application/json": {
3536
- [key: string]: unknown;
3537
- };
3538
- };
3539
- };
3540
3563
  /** @description Not Found */
3541
3564
  404: {
3542
3565
  headers: {
@@ -3561,14 +3584,13 @@ export interface paths {
3561
3584
  };
3562
3585
  };
3563
3586
  };
3564
- post?: never;
3565
3587
  delete?: never;
3566
3588
  options?: never;
3567
3589
  head?: never;
3568
3590
  patch?: never;
3569
3591
  trace?: never;
3570
3592
  };
3571
- "/devplatform/flights/shop": {
3593
+ "/api/v1/shop/fulfillment/pull": {
3572
3594
  parameters: {
3573
3595
  query?: never;
3574
3596
  header?: never;
@@ -3578,8 +3600,8 @@ export interface paths {
3578
3600
  get?: never;
3579
3601
  put?: never;
3580
3602
  /**
3581
- * Shop for flights or re-price an offer
3582
- * @description Unified flight shop endpoint. When offer_token is present the handler re-prices that offer (price-check mode); otherwise it performs a live search by route with optional JIN-187 filter fields (cabin_class, direct_only, max_price, include_carriers, exclude_carriers).
3603
+ * Pull fulfillment results
3604
+ * @description Retrieve current fulfillment orchestration status and results
3583
3605
  */
3584
3606
  post: {
3585
3607
  parameters: {
@@ -3588,10 +3610,10 @@ export interface paths {
3588
3610
  path?: never;
3589
3611
  cookie?: never;
3590
3612
  };
3591
- /** @description Shop flight request */
3613
+ /** @description Pull fulfillment request */
3592
3614
  requestBody: {
3593
3615
  content: {
3594
- "application/json": components["schemas"]["ShopFlightRequest"];
3616
+ "application/json": components["schemas"]["PullFulfillmentRequest"];
3595
3617
  };
3596
3618
  };
3597
3619
  responses: {
@@ -3601,7 +3623,7 @@ export interface paths {
3601
3623
  [name: string]: unknown;
3602
3624
  };
3603
3625
  content: {
3604
- "application/json": components["schemas"]["ShopFlightResponse"];
3626
+ "application/json": components["schemas"]["PullFulfillmentResponse"];
3605
3627
  };
3606
3628
  };
3607
3629
  /** @description Bad Request */
@@ -3611,7 +3633,18 @@ export interface paths {
3611
3633
  };
3612
3634
  content: {
3613
3635
  "application/json": {
3614
- [key: string]: string;
3636
+ [key: string]: unknown;
3637
+ };
3638
+ };
3639
+ };
3640
+ /** @description Not Found */
3641
+ 404: {
3642
+ headers: {
3643
+ [name: string]: unknown;
3644
+ };
3645
+ content: {
3646
+ "application/json": {
3647
+ [key: string]: unknown;
3615
3648
  };
3616
3649
  };
3617
3650
  };
@@ -3622,7 +3655,7 @@ export interface paths {
3622
3655
  };
3623
3656
  content: {
3624
3657
  "application/json": {
3625
- [key: string]: string;
3658
+ [key: string]: unknown;
3626
3659
  };
3627
3660
  };
3628
3661
  };
@@ -3634,7 +3667,7 @@ export interface paths {
3634
3667
  patch?: never;
3635
3668
  trace?: never;
3636
3669
  };
3637
- "/shop/sync": {
3670
+ "/api/v1/shop/fulfillment/schedule": {
3638
3671
  parameters: {
3639
3672
  query?: never;
3640
3673
  header?: never;
@@ -3644,8 +3677,8 @@ export interface paths {
3644
3677
  get?: never;
3645
3678
  put?: never;
3646
3679
  /**
3647
- * Create or update a trip (cart)
3648
- * @description Unified trip management endpoint. Accepts create / add_product / remove_product / set_travelers / remove_travelers actions and returns the resulting trip state.
3680
+ * Schedule fulfillment orchestration
3681
+ * @description Schedule fulfillment orchestration for all successfully quoted products
3649
3682
  */
3650
3683
  post: {
3651
3684
  parameters: {
@@ -3654,50 +3687,52 @@ export interface paths {
3654
3687
  path?: never;
3655
3688
  cookie?: never;
3656
3689
  };
3657
- /** @description Trip request */
3690
+ /** @description Schedule fulfillment request */
3658
3691
  requestBody: {
3659
3692
  content: {
3660
- "application/json": components["schemas"]["TripRequest"];
3693
+ "application/json": components["schemas"]["ScheduleFulfillmentRequest"];
3661
3694
  };
3662
3695
  };
3663
3696
  responses: {
3664
- /** @description Trip updated */
3697
+ /** @description OK */
3665
3698
  200: {
3666
3699
  headers: {
3667
3700
  [name: string]: unknown;
3668
3701
  };
3669
3702
  content: {
3670
- "application/json": components["schemas"]["TripResponse"];
3703
+ "application/json": components["schemas"]["ScheduleFulfillmentResponse"];
3671
3704
  };
3672
3705
  };
3673
- /** @description Trip created */
3674
- 201: {
3706
+ /** @description Bad Request */
3707
+ 400: {
3675
3708
  headers: {
3676
3709
  [name: string]: unknown;
3677
3710
  };
3678
3711
  content: {
3679
- "application/json": components["schemas"]["TripResponse"];
3712
+ "application/json": {
3713
+ [key: string]: unknown;
3714
+ };
3680
3715
  };
3681
3716
  };
3682
- /** @description Bad Request */
3683
- 400: {
3717
+ /** @description Not Found */
3718
+ 404: {
3684
3719
  headers: {
3685
3720
  [name: string]: unknown;
3686
3721
  };
3687
3722
  content: {
3688
3723
  "application/json": {
3689
- [key: string]: string;
3724
+ [key: string]: unknown;
3690
3725
  };
3691
3726
  };
3692
3727
  };
3693
- /** @description Not Found */
3694
- 404: {
3728
+ /** @description Conflict */
3729
+ 409: {
3695
3730
  headers: {
3696
3731
  [name: string]: unknown;
3697
3732
  };
3698
3733
  content: {
3699
3734
  "application/json": {
3700
- [key: string]: string;
3735
+ [key: string]: unknown;
3701
3736
  };
3702
3737
  };
3703
3738
  };
@@ -3708,7 +3743,7 @@ export interface paths {
3708
3743
  };
3709
3744
  content: {
3710
3745
  "application/json": {
3711
- [key: string]: string;
3746
+ [key: string]: unknown;
3712
3747
  };
3713
3748
  };
3714
3749
  };
@@ -3720,26 +3755,277 @@ export interface paths {
3720
3755
  patch?: never;
3721
3756
  trace?: never;
3722
3757
  };
3723
- "/shop/sync/{id}": {
3758
+ "/api/v1/shop/quote/pull": {
3724
3759
  parameters: {
3725
3760
  query?: never;
3726
3761
  header?: never;
3727
3762
  path?: never;
3728
3763
  cookie?: never;
3729
3764
  };
3730
- /** Retrieve a trip by ID */
3731
- get: {
3765
+ get?: never;
3766
+ put?: never;
3767
+ /**
3768
+ * Pull quote results
3769
+ * @description Retrieve current quote orchestration status and results
3770
+ */
3771
+ post: {
3732
3772
  parameters: {
3733
3773
  query?: never;
3734
3774
  header?: never;
3735
- path: {
3736
- /** @description Trip (cart) ID */
3737
- id: string;
3738
- };
3775
+ path?: never;
3739
3776
  cookie?: never;
3740
3777
  };
3741
- requestBody?: never;
3742
- responses: {
3778
+ /** @description Pull quote request */
3779
+ requestBody: {
3780
+ content: {
3781
+ "application/json": components["schemas"]["PullQuoteRequest"];
3782
+ };
3783
+ };
3784
+ responses: {
3785
+ /** @description OK */
3786
+ 200: {
3787
+ headers: {
3788
+ [name: string]: unknown;
3789
+ };
3790
+ content: {
3791
+ "application/json": components["schemas"]["PullQuoteResponse"];
3792
+ };
3793
+ };
3794
+ /** @description Bad Request */
3795
+ 400: {
3796
+ headers: {
3797
+ [name: string]: unknown;
3798
+ };
3799
+ content: {
3800
+ "application/json": {
3801
+ [key: string]: unknown;
3802
+ };
3803
+ };
3804
+ };
3805
+ /** @description Not Found */
3806
+ 404: {
3807
+ headers: {
3808
+ [name: string]: unknown;
3809
+ };
3810
+ content: {
3811
+ "application/json": {
3812
+ [key: string]: unknown;
3813
+ };
3814
+ };
3815
+ };
3816
+ /** @description Internal Server Error */
3817
+ 500: {
3818
+ headers: {
3819
+ [name: string]: unknown;
3820
+ };
3821
+ content: {
3822
+ "application/json": {
3823
+ [key: string]: unknown;
3824
+ };
3825
+ };
3826
+ };
3827
+ };
3828
+ };
3829
+ delete?: never;
3830
+ options?: never;
3831
+ head?: never;
3832
+ patch?: never;
3833
+ trace?: never;
3834
+ };
3835
+ "/api/v1/shop/quote/schedule": {
3836
+ parameters: {
3837
+ query?: never;
3838
+ header?: never;
3839
+ path?: never;
3840
+ cookie?: never;
3841
+ };
3842
+ get?: never;
3843
+ put?: never;
3844
+ /**
3845
+ * Schedule quote orchestration
3846
+ * @description Schedule quote orchestration for all products in a cart
3847
+ */
3848
+ post: {
3849
+ parameters: {
3850
+ query?: never;
3851
+ header?: never;
3852
+ path?: never;
3853
+ cookie?: never;
3854
+ };
3855
+ /** @description Schedule quote request */
3856
+ requestBody: {
3857
+ content: {
3858
+ "application/json": components["schemas"]["ScheduleQuoteRequest"];
3859
+ };
3860
+ };
3861
+ responses: {
3862
+ /** @description OK */
3863
+ 200: {
3864
+ headers: {
3865
+ [name: string]: unknown;
3866
+ };
3867
+ content: {
3868
+ "application/json": components["schemas"]["ScheduleQuoteResponse"];
3869
+ };
3870
+ };
3871
+ /** @description Bad Request */
3872
+ 400: {
3873
+ headers: {
3874
+ [name: string]: unknown;
3875
+ };
3876
+ content: {
3877
+ "application/json": {
3878
+ [key: string]: unknown;
3879
+ };
3880
+ };
3881
+ };
3882
+ /** @description Not Found */
3883
+ 404: {
3884
+ headers: {
3885
+ [name: string]: unknown;
3886
+ };
3887
+ content: {
3888
+ "application/json": {
3889
+ [key: string]: unknown;
3890
+ };
3891
+ };
3892
+ };
3893
+ /** @description Conflict */
3894
+ 409: {
3895
+ headers: {
3896
+ [name: string]: unknown;
3897
+ };
3898
+ content: {
3899
+ "application/json": {
3900
+ [key: string]: unknown;
3901
+ };
3902
+ };
3903
+ };
3904
+ /** @description Internal Server Error */
3905
+ 500: {
3906
+ headers: {
3907
+ [name: string]: unknown;
3908
+ };
3909
+ content: {
3910
+ "application/json": {
3911
+ [key: string]: unknown;
3912
+ };
3913
+ };
3914
+ };
3915
+ };
3916
+ };
3917
+ delete?: never;
3918
+ options?: never;
3919
+ head?: never;
3920
+ patch?: never;
3921
+ trace?: never;
3922
+ };
3923
+ "/api/v1/shop/sync": {
3924
+ parameters: {
3925
+ query?: never;
3926
+ header?: never;
3927
+ path?: never;
3928
+ cookie?: never;
3929
+ };
3930
+ get?: never;
3931
+ put?: never;
3932
+ /**
3933
+ * Create or update a trip (cart)
3934
+ * @description Unified trip management endpoint. Accepts create / add_product / remove_product / set_travelers / remove_travelers actions and returns the resulting trip state.
3935
+ */
3936
+ post: {
3937
+ parameters: {
3938
+ query?: never;
3939
+ header?: never;
3940
+ path?: never;
3941
+ cookie?: never;
3942
+ };
3943
+ /** @description Trip request */
3944
+ requestBody: {
3945
+ content: {
3946
+ "application/json": components["schemas"]["TripRequest"];
3947
+ };
3948
+ };
3949
+ responses: {
3950
+ /** @description Trip updated */
3951
+ 200: {
3952
+ headers: {
3953
+ [name: string]: unknown;
3954
+ };
3955
+ content: {
3956
+ "application/json": components["schemas"]["TripResponse"];
3957
+ };
3958
+ };
3959
+ /** @description Trip created */
3960
+ 201: {
3961
+ headers: {
3962
+ [name: string]: unknown;
3963
+ };
3964
+ content: {
3965
+ "application/json": components["schemas"]["TripResponse"];
3966
+ };
3967
+ };
3968
+ /** @description Bad Request */
3969
+ 400: {
3970
+ headers: {
3971
+ [name: string]: unknown;
3972
+ };
3973
+ content: {
3974
+ "application/json": {
3975
+ [key: string]: string;
3976
+ };
3977
+ };
3978
+ };
3979
+ /** @description Not Found */
3980
+ 404: {
3981
+ headers: {
3982
+ [name: string]: unknown;
3983
+ };
3984
+ content: {
3985
+ "application/json": {
3986
+ [key: string]: string;
3987
+ };
3988
+ };
3989
+ };
3990
+ /** @description Internal Server Error */
3991
+ 500: {
3992
+ headers: {
3993
+ [name: string]: unknown;
3994
+ };
3995
+ content: {
3996
+ "application/json": {
3997
+ [key: string]: string;
3998
+ };
3999
+ };
4000
+ };
4001
+ };
4002
+ };
4003
+ delete?: never;
4004
+ options?: never;
4005
+ head?: never;
4006
+ patch?: never;
4007
+ trace?: never;
4008
+ };
4009
+ "/api/v1/shop/sync/{id}": {
4010
+ parameters: {
4011
+ query?: never;
4012
+ header?: never;
4013
+ path?: never;
4014
+ cookie?: never;
4015
+ };
4016
+ /** Retrieve a trip by ID */
4017
+ get: {
4018
+ parameters: {
4019
+ query?: never;
4020
+ header?: never;
4021
+ path: {
4022
+ /** @description Trip (cart) ID */
4023
+ id: string;
4024
+ };
4025
+ cookie?: never;
4026
+ };
4027
+ requestBody?: never;
4028
+ responses: {
3743
4029
  /** @description OK */
3744
4030
  200: {
3745
4031
  headers: {
@@ -3792,32 +4078,484 @@ export interface paths {
3792
4078
  patch?: never;
3793
4079
  trace?: never;
3794
4080
  };
3795
- "/shop/sync/ancillaries": {
4081
+ "/api/v1/shop/sync/ancillaries": {
3796
4082
  parameters: {
3797
4083
  query?: never;
3798
4084
  header?: never;
3799
4085
  path?: never;
3800
4086
  cookie?: never;
3801
4087
  };
3802
- get?: never;
4088
+ get?: never;
4089
+ put?: never;
4090
+ /**
4091
+ * Select ancillaries for a trip item
4092
+ * @description Selects or updates ancillaries (seats, bags, meals, assistance) for a trip item. The body references a trip_id and trip_item_token and provides the desired selection; the handler validates the selection against the item's available ancillary inventory.
4093
+ */
4094
+ post: {
4095
+ parameters: {
4096
+ query?: never;
4097
+ header?: never;
4098
+ path?: never;
4099
+ cookie?: never;
4100
+ };
4101
+ /** @description Ancillary selection request */
4102
+ requestBody: {
4103
+ content: {
4104
+ "application/json": components["schemas"]["AncillaryRequest"];
4105
+ };
4106
+ };
4107
+ responses: {
4108
+ /** @description OK */
4109
+ 200: {
4110
+ headers: {
4111
+ [name: string]: unknown;
4112
+ };
4113
+ content: {
4114
+ "application/json": components["schemas"]["AncillaryResponse"];
4115
+ };
4116
+ };
4117
+ /** @description Bad Request */
4118
+ 400: {
4119
+ headers: {
4120
+ [name: string]: unknown;
4121
+ };
4122
+ content: {
4123
+ "application/json": {
4124
+ [key: string]: string;
4125
+ };
4126
+ };
4127
+ };
4128
+ /** @description Forbidden */
4129
+ 403: {
4130
+ headers: {
4131
+ [name: string]: unknown;
4132
+ };
4133
+ content: {
4134
+ "application/json": {
4135
+ [key: string]: string;
4136
+ };
4137
+ };
4138
+ };
4139
+ /** @description Not Found */
4140
+ 404: {
4141
+ headers: {
4142
+ [name: string]: unknown;
4143
+ };
4144
+ content: {
4145
+ "application/json": {
4146
+ [key: string]: string;
4147
+ };
4148
+ };
4149
+ };
4150
+ /** @description Internal Server Error */
4151
+ 500: {
4152
+ headers: {
4153
+ [name: string]: unknown;
4154
+ };
4155
+ content: {
4156
+ "application/json": {
4157
+ [key: string]: string;
4158
+ };
4159
+ };
4160
+ };
4161
+ };
4162
+ };
4163
+ delete?: never;
4164
+ options?: never;
4165
+ head?: never;
4166
+ patch?: never;
4167
+ trace?: never;
4168
+ };
4169
+ "/api/v1/shop/sync/checkout": {
4170
+ parameters: {
4171
+ query?: never;
4172
+ header?: never;
4173
+ path?: never;
4174
+ cookie?: never;
4175
+ };
4176
+ get?: never;
4177
+ put?: never;
4178
+ /**
4179
+ * Checkout a trip and create a payment authorisation
4180
+ * @description Starts the checkout flow for a trip (cart), creating a Stripe Checkout Session or PaymentIntent depending on the configured authorisation type.
4181
+ */
4182
+ post: {
4183
+ parameters: {
4184
+ query?: never;
4185
+ header?: never;
4186
+ path?: never;
4187
+ cookie?: never;
4188
+ };
4189
+ /** @description Checkout request */
4190
+ requestBody: {
4191
+ content: {
4192
+ "application/json": components["schemas"]["CheckoutRequest"];
4193
+ };
4194
+ };
4195
+ responses: {
4196
+ /** @description OK */
4197
+ 200: {
4198
+ headers: {
4199
+ [name: string]: unknown;
4200
+ };
4201
+ content: {
4202
+ "application/json": components["schemas"]["CheckoutResponse"];
4203
+ };
4204
+ };
4205
+ /** @description Bad Request */
4206
+ 400: {
4207
+ headers: {
4208
+ [name: string]: unknown;
4209
+ };
4210
+ content: {
4211
+ "application/json": {
4212
+ [key: string]: string;
4213
+ };
4214
+ };
4215
+ };
4216
+ /** @description Not Found */
4217
+ 404: {
4218
+ headers: {
4219
+ [name: string]: unknown;
4220
+ };
4221
+ content: {
4222
+ "application/json": {
4223
+ [key: string]: string;
4224
+ };
4225
+ };
4226
+ };
4227
+ /** @description Internal Server Error */
4228
+ 500: {
4229
+ headers: {
4230
+ [name: string]: unknown;
4231
+ };
4232
+ content: {
4233
+ "application/json": {
4234
+ [key: string]: string;
4235
+ };
4236
+ };
4237
+ };
4238
+ };
4239
+ };
4240
+ delete?: never;
4241
+ options?: never;
4242
+ head?: never;
4243
+ patch?: never;
4244
+ trace?: never;
4245
+ };
4246
+ "/api/v1/shopping_cart/shop": {
4247
+ parameters: {
4248
+ query?: never;
4249
+ header?: never;
4250
+ path?: never;
4251
+ cookie?: never;
4252
+ };
4253
+ get?: never;
4254
+ put?: never;
4255
+ /**
4256
+ * Create shopping cart
4257
+ * @description Create a new shopping cart bound to a session
4258
+ */
4259
+ post: {
4260
+ parameters: {
4261
+ query?: never;
4262
+ header?: never;
4263
+ path?: never;
4264
+ cookie?: never;
4265
+ };
4266
+ /** @description Cart create request */
4267
+ requestBody: {
4268
+ content: {
4269
+ "application/json": components["schemas"]["CartCreateRequest"];
4270
+ };
4271
+ };
4272
+ responses: {
4273
+ /** @description Created */
4274
+ 201: {
4275
+ headers: {
4276
+ [name: string]: unknown;
4277
+ };
4278
+ content: {
4279
+ "application/json": components["schemas"]["CartCreateResponse"];
4280
+ };
4281
+ };
4282
+ /** @description Bad Request */
4283
+ 400: {
4284
+ headers: {
4285
+ [name: string]: unknown;
4286
+ };
4287
+ content: {
4288
+ "application/json": {
4289
+ [key: string]: unknown;
4290
+ };
4291
+ };
4292
+ };
4293
+ /** @description Cart already exists */
4294
+ 409: {
4295
+ headers: {
4296
+ [name: string]: unknown;
4297
+ };
4298
+ content: {
4299
+ "application/json": components["schemas"]["CartCreateResponse"];
4300
+ };
4301
+ };
4302
+ /** @description Internal Server Error */
4303
+ 500: {
4304
+ headers: {
4305
+ [name: string]: unknown;
4306
+ };
4307
+ content: {
4308
+ "application/json": {
4309
+ [key: string]: unknown;
4310
+ };
4311
+ };
4312
+ };
4313
+ };
4314
+ };
4315
+ delete?: never;
4316
+ options?: never;
4317
+ head?: never;
4318
+ patch?: never;
4319
+ trace?: never;
4320
+ };
4321
+ "/api/v1/shopping_cart/shop/{cart_id}": {
4322
+ parameters: {
4323
+ query?: never;
4324
+ header?: never;
4325
+ path?: never;
4326
+ cookie?: never;
4327
+ };
4328
+ /**
4329
+ * Get shopping cart
4330
+ * @description Retrieve a shopping cart with its products
4331
+ */
4332
+ get: {
4333
+ parameters: {
4334
+ query?: never;
4335
+ header?: never;
4336
+ path: {
4337
+ /** @description Cart ID */
4338
+ cart_id: number;
4339
+ };
4340
+ cookie?: never;
4341
+ };
4342
+ requestBody?: never;
4343
+ responses: {
4344
+ /** @description OK */
4345
+ 200: {
4346
+ headers: {
4347
+ [name: string]: unknown;
4348
+ };
4349
+ content: {
4350
+ "application/json": components["schemas"]["CartGetResponse"];
4351
+ };
4352
+ };
4353
+ /** @description Bad Request */
4354
+ 400: {
4355
+ headers: {
4356
+ [name: string]: unknown;
4357
+ };
4358
+ content: {
4359
+ "application/json": {
4360
+ [key: string]: unknown;
4361
+ };
4362
+ };
4363
+ };
4364
+ /** @description Not Found */
4365
+ 404: {
4366
+ headers: {
4367
+ [name: string]: unknown;
4368
+ };
4369
+ content: {
4370
+ "application/json": {
4371
+ [key: string]: unknown;
4372
+ };
4373
+ };
4374
+ };
4375
+ /** @description Internal Server Error */
4376
+ 500: {
4377
+ headers: {
4378
+ [name: string]: unknown;
4379
+ };
4380
+ content: {
4381
+ "application/json": {
4382
+ [key: string]: unknown;
4383
+ };
4384
+ };
4385
+ };
4386
+ };
4387
+ };
4388
+ /**
4389
+ * Add product to cart
4390
+ * @description Add a product to an existing shopping cart
4391
+ */
4392
+ put: {
4393
+ parameters: {
4394
+ query?: never;
4395
+ header?: never;
4396
+ path: {
4397
+ /** @description Cart ID */
4398
+ cart_id: number;
4399
+ };
4400
+ cookie?: never;
4401
+ };
4402
+ /** @description Add product request */
4403
+ requestBody: {
4404
+ content: {
4405
+ "application/json": components["schemas"]["AddProductRequest"];
4406
+ };
4407
+ };
4408
+ responses: {
4409
+ /** @description OK */
4410
+ 200: {
4411
+ headers: {
4412
+ [name: string]: unknown;
4413
+ };
4414
+ content: {
4415
+ "application/json": components["schemas"]["AddProductResponse"];
4416
+ };
4417
+ };
4418
+ /** @description Bad Request */
4419
+ 400: {
4420
+ headers: {
4421
+ [name: string]: unknown;
4422
+ };
4423
+ content: {
4424
+ "application/json": {
4425
+ [key: string]: unknown;
4426
+ };
4427
+ };
4428
+ };
4429
+ /** @description Not Found */
4430
+ 404: {
4431
+ headers: {
4432
+ [name: string]: unknown;
4433
+ };
4434
+ content: {
4435
+ "application/json": {
4436
+ [key: string]: unknown;
4437
+ };
4438
+ };
4439
+ };
4440
+ /** @description Conflict */
4441
+ 409: {
4442
+ headers: {
4443
+ [name: string]: unknown;
4444
+ };
4445
+ content: {
4446
+ "application/json": {
4447
+ [key: string]: unknown;
4448
+ };
4449
+ };
4450
+ };
4451
+ /** @description Internal Server Error */
4452
+ 500: {
4453
+ headers: {
4454
+ [name: string]: unknown;
4455
+ };
4456
+ content: {
4457
+ "application/json": {
4458
+ [key: string]: unknown;
4459
+ };
4460
+ };
4461
+ };
4462
+ };
4463
+ };
4464
+ post?: never;
4465
+ delete?: never;
4466
+ options?: never;
4467
+ head?: never;
4468
+ patch?: never;
4469
+ trace?: never;
4470
+ };
4471
+ "/api/v1/shopping_cart/shop/{cart_id}/{product_id}": {
4472
+ parameters: {
4473
+ query?: never;
4474
+ header?: never;
4475
+ path?: never;
4476
+ cookie?: never;
4477
+ };
4478
+ /**
4479
+ * Get product from cart
4480
+ * @description Retrieve a specific product's details from the cart
4481
+ */
4482
+ get: {
4483
+ parameters: {
4484
+ query?: never;
4485
+ header?: never;
4486
+ path: {
4487
+ /** @description Cart ID */
4488
+ cart_id: number;
4489
+ /** @description Product ID */
4490
+ product_id: string;
4491
+ };
4492
+ cookie?: never;
4493
+ };
4494
+ requestBody?: never;
4495
+ responses: {
4496
+ /** @description OK */
4497
+ 200: {
4498
+ headers: {
4499
+ [name: string]: unknown;
4500
+ };
4501
+ content: {
4502
+ "application/json": components["schemas"]["CartProduct"];
4503
+ };
4504
+ };
4505
+ /** @description Bad Request */
4506
+ 400: {
4507
+ headers: {
4508
+ [name: string]: unknown;
4509
+ };
4510
+ content: {
4511
+ "application/json": {
4512
+ [key: string]: unknown;
4513
+ };
4514
+ };
4515
+ };
4516
+ /** @description Not Found */
4517
+ 404: {
4518
+ headers: {
4519
+ [name: string]: unknown;
4520
+ };
4521
+ content: {
4522
+ "application/json": {
4523
+ [key: string]: unknown;
4524
+ };
4525
+ };
4526
+ };
4527
+ /** @description Internal Server Error */
4528
+ 500: {
4529
+ headers: {
4530
+ [name: string]: unknown;
4531
+ };
4532
+ content: {
4533
+ "application/json": {
4534
+ [key: string]: unknown;
4535
+ };
4536
+ };
4537
+ };
4538
+ };
4539
+ };
3803
4540
  put?: never;
4541
+ post?: never;
3804
4542
  /**
3805
- * Select ancillaries for a trip item
3806
- * @description Selects or updates ancillaries (seats, bags, meals, assistance) for a trip item. The body references a trip_id and trip_item_token and provides the desired selection; the handler validates the selection against the item's available ancillary inventory.
4543
+ * Remove product from cart
4544
+ * @description Remove a product from the shopping cart (soft delete)
3807
4545
  */
3808
- post: {
4546
+ delete: {
3809
4547
  parameters: {
3810
4548
  query?: never;
3811
4549
  header?: never;
3812
- path?: never;
3813
- cookie?: never;
3814
- };
3815
- /** @description Ancillary selection request */
3816
- requestBody: {
3817
- content: {
3818
- "application/json": components["schemas"]["AncillaryRequest"];
4550
+ path: {
4551
+ /** @description Cart ID */
4552
+ cart_id: number;
4553
+ /** @description Product ID */
4554
+ product_id: string;
3819
4555
  };
4556
+ cookie?: never;
3820
4557
  };
4558
+ requestBody?: never;
3821
4559
  responses: {
3822
4560
  /** @description OK */
3823
4561
  200: {
@@ -3825,7 +4563,7 @@ export interface paths {
3825
4563
  [name: string]: unknown;
3826
4564
  };
3827
4565
  content: {
3828
- "application/json": components["schemas"]["AncillaryResponse"];
4566
+ "application/json": components["schemas"]["CartGetResponse"];
3829
4567
  };
3830
4568
  };
3831
4569
  /** @description Bad Request */
@@ -3835,18 +4573,7 @@ export interface paths {
3835
4573
  };
3836
4574
  content: {
3837
4575
  "application/json": {
3838
- [key: string]: string;
3839
- };
3840
- };
3841
- };
3842
- /** @description Forbidden */
3843
- 403: {
3844
- headers: {
3845
- [name: string]: unknown;
3846
- };
3847
- content: {
3848
- "application/json": {
3849
- [key: string]: string;
4576
+ [key: string]: unknown;
3850
4577
  };
3851
4578
  };
3852
4579
  };
@@ -3857,7 +4584,7 @@ export interface paths {
3857
4584
  };
3858
4585
  content: {
3859
4586
  "application/json": {
3860
- [key: string]: string;
4587
+ [key: string]: unknown;
3861
4588
  };
3862
4589
  };
3863
4590
  };
@@ -3868,19 +4595,18 @@ export interface paths {
3868
4595
  };
3869
4596
  content: {
3870
4597
  "application/json": {
3871
- [key: string]: string;
4598
+ [key: string]: unknown;
3872
4599
  };
3873
4600
  };
3874
4601
  };
3875
4602
  };
3876
4603
  };
3877
- delete?: never;
3878
4604
  options?: never;
3879
4605
  head?: never;
3880
4606
  patch?: never;
3881
4607
  trace?: never;
3882
4608
  };
3883
- "/shop/sync/checkout": {
4609
+ "/api/v1/shopping_cart/shop/{cart_id}/travelers": {
3884
4610
  parameters: {
3885
4611
  query?: never;
3886
4612
  header?: never;
@@ -3888,22 +4614,24 @@ export interface paths {
3888
4614
  cookie?: never;
3889
4615
  };
3890
4616
  get?: never;
3891
- put?: never;
3892
4617
  /**
3893
- * Checkout a trip and create a payment authorisation
3894
- * @description Starts the checkout flow for a trip (cart), creating a Stripe Checkout Session or PaymentIntent depending on the configured authorisation type.
4618
+ * Update cart travelers
4619
+ * @description Update contact info and/or travelers on a shopping cart
3895
4620
  */
3896
- post: {
4621
+ put: {
3897
4622
  parameters: {
3898
4623
  query?: never;
3899
4624
  header?: never;
3900
- path?: never;
4625
+ path: {
4626
+ /** @description Cart ID */
4627
+ cart_id: number;
4628
+ };
3901
4629
  cookie?: never;
3902
4630
  };
3903
- /** @description Checkout request */
4631
+ /** @description Update travelers request */
3904
4632
  requestBody: {
3905
4633
  content: {
3906
- "application/json": components["schemas"]["CheckoutRequest"];
4634
+ "application/json": components["schemas"]["CartUpdateTravelersRequest"];
3907
4635
  };
3908
4636
  };
3909
4637
  responses: {
@@ -3913,7 +4641,9 @@ export interface paths {
3913
4641
  [name: string]: unknown;
3914
4642
  };
3915
4643
  content: {
3916
- "application/json": components["schemas"]["CheckoutResponse"];
4644
+ "application/json": {
4645
+ [key: string]: unknown;
4646
+ };
3917
4647
  };
3918
4648
  };
3919
4649
  /** @description Bad Request */
@@ -3923,7 +4653,18 @@ export interface paths {
3923
4653
  };
3924
4654
  content: {
3925
4655
  "application/json": {
3926
- [key: string]: string;
4656
+ [key: string]: unknown;
4657
+ };
4658
+ };
4659
+ };
4660
+ /** @description Forbidden */
4661
+ 403: {
4662
+ headers: {
4663
+ [name: string]: unknown;
4664
+ };
4665
+ content: {
4666
+ "application/json": {
4667
+ [key: string]: unknown;
3927
4668
  };
3928
4669
  };
3929
4670
  };
@@ -3934,7 +4675,7 @@ export interface paths {
3934
4675
  };
3935
4676
  content: {
3936
4677
  "application/json": {
3937
- [key: string]: string;
4678
+ [key: string]: unknown;
3938
4679
  };
3939
4680
  };
3940
4681
  };
@@ -3945,12 +4686,13 @@ export interface paths {
3945
4686
  };
3946
4687
  content: {
3947
4688
  "application/json": {
3948
- [key: string]: string;
4689
+ [key: string]: unknown;
3949
4690
  };
3950
4691
  };
3951
4692
  };
3952
4693
  };
3953
4694
  };
4695
+ post?: never;
3954
4696
  delete?: never;
3955
4697
  options?: never;
3956
4698
  head?: never;
@@ -4477,8 +5219,69 @@ export interface components {
4477
5219
  /** @description Weight unit (KG, LB, or PC) */
4478
5220
  weight_unit?: string;
4479
5221
  };
5222
+ BookerContact: {
5223
+ email?: string;
5224
+ first_name?: string;
5225
+ last_name?: string;
5226
+ phone?: string;
5227
+ };
5228
+ BookingConfirmation: {
5229
+ confirmation_number?: string;
5230
+ product_summary?: string;
5231
+ total_paid?: components["schemas"]["Money"];
5232
+ };
5233
+ BookingContact: {
5234
+ email?: string;
5235
+ first_name?: string;
5236
+ last_name?: string;
5237
+ phone_number?: string;
5238
+ };
5239
+ BookingDetails: {
5240
+ booking_reference?: string;
5241
+ created_at?: string;
5242
+ customer_contact?: components["schemas"]["BookingContact"];
5243
+ items?: components["schemas"]["BookingItem"][];
5244
+ status?: components["schemas"]["FulfillmentStatus"];
5245
+ travelers?: components["schemas"]["BookingTraveler"][];
5246
+ };
5247
+ BookingItem: {
5248
+ confirmation?: components["schemas"]["BookingConfirmation"];
5249
+ domain?: string;
5250
+ status?: components["schemas"]["FulfillmentStatus"];
5251
+ };
5252
+ BookingLookupRequest: {
5253
+ booking_ref?: string;
5254
+ last_name?: string;
5255
+ };
5256
+ BookingLookupResponse: {
5257
+ booking?: components["schemas"]["BookingDetails"];
5258
+ };
5259
+ BookingTraveler: {
5260
+ first_name?: string;
5261
+ last_name?: string;
5262
+ passenger_type?: string;
5263
+ };
4480
5264
  /** @enum {string} */
4481
5265
  CabinType: "economy" | "premium_economy" | "business" | "first";
5266
+ CancelHotelBookingRequest: {
5267
+ booking_ref?: string;
5268
+ last_name?: string;
5269
+ provider?: string;
5270
+ provider_booking_id?: string;
5271
+ };
5272
+ CancelHotelBookingResponse: {
5273
+ /** @description RFC3339 */
5274
+ cancelled_at?: string;
5275
+ connector_reference?: string;
5276
+ /** @description true on cached re-serve */
5277
+ idempotent?: boolean;
5278
+ penalty_amount?: components["schemas"]["AmountInfo"];
5279
+ provider?: string;
5280
+ provider_booking_id?: string;
5281
+ refund_amount?: components["schemas"]["AmountInfo"];
5282
+ /** @description "cancelled" | "pending" */
5283
+ status?: string;
5284
+ };
4482
5285
  CancellationDetails: {
4483
5286
  cancellation_id?: string;
4484
5287
  cancelled_at?: string;
@@ -4486,6 +5289,14 @@ export interface components {
4486
5289
  reason?: string;
4487
5290
  refund_amount?: components["schemas"]["Money"];
4488
5291
  };
5292
+ CancellationStep: {
5293
+ amount?: number;
5294
+ /** @description ISO 8601 deadline */
5295
+ cancel_time?: string;
5296
+ currency?: string;
5297
+ /** @description e.g. "amount", "percent", "nights" */
5298
+ type?: string;
5299
+ };
4489
5300
  CarrierInfo: {
4490
5301
  /** @description Airline code (IATA or ICAO) */
4491
5302
  code?: string;
@@ -4831,6 +5642,77 @@ export interface components {
4831
5642
  message?: string;
4832
5643
  type?: string;
4833
5644
  };
5645
+ ExchangeCommitRequest: {
5646
+ booking_ref?: string;
5647
+ last_name?: string;
5648
+ offer_id?: string;
5649
+ order_id?: string;
5650
+ provider?: string;
5651
+ session_reference?: string;
5652
+ ticket_numbers?: string[];
5653
+ };
5654
+ ExchangeCommitResponse: {
5655
+ exchange_reference?: string;
5656
+ new_order_id?: string;
5657
+ new_ticket_numbers?: string[];
5658
+ original_ticket_status?: string;
5659
+ payment_outcome?: string;
5660
+ /** @description CONFIRMED | PENDING | PARTIAL_FAILURE */
5661
+ status?: string;
5662
+ warnings?: string[];
5663
+ };
5664
+ ExchangePriceRequest: {
5665
+ booking_ref?: string;
5666
+ last_name?: string;
5667
+ offer_id?: string;
5668
+ order_id?: string;
5669
+ provider?: string;
5670
+ ticket_numbers?: string[];
5671
+ };
5672
+ ExchangePriceResponse: {
5673
+ expires_at?: string;
5674
+ fare_difference?: components["schemas"]["AmountInfo"];
5675
+ payment_outcome?: string;
5676
+ penalty_amount?: components["schemas"]["AmountInfo"];
5677
+ session_reference?: string;
5678
+ total_due?: components["schemas"]["AmountInfo"];
5679
+ total_refund?: components["schemas"]["AmountInfo"];
5680
+ warnings?: string[];
5681
+ };
5682
+ ExchangeShopOffer: {
5683
+ description?: string;
5684
+ metadata?: {
5685
+ [key: string]: unknown;
5686
+ };
5687
+ offer_id?: string;
5688
+ };
5689
+ ExchangeShopRequest: {
5690
+ booking_ref?: string;
5691
+ last_name?: string;
5692
+ order_id?: string;
5693
+ preferred_departure_date?: string;
5694
+ provider?: string;
5695
+ segments_to_exchange?: unknown[];
5696
+ ticket_numbers?: string[];
5697
+ };
5698
+ ExchangeShopResponse: {
5699
+ offers?: components["schemas"]["ExchangeShopOffer"][];
5700
+ support_level?: string;
5701
+ warnings?: string[];
5702
+ };
5703
+ ExchangeStatusRequest: {
5704
+ booking_ref?: string;
5705
+ last_name?: string;
5706
+ order_id?: string;
5707
+ provider?: string;
5708
+ };
5709
+ ExchangeStatusResponse: {
5710
+ confirmed_payment_outcome?: string;
5711
+ new_ticket_numbers?: string[];
5712
+ /** @description CONFIRMED | PENDING | PARTIAL_FAILURE | FAILED */
5713
+ status?: string;
5714
+ warnings?: string[];
5715
+ };
4834
5716
  /** @enum {string} */
4835
5717
  FareLabel: "Lowest" | "Low" | "Medium" | "High";
4836
5718
  FareRuleDetail: {
@@ -5036,11 +5918,6 @@ export interface components {
5036
5918
  trip_type?: components["schemas"]["TripType"];
5037
5919
  };
5038
5920
  FlightSearchRequest: {
5039
- /**
5040
- * @description AllowLiveShop enables live shopping in parallel with cached search.
5041
- * Default false — only opted-in consumers (e.g. MCP FindFlight) set this to true.
5042
- */
5043
- allow_live_shop?: boolean;
5044
5921
  /** @description Currency code for pricing (e.g., "USD", "EUR", "GBP") */
5045
5922
  currency?: string;
5046
5923
  /** @description Search filters (required) */
@@ -5217,6 +6094,76 @@ export interface components {
5217
6094
  children?: number[];
5218
6095
  infants?: number;
5219
6096
  };
6097
+ HotelCancellationPolicy: {
6098
+ free_cancel_until?: string;
6099
+ is_refundable_now?: boolean;
6100
+ penalty_tiers?: components["schemas"]["HotelCancellationTier"][];
6101
+ };
6102
+ HotelCancellationTier: {
6103
+ amount?: components["schemas"]["AmountInfo"];
6104
+ fraction?: number;
6105
+ from?: string;
6106
+ };
6107
+ HotelDetailsCoords: {
6108
+ latitude?: number;
6109
+ longitude?: number;
6110
+ };
6111
+ HotelDetailsHotel: {
6112
+ address?: string;
6113
+ check_in_time?: string;
6114
+ check_out_time?: string;
6115
+ city?: string;
6116
+ coordinates?: components["schemas"]["HotelDetailsCoords"];
6117
+ country_code?: string;
6118
+ description?: string;
6119
+ facilities?: string[];
6120
+ id?: string;
6121
+ images?: string[];
6122
+ main_photo_url?: string;
6123
+ name?: string;
6124
+ policies?: components["schemas"]["HotelDetailsPolicy"][];
6125
+ rating?: number;
6126
+ review_count?: number;
6127
+ star_rating?: number;
6128
+ thumbnail_url?: string;
6129
+ };
6130
+ HotelDetailsPolicy: {
6131
+ description?: string;
6132
+ name?: string;
6133
+ policy_type?: string;
6134
+ };
6135
+ HotelDetailsResponse: {
6136
+ hotel?: components["schemas"]["HotelDetailsHotel"];
6137
+ rooms?: components["schemas"]["HotelDetailsRoom"][];
6138
+ };
6139
+ HotelDetailsRoom: {
6140
+ amenities?: string[];
6141
+ bed_types?: string[];
6142
+ description?: string;
6143
+ id?: string;
6144
+ images?: string[];
6145
+ max_occupancy?: number;
6146
+ name?: string;
6147
+ size_sqm?: number;
6148
+ views?: string[];
6149
+ };
6150
+ HotelDetailsSummary: {
6151
+ address?: string;
6152
+ adults?: number;
6153
+ board_type?: string;
6154
+ check_in?: string;
6155
+ check_out?: string;
6156
+ children?: number;
6157
+ city?: string;
6158
+ country_code?: string;
6159
+ guest_rating?: number;
6160
+ hotel_id?: string;
6161
+ hotel_image_url?: string;
6162
+ name?: string;
6163
+ rooms?: number;
6164
+ special_request?: string;
6165
+ star_rating?: number;
6166
+ };
5220
6167
  HotelShopResponse: {
5221
6168
  hotels?: components["schemas"]["ShoppedHotel"][];
5222
6169
  total?: number;
@@ -5591,8 +6538,51 @@ export interface components {
5591
6538
  total_paid?: components["schemas"]["AmountInfo"];
5592
6539
  warnings?: string[];
5593
6540
  };
6541
+ RefundCommitRequest: {
6542
+ booking_ref?: string;
6543
+ last_name?: string;
6544
+ order_id?: string;
6545
+ provider?: string;
6546
+ ticket_numbers?: string[];
6547
+ };
6548
+ RefundCommitResponse: {
6549
+ confirmed_refund_amount?: components["schemas"]["AmountInfo"];
6550
+ refund_reference?: string;
6551
+ refund_status?: string;
6552
+ warnings?: string[];
6553
+ };
6554
+ RefundStatusRequest: {
6555
+ booking_ref?: string;
6556
+ last_name?: string;
6557
+ order_id?: string;
6558
+ provider?: string;
6559
+ refund_reference?: string;
6560
+ };
6561
+ RefundStatusResponse: {
6562
+ provider_status?: string;
6563
+ refund_amount?: components["schemas"]["AmountInfo"];
6564
+ refund_reference?: string;
6565
+ refund_status?: string;
6566
+ warnings?: string[];
6567
+ };
5594
6568
  /** @enum {string} */
5595
6569
  ResponseFormat: "text" | "structured";
6570
+ RetrieveHotelBookingRequest: {
6571
+ booking_ref?: string;
6572
+ last_name?: string;
6573
+ provider?: string;
6574
+ provider_booking_id?: string;
6575
+ };
6576
+ RetrieveHotelBookingResponse: {
6577
+ booker_contact?: components["schemas"]["BookerContact"];
6578
+ cancellation_policy?: components["schemas"]["HotelCancellationPolicy"];
6579
+ cancelled_at?: string;
6580
+ hotel_details?: components["schemas"]["HotelDetailsSummary"];
6581
+ provider?: string;
6582
+ provider_booking_id?: string;
6583
+ status?: string;
6584
+ total_price?: components["schemas"]["AmountInfo"];
6585
+ };
5596
6586
  ScheduleFulfillmentRequest: {
5597
6587
  /**
5598
6588
  * @description Standard path: provide cart_id + quoted_cart_id + idempotency_key.
@@ -5624,6 +6614,12 @@ export interface components {
5624
6614
  cart_id?: number;
5625
6615
  checkout_expires_at?: string;
5626
6616
  checkout_session_id?: string;
6617
+ /**
6618
+ * @description CheckoutURL is the canonical app-side checkout URL —
6619
+ * ${WEB_APP_BASE_URL}/checkout?sid=<cart_id> — for both intent and
6620
+ * checkout_session payment_types. Same value regardless of flow.
6621
+ * See JIN-237.
6622
+ */
5627
6623
  checkout_url?: string;
5628
6624
  fulfillment_cart_id?: number;
5629
6625
  item_count?: number;
@@ -5635,6 +6631,13 @@ export interface components {
5635
6631
  quoted_cart_id?: number;
5636
6632
  scheduled_at?: string;
5637
6633
  status?: components["schemas"]["FulfillmentStatus"];
6634
+ /**
6635
+ * @description StripeCheckoutSessionURL is the Stripe-hosted Checkout Session URL
6636
+ * (cs_test_..._stripe.com/...). Only populated for
6637
+ * payment_type=checkout_session. The app-web /checkout page uses
6638
+ * this to redirect to Stripe at Pay-button click time.
6639
+ */
6640
+ stripe_checkout_session_url?: string;
5638
6641
  };
5639
6642
  ScheduleQuoteRequest: {
5640
6643
  cart_id: number;
@@ -5897,9 +6900,11 @@ export interface components {
5897
6900
  latitude?: number;
5898
6901
  longitude?: number;
5899
6902
  max_results?: number;
6903
+ max_star_rating?: number;
5900
6904
  /** @description Filter overrides */
5901
6905
  min_rating?: number;
5902
6906
  min_reviews?: number;
6907
+ min_star_rating?: number;
5903
6908
  /** @description Occupancies — structured or shorthand */
5904
6909
  occupancies?: components["schemas"]["OccupancyRequest"][];
5905
6910
  place_id?: string;
@@ -5907,7 +6912,6 @@ export interface components {
5907
6912
  query?: string;
5908
6913
  radius_km?: number;
5909
6914
  rooms?: number;
5910
- star_rating?: number;
5911
6915
  };
5912
6916
  ShopSegment: {
5913
6917
  aircraft?: string;
@@ -6003,20 +7007,36 @@ export interface components {
6003
7007
  ShoppedRate: {
6004
7008
  board_name?: string;
6005
7009
  board_type?: string;
7010
+ /**
7011
+ * @description CancellationSchedule surfaces the full multi-tier cancellation policy
7012
+ * from the provider (e.g. "free until Mar 15, $150 fee until Mar 20,
7013
+ * then non-refundable"). Nil when the provider only expresses a single
7014
+ * boolean refundable flag.
7015
+ */
7016
+ cancellation_schedule?: components["schemas"]["CancellationStep"][];
6006
7017
  currency?: string;
6007
7018
  free_cancellation_until?: string;
6008
7019
  is_refundable?: boolean;
6009
7020
  /** @description htl_* token for cart add */
6010
7021
  offer_id?: string;
7022
+ /** @description PaymentTypes lists accepted payment rails for this rate. */
7023
+ payment_types?: string[];
6011
7024
  /**
6012
7025
  * @description SemanticMatches is populated ONLY by the semantic-search pipeline.
6013
7026
  * For plain /hotels/shop calls it stays nil. Each sub-field is a
6014
7027
  * tri-state: nil = filter not asked for, true/false = matched or not.
6015
7028
  */
6016
7029
  semantic_matches?: components["schemas"]["RateMatches"];
7030
+ /**
7031
+ * @description TaxesBreakdown itemises taxes and fees. `included=true` entries are
7032
+ * already in TotalAmount; `included=false` are collected at the hotel.
7033
+ */
7034
+ taxes_breakdown?: components["schemas"]["TaxLine"][];
6017
7035
  total_amount?: number;
6018
7036
  };
6019
7037
  ShoppedRoom: {
7038
+ /** @description Free-text room description (hoisted from first rate's remarks by the connector) */
7039
+ description?: string;
6020
7040
  max_occupancy?: number;
6021
7041
  rates?: components["schemas"]["ShoppedRate"][];
6022
7042
  room_id?: string;
@@ -6070,6 +7090,13 @@ export interface components {
6070
7090
  /** @description Duration of the layover in minutes */
6071
7091
  duration_minutes?: number;
6072
7092
  };
7093
+ TaxLine: {
7094
+ amount?: number;
7095
+ currency?: string;
7096
+ description?: string;
7097
+ /** @description true = already in TotalAmount, false = collected at hotel */
7098
+ included?: boolean;
7099
+ };
6073
7100
  TopupRequest: {
6074
7101
  amount: number;
6075
7102
  };