Skip to main content
POST
Check how a hotel cancellation ended
Report where one cancellation has got to, named by the operation handle a commit (or POST /v1/hotel_cancel) returned. Read-only. state is the platform view, keep polling while it is in_progress or attention_required, both of which mean the operation is still alive. provider is what the supplier says about the booking and money is where the refund itself has got to; the two move independently, so a booking can read cancelled while the money is still in flight. Do not tell a customer they have been refunded until money.vehicle_state says paid. Same auth modes as hotel_cancel_preview.

Authorizations

X-API-Key
string
header
required

Body

application/json
operation
string
required

The "svc_…" handle from a commit, or from POST /v1/hotel_cancel.

Example:

"svc_01J7ZR5Q2KME8V4T"

booking_ref
string

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

Minimum string length: 1
Example:

"JNK-A0AUR2"

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.

Pattern: ^itm_[a-z2-7]+$(?![\s\S])
Example:

"itm_aaaaaaaaaaaaafhuxsdxpbzrbfz5hm3a"

last_name
string

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

Minimum string length: 1
Example:

"Doe"

provider_reference
string
deprecated

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.

Minimum string length: 1
intent
object

Response

Where the cancellation has got to

operation
string
Example:

"svc_01J7ZR5Q2KME8V4T"

state
enum<string>

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.

Available options:
in_progress,
attention_required,
succeeded,
failed
reason
string

With state: attention_required, why the operation is stalled: the value names what Jinko has to resolve, and needs nothing from the caller. With state: failed, why it ended: provider_refused (the supplier refused before changing anything), provider_did_not_apply (the supplier’s record shows it was not applied), not_sent (it ended before anything was sent to the supplier), QUOTE_EXPIRED (the quote it was committed on no longer stood), superseded or not_cancellable. Absent on a failed operation that recorded none.

Example:

"settlement_review"

message
string

A sentence about why a failed operation ended, where there is one: what the supplier’s refusal means, or that its price changed after the quote. Present only with state: failed; it never states the supplier’s figures.

Example:

"the fare rules do not allow a refund of this ticket"

park_deadline
string

When a parked operation stops waiting for Jinko and is settled or failed. Present with state: attention_required; it is how long "keep polling" lasts.

Example:

"2026-09-10T12:15:00Z"

next_run_at
string

When the platform next drives this operation by itself. Informational — polling sooner does not make it run sooner.

Example:

"2026-09-03T12:20:00Z"

provider
object

The supplier's record. It can say cancelled while the money is still moving — that is the normal middle of a cancellation, not a discrepancy.

money
object

The refund and where it has got to. Read vehicle_state before telling a customer they have been refunded.