Skip to main content
Omnibeds connects to RateHawk through the Emerging Travel Group (ETG) B2B API, version 3. Every endpoint is a POST with a JSON body, and every answer is an envelope with status: ok or error. RateHawk publishes integration requirements that partners must follow; this page lists how Omnibeds meets each one. RateHawk is treated as a confidential supplier: presenter mode only. The adapter is in lib/suppliers/ratehawk/.

At a glance

Their flow and ours

Booking, step by step

Must do

1

Stay within RateHawk's search limits

Up to 9 rooms, 6 adults and 4 children (aged 0 to 17) a room, 30 nights, and check-in at most 730 days ahead. A search outside these is explained to the agent and never sent.
2

Send the guests' residence on every search

In lower case, from the search’s residence field, else the agency’s default residence, else its country. Searches also send the guests room by room (adults and children’s ages), language: en and currency: EUR.
3

Keep hotel content on our side

Searches return only hotel ids. Content lives in our database, is refreshed on the schedule set in the admin panel (or with Reload now), and is never fetched while a search or booking is running. Hotels not stored yet are loaded right after the search and show from the next one.
4

Show the hotel's rules

RateHawk’s metapolicy (deposits, pet fees, parking, extra beds…) is shown line by line in its own wording, together with its free text about the hotel’s rules.
5

Read the hotel page and prebook before every booking

Never book from a search result: the hotel page gives a fresh book_hash, and the prebook confirms it.
6

Follow the name rules

First and last names of 1 to 50 characters: letters in any script, spaces and the characters ' - , . ’, no digits. No placeholder names, and at least one adult with a real name in every room. Checked in the guest step, before any call.
7

Identify the order with a UUID

Our partner_order_id is a UUID. Cancel, status and lookups all use it.
8

Send what the booking form asks for

The agent’s IP address (user_ip), one fixed agency email (RateHawk’s rule for B2B: not the guest’s), and a phone of 5 to 35 characters (the agency’s, or a placeholder number). When the hotel requires a gender, unknown is sent, which is one of RateHawk’s values.
9

Respect each endpoint's limit

Omnibeds remembers what each endpoint’s X-RateLimit-* headers last said and doesn’t send a call that would certainly be refused. A 429 from RateHawk is still read and explained.

Never do

  • Never send a placeholder name (“Dummy”, “Test”). A guest whose name isn’t known yet is left out of the booking instead.
  • Never book a higher price than the agent agreed. The booking prebook allows no increase; a higher price sends the agent back to the price check.
  • Never treat a timeout, unknown or a 5xx as a failed booking. RateHawk’s rules say the booking may still go through, so Omnibeds keeps asking its status.
  • Never call the Content API during a search or a booking.
  • Never spend the limits on a health check: health makes no call.

How its data becomes ours

When something goes wrong