Skip to main content

Bookings

Overview

This resource represents the Bookings (reservations) occupying the calendar for a given Rental.

Depending on the use case, there are various types of Bookings (determined by status attribute):

  • Booked - the actual confirmed bookings for a given Client.

  • Tentative - the bookings that are not confirmed yet. Either these bookings eventually become Booked or they expire (which is determined by tentative_expires_at attribute) and are canceled in such such case.

  • Unavailable - mostly useful for blocking the calendar (e.g. for a given season)

  • Canceled - the bookings that no longer occupy the calendar

Parameters

NameTypeRead/WriteDescription
idIntegerReadBooking's id.
referenceStringReadBooking's reference code.
statusStringReadBooking's status.
updated_atTimeReadBooking's update time.
start_atTimeReadBooking's start time.
end_atTimeReadBooking's end time.

List bookings

Based on the OAuth token scopes bookings listing will be limited to a certain range.

ScopeRead Permissions
:publicDisplay only future, not canceled bookings
:bookings_write_ownedDisplay only future, not canceled bookings
:bookings_readDisplay all bookings
:bookings_writeDisplay all bookings

Returns a list of all bookings for current account(s).

Returns only future and non-canceled bookings by default

By default this endpoint returns only future and non-canceled bookings, if you like to change this behavior, make sure to check the search parameters.

GET /bookings
response.json
{
"links": {
"bookings.account": "https://www.bookingsync.com/api/v3/accounts/{bookings.account}",
"bookings.rental": "https://www.bookingsync.com/api/v3/rentals/{bookings.rental}",
"bookings.bookings_tags": "https://www.bookingsync.com/api/v3/bookings_tags/{bookings.bookings_tags}",
"bookings.rentals_tags": "https://www.bookingsync.com/api/v3/rentals_tags/{bookings.rentals_tags}",
"bookings.discount_code_usage": "https://www.bookingsync.com/api/v3/discount_code_usages/{bookings.discount_code_usage}"
},
"bookings": [
{
"links": {
"account": 1,
"rental": 16,
"bookings_tags": [
1,
2
],
"rentals_tags": [],
"discount_code_usage": 12
},
"id": 203,
"start_at": "2025-04-07T22:18:28Z",
"end_at": "2025-04-14T22:18:28Z",
"status": "Booked",
"updated_at": "2025-03-24T22:18:28.810Z"
}
],
"meta": {}
}

Search bookings

Search parameters allow to filter bookings by specified fields.

Example:

GET /bookings?status=booked,unavailable&from=20140324

Search Parameters

NameTypeDefaultDescription
fromTimenowBookings ending after given time. Default is now.
untilTimeBookings starting before given time.
monthsIntegerBookings starting before :from + :months.
statusStringList of comma separated statuses. Possible values: booked,unavailable,tentative.
include_canceledBooleanfalseShow also canceled bookings (requires :bookings_read or :bookings_write scope).
rental_idStringList of comma separated IDs. Returns only bookings for this rental(s)
client_idStringList of comma separated IDs. Returns only bookings for this client(s)
updated_sinceTimeBookings updated after given time. Also includes ids of bookings canceled after given time.

Get a single booking

Returns a single booking identified by ID

GET /bookings/:booking_id
response.json
{
"links": {
"bookings.account": "https://www.bookingsync.com/api/v3/accounts/{bookings.account}",
"bookings.rental": "https://www.bookingsync.com/api/v3/rentals/{bookings.rental}",
"bookings.bookings_tags": "https://www.bookingsync.com/api/v3/bookings_tags/{bookings.bookings_tags}",
"bookings.rentals_tags": "https://www.bookingsync.com/api/v3/rentals_tags/{bookings.rentals_tags}",
"bookings.discount_code_usage": "https://www.bookingsync.com/api/v3/discount_code_usages/{bookings.discount_code_usage}"
},
"bookings": [
{
"links": {
"account": 1,
"rental": 16,
"bookings_tags": [
1,
2
],
"rentals_tags": [],
"discount_code_usage": 12
},
"id": 203,
"start_at": "2025-04-07T22:18:28Z",
"end_at": "2025-04-14T22:18:28Z",
"status": "Booked",
"updated_at": "2025-03-24T22:18:28.815Z"
}
],
"meta": {}
}

Create a new booking

Status assignment

To assign a status to a booking, you have to set either booked, unavailable or tentative_expires_at fields. Only one of those attributes can be used at the same time.

Creates a booking for given rental.

POST /rentals/:rental_id/bookings
request.json
{
"bookings": [
{
"booked": true,
"client_id": 37,
"adults": 5,
"currency": "USD",
"discount": "10%",
"final_price": "2700.0",
"initial_price": "3000.0",
"start_at": "2025-04-07",
"end_at": "2025-04-14",
"bookings_tag_ids": [
1,
2
]
}
]
}
response.json
{
"links": {
"bookings.account": "https://www.bookingsync.com/api/v3/accounts/{bookings.account}",
"bookings.rental": "https://www.bookingsync.com/api/v3/rentals/{bookings.rental}",
"bookings.client": "https://www.bookingsync.com/api/v3/clients/{bookings.client}",
"bookings.rental_agreement": "https://www.bookingsync.com/api/v3/rental_agreements/{bookings.rental_agreement}",
"bookings.source": "https://www.bookingsync.com/api/v3/sources/{bookings.source}",
"bookings.inquiry": "https://www.bookingsync.com/api/v3/inquiries/{bookings.inquiry}",
"bookings.booking_comments": "https://www.bookingsync.com/api/v3/booking_comments/{bookings.booking_comments}",
"bookings.bookings_fees": "https://www.bookingsync.com/api/v3/bookings_fees/{bookings.bookings_fees}",
"bookings.bookings_taxes": "https://www.bookingsync.com/api/v3/bookings_taxes/{bookings.bookings_taxes}",
"bookings.payments": "https://www.bookingsync.com/api/v3/payments/{bookings.payments}",
"bookings.bookings_payments": "https://www.bookingsync.com/api/v3/bookings_payments/{bookings.bookings_payments}",
"bookings.bookings_tags": "https://www.bookingsync.com/api/v3/bookings_tags/{bookings.bookings_tags}",
"bookings.rentals_tags": "https://www.bookingsync.com/api/v3/rentals_tags/{bookings.rentals_tags}",
"bookings.discount_code_usage": "https://www.bookingsync.com/api/v3/discount_code_usages/{bookings.discount_code_usage}"
},
"bookings": [
{
"links": {
"account": 1,
"rental": 16,
"client": 37,
"inquiry": null,
"rental_agreement": null,
"source": null,
"bookings_fees": [],
"bookings_payments": [
23
],
"bookings_taxes": [],
"bookings_tags": [
1,
2
],
"booking_comments": [],
"conversations": [
11
],
"payments": [
23
],
"rentals_tags": [],
"discount_code_usage": 12
},
"id": 80,
"start_at": "2025-04-07T22:18:28Z",
"end_at": "2025-04-14T22:18:28Z",
"status": "Booked",
"updated_at": "2025-03-24T22:18:28.827Z",
"reference": "0000EG",
"booked": true,
"unavailable": false,
"tentative_expires_at": null,
"initial_price": "3000.0",
"initial_rental_price": "3000.0",
"channel_price": null,
"discount": "10%",
"final_price": "2700.0",
"final_rental_price": "2700.0",
"downpayment": null,
"paid_amount": "2700.0",
"currency": "USD",
"notes": "",
"damage_deposit": "0.0",
"charge_damage_deposit_on_arrival": true,
"adults": 5,
"children": null,
"bookings_payments_count": 1,
"review_requests_count": 0,
"locked": null,
"created_at": "2025-03-17T22:18:28.827Z",
"canceled_at": null,
"expected_checkin_time": "14:45",
"expected_checkout_time": "11:30",
"payment_url": null,
"balance_due_at": "2025-03-31T22:18:28Z",
"rental_payback_to_owner": null,
"final_payback_to_owner": "0.0",
"commission": null,
"contract_updated_at": "2025-03-22T22:18:28Z",
"external_reference": null,
"owned_by_app": false,
"payment_left_to_collect": "0.0"
}
],
"meta": {}
}
Comments, Fees and Taxes

You can also pass comments, bookings fees and bookings taxes directly during a booking creation using the parameters: comments, bookings_fees and bookings_taxes.

Update a booking

Returns an updated booking identified by ID.

PUT /bookings/:booking_id
request.json
{
"bookings": [
{
"booked": true,
"client_id": 37,
"adults": 5,
"currency": "USD",
"discount": "10%",
"final_price": "2700.0",
"initial_price": "3000.0",
"start_at": "2025-04-07T22:18:28Z",
"end_at": "2025-04-14T22:18:28Z"
}
]
}
response.json
{
"links": {
"bookings.account": "https://www.bookingsync.com/api/v3/accounts/{bookings.account}",
"bookings.rental": "https://www.bookingsync.com/api/v3/rentals/{bookings.rental}",
"bookings.bookings_tags": "https://www.bookingsync.com/api/v3/bookings_tags/{bookings.bookings_tags}",
"bookings.rentals_tags": "https://www.bookingsync.com/api/v3/rentals_tags/{bookings.rentals_tags}",
"bookings.discount_code_usage": "https://www.bookingsync.com/api/v3/discount_code_usages/{bookings.discount_code_usage}"
},
"bookings": [
{
"links": {
"account": 1,
"rental": 16,
"bookings_tags": [
1,
2
],
"rentals_tags": [],
"discount_code_usage": 12
},
"id": 203,
"start_at": "2025-04-07T22:18:28Z",
"end_at": "2025-04-14T22:18:28Z",
"status": "Booked",
"updated_at": "2025-03-24T22:18:28.833Z"
}
],
"meta": {}
}

Cancel a booking

Required OAuth scope: :bookings_write or :bookings_write_owned

Returns an empty response with 204 No Content status code on success.

DELETE /bookings/:booking_id