Channel manager (OTAs) All plans
Booking.com, Hostelworld, Airbnb, Expedia and 200+ more through one connection: how it syncs, what to map, and what the app does by itself when a channel misbehaves.
Updated 2026-10-20
What a channel manager is
Without a channel manager, a property has to log in to each OTA extranet separately to update rates, availability, and restrictions — and update its own PMS at the same time. The result is inevitable: overbookings, stale rates, and time spent on data entry instead of guests.
With a channel manager, the PMS is the single source of truth. Every channel reads from it and writes to it. One booking on Hostelworld updates the calendar in Travel404 immediately, which then pushes the new availability to every other channel. No double-booking, no extranet juggling.

Channels supported
Travel404 uses Channex.io as its distribution layer — a mature, battle-tested channel network used by thousands of properties. Through that integration:
- Booking.com
- Hostelworld
- Airbnb
- Expedia (and the family — Hotels.com, Orbitz, etc.)
- Google Hotel Ads
- 200+ regional and niche OTAs — typical hostel chains, country-specific channels, and metasearch engines
Adding a new channel is the same flow regardless of which OTA — pick from a list, paste credentials, map your rooms.
Connecting a channel
Distribution›Channels›Connect. Channels are included in every plan. Connecting is assisted: you fill in the form, we create the channel mapping with you on a call and confirm the first prices against the OTA before it goes live.
The first time a channel is connected, three things happen:
- Credentials are saved, encrypted with AES-256. The original API keys aren't retrievable from the UI after save — only the masked versions.
- The connection is tested — Travel404 makes a handshake call to the channel and verifies the property is reachable.
- Initial sync runs — your current rates, availability, and restrictions are pushed out so the channel starts in a known good state.
From then on, sync runs automatically on every change.
Mappings
Changes after the booking. A cancellation on the OTA cancels the reservation here. When the guest changes the dates on the OTA after booking, the reservation moves to the new dates and takes the OTA's new total; the booking's History shows the change. If the bed is already taken on the new nights the move is not forced: History and the Channels log say so, and the desk moves the booking by hand. A change in the number of beds is logged, not applied.
Every OTA represents your rooms slightly differently — "6-bed Mixed Dorm" on one channel might be "Standard Dormitory Bed" on another. Mappings tell each channel which of your rooms corresponds to which of theirs, and which of your rate plans matches which of theirs.
Done once at setup; revisited when you add a new room type or connect a new channel. Mappings are stored per-channel-per-room.
Rate & availability sync
Travel404 pushes two flows out and pulls one in:
Availability push
Every booking change pushes new availability to all channels in real time.
Rate & restriction push
Price changes, min-stay, stop-sell, CTA/CTD all stay identical everywhere.
Inbound bookings
Webhook-based — bookings made on an OTA land in your calendar within seconds.
Sync is delta-based: only what changed gets sent. That keeps the noise down, the channel APIs happy, and your sync logs scannable.
Restrictions
For busy periods or specific dates, you can set restrictions per channel:
- Minimum stay — guest must book at least N nights.
- Stop-sell — close the room for those dates on this channel.
- Close to arrival (CTA) — can't start a stay on these dates.
- Close to departure (CTD) — can't end a stay on these dates.
Restrictions can be applied globally (every channel) or per-channel. The latter is useful when, for example, you want Hostelworld to keep selling a long weekend but Booking.com to be stopped.
Stop-sell days coming from a channel show on your calendar as a bar under the date, so "why is nobody booking the 14th?" is answered by looking at it. Tapping the bar opens the dialog on that date to reopen it.
Manual push
Automatic sync runs continuously, but occasionally you'll want to push right now — usually after a manual reconciliation. The Manual Availability/Rate Push button forces a full push outside the regular schedule. Use sparingly; the automatic flow handles 99% of cases.
Failure handling
What happens by itself. Every connection keeps an inbound webhook registered with the channel network; the app re-verifies it every six hours and re-creates it if it has gone missing. When the network itself is down, a watchdog notices, a sweep re-pushes anything that did not get through, a catch-up pulls the bookings that arrived meanwhile, and you receive an email report listing what was recovered. None of this needs a click from you; the Channels tab shows the time of the last successful sync so you can see it is alive.
Check an OTA list. A booking made on Hostelworld or Booking.com before the channel was connected never passes through the channel manager, so no automatic check can see it. In Distribution›Channels the card Check an OTA list takes the OTA's own reservation table: open the extranet, select the table, copy, paste. Every line comes back as In Travel404, Missing, Cancelled on the OTA but still active here (a bed to free), Other dates here or Cancelled here, and one tap creates the missing ones as OTA bookings with their dates, beds and total (without a bed when none is free, so you place them). Do it weekly until every stay booked before the connection has passed.
Every six hours the app also compares the channel manager's booking list with the calendar: bookings on the OTA that are not here are imported, and date changes a guest makes on the OTA are applied to the reservation automatically.
When a channel rejects an update (auth expired, bad data, channel down) Travel404 doesn't fail silently. The rejected update goes into a dead-letter queue and the team is alerted. A safety-sweep reconcile job also runs every few hours, catching anything missed in real time.