Skip to main content
Omnibeds never books the price a search showed. It asks the supplier to confirm the price first, then books with the guests’ names, and only then gives the booking its own WH- reference. The same four steps serve a direct booking and a quote being converted. The code is in lib/booking/service.ts, and the page in components/book/.

Step 1: the supplier confirms the price

The check-rate step (checkOffer) handles every way an offer can have changed since the search: For a direct booking, Omnibeds also looks for the same product cheaper from another supplier and offers to switch. A quote books exactly what was quoted, so it skips this.

Step 2: every guest is named

Each room’s guests are named one by one. Saved travellers can fill the rows, and a booking can be added to a trip here. Before going on, the names are checked against the supplier’s own rules, and the rule is shown in the screen. For example, RateHawk accepts letters and a few punctuation marks (no digits), forbids placeholder names, and needs at least one adult with a real name in every room. A name the supplier would refuse blocks the step. A name still marked as a placeholder (“Dummy”, “Test”) is asked about at confirmation, not blocked, for suppliers that accept it.

Step 3: review and confirm

The agent sees the hotel, room, board, dates, every guest, the cancellation timeline and the total, then confirms.

Step 4: the booking is made

1

The supplier books

The adapter sends the booking with every guest, room by room.
2

If the offer expired at the last moment

Nothing is booked. Omnibeds checks the price again and answers OFFER_REFRESHED (409) with the new check, and the page goes back to step 1. A different price is never booked silently.
3

The selling price is worked out on the server

From the price the supplier booked, with the agency’s margin rules. The browser never sends the selling price. A selling price the agent set on a quoted option is kept.
4

Our record is saved

The booking gets its WH- reference, the supplier’s reference, every room and traveller, its cancellation policy and a history of events.

Confirmed, or waiting for the supplier

Some suppliers accept a booking and confirm it a little later. Then the booking is saved as reconciliation_needed with a “pending” event, and reconciliation finishes it. See Reconciliation and jobs.