Introduction
Welcome to the AxisRooms Extranet OTA integration API.
Please find the below staging environment details
URL - Will share via email while implementation phase
Headers to be sent in every call
1. apiKey: <allocated during integration>
2. channelId: <allocated during integration>
API
Hotel Search
Response JSON:
{
"HotelDetails": [{
"hotelId": 1576,
"hotelName": "LAHotelMetro",
"isWholeSaler": false,
"preferedPosition": 0,
"rooms": [{
"breakFast": false,
"cancellationPolicy": [],
"daywisePrice": [{
"actual": 3480,
"date": "2018-01-29",
"discounted": 3480,
"taxValue": 661
}]
}],
"deal": {
"applicable": false,
"id": 0,
"value": 0
},
"inventory": 0,
"maxAdult": 0,
"maxChild": 0,
"maxOccupancy": 0,
"price": {
"actual": 3480,
"discounted": 3480,
"taxValue": 661
},
"ratePlanId": 0,
"roomId": 0,
"roomRank": 0
},
{
"hotelId": 1576,
"hotelName": "ParkView",
"isWholeSaler": false,
"preferedPosition": 0,
"rooms": [{
"breakFast": false,
"cancellationPolicy": [],
"daywisePrice": [{
"actual": 2500,
"date": "2018-01-29",
"discounted": 2500,
"taxValue": 9
}],
"deal": {
"applicable": false,
"id": 0,
"value": 0
},
"inventory": 0
}],
"maxAdult": 0,
"maxChild": 0,
"maxOccupancy": 0,
"price": {
"actual": 2500,
"discounted": 2500,
"taxValue": 9
},
"ratePlanId": 0,
"roomId": 0,
"roomRank": 0
}
]
}
Get a list of hotels based on search string - city, pax, price type (WEB, MOBILE), check in and check out date.
HTTP Request
GET /api/be/searchHotels?city=Dubai&checkIn=10/02/2018&checkOut=12/02/2018&paxInfo=1|0|0||&priceType=WEB
PaxInfo Format - A|B|C|D|E...||A|B|C|D|E||...
A - number of adults
B - Number of children
C - Age of child 1 if B = 1
D - Age of child 2 if B = 2
E - Age of child 3 if B = 3
...
|| - indicates that the second room's pax info follows
Eg - Suppose we are searching for 2 rooms where in
1. Room 1 - there will be 2 adults and 1 child (age 8 years)
2. Room 2 - there will be 3 adults and 2 children (age 6 years and 7 years)
Pax info for the above will be
2|1|8||3|2|6|7
Room Availability
Response JSON:
{
"HotelDetails": [{
"description": "description",
"hotelId": 1576,
"hotelName": "HotelRoseWood",
"isWholeSaler": false,
"preferedPosition": 0,
"rooms": [{
"amenities": ["Body soap", "Cable channels", "City view", "Desk"],
"breakFast": false,
"cancellationPolicy": [],
"daywisePrice": [{
"actual": 4500,
"date": "2018-01-29",
"discounted": 4500,
"taxValue": 405
}],
"deal": {
"applicable": false,
"id": 0,
"value": 0
},
"description": "StandardRoom",
"inclusions": [],
"inventory": 5,
"maxAdult": 2,
"maxChild": 1,
"maxOccupancy": 0,
"price": {
"actual": 4500,
"discounted": 4500,
"taxValue": 405
},
"ratePlanId": 353,
"ratePlanName": "StandardRoom(CP)",
"roomId": 439,
"roomName": "StandardRoom( CP)",
"roomRank": 0
},
{
"amenities": ["Body soap", "Cable channels", "City view", "Desk"],
"breakFast": false,
"cancellationPolicy": [],
"daywisePrice": [{
"actual": 5500,
"date": "2018-01-29",
"discounted": 5500,
"taxValue": 495
}],
"deal": {
"applicable": false,
"id": 0,
"value": 0
},
"description": "DeluxeRoom",
"inclusions": [],
"inventory": 2,
"maxAdult": 2,
"maxChild": 1,
"maxOccupancy": 0,
"price": {
"actual": 5500,
"discounted": 5500,
"taxValue": 495
},
"ratePlanId": 354,
"ratePlanName": "DeluxeRoom(CP)",
"roomId": 441,
"roomName": "DeluxeRoom(CP)",
"roomRank": 0
},
{
"amenities": ["Body soap", "Cable channels", "City view", "Desk"],
"breakFast": false,
"cancellationPolicy": [],
"daywisePrice": [{
"actual": 8000,
"date": "2018-01-29",
"discounted": 8000,
"taxValue": 720
}],
"deal": {
"applicable": false,
"id": 0,
"value": 0
},
"description": "SuperDeluxeRoom",
"inclusions": [],
"inventory": 1,
"maxAdult": 2,
"maxChild": 2,
"maxOccupancy": 0,
"price": {
"actual": 8000,
"discounted": 8000,
"taxValue": 720
},
"ratePlanId": 355,
"ratePlanName": "SuperDeluxeRoom(CP)",
"roomId": 444,
"roomName": "SuperDeluxeRoom(CP)",
"roomRank": 0
}
]
}],
"searchId": 18833
}
Get room availability for a particular hotel/product.
HTTP Request
GET /api/be/rooms?productId=696&checkIn=10/02/2018&checkOut=12/02/2018&paxInfo=1|0|0||&priceType=WEB
Confirm Booking
Request JSON:
{
"address": "No.27,Jayanagar 7th block,Bengaluru,560070",
"checkInDate": "10/02/2018",
"checkOutDate": "12/02/2018",
"confirmationNo":"98698686",
"firstName": "Aravind",
"hotelId": "1576",
"lastName": "B H",
"emailId": "mailmepathak@gmail.com",
"mobileNo": "9035008842",
"noOfRooms": 1,
"rooms": [{
"amount": 4444,
"childAges": null,
"numOfAdults": 1,
"numOfChildren": null,
"ratePlanId": "353",
"roomId": "439"
}],
"source": "WEB",
"status": "booking",
"serviceTax":790,
"totalAmount": "5310"
}
Response JSON:
{
"message": "Booking Confirmed",
"referenceId": "ARK00000E61O",
"status": "Confirmed"
}
HTTP Request
POST /api/be/booking
Find cancellation charges before cancelling booking
Response JSON:
{
"totalAmount": 10000,
"bookingRefId": "ARK000008QQU",
"tax": 0,
"message": "No Refund cancellation policy - 100% charged once booked",
"penality": 10000,
"refundedAmount": 0
}
HTTP Request
GET /api/be/getCancellationCharges?bookingId={bookingId}
Cancel Booking
Request JSON:
{
"comment": "changed the plan",
"referenceId": "ARK00000E61O",
"status": "cancel"
}
Response JSON:
{
"referenceId": "ARK00000E61O",
"status": "Cancelled"
}
This API will be implemented by the CM and OTA will push bookings to the endpoint shared by the AxisRooms.
HTTP Request
POST /api/be/booking
Payment confirmation API
Response JSON:
{
"confirmationNo": PYT123,
"message": "Payment Status Updated"
}
The proxy will call this API irrespective of whether the payment is successful or not.
HTTP Request
GET /api/be/payment?confirmationNo=PYT123&payment=true