Skip to main content

OTA Channels

HMP integrates with Online Travel Agencies (OTAs) through the Channel Manager module.

Supported Channels​

Global OTAs​

  • Booking.com
  • Expedia Group (Expedia, Hotels.com, Vrbo)
  • Agoda
  • Airbnb

Regional OTAs (India)​

  • MakeMyTrip
  • Goibibo
  • Yatra
  • Cleartrip

GDS​

  • Amadeus
  • Sabre
  • Travelport

Metasearch​

  • Google Hotel Ads
  • TripAdvisor
  • Trivago
  • Kayak

Integration Types​

Two-Way Integration​

Real-time synchronization of:

  • Availability
  • Rates
  • Restrictions
  • Reservations

One-Way Integration​

Limited to specific data flows (e.g., only rate push or only reservation pull).

Booking.com Integration​

Setup​

  1. Register on Booking.com Connectivity Partner Program
  2. Obtain API credentials
  3. Configure mapping in HMP
  4. Test connectivity
  5. Go live

Configuration​

channel:
booking_com:
hotel_id: "12345678"
username: "XML_xxxxxx"
password: "xxxxx"
environment: "production"

Room Mapping​

{
"mappings": [
{
"hmp_room_type": "rt_deluxe",
"ota_room_id": "567890",
"hmp_rate_plan": "rp_bar",
"ota_rate_id": "123456"
}
]
}

Data Flow​

Expedia Integration​

Supported APIs​

  • Product API (Room/Rate setup)
  • Availability & Rates API
  • Booking Retrieval
  • Booking Notification Service

Configuration​

channel:
expedia:
hotel_id: "12345"
username: "EQC_xxxxxx"
password: "xxxxx"
api_version: "3.0"

Rate Management​

Rate Distribution​

curl -X POST https://api.hmpcloud.com/v1/channels/rates \
-H "Authorization: Bearer <token>" \
-d '{
"channels": ["booking_com", "expedia"],
"room_type_id": "rt_deluxe",
"rate_plan_id": "rp_bar",
"dates": [
{
"date": "2026-02-15",
"rate": 5500.00,
"single_rate": 5000.00
}
]
}'

Derived Rates​

Configure rates derived from master rate:

derived_rates:
- channel: booking_com
base_rate: BAR
adjustment_type: PERCENTAGE
adjustment_value: 5 # +5%

- channel: expedia
base_rate: BAR
adjustment_type: FIXED
adjustment_value: 500 # +500

Inventory Management​

Update Availability​

curl -X POST https://api.hmpcloud.com/v1/channels/availability \
-H "Authorization: Bearer <token>" \
-d '{
"channels": ["all"],
"room_type_id": "rt_deluxe",
"updates": [
{
"date": "2026-02-15",
"available": 10
}
]
}'

Restrictions​

curl -X POST https://api.hmpcloud.com/v1/channels/restrictions \
-H "Authorization: Bearer <token>" \
-d '{
"channels": ["booking_com"],
"room_type_id": "rt_deluxe",
"restrictions": [
{
"date": "2026-12-31",
"min_stay": 3,
"closed_to_arrival": false,
"closed_to_departure": false
}
]
}'

Stop Sell​

curl -X POST https://api.hmpcloud.com/v1/channels/stop-sell \
-H "Authorization: Bearer <token>" \
-d '{
"channels": ["expedia"],
"room_type_id": "rt_deluxe",
"dates": ["2026-12-31", "2027-01-01"],
"stop_sell": true
}'

Reservation Handling​

Booking Notification​

When OTA sends booking:

{
"event": "channel.booking_received",
"data": {
"channel": "booking_com",
"channel_reference": "BDC-123456789",
"reservation": {
"arrival_date": "2026-02-15",
"departure_date": "2026-02-18",
"guest": {
"name": "John Doe",
"email": "john@email.com"
},
"rooms": [
{
"room_type": "rt_deluxe",
"adults": 2,
"rate_per_night": 5500.00
}
]
}
}
}

Modification Handling​

  • Guest name changes
  • Date changes (subject to availability)
  • Room type changes

Cancellation Handling​

Automatic inventory release and cancellation fee processing.

Monitoring​

Channel Status​

GET /api/v1/channels/status

Response:

{
"data": [
{
"channel": "booking_com",
"status": "CONNECTED",
"last_sync": "2026-01-22T10:00:00Z",
"pending_updates": 0
},
{
"channel": "expedia",
"status": "CONNECTED",
"last_sync": "2026-01-22T10:01:00Z",
"pending_updates": 2
}
]
}

Sync Logs​

GET /api/v1/channels/logs

Troubleshooting​

IssueCauseSolution
Rates not updatingMapping incorrectVerify room/rate mapping
Bookings not receivedWebhook misconfiguredCheck webhook URL
Inventory mismatchSync delayForce manual sync
Authentication failedExpired credentialsUpdate API credentials