Why Quendoo Connect

Quendoo Connect is the only PMS/channel API that is Quendoo itself. Not a middleware translation layer. Not an OTA-only channel manager. Not a legacy stored-procedure endpoint wearing an HTTP hat. The team that runs Quendoo's booking engine writes and operates this API, and it reads and writes the same domain the hotelier's own dashboard reads and writes.

That single fact is the reason for everything else on this page.

The one-slide pitch

Off-the-shelf channel manager Legacy vendor PMS API Quendoo Connect
Runs inside the platform No, sits beside it No, sits beside it Yes β€” first-party
Writes go where the hotelier writes No, a mirror No, a mirror Yes β€” same use cases
Bookings delivered Best-effort push Polling only Append-only revisions feed + optional webhooks
Same-day fixes Vendor SLA Ticket queue Ship a fix, deploy, /v1/qc/changelog names it
Migration risk from legacy PMS v1 New wire, new bugs β€” Byte-parity faΓ§ade β€” you upgrade at your own pace
Auth granularity Property or nothing Property or nothing Scope Γ— property Γ— endpoint β€” three independent axes
Idempotency contract Vendor-defined, often absent Absent 24 h replay, documented, testable
Rate-limit tiers Fixed, hidden Fixed, hidden 4 buckets, headers surface budget
Documentation PDF, out of date Wiki, out of date Renders from the same repo as the code, changelog by version

Read this if you are choosing a PMS integration path for a hotelier's Quendoo account, choosing a channel/inventory partner for your own hotel, or picking which vendor API to integrate first β€” this page is the pitch. Everything below is what the technical pages already prove, framed for a decision.

Ten things we thought through so you don't have to

1. Bookings are a revision feed, not a webhook you have to trust

Every meaningful change to a booking becomes a revision appended to a ledger and served through GET /bookings/revisions. You acknowledge each revision when you have durably persisted it β€” no ack, no advance. Webhooks exist as an optional low-latency trigger, but the feed is the source of truth, so a missed HTTP call cannot cost you a booking. Multiple consumers can subscribe with independent cursors β€” PMS in one process, reporting in another, none of them coupled.

See Bookings & the feed.

2. Inventory writes land in the same calendar the hotelier writes

Availability, prices and stay restrictions push into Quendoo's own calendar. Not a mirror, not a shadow β€” the same rows the dashboard edits and the booking engine sells from. Quendoo's channel sync distributes them onward to the OTAs; you push once, to one place, and never double-push against a distribution layer you did not build.

See Inventory writes.

3. A shadow-diff harness proves your writes match what the hotelier would type

We run every partner write through a shadow diff: the payload is applied in a scratch context and compared byte-for-byte against what the same write would have produced through the hotelier's dashboard. A mismatch is not "good enough" β€” it is a bug, and it blocks promotion of that endpoint to live mode until it disappears. That is why the first go-live of a partner integration is measured in days, not quarters.

4. Migrations from the legacy PMS v1 API carry a byte-parity guarantee

Every route the legacy apc-integrator.php served has a QC faΓ§ade at /v1/qc/pms-v1/*. Responses are byte-parity with the old endpoint under a locked test corpus. You upgrade one method at a time, from your existing credentials, with a rollback that is literally "change one URL back". This is the anti-thesis of the "we're deprecating v1, migrate by Q4" experience every other vendor forces.

See PMS v1 facade and the migration guide.

5. Auth is three independent axes, not a checkbox

A token carries scopes (categories of action β€” inventory.write, bookings.read, …), properties (which properties it may act on) and endpoint scopes (which specific routes it may hit, with per-resource wildcards). Every request must clear all three. That means one integrator role can hold inventory.write on 40 properties but only for the availability endpoint, while another holds bookings.read on the same 40 properties. This is what real least-privilege looks like β€” most vendors give you "read all or write all" and call it security.

See Auth, scopes & limits.

6. Account-scoped tokens auto-follow new properties

Ticked the "account-scoped" flag on a token? It has no fixed property list. Every request re-resolves your account's currently enrolled, active properties in real time. A property enrolled tomorrow becomes reachable without rotating credentials. The one call your CI pipeline dreaded β€” "we onboarded ten hotels, please issue ten new tokens" β€” is gone.

7. Idempotency is a first-class 24-hour contract

Every write route accepts Idempotency-Key: <uuid> and replays the exact same response for 24 hours. Retry a POST after a timeout without double-writing. Repost the same booking-ack a week later β€” QC will tell you it is a duplicate, cleanly. Concurrent retries lock and serialise. The contract is written down with the tests to prove it.

See Idempotency.

8. Rate limits are budget you can see, not a wall you hit

Four buckets β€” reads, writes, bookings-feed, analytics β€” each surfaces its budget on every response via X-RateLimit-Remaining and X-RateLimit-Reset. Pace against the numbers, not guesswork. Tier upgrades are a config change, not a re-integration.

See Rate limits.

9. The whole hotel, not just inventory

Every configuration surface a hotelier touches in the dashboard is a QC CRUD: policies (payment, cancellation, guest data), promotions, extras, gallery, website content, auto-emails, review replies, age groups, taxes, room-type structure, rate-plan derivation, subscriptions. A partner can onboard a hotel end-to-end without asking anyone to open Quendoo. That is what "PMS-native" actually means.

See Configuration surfaces.

10. Docs deploy with the code

You are reading this file directly from the repository that answers the API calls it describes. Every merge on the API refreshes this documentation. The changelog is written by the people shipping the change. The error dictionary lists every key the API can return with a fix note. There is no wiki, no PDF, no drift.

What each stakeholder gets

For integrator engineering teams

For the hotelier

For agencies and multi-property operators

What it is not

Where to go next

Ready to talk pricing, portfolio size, or a bespoke bucket tier? Contact us at [email protected] β€” the person on the other end runs this API, not a support tier.