---
title: "Retrieve booked item IDs and per-item servicing eligibility using the Jinko booking reference"
method: POST
path: "/v1/get_booking"
tags: ["Post-booking"]
---

# Retrieve booked item IDs and per-item servicing eligibility using the Jinko booking reference

`POST /v1/get_booking`

## Request

- Base URL: `https://api.gojinko.com`
- URL: `https://api.gojinko.com/v1/get_booking`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Call get_booking first. Use booking_ref and the selected booked_item_id for every servicing action. last_name is required for guest lookup; an owning credential may omit it. The deprecated `provider`, `order_id`, `provider_reference` and `provider_booking_id` are accepted until 2027-04-30 where the request declares them; a request that sends one is answered with `Deprecation` and `Sunset` headers. A 409 item_selection_required returns safe items to choose from.

## Request body

- GetBookingRequest
  - `booking_ref` string, required: Jinko booking reference. Call get_booking first, then select its booked_item_id for servicing.
  - `last_name` string: Required for guest lookup. A credential that owns the booking may omit it; ownership is checked by the platform.
  - `check_eligibility` boolean: Whether to check now, with the airline or supplier, if each item can be voided, refunded or exchanged (`items[].servicing`). For a flight this asks the airline and can add several seconds. Send `false` to read the booking and its stored `fare_conditions` only; the eligibility fields are then left out of `items[].servicing`. Defaults to `true`; after a 180-day notice the default becomes `false`, so send `true` explicitly before cancelling or changing.
  - `intent` IntentInput
    - `user_intent` string, nullable: The user's natural-language intent: the Alpic PII-stripped paraphrase when available, else a best-effort fallback to the client-provided NL query.

## Response `200`

Retrieve booked item IDs and per-item servicing eligibility using the Jinko booking reference

- GetBookingResponse
  - `booking` Booking: The booked trip. Minimally described — the platform sends more (items, per-item confirmations, provider state) and all of it reaches you. The two `*_support_level` fields are a SNAPSHOT: a fare’s void window closes with time, so before acting on a refund or exchange read the level from a live POST /v1/refund_check or POST /v1/exchange_shop rather than from here. The flight itinerary (`items[].confirmation.details.flight.legs`) is the one booked and ticketed. It is not refreshed from the airline, and no webhook reports an airline's schedule change or cancellation.
    - `booking_ref` string: The Jinko booking reference of this booking. Looked up with the reference of one of its exchanges, it is still the booking’s own reference. Hand it to cancel, refund and exchange as `booking_ref`.
    - `booking_reference` string: Deprecated: use `booking_ref` instead. The reference the booking was looked up with, which can be an exchange’s own reference.
    - `booking_state` 'awaiting_payment' | 'processing' | 'completed' | 'partial' | 'failed' | 'cancelled' | 'needs_review': The booking’s progress once payment has started; absent before. `awaiting_payment`: waiting for the payment to be confirmed. `processing`: booking with the suppliers. Then one outcome: `completed` (every item booked), `partial` (some items booked), `failed` (nothing booked) or `cancelled`. `needs_review`: held for a person at Jinko to resolve; not final. `fulfillment.status` keeps the detailed status behind it.
    - `status` string: The booking's state in Jinko's own booking and servicing flow. In progress: `pending`, `awaiting_payment`, `preparing`, `prepared`, `processing`, `confirming`. Final: `completed` (booked; for a flight, ticketed), `partial` (some items booked, others failed), `failed`, `cancelled` (nothing is booked any more: the checkout was never paid, or every item was cancelled), `expired_quote` (a quoted price, at checkout or for an exchange, expired before it was confirmed). Needing attention: `exchange_partial_failure`, `needs_review`. Treat the list as open: new values may be added. It changes only through Jinko's steps (payment, booking, ticketing, or a cancellation or exchange you request), never because an airline changed or cancelled a flight.
    - `failure_reason` string, nullable: Why the booking failed, when it failed after payment and the cause is known: `offer_unavailable`, `price_changed`, `booking_not_created` (the supplier holds no booking; nothing was booked and no money was taken), `booking_cancelled_at_provider`, `ticketing_refused`. Null otherwise. For `offer_unavailable`, the supplier no longer sells the priced offer. Nothing was booked and the card authorisation was released. Search again and book a new offer. The `booking.failed` webhook carries the same reason with a sentence to show the traveller (`failure_message`).
    - `type` string: What was booked — "flight" or "hotel".
    - `last_name` string
    - `total_paid` object: What was captured for this booking, gross: refunds are NOT subtracted (the same figure as `paid` in `servicing_summary`; `net_paid` there is the figure after refunds). Absent when the captured amount is unknown, and when the booking was charged in more than one currency — read `servicing_summary`, one row per currency, then.
      - `value` integer, required: Integer amount in MINOR units at the ISO 4217 digits of `currency`: divide by 10 ** decimal_places to get the amount. Signed where the field says so (a price change delta).
      - `currency` string, required: ISO 4217 currency code.
      - `decimal_places` integer, required: The ISO 4217 digits of `currency` (2 for USD/EUR, 0 for JPY/KRW, 3 for BHD/KWD), and the scale of `value`.
      - `display` string, required: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount at `decimal_places`, e.g. "USD 412.50". Show this; compute with `value`.
    - `refund_status` object
      - `state` string: `in_progress`, `succeeded` or `failed`.
      - `initiated_at` string
      - `completed_at` string
      - `refunded_amount` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
        - `amount` number: Deprecated: use `value` instead (the same integer) where this object carries decimal_places. Where it does not, the figure is in MAJOR units and the field holding this object is itself deprecated: read its `*_money` sibling. The two-scale rule applies only to deprecated fields. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
        - `value` integer: Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
        - `currency` string: ISO 4217 currency code.
        - `decimal_places` integer: Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
        - `display` string: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
    - `servicing_summary` object[]
      - `currency` string
      - `paid` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
        - `amount` number: Deprecated: use `value` instead (the same integer) where this object carries decimal_places. Where it does not, the figure is in MAJOR units and the field holding this object is itself deprecated: read its `*_money` sibling. The two-scale rule applies only to deprecated fields. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
        - `value` integer: Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
        - `currency` string: ISO 4217 currency code.
        - `decimal_places` integer: Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
        - `display` string: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
      - `refunded` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
        - `amount` number: Deprecated: use `value` instead (the same integer) where this object carries decimal_places. Where it does not, the figure is in MAJOR units and the field holding this object is itself deprecated: read its `*_money` sibling. The two-scale rule applies only to deprecated fields. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
        - `value` integer: Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
        - `currency` string: ISO 4217 currency code.
        - `decimal_places` integer: Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
        - `display` string: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
      - `net_paid` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
        - `amount` number: Deprecated: use `value` instead (the same integer) where this object carries decimal_places. Where it does not, the figure is in MAJOR units and the field holding this object is itself deprecated: read its `*_money` sibling. The two-scale rule applies only to deprecated fields. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
        - `value` integer: Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
        - `currency` string: ISO 4217 currency code.
        - `decimal_places` integer: Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
        - `display` string: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
      - `attention_required` boolean
    - `items` object[]
      - `booked_item_id` string: The item to name with `booked_item_id` on the next request.
      - `item_id` integer, required: Deprecated: use `booked_item_id` instead. The booked item as an integer.
      - `domain` string, required
      - `summary` string
      - `status` string: This item's state in Jinko's own booking and servicing flow. In progress: `pending`, `awaiting_payment`, `preparing`, `prepared`, `processing`, `confirming`. Final: `completed` (booked; for a flight, ticketed), `failed`, `cancelled` (nothing is booked any more: the checkout was never paid, or a cancellation succeeded), `expired_quote` (a quoted price, at checkout or for an exchange, expired before it was confirmed). Needing attention: `exchange_partial_failure`, `needs_review`. Treat the list as open: new values may be added. It changes only through Jinko's steps (payment, booking, ticketing, or a cancellation or exchange you request), never because an airline changed or cancelled a flight.
      - `booking_ref` string: The Jinko booking reference of the booking this item belongs to: the same value as the booking’s `booking_ref`, also after an exchange.
      - `booking_reference` string: Deprecated: use `booking_ref` instead. The Jinko reference of the cart this item lives on: after an exchange, the exchange’s own reference.
      - `servicing` object: This item’s servicing: its cancellation and exchange progress and, when the request’s `check_eligibility` is `true` (the default), whether it can be refunded, voided or exchanged (`can_refund`, `can_void`, `can_exchange`, the support levels and reasons). With `check_eligibility: false` those eligibility fields are absent. Read the live refund or exchange check before committing.
        - `can_refund` boolean
        - `can_void` boolean
        - `can_exchange` boolean
        - `refund_support_level` 'AUTO' | 'MANUAL_REQUIRED' | 'UNSUPPORTED'
        - `exchange_support_level` 'AUTO' | 'MANUAL_REQUIRED' | 'UNSUPPORTED'
        - `refund_unavailable_reason` string
        - `exchange_unavailable_reason` string
        - `refund_reason_code` string
        - `exchange_reason_code` string
        - `reason_code` string
        - `support_level` 'AUTO' | 'MANUAL_REQUIRED' | 'UNSUPPORTED'
        - `cancellation` object
          - `state` string: `none` when nothing has cancelled the item; otherwise `in_progress`, `attention_required`, `succeeded` or `failed`.
          - `operation` string
          - `reason` string
          - `park_deadline` string
          - `next_run_at` string
          - `paid` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
            - `amount` number: Deprecated: use `value` instead (the same integer) where this object carries decimal_places. Where it does not, the figure is in MAJOR units and the field holding this object is itself deprecated: read its `*_money` sibling. The two-scale rule applies only to deprecated fields. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
            - `value` integer: Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
            - `currency` string: ISO 4217 currency code.
            - `decimal_places` integer: Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
            - `display` string: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
          - `refund_due` object
            - `amount` number: Deprecated: use `amount_money` instead. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
            - `value` integer: Deprecated: use `amount_money` instead. Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
            - `currency` string: Deprecated: use `amount_money` instead. ISO 4217 currency code.
            - `decimal_places` integer: Deprecated: use `amount_money` instead. Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
            - `display` string: Deprecated: use `amount_money` instead. The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
            - `amount_money` object: What the operation says the customer is owed.
              - …
            - `penalty` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
              - …
            - `source` string: Where the figure came from: `quoted` (what the platform expects) or `provider_confirmed` (what the supplier agreed to).
          - `refunded` object
            - `amount` number: Deprecated: use `amount_money` instead. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
            - `value` integer: Deprecated: use `amount_money` instead. Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
            - `currency` string: Deprecated: use `amount_money` instead. ISO 4217 currency code.
            - `decimal_places` integer: Deprecated: use `amount_money` instead. Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
            - `display` string: Deprecated: use `amount_money` instead. The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
            - `amount_money` object: What was refunded, as read back from the payment provider.
              - …
            - `at` string
            - `stripe_reference` string: Deprecated. An internal payment reference.
        - `exchange` ItemExchangeView: An exchange Jinko support handles by hand. Present only when the item has such a request; absent otherwise. `operation` is `exchange`. State `attention_required` means the request is with Jinko support and `refund_due` is the quoted refund; `in_progress` means support is completing it; `succeeded` means completed and `refunded` says what was refunded and when; `failed` means support closed the request. Hidden while the item has a cancellation (`cancellation.state` other than `none`).
          - `state` string: `attention_required` when the request is with Jinko support; `in_progress` when support is completing it; `succeeded` when completed; `failed` when support closed it.
          - `operation` string: The operation is `exchange`.
          - `reason` string
          - `park_deadline` string
          - `next_run_at` string
          - `paid` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
            - `amount` number: Deprecated: use `value` instead (the same integer) where this object carries decimal_places. Where it does not, the figure is in MAJOR units and the field holding this object is itself deprecated: read its `*_money` sibling. The two-scale rule applies only to deprecated fields. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
            - `value` integer: Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
            - `currency` string: ISO 4217 currency code.
            - `decimal_places` integer: Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
            - `display` string: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
          - `refund_due` object
            - `amount` number: Deprecated: use `amount_money` instead. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
            - `value` integer: Deprecated: use `amount_money` instead. Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
            - `currency` string: Deprecated: use `amount_money` instead. ISO 4217 currency code.
            - `decimal_places` integer: Deprecated: use `amount_money` instead. Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
            - `display` string: Deprecated: use `amount_money` instead. The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
            - `amount_money` object: What the operation says the customer is owed.
              - …
            - `penalty` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
              - …
            - `source` string: Where the figure came from: `quoted` (what the platform expects) or `provider_confirmed` (what the supplier agreed to).
          - `refunded` object
            - `amount` number: Deprecated: use `amount_money` instead. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
            - `value` integer: Deprecated: use `amount_money` instead. Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
            - `currency` string: Deprecated: use `amount_money` instead. ISO 4217 currency code.
            - `decimal_places` integer: Deprecated: use `amount_money` instead. Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
            - `display` string: Deprecated: use `amount_money` instead. The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
            - `amount_money` object: What was refunded, as read back from the payment provider.
              - …
            - `at` string
            - `stripe_reference` string: Deprecated. An internal payment reference.
      - `supplier_references` SupplierReference[]: The confirmations the supplier itself issued for this item: one per airline record locator, the hotel’s confirmation number, the rental company’s confirmation. Empty when none is known yet.
        - `issuer` string, required: Who issued the reference: the airline’s IATA code, the hotel’s name, or the rental company’s name.
        - `reference` string, required: The reference itself.
      - `failure_reason` string, nullable: Why the booking failed, when it failed after payment and the cause is known: `offer_unavailable`, `price_changed`, `booking_not_created` (the supplier holds no booking; nothing was booked and no money was taken), `booking_cancelled_at_provider`, `ticketing_refused`. Null otherwise. For `offer_unavailable`, the supplier no longer sells the priced offer. Nothing was booked and the card authorisation was released. Search again and book a new offer. The `booking.failed` webhook carries the same reason with a sentence to show the traveller (`failure_message`).
      - `booked_ancillaries` BookedAncillary[]
        - `type` 'seat' | 'bag' | 'meal' | 'cabin_bag_upgrade' | 'sports_equipment' | 'priority_boarding' | 'assistance' | 'insurance' | 'lounge' | 'frequent_flyer' | 'other', required: What was booked: a seat, a bag, a meal or another service. Treat the list as open: new kinds may be added.
        - `seat_number` string
        - `traveler_ref` string
        - `pax_ref_id` string: Deprecated: use `traveler_ref` instead. Same value.
        - `segment_ref_ids` string[]
        - `status` 'confirmed' | 'pending' | 'failed', required: For seats, `pending` means the airline has not confirmed the seat yet. `confirmed` means booked with the airline. `failed` means not booked.
        - `not_charged` boolean: true when this seat is not charged to the traveler.
        - `failure_reason` string, nullable: Public partner-facing explanation of a failed or unresolved outcome; never internal diagnostics.
        - `price` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
          - `amount` number: Deprecated: use `value` instead (the same integer) where this object carries decimal_places. Where it does not, the figure is in MAJOR units and the field holding this object is itself deprecated: read its `*_money` sibling. The two-scale rule applies only to deprecated fields. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
          - `value` integer: Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
          - `currency` string: ISO 4217 currency code.
          - `decimal_places` integer: Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
          - `display` string: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
        - `refund` SeatRefund: A carrier-settled paid seat is refunded once the airline refunds Jinko. It is not part of the quoted fare refund; track its separate status here.
          - `offer_id` string, required
          - `seat_number` string, required
          - `traveler_ref` string
          - `pax_ref_id` string: Deprecated: use `traveler_ref` instead. Same value.
          - `status` 'pending_airline_refund' | 'refunded' | 'not_refunded', required
          - `amount` object, required: The seat price while pending, then the actual customer refund amount (zero when not refunded). Not part of the separate quoted fare refund.
            - `value` integer, required: Integer amount in MINOR units at the ISO 4217 digits of `currency`: divide by 10 ** decimal_places to get the amount. Signed where the field says so (a price change delta).
            - `currency` string, required: ISO 4217 currency code.
            - `decimal_places` integer, required: The ISO 4217 digits of `currency` (2 for USD/EUR, 0 for JPY/KRW, 3 for BHD/KWD), and the scale of `value`.
            - `display` string, required: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount at `decimal_places`, e.g. "USD 412.50". Show this; compute with `value`.
          - `carrier` string, required: Airline display name.
          - `message` string, required: Customer-facing sentence explaining the seat refund.
          - `airline_refund_registered` boolean, required: Whether the airline refund has been registered with the payment provider.
      - `confirmation` object
        - `confirmation_number` string: Deprecated: use `supplier_references` instead. A confirmation number for this item; when the airline’s own locator is not known it can hold an id only Jinko’s intermediary answers to.
        - `product_summary` string
        - `total_paid` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
          - `amount` number: Deprecated: use `value` instead (the same integer) where this object carries decimal_places. Where it does not, the figure is in MAJOR units and the field holding this object is itself deprecated: read its `*_money` sibling. The two-scale rule applies only to deprecated fields. Alternative to `value` on some endpoints (the two never appear together); its scale depends on decimal_places. When this object carries decimal_places, amount is an INTEGER in minor units — divide by 10 ** decimal_places (e.g. select_ancillaries total_with_ancillaries). When there is no decimal_places field, amount is a decimal in MAJOR units, safe to display as-is (e.g. trip and checkout totals).
          - `value` integer: Integer amount in MINOR units, always paired with decimal_places — divide by 10 ** decimal_places to display. Example: value 15977 with decimal_places 2 is 159.77 USD. Rendering this field directly shows prices 100x too high for 2-decimal currencies.
          - `currency` string: ISO 4217 currency code.
          - `decimal_places` integer: Scale of the integer value/amount: display = integer / 10 ** decimal_places. Always sent alongside minor-unit amounts. Usually the ISO 4217 digits of the currency (2 for USD/EUR/GBP, 0 for JPY/KRW, 3 for BHD/JOD/KWD) but currency-converted prices can carry a different scale — ALWAYS use the decimal_places sent with the amount, never a hardcoded 2. Only if the field is genuinely absent on a value-shaped object, fall back to the ISO digits for the currency.
          - `display` string: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount, e.g. "USD 159.77". With decimal_places it is written at exactly that scale (value 1561500, JPY, decimal_places 2 is "JPY 15615.00"); without, at the ISO digits of the currency. Show this; compute with the number. Absent when the figure is not money (a cancellation step expressed as a percent or a number of nights) or could not be read unambiguously.
        - `details` object
          - `flight` BookingFlightDetails: Flight confirmation details as booked and ticketed. `outbound_flight` and `inbound_flight` are `legs[0]` and `legs[1]` under older names; `inbound_flight` is the second journey, not necessarily a return.
            - `pnr` string: Deprecated: use `supplier_references` instead. The validating carrier’s record locator; when it is not known, an id only Jinko’s intermediary answers to.
            - `ticket_numbers` string[]: The ticket numbers issued for this item. Absent when none is recorded.
            - `airline_locators` object[]: Deprecated: use `supplier_references` instead. Each airline's own record locator, one per carrier; the item's `supplier_references` lists the same locators.
              - …
            - `trip_type` string: The itinerary shape: `one_way`, `round_trip`, `open_jaw` or `multi_city`. Absent on a booking confirmed before it was recorded.
            - `origin_city_code` string
            - `destination_city_code` string
            - `cabin_class` string
            - `validating_carrier` string
            - `validating_carrier_info` object
              - …
            - `legs` BookingFlightJourney[]: Every journey of the itinerary in flown order, as booked and ticketed. It is not refreshed from the airline afterwards: a schedule change or cancellation made by the airline is not reflected here. Absent on a booking confirmed before legs were recorded. After an exchange that re-issued part of the itinerary it holds the re-issued journeys only, so read `trip_type` rather than counting legs.
              - …
            - `outbound_flight` BookingFlightJourney: One journey of the booked and ticketed itinerary, with its flight segments in flown order.
              - …
            - `inbound_flight` BookingFlightJourney: One journey of the booked and ticketed itinerary, with its flight segments in flown order.
              - …
            - `is_refundable` boolean: Whether the fare allows a refund, from its rules: an estimate, like `fare_conditions`. Absent when the fare states nothing.
            - `is_changeable` boolean: Whether the fare allows a change, from its rules: an estimate, like `fare_conditions`. Absent when the fare states nothing.
            - `refund_policy` string: The fare’s refund rule in words: an estimate, like `fare_conditions`.
            - `change_policy` string: The fare’s change rule in words: an estimate, like `fare_conditions`.
            - `carry_on_baggage` string
            - `checked_baggage` string
            - `fare_conditions` BookingFareConditions: The fare’s refund and change rules as kept with the booking, returned whatever `check_eligibility` says and read without asking the airline. An estimate: the airline can refund or void a ticket the rules call non-refundable (on the day of issue, for example) and the reverse. Whether a refund or change can be done is confirmed by `items[].servicing`, the refund check and the refund or exchange preview.
              - …
          - `car` object
            - `due_at_desk` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
              - …
            - `deposit` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
              - …
            - `estimated_total` Money: A money figure in one of two scales. New integrations read the `*_money` field beside it (a `MoneyValue`) where there is one, and `value` on objects that carry it; the rule below applies only to the deprecated forms. When `decimal_places` is present, `value` (or the deprecated `amount`) is an INTEGER in minor units: divide by 10 ** decimal_places. When it is absent, the deprecated `amount` is already in MAJOR units. Branch on whether decimal_places is present in the response you received, never on the currency code or the field name. `display` is the same figure as a string to show.
              - …
            - `ancillaries` object[]
              - …
            - `cancellation_fees` object[]
              - …
          - `hotel` BookingHotelDetails: The stay a booked hotel item confirms: the property, the dates, the room, the meal plan the guest bought (`board_type`, `board_name`) and the cancellation terms read at checkout. The platform sends more and all of it reaches you.
            - `hotel_id` string
            - `hotel_name` string
            - `address` string
            - `star_rating` integer
            - `main_photo_url` string
            - `check_in` string
            - `check_out` string
            - `num_nights` integer
            - `room_name` string
            - `room_description` string
            - `max_occupancy` integer
            - `board_type` string: The board code of the meal plan the guest bought, as the rate sold it — the same value the trip item’s `hotel_terms.board_type` stated at checkout (`RO` room only, `BB` bed and breakfast, `HB` half board, …; some suppliers use `BI` for breakfast included). On a multi-room booking, present only when every room is on the same board; read `rooms[].board_type` otherwise. Absent on bookings confirmed before the meal plan was recorded.
            - `board_name` string: The meal plan the guest bought, in words, as the rate sold it — the same value the trip item’s `hotel_terms.board_name` stated at checkout. On a multi-room booking the rooms’ distinct boards joined with "; ". Absent on bookings confirmed before the meal plan was recorded.
            - `is_refundable` boolean
            - `cancellation_summary` string
            - `free_cancellation_until` string
            - `hotel_confirmation_number` string: Deprecated: use `supplier_references` instead. The hotel’s own confirmation number, once the property issued one.
            - `rooms` object[]: Each room of a multi-room booking with its own meal plan and cancellation terms, in room order. Absent on a single-room booking.
              - …
      - `cancellation` object
        - `state` string
        - `refund_method` string
        - `monetary_refund_minor` integer: Deprecated: use `monetary_refund_money` instead. The money refund in minor units of `currency`, with no `decimal_places`.
        - `voucher_refund_minor` integer: Deprecated: use `voucher_refund_money` instead. The voucher refund in minor units of `currency`, with no `decimal_places`.
        - `fee_minor` integer: Deprecated: use `fee_money` instead. The cancellation fee in minor units of `currency`, with no `decimal_places`.
        - `currency` string: Deprecated: use `monetary_refund_money` instead. The currency of the three `*_minor` figures; each `*_money` field carries its own.
        - `monetary_refund_money` object: The refund paid back as money.
          - `value` integer, required: Integer amount in MINOR units at the ISO 4217 digits of `currency`: divide by 10 ** decimal_places to get the amount. Signed where the field says so (a price change delta).
          - `currency` string, required: ISO 4217 currency code.
          - `decimal_places` integer, required: The ISO 4217 digits of `currency` (2 for USD/EUR, 0 for JPY/KRW, 3 for BHD/KWD), and the scale of `value`.
          - `display` string, required: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount at `decimal_places`, e.g. "USD 412.50". Show this; compute with `value`.
        - `voucher_refund_money` object: The refund given as a supplier voucher.
          - `value` integer, required: Integer amount in MINOR units at the ISO 4217 digits of `currency`: divide by 10 ** decimal_places to get the amount. Signed where the field says so (a price change delta).
          - `currency` string, required: ISO 4217 currency code.
          - `decimal_places` integer, required: The ISO 4217 digits of `currency` (2 for USD/EUR, 0 for JPY/KRW, 3 for BHD/KWD), and the scale of `value`.
          - `display` string, required: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount at `decimal_places`, e.g. "USD 412.50". Show this; compute with `value`.
        - `fee_money` object: The cancellation fee.
          - `value` integer, required: Integer amount in MINOR units at the ISO 4217 digits of `currency`: divide by 10 ** decimal_places to get the amount. Signed where the field says so (a price change delta).
          - `currency` string, required: ISO 4217 currency code.
          - `decimal_places` integer, required: The ISO 4217 digits of `currency` (2 for USD/EUR, 0 for JPY/KRW, 3 for BHD/KWD), and the scale of `value`.
          - `display` string, required: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount at `decimal_places`, e.g. "USD 412.50". Show this; compute with `value`.
        - `fee_known` boolean
      - `exchange` object
        - `exchange_ref` string
        - `state` string
        - `delta_direction` string: `add_collect`, `refund` or `even`: which way the difference moves.
        - `delta_amount_minor` integer: Deprecated: use `delta_amount_money` instead. The absolute difference in minor units of `currency`, with no `decimal_places`.
        - `new_total_minor` integer: Deprecated: use `new_total_money` instead. The replacement rental total in minor units of `currency`, with no `decimal_places`.
        - `currency` string: Deprecated: use `delta_amount_money` instead. The currency of the two `*_minor` figures; each `*_money` field carries its own.
        - `delta_amount_money` object: The ABSOLUTE difference between the old and the new rental; `delta_direction` says which way it moves.
          - `value` integer, required: Integer amount in MINOR units at the ISO 4217 digits of `currency`: divide by 10 ** decimal_places to get the amount. Signed where the field says so (a price change delta).
          - `currency` string, required: ISO 4217 currency code.
          - `decimal_places` integer, required: The ISO 4217 digits of `currency` (2 for USD/EUR, 0 for JPY/KRW, 3 for BHD/KWD), and the scale of `value`.
          - `display` string, required: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount at `decimal_places`, e.g. "USD 412.50". Show this; compute with `value`.
        - `new_total_money` object: The replacement rental’s total.
          - `value` integer, required: Integer amount in MINOR units at the ISO 4217 digits of `currency`: divide by 10 ** decimal_places to get the amount. Signed where the field says so (a price change delta).
          - `currency` string, required: ISO 4217 currency code.
          - `decimal_places` integer, required: The ISO 4217 digits of `currency` (2 for USD/EUR, 0 for JPY/KRW, 3 for BHD/KWD), and the scale of `value`.
          - `display` string, required: The same figure as a string ready to show: the ISO 4217 code, a space, then the amount at `decimal_places`, e.g. "USD 412.50". Show this; compute with `value`.
    - `can_refund` boolean: OR aggregate over items[].servicing.can_refund; select an item before acting.
    - `can_void` boolean: OR aggregate over items[].servicing.can_void; select an item before acting.
    - `can_exchange` boolean: OR aggregate over items[].servicing.can_exchange; select an item before acting.
    - `refund_support_level` 'AUTO' | 'MANUAL_REQUIRED' | 'UNSUPPORTED': Use items[].servicing.refund_support_level.
    - `exchange_support_level` 'AUTO' | 'MANUAL_REQUIRED' | 'UNSUPPORTED': Use items[].servicing.exchange_support_level.
    - `created_at` string
    - `calendar` BookingCalendar: The calendar entries for this booking, as iCalendar files. Absent — not null, and never an empty list — when the booking holds no flight and no hotel, and whenever the files could not be built.
      - `files` BookingCalendarFile[]: The iCalendar files this booking is carried in, cancellation first and then invitation — the order the emails attach them in. Never empty: a booking with nothing to put in a calendar omits `calendar` altogether.
        - `method` string: The iTIP method (RFC 5546) this file carries: `REQUEST` for the events the booking still holds, `CANCEL` for the ones it no longer does. One file carries exactly one method — a booking that both retires and confirms flights, which is what an exchange does, comes back as two files rather than one mixed one.
        - `filename` string: The name the confirmation or cancellation email attached this same file under.
        - `content_type` string: The media type, including the `method` parameter. Attach or serve the file under this exact value: the method parameter is what makes a mail client act on the file instead of storing it as a plain attachment.
        - `content` string: The iCalendar file itself. Real CRLF line endings, as iCalendar requires — the example escapes them only so it can be read here. Byte-identical to what the email carried for the current state of this booking.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `402`: Payment required — organization balance exhausted
- `404`: Resource not found
- `409`: Choose booked_item_id when several booked items match; other conflicts report the current resource state.
- `410`: The resource this request names no longer exists
- `422`: Validation error
- `429`: Rate limit or quota exceeded
- `502`: The travel provider rejected the request, or an upstream call failed
- `503`: No travel provider can serve the request right now
- `504`: The travel provider did not answer in time

---

[API](https://skmtc.dev/gojinko/apis/jinko-public-api.md) - [All operations](https://skmtc.dev/gojinko/apis/jinko-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gojinko/apis/jinko-public-api/revisions/ac5046767e4c?raw)
