Post-booking

Refund or void a booked flight (every ticket on the item) against a quote the customer accepted

Start the operation the preview described — a refund, or a void of the original charge, whichever the preview reported as operation_kind. The body is the quote handle and the acknowledged figure PLUS the same auth mode the preview took: ownership is re-checked here rather than carried by the handle, so the mode has to be sent again. acknowledged is the refund the customer was shown, copied from the preview as it arrived (value and decimal_places included): if your figure differs from the still-live quote’s refund, the call is refused with 409 quote_drift. retry_quote_id is that same quote’s handle and current.refund its figure. Show it to the customer, then commit again with that handle and figure. Nothing is sent to the airline. A MANUAL_REQUIRED quote needs manual_ok: true: the operation is then raised for a Jinko agent and answers attention_required with reason: manual_required, again without the airline being called. Committing one without the flag is refused 409 manual_required. That submission is also the one case where acknowledged may be left out: a MANUAL_REQUIRED quote whose penalty is unknown carries no refund to acknowledge, and there is nothing to compare against. Whenever the preview DID name a refund, send it. The other refusals are 409 QUOTE_EXPIRED (preview again), active_operation_exists (poll the active_operation when present instead of starting a second one), not_cancellable, funds_unavailable, superseded, and — when the preview already said commitable: false and you committed anyway — that quote’s own reason answered back as the code: penalty_exceeds_sell or multi_currency_basis. Success does NOT mean the money has moved: giving the tickets back at the airline and returning the money to the customer are separate steps, so the answer is an operation handle to poll with POST /v1/flight_refund_status.

post/v1/flight_refund_commit

Request

  • Base URL
    https://api.gojinko.com
  • URL
    https://api.gojinko.com/v1/flight_refund_commit
  • 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.

provider_referencestring

Deprecated: name the booking with booking_ref and booked_item_id from get_booking. Names the booking instead of booking_ref and last_name, 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.

quote_idstring required

The quote_id from a preceding POST /v1/flight_refund_preview. Binds this commit to the figures that quote reported.

manual_okboolean

Send true to submit a quote whose support_level is MANUAL_REQUIRED. The operation is then raised for a Jinko agent and answers state: attention_required with reason: manual_required — NOTHING is sent to the airline by this call, and the agent settles or fails it. Without the flag such a commit is refused 409 manual_required, so a customer is never put in an agent queue unasked. On an AUTO or AUTO_VOID quote the flag changes nothing. This is also the one submission that may carry no acknowledged figure — when the quote itself named none, because the penalty is unknown.

Example request

{
  "booking_ref": "JNK-A0AUR2",
  "last_name": "Doe",
  "quote_id": "svq_01J7ZR3M8FKX2P9C",
  "acknowledged": {
    "value": 25000,
    "currency": "USD",
    "decimal_places": 2
  }
}

Response

The refund or void was accepted and is running

operationstring

The operation this call started ("svc_…"). Poll it with POST /v1/flight_refund_status; it is the only handle that reports how the airline call and the refund ended.

state'in_progress' | 'attention_required' | 'succeeded' | 'failed'

Where the cancellation has got to. in_progress — running; keep polling. attention_required — stalled on something a person at Jinko has to resolve (reason names it); keep polling, and do not report it to the customer as a failure, because the booking may already be cancelled at the supplier. succeeded and failed are terminal: the supplier outcome and the money are both settled and nothing further will change.

reasonstring

Why the operation is parked, when state is attention_required. On a commit that is manual_required: you sent manual_ok: true, a Jinko agent now has it, and nothing has been sent to the airline. Not a failure — poll the operation.

Example response

{
  "operation": "svc_01J7ZR5Q2KME8V4T",
  "reason": "manual_required"
}

Changes

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