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:

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)

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

  1. 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.
  2. Quickstart β€” five minutes from zero to your first successful call: token β†’ property β†’ inventory push. Read this if you just want to see it work.
  3. 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.
  4. 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.
  5. 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
  6. API reference β€” every endpoint, every field, with a try-it console. The raw spec lives at /v1/qc/openapi.yaml.
  7. SLA β€” uptime, response-time, rate limits, maintenance windows, incident and support response times.
  8. Error dictionary β€” every error key the API can return, what causes it, and how to fix it.
  9. 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.