@gojinko/api-client 2.24.0 → 2.25.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.
@@ -143,6 +143,24 @@ export interface paths {
143
143
  "application/json": components["schemas"]["ErrorResponse"];
144
144
  };
145
145
  };
146
+ /** @description The resource this request names no longer exists */
147
+ 410: {
148
+ headers: {
149
+ [name: string]: unknown;
150
+ };
151
+ content: {
152
+ /**
153
+ * @example {
154
+ * "error": {
155
+ * "code": "GONE",
156
+ * "message": "The resource no longer exists.",
157
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
158
+ * }
159
+ * }
160
+ */
161
+ "application/json": components["schemas"]["ErrorResponse"];
162
+ };
163
+ };
146
164
  /** @description Validation error */
147
165
  422: {
148
166
  headers: {
@@ -347,6 +365,24 @@ export interface paths {
347
365
  "application/json": components["schemas"]["ErrorResponse"];
348
366
  };
349
367
  };
368
+ /** @description The resource this request names no longer exists */
369
+ 410: {
370
+ headers: {
371
+ [name: string]: unknown;
372
+ };
373
+ content: {
374
+ /**
375
+ * @example {
376
+ * "error": {
377
+ * "code": "GONE",
378
+ * "message": "The resource no longer exists.",
379
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
380
+ * }
381
+ * }
382
+ */
383
+ "application/json": components["schemas"]["ErrorResponse"];
384
+ };
385
+ };
350
386
  /** @description Validation error */
351
387
  422: {
352
388
  headers: {
@@ -554,6 +590,24 @@ export interface paths {
554
590
  "application/json": components["schemas"]["ErrorResponse"];
555
591
  };
556
592
  };
593
+ /** @description The resource this request names no longer exists */
594
+ 410: {
595
+ headers: {
596
+ [name: string]: unknown;
597
+ };
598
+ content: {
599
+ /**
600
+ * @example {
601
+ * "error": {
602
+ * "code": "GONE",
603
+ * "message": "The resource no longer exists.",
604
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
605
+ * }
606
+ * }
607
+ */
608
+ "application/json": components["schemas"]["ErrorResponse"];
609
+ };
610
+ };
557
611
  /** @description Validation error */
558
612
  422: {
559
613
  headers: {
@@ -761,6 +815,24 @@ export interface paths {
761
815
  "application/json": components["schemas"]["ErrorResponse"];
762
816
  };
763
817
  };
818
+ /** @description The resource this request names no longer exists */
819
+ 410: {
820
+ headers: {
821
+ [name: string]: unknown;
822
+ };
823
+ content: {
824
+ /**
825
+ * @example {
826
+ * "error": {
827
+ * "code": "GONE",
828
+ * "message": "The resource no longer exists.",
829
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
830
+ * }
831
+ * }
832
+ */
833
+ "application/json": components["schemas"]["ErrorResponse"];
834
+ };
835
+ };
764
836
  /** @description Validation error */
765
837
  422: {
766
838
  headers: {
@@ -968,6 +1040,24 @@ export interface paths {
968
1040
  "application/json": components["schemas"]["ErrorResponse"];
969
1041
  };
970
1042
  };
1043
+ /** @description The resource this request names no longer exists */
1044
+ 410: {
1045
+ headers: {
1046
+ [name: string]: unknown;
1047
+ };
1048
+ content: {
1049
+ /**
1050
+ * @example {
1051
+ * "error": {
1052
+ * "code": "GONE",
1053
+ * "message": "The resource no longer exists.",
1054
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
1055
+ * }
1056
+ * }
1057
+ */
1058
+ "application/json": components["schemas"]["ErrorResponse"];
1059
+ };
1060
+ };
971
1061
  /** @description Validation error */
972
1062
  422: {
973
1063
  headers: {
@@ -1172,6 +1262,24 @@ export interface paths {
1172
1262
  "application/json": components["schemas"]["ErrorResponse"];
1173
1263
  };
1174
1264
  };
1265
+ /** @description The resource this request names no longer exists */
1266
+ 410: {
1267
+ headers: {
1268
+ [name: string]: unknown;
1269
+ };
1270
+ content: {
1271
+ /**
1272
+ * @example {
1273
+ * "error": {
1274
+ * "code": "GONE",
1275
+ * "message": "The resource no longer exists.",
1276
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
1277
+ * }
1278
+ * }
1279
+ */
1280
+ "application/json": components["schemas"]["ErrorResponse"];
1281
+ };
1282
+ };
1175
1283
  /** @description Validation error */
1176
1284
  422: {
1177
1285
  headers: {
@@ -1377,7 +1485,7 @@ export interface paths {
1377
1485
  "application/json": components["schemas"]["TripStateResponse"] | components["schemas"]["ErrorResponse"];
1378
1486
  };
1379
1487
  };
1380
- /** @description The offer named in the request is no longer available. **`OFFER_EXPIRED`** — The offer token is no longer in the platform’s cache, so the item cannot be added. Search again and add the item with a fresh token. Offers are short-lived by design. */
1488
+ /** @description The offer named in the request is no longer available, or another resource the request names is gone. Tell the two apart by `error.code`. **`OFFER_EXPIRED`** — The offer token is no longer in the platform’s cache, so the item cannot be added. Search again and add the item with a fresh token. Offers are short-lived by design. **`GONE`** — The resource this request names existed and no longer does. Re-acquire it — search again, or check out again to re-quote — then retry with the new identifier. Repeating this request with the same one cannot succeed. */
1381
1489
  410: {
1382
1490
  headers: {
1383
1491
  [name: string]: unknown;
@@ -1586,6 +1694,24 @@ export interface paths {
1586
1694
  "application/json": components["schemas"]["ErrorResponse"];
1587
1695
  };
1588
1696
  };
1697
+ /** @description The resource this request names no longer exists */
1698
+ 410: {
1699
+ headers: {
1700
+ [name: string]: unknown;
1701
+ };
1702
+ content: {
1703
+ /**
1704
+ * @example {
1705
+ * "error": {
1706
+ * "code": "GONE",
1707
+ * "message": "The resource no longer exists.",
1708
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
1709
+ * }
1710
+ * }
1711
+ */
1712
+ "application/json": components["schemas"]["ErrorResponse"];
1713
+ };
1714
+ };
1589
1715
  /** @description Validation error */
1590
1716
  422: {
1591
1717
  headers: {
@@ -1793,6 +1919,24 @@ export interface paths {
1793
1919
  "application/json": components["schemas"]["ErrorResponse"];
1794
1920
  };
1795
1921
  };
1922
+ /** @description The resource this request names no longer exists */
1923
+ 410: {
1924
+ headers: {
1925
+ [name: string]: unknown;
1926
+ };
1927
+ content: {
1928
+ /**
1929
+ * @example {
1930
+ * "error": {
1931
+ * "code": "GONE",
1932
+ * "message": "The resource no longer exists.",
1933
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
1934
+ * }
1935
+ * }
1936
+ */
1937
+ "application/json": components["schemas"]["ErrorResponse"];
1938
+ };
1939
+ };
1796
1940
  /** @description Validation error */
1797
1941
  422: {
1798
1942
  headers: {
@@ -1999,6 +2143,24 @@ export interface paths {
1999
2143
  "application/json": components["schemas"]["ErrorResponse"];
2000
2144
  };
2001
2145
  };
2146
+ /** @description The resource this request names no longer exists */
2147
+ 410: {
2148
+ headers: {
2149
+ [name: string]: unknown;
2150
+ };
2151
+ content: {
2152
+ /**
2153
+ * @example {
2154
+ * "error": {
2155
+ * "code": "GONE",
2156
+ * "message": "The resource no longer exists.",
2157
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
2158
+ * }
2159
+ * }
2160
+ */
2161
+ "application/json": components["schemas"]["ErrorResponse"];
2162
+ };
2163
+ };
2002
2164
  /** @description Validation error */
2003
2165
  422: {
2004
2166
  headers: {
@@ -2194,6 +2356,24 @@ export interface paths {
2194
2356
  "application/json": components["schemas"]["TripStateResponse"] | components["schemas"]["ErrorResponse"];
2195
2357
  };
2196
2358
  };
2359
+ /** @description The resource this request names no longer exists */
2360
+ 410: {
2361
+ headers: {
2362
+ [name: string]: unknown;
2363
+ };
2364
+ content: {
2365
+ /**
2366
+ * @example {
2367
+ * "error": {
2368
+ * "code": "GONE",
2369
+ * "message": "The resource no longer exists.",
2370
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
2371
+ * }
2372
+ * }
2373
+ */
2374
+ "application/json": components["schemas"]["ErrorResponse"];
2375
+ };
2376
+ };
2197
2377
  /** @description The trip is not complete enough to check out. **`BAD_REQUEST`** — The request was malformed or failed validation. Fix the request as the message describes; retrying it unchanged cannot succeed. **`MISSING_CUSTOMER_DETAILS`** — The trip has no travelers, or no contact with both an email and a phone. Send `upsert_travelers` with the travelers and a contact, then check out again. */
2198
2378
  422: {
2199
2379
  headers: {
@@ -2384,6 +2564,24 @@ export interface paths {
2384
2564
  "application/json": components["schemas"]["TripStateResponse"] | components["schemas"]["ErrorResponse"];
2385
2565
  };
2386
2566
  };
2567
+ /** @description The resource this request names no longer exists */
2568
+ 410: {
2569
+ headers: {
2570
+ [name: string]: unknown;
2571
+ };
2572
+ content: {
2573
+ /**
2574
+ * @example {
2575
+ * "error": {
2576
+ * "code": "GONE",
2577
+ * "message": "The resource no longer exists.",
2578
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
2579
+ * }
2580
+ * }
2581
+ */
2582
+ "application/json": components["schemas"]["ErrorResponse"];
2583
+ };
2584
+ };
2387
2585
  /** @description The trip is not complete enough to check out. **`BAD_REQUEST`** — The request was malformed or failed validation. Fix the request as the message describes; retrying it unchanged cannot succeed. **`MISSING_CUSTOMER_DETAILS`** — The trip has no travelers, or no contact with both an email and a phone. Send `upsert_travelers` with the travelers and a contact, then check out again. */
2388
2586
  422: {
2389
2587
  headers: {
@@ -2579,7 +2777,7 @@ export interface paths {
2579
2777
  "application/json": components["schemas"]["ErrorResponse"];
2580
2778
  };
2581
2779
  };
2582
- /** @description The locked quote has expired, so nothing was redeemed and no payment object was created. **`QUOTE_EXPIRED`** — The locked quote behind this checkout passed its `expires_at`, so payment was refused before any payment object was created. Call `POST /v1/checkout` again on the same trip — it re-quotes — then mint a new Shared Payment Token against the new `agent_spt_params` and submit that. Nothing was charged. */
2780
+ /** @description The locked quote has expired, so nothing was redeemed and no payment object was created — or the resource the request names is gone. Tell the two apart by `error.code`. **`QUOTE_EXPIRED`** — The locked quote behind this checkout passed its `expires_at`, so payment was refused before any payment object was created. Call `POST /v1/checkout` again on the same trip — it re-quotes — then mint a new Shared Payment Token against the new `agent_spt_params` and submit that. Nothing was charged. **`GONE`** — The resource this request names existed and no longer does. Re-acquire it — search again, or check out again to re-quote — then retry with the new identifier. Repeating this request with the same one cannot succeed. */
2583
2781
  410: {
2584
2782
  headers: {
2585
2783
  [name: string]: unknown;
@@ -2592,10 +2790,11 @@ export interface paths {
2592
2790
  * "message": "The quote behind this checkout expired at 2026-09-04T12:39:56Z.",
2593
2791
  * "doc_url": "https://docs.gojinko.com/concepts/errors"
2594
2792
  * },
2595
- * "expires_at": "2026-09-04T12:39:56Z"
2793
+ * "expires_at": "2026-09-04T12:39:56Z",
2794
+ * "quoted_cart_id": 2097152
2596
2795
  * }
2597
2796
  */
2598
- "application/json": components["schemas"]["QuoteExpiredResponse"];
2797
+ "application/json": components["schemas"]["QuoteExpiredResponse"] | components["schemas"]["ErrorResponse"];
2599
2798
  };
2600
2799
  };
2601
2800
  /** @description Validation error */
@@ -2802,6 +3001,24 @@ export interface paths {
2802
3001
  "application/json": components["schemas"]["ErrorResponse"];
2803
3002
  };
2804
3003
  };
3004
+ /** @description The resource this request names no longer exists */
3005
+ 410: {
3006
+ headers: {
3007
+ [name: string]: unknown;
3008
+ };
3009
+ content: {
3010
+ /**
3011
+ * @example {
3012
+ * "error": {
3013
+ * "code": "GONE",
3014
+ * "message": "The resource no longer exists.",
3015
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
3016
+ * }
3017
+ * }
3018
+ */
3019
+ "application/json": components["schemas"]["ErrorResponse"];
3020
+ };
3021
+ };
2805
3022
  /** @description Validation error */
2806
3023
  422: {
2807
3024
  headers: {
@@ -3005,6 +3222,24 @@ export interface paths {
3005
3222
  "application/json": components["schemas"]["ErrorResponse"];
3006
3223
  };
3007
3224
  };
3225
+ /** @description The resource this request names no longer exists */
3226
+ 410: {
3227
+ headers: {
3228
+ [name: string]: unknown;
3229
+ };
3230
+ content: {
3231
+ /**
3232
+ * @example {
3233
+ * "error": {
3234
+ * "code": "GONE",
3235
+ * "message": "The resource no longer exists.",
3236
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
3237
+ * }
3238
+ * }
3239
+ */
3240
+ "application/json": components["schemas"]["ErrorResponse"];
3241
+ };
3242
+ };
3008
3243
  /** @description Validation error */
3009
3244
  422: {
3010
3245
  headers: {
@@ -3214,6 +3449,24 @@ export interface paths {
3214
3449
  "application/json": components["schemas"]["ErrorResponse"];
3215
3450
  };
3216
3451
  };
3452
+ /** @description The resource this request names no longer exists */
3453
+ 410: {
3454
+ headers: {
3455
+ [name: string]: unknown;
3456
+ };
3457
+ content: {
3458
+ /**
3459
+ * @example {
3460
+ * "error": {
3461
+ * "code": "GONE",
3462
+ * "message": "The resource no longer exists.",
3463
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
3464
+ * }
3465
+ * }
3466
+ */
3467
+ "application/json": components["schemas"]["ErrorResponse"];
3468
+ };
3469
+ };
3217
3470
  /** @description Validation error */
3218
3471
  422: {
3219
3472
  headers: {
@@ -3421,6 +3674,24 @@ export interface paths {
3421
3674
  "application/json": components["schemas"]["ErrorResponse"];
3422
3675
  };
3423
3676
  };
3677
+ /** @description The resource this request names no longer exists */
3678
+ 410: {
3679
+ headers: {
3680
+ [name: string]: unknown;
3681
+ };
3682
+ content: {
3683
+ /**
3684
+ * @example {
3685
+ * "error": {
3686
+ * "code": "GONE",
3687
+ * "message": "The resource no longer exists.",
3688
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
3689
+ * }
3690
+ * }
3691
+ */
3692
+ "application/json": components["schemas"]["ErrorResponse"];
3693
+ };
3694
+ };
3424
3695
  /** @description Validation error */
3425
3696
  422: {
3426
3697
  headers: {
@@ -3645,6 +3916,24 @@ export interface paths {
3645
3916
  "application/json": components["schemas"]["ErrorResponse"];
3646
3917
  };
3647
3918
  };
3919
+ /** @description The resource this request names no longer exists */
3920
+ 410: {
3921
+ headers: {
3922
+ [name: string]: unknown;
3923
+ };
3924
+ content: {
3925
+ /**
3926
+ * @example {
3927
+ * "error": {
3928
+ * "code": "GONE",
3929
+ * "message": "The resource no longer exists.",
3930
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
3931
+ * }
3932
+ * }
3933
+ */
3934
+ "application/json": components["schemas"]["ErrorResponse"];
3935
+ };
3936
+ };
3648
3937
  /** @description Validation error */
3649
3938
  422: {
3650
3939
  headers: {
@@ -3869,6 +4158,24 @@ export interface paths {
3869
4158
  "application/json": components["schemas"]["ErrorResponse"];
3870
4159
  };
3871
4160
  };
4161
+ /** @description The resource this request names no longer exists */
4162
+ 410: {
4163
+ headers: {
4164
+ [name: string]: unknown;
4165
+ };
4166
+ content: {
4167
+ /**
4168
+ * @example {
4169
+ * "error": {
4170
+ * "code": "GONE",
4171
+ * "message": "The resource no longer exists.",
4172
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
4173
+ * }
4174
+ * }
4175
+ */
4176
+ "application/json": components["schemas"]["ErrorResponse"];
4177
+ };
4178
+ };
3872
4179
  /** @description Validation error */
3873
4180
  422: {
3874
4181
  headers: {
@@ -4093,7 +4400,25 @@ export interface paths {
4093
4400
  "application/json": components["schemas"]["ErrorResponse"];
4094
4401
  };
4095
4402
  };
4096
- /** @description Validation error */
4403
+ /** @description The resource this request names no longer exists */
4404
+ 410: {
4405
+ headers: {
4406
+ [name: string]: unknown;
4407
+ };
4408
+ content: {
4409
+ /**
4410
+ * @example {
4411
+ * "error": {
4412
+ * "code": "GONE",
4413
+ * "message": "The resource no longer exists.",
4414
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
4415
+ * }
4416
+ * }
4417
+ */
4418
+ "application/json": components["schemas"]["ErrorResponse"];
4419
+ };
4420
+ };
4421
+ /** @description Validation error */
4097
4422
  422: {
4098
4423
  headers: {
4099
4424
  [name: string]: unknown;
@@ -4317,6 +4642,24 @@ export interface paths {
4317
4642
  "application/json": components["schemas"]["ErrorResponse"];
4318
4643
  };
4319
4644
  };
4645
+ /** @description The resource this request names no longer exists */
4646
+ 410: {
4647
+ headers: {
4648
+ [name: string]: unknown;
4649
+ };
4650
+ content: {
4651
+ /**
4652
+ * @example {
4653
+ * "error": {
4654
+ * "code": "GONE",
4655
+ * "message": "The resource no longer exists.",
4656
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
4657
+ * }
4658
+ * }
4659
+ */
4660
+ "application/json": components["schemas"]["ErrorResponse"];
4661
+ };
4662
+ };
4320
4663
  /** @description Validation error */
4321
4664
  422: {
4322
4665
  headers: {
@@ -4540,6 +4883,24 @@ export interface paths {
4540
4883
  "application/json": components["schemas"]["ErrorResponse"];
4541
4884
  };
4542
4885
  };
4886
+ /** @description The resource this request names no longer exists */
4887
+ 410: {
4888
+ headers: {
4889
+ [name: string]: unknown;
4890
+ };
4891
+ content: {
4892
+ /**
4893
+ * @example {
4894
+ * "error": {
4895
+ * "code": "GONE",
4896
+ * "message": "The resource no longer exists.",
4897
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
4898
+ * }
4899
+ * }
4900
+ */
4901
+ "application/json": components["schemas"]["ErrorResponse"];
4902
+ };
4903
+ };
4543
4904
  /** @description Validation error */
4544
4905
  422: {
4545
4906
  headers: {
@@ -4764,6 +5125,24 @@ export interface paths {
4764
5125
  "application/json": components["schemas"]["ErrorResponse"];
4765
5126
  };
4766
5127
  };
5128
+ /** @description The resource this request names no longer exists */
5129
+ 410: {
5130
+ headers: {
5131
+ [name: string]: unknown;
5132
+ };
5133
+ content: {
5134
+ /**
5135
+ * @example {
5136
+ * "error": {
5137
+ * "code": "GONE",
5138
+ * "message": "The resource no longer exists.",
5139
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
5140
+ * }
5141
+ * }
5142
+ */
5143
+ "application/json": components["schemas"]["ErrorResponse"];
5144
+ };
5145
+ };
4767
5146
  /** @description Validation error */
4768
5147
  422: {
4769
5148
  headers: {
@@ -4979,6 +5358,24 @@ export interface paths {
4979
5358
  "application/json": components["schemas"]["ErrorResponse"];
4980
5359
  };
4981
5360
  };
5361
+ /** @description The resource this request names no longer exists */
5362
+ 410: {
5363
+ headers: {
5364
+ [name: string]: unknown;
5365
+ };
5366
+ content: {
5367
+ /**
5368
+ * @example {
5369
+ * "error": {
5370
+ * "code": "GONE",
5371
+ * "message": "The resource no longer exists.",
5372
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
5373
+ * }
5374
+ * }
5375
+ */
5376
+ "application/json": components["schemas"]["ErrorResponse"];
5377
+ };
5378
+ };
4982
5379
  /** @description Validation error */
4983
5380
  422: {
4984
5381
  headers: {
@@ -5196,6 +5593,24 @@ export interface paths {
5196
5593
  "application/json": components["schemas"]["ErrorResponse"];
5197
5594
  };
5198
5595
  };
5596
+ /** @description The resource this request names no longer exists */
5597
+ 410: {
5598
+ headers: {
5599
+ [name: string]: unknown;
5600
+ };
5601
+ content: {
5602
+ /**
5603
+ * @example {
5604
+ * "error": {
5605
+ * "code": "GONE",
5606
+ * "message": "The resource no longer exists.",
5607
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
5608
+ * }
5609
+ * }
5610
+ */
5611
+ "application/json": components["schemas"]["ErrorResponse"];
5612
+ };
5613
+ };
5199
5614
  /** @description Validation error */
5200
5615
  422: {
5201
5616
  headers: {
@@ -5412,6 +5827,24 @@ export interface paths {
5412
5827
  "application/json": components["schemas"]["ErrorResponse"];
5413
5828
  };
5414
5829
  };
5830
+ /** @description The resource this request names no longer exists */
5831
+ 410: {
5832
+ headers: {
5833
+ [name: string]: unknown;
5834
+ };
5835
+ content: {
5836
+ /**
5837
+ * @example {
5838
+ * "error": {
5839
+ * "code": "GONE",
5840
+ * "message": "The resource no longer exists.",
5841
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
5842
+ * }
5843
+ * }
5844
+ */
5845
+ "application/json": components["schemas"]["ErrorResponse"];
5846
+ };
5847
+ };
5415
5848
  /** @description Validation error */
5416
5849
  422: {
5417
5850
  headers: {
@@ -5628,6 +6061,24 @@ export interface paths {
5628
6061
  "application/json": components["schemas"]["ErrorResponse"];
5629
6062
  };
5630
6063
  };
6064
+ /** @description The resource this request names no longer exists */
6065
+ 410: {
6066
+ headers: {
6067
+ [name: string]: unknown;
6068
+ };
6069
+ content: {
6070
+ /**
6071
+ * @example {
6072
+ * "error": {
6073
+ * "code": "GONE",
6074
+ * "message": "The resource no longer exists.",
6075
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
6076
+ * }
6077
+ * }
6078
+ */
6079
+ "application/json": components["schemas"]["ErrorResponse"];
6080
+ };
6081
+ };
5631
6082
  /** @description Validation error */
5632
6083
  422: {
5633
6084
  headers: {
@@ -5846,6 +6297,24 @@ export interface paths {
5846
6297
  "application/json": components["schemas"]["ErrorResponse"];
5847
6298
  };
5848
6299
  };
6300
+ /** @description The resource this request names no longer exists */
6301
+ 410: {
6302
+ headers: {
6303
+ [name: string]: unknown;
6304
+ };
6305
+ content: {
6306
+ /**
6307
+ * @example {
6308
+ * "error": {
6309
+ * "code": "GONE",
6310
+ * "message": "The resource no longer exists.",
6311
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
6312
+ * }
6313
+ * }
6314
+ */
6315
+ "application/json": components["schemas"]["ErrorResponse"];
6316
+ };
6317
+ };
5849
6318
  /** @description Validation error */
5850
6319
  422: {
5851
6320
  headers: {
@@ -6064,6 +6533,24 @@ export interface paths {
6064
6533
  "application/json": components["schemas"]["ErrorResponse"];
6065
6534
  };
6066
6535
  };
6536
+ /** @description The resource this request names no longer exists */
6537
+ 410: {
6538
+ headers: {
6539
+ [name: string]: unknown;
6540
+ };
6541
+ content: {
6542
+ /**
6543
+ * @example {
6544
+ * "error": {
6545
+ * "code": "GONE",
6546
+ * "message": "The resource no longer exists.",
6547
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
6548
+ * }
6549
+ * }
6550
+ */
6551
+ "application/json": components["schemas"]["ErrorResponse"];
6552
+ };
6553
+ };
6067
6554
  /** @description Validation error */
6068
6555
  422: {
6069
6556
  headers: {
@@ -6281,6 +6768,24 @@ export interface paths {
6281
6768
  "application/json": components["schemas"]["ErrorResponse"];
6282
6769
  };
6283
6770
  };
6771
+ /** @description The resource this request names no longer exists */
6772
+ 410: {
6773
+ headers: {
6774
+ [name: string]: unknown;
6775
+ };
6776
+ content: {
6777
+ /**
6778
+ * @example {
6779
+ * "error": {
6780
+ * "code": "GONE",
6781
+ * "message": "The resource no longer exists.",
6782
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
6783
+ * }
6784
+ * }
6785
+ */
6786
+ "application/json": components["schemas"]["ErrorResponse"];
6787
+ };
6788
+ };
6284
6789
  /** @description Validation error */
6285
6790
  422: {
6286
6791
  headers: {
@@ -6487,6 +6992,24 @@ export interface paths {
6487
6992
  "application/json": components["schemas"]["ErrorResponse"];
6488
6993
  };
6489
6994
  };
6995
+ /** @description The resource this request names no longer exists */
6996
+ 410: {
6997
+ headers: {
6998
+ [name: string]: unknown;
6999
+ };
7000
+ content: {
7001
+ /**
7002
+ * @example {
7003
+ * "error": {
7004
+ * "code": "GONE",
7005
+ * "message": "The resource no longer exists.",
7006
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
7007
+ * }
7008
+ * }
7009
+ */
7010
+ "application/json": components["schemas"]["ErrorResponse"];
7011
+ };
7012
+ };
6490
7013
  /** @description Validation error */
6491
7014
  422: {
6492
7015
  headers: {
@@ -6691,6 +7214,24 @@ export interface paths {
6691
7214
  "application/json": components["schemas"]["ErrorResponse"];
6692
7215
  };
6693
7216
  };
7217
+ /** @description The resource this request names no longer exists */
7218
+ 410: {
7219
+ headers: {
7220
+ [name: string]: unknown;
7221
+ };
7222
+ content: {
7223
+ /**
7224
+ * @example {
7225
+ * "error": {
7226
+ * "code": "GONE",
7227
+ * "message": "The resource no longer exists.",
7228
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
7229
+ * }
7230
+ * }
7231
+ */
7232
+ "application/json": components["schemas"]["ErrorResponse"];
7233
+ };
7234
+ };
6694
7235
  /** @description Validation error */
6695
7236
  422: {
6696
7237
  headers: {
@@ -6895,6 +7436,24 @@ export interface paths {
6895
7436
  "application/json": components["schemas"]["ErrorResponse"];
6896
7437
  };
6897
7438
  };
7439
+ /** @description The resource this request names no longer exists */
7440
+ 410: {
7441
+ headers: {
7442
+ [name: string]: unknown;
7443
+ };
7444
+ content: {
7445
+ /**
7446
+ * @example {
7447
+ * "error": {
7448
+ * "code": "GONE",
7449
+ * "message": "The resource no longer exists.",
7450
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
7451
+ * }
7452
+ * }
7453
+ */
7454
+ "application/json": components["schemas"]["ErrorResponse"];
7455
+ };
7456
+ };
6898
7457
  /** @description Validation error */
6899
7458
  422: {
6900
7459
  headers: {
@@ -7116,6 +7675,24 @@ export interface paths {
7116
7675
  "application/json": components["schemas"]["ErrorResponse"];
7117
7676
  };
7118
7677
  };
7678
+ /** @description The resource this request names no longer exists */
7679
+ 410: {
7680
+ headers: {
7681
+ [name: string]: unknown;
7682
+ };
7683
+ content: {
7684
+ /**
7685
+ * @example {
7686
+ * "error": {
7687
+ * "code": "GONE",
7688
+ * "message": "The resource no longer exists.",
7689
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
7690
+ * }
7691
+ * }
7692
+ */
7693
+ "application/json": components["schemas"]["ErrorResponse"];
7694
+ };
7695
+ };
7119
7696
  /** @description Validation error */
7120
7697
  422: {
7121
7698
  headers: {
@@ -7320,6 +7897,24 @@ export interface paths {
7320
7897
  "application/json": components["schemas"]["ErrorResponse"];
7321
7898
  };
7322
7899
  };
7900
+ /** @description The resource this request names no longer exists */
7901
+ 410: {
7902
+ headers: {
7903
+ [name: string]: unknown;
7904
+ };
7905
+ content: {
7906
+ /**
7907
+ * @example {
7908
+ * "error": {
7909
+ * "code": "GONE",
7910
+ * "message": "The resource no longer exists.",
7911
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
7912
+ * }
7913
+ * }
7914
+ */
7915
+ "application/json": components["schemas"]["ErrorResponse"];
7916
+ };
7917
+ };
7323
7918
  /** @description Validation error */
7324
7919
  422: {
7325
7920
  headers: {
@@ -7524,6 +8119,24 @@ export interface paths {
7524
8119
  "application/json": components["schemas"]["ErrorResponse"];
7525
8120
  };
7526
8121
  };
8122
+ /** @description The resource this request names no longer exists */
8123
+ 410: {
8124
+ headers: {
8125
+ [name: string]: unknown;
8126
+ };
8127
+ content: {
8128
+ /**
8129
+ * @example {
8130
+ * "error": {
8131
+ * "code": "GONE",
8132
+ * "message": "The resource no longer exists.",
8133
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
8134
+ * }
8135
+ * }
8136
+ */
8137
+ "application/json": components["schemas"]["ErrorResponse"];
8138
+ };
8139
+ };
7527
8140
  /** @description Validation error */
7528
8141
  422: {
7529
8142
  headers: {
@@ -7728,6 +8341,24 @@ export interface paths {
7728
8341
  "application/json": components["schemas"]["ErrorResponse"];
7729
8342
  };
7730
8343
  };
8344
+ /** @description The resource this request names no longer exists */
8345
+ 410: {
8346
+ headers: {
8347
+ [name: string]: unknown;
8348
+ };
8349
+ content: {
8350
+ /**
8351
+ * @example {
8352
+ * "error": {
8353
+ * "code": "GONE",
8354
+ * "message": "The resource no longer exists.",
8355
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
8356
+ * }
8357
+ * }
8358
+ */
8359
+ "application/json": components["schemas"]["ErrorResponse"];
8360
+ };
8361
+ };
7731
8362
  /** @description Validation error */
7732
8363
  422: {
7733
8364
  headers: {
@@ -7932,6 +8563,24 @@ export interface paths {
7932
8563
  "application/json": components["schemas"]["ErrorResponse"];
7933
8564
  };
7934
8565
  };
8566
+ /** @description The resource this request names no longer exists */
8567
+ 410: {
8568
+ headers: {
8569
+ [name: string]: unknown;
8570
+ };
8571
+ content: {
8572
+ /**
8573
+ * @example {
8574
+ * "error": {
8575
+ * "code": "GONE",
8576
+ * "message": "The resource no longer exists.",
8577
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
8578
+ * }
8579
+ * }
8580
+ */
8581
+ "application/json": components["schemas"]["ErrorResponse"];
8582
+ };
8583
+ };
7935
8584
  /** @description Validation error */
7936
8585
  422: {
7937
8586
  headers: {
@@ -8136,6 +8785,24 @@ export interface paths {
8136
8785
  "application/json": components["schemas"]["ErrorResponse"];
8137
8786
  };
8138
8787
  };
8788
+ /** @description The resource this request names no longer exists */
8789
+ 410: {
8790
+ headers: {
8791
+ [name: string]: unknown;
8792
+ };
8793
+ content: {
8794
+ /**
8795
+ * @example {
8796
+ * "error": {
8797
+ * "code": "GONE",
8798
+ * "message": "The resource no longer exists.",
8799
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
8800
+ * }
8801
+ * }
8802
+ */
8803
+ "application/json": components["schemas"]["ErrorResponse"];
8804
+ };
8805
+ };
8139
8806
  /** @description Validation error */
8140
8807
  422: {
8141
8808
  headers: {
@@ -8360,6 +9027,24 @@ export interface paths {
8360
9027
  "application/json": components["schemas"]["ErrorResponse"];
8361
9028
  };
8362
9029
  };
9030
+ /** @description The resource this request names no longer exists */
9031
+ 410: {
9032
+ headers: {
9033
+ [name: string]: unknown;
9034
+ };
9035
+ content: {
9036
+ /**
9037
+ * @example {
9038
+ * "error": {
9039
+ * "code": "GONE",
9040
+ * "message": "The resource no longer exists.",
9041
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
9042
+ * }
9043
+ * }
9044
+ */
9045
+ "application/json": components["schemas"]["ErrorResponse"];
9046
+ };
9047
+ };
8363
9048
  /** @description Validation error */
8364
9049
  422: {
8365
9050
  headers: {
@@ -8592,6 +9277,24 @@ export interface paths {
8592
9277
  "application/json": components["schemas"]["ServicingConflictResponse"];
8593
9278
  };
8594
9279
  };
9280
+ /** @description The resource this request names no longer exists */
9281
+ 410: {
9282
+ headers: {
9283
+ [name: string]: unknown;
9284
+ };
9285
+ content: {
9286
+ /**
9287
+ * @example {
9288
+ * "error": {
9289
+ * "code": "GONE",
9290
+ * "message": "The resource no longer exists.",
9291
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
9292
+ * }
9293
+ * }
9294
+ */
9295
+ "application/json": components["schemas"]["ErrorResponse"];
9296
+ };
9297
+ };
8595
9298
  /** @description Validation error */
8596
9299
  422: {
8597
9300
  headers: {
@@ -8816,6 +9519,24 @@ export interface paths {
8816
9519
  "application/json": components["schemas"]["ErrorResponse"];
8817
9520
  };
8818
9521
  };
9522
+ /** @description The resource this request names no longer exists */
9523
+ 410: {
9524
+ headers: {
9525
+ [name: string]: unknown;
9526
+ };
9527
+ content: {
9528
+ /**
9529
+ * @example {
9530
+ * "error": {
9531
+ * "code": "GONE",
9532
+ * "message": "The resource no longer exists.",
9533
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
9534
+ * }
9535
+ * }
9536
+ */
9537
+ "application/json": components["schemas"]["ErrorResponse"];
9538
+ };
9539
+ };
8819
9540
  /** @description Validation error */
8820
9541
  422: {
8821
9542
  headers: {
@@ -9040,6 +9761,24 @@ export interface paths {
9040
9761
  "application/json": components["schemas"]["ErrorResponse"];
9041
9762
  };
9042
9763
  };
9764
+ /** @description The resource this request names no longer exists */
9765
+ 410: {
9766
+ headers: {
9767
+ [name: string]: unknown;
9768
+ };
9769
+ content: {
9770
+ /**
9771
+ * @example {
9772
+ * "error": {
9773
+ * "code": "GONE",
9774
+ * "message": "The resource no longer exists.",
9775
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
9776
+ * }
9777
+ * }
9778
+ */
9779
+ "application/json": components["schemas"]["ErrorResponse"];
9780
+ };
9781
+ };
9043
9782
  /** @description Validation error */
9044
9783
  422: {
9045
9784
  headers: {
@@ -9264,6 +10003,24 @@ export interface paths {
9264
10003
  "application/json": components["schemas"]["FlightServicingConflictResponse"];
9265
10004
  };
9266
10005
  };
10006
+ /** @description The resource this request names no longer exists */
10007
+ 410: {
10008
+ headers: {
10009
+ [name: string]: unknown;
10010
+ };
10011
+ content: {
10012
+ /**
10013
+ * @example {
10014
+ * "error": {
10015
+ * "code": "GONE",
10016
+ * "message": "The resource no longer exists.",
10017
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
10018
+ * }
10019
+ * }
10020
+ */
10021
+ "application/json": components["schemas"]["ErrorResponse"];
10022
+ };
10023
+ };
9267
10024
  /** @description Validation error */
9268
10025
  422: {
9269
10026
  headers: {
@@ -9488,6 +10245,24 @@ export interface paths {
9488
10245
  "application/json": components["schemas"]["ErrorResponse"];
9489
10246
  };
9490
10247
  };
10248
+ /** @description The resource this request names no longer exists */
10249
+ 410: {
10250
+ headers: {
10251
+ [name: string]: unknown;
10252
+ };
10253
+ content: {
10254
+ /**
10255
+ * @example {
10256
+ * "error": {
10257
+ * "code": "GONE",
10258
+ * "message": "The resource no longer exists.",
10259
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
10260
+ * }
10261
+ * }
10262
+ */
10263
+ "application/json": components["schemas"]["ErrorResponse"];
10264
+ };
10265
+ };
9491
10266
  /** @description Validation error */
9492
10267
  422: {
9493
10268
  headers: {
@@ -9686,6 +10461,24 @@ export interface paths {
9686
10461
  "application/json": components["schemas"]["ErrorResponse"];
9687
10462
  };
9688
10463
  };
10464
+ /** @description The resource this request names no longer exists */
10465
+ 410: {
10466
+ headers: {
10467
+ [name: string]: unknown;
10468
+ };
10469
+ content: {
10470
+ /**
10471
+ * @example {
10472
+ * "error": {
10473
+ * "code": "GONE",
10474
+ * "message": "The resource no longer exists.",
10475
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
10476
+ * }
10477
+ * }
10478
+ */
10479
+ "application/json": components["schemas"]["ErrorResponse"];
10480
+ };
10481
+ };
9689
10482
  /** @description Validation error */
9690
10483
  422: {
9691
10484
  headers: {
@@ -9879,6 +10672,24 @@ export interface paths {
9879
10672
  "application/json": components["schemas"]["ErrorResponse"];
9880
10673
  };
9881
10674
  };
10675
+ /** @description The resource this request names no longer exists */
10676
+ 410: {
10677
+ headers: {
10678
+ [name: string]: unknown;
10679
+ };
10680
+ content: {
10681
+ /**
10682
+ * @example {
10683
+ * "error": {
10684
+ * "code": "GONE",
10685
+ * "message": "The resource no longer exists.",
10686
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
10687
+ * }
10688
+ * }
10689
+ */
10690
+ "application/json": components["schemas"]["ErrorResponse"];
10691
+ };
10692
+ };
9882
10693
  /** @description Validation error */
9883
10694
  422: {
9884
10695
  headers: {
@@ -10079,6 +10890,24 @@ export interface paths {
10079
10890
  "application/json": components["schemas"]["ErrorResponse"];
10080
10891
  };
10081
10892
  };
10893
+ /** @description The resource this request names no longer exists */
10894
+ 410: {
10895
+ headers: {
10896
+ [name: string]: unknown;
10897
+ };
10898
+ content: {
10899
+ /**
10900
+ * @example {
10901
+ * "error": {
10902
+ * "code": "GONE",
10903
+ * "message": "The resource no longer exists.",
10904
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
10905
+ * }
10906
+ * }
10907
+ */
10908
+ "application/json": components["schemas"]["ErrorResponse"];
10909
+ };
10910
+ };
10082
10911
  /** @description Validation error */
10083
10912
  422: {
10084
10913
  headers: {
@@ -10268,6 +11097,24 @@ export interface paths {
10268
11097
  "application/json": components["schemas"]["ErrorResponse"];
10269
11098
  };
10270
11099
  };
11100
+ /** @description The resource this request names no longer exists */
11101
+ 410: {
11102
+ headers: {
11103
+ [name: string]: unknown;
11104
+ };
11105
+ content: {
11106
+ /**
11107
+ * @example {
11108
+ * "error": {
11109
+ * "code": "GONE",
11110
+ * "message": "The resource no longer exists.",
11111
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
11112
+ * }
11113
+ * }
11114
+ */
11115
+ "application/json": components["schemas"]["ErrorResponse"];
11116
+ };
11117
+ };
10271
11118
  /** @description Validation error */
10272
11119
  422: {
10273
11120
  headers: {
@@ -10472,6 +11319,24 @@ export interface paths {
10472
11319
  "application/json": components["schemas"]["ErrorResponse"];
10473
11320
  };
10474
11321
  };
11322
+ /** @description The resource this request names no longer exists */
11323
+ 410: {
11324
+ headers: {
11325
+ [name: string]: unknown;
11326
+ };
11327
+ content: {
11328
+ /**
11329
+ * @example {
11330
+ * "error": {
11331
+ * "code": "GONE",
11332
+ * "message": "The resource no longer exists.",
11333
+ * "doc_url": "https://docs.gojinko.com/concepts/errors"
11334
+ * }
11335
+ * }
11336
+ */
11337
+ "application/json": components["schemas"]["ErrorResponse"];
11338
+ };
11339
+ };
10475
11340
  /** @description Validation error */
10476
11341
  422: {
10477
11342
  headers: {
@@ -10680,6 +11545,11 @@ export interface components {
10680
11545
  * @example 2
10681
11546
  */
10682
11547
  decimal_places?: number;
11548
+ /**
11549
+ * @description The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
11550
+ * @example USD 412.50
11551
+ */
11552
+ display?: string;
10683
11553
  };
10684
11554
  Itinerary: {
10685
11555
  /** @example itin_9f3b2a17 */
@@ -10742,7 +11612,7 @@ export interface components {
10742
11612
  * @example BAD_REQUEST
10743
11613
  * @enum {string}
10744
11614
  */
10745
- code: "AUTH_REQUIRED" | "PAYMENT_REQUIRED" | "RATE_LIMITED" | "BAD_REQUEST" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "QUOTE_EXPIRED" | "TRIP_EXPIRED" | "TRIP_STATE_CONFLICT" | "OFFER_EXPIRED" | "OFFER_UNAVAILABLE" | "MISSING_CUSTOMER_DETAILS" | "CURRENCY_UNSUPPORTED" | "UPSTREAM_REJECTED" | "UPSTREAM_UNAVAILABLE" | "UPSTREAM_TIMEOUT" | "UPSTREAM_ERROR" | "INTERNAL";
11615
+ code: "AUTH_REQUIRED" | "PAYMENT_REQUIRED" | "RATE_LIMITED" | "BAD_REQUEST" | "FORBIDDEN" | "NOT_FOUND" | "CONFLICT" | "GONE" | "QUOTE_EXPIRED" | "TRIP_EXPIRED" | "TRIP_STATE_CONFLICT" | "OFFER_EXPIRED" | "OFFER_UNAVAILABLE" | "MISSING_CUSTOMER_DETAILS" | "CURRENCY_UNSUPPORTED" | "UPSTREAM_REJECTED" | "UPSTREAM_UNAVAILABLE" | "UPSTREAM_TIMEOUT" | "UPSTREAM_ERROR" | "INTERNAL";
10746
11616
  message: string;
10747
11617
  doc_url?: string;
10748
11618
  };
@@ -11068,6 +11938,7 @@ export interface components {
11068
11938
  /** @description The flown segments of this leg, in travel order — one per aircraft. A non-stop leg has one. Read `operating_carrier` here to disclose codeshares. Absent when the provider returned no segment breakdown, in which case `stops` and `stop_infos` are all that is known about the leg. */
11069
11939
  segments?: components["schemas"]["Segment"][];
11070
11940
  };
11941
+ /** @description A money figure in one of two scales, told apart by one rule. When `decimal_places` is present, `value` (or `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show. */
11071
11942
  Money: {
11072
11943
  /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
11073
11944
  amount?: number;
@@ -11086,6 +11957,11 @@ export interface components {
11086
11957
  * @example 2
11087
11958
  */
11088
11959
  decimal_places?: number;
11960
+ /**
11961
+ * @description The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
11962
+ * @example USD 412.50
11963
+ */
11964
+ display?: string;
11089
11965
  };
11090
11966
  /** @description A baggage allowance. Until v0.2.0 this was documented as a string while the platform sent this object — clients generated against the old spec typed it as text. */
11091
11967
  CheckedBaggage: {
@@ -11419,6 +12295,11 @@ export interface components {
11419
12295
  * @example 2
11420
12296
  */
11421
12297
  decimal_places?: number;
12298
+ /**
12299
+ * @description The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
12300
+ * @example USD 412.50
12301
+ */
12302
+ display?: string;
11422
12303
  };
11423
12304
  MonitoredCarrier: {
11424
12305
  /** @example DL */
@@ -11524,25 +12405,7 @@ export interface components {
11524
12405
  */
11525
12406
  display_label?: string;
11526
12407
  description?: string;
11527
- price_per_unit?: {
11528
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
11529
- amount?: number;
11530
- /**
11531
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
11532
- * @example 41250
11533
- */
11534
- value?: number;
11535
- /**
11536
- * @description ISO 4217 currency code.
11537
- * @example USD
11538
- */
11539
- currency?: string;
11540
- /**
11541
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
11542
- * @example 2
11543
- */
11544
- decimal_places?: number;
11545
- };
12408
+ price_per_unit?: components["schemas"]["Money"];
11546
12409
  /**
11547
12410
  * @description True when the price is charged per passenger rather than once per booking.
11548
12411
  * @example true
@@ -11570,66 +12433,9 @@ export interface components {
11570
12433
  };
11571
12434
  /** @description The move between the price shown at search time and the price the trip is quoted at, stated as three figures so the caller can report it without subtracting. All three are major currency units in one currency, matching `price` and `original_price` on the item carrying them. Present ONLY when the two differ — an item whose price held carries no `price_change` at all, and `price_changed` is true whenever it is present. */
11572
12435
  PriceChange: {
11573
- /** @description The selling price shown at search time, before the quote. */
11574
- original: {
11575
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
11576
- amount?: number;
11577
- /**
11578
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
11579
- * @example 41250
11580
- */
11581
- value?: number;
11582
- /**
11583
- * @description ISO 4217 currency code.
11584
- * @example USD
11585
- */
11586
- currency?: string;
11587
- /**
11588
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
11589
- * @example 2
11590
- */
11591
- decimal_places?: number;
11592
- };
11593
- /** @description The selling price the trip is quoted at — the same figure as `price`. */
11594
- current: {
11595
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
11596
- amount?: number;
11597
- /**
11598
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
11599
- * @example 41250
11600
- */
11601
- value?: number;
11602
- /**
11603
- * @description ISO 4217 currency code.
11604
- * @example USD
11605
- */
11606
- currency?: string;
11607
- /**
11608
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
11609
- * @example 2
11610
- */
11611
- decimal_places?: number;
11612
- };
11613
- /** @description `current` minus `original`, SIGNED: positive when the price rose, negative when it fell. */
11614
- delta: {
11615
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
11616
- amount?: number;
11617
- /**
11618
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
11619
- * @example 41250
11620
- */
11621
- value?: number;
11622
- /**
11623
- * @description ISO 4217 currency code.
11624
- * @example USD
11625
- */
11626
- currency?: string;
11627
- /**
11628
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
11629
- * @example 2
11630
- */
11631
- decimal_places?: number;
11632
- };
12436
+ original: components["schemas"]["Money"] & unknown;
12437
+ current: components["schemas"]["Money"] & unknown;
12438
+ delta: components["schemas"]["Money"] & unknown;
11633
12439
  };
11634
12440
  TaxLine: {
11635
12441
  /** @example 164.49 */
@@ -11646,6 +12452,11 @@ export interface components {
11646
12452
  * @example true
11647
12453
  */
11648
12454
  included?: boolean;
12455
+ /**
12456
+ * @description The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
12457
+ * @example EUR 164.49
12458
+ */
12459
+ display?: string;
11649
12460
  };
11650
12461
  CancellationStep: {
11651
12462
  /**
@@ -11665,6 +12476,11 @@ export interface components {
11665
12476
  * @example amount
11666
12477
  */
11667
12478
  type?: string;
12479
+ /**
12480
+ * @description The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
12481
+ * @example EUR 606.13
12482
+ */
12483
+ display?: string;
11668
12484
  };
11669
12485
  /** @description The rate terms behind a hotel item — cancellation ladder, taxes, board and room — as the platform holds them. They were captured at SEARCH time and are not re-confirmed at quote: read `terms_as_of` before treating any of them as a guarantee of what the provider will charge at booking. Present on hotel items only. */
11670
12486
  HotelTerms: {
@@ -11724,26 +12540,12 @@ export interface components {
11724
12540
  * @example lp1f2c3
11725
12541
  */
11726
12542
  hotel_id?: string;
11727
- /** @description Item total in major currency units. Absent until the trip has been quoted — an unpriced item carries no `price` key at all, so absence means "not priced yet", not "free". */
11728
- price?: {
11729
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
11730
- amount?: number;
11731
- /**
11732
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
11733
- * @example 41250
11734
- */
11735
- value?: number;
11736
- /**
11737
- * @description ISO 4217 currency code.
11738
- * @example USD
11739
- */
11740
- currency?: string;
11741
- /**
11742
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
11743
- * @example 2
11744
- */
11745
- decimal_places?: number;
11746
- };
12543
+ price?: components["schemas"]["Money"] & unknown;
12544
+ /**
12545
+ * @description The item price as a string ready to show, e.g. "EUR 545.55". Sent beside a `price` that arrives as a bare major-units number with `currency` (the trip create response); a `price` object carries its own `display` instead.
12546
+ * @example EUR 545.55
12547
+ */
12548
+ price_display?: string;
11747
12549
  /** @example 1 */
11748
12550
  pax_count?: number;
11749
12551
  /** @description Ancillaries that can still be selected on this item. Empty once nothing is on offer; populated only after the item has been quoted. */
@@ -11755,26 +12557,7 @@ export interface components {
11755
12557
  * @example true
11756
12558
  */
11757
12559
  price_changed?: boolean;
11758
- /** @description The snapshot price recorded at search time. Present only when `price_changed` is true; compare it against `price` to show the caller what moved. */
11759
- original_price?: {
11760
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
11761
- amount?: number;
11762
- /**
11763
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
11764
- * @example 41250
11765
- */
11766
- value?: number;
11767
- /**
11768
- * @description ISO 4217 currency code.
11769
- * @example USD
11770
- */
11771
- currency?: string;
11772
- /**
11773
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
11774
- * @example 2
11775
- */
11776
- decimal_places?: number;
11777
- };
12560
+ original_price?: components["schemas"]["Money"] & unknown;
11778
12561
  price_change?: components["schemas"]["PriceChange"];
11779
12562
  /** @description Extra attributes the carrier requires collected before booking this item — e.g. passport fields on carriers that mandate travel documents (JIN-1796). Contents are passed through from the connector unvalidated. When this object is absent, no requirement is known; absence is NOT a statement that no document is needed. */
11780
12563
  required_attributes?: {
@@ -11857,6 +12640,11 @@ export interface components {
11857
12640
  totals?: {
11858
12641
  currency?: string;
11859
12642
  total?: number;
12643
+ /**
12644
+ * @description The trip total as a string ready to show, e.g. "USD 318.40". Absent with `total`.
12645
+ * @example USD 318.40
12646
+ */
12647
+ total_display?: string;
11860
12648
  };
11861
12649
  };
11862
12650
  TripStateResponse: {
@@ -12011,25 +12799,7 @@ export interface components {
12011
12799
  title?: string;
12012
12800
  };
12013
12801
  items?: components["schemas"]["TripItem"][];
12014
- total_amount?: {
12015
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
12016
- amount?: number;
12017
- /**
12018
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
12019
- * @example 41250
12020
- */
12021
- value?: number;
12022
- /**
12023
- * @description ISO 4217 currency code.
12024
- * @example USD
12025
- */
12026
- currency?: string;
12027
- /**
12028
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
12029
- * @example 2
12030
- */
12031
- decimal_places?: number;
12032
- };
12802
+ total_amount?: components["schemas"]["Money"];
12033
12803
  /**
12034
12804
  * @example {
12035
12805
  * "quoted_cart_id": 2097152,
@@ -12074,25 +12844,7 @@ export interface components {
12074
12844
  /** @example 8810231 */
12075
12845
  quoted_item_id?: number;
12076
12846
  selected_ancillaries?: components["schemas"]["SelectedAncillary"][];
12077
- total_with_ancillaries?: {
12078
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
12079
- amount?: number;
12080
- /**
12081
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
12082
- * @example 41250
12083
- */
12084
- value?: number;
12085
- /**
12086
- * @description ISO 4217 currency code.
12087
- * @example USD
12088
- */
12089
- currency?: string;
12090
- /**
12091
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
12092
- * @example 2
12093
- */
12094
- decimal_places?: number;
12095
- };
12847
+ total_with_ancillaries?: components["schemas"]["Money"];
12096
12848
  };
12097
12849
  /**
12098
12850
  * @example {
@@ -12154,7 +12906,7 @@ export interface components {
12154
12906
  */
12155
12907
  status?: string;
12156
12908
  /**
12157
- * @description When the locked quote behind this checkout expires (RFC 3339). Roughly five minutes from the call — pay before it passes. This is NOT the lifetime of `checkout_url`, which the platform keeps openable for longer. After this instant the platform REFUSES to take payment rather than charging a stale price: `POST /v1/agent_payment/submit` answers **410 `QUOTE_EXPIRED`** and no payment object is created. To recover, call `POST /v1/checkout` again on the same trip — it re-quotes — and pay against the new `expires_at`. The hosted page offers the same refresh in one click.
12909
+ * @description When the quote behind this checkout stops being payable (RFC 3339). Roughly fifteen minutes from the call — pay before it passes. It is NOT a price hold: the supplier guarantees neither the price nor availability for the window, so an offer can lapse inside it. Nor is it the lifetime of `checkout_url`, which stays openable longer. After this instant the platform REFUSES to take payment rather than charging a stale price: `POST /v1/agent_payment/submit` answers **410 `QUOTE_EXPIRED`** and no payment object is created. To recover, call `POST /v1/checkout` again on the same trip — it re-quotes at the current price — and pay against the new `expires_at`. The hosted page cannot recover on its own: past this instant it shows the price as expired and the customer has to be sent a fresh checkout.
12158
12910
  * @example 2026-06-01T12:39:56Z
12159
12911
  */
12160
12912
  expires_at?: string;
@@ -12164,25 +12916,7 @@ export interface components {
12164
12916
  * @enum {string}
12165
12917
  */
12166
12918
  payment_type?: "intent" | "checkout" | "agent";
12167
- total_amount?: {
12168
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
12169
- amount?: number;
12170
- /**
12171
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
12172
- * @example 41250
12173
- */
12174
- value?: number;
12175
- /**
12176
- * @description ISO 4217 currency code.
12177
- * @example USD
12178
- */
12179
- currency?: string;
12180
- /**
12181
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
12182
- * @example 2
12183
- */
12184
- decimal_places?: number;
12185
- };
12919
+ total_amount?: components["schemas"]["Money"];
12186
12920
  items?: components["schemas"]["TripItem"][];
12187
12921
  agent_spt_params?: components["schemas"]["AgentSPTParams"];
12188
12922
  };
@@ -12218,6 +12952,11 @@ export interface components {
12218
12952
  * @example 2026-09-04T12:39:56Z
12219
12953
  */
12220
12954
  expires_at?: string;
12955
+ /**
12956
+ * @description The quote that lapsed — the same `quoted_cart_id` the trip and checkout responses carry, so a caller holding several can tell which one this refusal is about.
12957
+ * @example 2097152
12958
+ */
12959
+ quoted_cart_id?: number;
12221
12960
  };
12222
12961
  AgentPaymentSubmitRequest: {
12223
12962
  /** @example trip_1048576 */
@@ -12241,6 +12980,11 @@ export interface components {
12241
12980
  * @example 1818.4
12242
12981
  */
12243
12982
  total_amount?: number;
12983
+ /**
12984
+ * @description The rate total as a string ready to show: the ISO 4217 code, a space, then `total_amount` at the currency’s ISO digits, e.g. "EUR 606.13". Show this; compute with `total_amount`.
12985
+ * @example EUR 606.13
12986
+ */
12987
+ total_amount_display?: string;
12244
12988
  /** @example EUR */
12245
12989
  currency?: string;
12246
12990
  /** @example false */
@@ -12514,6 +13258,8 @@ export interface components {
12514
13258
  value: number;
12515
13259
  currency: string;
12516
13260
  decimal_places?: number;
13261
+ /** @description The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously. */
13262
+ display?: string;
12517
13263
  };
12518
13264
  GroundFare: {
12519
13265
  fare_class?: string;
@@ -12708,6 +13454,11 @@ export interface components {
12708
13454
  * @example 2
12709
13455
  */
12710
13456
  decimal_places?: number;
13457
+ /**
13458
+ * @description The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
13459
+ * @example EUR 412.50
13460
+ */
13461
+ display?: string;
12711
13462
  };
12712
13463
  CarOfferPrice: {
12713
13464
  pay_now?: components["schemas"]["CarAmount"];
@@ -13298,6 +14049,33 @@ export interface components {
13298
14049
  * @enum {string}
13299
14050
  */
13300
14051
  SupportLevel: "AUTO" | "MANUAL_REQUIRED" | "UNSUPPORTED";
14052
+ BookingCalendarFile: {
14053
+ /**
14054
+ * @description The iTIP method (RFC 5546) this file carries: `REQUEST` for the events the booking still holds, `CANCEL` for the ones it no longer does. One file carries exactly one method — a booking that both retires and confirms flights, which is what an exchange does, comes back as two files rather than one mixed one.
14055
+ * @example REQUEST
14056
+ */
14057
+ method?: string;
14058
+ /**
14059
+ * @description The name the confirmation or cancellation email attached this same file under.
14060
+ * @example jinko-JNK-A0AUR2.ics
14061
+ */
14062
+ filename?: string;
14063
+ /**
14064
+ * @description The media type, including the `method` parameter. Attach or serve the file under this exact value: the method parameter is what makes a mail client act on the file instead of storing it as a plain attachment.
14065
+ * @example text/calendar; charset=utf-8; method=REQUEST
14066
+ */
14067
+ content_type?: string;
14068
+ /**
14069
+ * @description The iCalendar file itself. Real CRLF line endings, as iCalendar requires — the example escapes them only so it can be read here. Byte-identical to what the email carried for the current state of this booking.
14070
+ * @example BEGIN:VCALENDAR\r\nVERSION:2.0\r\n…\r\nEND:VCALENDAR\r\n
14071
+ */
14072
+ content?: string;
14073
+ };
14074
+ /** @description The calendar entries for this booking, as iCalendar files. Absent — not null, and never an empty list — when the booking holds no flight and no hotel, and whenever the files could not be built. */
14075
+ BookingCalendar: {
14076
+ /** @description The iCalendar files this booking is carried in, cancellation first and then invitation — the order the emails attach them in. Never empty: a booking with nothing to put in a calendar omits `calendar` altogether. */
14077
+ files?: components["schemas"]["BookingCalendarFile"][];
14078
+ };
13301
14079
  /** @description The booked trip. Minimally described — the platform sends more (items, per-item confirmations, provider state) and all of it reaches you. The two `*_support_level` fields are a SNAPSHOT: a fare’s void window closes with time, so before acting on a refund or exchange read the level from a live POST /v1/refund_check or POST /v1/exchange_shop rather than from here. */
13302
14080
  Booking: {
13303
14081
  /**
@@ -13314,29 +14092,12 @@ export interface components {
13314
14092
  type?: string;
13315
14093
  /** @example Carrard */
13316
14094
  last_name?: string;
13317
- total_paid?: {
13318
- /**
13319
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13320
- * @example 41250
13321
- */
13322
- value?: number;
13323
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13324
- amount?: number;
13325
- /**
13326
- * @description ISO 4217 currency code.
13327
- * @example USD
13328
- */
13329
- currency?: string;
13330
- /**
13331
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13332
- * @example 2
13333
- */
13334
- decimal_places?: number;
13335
- };
14095
+ total_paid?: components["schemas"]["Money"];
13336
14096
  refund_support_level?: components["schemas"]["SupportLevel"];
13337
14097
  exchange_support_level?: components["schemas"]["SupportLevel"];
13338
14098
  /** @example 2026-05-20T09:14:00Z */
13339
14099
  created_at?: string;
14100
+ calendar?: components["schemas"]["BookingCalendar"];
13340
14101
  };
13341
14102
  /**
13342
14103
  * @example {
@@ -13350,7 +14111,17 @@ export interface components {
13350
14111
  * "currency": "USD",
13351
14112
  * "decimal_places": 2
13352
14113
  * },
13353
- * "created_at": "2026-05-20T09:14:00Z"
14114
+ * "created_at": "2026-05-20T09:14:00Z",
14115
+ * "calendar": {
14116
+ * "files": [
14117
+ * {
14118
+ * "method": "REQUEST",
14119
+ * "filename": "jinko-JNK-A0AUR2.ics",
14120
+ * "content_type": "text/calendar; charset=utf-8; method=REQUEST",
14121
+ * "content": "BEGIN:VCALENDAR\\r\\nVERSION:2.0\\r\\n…\\r\\nEND:VCALENDAR\\r\\n"
14122
+ * }
14123
+ * ]
14124
+ * }
13354
14125
  * }
13355
14126
  * }
13356
14127
  */
@@ -13380,64 +14151,9 @@ export interface components {
13380
14151
  * @example fare rules require agent review
13381
14152
  */
13382
14153
  manual_reason?: string;
13383
- /** @description What would be refunded. **Absent is not zero** — on a voidable ticket (`is_voidable: true`) the whole charge is reversed and no amount is quoted, and on an unsupported refund nothing is computed at all. Read `is_refundable` and `is_voidable` before showing a figure. */
13384
- refund_amount?: {
13385
- /**
13386
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13387
- * @example 41250
13388
- */
13389
- value?: number;
13390
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13391
- amount?: number;
13392
- /**
13393
- * @description ISO 4217 currency code.
13394
- * @example USD
13395
- */
13396
- currency?: string;
13397
- /**
13398
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13399
- * @example 2
13400
- */
13401
- decimal_places?: number;
13402
- };
13403
- penalty_amount?: {
13404
- /**
13405
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13406
- * @example 41250
13407
- */
13408
- value?: number;
13409
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13410
- amount?: number;
13411
- /**
13412
- * @description ISO 4217 currency code.
13413
- * @example USD
13414
- */
13415
- currency?: string;
13416
- /**
13417
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13418
- * @example 2
13419
- */
13420
- decimal_places?: number;
13421
- };
13422
- total_paid?: {
13423
- /**
13424
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13425
- * @example 41250
13426
- */
13427
- value?: number;
13428
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13429
- amount?: number;
13430
- /**
13431
- * @description ISO 4217 currency code.
13432
- * @example USD
13433
- */
13434
- currency?: string;
13435
- /**
13436
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13437
- * @example 2
13438
- */
13439
- decimal_places?: number;
13440
- };
14154
+ refund_amount?: components["schemas"]["Money"] & unknown;
14155
+ penalty_amount?: components["schemas"]["Money"];
14156
+ total_paid?: components["schemas"]["Money"];
13441
14157
  /** @example 2026-06-02T00:00:00Z */
13442
14158
  expires_at?: string;
13443
14159
  warnings?: string[];
@@ -13469,66 +14185,11 @@ export interface components {
13469
14185
  FlightOperationKind: "cancel" | "void";
13470
14186
  /** @description The airline's own net figures, for reconciliation — never what the customer receives. `refund_net` is what the airline returns to Jinko, `penalty_net` what it withheld from Jinko and `total_paid_net` what it recorded as paid to it; on a ticket sold at a margin all three differ from the customer figures. Show the customer the top-level `refund_amount` / `refund`, never these. `currency` is the currency the airline settles in, which can differ from the currency charged. The whole object is omitted on a void (`operation_kind: void`): the original charge is reversed without reading any supplier figure, so there is none to report. */
13471
14187
  FlightProviderFigures: {
13472
- refund_net?: {
13473
- /**
13474
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13475
- * @example 41250
13476
- */
13477
- value?: number;
13478
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13479
- amount?: number;
13480
- /**
13481
- * @description ISO 4217 currency code.
13482
- * @example USD
13483
- */
13484
- currency?: string;
13485
- /**
13486
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13487
- * @example 2
13488
- */
13489
- decimal_places?: number;
13490
- };
13491
- penalty_net?: {
13492
- /**
13493
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13494
- * @example 41250
13495
- */
13496
- value?: number;
13497
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13498
- amount?: number;
13499
- /**
13500
- * @description ISO 4217 currency code.
13501
- * @example USD
13502
- */
13503
- currency?: string;
13504
- /**
13505
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13506
- * @example 2
13507
- */
13508
- decimal_places?: number;
13509
- };
14188
+ refund_net?: components["schemas"]["Money"];
14189
+ penalty_net?: components["schemas"]["Money"];
13510
14190
  /** @example USD */
13511
14191
  currency?: string;
13512
- /** @description What the airline recorded as paid to it for this item, net of Jinko’s margin. The base `refund_net` is measured against, and not what the customer paid. */
13513
- total_paid_net?: {
13514
- /**
13515
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13516
- * @example 41250
13517
- */
13518
- value?: number;
13519
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13520
- amount?: number;
13521
- /**
13522
- * @description ISO 4217 currency code.
13523
- * @example USD
13524
- */
13525
- currency?: string;
13526
- /**
13527
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13528
- * @example 2
13529
- */
13530
- decimal_places?: number;
13531
- };
14192
+ total_paid_net?: components["schemas"]["Money"] & unknown;
13532
14193
  };
13533
14194
  RefundCommitResponse: {
13534
14195
  /**
@@ -13544,49 +14205,8 @@ export interface components {
13544
14205
  operation?: string;
13545
14206
  state?: components["schemas"]["ServicingState"];
13546
14207
  operation_kind?: components["schemas"]["FlightOperationKind"];
13547
- /** @description THE CUSTOMER FIGURE: what goes back to the payment method that paid for this ticket — what they paid, less the penalty, or the whole charge when the ticket was voided (`operation_kind: void`). Show this one. `confirmed_refund_amount` beside it is the airline's net figure and is smaller on any ticket sold at a margin. Absent is not zero. */
13548
- refund_amount?: {
13549
- /**
13550
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13551
- * @example 41250
13552
- */
13553
- value?: number;
13554
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13555
- amount?: number;
13556
- /**
13557
- * @description ISO 4217 currency code.
13558
- * @example USD
13559
- */
13560
- currency?: string;
13561
- /**
13562
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13563
- * @example 2
13564
- */
13565
- decimal_places?: number;
13566
- };
13567
- /**
13568
- * @deprecated
13569
- * @description The AIRLINE's net refund — what the supplier returns to Jinko, not what the customer receives — kept unchanged for one contract version under the name it has always had. Read `refund_amount` for the customer and `provider_figures.refund_net` for reconciliation; this field is removed in the next version. Omitted on a void, where no supplier figure is read at all.
13570
- */
13571
- confirmed_refund_amount?: {
13572
- /**
13573
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13574
- * @example 41250
13575
- */
13576
- value?: number;
13577
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13578
- amount?: number;
13579
- /**
13580
- * @description ISO 4217 currency code.
13581
- * @example USD
13582
- */
13583
- currency?: string;
13584
- /**
13585
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13586
- * @example 2
13587
- */
13588
- decimal_places?: number;
13589
- };
14208
+ refund_amount?: components["schemas"]["Money"] & unknown;
14209
+ confirmed_refund_amount?: components["schemas"]["Money"] & unknown;
13590
14210
  provider_figures?: components["schemas"]["FlightProviderFigures"];
13591
14211
  /** @example rfnd_3c91f0a2 */
13592
14212
  refund_reference?: string;
@@ -13624,26 +14244,7 @@ export interface components {
13624
14244
  */
13625
14245
  operation?: string;
13626
14246
  state?: components["schemas"]["ServicingState"];
13627
- /** @description THE CUSTOMER FIGURE: what goes back to the payment method — the settled figure once the refund has settled, the quoted one before. Absent is not zero. */
13628
- refund_amount?: {
13629
- /**
13630
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13631
- * @example 41250
13632
- */
13633
- value?: number;
13634
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13635
- amount?: number;
13636
- /**
13637
- * @description ISO 4217 currency code.
13638
- * @example USD
13639
- */
13640
- currency?: string;
13641
- /**
13642
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13643
- * @example 2
13644
- */
13645
- decimal_places?: number;
13646
- };
14247
+ refund_amount?: components["schemas"]["Money"] & unknown;
13647
14248
  /** @example rfnd_3c91f0a2 */
13648
14249
  refund_reference?: string;
13649
14250
  warnings?: string[];
@@ -13677,25 +14278,7 @@ export interface components {
13677
14278
  * @example additional_payment_due
13678
14279
  */
13679
14280
  estimated_payment_outcome?: string;
13680
- estimated_amount?: {
13681
- /**
13682
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13683
- * @example 41250
13684
- */
13685
- value?: number;
13686
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13687
- amount?: number;
13688
- /**
13689
- * @description ISO 4217 currency code.
13690
- * @example USD
13691
- */
13692
- currency?: string;
13693
- /**
13694
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13695
- * @example 2
13696
- */
13697
- decimal_places?: number;
13698
- };
14281
+ estimated_amount?: components["schemas"]["Money"];
13699
14282
  /** @example AA */
13700
14283
  validating_carrier?: string;
13701
14284
  };
@@ -13724,82 +14307,10 @@ export interface components {
13724
14307
  ExchangePriceResponse: {
13725
14308
  /** @example additional_payment_due */
13726
14309
  payment_outcome?: string;
13727
- fare_difference?: {
13728
- /**
13729
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13730
- * @example 41250
13731
- */
13732
- value?: number;
13733
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13734
- amount?: number;
13735
- /**
13736
- * @description ISO 4217 currency code.
13737
- * @example USD
13738
- */
13739
- currency?: string;
13740
- /**
13741
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13742
- * @example 2
13743
- */
13744
- decimal_places?: number;
13745
- };
13746
- penalty_amount?: {
13747
- /**
13748
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13749
- * @example 41250
13750
- */
13751
- value?: number;
13752
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13753
- amount?: number;
13754
- /**
13755
- * @description ISO 4217 currency code.
13756
- * @example USD
13757
- */
13758
- currency?: string;
13759
- /**
13760
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13761
- * @example 2
13762
- */
13763
- decimal_places?: number;
13764
- };
13765
- total_due?: {
13766
- /**
13767
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13768
- * @example 41250
13769
- */
13770
- value?: number;
13771
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13772
- amount?: number;
13773
- /**
13774
- * @description ISO 4217 currency code.
13775
- * @example USD
13776
- */
13777
- currency?: string;
13778
- /**
13779
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13780
- * @example 2
13781
- */
13782
- decimal_places?: number;
13783
- };
13784
- total_refund?: {
13785
- /**
13786
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13787
- * @example 41250
13788
- */
13789
- value?: number;
13790
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13791
- amount?: number;
13792
- /**
13793
- * @description ISO 4217 currency code.
13794
- * @example USD
13795
- */
13796
- currency?: string;
13797
- /**
13798
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13799
- * @example 2
13800
- */
13801
- decimal_places?: number;
13802
- };
14310
+ fare_difference?: components["schemas"]["Money"];
14311
+ penalty_amount?: components["schemas"]["Money"];
14312
+ total_due?: components["schemas"]["Money"];
14313
+ total_refund?: components["schemas"]["Money"];
13803
14314
  /** @example exch_7a1c93f0 */
13804
14315
  session_reference?: string;
13805
14316
  /** @example 2026-06-01T13:04:56Z */
@@ -13889,44 +14400,8 @@ export interface components {
13889
14400
  };
13890
14401
  /** @description The supplier's own net figures, for reconciliation — never what the customer receives. `refund_net` is what the supplier returns to Jinko and `penalty_net` what it withheld from Jinko; on a booking sold at a margin both differ from the customer figures. Show the customer the top-level `refund_amount` / `penalty_amount`, never these. `currency` is the currency the supplier settles in, which can differ from the currency charged. */
13891
14402
  ProviderFigures: {
13892
- refund_net?: {
13893
- /**
13894
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13895
- * @example 41250
13896
- */
13897
- value?: number;
13898
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13899
- amount?: number;
13900
- /**
13901
- * @description ISO 4217 currency code.
13902
- * @example USD
13903
- */
13904
- currency?: string;
13905
- /**
13906
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13907
- * @example 2
13908
- */
13909
- decimal_places?: number;
13910
- };
13911
- penalty_net?: {
13912
- /**
13913
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13914
- * @example 41250
13915
- */
13916
- value?: number;
13917
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13918
- amount?: number;
13919
- /**
13920
- * @description ISO 4217 currency code.
13921
- * @example USD
13922
- */
13923
- currency?: string;
13924
- /**
13925
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13926
- * @example 2
13927
- */
13928
- decimal_places?: number;
13929
- };
14403
+ refund_net?: components["schemas"]["Money"];
14404
+ penalty_net?: components["schemas"]["Money"];
13930
14405
  /** @example USD */
13931
14406
  currency?: string;
13932
14407
  };
@@ -13943,69 +14418,9 @@ export interface components {
13943
14418
  */
13944
14419
  operation?: string;
13945
14420
  state?: components["schemas"]["ServicingState"];
13946
- /** @description THE CUSTOMER FIGURE: what goes back to the payment method that paid for this booking — what the customer paid for it, less `penalty_amount`. Up to contract version 0.3.0 this field carried the SUPPLIER's net refund instead, which on a booking sold at a margin is a smaller number; the supplier's figure now lives in `provider_figures.refund_net`. Absent when no refund was scheduled — absent is not zero. */
13947
- refund_amount?: {
13948
- /**
13949
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13950
- * @example 41250
13951
- */
13952
- value?: number;
13953
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13954
- amount?: number;
13955
- /**
13956
- * @description ISO 4217 currency code.
13957
- * @example USD
13958
- */
13959
- currency?: string;
13960
- /**
13961
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13962
- * @example 2
13963
- */
13964
- decimal_places?: number;
13965
- };
13966
- /**
13967
- * @deprecated
13968
- * @description Deprecated alias of `refund_amount`, carrying the same value. It existed because `refund_amount` used to be the supplier figure; now that `refund_amount` IS the customer figure the alias is redundant. Read `refund_amount` — this field is removed in the next contract version.
13969
- */
13970
- customer_refund_amount?: {
13971
- /**
13972
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13973
- * @example 41250
13974
- */
13975
- value?: number;
13976
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13977
- amount?: number;
13978
- /**
13979
- * @description ISO 4217 currency code.
13980
- * @example USD
13981
- */
13982
- currency?: string;
13983
- /**
13984
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
13985
- * @example 2
13986
- */
13987
- decimal_places?: number;
13988
- };
13989
- /** @description The cancellation penalty withheld from the customer, on the same basis as `refund_amount`: what they paid, less this, is what they get back. The penalty the SUPPLIER withheld from Jinko is `provider_figures.penalty_net`. */
13990
- penalty_amount?: {
13991
- /**
13992
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
13993
- * @example 41250
13994
- */
13995
- value?: number;
13996
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
13997
- amount?: number;
13998
- /**
13999
- * @description ISO 4217 currency code.
14000
- * @example USD
14001
- */
14002
- currency?: string;
14003
- /**
14004
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14005
- * @example 2
14006
- */
14007
- decimal_places?: number;
14008
- };
14421
+ refund_amount?: components["schemas"]["Money"] & unknown;
14422
+ customer_refund_amount?: components["schemas"]["Money"] & unknown;
14423
+ penalty_amount?: components["schemas"]["Money"] & unknown;
14009
14424
  provider_figures?: components["schemas"]["ProviderFigures"];
14010
14425
  /** @example cxl_2f90a1c3 */
14011
14426
  connector_reference?: string;
@@ -14070,24 +14485,7 @@ export interface components {
14070
14485
  */
14071
14486
  item?: string;
14072
14487
  /** @description THE CUSTOMER FIGURE: what would go back to the payment method, on the basis named in `basis`. Show this one. Absent is not zero. */
14073
- refund?: {
14074
- /**
14075
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14076
- * @example 41250
14077
- */
14078
- value?: number;
14079
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14080
- amount?: number;
14081
- /**
14082
- * @description ISO 4217 currency code.
14083
- * @example USD
14084
- */
14085
- currency?: string;
14086
- /**
14087
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14088
- * @example 2
14089
- */
14090
- decimal_places?: number;
14488
+ refund?: components["schemas"]["Money"] & {
14091
14489
  /**
14092
14490
  * @description How the figure was computed. `sell_minus_penalty` — what the customer paid for this item, less the penalty. `original_charge` — the entire charge is reversed, penalty-free (a void). The platform chooses; the caller cannot ask for one.
14093
14491
  * @example sell_minus_penalty
@@ -14095,24 +14493,7 @@ export interface components {
14095
14493
  basis?: string;
14096
14494
  };
14097
14495
  /** @description What the customer would forfeit — read `fee_known` before showing it. */
14098
- penalty?: {
14099
- /**
14100
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14101
- * @example 41250
14102
- */
14103
- value?: number;
14104
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14105
- amount?: number;
14106
- /**
14107
- * @description ISO 4217 currency code.
14108
- * @example USD
14109
- */
14110
- currency?: string;
14111
- /**
14112
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14113
- * @example 2
14114
- */
14115
- decimal_places?: number;
14496
+ penalty?: components["schemas"]["Money"] & {
14116
14497
  /**
14117
14498
  * @description false means the penalty could not be established — UNKNOWN, not zero. Render it as "we will confirm the fee", never as free cancellation, and expect the final figure on the operation status.
14118
14499
  * @example true
@@ -14135,25 +14516,7 @@ export interface components {
14135
14516
  * @example 2026-09-01T00:00:00Z
14136
14517
  */
14137
14518
  from?: string;
14138
- amount?: {
14139
- /**
14140
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14141
- * @example 41250
14142
- */
14143
- value?: number;
14144
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14145
- amount?: number;
14146
- /**
14147
- * @description ISO 4217 currency code.
14148
- * @example USD
14149
- */
14150
- currency?: string;
14151
- /**
14152
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14153
- * @example 2
14154
- */
14155
- decimal_places?: number;
14156
- };
14519
+ amount?: components["schemas"]["Money"];
14157
14520
  /**
14158
14521
  * @description The share of the paid price withheld from `from` onwards, when the supplier states the step as a proportion rather than a sum. A step carries `amount` or `fraction`, not both.
14159
14522
  * @example 0.5
@@ -14220,51 +14583,14 @@ export interface components {
14220
14583
  requote?: string;
14221
14584
  /** @description The customer refund as it stands now, on `quote_drift`. This is what the customer would get if they accepted the new quote. */
14222
14585
  current?: {
14223
- refund?: {
14224
- /**
14225
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14226
- * @example 41250
14227
- */
14228
- value?: number;
14229
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14230
- amount?: number;
14231
- /**
14232
- * @description ISO 4217 currency code.
14233
- * @example USD
14234
- */
14235
- currency?: string;
14236
- /**
14237
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14238
- * @example 2
14239
- */
14240
- decimal_places?: number;
14241
- };
14586
+ refund?: components["schemas"]["Money"];
14242
14587
  };
14243
14588
  /**
14244
14589
  * @description The operation already running on this booking, on `active_operation_exists`. Poll it with the status route for its domain — POST /v1/hotel_cancel_status or POST /v1/flight_refund_status.
14245
14590
  * @example svc_01J7ZR5Q2KME8V4T
14246
14591
  */
14247
14592
  active_operation?: string;
14248
- /** @description How much of the refund could not be reserved, on `funds_unavailable`. The refusal is about money still moving on the original payment, not about this booking, so this is the figure that says how much has to clear before a commit can succeed. */
14249
- shortfall?: {
14250
- /**
14251
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14252
- * @example 41250
14253
- */
14254
- value?: number;
14255
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14256
- amount?: number;
14257
- /**
14258
- * @description ISO 4217 currency code.
14259
- * @example USD
14260
- */
14261
- currency?: string;
14262
- /**
14263
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14264
- * @example 2
14265
- */
14266
- decimal_places?: number;
14267
- };
14593
+ shortfall?: components["schemas"]["Money"] & unknown;
14268
14594
  /**
14269
14595
  * @description What is holding that money, on `funds_unavailable`: the refunds already in flight against the same payment, which have to settle before this one can be reserved. Opaque handles — read them as identity, do not parse them. This is what to wait on; without it, "retry later" has nothing behind it.
14270
14596
  * @example [
@@ -14368,24 +14694,7 @@ export interface components {
14368
14694
  };
14369
14695
  };
14370
14696
  /** @description The refund and where it has got to. Read `vehicle_state` before telling a customer they have been refunded. */
14371
- money?: {
14372
- /**
14373
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14374
- * @example 41250
14375
- */
14376
- value?: number;
14377
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14378
- amount?: number;
14379
- /**
14380
- * @description ISO 4217 currency code.
14381
- * @example USD
14382
- */
14383
- currency?: string;
14384
- /**
14385
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14386
- * @example 2
14387
- */
14388
- decimal_places?: number;
14697
+ money?: components["schemas"]["Money"] & {
14389
14698
  /**
14390
14699
  * @description Which way the money moves. `refund` on a cancellation.
14391
14700
  * @example refund
@@ -14505,24 +14814,7 @@ export interface components {
14505
14814
  */
14506
14815
  provider?: string;
14507
14816
  /** @description THE CUSTOMER FIGURE: what would go back to the payment method, on the basis named in `basis` — what they paid less the penalty, or the entire charge on a void. Show this one, never `provider_figures`. Absent is not zero: a quote whose penalty is unknown carries no refund figure at all. */
14508
- refund?: {
14509
- /**
14510
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14511
- * @example 41250
14512
- */
14513
- value?: number;
14514
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14515
- amount?: number;
14516
- /**
14517
- * @description ISO 4217 currency code.
14518
- * @example USD
14519
- */
14520
- currency?: string;
14521
- /**
14522
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14523
- * @example 2
14524
- */
14525
- decimal_places?: number;
14817
+ refund?: components["schemas"]["Money"] & {
14526
14818
  /**
14527
14819
  * @description How the figure was computed. `sell_minus_penalty` — what the customer paid for this item, less the penalty. `original_charge` — the entire charge is reversed, penalty-free (a void). The platform chooses; the caller cannot ask for one.
14528
14820
  * @example sell_minus_penalty
@@ -14530,24 +14822,7 @@ export interface components {
14530
14822
  basis?: string;
14531
14823
  };
14532
14824
  /** @description What the customer would forfeit, in the currency they were charged. Zero on a void. Read `fee_known` before showing it — false means UNKNOWN, not free. */
14533
- penalty?: {
14534
- /**
14535
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14536
- * @example 41250
14537
- */
14538
- value?: number;
14539
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14540
- amount?: number;
14541
- /**
14542
- * @description ISO 4217 currency code.
14543
- * @example USD
14544
- */
14545
- currency?: string;
14546
- /**
14547
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14548
- * @example 2
14549
- */
14550
- decimal_places?: number;
14825
+ penalty?: components["schemas"]["Money"] & {
14551
14826
  /**
14552
14827
  * @description false means the penalty could not be established — UNKNOWN, not zero. Render it as "we will confirm the fee", never as free cancellation, and expect the final figure on the operation status.
14553
14828
  * @example true
@@ -14625,51 +14900,14 @@ export interface components {
14625
14900
  requote?: string;
14626
14901
  /** @description The customer refund as it stands now, on `quote_drift`. This is what the customer would get if they accepted the new quote. */
14627
14902
  current?: {
14628
- refund?: {
14629
- /**
14630
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14631
- * @example 41250
14632
- */
14633
- value?: number;
14634
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14635
- amount?: number;
14636
- /**
14637
- * @description ISO 4217 currency code.
14638
- * @example USD
14639
- */
14640
- currency?: string;
14641
- /**
14642
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14643
- * @example 2
14644
- */
14645
- decimal_places?: number;
14646
- };
14903
+ refund?: components["schemas"]["Money"];
14647
14904
  };
14648
14905
  /**
14649
14906
  * @description The operation already running on this booking, on `active_operation_exists`. Poll it with the status route for its domain — POST /v1/hotel_cancel_status or POST /v1/flight_refund_status.
14650
14907
  * @example svc_01J7ZR5Q2KME8V4T
14651
14908
  */
14652
14909
  active_operation?: string;
14653
- /** @description How much of the refund could not be reserved, on `funds_unavailable`. The refusal is about money still moving on the original payment, not about this booking, so this is the figure that says how much has to clear before a commit can succeed. */
14654
- shortfall?: {
14655
- /**
14656
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14657
- * @example 41250
14658
- */
14659
- value?: number;
14660
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14661
- amount?: number;
14662
- /**
14663
- * @description ISO 4217 currency code.
14664
- * @example USD
14665
- */
14666
- currency?: string;
14667
- /**
14668
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14669
- * @example 2
14670
- */
14671
- decimal_places?: number;
14672
- };
14910
+ shortfall?: components["schemas"]["Money"] & unknown;
14673
14911
  /**
14674
14912
  * @description What is holding that money, on `funds_unavailable`: the refunds already in flight against the same payment, which have to settle before this one can be reserved. Opaque handles — read them as identity, do not parse them. This is what to wait on; without it, "retry later" has nothing behind it.
14675
14913
  * @example [
@@ -14780,24 +15018,7 @@ export interface components {
14780
15018
  documents?: components["schemas"]["FlightDocument"][];
14781
15019
  };
14782
15020
  /** @description The refund and where it has got to. Read `vehicle_state` before telling a customer they have been refunded. */
14783
- money?: {
14784
- /**
14785
- * @description Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
14786
- * @example 41250
14787
- */
14788
- value?: number;
14789
- /** @description Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals). */
14790
- amount?: number;
14791
- /**
14792
- * @description ISO 4217 currency code.
14793
- * @example USD
14794
- */
14795
- currency?: string;
14796
- /**
14797
- * @description Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
14798
- * @example 2
14799
- */
14800
- decimal_places?: number;
15021
+ money?: components["schemas"]["Money"] & {
14801
15022
  /**
14802
15023
  * @description Which way the money moves. `refund` on a cancellation.
14803
15024
  * @example refund