{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-demand/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Cancel accommodation orders for less v3.2","siteUrl":"https://developers.booking.com","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"cancel-accommodation-orders-for-less","__idx":0},"children":["Cancel accommodation orders for less  ",{"$$mdtype":"Tag","name":"span","attributes":{"style":{"backgroundColor":"#0070c9","color":"white","fontSize":"0.8rem","padding":"0.2rem 0.5rem","borderRadius":"4px"}},"children":["v3.2"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Enable travellers to request an accommodation cancellation without paying the usual fee if the property approves"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-cancellation-process","__idx":1},"children":["The cancellation process"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Cancel for Less"]}," flow allows partners to request the property to waive the cancellation fee for a reservation."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["This is useful when travellers want to cancel an existing booking due to an urgent matter."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["This flow is only applicable when the cancellation has a fee."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Only available for accommodation"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Cancel for less is only available in Demand API v3.2 and for accommodations. If you are integrating car rental bookings then this flow does not apply."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"overview","__idx":2},"children":["Overview"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The request is made through the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/open-api/3.2/demand-api/orders/orders/cancel"},"children":["v3.2 orders/cancel endpoint"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The property must approve the request for it to be effective."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["This functionality is activated by a flag in the request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Not all properties accept free cancellation requests. Partners can check this at the property level using ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/open-api/3.2/demand-api/accommodations/accommodations/details"},"children":["accommodations/details"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-by-step-process","__idx":3},"children":["Step-by-step process"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-check-cancel-for-less-eligibility","__idx":4},"children":["1. Check Cancel for less eligibility"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To determine whether a property allows waiving cancellation fees, include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["extras.refuses_free_cancellation_requests"]}," in the  accommodations/details request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example of request:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"extras\": [\"refuses_free_cancellation_requests\"]\n}\n\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response will retrieve whether this is allowed by the property."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"data\": [\n        {\n            \"refuses_free_cancellation_requests\": false\n        }\n    ]\n}\n\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," → Property will not accept requests to cancel for free."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," → Property may approve a free cancellation request."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2--send-cancellation-request","__idx":5},"children":["2.  Send cancellation request"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the property accepts this sort of requests, you can send a cancellation request via the orders/cancel endpoint."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Include the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["request_property_approval"]}," flag set to \"true\" in your orders/cancel request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["When set to true, in case the reservation has a cancellation fee, it requests the property to waive the fee. Subject to approval."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"order\": \"509430129718799\",\n    \"reason\": \"I would like to book another property instead of this one.\",\n    \"request_property_approval\": true\n}\n\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Important"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Only orders with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," “booked” can be cancelled (See the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/orders-api/cancel-order#4.-process-the-cancellation"},"children":["Cancellation guide"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you attempt to cancel an order with a “stayed” or \"cancelled\" status you will receive a 400 error message. Check the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/orders-api/cancel-order#handling-errors"},"children":["error handling"]}," section for more details."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-check-applied-cancellation-fee","__idx":6},"children":["3. Check applied cancellation fee"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Check orders/details to verify at a reservation level whether the booking has included the cancellation fee or not."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You can check the order status and verify it has a \"Cancelled_by_guest\" status."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note: In the current version, orders/details do not present whether the request is approved or not. This feature will be activated in further versions."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"handling-errors","__idx":7},"children":["Handling errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Common error responses may include:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"cancellation-request-not-approved","__idx":8},"children":["Cancellation request not approved"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Issue:"]}," The property does not approve the free cancellation request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm the property allows free cancellation requests using accommodations/details and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refuses_free_cancellation_requests"]}," field."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refuses_free_cancellation_requests"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", the property will not accept the request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Encourage travellers to contact the property directly if urgent."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"attempting-to-cancel-an-ineligible-order","__idx":9},"children":["Attempting to cancel an ineligible order"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Issue:"]}," You receive a 400 error when calling orders/cancel."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Only orders with status set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["booked"]}," can be cancelled."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Verify the order status using orders/details before attempting cancellation."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"incorrect-request-payload","__idx":10},"children":["Incorrect request payload"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Issue:"]}," Cancellation request fails due to missing or incorrect fields."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensure ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["request_property_approval"]}," is included and set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Include a valid order ID and a meaningful reason for cancellation."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example of correct payload:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"order\": \"509430129718799\",\n    \"reason\": \"I would like to book another property instead of this one.\",\n    \"request_property_approval\": true\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"property-information-not-available","__idx":11},"children":["Property information not available"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Issue:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refuses_free_cancellation_requests"]}," is missing in the response."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Include \"extras\": [\"refuses_free_cancellation_requests\"] in your v3.2 accommodations/details request."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensure the request is targeting the correct property ID and using Demand v3.2 endpoints."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If still unavailable, the property may not support free cancellation requests via the API."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"delayed-approval-from-the-property","__idx":12},"children":["Delayed approval from the property"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Issue:"]}," Response indicates request is pending."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Solution:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Approval depends on the property. Some may take time to respond."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use orders/details periodically to check the current approval status."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Notify the traveller that the cancellation is under review."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Refer to the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"//demand/docs/support/error-handling/about-errors"},"children":["general error handling guide"]}," for generic error codes and examples."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices-for-implementation","__idx":13},"children":["Best Practices for implementation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["✓ ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Always check property cancellation policy first"]}," - Prevent unnecessary requests to properties that refuse free cancellations."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["✓ ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Provide a clear reason"]}," - The reason field improves approval chances and helps the property understand the context."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["✓ ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Handle approvals asynchronously"]}," - Approval is not guaranteed and may take time; inform travellers accordingly."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["✓ ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Integrate with orders/details"]}," - Confirm at the reservation level whether the booking allows a free cancellation request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["✓ ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Testing and validation"]}," - Rigorously test the cancellation feature to ensure it functions as intended across various scenarios, including edge cases."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Curious to know more?"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Refer to the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/orders-api/order-details"},"children":["orders/details"]}," guide for instructions and examples on how to use this endpoint."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Learn about the supported ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/demand/docs/orders-api/cancellation-policies"},"children":["cancellation policies"]}," to provide the right information in the cancellation process."]}]}]}]},"headings":[{"value":"Cancel accommodation orders for less","id":"cancel-accommodation-orders-for-less","depth":1},{"value":"The cancellation process","id":"the-cancellation-process","depth":2},{"value":"Overview","id":"overview","depth":3},{"value":"Step-by-step process","id":"step-by-step-process","depth":2},{"value":"1. Check Cancel for less eligibility","id":"1-check-cancel-for-less-eligibility","depth":3},{"value":"2.  Send cancellation request","id":"2--send-cancellation-request","depth":3},{"value":"3. Check applied cancellation fee","id":"3-check-applied-cancellation-fee","depth":3},{"value":"Handling errors","id":"handling-errors","depth":2},{"value":"Cancellation request not approved","id":"cancellation-request-not-approved","depth":3},{"value":"Attempting to cancel an ineligible order","id":"attempting-to-cancel-an-ineligible-order","depth":3},{"value":"Incorrect request payload","id":"incorrect-request-payload","depth":3},{"value":"Property information not available","id":"property-information-not-available","depth":3},{"value":"Delayed approval from the property","id":"delayed-approval-from-the-property","depth":3},{"value":"Best Practices for implementation","id":"best-practices-for-implementation","depth":2}],"frontmatter":{"title":"Cancel accommodation orders for less","description":"Enable travellers to request an accommodation cancellation without paying the usual fee if the property approves. Learn how to check property eligibility, send cancellation requests, and handle responses in Demand API v3.2.","tags":["demand-api","orders","cancellations","accommodations","cancel-for-less","orders-management"],"api":["/orders/cancel","/orders/details","/accommodations/details"],"keywords":["Booking.com cancellations API","cancel for less","cancellation fee waiver","cancellation policy","property approval","Demand API v3.2"],"x-redocly":{"seo":{"title":"Cancel accommodation orders for less in Booking.com Demand API v3.2","description":"Learn how to use the Cancel for less feature in Booking.com’s Demand API v3.2 to request property-approved fee waivers for accommodation cancellations."},"audience":["developer","partners"],"apiVersion":"v3.2","product":"accommodation"},"seo":{"title":"Cancel accommodation orders for less v3.2"}},"lastModified":"2026-04-09T11:33:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/demand/docs/orders-api/3.2/cancel-for-less","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}