@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.
package/public-api.yaml CHANGED
@@ -1,10 +1,10 @@
1
- # synced from jinko-api@cbb5c94917a182f5d2e50a6148e881ed1f0ccef8 (main, #97 squash-merged)
1
+ # synced from jinko-api@c46664fb52f2597644c841a14abe5a1eb80cee21 (c46664fb)
2
2
  # Vendored copy of the canonical public contract. Do not hand-edit: change it in
3
- # jinko-api, regenerate there, copy the file here, then `pnpm generate:api-types`.
3
+ # jinko-api, then `pnpm sync:api-spec <ref>` here, which also runs `pnpm generate:api-types`.
4
4
  openapi: 3.0.0
5
5
  info:
6
6
  title: Jinko Public API
7
- version: 0.8.0
7
+ version: 0.10.0
8
8
  description: >-
9
9
  Curated public REST surface for Jinko. Authenticated with jnk_ API keys. See
10
10
  https://docs.gojinko.com for guides.
@@ -207,6 +207,16 @@ components:
207
207
  on a value-shaped object, fall back to the ISO digits for the
208
208
  currency."
209
209
  example: 2
210
+ display:
211
+ type: string
212
+ description: 'The same figure as a string ready to show: the ISO 4217 code, a
213
+ space, then the amount, e.g. "USD 159.77". With decimal_places it is
214
+ written at exactly that scale (value 1561500, JPY, decimal_places 2
215
+ is "JPY 15615.00"); without, at the ISO digits of the currency. Show
216
+ this; compute with the number. Absent when the figure is not money
217
+ (a cancellation step expressed as a percent or a number of nights)
218
+ or could not be read unambiguously.'
219
+ example: USD 412.50
210
220
  required:
211
221
  - value
212
222
  - currency
@@ -313,6 +323,7 @@ components:
313
323
  - FORBIDDEN
314
324
  - NOT_FOUND
315
325
  - CONFLICT
326
+ - GONE
316
327
  - QUOTE_EXPIRED
317
328
  - TRIP_EXPIRED
318
329
  - TRIP_STATE_CONFLICT
@@ -854,6 +865,22 @@ components:
854
865
  on a value-shaped object, fall back to the ISO digits for the
855
866
  currency."
856
867
  example: 2
868
+ display:
869
+ type: string
870
+ description: 'The same figure as a string ready to show: the ISO 4217 code, a
871
+ space, then the amount, e.g. "USD 159.77". With decimal_places it is
872
+ written at exactly that scale (value 1561500, JPY, decimal_places 2
873
+ is "JPY 15615.00"); without, at the ISO digits of the currency. Show
874
+ this; compute with the number. Absent when the figure is not money
875
+ (a cancellation step expressed as a percent or a number of nights)
876
+ or could not be read unambiguously.'
877
+ example: USD 412.50
878
+ description: "A money figure in one of two scales, told apart by one rule. When
879
+ `decimal_places` is present, `value` (or `amount`) is an INTEGER in
880
+ minor units: divide by 10 ** decimal_places. When it is absent, `amount`
881
+ is already in MAJOR units. Branch on whether decimal_places is present
882
+ in the response you received, never on the currency code or the field
883
+ name. `display` is the same figure as a string to show."
857
884
  CheckedBaggage:
858
885
  type: object
859
886
  properties:
@@ -1364,6 +1391,16 @@ components:
1364
1391
  on a value-shaped object, fall back to the ISO digits for the
1365
1392
  currency."
1366
1393
  example: 2
1394
+ display:
1395
+ type: string
1396
+ description: 'The same figure as a string ready to show: the ISO 4217 code, a
1397
+ space, then the amount, e.g. "USD 159.77". With decimal_places it is
1398
+ written at exactly that scale (value 1561500, JPY, decimal_places 2
1399
+ is "JPY 15615.00"); without, at the ISO digits of the currency. Show
1400
+ this; compute with the number. Absent when the figure is not money
1401
+ (a cancellation step expressed as a percent or a number of nights)
1402
+ or could not be read unambiguously.'
1403
+ example: USD 412.50
1367
1404
  MonitoredCarrier:
1368
1405
  type: object
1369
1406
  properties:
@@ -1542,39 +1579,7 @@ components:
1542
1579
  description:
1543
1580
  type: string
1544
1581
  price_per_unit:
1545
- type: object
1546
- properties:
1547
- amount:
1548
- type: number
1549
- description: Alternative to `value` on some endpoints (the two never appear
1550
- together); its scale depends on decimal_places. When this object
1551
- carries decimal_places, amount is an INTEGER in minor units —
1552
- divide by 10 ** decimal_places (e.g. select_ancillaries
1553
- total_with_ancillaries). When there is no decimal_places field,
1554
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
1555
- trip and checkout totals).
1556
- value:
1557
- type: integer
1558
- description: "Integer amount in MINOR units, always paired with decimal_places —
1559
- divide by 10 ** decimal_places to display. Example: value 15977
1560
- with decimal_places 2 is 159.77 USD. Rendering this field
1561
- directly shows prices 100x too high for 2-decimal currencies."
1562
- example: 41250
1563
- currency:
1564
- type: string
1565
- description: ISO 4217 currency code.
1566
- example: USD
1567
- decimal_places:
1568
- type: integer
1569
- description: "Scale of the integer value/amount: display = integer / 10 **
1570
- decimal_places. Always sent alongside minor-unit amounts.
1571
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
1572
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
1573
- can carry a different scale — ALWAYS use the decimal_places sent
1574
- with the amount, never a hardcoded 2. Only if the field is
1575
- genuinely absent on a value-shaped object, fall back to the ISO
1576
- digits for the currency."
1577
- example: 2
1582
+ $ref: "#/components/schemas/Money"
1578
1583
  per_pax:
1579
1584
  type: boolean
1580
1585
  description: True when the price is charged per passenger rather than once per
@@ -1616,111 +1621,19 @@ components:
1616
1621
  type: object
1617
1622
  properties:
1618
1623
  original:
1619
- type: object
1620
- properties:
1621
- amount:
1622
- type: number
1623
- description: Alternative to `value` on some endpoints (the two never appear
1624
- together); its scale depends on decimal_places. When this object
1625
- carries decimal_places, amount is an INTEGER in minor units —
1626
- divide by 10 ** decimal_places (e.g. select_ancillaries
1627
- total_with_ancillaries). When there is no decimal_places field,
1628
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
1629
- trip and checkout totals).
1630
- value:
1631
- type: integer
1632
- description: "Integer amount in MINOR units, always paired with decimal_places —
1633
- divide by 10 ** decimal_places to display. Example: value 15977
1634
- with decimal_places 2 is 159.77 USD. Rendering this field
1635
- directly shows prices 100x too high for 2-decimal currencies."
1636
- example: 41250
1637
- currency:
1638
- type: string
1639
- description: ISO 4217 currency code.
1640
- example: USD
1641
- decimal_places:
1642
- type: integer
1643
- description: "Scale of the integer value/amount: display = integer / 10 **
1644
- decimal_places. Always sent alongside minor-unit amounts.
1645
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
1646
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
1647
- can carry a different scale — ALWAYS use the decimal_places sent
1648
- with the amount, never a hardcoded 2. Only if the field is
1649
- genuinely absent on a value-shaped object, fall back to the ISO
1650
- digits for the currency."
1651
- example: 2
1652
- description: The selling price shown at search time, before the quote.
1624
+ allOf:
1625
+ - $ref: "#/components/schemas/Money"
1626
+ - description: The selling price shown at search time, before the quote.
1653
1627
  current:
1654
- type: object
1655
- properties:
1656
- amount:
1657
- type: number
1658
- description: Alternative to `value` on some endpoints (the two never appear
1659
- together); its scale depends on decimal_places. When this object
1660
- carries decimal_places, amount is an INTEGER in minor units —
1661
- divide by 10 ** decimal_places (e.g. select_ancillaries
1662
- total_with_ancillaries). When there is no decimal_places field,
1663
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
1664
- trip and checkout totals).
1665
- value:
1666
- type: integer
1667
- description: "Integer amount in MINOR units, always paired with decimal_places —
1668
- divide by 10 ** decimal_places to display. Example: value 15977
1669
- with decimal_places 2 is 159.77 USD. Rendering this field
1670
- directly shows prices 100x too high for 2-decimal currencies."
1671
- example: 41250
1672
- currency:
1673
- type: string
1674
- description: ISO 4217 currency code.
1675
- example: USD
1676
- decimal_places:
1677
- type: integer
1678
- description: "Scale of the integer value/amount: display = integer / 10 **
1679
- decimal_places. Always sent alongside minor-unit amounts.
1680
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
1681
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
1682
- can carry a different scale — ALWAYS use the decimal_places sent
1683
- with the amount, never a hardcoded 2. Only if the field is
1684
- genuinely absent on a value-shaped object, fall back to the ISO
1685
- digits for the currency."
1686
- example: 2
1687
- description: The selling price the trip is quoted at — the same figure as `price`.
1628
+ allOf:
1629
+ - $ref: "#/components/schemas/Money"
1630
+ - description: The selling price the trip is quoted at — the same figure as
1631
+ `price`.
1688
1632
  delta:
1689
- type: object
1690
- properties:
1691
- amount:
1692
- type: number
1693
- description: Alternative to `value` on some endpoints (the two never appear
1694
- together); its scale depends on decimal_places. When this object
1695
- carries decimal_places, amount is an INTEGER in minor units —
1696
- divide by 10 ** decimal_places (e.g. select_ancillaries
1697
- total_with_ancillaries). When there is no decimal_places field,
1698
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
1699
- trip and checkout totals).
1700
- value:
1701
- type: integer
1702
- description: "Integer amount in MINOR units, always paired with decimal_places —
1703
- divide by 10 ** decimal_places to display. Example: value 15977
1704
- with decimal_places 2 is 159.77 USD. Rendering this field
1705
- directly shows prices 100x too high for 2-decimal currencies."
1706
- example: 41250
1707
- currency:
1708
- type: string
1709
- description: ISO 4217 currency code.
1710
- example: USD
1711
- decimal_places:
1712
- type: integer
1713
- description: "Scale of the integer value/amount: display = integer / 10 **
1714
- decimal_places. Always sent alongside minor-unit amounts.
1715
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
1716
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
1717
- can carry a different scale — ALWAYS use the decimal_places sent
1718
- with the amount, never a hardcoded 2. Only if the field is
1719
- genuinely absent on a value-shaped object, fall back to the ISO
1720
- digits for the currency."
1721
- example: 2
1722
- description: "`current` minus `original`, SIGNED: positive when the price rose,
1723
- negative when it fell."
1633
+ allOf:
1634
+ - $ref: "#/components/schemas/Money"
1635
+ - description: "`current` minus `original`, SIGNED: positive when the price rose,
1636
+ negative when it fell."
1724
1637
  required:
1725
1638
  - original
1726
1639
  - current
@@ -1751,6 +1664,16 @@ components:
1751
1664
  the guest pays it at the property on top. Getting this backwards
1752
1665
  misquotes the trip.
1753
1666
  example: true
1667
+ display:
1668
+ type: string
1669
+ description: 'The same figure as a string ready to show: the ISO 4217 code, a
1670
+ space, then the amount, e.g. "USD 159.77". With decimal_places it is
1671
+ written at exactly that scale (value 1561500, JPY, decimal_places 2
1672
+ is "JPY 15615.00"); without, at the ISO digits of the currency. Show
1673
+ this; compute with the number. Absent when the figure is not money
1674
+ (a cancellation step expressed as a percent or a number of nights)
1675
+ or could not be read unambiguously.'
1676
+ example: EUR 164.49
1754
1677
  CancellationStep:
1755
1678
  type: object
1756
1679
  properties:
@@ -1774,6 +1697,16 @@ components:
1774
1697
  type: string
1775
1698
  description: How the charge is expressed — "amount", "percent" or "nights".
1776
1699
  example: amount
1700
+ display:
1701
+ type: string
1702
+ description: 'The same figure as a string ready to show: the ISO 4217 code, a
1703
+ space, then the amount, e.g. "USD 159.77". With decimal_places it is
1704
+ written at exactly that scale (value 1561500, JPY, decimal_places 2
1705
+ is "JPY 15615.00"); without, at the ISO digits of the currency. Show
1706
+ this; compute with the number. Absent when the figure is not money
1707
+ (a cancellation step expressed as a percent or a number of nights)
1708
+ or could not be read unambiguously.'
1709
+ example: EUR 606.13
1777
1710
  HotelTerms:
1778
1711
  type: object
1779
1712
  properties:
@@ -1873,42 +1806,18 @@ components:
1873
1806
  came from. Hotel items only.
1874
1807
  example: lp1f2c3
1875
1808
  price:
1876
- type: object
1877
- properties:
1878
- amount:
1879
- type: number
1880
- description: Alternative to `value` on some endpoints (the two never appear
1881
- together); its scale depends on decimal_places. When this object
1882
- carries decimal_places, amount is an INTEGER in minor units —
1883
- divide by 10 ** decimal_places (e.g. select_ancillaries
1884
- total_with_ancillaries). When there is no decimal_places field,
1885
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
1886
- trip and checkout totals).
1887
- value:
1888
- type: integer
1889
- description: "Integer amount in MINOR units, always paired with decimal_places —
1890
- divide by 10 ** decimal_places to display. Example: value 15977
1891
- with decimal_places 2 is 159.77 USD. Rendering this field
1892
- directly shows prices 100x too high for 2-decimal currencies."
1893
- example: 41250
1894
- currency:
1895
- type: string
1896
- description: ISO 4217 currency code.
1897
- example: USD
1898
- decimal_places:
1899
- type: integer
1900
- description: "Scale of the integer value/amount: display = integer / 10 **
1901
- decimal_places. Always sent alongside minor-unit amounts.
1902
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
1903
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
1904
- can carry a different scale — ALWAYS use the decimal_places sent
1905
- with the amount, never a hardcoded 2. Only if the field is
1906
- genuinely absent on a value-shaped object, fall back to the ISO
1907
- digits for the currency."
1908
- example: 2
1909
- description: Item total in major currency units. Absent until the trip has been
1910
- quoted — an unpriced item carries no `price` key at all, so absence
1911
- means "not priced yet", not "free".
1809
+ allOf:
1810
+ - $ref: "#/components/schemas/Money"
1811
+ - description: Item total in major currency units. Absent until the trip has been
1812
+ quoted — an unpriced item carries no `price` key at all, so
1813
+ absence means "not priced yet", not "free".
1814
+ price_display:
1815
+ type: string
1816
+ description: The item price as a string ready to show, e.g. "EUR 545.55". Sent
1817
+ beside a `price` that arrives as a bare major-units number with
1818
+ `currency` (the trip create response); a `price` object carries its
1819
+ own `display` instead.
1820
+ example: EUR 545.55
1912
1821
  pax_count:
1913
1822
  type: number
1914
1823
  example: 1
@@ -1931,42 +1840,11 @@ components:
1931
1840
  two figures and the signed difference. Absent when the price held.
1932
1841
  example: true
1933
1842
  original_price:
1934
- type: object
1935
- properties:
1936
- amount:
1937
- type: number
1938
- description: Alternative to `value` on some endpoints (the two never appear
1939
- together); its scale depends on decimal_places. When this object
1940
- carries decimal_places, amount is an INTEGER in minor units —
1941
- divide by 10 ** decimal_places (e.g. select_ancillaries
1942
- total_with_ancillaries). When there is no decimal_places field,
1943
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
1944
- trip and checkout totals).
1945
- value:
1946
- type: integer
1947
- description: "Integer amount in MINOR units, always paired with decimal_places —
1948
- divide by 10 ** decimal_places to display. Example: value 15977
1949
- with decimal_places 2 is 159.77 USD. Rendering this field
1950
- directly shows prices 100x too high for 2-decimal currencies."
1951
- example: 41250
1952
- currency:
1953
- type: string
1954
- description: ISO 4217 currency code.
1955
- example: USD
1956
- decimal_places:
1957
- type: integer
1958
- description: "Scale of the integer value/amount: display = integer / 10 **
1959
- decimal_places. Always sent alongside minor-unit amounts.
1960
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
1961
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
1962
- can carry a different scale — ALWAYS use the decimal_places sent
1963
- with the amount, never a hardcoded 2. Only if the field is
1964
- genuinely absent on a value-shaped object, fall back to the ISO
1965
- digits for the currency."
1966
- example: 2
1967
- description: The snapshot price recorded at search time. Present only when
1968
- `price_changed` is true; compare it against `price` to show the
1969
- caller what moved.
1843
+ allOf:
1844
+ - $ref: "#/components/schemas/Money"
1845
+ - description: The snapshot price recorded at search time. Present only when
1846
+ `price_changed` is true; compare it against `price` to show the
1847
+ caller what moved.
1970
1848
  price_change:
1971
1849
  $ref: "#/components/schemas/PriceChange"
1972
1850
  required_attributes:
@@ -2101,6 +1979,11 @@ components:
2101
1979
  type: string
2102
1980
  total:
2103
1981
  type: number
1982
+ total_display:
1983
+ type: string
1984
+ description: The trip total as a string ready to show, e.g. "USD 318.40". Absent
1985
+ with `total`.
1986
+ example: USD 318.40
2104
1987
  example:
2105
1988
  currency: USD
2106
1989
  total: 318.4
@@ -2358,39 +2241,7 @@ components:
2358
2241
  items:
2359
2242
  $ref: "#/components/schemas/TripItem"
2360
2243
  total_amount:
2361
- type: object
2362
- properties:
2363
- amount:
2364
- type: number
2365
- description: Alternative to `value` on some endpoints (the two never appear
2366
- together); its scale depends on decimal_places. When this object
2367
- carries decimal_places, amount is an INTEGER in minor units —
2368
- divide by 10 ** decimal_places (e.g. select_ancillaries
2369
- total_with_ancillaries). When there is no decimal_places field,
2370
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
2371
- trip and checkout totals).
2372
- value:
2373
- type: integer
2374
- description: "Integer amount in MINOR units, always paired with decimal_places —
2375
- divide by 10 ** decimal_places to display. Example: value 15977
2376
- with decimal_places 2 is 159.77 USD. Rendering this field
2377
- directly shows prices 100x too high for 2-decimal currencies."
2378
- example: 41250
2379
- currency:
2380
- type: string
2381
- description: ISO 4217 currency code.
2382
- example: USD
2383
- decimal_places:
2384
- type: integer
2385
- description: "Scale of the integer value/amount: display = integer / 10 **
2386
- decimal_places. Always sent alongside minor-unit amounts.
2387
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
2388
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
2389
- can carry a different scale — ALWAYS use the decimal_places sent
2390
- with the amount, never a hardcoded 2. Only if the field is
2391
- genuinely absent on a value-shaped object, fall back to the ISO
2392
- digits for the currency."
2393
- example: 2
2244
+ $ref: "#/components/schemas/Money"
2394
2245
  quote:
2395
2246
  type: object
2396
2247
  properties:
@@ -2475,39 +2326,7 @@ components:
2475
2326
  items:
2476
2327
  $ref: "#/components/schemas/SelectedAncillary"
2477
2328
  total_with_ancillaries:
2478
- type: object
2479
- properties:
2480
- amount:
2481
- type: number
2482
- description: Alternative to `value` on some endpoints (the two never appear
2483
- together); its scale depends on decimal_places. When this object
2484
- carries decimal_places, amount is an INTEGER in minor units —
2485
- divide by 10 ** decimal_places (e.g. select_ancillaries
2486
- total_with_ancillaries). When there is no decimal_places field,
2487
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
2488
- trip and checkout totals).
2489
- value:
2490
- type: integer
2491
- description: "Integer amount in MINOR units, always paired with decimal_places —
2492
- divide by 10 ** decimal_places to display. Example: value 15977
2493
- with decimal_places 2 is 159.77 USD. Rendering this field
2494
- directly shows prices 100x too high for 2-decimal currencies."
2495
- example: 41250
2496
- currency:
2497
- type: string
2498
- description: ISO 4217 currency code.
2499
- example: USD
2500
- decimal_places:
2501
- type: integer
2502
- description: "Scale of the integer value/amount: display = integer / 10 **
2503
- decimal_places. Always sent alongside minor-unit amounts.
2504
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
2505
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
2506
- can carry a different scale — ALWAYS use the decimal_places sent
2507
- with the amount, never a hardcoded 2. Only if the field is
2508
- genuinely absent on a value-shaped object, fall back to the ISO
2509
- digits for the currency."
2510
- example: 2
2329
+ $ref: "#/components/schemas/Money"
2511
2330
  AncillaryRequest:
2512
2331
  type: object
2513
2332
  properties:
@@ -2606,15 +2425,19 @@ components:
2606
2425
  example: ready
2607
2426
  expires_at:
2608
2427
  type: string
2609
- description: "When the locked quote behind this checkout expires (RFC 3339).
2610
- Roughly five minutes from the call — pay before it passes. This is
2611
- NOT the lifetime of `checkout_url`, which the platform keeps
2612
- openable for longer. After this instant the platform REFUSES to take
2613
- payment rather than charging a stale price: `POST
2614
- /v1/agent_payment/submit` answers **410 `QUOTE_EXPIRED`** and no
2615
- payment object is created. To recover, call `POST /v1/checkout`
2616
- again on the same trip — it re-quotes — and pay against the new
2617
- `expires_at`. The hosted page offers the same refresh in one click."
2428
+ description: "When the quote behind this checkout stops being payable (RFC
2429
+ 3339). Roughly fifteen minutes from the call — pay before it passes.
2430
+ It is NOT a price hold: the supplier guarantees neither the price
2431
+ nor availability for the window, so an offer can lapse inside it.
2432
+ Nor is it the lifetime of `checkout_url`, which stays openable
2433
+ longer. After this instant the platform REFUSES to take payment
2434
+ rather than charging a stale price: `POST /v1/agent_payment/submit`
2435
+ answers **410 `QUOTE_EXPIRED`** and no payment object is created. To
2436
+ recover, call `POST /v1/checkout` again on the same trip — it
2437
+ re-quotes at the current price — and pay against the new
2438
+ `expires_at`. The hosted page cannot recover on its own: past this
2439
+ instant it shows the price as expired and the customer has to be
2440
+ sent a fresh checkout."
2618
2441
  example: "2026-06-01T12:39:56Z"
2619
2442
  payment_type:
2620
2443
  type: string
@@ -2630,39 +2453,7 @@ components:
2630
2453
  you."
2631
2454
  example: checkout
2632
2455
  total_amount:
2633
- type: object
2634
- properties:
2635
- amount:
2636
- type: number
2637
- description: Alternative to `value` on some endpoints (the two never appear
2638
- together); its scale depends on decimal_places. When this object
2639
- carries decimal_places, amount is an INTEGER in minor units —
2640
- divide by 10 ** decimal_places (e.g. select_ancillaries
2641
- total_with_ancillaries). When there is no decimal_places field,
2642
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
2643
- trip and checkout totals).
2644
- value:
2645
- type: integer
2646
- description: "Integer amount in MINOR units, always paired with decimal_places —
2647
- divide by 10 ** decimal_places to display. Example: value 15977
2648
- with decimal_places 2 is 159.77 USD. Rendering this field
2649
- directly shows prices 100x too high for 2-decimal currencies."
2650
- example: 41250
2651
- currency:
2652
- type: string
2653
- description: ISO 4217 currency code.
2654
- example: USD
2655
- decimal_places:
2656
- type: integer
2657
- description: "Scale of the integer value/amount: display = integer / 10 **
2658
- decimal_places. Always sent alongside minor-unit amounts.
2659
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
2660
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
2661
- can carry a different scale — ALWAYS use the decimal_places sent
2662
- with the amount, never a hardcoded 2. Only if the field is
2663
- genuinely absent on a value-shaped object, fall back to the ISO
2664
- digits for the currency."
2665
- example: 2
2456
+ $ref: "#/components/schemas/Money"
2666
2457
  items:
2667
2458
  type: array
2668
2459
  items:
@@ -2725,6 +2516,12 @@ components:
2725
2516
  type: string
2726
2517
  description: The instant the refused quote expired (RFC 3339).
2727
2518
  example: "2026-09-04T12:39:56Z"
2519
+ quoted_cart_id:
2520
+ type: number
2521
+ description: The quote that lapsed — the same `quoted_cart_id` the trip and
2522
+ checkout responses carry, so a caller holding several can tell which
2523
+ one this refusal is about.
2524
+ example: 2097152
2728
2525
  required:
2729
2526
  - error
2730
2527
  AgentPaymentSubmitRequest:
@@ -2759,6 +2556,12 @@ components:
2759
2556
  description: Price for the whole stay in `currency`, at the currency’s own
2760
2557
  precision.
2761
2558
  example: 1818.4
2559
+ total_amount_display:
2560
+ type: string
2561
+ description: 'The rate total as a string ready to show: the ISO 4217 code, a
2562
+ space, then `total_amount` at the currency’s ISO digits, e.g. "EUR
2563
+ 606.13". Show this; compute with `total_amount`.'
2564
+ example: EUR 606.13
2762
2565
  currency:
2763
2566
  type: string
2764
2567
  example: EUR
@@ -3207,6 +3010,15 @@ components:
3207
3010
  type: string
3208
3011
  decimal_places:
3209
3012
  type: integer
3013
+ display:
3014
+ type: string
3015
+ description: 'The same figure as a string ready to show: the ISO 4217 code, a
3016
+ space, then the amount, e.g. "USD 159.77". With decimal_places it is
3017
+ written at exactly that scale (value 1561500, JPY, decimal_places 2
3018
+ is "JPY 15615.00"); without, at the ISO digits of the currency. Show
3019
+ this; compute with the number. Absent when the figure is not money
3020
+ (a cancellation step expressed as a percent or a number of nights)
3021
+ or could not be read unambiguously.'
3210
3022
  required:
3211
3023
  - value
3212
3024
  - currency
@@ -3528,6 +3340,16 @@ components:
3528
3340
  on a value-shaped object, fall back to the ISO digits for the
3529
3341
  currency."
3530
3342
  example: 2
3343
+ display:
3344
+ type: string
3345
+ description: 'The same figure as a string ready to show: the ISO 4217 code, a
3346
+ space, then the amount, e.g. "USD 159.77". With decimal_places it is
3347
+ written at exactly that scale (value 1561500, JPY, decimal_places 2
3348
+ is "JPY 15615.00"); without, at the ISO digits of the currency. Show
3349
+ this; compute with the number. Absent when the figure is not money
3350
+ (a cancellation step expressed as a percent or a number of nights)
3351
+ or could not be read unambiguously.'
3352
+ example: EUR 412.50
3531
3353
  description: The only amount Jinko charges at checkout.
3532
3354
  CarOfferPrice:
3533
3355
  type: object
@@ -4446,6 +4268,50 @@ components:
4446
4268
  `UNSUPPORTED` — the provider or fare does not allow it at all; nothing
4447
4269
  you send will change that. Do not treat MANUAL_REQUIRED as a failure,
4448
4270
  and do not retry UNSUPPORTED.
4271
+ BookingCalendarFile:
4272
+ type: object
4273
+ properties:
4274
+ method:
4275
+ type: string
4276
+ description: "The iTIP method (RFC 5546) this file carries: `REQUEST` for the
4277
+ events the booking still holds, `CANCEL` for the ones it no longer
4278
+ does. One file carries exactly one method — a booking that both
4279
+ retires and confirms flights, which is what an exchange does, comes
4280
+ back as two files rather than one mixed one."
4281
+ example: REQUEST
4282
+ filename:
4283
+ type: string
4284
+ description: The name the confirmation or cancellation email attached this same
4285
+ file under.
4286
+ example: jinko-JNK-A0AUR2.ics
4287
+ content_type:
4288
+ type: string
4289
+ description: "The media type, including the `method` parameter. Attach or serve
4290
+ the file under this exact value: the method parameter is what makes
4291
+ a mail client act on the file instead of storing it as a plain
4292
+ attachment."
4293
+ example: text/calendar; charset=utf-8; method=REQUEST
4294
+ content:
4295
+ type: string
4296
+ description: The iCalendar file itself. Real CRLF line endings, as iCalendar
4297
+ requires — the example escapes them only so it can be read here.
4298
+ Byte-identical to what the email carried for the current state of
4299
+ this booking.
4300
+ example: BEGIN:VCALENDAR\r\nVERSION:2.0\r\n…\r\nEND:VCALENDAR\r\n
4301
+ BookingCalendar:
4302
+ type: object
4303
+ properties:
4304
+ files:
4305
+ type: array
4306
+ items:
4307
+ $ref: "#/components/schemas/BookingCalendarFile"
4308
+ description: "The iCalendar files this booking is carried in, cancellation first
4309
+ and then invitation — the order the emails attach them in. Never
4310
+ empty: a booking with nothing to put in a calendar omits `calendar`
4311
+ altogether."
4312
+ description: The calendar entries for this booking, as iCalendar files. Absent —
4313
+ not null, and never an empty list — when the booking holds no flight and
4314
+ no hotel, and whenever the files could not be built.
4449
4315
  Booking:
4450
4316
  type: object
4451
4317
  properties:
@@ -4466,39 +4332,7 @@ components:
4466
4332
  type: string
4467
4333
  example: Carrard
4468
4334
  total_paid:
4469
- type: object
4470
- properties:
4471
- value:
4472
- type: integer
4473
- description: "Integer amount in MINOR units, always paired with decimal_places —
4474
- divide by 10 ** decimal_places to display. Example: value 15977
4475
- with decimal_places 2 is 159.77 USD. Rendering this field
4476
- directly shows prices 100x too high for 2-decimal currencies."
4477
- example: 41250
4478
- amount:
4479
- type: number
4480
- description: Alternative to `value` on some endpoints (the two never appear
4481
- together); its scale depends on decimal_places. When this object
4482
- carries decimal_places, amount is an INTEGER in minor units —
4483
- divide by 10 ** decimal_places (e.g. select_ancillaries
4484
- total_with_ancillaries). When there is no decimal_places field,
4485
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4486
- trip and checkout totals).
4487
- currency:
4488
- type: string
4489
- description: ISO 4217 currency code.
4490
- example: USD
4491
- decimal_places:
4492
- type: integer
4493
- description: "Scale of the integer value/amount: display = integer / 10 **
4494
- decimal_places. Always sent alongside minor-unit amounts.
4495
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4496
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4497
- can carry a different scale — ALWAYS use the decimal_places sent
4498
- with the amount, never a hardcoded 2. Only if the field is
4499
- genuinely absent on a value-shaped object, fall back to the ISO
4500
- digits for the currency."
4501
- example: 2
4335
+ $ref: "#/components/schemas/Money"
4502
4336
  refund_support_level:
4503
4337
  $ref: "#/components/schemas/SupportLevel"
4504
4338
  exchange_support_level:
@@ -4506,6 +4340,8 @@ components:
4506
4340
  created_at:
4507
4341
  type: string
4508
4342
  example: "2026-05-20T09:14:00Z"
4343
+ calendar:
4344
+ $ref: "#/components/schemas/BookingCalendar"
4509
4345
  description: "The booked trip. Minimally described — the platform sends more
4510
4346
  (items, per-item confirmations, provider state) and all of it reaches
4511
4347
  you. The two `*_support_level` fields are a SNAPSHOT: a fare’s void
@@ -4528,6 +4364,12 @@ components:
4528
4364
  currency: USD
4529
4365
  decimal_places: 2
4530
4366
  created_at: "2026-05-20T09:14:00Z"
4367
+ calendar:
4368
+ files:
4369
+ - method: REQUEST
4370
+ filename: jinko-JNK-A0AUR2.ics
4371
+ content_type: text/calendar; charset=utf-8; method=REQUEST
4372
+ content: BEGIN:VCALENDAR\r\nVERSION:2.0\r\n…\r\nEND:VCALENDAR\r\n
4531
4373
  GetBookingRequest:
4532
4374
  type: object
4533
4375
  properties:
@@ -4568,112 +4410,17 @@ components:
4568
4410
  MANUAL_REQUIRED`."
4569
4411
  example: fare rules require agent review
4570
4412
  refund_amount:
4571
- type: object
4572
- properties:
4573
- value:
4574
- type: integer
4575
- description: "Integer amount in MINOR units, always paired with decimal_places —
4576
- divide by 10 ** decimal_places to display. Example: value 15977
4577
- with decimal_places 2 is 159.77 USD. Rendering this field
4578
- directly shows prices 100x too high for 2-decimal currencies."
4579
- example: 41250
4580
- amount:
4581
- type: number
4582
- description: Alternative to `value` on some endpoints (the two never appear
4583
- together); its scale depends on decimal_places. When this object
4584
- carries decimal_places, amount is an INTEGER in minor units —
4585
- divide by 10 ** decimal_places (e.g. select_ancillaries
4586
- total_with_ancillaries). When there is no decimal_places field,
4587
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4588
- trip and checkout totals).
4589
- currency:
4590
- type: string
4591
- description: ISO 4217 currency code.
4592
- example: USD
4593
- decimal_places:
4594
- type: integer
4595
- description: "Scale of the integer value/amount: display = integer / 10 **
4596
- decimal_places. Always sent alongside minor-unit amounts.
4597
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4598
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4599
- can carry a different scale — ALWAYS use the decimal_places sent
4600
- with the amount, never a hardcoded 2. Only if the field is
4601
- genuinely absent on a value-shaped object, fall back to the ISO
4602
- digits for the currency."
4603
- example: 2
4604
- description: "What would be refunded. **Absent is not zero** — on a voidable
4605
- ticket (`is_voidable: true`) the whole charge is reversed and no
4606
- amount is quoted, and on an unsupported refund nothing is computed
4607
- at all. Read `is_refundable` and `is_voidable` before showing a
4608
- figure."
4413
+ allOf:
4414
+ - $ref: "#/components/schemas/Money"
4415
+ - description: "What would be refunded. **Absent is not zero** — on a voidable
4416
+ ticket (`is_voidable: true`) the whole charge is reversed and no
4417
+ amount is quoted, and on an unsupported refund nothing is
4418
+ computed at all. Read `is_refundable` and `is_voidable` before
4419
+ showing a figure."
4609
4420
  penalty_amount:
4610
- type: object
4611
- properties:
4612
- value:
4613
- type: integer
4614
- description: "Integer amount in MINOR units, always paired with decimal_places —
4615
- divide by 10 ** decimal_places to display. Example: value 15977
4616
- with decimal_places 2 is 159.77 USD. Rendering this field
4617
- directly shows prices 100x too high for 2-decimal currencies."
4618
- example: 41250
4619
- amount:
4620
- type: number
4621
- description: Alternative to `value` on some endpoints (the two never appear
4622
- together); its scale depends on decimal_places. When this object
4623
- carries decimal_places, amount is an INTEGER in minor units —
4624
- divide by 10 ** decimal_places (e.g. select_ancillaries
4625
- total_with_ancillaries). When there is no decimal_places field,
4626
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4627
- trip and checkout totals).
4628
- currency:
4629
- type: string
4630
- description: ISO 4217 currency code.
4631
- example: USD
4632
- decimal_places:
4633
- type: integer
4634
- description: "Scale of the integer value/amount: display = integer / 10 **
4635
- decimal_places. Always sent alongside minor-unit amounts.
4636
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4637
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4638
- can carry a different scale — ALWAYS use the decimal_places sent
4639
- with the amount, never a hardcoded 2. Only if the field is
4640
- genuinely absent on a value-shaped object, fall back to the ISO
4641
- digits for the currency."
4642
- example: 2
4421
+ $ref: "#/components/schemas/Money"
4643
4422
  total_paid:
4644
- type: object
4645
- properties:
4646
- value:
4647
- type: integer
4648
- description: "Integer amount in MINOR units, always paired with decimal_places —
4649
- divide by 10 ** decimal_places to display. Example: value 15977
4650
- with decimal_places 2 is 159.77 USD. Rendering this field
4651
- directly shows prices 100x too high for 2-decimal currencies."
4652
- example: 41250
4653
- amount:
4654
- type: number
4655
- description: Alternative to `value` on some endpoints (the two never appear
4656
- together); its scale depends on decimal_places. When this object
4657
- carries decimal_places, amount is an INTEGER in minor units —
4658
- divide by 10 ** decimal_places (e.g. select_ancillaries
4659
- total_with_ancillaries). When there is no decimal_places field,
4660
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4661
- trip and checkout totals).
4662
- currency:
4663
- type: string
4664
- description: ISO 4217 currency code.
4665
- example: USD
4666
- decimal_places:
4667
- type: integer
4668
- description: "Scale of the integer value/amount: display = integer / 10 **
4669
- decimal_places. Always sent alongside minor-unit amounts.
4670
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4671
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4672
- can carry a different scale — ALWAYS use the decimal_places sent
4673
- with the amount, never a hardcoded 2. Only if the field is
4674
- genuinely absent on a value-shaped object, fall back to the ISO
4675
- digits for the currency."
4676
- example: 2
4423
+ $ref: "#/components/schemas/Money"
4677
4424
  expires_at:
4678
4425
  type: string
4679
4426
  example: "2026-06-02T00:00:00Z"
@@ -4732,113 +4479,18 @@ components:
4732
4479
  type: object
4733
4480
  properties:
4734
4481
  refund_net:
4735
- type: object
4736
- properties:
4737
- value:
4738
- type: integer
4739
- description: "Integer amount in MINOR units, always paired with decimal_places —
4740
- divide by 10 ** decimal_places to display. Example: value 15977
4741
- with decimal_places 2 is 159.77 USD. Rendering this field
4742
- directly shows prices 100x too high for 2-decimal currencies."
4743
- example: 41250
4744
- amount:
4745
- type: number
4746
- description: Alternative to `value` on some endpoints (the two never appear
4747
- together); its scale depends on decimal_places. When this object
4748
- carries decimal_places, amount is an INTEGER in minor units —
4749
- divide by 10 ** decimal_places (e.g. select_ancillaries
4750
- total_with_ancillaries). When there is no decimal_places field,
4751
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4752
- trip and checkout totals).
4753
- currency:
4754
- type: string
4755
- description: ISO 4217 currency code.
4756
- example: USD
4757
- decimal_places:
4758
- type: integer
4759
- description: "Scale of the integer value/amount: display = integer / 10 **
4760
- decimal_places. Always sent alongside minor-unit amounts.
4761
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4762
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4763
- can carry a different scale — ALWAYS use the decimal_places sent
4764
- with the amount, never a hardcoded 2. Only if the field is
4765
- genuinely absent on a value-shaped object, fall back to the ISO
4766
- digits for the currency."
4767
- example: 2
4482
+ $ref: "#/components/schemas/Money"
4768
4483
  penalty_net:
4769
- type: object
4770
- properties:
4771
- value:
4772
- type: integer
4773
- description: "Integer amount in MINOR units, always paired with decimal_places —
4774
- divide by 10 ** decimal_places to display. Example: value 15977
4775
- with decimal_places 2 is 159.77 USD. Rendering this field
4776
- directly shows prices 100x too high for 2-decimal currencies."
4777
- example: 41250
4778
- amount:
4779
- type: number
4780
- description: Alternative to `value` on some endpoints (the two never appear
4781
- together); its scale depends on decimal_places. When this object
4782
- carries decimal_places, amount is an INTEGER in minor units —
4783
- divide by 10 ** decimal_places (e.g. select_ancillaries
4784
- total_with_ancillaries). When there is no decimal_places field,
4785
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4786
- trip and checkout totals).
4787
- currency:
4788
- type: string
4789
- description: ISO 4217 currency code.
4790
- example: USD
4791
- decimal_places:
4792
- type: integer
4793
- description: "Scale of the integer value/amount: display = integer / 10 **
4794
- decimal_places. Always sent alongside minor-unit amounts.
4795
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4796
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4797
- can carry a different scale — ALWAYS use the decimal_places sent
4798
- with the amount, never a hardcoded 2. Only if the field is
4799
- genuinely absent on a value-shaped object, fall back to the ISO
4800
- digits for the currency."
4801
- example: 2
4484
+ $ref: "#/components/schemas/Money"
4802
4485
  currency:
4803
4486
  type: string
4804
4487
  example: USD
4805
4488
  total_paid_net:
4806
- type: object
4807
- properties:
4808
- value:
4809
- type: integer
4810
- description: "Integer amount in MINOR units, always paired with decimal_places —
4811
- divide by 10 ** decimal_places to display. Example: value 15977
4812
- with decimal_places 2 is 159.77 USD. Rendering this field
4813
- directly shows prices 100x too high for 2-decimal currencies."
4814
- example: 41250
4815
- amount:
4816
- type: number
4817
- description: Alternative to `value` on some endpoints (the two never appear
4818
- together); its scale depends on decimal_places. When this object
4819
- carries decimal_places, amount is an INTEGER in minor units —
4820
- divide by 10 ** decimal_places (e.g. select_ancillaries
4821
- total_with_ancillaries). When there is no decimal_places field,
4822
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4823
- trip and checkout totals).
4824
- currency:
4825
- type: string
4826
- description: ISO 4217 currency code.
4827
- example: USD
4828
- decimal_places:
4829
- type: integer
4830
- description: "Scale of the integer value/amount: display = integer / 10 **
4831
- decimal_places. Always sent alongside minor-unit amounts.
4832
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4833
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4834
- can carry a different scale — ALWAYS use the decimal_places sent
4835
- with the amount, never a hardcoded 2. Only if the field is
4836
- genuinely absent on a value-shaped object, fall back to the ISO
4837
- digits for the currency."
4838
- example: 2
4839
- description: What the airline recorded as paid to it for this item, net of
4840
- Jinko’s margin. The base `refund_net` is measured against, and not
4841
- what the customer paid.
4489
+ allOf:
4490
+ - $ref: "#/components/schemas/Money"
4491
+ - description: What the airline recorded as paid to it for this item, net of
4492
+ Jinko’s margin. The base `refund_net` is measured against, and
4493
+ not what the customer paid.
4842
4494
  description: "The airline's own net figures, for reconciliation — never what the
4843
4495
  customer receives. `refund_net` is what the airline returns to Jinko,
4844
4496
  `penalty_net` what it withheld from Jinko and `total_paid_net` what it
@@ -4882,86 +4534,24 @@ components:
4882
4534
  operation_kind:
4883
4535
  $ref: "#/components/schemas/FlightOperationKind"
4884
4536
  refund_amount:
4885
- type: object
4886
- properties:
4887
- value:
4888
- type: integer
4889
- description: "Integer amount in MINOR units, always paired with decimal_places —
4890
- divide by 10 ** decimal_places to display. Example: value 15977
4891
- with decimal_places 2 is 159.77 USD. Rendering this field
4892
- directly shows prices 100x too high for 2-decimal currencies."
4893
- example: 41250
4894
- amount:
4895
- type: number
4896
- description: Alternative to `value` on some endpoints (the two never appear
4897
- together); its scale depends on decimal_places. When this object
4898
- carries decimal_places, amount is an INTEGER in minor units —
4899
- divide by 10 ** decimal_places (e.g. select_ancillaries
4900
- total_with_ancillaries). When there is no decimal_places field,
4901
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4902
- trip and checkout totals).
4903
- currency:
4904
- type: string
4905
- description: ISO 4217 currency code.
4906
- example: USD
4907
- decimal_places:
4908
- type: integer
4909
- description: "Scale of the integer value/amount: display = integer / 10 **
4910
- decimal_places. Always sent alongside minor-unit amounts.
4911
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4912
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4913
- can carry a different scale — ALWAYS use the decimal_places sent
4914
- with the amount, never a hardcoded 2. Only if the field is
4915
- genuinely absent on a value-shaped object, fall back to the ISO
4916
- digits for the currency."
4917
- example: 2
4918
- description: "THE CUSTOMER FIGURE: what goes back to the payment method that
4919
- paid for this ticket — what they paid, less the penalty, or the
4920
- whole charge when the ticket was voided (`operation_kind: void`).
4921
- Show this one. `confirmed_refund_amount` beside it is the airline's
4922
- net figure and is smaller on any ticket sold at a margin. Absent is
4923
- not zero."
4537
+ allOf:
4538
+ - $ref: "#/components/schemas/Money"
4539
+ - description: "THE CUSTOMER FIGURE: what goes back to the payment method that
4540
+ paid for this ticket — what they paid, less the penalty, or the
4541
+ whole charge when the ticket was voided (`operation_kind:
4542
+ void`). Show this one. `confirmed_refund_amount` beside it is
4543
+ the airline's net figure and is smaller on any ticket sold at a
4544
+ margin. Absent is not zero."
4924
4545
  confirmed_refund_amount:
4925
- type: object
4926
- properties:
4927
- value:
4928
- type: integer
4929
- description: "Integer amount in MINOR units, always paired with decimal_places —
4930
- divide by 10 ** decimal_places to display. Example: value 15977
4931
- with decimal_places 2 is 159.77 USD. Rendering this field
4932
- directly shows prices 100x too high for 2-decimal currencies."
4933
- example: 41250
4934
- amount:
4935
- type: number
4936
- description: Alternative to `value` on some endpoints (the two never appear
4937
- together); its scale depends on decimal_places. When this object
4938
- carries decimal_places, amount is an INTEGER in minor units —
4939
- divide by 10 ** decimal_places (e.g. select_ancillaries
4940
- total_with_ancillaries). When there is no decimal_places field,
4941
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
4942
- trip and checkout totals).
4943
- currency:
4944
- type: string
4945
- description: ISO 4217 currency code.
4946
- example: USD
4947
- decimal_places:
4948
- type: integer
4949
- description: "Scale of the integer value/amount: display = integer / 10 **
4950
- decimal_places. Always sent alongside minor-unit amounts.
4951
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
4952
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
4953
- can carry a different scale — ALWAYS use the decimal_places sent
4954
- with the amount, never a hardcoded 2. Only if the field is
4955
- genuinely absent on a value-shaped object, fall back to the ISO
4956
- digits for the currency."
4957
- example: 2
4958
- description: The AIRLINE's net refund — what the supplier returns to Jinko, not
4959
- what the customer receives — kept unchanged for one contract version
4960
- under the name it has always had. Read `refund_amount` for the
4961
- customer and `provider_figures.refund_net` for reconciliation; this
4962
- field is removed in the next version. Omitted on a void, where no
4963
- supplier figure is read at all.
4964
- deprecated: true
4546
+ allOf:
4547
+ - $ref: "#/components/schemas/Money"
4548
+ - description: The AIRLINE's net refund — what the supplier returns to Jinko, not
4549
+ what the customer receives — kept unchanged for one contract
4550
+ version under the name it has always had. Read `refund_amount`
4551
+ for the customer and `provider_figures.refund_net` for
4552
+ reconciliation; this field is removed in the next version.
4553
+ Omitted on a void, where no supplier figure is read at all.
4554
+ deprecated: true
4965
4555
  provider_figures:
4966
4556
  $ref: "#/components/schemas/FlightProviderFigures"
4967
4557
  refund_reference:
@@ -5018,42 +4608,11 @@ components:
5018
4608
  state:
5019
4609
  $ref: "#/components/schemas/ServicingState"
5020
4610
  refund_amount:
5021
- type: object
5022
- properties:
5023
- value:
5024
- type: integer
5025
- description: "Integer amount in MINOR units, always paired with decimal_places —
5026
- divide by 10 ** decimal_places to display. Example: value 15977
5027
- with decimal_places 2 is 159.77 USD. Rendering this field
5028
- directly shows prices 100x too high for 2-decimal currencies."
5029
- example: 41250
5030
- amount:
5031
- type: number
5032
- description: Alternative to `value` on some endpoints (the two never appear
5033
- together); its scale depends on decimal_places. When this object
5034
- carries decimal_places, amount is an INTEGER in minor units —
5035
- divide by 10 ** decimal_places (e.g. select_ancillaries
5036
- total_with_ancillaries). When there is no decimal_places field,
5037
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5038
- trip and checkout totals).
5039
- currency:
5040
- type: string
5041
- description: ISO 4217 currency code.
5042
- example: USD
5043
- decimal_places:
5044
- type: integer
5045
- description: "Scale of the integer value/amount: display = integer / 10 **
5046
- decimal_places. Always sent alongside minor-unit amounts.
5047
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5048
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5049
- can carry a different scale — ALWAYS use the decimal_places sent
5050
- with the amount, never a hardcoded 2. Only if the field is
5051
- genuinely absent on a value-shaped object, fall back to the ISO
5052
- digits for the currency."
5053
- example: 2
5054
- description: "THE CUSTOMER FIGURE: what goes back to the payment method — the
5055
- settled figure once the refund has settled, the quoted one before.
5056
- Absent is not zero."
4611
+ allOf:
4612
+ - $ref: "#/components/schemas/Money"
4613
+ - description: "THE CUSTOMER FIGURE: what goes back to the payment method — the
4614
+ settled figure once the refund has settled, the quoted one
4615
+ before. Absent is not zero."
5057
4616
  refund_reference:
5058
4617
  type: string
5059
4618
  example: rfnd_3c91f0a2
@@ -5101,39 +4660,7 @@ components:
5101
4660
  /v1/exchange_price is the binding figure.
5102
4661
  example: additional_payment_due
5103
4662
  estimated_amount:
5104
- type: object
5105
- properties:
5106
- value:
5107
- type: integer
5108
- description: "Integer amount in MINOR units, always paired with decimal_places —
5109
- divide by 10 ** decimal_places to display. Example: value 15977
5110
- with decimal_places 2 is 159.77 USD. Rendering this field
5111
- directly shows prices 100x too high for 2-decimal currencies."
5112
- example: 41250
5113
- amount:
5114
- type: number
5115
- description: Alternative to `value` on some endpoints (the two never appear
5116
- together); its scale depends on decimal_places. When this object
5117
- carries decimal_places, amount is an INTEGER in minor units —
5118
- divide by 10 ** decimal_places (e.g. select_ancillaries
5119
- total_with_ancillaries). When there is no decimal_places field,
5120
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5121
- trip and checkout totals).
5122
- currency:
5123
- type: string
5124
- description: ISO 4217 currency code.
5125
- example: USD
5126
- decimal_places:
5127
- type: integer
5128
- description: "Scale of the integer value/amount: display = integer / 10 **
5129
- decimal_places. Always sent alongside minor-unit amounts.
5130
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5131
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5132
- can carry a different scale — ALWAYS use the decimal_places sent
5133
- with the amount, never a hardcoded 2. Only if the field is
5134
- genuinely absent on a value-shaped object, fall back to the ISO
5135
- digits for the currency."
5136
- example: 2
4663
+ $ref: "#/components/schemas/Money"
5137
4664
  validating_carrier:
5138
4665
  type: string
5139
4666
  example: AA
@@ -5177,148 +4704,20 @@ components:
5177
4704
  - booking_ref
5178
4705
  - last_name
5179
4706
  example: *a12
5180
- ExchangePriceResponse:
5181
- type: object
5182
- properties:
5183
- payment_outcome:
5184
- type: string
5185
- example: additional_payment_due
5186
- fare_difference:
5187
- type: object
5188
- properties:
5189
- value:
5190
- type: integer
5191
- description: "Integer amount in MINOR units, always paired with decimal_places —
5192
- divide by 10 ** decimal_places to display. Example: value 15977
5193
- with decimal_places 2 is 159.77 USD. Rendering this field
5194
- directly shows prices 100x too high for 2-decimal currencies."
5195
- example: 41250
5196
- amount:
5197
- type: number
5198
- description: Alternative to `value` on some endpoints (the two never appear
5199
- together); its scale depends on decimal_places. When this object
5200
- carries decimal_places, amount is an INTEGER in minor units —
5201
- divide by 10 ** decimal_places (e.g. select_ancillaries
5202
- total_with_ancillaries). When there is no decimal_places field,
5203
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5204
- trip and checkout totals).
5205
- currency:
5206
- type: string
5207
- description: ISO 4217 currency code.
5208
- example: USD
5209
- decimal_places:
5210
- type: integer
5211
- description: "Scale of the integer value/amount: display = integer / 10 **
5212
- decimal_places. Always sent alongside minor-unit amounts.
5213
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5214
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5215
- can carry a different scale — ALWAYS use the decimal_places sent
5216
- with the amount, never a hardcoded 2. Only if the field is
5217
- genuinely absent on a value-shaped object, fall back to the ISO
5218
- digits for the currency."
5219
- example: 2
5220
- penalty_amount:
5221
- type: object
5222
- properties:
5223
- value:
5224
- type: integer
5225
- description: "Integer amount in MINOR units, always paired with decimal_places —
5226
- divide by 10 ** decimal_places to display. Example: value 15977
5227
- with decimal_places 2 is 159.77 USD. Rendering this field
5228
- directly shows prices 100x too high for 2-decimal currencies."
5229
- example: 41250
5230
- amount:
5231
- type: number
5232
- description: Alternative to `value` on some endpoints (the two never appear
5233
- together); its scale depends on decimal_places. When this object
5234
- carries decimal_places, amount is an INTEGER in minor units —
5235
- divide by 10 ** decimal_places (e.g. select_ancillaries
5236
- total_with_ancillaries). When there is no decimal_places field,
5237
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5238
- trip and checkout totals).
5239
- currency:
5240
- type: string
5241
- description: ISO 4217 currency code.
5242
- example: USD
5243
- decimal_places:
5244
- type: integer
5245
- description: "Scale of the integer value/amount: display = integer / 10 **
5246
- decimal_places. Always sent alongside minor-unit amounts.
5247
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5248
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5249
- can carry a different scale — ALWAYS use the decimal_places sent
5250
- with the amount, never a hardcoded 2. Only if the field is
5251
- genuinely absent on a value-shaped object, fall back to the ISO
5252
- digits for the currency."
5253
- example: 2
5254
- total_due:
5255
- type: object
5256
- properties:
5257
- value:
5258
- type: integer
5259
- description: "Integer amount in MINOR units, always paired with decimal_places —
5260
- divide by 10 ** decimal_places to display. Example: value 15977
5261
- with decimal_places 2 is 159.77 USD. Rendering this field
5262
- directly shows prices 100x too high for 2-decimal currencies."
5263
- example: 41250
5264
- amount:
5265
- type: number
5266
- description: Alternative to `value` on some endpoints (the two never appear
5267
- together); its scale depends on decimal_places. When this object
5268
- carries decimal_places, amount is an INTEGER in minor units —
5269
- divide by 10 ** decimal_places (e.g. select_ancillaries
5270
- total_with_ancillaries). When there is no decimal_places field,
5271
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5272
- trip and checkout totals).
5273
- currency:
5274
- type: string
5275
- description: ISO 4217 currency code.
5276
- example: USD
5277
- decimal_places:
5278
- type: integer
5279
- description: "Scale of the integer value/amount: display = integer / 10 **
5280
- decimal_places. Always sent alongside minor-unit amounts.
5281
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5282
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5283
- can carry a different scale — ALWAYS use the decimal_places sent
5284
- with the amount, never a hardcoded 2. Only if the field is
5285
- genuinely absent on a value-shaped object, fall back to the ISO
5286
- digits for the currency."
5287
- example: 2
5288
- total_refund:
5289
- type: object
5290
- properties:
5291
- value:
5292
- type: integer
5293
- description: "Integer amount in MINOR units, always paired with decimal_places —
5294
- divide by 10 ** decimal_places to display. Example: value 15977
5295
- with decimal_places 2 is 159.77 USD. Rendering this field
5296
- directly shows prices 100x too high for 2-decimal currencies."
5297
- example: 41250
5298
- amount:
5299
- type: number
5300
- description: Alternative to `value` on some endpoints (the two never appear
5301
- together); its scale depends on decimal_places. When this object
5302
- carries decimal_places, amount is an INTEGER in minor units —
5303
- divide by 10 ** decimal_places (e.g. select_ancillaries
5304
- total_with_ancillaries). When there is no decimal_places field,
5305
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5306
- trip and checkout totals).
5307
- currency:
5308
- type: string
5309
- description: ISO 4217 currency code.
5310
- example: USD
5311
- decimal_places:
5312
- type: integer
5313
- description: "Scale of the integer value/amount: display = integer / 10 **
5314
- decimal_places. Always sent alongside minor-unit amounts.
5315
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5316
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5317
- can carry a different scale — ALWAYS use the decimal_places sent
5318
- with the amount, never a hardcoded 2. Only if the field is
5319
- genuinely absent on a value-shaped object, fall back to the ISO
5320
- digits for the currency."
5321
- example: 2
4707
+ ExchangePriceResponse:
4708
+ type: object
4709
+ properties:
4710
+ payment_outcome:
4711
+ type: string
4712
+ example: additional_payment_due
4713
+ fare_difference:
4714
+ $ref: "#/components/schemas/Money"
4715
+ penalty_amount:
4716
+ $ref: "#/components/schemas/Money"
4717
+ total_due:
4718
+ $ref: "#/components/schemas/Money"
4719
+ total_refund:
4720
+ $ref: "#/components/schemas/Money"
5322
4721
  session_reference:
5323
4722
  type: string
5324
4723
  example: exch_7a1c93f0
@@ -5456,73 +4855,9 @@ components:
5456
4855
  type: object
5457
4856
  properties:
5458
4857
  refund_net:
5459
- type: object
5460
- properties:
5461
- value:
5462
- type: integer
5463
- description: "Integer amount in MINOR units, always paired with decimal_places —
5464
- divide by 10 ** decimal_places to display. Example: value 15977
5465
- with decimal_places 2 is 159.77 USD. Rendering this field
5466
- directly shows prices 100x too high for 2-decimal currencies."
5467
- example: 41250
5468
- amount:
5469
- type: number
5470
- description: Alternative to `value` on some endpoints (the two never appear
5471
- together); its scale depends on decimal_places. When this object
5472
- carries decimal_places, amount is an INTEGER in minor units —
5473
- divide by 10 ** decimal_places (e.g. select_ancillaries
5474
- total_with_ancillaries). When there is no decimal_places field,
5475
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5476
- trip and checkout totals).
5477
- currency:
5478
- type: string
5479
- description: ISO 4217 currency code.
5480
- example: USD
5481
- decimal_places:
5482
- type: integer
5483
- description: "Scale of the integer value/amount: display = integer / 10 **
5484
- decimal_places. Always sent alongside minor-unit amounts.
5485
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5486
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5487
- can carry a different scale — ALWAYS use the decimal_places sent
5488
- with the amount, never a hardcoded 2. Only if the field is
5489
- genuinely absent on a value-shaped object, fall back to the ISO
5490
- digits for the currency."
5491
- example: 2
4858
+ $ref: "#/components/schemas/Money"
5492
4859
  penalty_net:
5493
- type: object
5494
- properties:
5495
- value:
5496
- type: integer
5497
- description: "Integer amount in MINOR units, always paired with decimal_places —
5498
- divide by 10 ** decimal_places to display. Example: value 15977
5499
- with decimal_places 2 is 159.77 USD. Rendering this field
5500
- directly shows prices 100x too high for 2-decimal currencies."
5501
- example: 41250
5502
- amount:
5503
- type: number
5504
- description: Alternative to `value` on some endpoints (the two never appear
5505
- together); its scale depends on decimal_places. When this object
5506
- carries decimal_places, amount is an INTEGER in minor units —
5507
- divide by 10 ** decimal_places (e.g. select_ancillaries
5508
- total_with_ancillaries). When there is no decimal_places field,
5509
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5510
- trip and checkout totals).
5511
- currency:
5512
- type: string
5513
- description: ISO 4217 currency code.
5514
- example: USD
5515
- decimal_places:
5516
- type: integer
5517
- description: "Scale of the integer value/amount: display = integer / 10 **
5518
- decimal_places. Always sent alongside minor-unit amounts.
5519
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5520
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5521
- can carry a different scale — ALWAYS use the decimal_places sent
5522
- with the amount, never a hardcoded 2. Only if the field is
5523
- genuinely absent on a value-shaped object, fall back to the ISO
5524
- digits for the currency."
5525
- example: 2
4860
+ $ref: "#/components/schemas/Money"
5526
4861
  currency:
5527
4862
  type: string
5528
4863
  example: USD
@@ -5555,124 +4890,31 @@ components:
5555
4890
  state:
5556
4891
  $ref: "#/components/schemas/ServicingState"
5557
4892
  refund_amount:
5558
- type: object
5559
- properties:
5560
- value:
5561
- type: integer
5562
- description: "Integer amount in MINOR units, always paired with decimal_places —
5563
- divide by 10 ** decimal_places to display. Example: value 15977
5564
- with decimal_places 2 is 159.77 USD. Rendering this field
5565
- directly shows prices 100x too high for 2-decimal currencies."
5566
- example: 41250
5567
- amount:
5568
- type: number
5569
- description: Alternative to `value` on some endpoints (the two never appear
5570
- together); its scale depends on decimal_places. When this object
5571
- carries decimal_places, amount is an INTEGER in minor units —
5572
- divide by 10 ** decimal_places (e.g. select_ancillaries
5573
- total_with_ancillaries). When there is no decimal_places field,
5574
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5575
- trip and checkout totals).
5576
- currency:
5577
- type: string
5578
- description: ISO 4217 currency code.
5579
- example: USD
5580
- decimal_places:
5581
- type: integer
5582
- description: "Scale of the integer value/amount: display = integer / 10 **
5583
- decimal_places. Always sent alongside minor-unit amounts.
5584
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5585
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5586
- can carry a different scale — ALWAYS use the decimal_places sent
5587
- with the amount, never a hardcoded 2. Only if the field is
5588
- genuinely absent on a value-shaped object, fall back to the ISO
5589
- digits for the currency."
5590
- example: 2
5591
- description: "THE CUSTOMER FIGURE: what goes back to the payment method that
5592
- paid for this booking — what the customer paid for it, less
5593
- `penalty_amount`. Up to contract version 0.3.0 this field carried
5594
- the SUPPLIER's net refund instead, which on a booking sold at a
5595
- margin is a smaller number; the supplier's figure now lives in
5596
- `provider_figures.refund_net`. Absent when no refund was scheduled —
5597
- absent is not zero."
4893
+ allOf:
4894
+ - $ref: "#/components/schemas/Money"
4895
+ - description: "THE CUSTOMER FIGURE: what goes back to the payment method that
4896
+ paid for this booking — what the customer paid for it, less
4897
+ `penalty_amount`. Up to contract version 0.3.0 this field
4898
+ carried the SUPPLIER's net refund instead, which on a booking
4899
+ sold at a margin is a smaller number; the supplier's figure now
4900
+ lives in `provider_figures.refund_net`. Absent when no refund
4901
+ was scheduled — absent is not zero."
5598
4902
  customer_refund_amount:
5599
- type: object
5600
- properties:
5601
- value:
5602
- type: integer
5603
- description: "Integer amount in MINOR units, always paired with decimal_places —
5604
- divide by 10 ** decimal_places to display. Example: value 15977
5605
- with decimal_places 2 is 159.77 USD. Rendering this field
5606
- directly shows prices 100x too high for 2-decimal currencies."
5607
- example: 41250
5608
- amount:
5609
- type: number
5610
- description: Alternative to `value` on some endpoints (the two never appear
5611
- together); its scale depends on decimal_places. When this object
5612
- carries decimal_places, amount is an INTEGER in minor units —
5613
- divide by 10 ** decimal_places (e.g. select_ancillaries
5614
- total_with_ancillaries). When there is no decimal_places field,
5615
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5616
- trip and checkout totals).
5617
- currency:
5618
- type: string
5619
- description: ISO 4217 currency code.
5620
- example: USD
5621
- decimal_places:
5622
- type: integer
5623
- description: "Scale of the integer value/amount: display = integer / 10 **
5624
- decimal_places. Always sent alongside minor-unit amounts.
5625
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5626
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5627
- can carry a different scale — ALWAYS use the decimal_places sent
5628
- with the amount, never a hardcoded 2. Only if the field is
5629
- genuinely absent on a value-shaped object, fall back to the ISO
5630
- digits for the currency."
5631
- example: 2
5632
- description: Deprecated alias of `refund_amount`, carrying the same value. It
5633
- existed because `refund_amount` used to be the supplier figure; now
5634
- that `refund_amount` IS the customer figure the alias is redundant.
5635
- Read `refund_amount` — this field is removed in the next contract
5636
- version.
5637
- deprecated: true
4903
+ allOf:
4904
+ - $ref: "#/components/schemas/Money"
4905
+ - description: Deprecated alias of `refund_amount`, carrying the same value. It
4906
+ existed because `refund_amount` used to be the supplier figure;
4907
+ now that `refund_amount` IS the customer figure the alias is
4908
+ redundant. Read `refund_amount` — this field is removed in the
4909
+ next contract version.
4910
+ deprecated: true
5638
4911
  penalty_amount:
5639
- type: object
5640
- properties:
5641
- value:
5642
- type: integer
5643
- description: "Integer amount in MINOR units, always paired with decimal_places —
5644
- divide by 10 ** decimal_places to display. Example: value 15977
5645
- with decimal_places 2 is 159.77 USD. Rendering this field
5646
- directly shows prices 100x too high for 2-decimal currencies."
5647
- example: 41250
5648
- amount:
5649
- type: number
5650
- description: Alternative to `value` on some endpoints (the two never appear
5651
- together); its scale depends on decimal_places. When this object
5652
- carries decimal_places, amount is an INTEGER in minor units —
5653
- divide by 10 ** decimal_places (e.g. select_ancillaries
5654
- total_with_ancillaries). When there is no decimal_places field,
5655
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5656
- trip and checkout totals).
5657
- currency:
5658
- type: string
5659
- description: ISO 4217 currency code.
5660
- example: USD
5661
- decimal_places:
5662
- type: integer
5663
- description: "Scale of the integer value/amount: display = integer / 10 **
5664
- decimal_places. Always sent alongside minor-unit amounts.
5665
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5666
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5667
- can carry a different scale — ALWAYS use the decimal_places sent
5668
- with the amount, never a hardcoded 2. Only if the field is
5669
- genuinely absent on a value-shaped object, fall back to the ISO
5670
- digits for the currency."
5671
- example: 2
5672
- description: "The cancellation penalty withheld from the customer, on the same
5673
- basis as `refund_amount`: what they paid, less this, is what they
5674
- get back. The penalty the SUPPLIER withheld from Jinko is
5675
- `provider_figures.penalty_net`."
4912
+ allOf:
4913
+ - $ref: "#/components/schemas/Money"
4914
+ - description: "The cancellation penalty withheld from the customer, on the same
4915
+ basis as `refund_amount`: what they paid, less this, is what
4916
+ they get back. The penalty the SUPPLIER withheld from Jinko is
4917
+ `provider_figures.penalty_net`."
5676
4918
  provider_figures:
5677
4919
  $ref: "#/components/schemas/ProviderFigures"
5678
4920
  connector_reference:
@@ -5765,89 +5007,32 @@ components:
5765
5007
  holding several items is quoted and cancelled one item at a time.
5766
5008
  example: itm_7f2c9a4e8b1d
5767
5009
  refund:
5768
- type: object
5769
- properties:
5770
- value:
5771
- type: integer
5772
- description: "Integer amount in MINOR units, always paired with decimal_places —
5773
- divide by 10 ** decimal_places to display. Example: value 15977
5774
- with decimal_places 2 is 159.77 USD. Rendering this field
5775
- directly shows prices 100x too high for 2-decimal currencies."
5776
- example: 41250
5777
- amount:
5778
- type: number
5779
- description: Alternative to `value` on some endpoints (the two never appear
5780
- together); its scale depends on decimal_places. When this object
5781
- carries decimal_places, amount is an INTEGER in minor units —
5782
- divide by 10 ** decimal_places (e.g. select_ancillaries
5783
- total_with_ancillaries). When there is no decimal_places field,
5784
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5785
- trip and checkout totals).
5786
- currency:
5787
- type: string
5788
- description: ISO 4217 currency code.
5789
- example: USD
5790
- decimal_places:
5791
- type: integer
5792
- description: "Scale of the integer value/amount: display = integer / 10 **
5793
- decimal_places. Always sent alongside minor-unit amounts.
5794
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5795
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5796
- can carry a different scale — ALWAYS use the decimal_places sent
5797
- with the amount, never a hardcoded 2. Only if the field is
5798
- genuinely absent on a value-shaped object, fall back to the ISO
5799
- digits for the currency."
5800
- example: 2
5801
- basis:
5802
- type: string
5803
- description: How the figure was computed. `sell_minus_penalty` — what the
5804
- customer paid for this item, less the penalty. `original_charge`
5805
- — the entire charge is reversed, penalty-free (a void). The
5806
- platform chooses; the caller cannot ask for one.
5807
- example: sell_minus_penalty
5010
+ allOf:
5011
+ - $ref: "#/components/schemas/Money"
5012
+ - type: object
5013
+ properties:
5014
+ basis:
5015
+ type: string
5016
+ description: How the figure was computed. `sell_minus_penalty` — what the
5017
+ customer paid for this item, less the penalty.
5018
+ `original_charge` — the entire charge is reversed,
5019
+ penalty-free (a void). The platform chooses; the caller
5020
+ cannot ask for one.
5021
+ example: sell_minus_penalty
5808
5022
  description: "THE CUSTOMER FIGURE: what would go back to the payment method, on
5809
5023
  the basis named in `basis`. Show this one. Absent is not zero."
5810
5024
  penalty:
5811
- type: object
5812
- properties:
5813
- value:
5814
- type: integer
5815
- description: "Integer amount in MINOR units, always paired with decimal_places —
5816
- divide by 10 ** decimal_places to display. Example: value 15977
5817
- with decimal_places 2 is 159.77 USD. Rendering this field
5818
- directly shows prices 100x too high for 2-decimal currencies."
5819
- example: 41250
5820
- amount:
5821
- type: number
5822
- description: Alternative to `value` on some endpoints (the two never appear
5823
- together); its scale depends on decimal_places. When this object
5824
- carries decimal_places, amount is an INTEGER in minor units —
5825
- divide by 10 ** decimal_places (e.g. select_ancillaries
5826
- total_with_ancillaries). When there is no decimal_places field,
5827
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
5828
- trip and checkout totals).
5829
- currency:
5830
- type: string
5831
- description: ISO 4217 currency code.
5832
- example: USD
5833
- decimal_places:
5834
- type: integer
5835
- description: "Scale of the integer value/amount: display = integer / 10 **
5836
- decimal_places. Always sent alongside minor-unit amounts.
5837
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
5838
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
5839
- can carry a different scale — ALWAYS use the decimal_places sent
5840
- with the amount, never a hardcoded 2. Only if the field is
5841
- genuinely absent on a value-shaped object, fall back to the ISO
5842
- digits for the currency."
5843
- example: 2
5844
- fee_known:
5845
- type: boolean
5846
- description: false means the penalty could not be established — UNKNOWN, not
5847
- zero. Render it as "we will confirm the fee", never as free
5848
- cancellation, and expect the final figure on the operation
5849
- status.
5850
- example: true
5025
+ allOf:
5026
+ - $ref: "#/components/schemas/Money"
5027
+ - type: object
5028
+ properties:
5029
+ fee_known:
5030
+ type: boolean
5031
+ description: false means the penalty could not be established — UNKNOWN, not
5032
+ zero. Render it as "we will confirm the fee", never as free
5033
+ cancellation, and expect the final figure on the operation
5034
+ status.
5035
+ example: true
5851
5036
  description: What the customer would forfeit — read `fee_known` before showing it.
5852
5037
  policy:
5853
5038
  type: object
@@ -5872,43 +5057,7 @@ components:
5872
5057
  description: When this step starts applying.
5873
5058
  example: "2026-09-01T00:00:00Z"
5874
5059
  amount:
5875
- type: object
5876
- properties:
5877
- value:
5878
- type: integer
5879
- description: "Integer amount in MINOR units, always paired with decimal_places —
5880
- divide by 10 ** decimal_places to display. Example:
5881
- value 15977 with decimal_places 2 is 159.77 USD.
5882
- Rendering this field directly shows prices 100x too
5883
- high for 2-decimal currencies."
5884
- example: 41250
5885
- amount:
5886
- type: number
5887
- description: Alternative to `value` on some endpoints (the two never appear
5888
- together); its scale depends on decimal_places. When
5889
- this object carries decimal_places, amount is an
5890
- INTEGER in minor units — divide by 10 **
5891
- decimal_places (e.g. select_ancillaries
5892
- total_with_ancillaries). When there is no
5893
- decimal_places field, amount is a decimal in MAJOR
5894
- units, safe to display as-is (e.g. trip and checkout
5895
- totals).
5896
- currency:
5897
- type: string
5898
- description: ISO 4217 currency code.
5899
- example: USD
5900
- decimal_places:
5901
- type: integer
5902
- description: "Scale of the integer value/amount: display = integer / 10 **
5903
- decimal_places. Always sent alongside minor-unit
5904
- amounts. Usually the ISO 4217 digits of the currency
5905
- (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD)
5906
- but currency-converted prices can carry a different
5907
- scale — ALWAYS use the decimal_places sent with the
5908
- amount, never a hardcoded 2. Only if the field is
5909
- genuinely absent on a value-shaped object, fall back
5910
- to the ISO digits for the currency."
5911
- example: 2
5060
+ $ref: "#/components/schemas/Money"
5912
5061
  fraction:
5913
5062
  type: number
5914
5063
  description: The share of the paid price withheld from `from` onwards, when the
@@ -6024,41 +5173,7 @@ components:
6024
5173
  type: object
6025
5174
  properties:
6026
5175
  refund:
6027
- type: object
6028
- properties:
6029
- value:
6030
- type: integer
6031
- description: "Integer amount in MINOR units, always paired with decimal_places —
6032
- divide by 10 ** decimal_places to display. Example: value
6033
- 15977 with decimal_places 2 is 159.77 USD. Rendering this
6034
- field directly shows prices 100x too high for 2-decimal
6035
- currencies."
6036
- example: 41250
6037
- amount:
6038
- type: number
6039
- description: Alternative to `value` on some endpoints (the two never appear
6040
- together); its scale depends on decimal_places. When this
6041
- object carries decimal_places, amount is an INTEGER in minor
6042
- units — divide by 10 ** decimal_places (e.g.
6043
- select_ancillaries total_with_ancillaries). When there is no
6044
- decimal_places field, amount is a decimal in MAJOR units,
6045
- safe to display as-is (e.g. trip and checkout totals).
6046
- currency:
6047
- type: string
6048
- description: ISO 4217 currency code.
6049
- example: USD
6050
- decimal_places:
6051
- type: integer
6052
- description: "Scale of the integer value/amount: display = integer / 10 **
6053
- decimal_places. Always sent alongside minor-unit amounts.
6054
- Usually the ISO 4217 digits of the currency (2 for
6055
- USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but
6056
- currency-converted prices can carry a different scale —
6057
- ALWAYS use the decimal_places sent with the amount, never a
6058
- hardcoded 2. Only if the field is genuinely absent on a
6059
- value-shaped object, fall back to the ISO digits for the
6060
- currency."
6061
- example: 2
5176
+ $ref: "#/components/schemas/Money"
6062
5177
  description: The customer refund as it stands now, on `quote_drift`. This is
6063
5178
  what the customer would get if they accepted the new quote.
6064
5179
  active_operation:
@@ -6069,43 +5184,13 @@ components:
6069
5184
  /v1/flight_refund_status.
6070
5185
  example: svc_01J7ZR5Q2KME8V4T
6071
5186
  shortfall:
6072
- type: object
6073
- properties:
6074
- value:
6075
- type: integer
6076
- description: "Integer amount in MINOR units, always paired with decimal_places —
6077
- divide by 10 ** decimal_places to display. Example: value 15977
6078
- with decimal_places 2 is 159.77 USD. Rendering this field
6079
- directly shows prices 100x too high for 2-decimal currencies."
6080
- example: 41250
6081
- amount:
6082
- type: number
6083
- description: Alternative to `value` on some endpoints (the two never appear
6084
- together); its scale depends on decimal_places. When this object
6085
- carries decimal_places, amount is an INTEGER in minor units —
6086
- divide by 10 ** decimal_places (e.g. select_ancillaries
6087
- total_with_ancillaries). When there is no decimal_places field,
6088
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
6089
- trip and checkout totals).
6090
- currency:
6091
- type: string
6092
- description: ISO 4217 currency code.
6093
- example: USD
6094
- decimal_places:
6095
- type: integer
6096
- description: "Scale of the integer value/amount: display = integer / 10 **
6097
- decimal_places. Always sent alongside minor-unit amounts.
6098
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
6099
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
6100
- can carry a different scale — ALWAYS use the decimal_places sent
6101
- with the amount, never a hardcoded 2. Only if the field is
6102
- genuinely absent on a value-shaped object, fall back to the ISO
6103
- digits for the currency."
6104
- example: 2
6105
- description: How much of the refund could not be reserved, on
6106
- `funds_unavailable`. The refusal is about money still moving on the
6107
- original payment, not about this booking, so this is the figure that
6108
- says how much has to clear before a commit can succeed.
5187
+ allOf:
5188
+ - $ref: "#/components/schemas/Money"
5189
+ - description: How much of the refund could not be reserved, on
5190
+ `funds_unavailable`. The refusal is about money still moving on
5191
+ the original payment, not about this booking, so this is the
5192
+ figure that says how much has to clear before a commit can
5193
+ succeed.
6109
5194
  blocking:
6110
5195
  type: array
6111
5196
  items:
@@ -6255,62 +5340,33 @@ components:
6255
5340
  description: The reference the supplier issued for the cancellation or refund
6256
5341
  itself, once it has issued one.
6257
5342
  example: cxl_2f90a1c3
6258
- description: The supplier's record. It can say `cancelled` while the money is
6259
- still moving — that is the normal middle of a cancellation, not a
6260
- discrepancy.
6261
- money:
6262
- type: object
6263
- properties:
6264
- value:
6265
- type: integer
6266
- description: "Integer amount in MINOR units, always paired with decimal_places —
6267
- divide by 10 ** decimal_places to display. Example: value 15977
6268
- with decimal_places 2 is 159.77 USD. Rendering this field
6269
- directly shows prices 100x too high for 2-decimal currencies."
6270
- example: 41250
6271
- amount:
6272
- type: number
6273
- description: Alternative to `value` on some endpoints (the two never appear
6274
- together); its scale depends on decimal_places. When this object
6275
- carries decimal_places, amount is an INTEGER in minor units —
6276
- divide by 10 ** decimal_places (e.g. select_ancillaries
6277
- total_with_ancillaries). When there is no decimal_places field,
6278
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
6279
- trip and checkout totals).
6280
- currency:
6281
- type: string
6282
- description: ISO 4217 currency code.
6283
- example: USD
6284
- decimal_places:
6285
- type: integer
6286
- description: "Scale of the integer value/amount: display = integer / 10 **
6287
- decimal_places. Always sent alongside minor-unit amounts.
6288
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
6289
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
6290
- can carry a different scale — ALWAYS use the decimal_places sent
6291
- with the amount, never a hardcoded 2. Only if the field is
6292
- genuinely absent on a value-shaped object, fall back to the ISO
6293
- digits for the currency."
6294
- example: 2
6295
- direction:
6296
- type: string
6297
- description: Which way the money moves. `refund` on a cancellation.
6298
- example: refund
6299
- vehicle_state:
6300
- type: string
6301
- description: "How far the money itself has got, independently of the supplier:
6302
- `reserved` (earmarked, nothing sent), `refund_pending`
6303
- (submitted to the payment provider), `payout_initiated` and
6304
- `payout_settled` (paid out to a third party), `paid` (it has
6305
- reached the customer), `released` (earmark dropped, nothing
6306
- owed), `refund_review` (a person at Jinko has to release it).
6307
- Only `paid` and `payout_settled` mean the customer has the
6308
- money."
6309
- example: paid
6310
- stripe_reference:
6311
- type: string
6312
- description: The payment provider's own refund id, once one exists.
6313
- example: re_3UBIxK2eZvKYlo2C
5343
+ description: The supplier's record. It can say `cancelled` while the money is
5344
+ still moving — that is the normal middle of a cancellation, not a
5345
+ discrepancy.
5346
+ money:
5347
+ allOf:
5348
+ - $ref: "#/components/schemas/Money"
5349
+ - type: object
5350
+ properties:
5351
+ direction:
5352
+ type: string
5353
+ description: Which way the money moves. `refund` on a cancellation.
5354
+ example: refund
5355
+ vehicle_state:
5356
+ type: string
5357
+ description: "How far the money itself has got, independently of the supplier:
5358
+ `reserved` (earmarked, nothing sent), `refund_pending`
5359
+ (submitted to the payment provider), `payout_initiated` and
5360
+ `payout_settled` (paid out to a third party), `paid` (it has
5361
+ reached the customer), `released` (earmark dropped, nothing
5362
+ owed), `refund_review` (a person at Jinko has to release
5363
+ it). Only `paid` and `payout_settled` mean the customer has
5364
+ the money."
5365
+ example: paid
5366
+ stripe_reference:
5367
+ type: string
5368
+ description: The payment provider's own refund id, once one exists.
5369
+ example: re_3UBIxK2eZvKYlo2C
6314
5370
  description: The refund and where it has got to. Read `vehicle_state` before
6315
5371
  telling a customer they have been refunded.
6316
5372
  HotelCancelStatusRequest:
@@ -6469,92 +5525,35 @@ components:
6469
5525
  description: Which supplier the operation would be sent to. Informational.
6470
5526
  example: sabre-rest
6471
5527
  refund:
6472
- type: object
6473
- properties:
6474
- value:
6475
- type: integer
6476
- description: "Integer amount in MINOR units, always paired with decimal_places —
6477
- divide by 10 ** decimal_places to display. Example: value 15977
6478
- with decimal_places 2 is 159.77 USD. Rendering this field
6479
- directly shows prices 100x too high for 2-decimal currencies."
6480
- example: 41250
6481
- amount:
6482
- type: number
6483
- description: Alternative to `value` on some endpoints (the two never appear
6484
- together); its scale depends on decimal_places. When this object
6485
- carries decimal_places, amount is an INTEGER in minor units —
6486
- divide by 10 ** decimal_places (e.g. select_ancillaries
6487
- total_with_ancillaries). When there is no decimal_places field,
6488
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
6489
- trip and checkout totals).
6490
- currency:
6491
- type: string
6492
- description: ISO 4217 currency code.
6493
- example: USD
6494
- decimal_places:
6495
- type: integer
6496
- description: "Scale of the integer value/amount: display = integer / 10 **
6497
- decimal_places. Always sent alongside minor-unit amounts.
6498
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
6499
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
6500
- can carry a different scale — ALWAYS use the decimal_places sent
6501
- with the amount, never a hardcoded 2. Only if the field is
6502
- genuinely absent on a value-shaped object, fall back to the ISO
6503
- digits for the currency."
6504
- example: 2
6505
- basis:
6506
- type: string
6507
- description: How the figure was computed. `sell_minus_penalty` — what the
6508
- customer paid for this item, less the penalty. `original_charge`
6509
- — the entire charge is reversed, penalty-free (a void). The
6510
- platform chooses; the caller cannot ask for one.
6511
- example: sell_minus_penalty
5528
+ allOf:
5529
+ - $ref: "#/components/schemas/Money"
5530
+ - type: object
5531
+ properties:
5532
+ basis:
5533
+ type: string
5534
+ description: How the figure was computed. `sell_minus_penalty` — what the
5535
+ customer paid for this item, less the penalty.
5536
+ `original_charge` — the entire charge is reversed,
5537
+ penalty-free (a void). The platform chooses; the caller
5538
+ cannot ask for one.
5539
+ example: sell_minus_penalty
6512
5540
  description: "THE CUSTOMER FIGURE: what would go back to the payment method, on
6513
5541
  the basis named in `basis` — what they paid less the penalty, or the
6514
5542
  entire charge on a void. Show this one, never `provider_figures`.
6515
5543
  Absent is not zero: a quote whose penalty is unknown carries no
6516
5544
  refund figure at all."
6517
5545
  penalty:
6518
- type: object
6519
- properties:
6520
- value:
6521
- type: integer
6522
- description: "Integer amount in MINOR units, always paired with decimal_places —
6523
- divide by 10 ** decimal_places to display. Example: value 15977
6524
- with decimal_places 2 is 159.77 USD. Rendering this field
6525
- directly shows prices 100x too high for 2-decimal currencies."
6526
- example: 41250
6527
- amount:
6528
- type: number
6529
- description: Alternative to `value` on some endpoints (the two never appear
6530
- together); its scale depends on decimal_places. When this object
6531
- carries decimal_places, amount is an INTEGER in minor units —
6532
- divide by 10 ** decimal_places (e.g. select_ancillaries
6533
- total_with_ancillaries). When there is no decimal_places field,
6534
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
6535
- trip and checkout totals).
6536
- currency:
6537
- type: string
6538
- description: ISO 4217 currency code.
6539
- example: USD
6540
- decimal_places:
6541
- type: integer
6542
- description: "Scale of the integer value/amount: display = integer / 10 **
6543
- decimal_places. Always sent alongside minor-unit amounts.
6544
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
6545
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
6546
- can carry a different scale — ALWAYS use the decimal_places sent
6547
- with the amount, never a hardcoded 2. Only if the field is
6548
- genuinely absent on a value-shaped object, fall back to the ISO
6549
- digits for the currency."
6550
- example: 2
6551
- fee_known:
6552
- type: boolean
6553
- description: false means the penalty could not be established — UNKNOWN, not
6554
- zero. Render it as "we will confirm the fee", never as free
6555
- cancellation, and expect the final figure on the operation
6556
- status.
6557
- example: true
5546
+ allOf:
5547
+ - $ref: "#/components/schemas/Money"
5548
+ - type: object
5549
+ properties:
5550
+ fee_known:
5551
+ type: boolean
5552
+ description: false means the penalty could not be established — UNKNOWN, not
5553
+ zero. Render it as "we will confirm the fee", never as free
5554
+ cancellation, and expect the final figure on the operation
5555
+ status.
5556
+ example: true
6558
5557
  description: What the customer would forfeit, in the currency they were charged.
6559
5558
  Zero on a void. Read `fee_known` before showing it — false means
6560
5559
  UNKNOWN, not free.
@@ -6699,41 +5698,7 @@ components:
6699
5698
  type: object
6700
5699
  properties:
6701
5700
  refund:
6702
- type: object
6703
- properties:
6704
- value:
6705
- type: integer
6706
- description: "Integer amount in MINOR units, always paired with decimal_places —
6707
- divide by 10 ** decimal_places to display. Example: value
6708
- 15977 with decimal_places 2 is 159.77 USD. Rendering this
6709
- field directly shows prices 100x too high for 2-decimal
6710
- currencies."
6711
- example: 41250
6712
- amount:
6713
- type: number
6714
- description: Alternative to `value` on some endpoints (the two never appear
6715
- together); its scale depends on decimal_places. When this
6716
- object carries decimal_places, amount is an INTEGER in minor
6717
- units — divide by 10 ** decimal_places (e.g.
6718
- select_ancillaries total_with_ancillaries). When there is no
6719
- decimal_places field, amount is a decimal in MAJOR units,
6720
- safe to display as-is (e.g. trip and checkout totals).
6721
- currency:
6722
- type: string
6723
- description: ISO 4217 currency code.
6724
- example: USD
6725
- decimal_places:
6726
- type: integer
6727
- description: "Scale of the integer value/amount: display = integer / 10 **
6728
- decimal_places. Always sent alongside minor-unit amounts.
6729
- Usually the ISO 4217 digits of the currency (2 for
6730
- USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but
6731
- currency-converted prices can carry a different scale —
6732
- ALWAYS use the decimal_places sent with the amount, never a
6733
- hardcoded 2. Only if the field is genuinely absent on a
6734
- value-shaped object, fall back to the ISO digits for the
6735
- currency."
6736
- example: 2
5701
+ $ref: "#/components/schemas/Money"
6737
5702
  description: The customer refund as it stands now, on `quote_drift`. This is
6738
5703
  what the customer would get if they accepted the new quote.
6739
5704
  active_operation:
@@ -6744,43 +5709,13 @@ components:
6744
5709
  /v1/flight_refund_status.
6745
5710
  example: svc_01J7ZR5Q2KME8V4T
6746
5711
  shortfall:
6747
- type: object
6748
- properties:
6749
- value:
6750
- type: integer
6751
- description: "Integer amount in MINOR units, always paired with decimal_places —
6752
- divide by 10 ** decimal_places to display. Example: value 15977
6753
- with decimal_places 2 is 159.77 USD. Rendering this field
6754
- directly shows prices 100x too high for 2-decimal currencies."
6755
- example: 41250
6756
- amount:
6757
- type: number
6758
- description: Alternative to `value` on some endpoints (the two never appear
6759
- together); its scale depends on decimal_places. When this object
6760
- carries decimal_places, amount is an INTEGER in minor units —
6761
- divide by 10 ** decimal_places (e.g. select_ancillaries
6762
- total_with_ancillaries). When there is no decimal_places field,
6763
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
6764
- trip and checkout totals).
6765
- currency:
6766
- type: string
6767
- description: ISO 4217 currency code.
6768
- example: USD
6769
- decimal_places:
6770
- type: integer
6771
- description: "Scale of the integer value/amount: display = integer / 10 **
6772
- decimal_places. Always sent alongside minor-unit amounts.
6773
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
6774
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
6775
- can carry a different scale — ALWAYS use the decimal_places sent
6776
- with the amount, never a hardcoded 2. Only if the field is
6777
- genuinely absent on a value-shaped object, fall back to the ISO
6778
- digits for the currency."
6779
- example: 2
6780
- description: How much of the refund could not be reserved, on
6781
- `funds_unavailable`. The refusal is about money still moving on the
6782
- original payment, not about this booking, so this is the figure that
6783
- says how much has to clear before a commit can succeed.
5712
+ allOf:
5713
+ - $ref: "#/components/schemas/Money"
5714
+ - description: How much of the refund could not be reserved, on
5715
+ `funds_unavailable`. The refusal is about money still moving on
5716
+ the original payment, not about this booking, so this is the
5717
+ figure that says how much has to clear before a commit can
5718
+ succeed.
6784
5719
  blocking:
6785
5720
  type: array
6786
5721
  items:
@@ -6964,58 +5899,29 @@ components:
6964
5899
  money is still moving — that is the normal middle of a refund, not a
6965
5900
  discrepancy.
6966
5901
  money:
6967
- type: object
6968
- properties:
6969
- value:
6970
- type: integer
6971
- description: "Integer amount in MINOR units, always paired with decimal_places —
6972
- divide by 10 ** decimal_places to display. Example: value 15977
6973
- with decimal_places 2 is 159.77 USD. Rendering this field
6974
- directly shows prices 100x too high for 2-decimal currencies."
6975
- example: 41250
6976
- amount:
6977
- type: number
6978
- description: Alternative to `value` on some endpoints (the two never appear
6979
- together); its scale depends on decimal_places. When this object
6980
- carries decimal_places, amount is an INTEGER in minor units —
6981
- divide by 10 ** decimal_places (e.g. select_ancillaries
6982
- total_with_ancillaries). When there is no decimal_places field,
6983
- amount is a decimal in MAJOR units, safe to display as-is (e.g.
6984
- trip and checkout totals).
6985
- currency:
6986
- type: string
6987
- description: ISO 4217 currency code.
6988
- example: USD
6989
- decimal_places:
6990
- type: integer
6991
- description: "Scale of the integer value/amount: display = integer / 10 **
6992
- decimal_places. Always sent alongside minor-unit amounts.
6993
- Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP,
6994
- 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices
6995
- can carry a different scale — ALWAYS use the decimal_places sent
6996
- with the amount, never a hardcoded 2. Only if the field is
6997
- genuinely absent on a value-shaped object, fall back to the ISO
6998
- digits for the currency."
6999
- example: 2
7000
- direction:
7001
- type: string
7002
- description: Which way the money moves. `refund` on a cancellation.
7003
- example: refund
7004
- vehicle_state:
7005
- type: string
7006
- description: "How far the money itself has got, independently of the supplier:
7007
- `reserved` (earmarked, nothing sent), `refund_pending`
7008
- (submitted to the payment provider), `payout_initiated` and
7009
- `payout_settled` (paid out to a third party), `paid` (it has
7010
- reached the customer), `released` (earmark dropped, nothing
7011
- owed), `refund_review` (a person at Jinko has to release it).
7012
- Only `paid` and `payout_settled` mean the customer has the
7013
- money."
7014
- example: paid
7015
- stripe_reference:
7016
- type: string
7017
- description: The payment provider's own refund id, once one exists.
7018
- example: re_3UBIxK2eZvKYlo2C
5902
+ allOf:
5903
+ - $ref: "#/components/schemas/Money"
5904
+ - type: object
5905
+ properties:
5906
+ direction:
5907
+ type: string
5908
+ description: Which way the money moves. `refund` on a cancellation.
5909
+ example: refund
5910
+ vehicle_state:
5911
+ type: string
5912
+ description: "How far the money itself has got, independently of the supplier:
5913
+ `reserved` (earmarked, nothing sent), `refund_pending`
5914
+ (submitted to the payment provider), `payout_initiated` and
5915
+ `payout_settled` (paid out to a third party), `paid` (it has
5916
+ reached the customer), `released` (earmark dropped, nothing
5917
+ owed), `refund_review` (a person at Jinko has to release
5918
+ it). Only `paid` and `payout_settled` mean the customer has
5919
+ the money."
5920
+ example: paid
5921
+ stripe_reference:
5922
+ type: string
5923
+ description: The payment provider's own refund id, once one exists.
5924
+ example: re_3UBIxK2eZvKYlo2C
7019
5925
  description: The refund and where it has got to. Read `vehicle_state` before
7020
5926
  telling a customer they have been refunded.
7021
5927
  operation_kind:
@@ -7308,6 +6214,17 @@ paths:
7308
6214
  code: CONFLICT
7309
6215
  message: an exchange is already in progress for this booking
7310
6216
  doc_url: https://docs.gojinko.com/concepts/errors
6217
+ "410":
6218
+ description: The resource this request names no longer exists
6219
+ content:
6220
+ application/json:
6221
+ schema:
6222
+ $ref: "#/components/schemas/ErrorResponse"
6223
+ example:
6224
+ error:
6225
+ code: GONE
6226
+ message: The resource no longer exists.
6227
+ doc_url: https://docs.gojinko.com/concepts/errors
7311
6228
  "422":
7312
6229
  description: Validation error
7313
6230
  content:
@@ -7438,6 +6355,17 @@ paths:
7438
6355
  code: CONFLICT
7439
6356
  message: an exchange is already in progress for this booking
7440
6357
  doc_url: https://docs.gojinko.com/concepts/errors
6358
+ "410":
6359
+ description: The resource this request names no longer exists
6360
+ content:
6361
+ application/json:
6362
+ schema:
6363
+ $ref: "#/components/schemas/ErrorResponse"
6364
+ example:
6365
+ error:
6366
+ code: GONE
6367
+ message: The resource no longer exists.
6368
+ doc_url: https://docs.gojinko.com/concepts/errors
7441
6369
  "422":
7442
6370
  description: Validation error
7443
6371
  content:
@@ -7569,6 +6497,17 @@ paths:
7569
6497
  code: CONFLICT
7570
6498
  message: an exchange is already in progress for this booking
7571
6499
  doc_url: https://docs.gojinko.com/concepts/errors
6500
+ "410":
6501
+ description: The resource this request names no longer exists
6502
+ content:
6503
+ application/json:
6504
+ schema:
6505
+ $ref: "#/components/schemas/ErrorResponse"
6506
+ example:
6507
+ error:
6508
+ code: GONE
6509
+ message: The resource no longer exists.
6510
+ doc_url: https://docs.gojinko.com/concepts/errors
7572
6511
  "422":
7573
6512
  description: Validation error
7574
6513
  content:
@@ -7699,6 +6638,17 @@ paths:
7699
6638
  code: CONFLICT
7700
6639
  message: an exchange is already in progress for this booking
7701
6640
  doc_url: https://docs.gojinko.com/concepts/errors
6641
+ "410":
6642
+ description: The resource this request names no longer exists
6643
+ content:
6644
+ application/json:
6645
+ schema:
6646
+ $ref: "#/components/schemas/ErrorResponse"
6647
+ example:
6648
+ error:
6649
+ code: GONE
6650
+ message: The resource no longer exists.
6651
+ doc_url: https://docs.gojinko.com/concepts/errors
7702
6652
  "422":
7703
6653
  description: Validation error
7704
6654
  content:
@@ -7828,6 +6778,17 @@ paths:
7828
6778
  code: CONFLICT
7829
6779
  message: an exchange is already in progress for this booking
7830
6780
  doc_url: https://docs.gojinko.com/concepts/errors
6781
+ "410":
6782
+ description: The resource this request names no longer exists
6783
+ content:
6784
+ application/json:
6785
+ schema:
6786
+ $ref: "#/components/schemas/ErrorResponse"
6787
+ example:
6788
+ error:
6789
+ code: GONE
6790
+ message: The resource no longer exists.
6791
+ doc_url: https://docs.gojinko.com/concepts/errors
7831
6792
  "422":
7832
6793
  description: Validation error
7833
6794
  content:
@@ -7953,6 +6914,17 @@ paths:
7953
6914
  code: CONFLICT
7954
6915
  message: an exchange is already in progress for this booking
7955
6916
  doc_url: https://docs.gojinko.com/concepts/errors
6917
+ "410":
6918
+ description: The resource this request names no longer exists
6919
+ content:
6920
+ application/json:
6921
+ schema:
6922
+ $ref: "#/components/schemas/ErrorResponse"
6923
+ example:
6924
+ error:
6925
+ code: GONE
6926
+ message: The resource no longer exists.
6927
+ doc_url: https://docs.gojinko.com/concepts/errors
7956
6928
  "422":
7957
6929
  description: Validation error
7958
6930
  content:
@@ -8093,10 +7065,15 @@ paths:
8093
7065
  doc_url: https://docs.gojinko.com/concepts/errors
8094
7066
  status: expired
8095
7067
  "410":
8096
- description: The offer named in the request is no longer available.
8097
- **`OFFER_EXPIRED`** — The offer token is no longer in the platform’s
8098
- cache, so the item cannot be added. Search again and add the item
8099
- with a fresh token. Offers are short-lived by design.
7068
+ description: The offer named in the request is no longer available, or another
7069
+ resource the request names is gone. Tell the two apart by
7070
+ `error.code`. **`OFFER_EXPIRED`** — The offer token is no longer in
7071
+ the platform’s cache, so the item cannot be added. Search again and
7072
+ add the item with a fresh token. Offers are short-lived by design.
7073
+ **`GONE`** — The resource this request names existed and no longer
7074
+ does. Re-acquire it — search again, or check out again to re-quote —
7075
+ then retry with the new identifier. Repeating this request with the
7076
+ same one cannot succeed.
8100
7077
  content:
8101
7078
  application/json:
8102
7079
  schema:
@@ -8228,6 +7205,17 @@ paths:
8228
7205
  code: CONFLICT
8229
7206
  message: an exchange is already in progress for this booking
8230
7207
  doc_url: https://docs.gojinko.com/concepts/errors
7208
+ "410":
7209
+ description: The resource this request names no longer exists
7210
+ content:
7211
+ application/json:
7212
+ schema:
7213
+ $ref: "#/components/schemas/ErrorResponse"
7214
+ example:
7215
+ error:
7216
+ code: GONE
7217
+ message: The resource no longer exists.
7218
+ doc_url: https://docs.gojinko.com/concepts/errors
8231
7219
  "422":
8232
7220
  description: Validation error
8233
7221
  content:
@@ -8365,6 +7353,17 @@ paths:
8365
7353
  code: CONFLICT
8366
7354
  message: an exchange is already in progress for this booking
8367
7355
  doc_url: https://docs.gojinko.com/concepts/errors
7356
+ "410":
7357
+ description: The resource this request names no longer exists
7358
+ content:
7359
+ application/json:
7360
+ schema:
7361
+ $ref: "#/components/schemas/ErrorResponse"
7362
+ example:
7363
+ error:
7364
+ code: GONE
7365
+ message: The resource no longer exists.
7366
+ doc_url: https://docs.gojinko.com/concepts/errors
8368
7367
  "422":
8369
7368
  description: Validation error
8370
7369
  content:
@@ -8490,6 +7489,17 @@ paths:
8490
7489
  code: CONFLICT
8491
7490
  message: an exchange is already in progress for this booking
8492
7491
  doc_url: https://docs.gojinko.com/concepts/errors
7492
+ "410":
7493
+ description: The resource this request names no longer exists
7494
+ content:
7495
+ application/json:
7496
+ schema:
7497
+ $ref: "#/components/schemas/ErrorResponse"
7498
+ example:
7499
+ error:
7500
+ code: GONE
7501
+ message: The resource no longer exists.
7502
+ doc_url: https://docs.gojinko.com/concepts/errors
8493
7503
  "422":
8494
7504
  description: Validation error
8495
7505
  content:
@@ -8633,6 +7643,17 @@ paths:
8633
7643
  code: CONFLICT
8634
7644
  message: This trip is already being checked out; no second checkout was started.
8635
7645
  doc_url: https://docs.gojinko.com/concepts/errors
7646
+ "410":
7647
+ description: The resource this request names no longer exists
7648
+ content:
7649
+ application/json:
7650
+ schema:
7651
+ $ref: "#/components/schemas/ErrorResponse"
7652
+ example:
7653
+ error:
7654
+ code: GONE
7655
+ message: The resource no longer exists.
7656
+ doc_url: https://docs.gojinko.com/concepts/errors
8636
7657
  "422":
8637
7658
  description: The trip is not complete enough to check out. **`BAD_REQUEST`** —
8638
7659
  The request was malformed or failed validation. Fix the request as
@@ -8779,6 +7800,17 @@ paths:
8779
7800
  - $ref: "#/components/schemas/TripStateResponse"
8780
7801
  - $ref: "#/components/schemas/ErrorResponse"
8781
7802
  example: *a14
7803
+ "410":
7804
+ description: The resource this request names no longer exists
7805
+ content:
7806
+ application/json:
7807
+ schema:
7808
+ $ref: "#/components/schemas/ErrorResponse"
7809
+ example:
7810
+ error:
7811
+ code: GONE
7812
+ message: The resource no longer exists.
7813
+ doc_url: https://docs.gojinko.com/concepts/errors
8782
7814
  "422":
8783
7815
  description: The trip is not complete enough to check out. **`BAD_REQUEST`** —
8784
7816
  The request was malformed or failed validation. Fix the request as
@@ -8908,22 +7940,29 @@ paths:
8908
7940
  doc_url: https://docs.gojinko.com/concepts/errors
8909
7941
  "410":
8910
7942
  description: The locked quote has expired, so nothing was redeemed and no
8911
- payment object was created. **`QUOTE_EXPIRED`** — The locked quote
8912
- behind this checkout passed its `expires_at`, so payment was refused
8913
- before any payment object was created. Call `POST /v1/checkout`
8914
- again on the same trip — it re-quotes — then mint a new Shared
8915
- Payment Token against the new `agent_spt_params` and submit that.
8916
- Nothing was charged.
7943
+ payment object was created — or the resource the request names is
7944
+ gone. Tell the two apart by `error.code`. **`QUOTE_EXPIRED`** — The
7945
+ locked quote behind this checkout passed its `expires_at`, so
7946
+ payment was refused before any payment object was created. Call
7947
+ `POST /v1/checkout` again on the same trip — it re-quotes — then
7948
+ mint a new Shared Payment Token against the new `agent_spt_params`
7949
+ and submit that. Nothing was charged. **`GONE`** — The resource this
7950
+ request names existed and no longer does. Re-acquire it — search
7951
+ again, or check out again to re-quote — then retry with the new
7952
+ identifier. Repeating this request with the same one cannot succeed.
8917
7953
  content:
8918
7954
  application/json:
8919
7955
  schema:
8920
- $ref: "#/components/schemas/QuoteExpiredResponse"
7956
+ anyOf:
7957
+ - $ref: "#/components/schemas/QuoteExpiredResponse"
7958
+ - $ref: "#/components/schemas/ErrorResponse"
8921
7959
  example:
8922
7960
  error:
8923
7961
  code: QUOTE_EXPIRED
8924
7962
  message: The quote behind this checkout expired at 2026-09-04T12:39:56Z.
8925
7963
  doc_url: https://docs.gojinko.com/concepts/errors
8926
7964
  expires_at: "2026-09-04T12:39:56Z"
7965
+ quoted_cart_id: 2097152
8927
7966
  "422":
8928
7967
  description: Validation error
8929
7968
  content:
@@ -9049,6 +8088,17 @@ paths:
9049
8088
  code: CONFLICT
9050
8089
  message: an exchange is already in progress for this booking
9051
8090
  doc_url: https://docs.gojinko.com/concepts/errors
8091
+ "410":
8092
+ description: The resource this request names no longer exists
8093
+ content:
8094
+ application/json:
8095
+ schema:
8096
+ $ref: "#/components/schemas/ErrorResponse"
8097
+ example:
8098
+ error:
8099
+ code: GONE
8100
+ message: The resource no longer exists.
8101
+ doc_url: https://docs.gojinko.com/concepts/errors
9052
8102
  "422":
9053
8103
  description: Validation error
9054
8104
  content:
@@ -9186,6 +8236,17 @@ paths:
9186
8236
  code: CONFLICT
9187
8237
  message: an exchange is already in progress for this booking
9188
8238
  doc_url: https://docs.gojinko.com/concepts/errors
8239
+ "410":
8240
+ description: The resource this request names no longer exists
8241
+ content:
8242
+ application/json:
8243
+ schema:
8244
+ $ref: "#/components/schemas/ErrorResponse"
8245
+ example:
8246
+ error:
8247
+ code: GONE
8248
+ message: The resource no longer exists.
8249
+ doc_url: https://docs.gojinko.com/concepts/errors
9189
8250
  "422":
9190
8251
  description: Validation error
9191
8252
  content:
@@ -9316,6 +8377,17 @@ paths:
9316
8377
  code: CONFLICT
9317
8378
  message: an exchange is already in progress for this booking
9318
8379
  doc_url: https://docs.gojinko.com/concepts/errors
8380
+ "410":
8381
+ description: The resource this request names no longer exists
8382
+ content:
8383
+ application/json:
8384
+ schema:
8385
+ $ref: "#/components/schemas/ErrorResponse"
8386
+ example:
8387
+ error:
8388
+ code: GONE
8389
+ message: The resource no longer exists.
8390
+ doc_url: https://docs.gojinko.com/concepts/errors
9319
8391
  "422":
9320
8392
  description: Validation error
9321
8393
  content:
@@ -9451,6 +8523,17 @@ paths:
9451
8523
  code: CONFLICT
9452
8524
  message: an exchange is already in progress for this booking
9453
8525
  doc_url: https://docs.gojinko.com/concepts/errors
8526
+ "410":
8527
+ description: The resource this request names no longer exists
8528
+ content:
8529
+ application/json:
8530
+ schema:
8531
+ $ref: "#/components/schemas/ErrorResponse"
8532
+ example:
8533
+ error:
8534
+ code: GONE
8535
+ message: The resource no longer exists.
8536
+ doc_url: https://docs.gojinko.com/concepts/errors
9454
8537
  "422":
9455
8538
  description: Validation error
9456
8539
  content:
@@ -9593,6 +8676,17 @@ paths:
9593
8676
  code: CONFLICT
9594
8677
  message: an exchange is already in progress for this booking
9595
8678
  doc_url: https://docs.gojinko.com/concepts/errors
8679
+ "410":
8680
+ description: The resource this request names no longer exists
8681
+ content:
8682
+ application/json:
8683
+ schema:
8684
+ $ref: "#/components/schemas/ErrorResponse"
8685
+ example:
8686
+ error:
8687
+ code: GONE
8688
+ message: The resource no longer exists.
8689
+ doc_url: https://docs.gojinko.com/concepts/errors
9596
8690
  "422":
9597
8691
  description: Validation error
9598
8692
  content:
@@ -9735,6 +8829,17 @@ paths:
9735
8829
  code: CONFLICT
9736
8830
  message: an exchange is already in progress for this booking
9737
8831
  doc_url: https://docs.gojinko.com/concepts/errors
8832
+ "410":
8833
+ description: The resource this request names no longer exists
8834
+ content:
8835
+ application/json:
8836
+ schema:
8837
+ $ref: "#/components/schemas/ErrorResponse"
8838
+ example:
8839
+ error:
8840
+ code: GONE
8841
+ message: The resource no longer exists.
8842
+ doc_url: https://docs.gojinko.com/concepts/errors
9738
8843
  "422":
9739
8844
  description: Validation error
9740
8845
  content:
@@ -9876,6 +8981,17 @@ paths:
9876
8981
  code: CONFLICT
9877
8982
  message: an exchange is already in progress for this booking
9878
8983
  doc_url: https://docs.gojinko.com/concepts/errors
8984
+ "410":
8985
+ description: The resource this request names no longer exists
8986
+ content:
8987
+ application/json:
8988
+ schema:
8989
+ $ref: "#/components/schemas/ErrorResponse"
8990
+ example:
8991
+ error:
8992
+ code: GONE
8993
+ message: The resource no longer exists.
8994
+ doc_url: https://docs.gojinko.com/concepts/errors
9879
8995
  "422":
9880
8996
  description: Validation error
9881
8997
  content:
@@ -10025,6 +9141,17 @@ paths:
10025
9141
  code: CONFLICT
10026
9142
  message: an exchange is already in progress for this booking
10027
9143
  doc_url: https://docs.gojinko.com/concepts/errors
9144
+ "410":
9145
+ description: The resource this request names no longer exists
9146
+ content:
9147
+ application/json:
9148
+ schema:
9149
+ $ref: "#/components/schemas/ErrorResponse"
9150
+ example:
9151
+ error:
9152
+ code: GONE
9153
+ message: The resource no longer exists.
9154
+ doc_url: https://docs.gojinko.com/concepts/errors
10028
9155
  "422":
10029
9156
  description: Validation error
10030
9157
  content:
@@ -10173,6 +9300,17 @@ paths:
10173
9300
  code: CONFLICT
10174
9301
  message: the exchange preview is out of date — run a new preview and choose
10175
9302
  again
9303
+ "410":
9304
+ description: The resource this request names no longer exists
9305
+ content:
9306
+ application/json:
9307
+ schema:
9308
+ $ref: "#/components/schemas/ErrorResponse"
9309
+ example:
9310
+ error:
9311
+ code: GONE
9312
+ message: The resource no longer exists.
9313
+ doc_url: https://docs.gojinko.com/concepts/errors
10176
9314
  "422":
10177
9315
  description: Validation error
10178
9316
  content:
@@ -10316,6 +9454,17 @@ paths:
10316
9454
  code: CONFLICT
10317
9455
  message: an exchange is already in progress for this booking
10318
9456
  doc_url: https://docs.gojinko.com/concepts/errors
9457
+ "410":
9458
+ description: The resource this request names no longer exists
9459
+ content:
9460
+ application/json:
9461
+ schema:
9462
+ $ref: "#/components/schemas/ErrorResponse"
9463
+ example:
9464
+ error:
9465
+ code: GONE
9466
+ message: The resource no longer exists.
9467
+ doc_url: https://docs.gojinko.com/concepts/errors
10319
9468
  "422":
10320
9469
  description: Validation error
10321
9470
  content:
@@ -10571,6 +9720,17 @@ paths:
10571
9720
  code: CONFLICT
10572
9721
  message: an exchange is already in progress for this booking
10573
9722
  doc_url: https://docs.gojinko.com/concepts/errors
9723
+ "410":
9724
+ description: The resource this request names no longer exists
9725
+ content:
9726
+ application/json:
9727
+ schema:
9728
+ $ref: "#/components/schemas/ErrorResponse"
9729
+ example:
9730
+ error:
9731
+ code: GONE
9732
+ message: The resource no longer exists.
9733
+ doc_url: https://docs.gojinko.com/concepts/errors
10574
9734
  "422":
10575
9735
  description: Validation error
10576
9736
  content:
@@ -10818,6 +9978,17 @@ paths:
10818
9978
  code: CONFLICT
10819
9979
  message: an exchange is already in progress for this booking
10820
9980
  doc_url: https://docs.gojinko.com/concepts/errors
9981
+ "410":
9982
+ description: The resource this request names no longer exists
9983
+ content:
9984
+ application/json:
9985
+ schema:
9986
+ $ref: "#/components/schemas/ErrorResponse"
9987
+ example:
9988
+ error:
9989
+ code: GONE
9990
+ message: The resource no longer exists.
9991
+ doc_url: https://docs.gojinko.com/concepts/errors
10821
9992
  "422":
10822
9993
  description: Validation error
10823
9994
  content:
@@ -11052,6 +10223,17 @@ paths:
11052
10223
  code: CONFLICT
11053
10224
  message: an exchange is already in progress for this booking
11054
10225
  doc_url: https://docs.gojinko.com/concepts/errors
10226
+ "410":
10227
+ description: The resource this request names no longer exists
10228
+ content:
10229
+ application/json:
10230
+ schema:
10231
+ $ref: "#/components/schemas/ErrorResponse"
10232
+ example:
10233
+ error:
10234
+ code: GONE
10235
+ message: The resource no longer exists.
10236
+ doc_url: https://docs.gojinko.com/concepts/errors
11055
10237
  "422":
11056
10238
  description: Validation error
11057
10239
  content:
@@ -11288,6 +10470,17 @@ paths:
11288
10470
  code: CONFLICT
11289
10471
  message: an exchange is already in progress for this booking
11290
10472
  doc_url: https://docs.gojinko.com/concepts/errors
10473
+ "410":
10474
+ description: The resource this request names no longer exists
10475
+ content:
10476
+ application/json:
10477
+ schema:
10478
+ $ref: "#/components/schemas/ErrorResponse"
10479
+ example:
10480
+ error:
10481
+ code: GONE
10482
+ message: The resource no longer exists.
10483
+ doc_url: https://docs.gojinko.com/concepts/errors
11291
10484
  "422":
11292
10485
  description: Validation error
11293
10486
  content:
@@ -11540,6 +10733,17 @@ paths:
11540
10733
  code: CONFLICT
11541
10734
  message: an exchange is already in progress for this booking
11542
10735
  doc_url: https://docs.gojinko.com/concepts/errors
10736
+ "410":
10737
+ description: The resource this request names no longer exists
10738
+ content:
10739
+ application/json:
10740
+ schema:
10741
+ $ref: "#/components/schemas/ErrorResponse"
10742
+ example:
10743
+ error:
10744
+ code: GONE
10745
+ message: The resource no longer exists.
10746
+ doc_url: https://docs.gojinko.com/concepts/errors
11543
10747
  "422":
11544
10748
  description: Validation error
11545
10749
  content:
@@ -11792,6 +10996,17 @@ paths:
11792
10996
  code: CONFLICT
11793
10997
  message: an exchange is already in progress for this booking
11794
10998
  doc_url: https://docs.gojinko.com/concepts/errors
10999
+ "410":
11000
+ description: The resource this request names no longer exists
11001
+ content:
11002
+ application/json:
11003
+ schema:
11004
+ $ref: "#/components/schemas/ErrorResponse"
11005
+ example:
11006
+ error:
11007
+ code: GONE
11008
+ message: The resource no longer exists.
11009
+ doc_url: https://docs.gojinko.com/concepts/errors
11795
11010
  "422":
11796
11011
  description: Validation error
11797
11012
  content:
@@ -12031,6 +11246,17 @@ paths:
12031
11246
  code: CONFLICT
12032
11247
  message: an exchange is already in progress for this booking
12033
11248
  doc_url: https://docs.gojinko.com/concepts/errors
11249
+ "410":
11250
+ description: The resource this request names no longer exists
11251
+ content:
11252
+ application/json:
11253
+ schema:
11254
+ $ref: "#/components/schemas/ErrorResponse"
11255
+ example:
11256
+ error:
11257
+ code: GONE
11258
+ message: The resource no longer exists.
11259
+ doc_url: https://docs.gojinko.com/concepts/errors
12034
11260
  "422":
12035
11261
  description: Validation error
12036
11262
  content:
@@ -12158,6 +11384,17 @@ paths:
12158
11384
  code: CONFLICT
12159
11385
  message: an exchange is already in progress for this booking
12160
11386
  doc_url: https://docs.gojinko.com/concepts/errors
11387
+ "410":
11388
+ description: The resource this request names no longer exists
11389
+ content:
11390
+ application/json:
11391
+ schema:
11392
+ $ref: "#/components/schemas/ErrorResponse"
11393
+ example:
11394
+ error:
11395
+ code: GONE
11396
+ message: The resource no longer exists.
11397
+ doc_url: https://docs.gojinko.com/concepts/errors
12161
11398
  "422":
12162
11399
  description: Validation error
12163
11400
  content:
@@ -12283,6 +11520,17 @@ paths:
12283
11520
  code: CONFLICT
12284
11521
  message: an exchange is already in progress for this booking
12285
11522
  doc_url: https://docs.gojinko.com/concepts/errors
11523
+ "410":
11524
+ description: The resource this request names no longer exists
11525
+ content:
11526
+ application/json:
11527
+ schema:
11528
+ $ref: "#/components/schemas/ErrorResponse"
11529
+ example:
11530
+ error:
11531
+ code: GONE
11532
+ message: The resource no longer exists.
11533
+ doc_url: https://docs.gojinko.com/concepts/errors
12286
11534
  "422":
12287
11535
  description: Validation error
12288
11536
  content:
@@ -12408,6 +11656,17 @@ paths:
12408
11656
  code: CONFLICT
12409
11657
  message: an exchange is already in progress for this booking
12410
11658
  doc_url: https://docs.gojinko.com/concepts/errors
11659
+ "410":
11660
+ description: The resource this request names no longer exists
11661
+ content:
11662
+ application/json:
11663
+ schema:
11664
+ $ref: "#/components/schemas/ErrorResponse"
11665
+ example:
11666
+ error:
11667
+ code: GONE
11668
+ message: The resource no longer exists.
11669
+ doc_url: https://docs.gojinko.com/concepts/errors
12411
11670
  "422":
12412
11671
  description: Validation error
12413
11672
  content:
@@ -12544,6 +11803,17 @@ paths:
12544
11803
  code: CONFLICT
12545
11804
  message: an exchange is already in progress for this booking
12546
11805
  doc_url: https://docs.gojinko.com/concepts/errors
11806
+ "410":
11807
+ description: The resource this request names no longer exists
11808
+ content:
11809
+ application/json:
11810
+ schema:
11811
+ $ref: "#/components/schemas/ErrorResponse"
11812
+ example:
11813
+ error:
11814
+ code: GONE
11815
+ message: The resource no longer exists.
11816
+ doc_url: https://docs.gojinko.com/concepts/errors
12547
11817
  "422":
12548
11818
  description: Validation error
12549
11819
  content:
@@ -12669,6 +11939,17 @@ paths:
12669
11939
  code: CONFLICT
12670
11940
  message: an exchange is already in progress for this booking
12671
11941
  doc_url: https://docs.gojinko.com/concepts/errors
11942
+ "410":
11943
+ description: The resource this request names no longer exists
11944
+ content:
11945
+ application/json:
11946
+ schema:
11947
+ $ref: "#/components/schemas/ErrorResponse"
11948
+ example:
11949
+ error:
11950
+ code: GONE
11951
+ message: The resource no longer exists.
11952
+ doc_url: https://docs.gojinko.com/concepts/errors
12672
11953
  "422":
12673
11954
  description: Validation error
12674
11955
  content:
@@ -12794,6 +12075,17 @@ paths:
12794
12075
  code: CONFLICT
12795
12076
  message: an exchange is already in progress for this booking
12796
12077
  doc_url: https://docs.gojinko.com/concepts/errors
12078
+ "410":
12079
+ description: The resource this request names no longer exists
12080
+ content:
12081
+ application/json:
12082
+ schema:
12083
+ $ref: "#/components/schemas/ErrorResponse"
12084
+ example:
12085
+ error:
12086
+ code: GONE
12087
+ message: The resource no longer exists.
12088
+ doc_url: https://docs.gojinko.com/concepts/errors
12797
12089
  "422":
12798
12090
  description: Validation error
12799
12091
  content:
@@ -12919,6 +12211,17 @@ paths:
12919
12211
  code: CONFLICT
12920
12212
  message: an exchange is already in progress for this booking
12921
12213
  doc_url: https://docs.gojinko.com/concepts/errors
12214
+ "410":
12215
+ description: The resource this request names no longer exists
12216
+ content:
12217
+ application/json:
12218
+ schema:
12219
+ $ref: "#/components/schemas/ErrorResponse"
12220
+ example:
12221
+ error:
12222
+ code: GONE
12223
+ message: The resource no longer exists.
12224
+ doc_url: https://docs.gojinko.com/concepts/errors
12922
12225
  "422":
12923
12226
  description: Validation error
12924
12227
  content:
@@ -13044,6 +12347,17 @@ paths:
13044
12347
  code: CONFLICT
13045
12348
  message: an exchange is already in progress for this booking
13046
12349
  doc_url: https://docs.gojinko.com/concepts/errors
12350
+ "410":
12351
+ description: The resource this request names no longer exists
12352
+ content:
12353
+ application/json:
12354
+ schema:
12355
+ $ref: "#/components/schemas/ErrorResponse"
12356
+ example:
12357
+ error:
12358
+ code: GONE
12359
+ message: The resource no longer exists.
12360
+ doc_url: https://docs.gojinko.com/concepts/errors
13047
12361
  "422":
13048
12362
  description: Validation error
13049
12363
  content:
@@ -13191,6 +12505,17 @@ paths:
13191
12505
  code: CONFLICT
13192
12506
  message: an exchange is already in progress for this booking
13193
12507
  doc_url: https://docs.gojinko.com/concepts/errors
12508
+ "410":
12509
+ description: The resource this request names no longer exists
12510
+ content:
12511
+ application/json:
12512
+ schema:
12513
+ $ref: "#/components/schemas/ErrorResponse"
12514
+ example:
12515
+ error:
12516
+ code: GONE
12517
+ message: The resource no longer exists.
12518
+ doc_url: https://docs.gojinko.com/concepts/errors
13194
12519
  "422":
13195
12520
  description: Validation error
13196
12521
  content:
@@ -13338,6 +12663,17 @@ paths:
13338
12663
  code: CONFLICT
13339
12664
  message: an exchange is already in progress for this booking
13340
12665
  doc_url: https://docs.gojinko.com/concepts/errors
12666
+ "410":
12667
+ description: The resource this request names no longer exists
12668
+ content:
12669
+ application/json:
12670
+ schema:
12671
+ $ref: "#/components/schemas/ErrorResponse"
12672
+ example:
12673
+ error:
12674
+ code: GONE
12675
+ message: The resource no longer exists.
12676
+ doc_url: https://docs.gojinko.com/concepts/errors
13341
12677
  "422":
13342
12678
  description: Validation error
13343
12679
  content:
@@ -13502,6 +12838,17 @@ paths:
13502
12838
  value: 20500
13503
12839
  currency: USD
13504
12840
  decimal_places: 2
12841
+ "410":
12842
+ description: The resource this request names no longer exists
12843
+ content:
12844
+ application/json:
12845
+ schema:
12846
+ $ref: "#/components/schemas/ErrorResponse"
12847
+ example:
12848
+ error:
12849
+ code: GONE
12850
+ message: The resource no longer exists.
12851
+ doc_url: https://docs.gojinko.com/concepts/errors
13505
12852
  "422":
13506
12853
  description: Validation error
13507
12854
  content:
@@ -13646,6 +12993,17 @@ paths:
13646
12993
  code: CONFLICT
13647
12994
  message: an exchange is already in progress for this booking
13648
12995
  doc_url: https://docs.gojinko.com/concepts/errors
12996
+ "410":
12997
+ description: The resource this request names no longer exists
12998
+ content:
12999
+ application/json:
13000
+ schema:
13001
+ $ref: "#/components/schemas/ErrorResponse"
13002
+ example:
13003
+ error:
13004
+ code: GONE
13005
+ message: The resource no longer exists.
13006
+ doc_url: https://docs.gojinko.com/concepts/errors
13649
13007
  "422":
13650
13008
  description: Validation error
13651
13009
  content:
@@ -13802,6 +13160,17 @@ paths:
13802
13160
  code: CONFLICT
13803
13161
  message: an exchange is already in progress for this booking
13804
13162
  doc_url: https://docs.gojinko.com/concepts/errors
13163
+ "410":
13164
+ description: The resource this request names no longer exists
13165
+ content:
13166
+ application/json:
13167
+ schema:
13168
+ $ref: "#/components/schemas/ErrorResponse"
13169
+ example:
13170
+ error:
13171
+ code: GONE
13172
+ message: The resource no longer exists.
13173
+ doc_url: https://docs.gojinko.com/concepts/errors
13805
13174
  "422":
13806
13175
  description: Validation error
13807
13176
  content:
@@ -13972,6 +13341,17 @@ paths:
13972
13341
  MANUAL_REQUIRED`; commit again with `manual_ok: true` to
13973
13342
  hand it to a Jinko agent, then poll the operation."
13974
13343
  code: manual_required
13344
+ "410":
13345
+ description: The resource this request names no longer exists
13346
+ content:
13347
+ application/json:
13348
+ schema:
13349
+ $ref: "#/components/schemas/ErrorResponse"
13350
+ example:
13351
+ error:
13352
+ code: GONE
13353
+ message: The resource no longer exists.
13354
+ doc_url: https://docs.gojinko.com/concepts/errors
13975
13355
  "422":
13976
13356
  description: Validation error
13977
13357
  content:
@@ -14120,6 +13500,17 @@ paths:
14120
13500
  code: CONFLICT
14121
13501
  message: an exchange is already in progress for this booking
14122
13502
  doc_url: https://docs.gojinko.com/concepts/errors
13503
+ "410":
13504
+ description: The resource this request names no longer exists
13505
+ content:
13506
+ application/json:
13507
+ schema:
13508
+ $ref: "#/components/schemas/ErrorResponse"
13509
+ example:
13510
+ error:
13511
+ code: GONE
13512
+ message: The resource no longer exists.
13513
+ doc_url: https://docs.gojinko.com/concepts/errors
14123
13514
  "422":
14124
13515
  description: Validation error
14125
13516
  content:
@@ -14249,6 +13640,17 @@ paths:
14249
13640
  code: CONFLICT
14250
13641
  message: an exchange is already in progress for this booking
14251
13642
  doc_url: https://docs.gojinko.com/concepts/errors
13643
+ "410":
13644
+ description: The resource this request names no longer exists
13645
+ content:
13646
+ application/json:
13647
+ schema:
13648
+ $ref: "#/components/schemas/ErrorResponse"
13649
+ example:
13650
+ error:
13651
+ code: GONE
13652
+ message: The resource no longer exists.
13653
+ doc_url: https://docs.gojinko.com/concepts/errors
14252
13654
  "422":
14253
13655
  description: Validation error
14254
13656
  content:
@@ -14368,6 +13770,17 @@ paths:
14368
13770
  code: CONFLICT
14369
13771
  message: an exchange is already in progress for this booking
14370
13772
  doc_url: https://docs.gojinko.com/concepts/errors
13773
+ "410":
13774
+ description: The resource this request names no longer exists
13775
+ content:
13776
+ application/json:
13777
+ schema:
13778
+ $ref: "#/components/schemas/ErrorResponse"
13779
+ example:
13780
+ error:
13781
+ code: GONE
13782
+ message: The resource no longer exists.
13783
+ doc_url: https://docs.gojinko.com/concepts/errors
14371
13784
  "422":
14372
13785
  description: Validation error
14373
13786
  content:
@@ -14495,6 +13908,17 @@ paths:
14495
13908
  code: CONFLICT
14496
13909
  message: an exchange is already in progress for this booking
14497
13910
  doc_url: https://docs.gojinko.com/concepts/errors
13911
+ "410":
13912
+ description: The resource this request names no longer exists
13913
+ content:
13914
+ application/json:
13915
+ schema:
13916
+ $ref: "#/components/schemas/ErrorResponse"
13917
+ example:
13918
+ error:
13919
+ code: GONE
13920
+ message: The resource no longer exists.
13921
+ doc_url: https://docs.gojinko.com/concepts/errors
14498
13922
  "422":
14499
13923
  description: Validation error
14500
13924
  content:
@@ -14621,6 +14045,17 @@ paths:
14621
14045
  code: CONFLICT
14622
14046
  message: an exchange is already in progress for this booking
14623
14047
  doc_url: https://docs.gojinko.com/concepts/errors
14048
+ "410":
14049
+ description: The resource this request names no longer exists
14050
+ content:
14051
+ application/json:
14052
+ schema:
14053
+ $ref: "#/components/schemas/ErrorResponse"
14054
+ example:
14055
+ error:
14056
+ code: GONE
14057
+ message: The resource no longer exists.
14058
+ doc_url: https://docs.gojinko.com/concepts/errors
14624
14059
  "422":
14625
14060
  description: Validation error
14626
14061
  content:
@@ -14750,6 +14185,17 @@ paths:
14750
14185
  code: CONFLICT
14751
14186
  message: an exchange is already in progress for this booking
14752
14187
  doc_url: https://docs.gojinko.com/concepts/errors
14188
+ "410":
14189
+ description: The resource this request names no longer exists
14190
+ content:
14191
+ application/json:
14192
+ schema:
14193
+ $ref: "#/components/schemas/ErrorResponse"
14194
+ example:
14195
+ error:
14196
+ code: GONE
14197
+ message: The resource no longer exists.
14198
+ doc_url: https://docs.gojinko.com/concepts/errors
14753
14199
  "422":
14754
14200
  description: Validation error
14755
14201
  content: