PMS reservation support
When a listing is managed in a connected PMS, reservations created, changed, cancelled and quoted through the API are made in that PMS. This page lists what each PMS's API allows, the limits you will meet, and the access the PMS has to grant. For how routing, idempotency and errors work, see Creating reservations.
The API tells you per listing
GET /v1/listings/{id} → capabilities.reservations answers the same questions for one listing, and also accounts for a dropped connection or a write policy that turns API bookings off. Read it at runtime; use this page to plan.Summary
| PMS | Create | Change | Cancel | Quote | Custom price | Verification |
|---|---|---|---|---|---|---|
| Mews | ✓ | ✓ | ✓ | – | ✓ | Vendor sandbox |
| Cloudbeds | ✓ | ✓ | ✓ | – | – (rate plan price) | Vendor sandbox |
| Hostaway | ✓ | ✓ | ✓ | ✓ | ✓ | Vendor API docs |
| Guesty | ✓ | ✓ | ✓ (direct + Vrbo) | ✓ | ✓ | Vendor API docs |
| Beds24 | ✓ | ✓ | ✓ | ✓ | ✓ | Vendor API docs |
| BookingSync | ✓ | ✓ | ✓ | ✓ | ✓ | Vendor API docs |
| Lodgify | ✓ | ✓ | ✓ (declines) | ✓ | ✓ | Vendor API docs |
| Smoobu | ✓ | ✓ (no dates) | ✓ | ✓ | ✓ | Vendor API docs |
| Hospitable | ✓ | ✓ | ✓ | ✓ (Direct plan) | ✓ | Vendor API docs |
| iGMS | ✓ | ✓ | ✓ | – | ✓ (required) | Vendor API docs |
| OwnerRez | ✓ | ✓ | – | ✓ | – (property rates) | Vendor API docs |
| Track | ✓ | ✓ | ✓ | ✓ | ✓ (Channel Key: "Allow Custom Pricing") | Vendor API docs |
Custom price means totalPrice on create is honoured. Without it — or when you leave it out — the PMS prices the stay. Verification: Mews and Cloudbeds were run end to end on their vendors' sandboxes. Every other PMS is verified against the vendor's API documentation; the same value comes back as capabilities.reservations.verifiedAgainst.
Rules that apply to every PMS
- Bookings that came from a channel — Airbnb, Booking.com, Vrbo, Expedia, iCal — are changed and cancelled on the channel, even when they reached you through the PMS: 409 reservation_owned_by_channel.
- Group bookings (several rooms under one reservation) are created only on Cloudbeds. Elsewhere they are refused, and an existing group booking is changed in the PMS (409 pms_group_booking).
- Owner stays are blocked in the PMS:
platform: "owner"on a PMS listing answers422 pms_write_unsupported. - Anything a PMS's API cannot do is refused with 422 pms_write_unsupported and where to do it instead — never accepted and quietly ignored.
- A connection granted without booking write access answers 403 connection_reauth_required. Reconnect with the access listed below, then retry with the same
Idempotency-Key.
By PMS
Mews
Verified end to end on the vendor’s sandbox.
- Create (optionally at a set price), change dates, guest count and room, add notes, cancel.
- No quote API: price the booking with
totalPrice, or let Mews price it. - Single-room bookings only; a group booking is refused.
Access needed: The property’s Mews Connector API access token. Mews has no per-operation scopes.
Connect: POST /v1/connect/mews · Mews guide
Cloudbeds
Verified end to end on the vendor’s sandbox.
- Books at the rate plan’s price:
totalPriceis not honoured. - The only PMS that takes group bookings.
- Change dates, guest count and room, add notes, cancel. No quote API.
Access needed: A Cloudbeds API key (or OAuth grant) with reservation write access.
Connect: POST /v1/connect/cloudbeds · Cloudbeds guide
Hostaway
Verified against the vendor’s API documentation.
- Direct-channel bookings only: Airbnb, Booking.com and other channel bookings cannot be created, changed or cancelled.
- Create at a set total or at the price Hostaway’s calculator gives.
- A date change keeps the booked total.
- A group booking or a specific unit is refused.
Access needed: Hostaway account ID and API secret (Settings → Public API).
Connect: POST /v1/connect/hostaway · Hostaway guide
Guesty
Verified against the vendor’s API documentation.
- Create from a quote at Guesty’s price, or at a set accommodation price.
- Change dates, guest count, listing, notes and guest details.
- Cancels direct and Vrbo bookings; other channel bookings are cancelled on the channel.
- Single-unit bookings only; a group booking is refused.
Access needed: Guesty Open API client ID and secret (Integrations → Open API).
Connect: POST /v1/connect/guesty · Guesty guide
Beds24
Verified against the vendor’s API documentation.
- Direct bookings, at a set total or priced from the room’s Beds24 offer.
- A property with several rooms needs
unitIdto book; Beds24 refuses a create when the room is full. - A date change keeps the booked price.
- Channel bookings cannot be changed or cancelled. Single-room bookings only.
Access needed: An invite code that grants write:bookings, plus bookings-personal (guest details) and bookings-financial (price). Without it, writes answer connection_reauth_required.
Connect: POST /v1/connect/beds24 · Beds24 guide
BookingSync
Verified against the vendor’s API documentation.
- Create at a set total or at the price BookingSync’s rental search gives.
- Channel-imported bookings are refused.
- Fees and taxes are not itemized on the booking; a date change keeps the price.
- No guest email is sent.
Access needed: bookings_write (or bookings_write_owned, which limits changes to bookings your app created) and clients_write.
Connect: POST /v1/connect/bookingsync · BookingSync guide
Lodgify
Verified against the vendor’s API documentation.
- Cancel declines the booking in Lodgify; it is not deleted.
- Create at Lodgify’s own price or a set total; the requested status is read back and confirmed when needed.
- Single-room bookings only. Bookings from Airbnb, Booking.com, Vrbo, Expedia or iCal are changed on that channel.
Access needed: The account’s Lodgify API key (Settings → Public API).
Connect: POST /v1/connect/lodgify · Lodgify guide
Smoobu
Verified against the vendor’s API documentation.
- Dates cannot be changed through Smoobu’s API: cancel and rebook, or change them in Smoobu. Guest details, guest counts and notes can be changed.
- Direct bookings only, at a set total or the price Smoobu’s availability check returns.
- Single-apartment bookings only; channel bookings cannot be changed or cancelled.
Access needed: An API key and API secret (Settings → Advanced → API Keys). Legacy single API keys stop working on October 31, 2026.
Connect: POST /v1/connect/smoobu · Smoobu guide
Hospitable
Verified against the vendor’s API documentation.
- Manual reservations only: Airbnb, Vrbo, Booking.com and Direct bookings cannot be changed or cancelled.
- Quotes need an active Hospitable Direct plan.
- Hospitable adds no fees or taxes: the booking carries exactly the price given, and a date change keeps it.
- A vendor app can only change or cancel bookings it created, and none after the host edits one in Hospitable.
Access needed: reservation:write. An OAuth (vendor) app must ask Hospitable to grant it; a personal access token needs write access.
Connect: POST /v1/connect/hospitable · Hospitable guide
iGMS
Verified against the vendor’s API documentation.
- Direct bookings on iGMS’s own platform (airgms) only.
- No quote API, so
totalPriceis required, and it is rounded to a whole-number total. - A specific unit or a tentative hold is refused; a date change keeps the total.
- Channel bookings cannot be changed or cancelled.
Access needed: The direct-bookings access scope.
Connect: POST /v1/connect/igms · iGMS guide
OwnerRez
Verified against the vendor’s API documentation.
- No cancel: OwnerRez’s API cannot cancel a booking. Cancel it in OwnerRez; the cancellation arrives with the next sync.
- Bookings are priced by the property’s own rates and rules (no custom total).
- A date or guest-count change does not recalculate charges; adjust them in OwnerRez.
- Change dates, guest counts, notes and the guest’s name.
Access needed: The OAuth app’s full scope.
Connect: POST /v1/connect/ownerrez · OwnerRez guide
Track
Verified against the vendor’s API documentation.
- Create at Track’s quoted price or a set price. With a Channel Key, a set price needs "Allow Custom Pricing" on the distribution channel.
- Track decides whether a new booking is a Hold or Confirmed from the property’s policies; without a payment it is usually a Hold, which can expire. A confirmed booking is requested, and the response says when Track keeps it a Hold.
- Bookings locked to a channel (Airbnb, Vrbo, Booking.com) cannot be changed or cancelled; change them on the channel.
- A date change re-prices the stay at Track’s current rates. Moving a booking to another unit needs
moveReasonIdset on the connection; without it the change is refused. - No refunds (Track has no refund API). Single-unit bookings only.
Access needed: A Server Key (Configuration → Company Setup → API Keys) for every operation. A Channel Key (Configuration → PMS Setup → Distribution Channels) can only quote, create, confirm and cancel.
Connect: POST /v1/connect/track · Track guide
Related
Creating reservations · PMS write policy · PMS coverage · API reference