Post-booking

Cancel a hotel booking against a quote the customer accepted

Start the cancellation the preview described. The body is the quote handle and the acknowledged figure PLUS the same booking_ref, item_id and last_name the preview took: ownership is re-checked here rather than carried by the handle, so they have 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 cancelled. If the supplier’s policy moved since the quote, quote_drift has no retry_quote_id; preview again. The other refusals are 409 QUOTE_EXPIRED (run hotel_cancel_preview again), active_operation_exists (poll the active_operation when present instead of starting a second one), not_cancellable and funds_unavailable. Success does NOT mean the money has moved: cancelling at the supplier and refunding the customer are separate steps, so the answer is an operation handle to poll with POST /v1/hotel_cancel_status.

post/v1/hotel_cancel_commit

Request

  • Base URL
    https://api.gojinko.com
  • URL
    https://api.gojinko.com/v1/hotel_cancel_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/hotel_cancel_preview. Binds this commit to the figures that quote reported.

Example request

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

Response

The cancellation was accepted and is running

operationstring

The cancellation this call started ("svc_…"). Poll it with POST /v1/hotel_cancel_status; it is the only handle that reports how the supplier 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.

Example response

{
  "operation": "svc_01J7ZR5Q2KME8V4T"
}

Changes

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