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
booking_ref
string
required

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

Minimum string length: 1
Example:

"JNK-A0AUR2"

operation
string
required

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

Example:

"svc_01J7ZR5Q2KME8V4T"

item_id
integer

Stable booked item ID from get_booking items[].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.

Required range: 0 < x <= 9007199254740991
Example:

42

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"

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.