Channel Manager API
Integrate your application with the Channel Manager platform to search rooms, create bookings, and update reservation status programmatically.
Get Property Info
Retrieve full details of a property using its unique property ID (GUID).
{
"id": 0,
"name": "string",
"vatPercent": 0,
"zipCode": "string",
"city": "string",
"address": "string",
"phone": "string",
"fax": "string",
"vatNumber": "string",
"administrativeEmail": "string",
"reservationsEmail": "string",
"latitude": 0,
"longitude": 0
}
Get Room Types by Property
Returns all non-deleted room types configured for a given property ID. The list is a lightweight projection — image collection and banner image are omitted; use Get Room Type by ID for full media.
[
{
"id": 0,
"roomTypeName": "string",
"shortName": "string",
"shortDescription": "string",
"description": "string",
"note": "string",
"services": ["string"],
"primaryImage": "string",
"defaultPrice": 0,
"defaultCurrency": 0,
"defaultAvailableRooms": 0,
"property": 0,
"guests": 0,
"kids": 0
}
]
Get Room Type by ID
Retrieve full details for a single room type — including the image gallery, primary image and banner image — using its property ID (GUID) and room type ID (int).
{
"id": 0,
"roomTypeName": "string",
"shortName": "string",
"shortDescription": "string",
"description": "string",
"note": "string",
"services": ["string"],
"images": ["string"],
"primaryImage": "string",
"bannerImage": "string",
"defaultPrice": 0,
"defaultCurrency": 0,
"defaultAvailableRooms": 0,
"property": 0,
"guests": 0,
"kids": 0
}
Get Room Type by Name
Look up a room type within a property by its ShortName (case-insensitive match). Path parameter {name} is compared against ShortName, not the full roomTypeName. Returns the same payload as Get Room Type by ID.
{
"id": 0,
"roomTypeName": "string",
"shortName": "string",
"shortDescription": "string",
"description": "string",
"note": "string",
"services": ["string"],
"images": ["string"],
"primaryImage": "string",
"bannerImage": "string",
"defaultPrice": 0,
"defaultCurrency": 0,
"defaultAvailableRooms": 0,
"property": 0,
"guests": 0,
"kids": 0
}
Get Room Types by Filter
Returns room types that can accommodate the requested guest count and room count for the given property. Matching is done on Guests >= adults, Kids >= child and DefaultAvailableRooms >= room — date filtering is not yet enforced by the endpoint.
{
"propertyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"checkIn": "2026-09-15",
"checkOut": "2026-09-18",
"checkInDt": "2026-09-15T00:00:00Z",
"checkOutDt": "2026-09-18T00:00:00Z",
"adults": 2,
"child": 0,
"room": 1
}
// Same shape as GET /GetRoomTypesByProperty/{propertyId}
[ { "id": 0, "roomTypeName": "string", "defaultPrice": 0, … } ]
Book a Room
Creates one booking per room requested (room > 1 produces multiple linked bookings). A customer record is created from the guest's name and email; price is calculated server-side from the room's rate plan unless defaultPrice overrides it. The endpoint also adds booking history, eco-tax records and a notification.
{
"propertyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"roomTypeId": 0,
"name": "First Last",
"emailId": "guest@example.com",
"contact": "+356 9999 0000",
"checkIn": "2026-09-18T00:00:00Z",
"checkOut": "2026-09-21T00:00:00Z",
"adults": 2,
"kids": 0,
"room": 1,
"roomShortName": "DBL",
"bookingRefNo": "string",
"defaultPrice": 0
}
// HTTP 200 OK
true // booking(s) created successfully
Update Booking Status
Updates the status, payment reference and paid-amount of the booking identified by its booking reference number. If totalPaid > 0 a PAYPAL payment-history row is recorded automatically. Channel availability is re-synced after the update.
{
"bookingRef": "string",
"status": 0,
"paymentRef": "string",
"totalPaid": 0
}
// HTTP 200 OK
1 // always returned, even if the bookingRef did not match