Integration Guide

Getting Started

ZentrumHub is a travel technology platform pre-certified with 90+ hotel suppliers — bedbanks, GDS, OTAs, and channel managers. Instead of building and maintaining individual supplier integrations, you connect to ZentrumHub once and gain access to all of them through a single, standardised API.

Zentrum Connect is ZentrumHub's supplier aggregation layer. It takes your request, fans it out to whichever suppliers you have configured, translates each supplier's response into one consistent format, and returns it to you. There is no business logic, no markup, no deduplication — Connect is a clean pipe between your system and the supplier network. Hotel ID mapping, content management, currency conversion, and deduplication are all owned by your platform.

Connect is built for teams that have already invested in their own booking engine and need one reliable, scalable connection to reach multiple suppliers — without building and maintaining every integration themselves.

Integration Journey

Five stages from sandbox to live

Most teams complete the Connect integration in 2–4 weeks, depending on the number of suppliers and your internal review cycle.

Stage 1

Sandbox

Receive API credentials — API Key, Customer ID, and Affiliate IDs per supplier. Get Kibana log access and meet your Tech Onboarding Manager.

Stage 2

Sync Content

Pull hotel IDs and property content for each supplier via the Content APIs. Store at your end — Connect does not serve content at runtime.

Stage 3

Build

Implement the full search-to-book API flow using your sandbox credentials. Raise queries via your dedicated Slack or Teams channel.

Stage 4

Certify

Run required booking scenarios with real refundable bookings. Submit logs and screenshots to the ZentrumHub integration team for review.

Stage 5

Go Live

ZentrumHub configures your live supplier credentials. Production is ready. Support moves to [email protected].

What you receive on sign-up

Everything your tech team needs to start integrating from day one.

🔑

API Key & Customer ID

Auto-generated on account creation. Separate sandbox and production accounts, both running on production infrastructure.

🔗

Affiliate IDs

One per configured supplier. You pass these on every API call to tell Connect which supplier to route the request to.

📋

Kibana Log Access

Full visibility into every request — what we sent each supplier and what they returned. Logs retained for 5 days.

🤝

Tech Onboarding Manager

Your single point of contact from kick-off to go-live, with a dedicated Slack or Teams channel for queries.

What Connect handles — and what you own

Connect is deliberately thin. Understanding this boundary before you build will save a lot of time.

✅ ZentrumHub handles

  • Supplier technical integration & credentials
  • Request translation into each supplier's format
  • Response normalisation into one standard format
  • Cancellation policy format standardisation
  • Batch size management per supplier
  • Supplier error handling & escalation

⚠️ Your platform handles

  • Hotel ID mapping per supplier
  • Location-to-hotel-ID resolution
  • Content storage & management
  • Currency conversion
  • Rate deduplication
  • Markup & pricing rules

Before you start

Have these in place before making your first API call.

Required API Key

Authenticates every API request. Passed as a header in all calls. Provided by ZentrumHub on account creation.

Required Customer ID

Your account identifier. Separate IDs for sandbox and production environments. Provided on account creation.

Required Affiliate ID

One per supplier. Connect has no channel concept — you target suppliers directly using their Affiliate ID. ZentrumHub provides these after configuring your suppliers.

Your responsibility Hotel ID Mapping

Connect searches by hotel ID, not location. You must resolve destination queries to supplier-specific hotel IDs on your end before calling the Search API.

Your responsibility Content Synced

Property names, images, and facilities must be synced via the Content API and stored at your end before go-live. Connect does not serve content at search runtime.

The API sequence

Every Connect booking follows this path. You own the mapping layer — once you have hotel IDs, the rest is straightforward.

1

Get Hotel IDs

Pull the full list of hotel IDs available for a given supplier under your account. Use the lastSyncDate parameter to fetch only what has changed since your last sync — this delta sync keeps your mapping database up to date without re-downloading everything.

GET /getHotelIds
2

Get Hotel Content

For each hotel ID, fetch property details — name, address, images, star rating, and facilities. Pass hotel IDs in batches. Store the response at your end and refresh periodically using delta sync. Do not call this at search runtime.

POST /hotelContent
3

Search Hotels

Pass the hotel IDs for your target destination along with check-in/check-out dates, occupancy, and the Affiliate ID of the supplier to query. You can pass up to 200 hotel IDs per request. Connect fans the request out to the supplier and returns available rates in a standardised format.

POST /searchHotels
4

Get Rooms & Rates

User selects a hotel. Fetch all available room types and rate options for that property. Returns standardised room and rate data — use this to power your room selection screen.

POST /roomsAndRates
5

Direct Rooms & Rates (optional)

Fetch rooms and rates for a specific hotel ID without a prior search call. Useful for deep-link flows where the user lands directly on a hotel detail page.

POST /directRoomsAndRates
6

Price — mandatory pre-book check

User reaches checkout. Always call Price before initiating a booking. This validates the selected rate against the supplier in real time and surfaces any price change before the user confirms payment.

⚠️ Skipping this step will cause bookings to fail when rates have moved since Rooms & Rates.
POST /price
7

Book

Payment confirmed. Fire the Book call with guest details and payment info. ZentrumHub submits the booking to the supplier and returns a bookingId and confirmation voucher to send to the customer.

If Book returns a timeout or failure, do not show a hard error — poll Get Booking Details every 10–15 seconds for up to 5 minutes. The supplier may have completed the booking in the background.

POST /book
8

Get Booking Details

Retrieve the full booking record using bookingId. Use this to power your My Trips page and to recover ghost bookings after a timeout on the Book call.

GET /bookingDetails
9

Cancellation Penalty & Cancel

Always fetch the cancellation penalty and show it to the user before presenting the cancel option. Then call Cancel with the bookingId. Full cancellations only — partial room cancellations are not supported.

GET /cancellationPenaltyPOST /cancel
Required before go-live

Certification

Before ZentrumHub enables your live supplier credentials, your integration must pass a certification review. The ZentrumHub integration team will share a set of scenarios for you to run end-to-end and submit for verification.

1

Complete the required booking scenarios on your production account using real refundable bookings. Scenarios include single room (2 adults, 1 night) and multi-room with a child.

2

Submit screenshots of each stage — Search results, Hotel details, Checkout, Booking confirmation, My Trips, and Cancellation — along with the bookingId and correlationId for each scenario.

3

Submit within 5 days of your search — certification logs are only retained for 5 days.

4

Email to [email protected] and CC your Tech Onboarding Manager. The team reviews and confirms readiness for go-live.

Get help

The right contact for every stage of your integration.

During integration

Raise queries via your dedicated Slack or Teams channel with your Tech Onboarding Manager.

[email protected]

Supplier setup

For new supplier onboarding, credentials, and Affiliate ID configuration.

[email protected]

Production support

For live issues, error monitoring, and post-go-live queries.

[email protected]