Terminology
- OTA: Online travel agency (ex: booking.com, or competitor)
- cid: Channel ID - a two to four character code used by Cloudbeds uniquely identify an OTA.
- guid: Globally unique identifier, a unique 36 character code which identifies a request. Useful for seeing if a request is a retry and for debugging.
Requests
Cloudbeds will send requests to the OTA with content-type
application/json, with the payload being in the body of the request. Gzip
compression and keep-alives will be used if supported. HTTPS
(SSL encryption) is required for the OTA's endpoint. If an endpoint with
a port other than 443 is to be used Cloudbeds will need to allow-list
this port first.
HTTP response codes from Cloudbeds should always be 200. They have the
content-type application/json.
Required API calls
As a minimum these API calls need to be implemented on the OTA side:
- HealthCheck
- SetupProperty
- GetRoomTypes
- GetRatePlans
- ARIUpdate
- GetBookingList
- GetBookingId
If the OTA has multiple properties under one user account these API calls
are required in addition:
- GetSubProperties
Credit/debit card data
If your channel transmits guest credit/debit card data to Cloudbeds, the
following applies:
- A PCI Attestation of Compliance (AoC) document must be provided to
Cloudbeds and approved before card data can be enabled for your channel. - Cloudbeds must configure your channel for card handling on our side, so
please let us know — during onboarding, or before you start sending card
data — that your channel handles card data. - Card data is not accepted at the standard
BookingCreateendpoint.
Bookings containing card data must be sent to a dedicated, PCI-compliant
endpoint that Cloudbeds provides for your channel. Requests to it are
authenticated with thetx-proxy-keyheader issued by Cloudbeds, or from
source IP addresses you supply for allow-listing. See theBookingCreate
documentation for details. - For
GetBookingId, card retrieval is handled over a secure path configured
on the Cloudbeds side; your channel returns thePaymentsobject as
documented in the booking format. - Bookings containing card data are rejected when sent via
BookingCreate,
and silently dropped (not imported, since no error can be returned) when
returned viaGetBookingId, unless your channel has been enabled for card
handling.
Channel Manager, CRS and Broker handling
If the OTA is a channel manager, a CRS (central reservation system) or otherwise
a broker that relays bookings from other OTAs/sources then Cloudbeds need to be
notified about this to mark the OTA as a "broker". Additionally, the booking
format requires providing additional fields to ensure that properties can
correctly map sources for reports, tax/fee handling and display purposes.
The following booking format fields are required for brokered bookings to work correctly:
OrderSourceOrderSourceIdExternalReferences
Please check booking format
on how to use these fields. We also recommend implementing the SourceTree field if multiple
sources can be involved in a booking.
Following is an example of a booking that originally came through Expedia:
{
"OrderSource": "Expedia",
"OrderSourceId" : "exp",
"ExternalReferences" : [
{
"Type" : "OTA",
"Reference" : "2280949650"
}
]
}
