Preview and then cancel a hotel booking when the traveler can no longer make the stay or wants to drop a hotel from a multi-item trip. Preview first: it returns the penalty, the refund the customer would receive and the supplier’s policy without cancelling anything, so the customer agrees to a figure before the booking is gone. Choose the booked item through get_booking and pass booking_ref + booked_item_id, with last_name for guests.
Tool description (what the LLM sees)
get_booking with booking_ref (and last_name for guests) returns items[] with servicing eligibility and refusal reasons for item selection. The same booking_ref + booked_item_id identifies the selected item on every action, including commit and status. booked_item_id is the stable booked item, even after an exchange. last_name is required for guests and optional for authenticated owners. A 409 with items[] means customer selection is needed; a retry identifies that choice with booked_item_id.Cancel a hotel booking. CALL WITH ACTION PREVIEW FIRST, the preview costs nothing and cancels nothing.WORKFLOW:1. action="preview" with booking_ref + booked_item_id (plus last_name for guests) → penalty, customer refund, policy, and an "svq_…" quote handle.2. Show the customer the refund and get their agreement.3. action="commit" with the SAME auth you used to preview, quote_id="svq_…", and acknowledged = that quote's `refund` object copied field for field → returns an "svc_…" operation handle.4. action="status" with operation="svc_…" → the supplier's answer and where the refund got to.USAGE (guest, no login required): hotel_cancel({ action: "preview", booking_ref: "JNK-A7B3X9", booked_item_id: "itm_aaaaaaaaaaaaafhuxsdxpbzrbfz5hm3a", last_name: "Doe" })USAGE (authenticated owner): hotel_cancel({ action: "preview", booking_ref: "JNK-A7B3X9", booked_item_id: "itm_aaaaaaaaaaaaafhuxsdxpbzrbfz5hm3a" })IMPORTANT:- Never commit without a preview: the customer must see the penalty and the refund first.- `acknowledged` is the preview's `refund` object copied verbatim (value, currency, decimal_places), never recomputed. If the refund has moved since, the commit is refused and a fresh quote is returned, show that one to the customer rather than committing the old figure.- When the preview reports the penalty is not known (`fee_known: false`), tell the customer we will confirm the amount. That is NOT free cancellation.- Quote the customer refund and penalty returned by the preview.- action="cancel" is the legacy one-shot path: it prices and cancels in a single call, so the customer cannot agree to the refund first. Use it only for callers already written against it.Always start with `get_booking` and select the item before cancelling.
What to do. “preview” (default) prices the cancellation and returns a quote handle without cancelling anything, always start here so the customer sees the penalty and the refund before agreeing. “commit” cancels, using the quote handle and the refund the customer acknowledged. “status” reports where a committed cancellation and its refund got to. “cancel” (deprecated: use “preview” then “commit”) is the legacy one-shot path that quotes and cancels in a single call, with no chance to confirm the figures first.
booking_ref
string
Yes
Trip-level Jinko booking_ref returned by get_trip or submit_agent_payment. Use it to look up the booking with get_booking.
booked_item_id
string | null
No
The booked item to service: booked_item_id from get_booking.items[] (an “itm_…” string). Send it on every action. May be omitted only when the booking has exactly one item in this domain.
last_name
string | null
No
Primary traveler last name. Required for guests; optional for an authenticated owner of the booking.
quote_id
string | null
No
The “svq_…” handle a prior action “preview” returned. REQUIRED for action “commit”. It binds the cancellation to the figures the customer was shown.
acknowledged
object | null
No
The preview’s refund object copied field for field, the refund the customer agreed to. REQUIRED for action “commit”. Do not recompute or re-scale it: the platform compares it against the live figure and refuses the commit with a fresh quote when they differ, rather than settling at a number nobody was shown.
operation
string | null
No
The “svc_…” operation handle a prior action “commit” returned. REQUIRED for action “status”.
user_intent
string
No
The end user’s current request in their own words, e.g. “help me with my travel plans”. Pass it as-is when short; otherwise condense the goal and constraints into 1-2 sentences. Strip personal identifiers (names, emails, phone numbers, addresses, payment details), replace them with placeholders like “[name]”. Optional. Jinko uses it to understand demand, and hotel_search uses it to rank hotel results against what the user asked for (e.g. “quiet, with a gym, near Times Square”), so keep the user’s stated preferences in it.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Jinko Platform","description":"Connect your AI agent to flights, hotels, car rentals, and bookings through MCP, REST API, TypeScript SDK, or CLI.","colors":{"primary":"#FF6363","light":"#FF807C","dark":"#BA4B4A"},"logo":{"light":"https://mintcdn.com/jinko-dev/k6P2DyAYQF0FPJQi/logo/jinko-logo.png?fit=max\u0026auto=format\u0026n=k6P2DyAYQF0FPJQi\u0026q=85\u0026s=785a20dc553a2698bfffad325d1198d0","dark":"https://mintcdn.com/jinko-dev/k6P2DyAYQF0FPJQi/logo/jinko-logo.png?fit=max\u0026auto=format\u0026n=k6P2DyAYQF0FPJQi\u0026q=85\u0026s=785a20dc553a2698bfffad325d1198d0"},"favicon":"https://mintcdn.com/jinko-dev/k6P2DyAYQF0FPJQi/favicon.png?fit=max\u0026auto=format\u0026n=k6P2DyAYQF0FPJQi\u0026q=85\u0026s=770e72a193924011a067dcacdcb654cf","navbar":{"links":[{"href":"https://dashboard.gojinko.com","label":"Dashboard"}],"primary":{"type":"button","label":"Get API Key","href":"https://dashboard.gojinko.com/developers/keys"}},"footer":{"socials":{"website":"https://gojinko.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"jinko-dev","hasAudioNarration":false,"actualSubdomain":"jinko-dev","customDomains":["docs.dev.gojinko.com"],"gitSource":{"type":"github","owner":"jinkoso","repo":"jinko-dev-platform","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aeece39c11f500273ffd5ec","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API reference","count":63},{"language":"default","tag":"CLI","count":49},{"language":"default","tag":"Flights","count":43},{"language":"default","tag":"Documentation","count":42},{"language":"default","tag":"MCP","count":23},{"language":"default","tag":"Manage","count":20},{"language":"default","tag":"Trip \u0026 Payment","count":19},{"language":"default","tag":"Discovery","count":17},{"language":"default","tag":"Hotels","count":16},{"language":"default","tag":"Travel Demand","count":14}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"tools/hotel-cancel","slug":"/tools/hotel-cancel","pageMetadata":{"title":"Cancel Hotel Booking","description":"Preview a hotel cancellation, then cancel it","href":"/tools/hotel-cancel"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Preview a hotel cancellation, then cancel it\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,CodeBlock,Heading,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Preview and then cancel a hotel booking when the traveler can no longer make the stay or wants to drop a hotel from a multi-item trip. Preview first: it returns the penalty, the refund the customer would receive and the supplier’s policy without cancelling anything, so the customer agrees to a figure before the booking is gone. Choose the booked item through get_booking and pass booking_ref + booked_item_id, with last_name for guests.`}),`\n`,_jsx(Accordion,{title:`Tool description (what the LLM sees)`,defaultOpen:false,id:`tool-description-what-the-llm-sees`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`26`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`26`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`get_booking with booking_ref (and last_name for guests) returns items[] with servicing eligibility and refusal reasons for item selection. The same booking_ref + booked_item_id identifies the selected item on every action, including commit and status. booked_item_id is the stable booked item, even after an exchange. last_name is required for guests and optional for authenticated owners. A 409 with items[] means customer selection is needed; a retry identifies that choice with booked_item_id.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Cancel a hotel booking. CALL WITH ACTION PREVIEW FIRST, the preview costs nothing and cancels nothing.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`WORKFLOW:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`1. action=\"preview\" with booking_ref + booked_item_id (plus last_name for guests) → penalty, customer refund, policy, and an \"svq_…\" quote handle.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2. Show the customer the refund and get their agreement.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:'3. action=\"commit\" with the SAME auth you used to preview, quote_id=\"svq_…\", and acknowledged = that quote\\'s `refund` object copied field for field → returns an \"svc_…\" operation handle.'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`4. action=\"status\" with operation=\"svc_…\" → the supplier's answer and where the refund got to.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`USAGE (guest, no login required):`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` hotel_cancel({ action: \"preview\", booking_ref: \"JNK-A7B3X9\", booked_item_id: \"itm_aaaaaaaaaaaaafhuxsdxpbzrbfz5hm3a\", last_name: \"Doe\" })`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`USAGE (authenticated owner):`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` hotel_cancel({ action: \"preview\", booking_ref: \"JNK-A7B3X9\", booked_item_id: \"itm_aaaaaaaaaaaaafhuxsdxpbzrbfz5hm3a\" })`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`IMPORTANT:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Never commit without a preview: the customer must see the penalty and the refund first.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:\"- `acknowledged` is the preview's `refund` object copied verbatim (value, currency, decimal_places), never recomputed. If the refund has moved since, the commit is refused and a fresh quote is returned, show that one to the customer rather than committing the old figure.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:\"- When the preview reports the penalty is not known (`fee_known: false`), tell the customer we will confirm the amount. That is NOT free cancellation.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Quote the customer refund and penalty returned by the preview.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- action=\"cancel\" is the legacy one-shot path: it prices and cancels in a single call, so the customer cannot agree to the refund first. Use it only for callers already written against it.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:\"Always start with `get_booking` and select the item before cancelling.\"})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})}),`\n`,_jsx(Heading,{level:`2`,id:`parameters`,children:`Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`action`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`enum (\"preview\" | \"commit\" | \"status\" | \"cancel\")`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`What to do. “preview” (default) prices the cancellation and returns a quote handle without cancelling anything, always start here so the customer sees the penalty and the refund before agreeing. “commit” cancels, using the quote handle and the refund the customer acknowledged. “status” reports where a committed cancellation and its refund got to. “cancel” (deprecated: use “preview” then “commit”) is the legacy one-shot path that quotes and cancels in a single call, with no chance to confirm the figures first.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`booking_ref`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Trip-level Jinko booking_ref returned by get_trip or submit_agent_payment. Use it to look up the booking with get_booking.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`booked_item_id`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`The booked item to service: booked_item_id from get_booking.items[] (an “itm_…” string). Send it on every action. May be omitted only when the booking has exactly one item in this domain.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`last_name`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Primary traveler last name. Required for guests; optional for an authenticated owner of the booking.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`quote_id`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`The “svq_…” handle a prior action “preview” returned. REQUIRED for action “commit”. It binds the cancellation to the figures the customer was shown.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`acknowledged`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`object | null`})}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`The preview’s `,_jsx(_components.code,{children:`refund`}),` object copied field for field, the refund the customer agreed to. REQUIRED for action “commit”. Do not recompute or re-scale it: the platform compares it against the live figure and refuses the commit with a fresh quote when they differ, rather than settling at a number nobody was shown.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`operation`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`The “svc_…” operation handle a prior action “commit” returned. REQUIRED for action “status”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`user_intent`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`The end user’s current request in their own words, e.g. “help me with my travel plans”. Pass it as-is when short; otherwise condense the goal and constraints into 1-2 sentences. Strip personal identifiers (names, emails, phone numbers, addresses, payment details), replace them with placeholders like “[name]”. Optional. Jinko uses it to understand demand, and hotel_search uses it to rank hotel results against what the user asked for (e.g. “quiet, with a gym, near Times Square”), so keep the user’s stated preferences in it.`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Cancel Hotel Booking","description":"Preview a hotel cancellation, then cancel it","href":"/tools/hotel-cancel"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Parameters","slug":"parameters","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"jinko-dev","siteName":"Jinko Platform","title":"Cancel Hotel Booking - Jinko Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-17T23:01:16.419Z","originalFileLocation":"tools/hotel-cancel.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Preview a hotel cancellation, then cancel it\">\u003cmeta data-mint-head name=\"application-name\" content=\"Jinko Platform\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Cancel Hotel Booking - Jinko Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Preview a hotel cancellation, then cancel it\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Jinko Platform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dev.gojinko.com/tools/hotel-cancel\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://jinko-dev.mintlify.site/_mintlify/api/og/v2?division=Hotels\u0026amp;title=Cancel+Hotel+Booking\u0026amp;description=Preview+a+hotel+cancellation%2C+then+cancel+it\u0026amp;theme=d8471b1916fc5bd660c4c758\u0026amp;signature=c5044280924fbaef8fe812f7ee5485deeb40b5da185b7152786d43937ab380f7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Cancel Hotel Booking - Jinko Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Preview a hotel cancellation, then cancel it\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://jinko-dev.mintlify.site/_mintlify/api/og/v2?division=Hotels\u0026amp;title=Cancel+Hotel+Booking\u0026amp;description=Preview+a+hotel+cancellation%2C+then+cancel+it\u0026amp;theme=d8471b1916fc5bd660c4c758\u0026amp;signature=c5044280924fbaef8fe812f7ee5485deeb40b5da185b7152786d43937ab380f7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Jinko Platform\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF6363\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.dev.gojinko.com/tools/hotel-cancel\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/tools/hotel-cancel.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.dev.gojinko.com/#organization\",\"name\":\"Jinko Platform\",\"url\":\"https://docs.dev.gojinko.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/jinko-dev/k6P2DyAYQF0FPJQi/logo/jinko-logo.png?fit=max\u0026auto=format\u0026n=k6P2DyAYQF0FPJQi\u0026q=85\u0026s=785a20dc553a2698bfffad325d1198d0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.dev.gojinko.com#website\",\"name\":\"Jinko Platform\",\"url\":\"https://docs.dev.gojinko.com\",\"publisher\":{\"@id\":\"https://docs.dev.gojinko.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.dev.gojinko.com/tools/hotel-cancel#webpage\",\"url\":\"https://docs.dev.gojinko.com/tools/hotel-cancel\",\"name\":\"Cancel Hotel Booking\",\"description\":\"Preview a hotel cancellation, then cancel it\",\"dateModified\":\"2026-10-17T23:01:16.419Z\",\"isPartOf\":{\"@id\":\"https://docs.dev.gojinko.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dev.gojinko.com/tools/hotel-cancel#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dev.gojinko.com/tools/hotel-cancel#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Hotels\",\"item\":\"https://docs.dev.gojinko.com/tools/hotel-search\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cancel Hotel Booking\",\"item\":\"https://docs.dev.gojinko.com/tools/hotel-cancel\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dev.gojinko.com/tools/hotel-cancel#article\",\"headline\":\"Cancel Hotel Booking\",\"name\":\"Cancel Hotel Booking\",\"description\":\"Preview a hotel cancellation, then cancel it\",\"url\":\"https://docs.dev.gojinko.com/tools/hotel-cancel\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dev.gojinko.com/tools/hotel-cancel#webpage\"},\"dateModified\":\"2026-10-17T23:01:16.419Z\",\"publisher\":{\"@id\":\"https://docs.dev.gojinko.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.dev.gojinko.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Jinko Platform\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Jinko Platform","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"MCP","groups":[{"group":"Introduction","pages":[{"title":"Overview","href":"/tools/overview"}]},{"group":"Flights","pages":[{"group":"Discovery","pages":[{"title":"Find Destination","href":"/tools/find-destination"},{"title":"Flight Calendar","href":"/tools/flight-calendar"},{"title":"Find Dates","href":"/tools/find-dates"},{"title":"Price Monitoring","href":"/tools/price-monitoring"},{"title":"Flight Price Advice","href":"/tools/flight-price-advice"}]},{"group":"Search","pages":[{"title":"Flight Search","href":"/tools/flight-search"},{"title":"Flight Award Search (preview)","href":"/tools/flight-award-search"}]},{"group":"Manage","pages":[{"title":"Flight Refund","href":"/tools/flight-refund"},{"title":"Flight Exchange","href":"/tools/flight-exchange"}]}]},{"group":"Hotels","pages":[{"title":"Hotel Search","href":"/tools/hotel-search"},{"title":"Hotel Details","href":"/tools/hotel-details"},{"title":"Hotel Reviews","description":"Fetch the guest review summary, per-category scores and recent reviews for a single hotel","href":"/tools/hotel-reviews"},{"title":"Cancel Hotel Booking","href":"/tools/hotel-cancel"}]},{"group":"Cars","pages":[{"title":"Search Car Rentals","description":"Live car rental availability between a pick-up and a drop-off place, priced and bookable","href":"/tools/car-search"},{"title":"Cancel Car Rental Booking","href":"/tools/car-cancel"}]},{"group":"Trip \u0026 Payment","pages":[{"title":"Trip","href":"/tools/trip"},{"title":"Checkout Trip","href":"/tools/checkout"},{"title":"Submit Agent Payment","href":"/tools/submit-agent-payment"},{"title":"Get Trip","href":"/tools/get-trip"},{"title":"Get Booking","href":"/tools/get-booking"}]},{"group":"Marketing claim","tag":"Preview","pages":[{"title":"Claim the Best Price Guarantee","href":"/tools/claim-best-price-guarantee"},{"title":"Read a Best Price Guarantee claim","href":"/tools/get-best-price-guarantee"}]}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"Cancel Hotel Booking - Jinko Platform","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}