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
- Register on Booking.com Connectivity Partner Program
- Obtain API credentials
- Configure mapping in HMP
- Test connectivity
- 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
| Issue | Cause | Solution |
|---|---|---|
| Rates not updating | Mapping incorrect | Verify room/rate mapping |
| Bookings not received | Webhook misconfigured | Check webhook URL |
| Inventory mismatch | Sync delay | Force manual sync |
| Authentication failed | Expired credentials | Update API credentials |