---
title: "DEPRECATED — use /v1/flight_refund_preview. Check refund eligibility only; use flight_refund_preview for customer-facing amounts"
method: POST
path: "/v1/refund_check"
tags: ["Post-booking"]
deprecated: true
---

# DEPRECATED — use /v1/flight_refund_preview. Check refund eligibility only; use flight_refund_preview for customer-facing amounts

`POST /v1/refund_check`

## Request

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

> **Deprecated.**

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

- RefundCheckRequest
  - `booking_ref` string: Jinko booking reference. Call get_booking first, then select its booked_item_id for servicing.
  - `booked_item_id` string: 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_name` string: Required for guest lookup. A credential that owns the booking may omit it; ownership is checked by the platform.
  - `order_id` string: 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.
  - `provider` string: 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.
  - `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`

Check refund eligibility only; use flight_refund_preview for customer-facing amounts

- RefundCheckResponse
  - `seat_refunds` SeatRefund[]: Separate refunds for carrier-settled paid seats. A paid seat is refunded once the airline refunds Jinko; these amounts are not part of the quoted fare refund.
    - `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.
  - `is_refundable` boolean: Whether the fare that was sold is refundable under its fare rules: the same answer the price check gave. A non-refundable ticket can still be given back in full while it is inside its void window; read `is_voidable` for that.
  - `is_voidable` boolean: True when committing would VOID the ticket outright — the document is still inside its void window, so the original charge is reversed in full instead of a fare-rule refund being computed. This check returns eligibility only; use flight_refund_preview for customer-facing amounts. Time-sensitive — read it from a live check, never from stored booking data.
  - `is_automatable` boolean
  - `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`.
  - `manual_reason` string: Why the refund is not automatic or not available, in words the customer can be shown; never the supplier’s wording. Present whenever `support_level` is not `AUTO`. With `UNSUPPORTED` it is the sentence a `flight_refund_preview` refusal (409 `not_cancellable`) carries for the same booking. With `MANUAL_REQUIRED`, where the reason would be the supplier’s own words, it reads “This request needs manual handling by Jinko support.”
  - `reason_code` string: Why the refund is not automatic or not available, as a code to route on: `NON_REFUNDABLE_FARE`, `EXCHANGED_TICKET`, `DOCUMENT_RETIRED`, `CARRIER_NOT_AUTHORIZED`, `NOT_CANCELLABLE` (a refusal the supplier gave no code for). When `support_level` is `UNSUPPORTED`, it is always present and is the same code a `flight_refund_preview` refusal (409 `not_cancellable`) carries for this booking.
  - `expires_at` string
  - `warnings` string[]: 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.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `402`: Payment required — organization balance exhausted
- `404`: Resource not found
- `409`: Servicing refusal or booking item selection required. A booking returned by get_booking with status failed (for example, after payment), expired_quote, pending or exchange_partial_failure is refused with `code: not_cancellable`, `reason_code: booking_not_active` and a platform sentence in `error.message`, when the caller may service the booking. Any other caller gets the same 404 as for an unknown booking.
- `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)
