{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-connectivity/docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Availability management","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":"availability-management","__idx":0},"children":["Availability management"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a guest sends an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RTB"]}," request, you must block your property's availability immediately,"," ","before any reservation exists. This is the core difference from RtB 1.x, where you block availability"," ","only when the request becomes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BOOKED"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["As a Connectivity Provider (channel manager), that means keeping ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["provider-side availability in sync"," ","across every channel"]}," you list the property on, so that a request received through Booking.com does"," ","not lead to a double-booking elsewhere."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"pre-booking-vs-post-booking-which-api-to-follow","__idx":1},"children":["Pre-booking vs. post-booking: which API to follow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For requests with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requestType = RTB"]},", use the RtB API as the source of truth for provider-side"," ","availability holds during the pre-booking flow. For such requests, the booking request itself"," ","represents an availability hold. When you later receive the reservation via the Reservations API,"," ","assume availability has already been managed by the RtB flow. Do ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," block it again."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For post-booking actions (such as cancellations or modifications), continue to use the"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Reservations API as the source of truth"]}," and follow your current availability logic. RtB 2.0 does"," ","not change post-booking flows."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"status-based-availability-rules","__idx":2},"children":["Status-based availability rules"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For single-unit properties listed across multiple channels, blocking and releasing availability at"," ","the right moment prevents double-bookings."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INQUIRY"]}," requests, do not change your availability when a request is created. Block availability"," ","only once the request transitions to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BOOKED"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RTB"]}," requests, block and release provider-side availability according to the request status:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Request status"},"children":["Request status"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What it means"},"children":["What it means"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What you do"},"children":["What you do"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A new pending RtB 2.0 request was created."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Immediately block provider-side availability for the requested unit and dates, and sync the hold across your channels."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["APPROVED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Partner approved the request. Booking.com is creating the reservation."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Keep availability blocked. Do not change anything."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BOOKED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Reservation successfully created."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Keep availability blocked. Do ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," block it again when you receive the reservation via the Reservations API. It was already blocked at ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATED"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REJECTED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Partner rejected the request."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Release the provider-side availability you blocked at ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATED"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EXPIRED_PENDING_APPROVAL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Partner did not respond in time; the request auto-expired."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Release provider-side availability."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED_TO_PROCESS"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Partner approved, but Booking.com failed to create a reservation."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Release provider-side availability. No reservation will be created."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WITHDRAWN_PENDING_APPROVAL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The guest withdrew the request while it was pending."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Release the provider-side availability you blocked at ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CREATED"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/connectivity/docs/request-to-book/withdrawal"},"children":["Handling guest withdrawals"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WITHDRAWN_PENDING_APPROVAL"]}," status is available in the RTB flow from API version ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2.1.0"]},"."," ","See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/connectivity/docs/request-to-book/withdrawal"},"children":["Handling guest withdrawals"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/connectivity/docs/request-to-book/technical-overview#versioning"},"children":["Versioning"]},"."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Continuously monitor status"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RTB"]}," requests, monitor the request status and update your availability as it changes. Releasing"," ","a hold promptly on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REJECTED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EXPIRED_PENDING_APPROVAL"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FAILED_TO_PROCESS"]},", and"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WITHDRAWN_PENDING_APPROVAL"]}," returns inventory to your other channels."]}]}]},"headings":[{"value":"Availability management","id":"availability-management","depth":1},{"value":"Pre-booking vs. post-booking: which API to follow","id":"pre-booking-vs-post-booking-which-api-to-follow","depth":2},{"value":"Status-based availability rules","id":"status-based-availability-rules","depth":2}],"frontmatter":{"title":"RtB 2.0 availability management","description":"Provider responsibilities for managing and syncing inventory for Request to Book 2.0, including status-based availability rules for RTB requests and cross-channel synchronization.","keywords":{"includes":["RTB","INQUIRY","requestType","rtb","inquiry","inventory","availability","FAILED_TO_PROCESS","cross-channel"]},"seo":{"title":"Availability management"}},"lastModified":"2026-07-29T11:41:00.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/connectivity/docs/request-to-book/rtb-2.0/availability-management","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}