Support · Integrations

Cloudbeds Integration Guide.

How to connect a Cloudbeds property to Escapra, what data is exchanged, the boundaries of the current integration, and how to get help if something goes wrong. Written for hoteliers and property managers who already operate a Cloudbeds account and want to distribute their inventory through Escapra.

1. How to sign up for Escapra

If you do not yet have an Escapra account, request access via our hotel contact form and complete onboarding. You will be asked for your legal business name, the trading name of the property, the country of registration, a primary contact email, a phone number, and the Cloudbeds property ID you intend to connect. You will also need to upload a copy of your commercial registration or trade licence so we can verify the property. Approval typically takes one to two business days. Most applications are reviewed within 24 hours during the working week, and you will receive an email with onboarding instructions once your account is activated. If your property operates in a regulated jurisdiction such as Bahrain or Saudi Arabia, additional documentation may be requested before activation. There is no charge to create an Escapra account, and commercial terms are agreed separately during onboarding before any live bookings are taken.

2. How to connect Cloudbeds

Before starting the connection, confirm two things. First, the Cloudbeds property must be active and fully configured with at least one room type, one rate plan, and a published availability calendar. Second, the person performing the connection must hold an administrator role in Cloudbeds, because the OAuth consent screen will refuse to authorize an account with insufficient permissions.

Once those preconditions are met, sign in to the Escapra admin dashboard at https://admin.escapra.com. From the left-hand navigation, open Settings, then Integrations, then PMS Connections. Click the Add Connection button and select Cloudbeds from the provider list. Choose the Escapra property record you want to link, then click Continue to Cloudbeds. You will be redirected to the Cloudbeds login screen if you are not already signed in. After authenticating, you will be presented with the Cloudbeds authorization screen described in the next section.

3. OAuth authorization process

The Cloudbeds consent screen displays the Escapra application name, the property it will access, and the full list of permissions being requested. Review this carefully. Clicking Approve grants Escapra access; clicking Deny cancels the connection and returns you to the Escapra dashboard with no data exchanged.

Scopes requested

Escapra requests three scopes: read:reservation so we can pull existing and new bookings into our distribution layer, write:reservation so we can push bookings created on partner channels back into Cloudbeds, and offline_access so we can refresh access without asking you to reauthorize daily. We do not request scopes for financial data, guest payment instruments, or user management.

Tokens we store

When you approve the grant, Cloudbeds returns an access token and a refresh token. Both are encrypted at rest using AES-256 and stored against your property record in our PMS connector service. The access token is rotated automatically before expiry using the refresh token. We never store your Cloudbeds password and we cannot see it at any point in the flow.

4. Reservation synchronization

Reservations flow in both directions, but the boundaries are deliberate. Escapra reads every reservation associated with the connected property, regardless of source, so that our availability picture stays accurate. Escapra only writes reservations that originate from channels we distribute to; we never modify a reservation that was created directly in Cloudbeds or by another channel manager.

Webhook events handled

We subscribe to four Cloudbeds webhook events. reservation/created triggers ingestion of a new booking. reservation/status_changed updates confirmed, cancelled, no-show, and checked-in states. reservation/dates_changed captures stay-date modifications. reservation/accommodation_changed captures room type changes. Each event is processed within seconds of receipt and reflected in the Escapra dashboard.

Delta resync fallback

Webhooks are reliable but not infallible. To guard against missed events caused by transient network failures or webhook endpoint outages, Escapra runs a delta resync every 48 hours that pulls all reservations modified in the previous 50 hours and reconciles them against our local copy. Any discrepancy is corrected automatically and logged for audit.

5. Rate synchronization

Rates are pulled from the rate plans you have already configured in Cloudbeds. We do not create or rename rate plans on your behalf; the names, occupancy structures, and base prices you set in Cloudbeds are the source of truth. Each connected rate plan is mapped to an Escapra distribution product during onboarding, and that mapping is locked unless you explicitly change it from the Rate Mapping screen.

Refresh runs on two cadences. A delta refresh runs every five minutes and captures any rate changes Cloudbeds has flagged as modified since the last poll, which keeps day-to-day pricing changes near real-time. A full refresh runs every four hours and re-reads the entire rate calendar for the next 365 days, which catches any silent edits or backfilled corrections that did not produce a modification flag.

We also honour the common length-of-stay restrictions Cloudbeds exposes on each rate plan: minimum stay (minStay) and maximum stay (maxStay). These are applied at the search and booking layer so that partner channels cannot generate bookings that violate your stay rules.

6. Availability synchronization

Availability follows the same five-minute delta and four-hour full-refresh cadence as rates, and uses the same webhook signals where Cloudbeds emits them. Inventory is read at the room-type level and exposed in the Escapra distribution surface as an integer count of available units per room type per night.

Once availability is loaded, it becomes bookable across every partner channel your property is enabled on. The Escapra distribution layer sits between Cloudbeds and the channels, so when a booking is confirmed on any channel, the corresponding unit is decremented in Escapra immediately and the write-back to Cloudbeds follows within seconds. This prevents the over-allocation that can occur when two channels race to sell the last unit. Stop-sells, closed-to-arrival, and closed-to-departure flags set in Cloudbeds are also respected.

7. Integration limitations

We aim to be transparent about what the current Cloudbeds integration does not yet do, so you can plan around the gaps.

Taxes and fees are not synchronized at present. Escapra applies the tax and fee structure configured in your Escapra property profile, which must be kept in line with the structure you operate in Cloudbeds. Automated tax sync is on the roadmap.

Unit-level room assignment is not supported. We work at the room-type level only, so the specific room number assigned to a guest remains a decision made inside Cloudbeds at check-in.

Cancellations are a binary status flip. When a booking is cancelled on a partner channel, we mark the Cloudbeds reservation as cancelled, but we do not compute or post cancellation fees against the original folio. Any cancellation fee policy must be resolved manually in Cloudbeds.

Modifications are limited to date changes and reservation moves between dates, and only where the Cloudbeds API permits the change on a reservation in its current state. Guest detail edits and rate edits on existing bookings are not pushed.

Finally, webhook subscriptions are registered manually by the Escapra onboarding team in the Cloudbeds developer portal during your activation, rather than programmatically. This is a one-time step.

8. Disconnect process

You can disconnect Cloudbeds from Escapra at any time. Sign in to the Escapra admin dashboard, open Settings, then Integrations, then PMS Connections. Locate the Cloudbeds connection in the list, click the three-dot menu, and select Disconnect. You will be asked to confirm.

On confirmation, two things happen. Locally, your encrypted access and refresh tokens are deleted from our PMS connector service immediately, and the connection record is marked inactive so that no further reads or writes are attempted. Remotely, we send a revocation request to Cloudbeds to mark the OAuth grant for invalidation. Cloudbeds typically propagates the revocation within a few minutes, after which the Escapra application will no longer appear under Connected Apps in your Cloudbeds account.

If you later want to reconnect, simply repeat the steps in section 2. A fresh OAuth flow will be initiated, your existing room type and rate plan mappings will be restored from the inactive connection record, and synchronization will resume from the point of reconnection.

9. Troubleshooting

OAuth callback failed

Cause: the most common reason is that the authorizing user does not have administrator permissions in Cloudbeds, or the browser blocked the redirect because of a strict third-party cookie policy. Resolution: confirm the user is an administrator, then retry the flow in a standard browser window with no aggressive privacy extensions enabled. If the issue persists, capture the error code shown on the callback page and contact support.

Webhook stopped firing

Cause: Cloudbeds occasionally disables webhook subscriptions after repeated delivery failures, for example during an extended endpoint outage. Resolution: the 48-hour delta resync will keep reservations consistent in the meantime. Contact support so we can re-register the webhook in the Cloudbeds developer portal.

Reservations not appearing in Escapra

Cause: either the reservation was created on a room type that is not mapped to an Escapra distribution product, or the connection has expired and tokens were not refreshed. Resolution: check the Rate Mapping and Room Mapping screens for unmapped entries, then check the connection status on the PMS Connections screen. A red status indicates a token problem and usually requires a reconnect.

Rate changes not syncing

Cause: the rate plan in Cloudbeds is not mapped to an Escapra product, or the change falls outside the 365-day forward window. Resolution: confirm the mapping exists and the affected dates are within the next 365 days. If both are true, force a manual refresh from the Rate Mapping screen and contact support if changes still do not appear within ten minutes.

Cancellation didn't reflect in Cloudbeds

Cause: cancellations on partner channels write back to Cloudbeds via the API, and write-back can fail if the Cloudbeds reservation is already in a terminal state, such as checked-out. Resolution: open the reservation in Cloudbeds and cancel it manually, then contact support with the reservation ID so we can reconcile the audit log.

10. Support contact process

For any issue not resolved by the troubleshooting section, email support@escapra.com. We aim to respond within one business day, and urgent issues affecting live bookings are prioritized.

To help us resolve the issue quickly, please include the following information in your first message: your Escapra hotel ID (visible at the top of the property dashboard), the Cloudbeds property ID, the reservation ID or rate plan ID affected if applicable, screenshots of any error messages, and the approximate timestamp of the event in your local time zone with the time zone noted. If the issue concerns a specific guest booking, include the guest's surname and check-in date so we can locate the record without ambiguity. Please do not send full credit card numbers or other sensitive payment data; we do not need it to investigate and we will ask you to redact it if it is included.

11. Frequently asked questions

What does the Cloudbeds integration cost?

There is no separate fee for the integration itself. Commercial terms for distribution are agreed during onboarding and depend on the channels you choose to enable.

How long is reservation data retained?

Reservation records are retained for seven years to meet accounting and tax record-keeping requirements in the jurisdictions we operate in. Guest personal data within those records can be redacted on request before that period elapses.

Is the integration GDPR compliant?

Yes. Escapra acts as a data processor for the personal data flowing through the integration, with your property as the controller. A data processing agreement is signed as part of onboarding, and guest data subject requests can be actioned via support.

Can I connect more than one Cloudbeds property?

Yes. Each property is connected separately with its own OAuth grant and appears as its own row on the PMS Connections screen. There is no limit on the number of properties a single Escapra account can manage.

Does the integration support Cloudbeds sub-accounts or group structures?

Yes, but each underlying property must be connected individually. Group-level reporting is available within the Escapra admin dashboard once multiple properties are connected.

What happens to my data if I disconnect?

Tokens are deleted immediately. Reservation, rate, and availability history already ingested remains in your Escapra account for audit and reporting, but no new data is read or written.

Can I reconnect after disconnecting?

Yes. Repeat the connection flow in section 2. Your previous room type and rate plan mappings are preserved and reapplied automatically, so you do not have to remap from scratch.

Where is my data hosted?

Escapra hosts production data in AWS regions within the EU and the GCC. The specific region for your account is confirmed during onboarding based on your property's jurisdiction and any data residency requirements that apply.