Relocating a Guest

Moving a reservation to another listing.

Relocate a guest by assigning the reservation to a different property/unit. This function is handy in situations where:

  • The original accommodation requires urgent maintenance before another guest can stay there.
  • You’ve accepted one too many bookings outside of Guesty and need to find space for all your guests.
  • The guest’s requirements have changed.
  • The guest decides to upgrade accommodation.

This action won’t change the payout amount by default, but you can do so afterwards.

Available Endpoints

MethodEndpoint
PUT/reservations/{id}

Key Parameters

Query ParameterTypeDescriptionRequired
idstringThe reservation ID.✔️
Body ParametersTypeDescriptionRequired
listingIdstringThe ID of the listing the reservation is being assigned to.✔️
ignoreCalendarbooleanDefault: false. Set to true to override any calendar blocks (including other reservations).
ignoreTermsbooleanDefault: false. Set to true if you wish to overlook the listing terms such as max occupancy, min nights, etc.

❗️

Override Parameters

You are responsible for any overbooking incurred as a result of the use of the ignoreCalendar and ignoreTerms parameters. These parameters should be used sparingly with care and caution.

Example

Our guest has booked our Central Sydney property. However, the apartment won't be available for the dates he booked due to water damage. We have another available property, Central Sydney Multi, in that same vicinity, and the guest has agreed to be relocated to it. The price is the same.

{
    "_id": "64c9213ba097ec00417a9911",
    "integration": {
        "_id": "5b9a25fd3bfa6d01b15a0b14",
        "platform": "manual",
        "limitations": {
            "availableStatuses": [
                "checked_in",
                "checked_out",
                "canceled"
            ]
        }
    },
    "listingId": "62ec6975134d780032b62221",
    "checkInDateLocalized": "2023-09-12",
    "checkOutDateLocalized": "2023-09-22",
    "status": "confirmed",
    "guest": {
        "_id": "64c9213aa097ec00417a9910",
        "fullName": "Ernest Hemingway"
    },
    "accountId": "5b852676354b34003f0a55eb",
    "guestId": "64c9213aa097ec00417a9910",
    "source": "Manual",
    "confirmationCode": "r2Bk86Yj4",
    "listing": {
        "_id": "62ec6975134d780032b62221",
        "nickname": "Central Sydney"
    }
}

Request

curl --request PUT 'https://open-api.guesty.com/v1/reservations/64c9213ba097ec00417a9911' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
  "listingId": "6034db72fc09e3002cf64bdf"
}
'
var myHeaders = new Headers();
myHeaders.append("accept", "application/json");
myHeaders.append("content-type", "application/json");

var raw = JSON.stringify({
  "listingId": "6034db72fc09e3002cf64bdf"
});

var requestOptions = {
  method: 'PUT',
  headers: myHeaders,
  body: raw,
  redirect: 'manual'
};

fetch("https://open-api.guesty.com/v1/reservations/64c9213ba097ec00417a9911", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://open-api.guesty.com/v1/reservations/64c9213ba097ec00417a9911',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => false,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'PUT',
  CURLOPT_POSTFIELDS =>'
{
  "listingId": "6034db72fc09e3002cf64bdf"
}
',
  CURLOPT_HTTPHEADER => array(
    'accept: application/json',
    'content-type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

import http.client
import json

conn = http.client.HTTPSConnection("open-api.guesty.com")
payload = json.dumps({
  "listingId": "6034db72fc09e3002cf64bdf"
})
headers = {
  'accept': 'application/json',
  'content-type': 'application/json'
}
conn.request("PUT", "/v1/reservations/64c9213ba097ec00417a9911", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Response

{
    "listingId": "5b87b8a82940fc01da91241d",
    "_id": "64c9213ba097ec00417a9911",
    "confirmationCode": "r2Bk86Yj4"
}