Quendoo Connect
Quendoo Connect (QC) is Quendoo's first-party integration API for property management systems and channel partners. Built inside the platform, versioned inside the URL, documented alongside the code that answers it β the same team that runs Quendoo's booking engine runs this API. One signed HTTPS API covers the whole loop:
- read the hotelier's property structure β room types, rate plans, calendars;
- push availability, prices and stay restrictions into Quendoo's calendar (Quendoo's own channel sync distributes them onward to the OTAs);
- receive bookings through a revision feed you acknowledge at your own pace, with webhooks as an optional low-latency trigger;
- configure the hotel β policies, promos, extras, gallery, website content, auto-emails, review replies β as first-class CRUD, so a partner can onboard a hotel end-to-end without asking anyone to open the Quendoo dashboard.
Choosing an integration path? The Why Quendoo Connect page is the 3-minute pitch β the ten differentiators, the stakeholder breakdown, the comparison against off-the-shelf channel managers and legacy vendor PMS APIs. Read it first if you have not yet decided.
Why Quendoo Connect (60 seconds)
- First-party, not middleware. Same team, same repo, same domain writes as the Quendoo dashboard β not a mirror of a legacy DB.
- Bookings as an append-only revisions feed. Miss a webhook β no problem, the ledger is the source of truth and you advance a cursor at your own pace.
- Inventory writes land in Quendoo's own calendar. One push per rate-day β Quendoo's channel sync distributes onward to the OTAs. You never double-push against a distribution layer.
- Shadow-diff harness proves partner writes match dashboard writes byte-for-byte before an endpoint promotes to live mode.
- Legacy PMS v1 has a byte-parity faΓ§ade. Migrate one method at a time, rollback is one URL change.
- Three-axis authorization β scopes Γ properties Γ endpoints, each independent. Account-scoped tokens auto-follow new properties.
- 24-hour idempotency contract, 4-bucket rate limits with visible budget, one stable envelope, one machine-readable error dictionary.
- The whole hotel β policies, promotions, extras, gallery, website, auto-emails, review replies, analytics β is a QC CRUD, not just inventory.
- Docs deploy with the code. No wiki, no PDF, no drift.
Full narrative on the Why Quendoo Connect page.
What it is (in one paragraph)
QC is not a re-badge of an off-the-shelf channel manager and not a thin CRUD faΓ§ade on top of a legacy DB. It is a native surface of the platform: the same use cases the Quendoo dashboard writes through, the same idempotency, the same shadow-diff harness for verifying that a PMS partner's writes reproduce what the hotelier would have written by hand, the same booking-revisions ledger the platform's own consumers subscribe to. It is versioned in-URL, tests live next to the code that answers it, and every partner sees the same OpenAPI, integration guide, error dictionary, changelog, and machine-readable index at the URLs listed below.
Where to start
- Why Quendoo Connect β the case for choosing QC over off-the-shelf channel managers and legacy vendor PMS APIs. The ten differentiators, the stakeholder breakdown, the comparison grid. Read this if you have not yet decided.
- Quickstart β five minutes from zero to your first successful call: token β property β inventory push. Read this if you just want to see it work.
- Wire conventions β the shapes every response follows: envelope, ids, names + translations, money, pagination, filters, statuses, errors, PII. One page you read once and then know how to interpret every endpoint.
- Integration guide β the end-to-end walkthrough. One fictional hotel, complete copy-pasteable requests, from your first token to your first acknowledged booking, plus every configuration surface.
- Concepts β how the domain works. Read these before you design your sync:
- π¨ The domain model β properties, room types, rate plans, calendars
- π° Pricing β sell types and occupancy codes
- π₯ Inventory writes β availability, prices, restrictions
- π Bookings β the revisions feed and acks
- βοΈ Configuration surfaces β extras, promos, policies, age groups, gallery, reviews
- π Analytics β read-only metrics proxy: overview, traffic, funnel, campaigns, bookings, pace
- π Authentication & limits β OAuth, scopes, endpoint-level scoping, rate limits
- π Webhooks β subscribing, delivery shape, HMAC verification (Node.js / Python / PHP / curl), retry ladder
- π Idempotency β the 24 h replay contract, choosing keys, concurrent retries
- π¦ Rate limits β the four buckets, the headers, pacing patterns
- π Environments β production vs staging, credentials, isolation, staging property reset
- π Recipes β copy-pasteable workflows for the calls a running integration makes daily
- API reference β every endpoint, every field, with a try-it console. The raw spec lives at /v1/qc/openapi.yaml.
- SLA β uptime, response-time, rate limits, maintenance windows, incident and support response times.
- Error dictionary β every error key the API can return, what causes it, and how to fix it.
- Changelog β what's new, when, and any breaking-change migration notes. Additive-by-default under one URL major.
Already on legacy PMS v1? See the
PMS v1 facade β how QC is taking
over your existing apc-integrator.php calls with a byte-parity
guarantee β and the
migration guide that maps
every PMS v1 method to its modern QC endpoint.
The shape of every response
Success responses share one envelope:
{ "status": "ok", "message": "ok", "data": { } }
Errors share another:
{ "status": "error", "message": "errors.qc.unknown_room_type" }
message is always a stable machine key, never prose β match on it, don't
parse it. The error dictionary lists every key.
Environments
| Environment | Base URL | Notes |
|---|---|---|
| Production | https://api.quendoo.com/v1/qc |
live hotelier data |
| Staging | https://staging-api.quendoo.com/v1/qc |
sandbox β ask us for test credentials |
Integrate against staging first. The integration guide assumes staging throughout.
Machine-readable docs
Every page here has a raw-markdown twin β append .md to its URL. A compact
index for LLM tooling is served at /v1/qc/llms.txt.