Platform Overview

Understand how ZentrumHub works before you start integrating

Introdcution

ZentrumHub is a travel technology platform that enables OTAs, B2B portals, TMCs, and corporate travel systems to sell hotel inventory through a single API. It operates on a BYOL (Bring Your Own License) model — you hold the supplier contracts, we handle the technical integration. ZentrumHub is pre-certified with 90+ suppliers across bedbanks, GDS, OTAs, and channel managers, so you connect once and gain access to all of them.

Architecture Diagram

Platform Architecture

What happens when you make one API call

From your platform to 90+ suppliers — every layer ZentrumHub handles for you

1
Your Platform
💻

Client Application

OTA, B2B portal, TMC, or meta search platform.

API call
2
Booking Engine
⚙️

Zentrum Booking Engine

Business logic applied before the request goes deeper.

  • Auth & channel validation
  • Markup & pricing rules
  • Deduplication
  • Currency conversion
normalised
3
Zentrum Connect
🔗

Connect Layer

Universal supplier abstraction. Translates your request into each supplier's own format.

  • Request fan-out
  • Response aggregation
  • Normalised output
parallel calls
4
Your Active Suppliers

Live supplier connections

Bedbanks30+
Wholesale hotel rates
GDS10+
Global distribution
OTAs20+
Online travel agencies
Channel Mgrs30+
Property management
only your configured suppliers are called
🗺

Mapping Service

Translates ZentrumHub hotel IDs into each supplier's own IDs before the call.

How a request works

  1. Your platform sends a single API request with a correlationId — a GUID that traces the entire transaction end-to-end.
  2. Booking Engine applies your business rules — channel validation, agency configuration, markup and pricing rules.
  3. Zentrum Connect receives the normalised request and fans it out to your active suppliers in parallel.
  4. Mapping providers translate hotel IDs into each supplier's own format — this is handled externally, invisible to you.
  5. Supplier responses come back and are aggregated, deduplicated, and normalised into a single unified response.
  6. Your logs show every call made on your behalf — request payloads, supplier responses, and our overhead — fully traceable via your correlationId.

What we handle for you

🔧

Supplier technical setup & credentials

We handle configuration and credentials management for every supplier in your stack.

Certification support

We guide you through the process and do in-depth log analysis to catch obvious errors before you submit.

🔁

Rate deduplication

Across suppliers, based on factors like board basis, refundability, and rate type.

📣

Supplier issue escalation

We raise and manage supplier-side problems on your behalf — you don't chase, we do.

🤝

Dedicated Tech Onboarding Manager

Your single point of contact for integration syncs, from kick-off to go-live.

🏢

Supplier Relations contact

For supplier setup, credentials, payments, and new supplier introductions.

💬

One-on-one sessions with our tech team

For consolidated query resolution during your integration phase.

🛡️

Production support team

For live issues and error monitoring once you're in production.

The API Flow

Entry point
Autosuggest
User types 3+ chars → returns type + coordinates
GET /autosuggest
type · id · lat · lng
type determines which branch
type
returned
city / region / neighbourhood
Step 1b
Get Location Details
Returns full polygon boundary for city searches
GET /location
POI / airport
Circular
lat/lng + 2–5 km radius
hotel
Direct
Hotel ID search
Use referenceId — skip location call
polygon · lat/lng · hotelId
⚡  fire these two in parallel
Availability
Search Init
Fires against all suppliers in your channel. Returns a search token immediately.
POST /searchinit
Content
Static Content
Hotel names, images, star ratings. Render on screen immediately.
GET /hotelcontent
UI renders hotel cards immediately → rates stream in as suppliers respond
searchToken
3
Poll Search Results
Every 500ms using searchToken. Status: InProgressCompleted (stop polling). First batch capped at 50 hotels. Where isNewHotel=true, replace with the better rate.
GET /searchresults
hotelId · searchToken
4
Rooms & Rates
All rooms from all configured suppliers — deduped and normalised. Use standardisedRoomGroups as your primary data source for the room selection UI.
POST /roomsandrates
recommendationId · token
5
Pricing — mandatory pre-book
Call as the user reaches checkout. Validates rate is still live. Surfaces any price change before the user confirms payment.
GET /price
⚠ Skip this and the booking will fail if the rate has moved since Rooms & Rates.
guest info · payment
6
On pay click
BookInit
Holds rate for supported suppliers. DB entry for others. Implement always for future-proofing.
POST /bookinit
After payment
Book
Returns bookingId and confirmation voucher to send to the customer.
POST /book
On timeout or failure — poll Get Booking Details every 10–15s for up to 5 min. Supplier may still be processing in the background.
bookingId
7
Before cancel
Cancellation Penalty
Fetch the fee and show it to the user. Never let someone cancel without seeing the penalty first.
GET /cancellationFee
After confirm
Cancel
Full cancellations only — partial rooms not supported. Returns updated booking status.
POST /cancel

Where to go next