GUIDE > SHARING
Sharing Availability with Bedful
The Bedful API is designed to share availability on the same properties across multiple systems, in order to make booking management simple for owners, and reduce the risk of double bookings. Other booking systems are welcome to build an integration with Bedful, to enable owners that wish to use both systems to sell the same availability across multiple systems
How to Share
We recommend you use our events based API to share availability with bedful as it is the easiest way to ensure you are up to date and informed as soon as bookings are created or updated. If you already synchronise with ical, and wish to use ical to check availability, you can do so.
Requirements
When sharing availability with bedful, you must ensure:
- Each resource (bookings, sites, units) should have a unique identifier on your system which you share with bedful
- Each shared resource (bookings, sites, units) must have a one-to-one relationship with your system - so for every shared unit on bedful, there must be a unit on your system, for every booking you should create a corresponding booking.
- That you correctly handle multiple unit bookings (Bedful bookings may have multiple units)
- When calling a webhook, if you receive an http response code which is not 200 OK, you should retry the event after a pause, preferably with exponential backoff. This is in case of network failures or a transient server problem
Formats
The bedful system uses JSON to represent data sent between systems. We dispatch an event to your system every time a booking is created, updated, or cancelled. By default, these events are sent as JSON. We may be able to accommodate additional formats if your API already accepts an alternative format. If you have other requirements and many of our partners us your system, please get in touch and we will attempt to accommodate you.
Availability Events
In order to share bookings both ways with bedful, all you need are two actions:
Sending Events to Bedful
- When your system creates a booking, it should send an event to bedful. See Creating Bookings for more detail.
- When your system updates a booking, it should send an event to bedful, this is similar to the create booking event, but may contain just a few fields. See Updating Bookings for more detail.
- When your system cancels a booking, it should send an event to bedful, see Cancelling Bookings for more detail.
Receiving Events from Bedful
You should define an endpoint which is able to receive events from the bedful api via POST. This will receive booking create, update, and cancel events.
- When a bedful booking is created, an event will be sent to your endpoint with the booking details.
- When a bedful booking is updated, an event will be sent to your endpoint with the booking details (the same details as a create event).
- When a bedful booking is cancelled, an event will be sent to your endpoint with the booking details.
- If you wish to receive data in a different format, please let us know.
To read more about sending and receiving events, see our Availability Events Guide.
Hosted Online Bookings
The simplest option for integrating with bedful is to use the bedful booking flow - a booking flow is provided for each site at book.bedful.com, and you can link to the relevant page for a given partner. This is most suitable for single partners to integrate as it requires no development work, but it doesn't allow much control over the booking flow styling or search options.
As Bedful features a full accommodation search and booking flow, including payment processing, we are not able to send partially completed bookings or enquiries to be completed on other systems. Customers of properties on Bedful complete their bookings on our booking flow, and once payment is collected we will dispatch an event with the relevant booking details to your system, in order to block out the availability.
To read more about our hosted booking flow, see our Hosted Online Bookings Guide.
Live Availability
You can also check availability using the Bedful API to check whether a site or unit has options available for given dates and party details. This may be suitable for sales channels which don't store availability information and simply wish to present availability to guests before they try to book. Guests could then use the hosted booking flow to book on the Bedful system, and the commission may be split between Bedful and the commission channel.
To read more about querying live availability, see the Site Resource.
Polling for Availability with iCal
If you are unable to spend time building an API, and have limited requirements, you may find that a polling iCalendar (iCal) integration is suitable. Bedful publishes iCal feeds for all units, and reads generic iCal feeds by default. We are able to parse some limited information out of iCal feeds for use when populating new bookings. You can poll the feeds every 15 minutes, and publish feeds which the bedful system will check regularly for new bookings.
There are downsides to iCal vs an event-based integration - updates to bookings can be unreliable, and it is possible if the iCal feeds are misconfigured to reflect bookings back between systems by mistake. There is also a chance of double bookings caused by the gap between polling events, whereas an event based api should update instantly.
To read more about integrating with iCal, see our iCal Integration Guide