Post-booking

Shop for flight exchange alternatives

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.

post/v1/exchange_shop

Request

  • Base URL
    https://api.gojinko.com
  • URL
    https://api.gojinko.com/v1/exchange_shop
  • Auth
    • API key in header X-API-Key
    • or HTTP bearer

Request body

booking_refstring

Jinko booking reference. Call get_booking first, then select its booked_item_id for servicing.

booked_item_idstring

The booked item, from get_booking items[].booked_item_id. Preserved across exchanges. Omit only when the booking has exactly one item of the requested domain; otherwise a 409 returns items to choose from.

last_namestring

Required for guest lookup. A credential that owns the booking may omit it; ownership is checked by the platform.

order_idstring

Deprecated: name the booking with booking_ref and booked_item_id from get_booking. Names the booking instead of booking_ref, never beside it, and needs a credential that owns the booking. Accepted until 2027-04-30; a request that sends it is answered with Deprecation and Sunset headers.

providerstring

Deprecated: omit it. The platform uses the supplier recorded with the booking. Accepted until 2027-04-30; a request that sends it is answered with Deprecation and Sunset headers.

preferred_departure_datestring

Legacy. Moves the FIRST leg of the booking to this date and reshops every leg, so it cannot change only a later leg (a return) and can replace the flights of a leg you meant to keep. Use segments_to_exchange instead.

Example request

{
  "booking_ref": "JNK-A0AUR2",
  "last_name": "Doe"
}

Response

Shop for flight exchange alternatives

support_level'AUTO' | 'MANUAL_REQUIRED' | 'UNSUPPORTED'

How this action can be carried out. AUTO — the platform completes it end to end through the API. MANUAL_REQUIRED — it is possible, but a Jinko agent has to act; call the API to raise it and expect a delay rather than an immediate result. UNSUPPORTED — the provider or fare does not allow it at all; nothing you send will change that. Do not treat MANUAL_REQUIRED as a failure, and do not retry UNSUPPORTED. On the refund check manual_reason says why it is not AUTO, on the exchange shop reason.

reason_codestring

Why the exchange is not automatic, as a Jinko code to route on, never a supplier’s. Present whenever support_level is not AUTO, absent when it is. Today NOT_EXCHANGEABLE with support_level: UNSUPPORTED — the booking cannot be exchanged online — and MANUAL_REQUIRED with support_level: MANUAL_REQUIRED — a Jinko agent has to carry out the exchange.

reasonstring

Why the exchange is not automatic, in words the customer can be shown. Present whenever support_level is not AUTO, absent when it is. It is a fixed Jinko sentence and never the supplier’s wording: “This booking cannot be exchanged online. Contact Jinko support.” with NOT_EXCHANGEABLE, “This request needs manual handling by Jinko support.” with MANUAL_REQUIRED.

warningsstring[]

Notes about the booking and its documents, each said once, in words the customer can be shown. A note the supplier sends as free text without a code is left out.

Example response

{
  "reason_code": "NOT_EXCHANGEABLE",
  "reason": "This booking cannot be exchanged online. Contact Jinko support.",
  "offers": [
    {
      "offer_id": "exch_offer_3c1a9f",
      "description": "AA100, 23 Sep, JFK-DFW-SJC",
      "estimated_payment_outcome": "additional_payment_due",
      "estimated_amount": {
        "value": 41250,
        "currency": "USD",
        "decimal_places": 2,
        "display": "USD 412.50"
      },
      "non_refundable_amount": {
        "value": 41250,
        "currency": "USD",
        "decimal_places": 2,
        "display": "USD 412.50"
      },
      "validating_carrier": "AA",
      "fare_brand_code": "MAINSL",
      "fare_brand_name": "MAIN SELECT",
      "legs": [
        {
          "duration_minutes": 530,
          "segments": [
            {
              "airline": "AA",
              "operating_carrier": "BA",
              "flight_number": "6957",
              "departure_airport": "MIA",
              "departure_time": "2026-11-24T19:35:00",
              "arrival_airport": "LHR",
              "arrival_time": "2026-11-25T09:05:00",
              "duration_minutes": 530,
              "cabin_name": "Economy",
              "fare_brand_key": "MAINSL",
              "fare_basis_code": "OVAIZNB3",
              "rbd": "O"
            }
          ]
        }
      ],
      "fare_basis_codes": [
        "OVAIZNB3"
      ],
      "booking_classes": [
        "O"
      ],
      "cabin": "Economy"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.