The purpose of this document is to provide technical details about the API's. This document outlines the business processes supported by the API and details about specifications of API’s. It assumes that reader has a technical background and is familiar with JSON, API's.
It is recommended that at least all booking and cancellation transactions sent through the Test / Live environment should be logged and maintained by the hotel agent for at least 6 months.
In order to start testing, please notify our support team via e-mail at apisupport@technoheaven.com
When you have completed your development, contact your Account Manager for the activation of the access IP address of Test/Live Server is essential for whitelisting
Once you receive your Access token, you can start the development of your application/framework. The whole process of communication consists of simple JSON messages exchange (request /response) between your application/framework and system. Each request needs to be posted (through POST method) using https protocols. For details regarding requests and answers formats please consult the dedicated area of each request. For further assistance in development process do not hesitate to contact our support team.
Before you go live you need to share pdf sample voucher after booking.
{ "code": "NOCOUNT_ERROR", "type": "GENERAL", "description": "No availability found for given criteria try search with other criteria" }
{ "code": "INTERNAL_ERROR", "type": "API_ERROR", "description": "the server was unable to process the request due to an internal error" }
The Countries API has been designed to provide All Countries data. The following sections describe the Countries API Request and Response Format.
{ "Token": "Token" }
{ "CountryId": "ID", "Name": "name" }, Example : "CountryId": "25773", "Name": "AFGHANISTAN"
The Hotel List Search API has been designed to provide list of all Hotels with display Minimum price for particular city. The following sections describe the Hotel List Search request and response format
{ "Token": “Token”, "Request": { "CountryId": "ID" } }
{ "CityId":ID, "Name": "NAME" } Example : "CityId":26467, "Name": "KABUL"
AllCitieswithCountry API has been designed to provide list of all cities with country .The following sections describe the AllCitieswithCountry in one API call request and response format.
{ "Token": "", "Request": { "onlyhotel": 0 } }
{ "cityid": ID, "cityname": "", "countryid": ID, "countryname": "" },
AllHotelsByCity API has been designed to provide list of all Hotel details for that particular City. The following sections describe the AllHotelsByCity API request and response format.
{ "Token":"Token" , "Request": { "CityId" : ID } }
{ "HotelId": ID, "HotelName": "", "Latitude": " ", "longitude": " ", "Address": " ", "Rating": " ", "IsRecomondedHotel": false },
The Availability API has been designed to provide list of all Hotels The following sections describe the hotellistsearch API request and response format. Currency set up done only once account is created and you have to use that Currency for transaction with api.
'{ "Token": "{{token}}", "Request": { "Rooms": [ { "RoomNo": 1, "NoofAdults": 2, "NoOfChild": 0, "ChildAge": [] }, { "RoomNo": 2, "NoofAdults": 1, "NoOfChild": 0, "ChildAge": [] } ], "CityID": "{{testcityid}}", "CheckInDate": "10-15-2019", "CheckOutDate": "10-16-2019", "NoofNights": "1", "Nationality": "india", "Filters": { "IsRecommendedOnly": "0", "IsShowRooms": "1", "IsOnlyAvailable": "1", "StarRating": { "Min": 4, "Max": 5 }, "HotelIds": "6003" } }, "AdvancedOptions": { "Currency": "USD" } }'
{ "Error": [], "AvailabilityRS": { "SearchKey": "JUNI_abbcd_511377478234040736", "Count": 1, "Currency": "USD", "HotelResult": [ { "StartPrice": 89.88, "HotelId": 6003, "HotelOption": [ { "HotelOptionId": "0|6003||0", "MinPrice": 89.88, "IsCombineRoom": false, "HotelRooms": [ [ { "RoomNo": "1", "RoomTypeName": "Deluxe Room", "MealName": "RO", "Price": 44.94, "BookingStatus": "Available", "RoomToken": "MHwwfDB8MA==", "MappedMealName": "Room Only" }, { "RoomNo": "2", "RoomTypeName": "Deluxe Room", "MealName": "RO", "Price": 44.94, "BookingStatus": "Available", "RoomToken": "MHwwfDB8MQ==", "MappedMealName": "Room Only" } ] ] } ] } ] } }
As we have both direct inventories and dynamic rates also so for some cases you will receive combined room in multiple room search ,so for easy to identify these rates we have now added new parameter in availability response IsCombined (true,false) if its true then rooms are combined to one room .for example : if search is forrooms :2room 1 : 1 adultroom 2 : 2 adultthen id IsCombined =true that means both rooms are combined in one (roomNo: "1") ;if False : then you recieve list of rooms(RoomNo:1,RoomNo:2).and when you try to book such combined room you have to pass pax details separately for both the rooms.- For Essential information you need to hit CancellationPolicy/Multi API
The AvailabilityWithCancellation API has been designed to provide list of Hotels with cancellation policy. The following sections describe the hotellistsearch API request and response format. Currency set up done only once account is created and you have to use that Currency for transaction with api.
{ "Error": [], "AvailabilityRS": { "SearchKey": "JUNI_abbcd_511377478234040736", "Count": 1, "Currency": "USD", "HotelResult": [ { "StartPrice": 89.88, "HotelId": 6003, "HotelOption": [ { "HotelOptionId": "0|6003||0", "MinPrice": 89.88, "IsCombineRoom": false, "HotelRooms": [ [ { "RoomNo": "1", "RoomTypeName": "Deluxe Room", "MealName": "RO", "Price": 44.94, "BookingStatus": "Available", "RoomToken": "MHwwfDB8MA==", "MappedMealName": "Room Only", "CancellationPolicy": [ { "FromDate": "08-25-2019", "ToDate": "10-15-2019", "CancellationPrice": 44.94 } ] }, { "RoomNo": "2", "RoomTypeName": "Deluxe Room", "MealName": "RO", "Price": 44.94, "BookingStatus": "Available", "RoomToken": "MHwwfDB8MQ==", "MappedMealName": "Room Only", "CancellationPolicy": [ { "FromDate": "08-25-2019", "ToDate": "10-15-2019", "CancellationPrice": 44.94 } ] } ] ] } ] } ] } }
- As we have both direct inventories and dynamic rates also so for some cases you will receive combined room in multiple room search ,so for easy to identify these rates we have now added new parameter in availability response IsCombined (true,false) if its true then rooms are combined to one room .for example : if search is forrooms :2room 1 : 1 adultroom 2 : 2 adultthen id IsCombined =true that means both rooms are combined in one (roomNo: "1") ;if False : then you recieve list of rooms(RoomNo:1,RoomNo:2).and when you try to book such combined room you have to pass pax details separately for both the rooms.- For Essential information you need to hit CancellationPolicy/Multi API
The CancellationPolicy for Hotel API has been designed to provide Price of cancellation for particular Room. The following section describes API request and response format.
'{ "Token": "{{token}}", "Request": { "SearchKey": "JUNI_062f2_761297949105040736", "HotelOptionId": "0|518305|71|0", "RoomToken": "MHwwfDB8MA==" }, "AdvancedOptions": { "Currency": "USD" } }'
{ "Error": [], "CancellationRS": { "Currency": "", "EssentialInformation": "", "CancellationPolicy": [ { "FromDate": "", "ToDate": "", "CancellationPrice": 0 }, { "FromDate": "", "ToDate": "", "CancellationPrice": 4 } ] } }
The CancellationPolicyMulti for Hotel API has been designed to provide Price of cancellation for multiple Room in single request. The following section describes API request and response format.
'{ "Token": "{{token}}", "Request": { "SearchKey": "JUNI_8f472_314794958374040736", "HotelOption": { "HotelOptionId": "0|6003||1", "HotelRooms": [ { "RoomNo": "1", "RoomToken": "MHwxfDB8MA==" }, { "RoomNo": "2", "RoomToken": "MHwxfDB8MQ==" } ] } }, "AdvancedOptions": { "Currency": "USD" } }'
{ "Error": [], "Currency": "USD", "CancellationRS": [ { "RoomNo": "1", "RoomTypeName": "Deluxe Room", "MealName": "RO", "MappedMealName": "Room Only", "EssentialInformation": "test", "CancellationPolicy": [ { "FromDate": "09-14-2019", "ToDate": "10-09-2019", "CancellationPrice": 0 }, { "FromDate": "10-10-2019", "ToDate": "10-11-2019", "CancellationPrice": 44.94 }, { "FromDate": "10-12-2019", "ToDate": "10-15-2019", "CancellationPrice": 44.94 } ], "RoomToken": "MHwxfDB8MA==" }, { "RoomNo": "2", "RoomTypeName": "Deluxe Room", "MealName": "RO", "MappedMealName": "Room Only", "EssentialInformation": "test", "CancellationPolicy": [ { "FromDate": "09-14-2019", "ToDate": "10-09-2019", "CancellationPrice": 0 }, { "FromDate": "10-10-2019", "ToDate": "10-11-2019", "CancellationPrice": 44.94 }, { "FromDate": "10-12-2019", "ToDate": "10-15-2019", "CancellationPrice": 44.94 } ], "RoomToken": "MHwxfDB8MQ==" } ] }
The PreBook API has been designed to check availability status of booking before book.This APImust hit once for one booking or you will get duplication error.The following section describesAPI request and response format.in case of isCombineRoom= true we are going to do one change inprevious response we sending price = 0 in other rooms and in roomNo=1 we giving you total price , butin new response we divide price in each room Total price will not change.only price is divided insideroom.
{ "Error": [], "PreBookRS": { "HotelOption": { "HotelName": "Furama Bukit Bintang", "Nationality": "india", "BookingToken": "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAB9ULsBH5aEqM0CAEECduwQQAAAACAAAAAAAQZgAAAAEAACAAAACeDkUq4CRX1EKMv2xwZiAUkJpI+16bG+RDz6HeA7YHsQAAAAAOgAAAAAIAACAAAABl5T3CvZFJr2tMct1T/U+H7ugI/C+3SYeflQFpVSUa1FAAAAC62+5S8KULsIOkO8F69KwQNsEltgfL89NS8YZUwA6uRh8F5EuZgY7zI3g3Rg2ZlHaO8YS1My/fRH7heUtQVT5hPmaHN8BTo8Y8EUcIG3AFeEAAAADCXPDswnJGd1NKmt/urgiYq3Xli6F71B0TgR80QsVufhY1toDousdPtSBNkf4qs9lUq+0yhKUxZe9cix+0EfK4", "Status": "Bookable", "IsPriceChange": 0, "CheckInDate": "10-15-2019", "CheckOutDate": "10-16-2019", "TotalPrice": 89.88, "HotelRooms": [ { "UniqueId": 306216, "RoomNo": "1", "RoomTypeName": "Deluxe Room", "MealName": "RO", "Price": 44.94, "PriceChange": { "OldPrice": 0, "NewPrice": 0 }, "MappedMealName": "Room Only" }, { "UniqueId": 306217, "RoomNo": "2", "RoomTypeName": "Deluxe Room", "MealName": "RO", "Price": 44.94, "PriceChange": { "OldPrice": 0, "NewPrice": 0 }, "MappedMealName": "Room Only" } ] }, "Currency": "USD" } }
{ "Error": [], "PreBookRS": { "HotelOption": { "HotelName": "AVANI Deira Dubai Hotel", "Nationality": "malaysia", "BookingToken": "BookingToken" , "Status": "Bookable", "IsPriceChange": 0, "CheckInDate": "01-21-2020", "CheckOutDate": "01-22-2020", "TotalPrice": 522.38, "HotelRooms": [ { "UniqueId": 158841, "RoomNo": "1", "RoomTypeName": "2 X Single room ", "MealName": "Room Only", "Price": 261.19, "PriceChange": { "OldPrice": 0, "NewPrice": 0 } }, { "UniqueId": 158842, "RoomNo": "2", "RoomTypeName": "2 X Single room ", "MealName": "Room Only", "Price": 261.19, "PriceChange": { "OldPrice": 0, "NewPrice": 0 } } ] }, "Currency": "AED" } }
The Book API has been designed to give booking details .The following section describes API request and response format. After getting response or error in book response. you have to mandatory perform booking detail api to get the actual status of booking using your internal reference or reference number from Bookresponse.
'{ "Token": "{{token}}", "Request": { "SearchKey": "JUNI_8f472_314794958374040736", "BookRQ": { "BookingToken": "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAB9ULsBH5aEqM0CAEECduwQQAAAACAAAAAAAQZgAAAAEAACAAAACeDkUq4CRX1EKMv2xwZiAUkJpI+16bG+RDz6HeA7YHsQAAAAAOgAAAAAIAACAAAABl5T3CvZFJr2tMct1T/U+H7ugI/C+3SYeflQFpVSUa1FAAAAC62+5S8KULsIOkO8F69KwQNsEltgfL89NS8YZUwA6uRh8F5EuZgY7zI3g3Rg2ZlHaO8YS1My/fRH7heUtQVT5hPmaHN8BTo8Y8EUcIG3AFeEAAAADCXPDswnJGd1NKmt/urgiYq3Xli6F71B0TgR80QsVufhY1toDousdPtSBNkf4qs9lUq+0yhKUxZe9cix+0EfK4", "TotalPrice": 89.88, "InternalReference": "animesh7777q", "HotelRooms": [ { "UniqueId": 306216, "RoomNo": "1", "IsLead": "1", "PaxType": "Adult", "Prefix": "Mr.", "FirstName": "apitest", "LastName": "animesh", "ChildAge": "0" }, { "UniqueId": 306216, "RoomNo": "1", "IsLead": "0", "PaxType": "Adult", "Prefix": "Mr.", "FirstName": "apitest second", "LastName": "animesh", "ChildAge": "0" }, { "UniqueId": 306217, "RoomNo": "2", "IsLead": "0", "PaxType": "Adult", "Prefix": "Mr.", "FirstName": "apitest room two", "LastName": "animesh", "ChildAge": "0" } ] } }, "AdvancedOptions": { "Currency": "AED" } }'
{ "Error": [], "BookRS": { "BookingId": 0, "ReferenceNo": "JUNIMA091901633", "InternalReference": "animesh7777q", "Currency": "USD" } }
API has been designed to Generate bookingDetails .The following section describes API request and response format. Only one ID can be passed. You can get booking details using either BookigID or your internalReference
'{ "Token": "{{token}}", "Request": { "BookingDetailRQ": { "BookingId": "0", "ReferenceNo": "", "InternalReference": "animesh7777q" } }, "AdvancedOptions": { "Currency": "USD" } }'
{ "Error": [], "BookingDetailRS": { "HotelOption": { "HotelName": "Furama Bukit Bintang, Kuala Lumpur", "HotelId": "6003", "Nationality": "india", "BookingId": 61405, "InternalReference": "animesh7777q", "ReferenceNo": "JUNIMA091901633", "CheckInDate": "10-15-2019", "CheckOutDate": "10-16-2019", "BookingDate": "09-14-2019", "LeadPaxName": "Mr.apitest animesh", "TotalPrice": 89.88, "HotelRooms": [ { "RoomNo": "1", "RoomTypeName": "Deluxe Room-RO", "MealName": "RO", "MappedMealName": "Room Only", "Price": 44.94, "BookingStatus": "Confirmed", "CancellationPolicy": [ { "FromDate": "09-14-2019", "ToDate": "10-09-2019", "CancellationPrice": 0 }, { "FromDate": "10-10-2019", "ToDate": "10-11-2019", "CancellationPrice": 44.94 }, { "FromDate": "10-12-2019", "ToDate": "10-15-2019", "CancellationPrice": 44.94 } ], "Passenger": [ { "IsLead": 1, "PaxType": "Adult", "Name": "Mr.apitest animesh", "ChildAge": "0" }, { "IsLead": 0, "PaxType": "Adult", "Name": "Mr.apitest second animesh", "ChildAge": "0" } ] }, { "RoomNo": "2", "RoomTypeName": "Deluxe Room-RO", "MealName": "RO", "MappedMealName": "Room Only", "Price": 44.94, "BookingStatus": "Confirmed", "CancellationPolicy": [ { "FromDate": "09-14-2019", "ToDate": "10-09-2019", "CancellationPrice": 0 }, { "FromDate": "10-10-2019", "ToDate": "10-11-2019", "CancellationPrice": 44.94 }, { "FromDate": "10-12-2019", "ToDate": "10-15-2019", "CancellationPrice": 44.94 } ], "Passenger": [ { "IsLead": 0, "PaxType": "Adult", "Name": "Mr.apitest room two animesh", "ChildAge": "0" } ] } ] }, "Currency": "USD" } }
'{ "Token": "{{token}}", "Request": { "CheckHotelCancellationChargesRQ": { "BookingId": 0, "InternalReference": "animesh7777q", "ReferenceNo": "JUNIMA091901633" } } , "AdvancedOptions": { "Currency": "USD" } }'
{ "Error": [], "CheckHotelCancellationChargesRS": { "HotelOption": { "BookingId": 61405, "TotalPrice": 89.88, "TotalCharge": 0, "TotalRefund": 89.88, "CancelCode": "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAB9ULsBH5aEqM0CAEECduwQQAAAACAAAAAAAQZgAAAAEAACAAAAA9wmuWbeR+QomGD5P6nTd5XEFIK1DB1NQB+xfY+O5xbQAAAAAOgAAAAAIAACAAAADl+mocQZJPIJnDMIpE7SIvsVaaIfxoFc8YDDxO1hQaL1AAAAAUwv8bPttkxmV4SjgLCJI7VTf9vsr9Q5wTuaZtprtl+2kwlBlQha9ujf96Cpkyc93ZMOD5aXs+k5X/tPW4HAQ8x33L/fX5BOFEdlzvGL+4w0AAAAAc2eQAPFfQ1OunEfg2MJKm2L/RaDAg/lTaeMg128qdOOsL1CJWxv/zCTp8ftFgfmq4PGmAhqsGktSej4d5s975", "HotelRooms": [ { "BookingDetailId": 66147, "RoomTypeName": "Deluxe Room-RO", "Price": 44.94, "RefundAmount": 44.94 }, { "BookingDetailId": 66148, "RoomTypeName": "Deluxe Room-RO", "Price": 44.94, "RefundAmount": 44.94 } ] }, "Currency": "USD" } }
API has been designed to cancle booking .The following section describes API request and response format.
'{ "Token": "{{token}}", "Request": { "CancelRQ": { "BookingId": 61405, "BookingDetailId": 66147, "CancelCode": "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAB9ULsBH5aEqM0CAEECduwQQAAAACAAAAAAAQZgAAAAEAACAAAAA9wmuWbeR+QomGD5P6nTd5XEFIK1DB1NQB+xfY+O5xbQAAAAAOgAAAAAIAACAAAADl+mocQZJPIJnDMIpE7SIvsVaaIfxoFc8YDDxO1hQaL1AAAAAUwv8bPttkxmV4SjgLCJI7VTf9vsr9Q5wTuaZtprtl+2kwlBlQha9ujf96Cpkyc93ZMOD5aXs+k5X/tPW4HAQ8x33L/fX5BOFEdlzvGL+4w0AAAAAc2eQAPFfQ1OunEfg2MJKm2L/RaDAg/lTaeMg128qdOOsL1CJWxv/zCTp8ftFgfmq4PGmAhqsGktSej4d5s975", "CancelAll": 0, "Reason": "test booking" } }, "AdvancedOptions": { "Currency": "USD" } }'
{ "Error": [], "CancelRS": { "HotelOption": { "BookingId": 61405, "HotelRooms": [ { "RoomTypeName": "Deluxe Room-RO", "Message": "Room Cancelled Successfully!!!", "CancelStatus": 1 } ] }, "Currency": "USD" } }
API has been designed to Generate bookingDetails .Date range allowed 31 days. The following section describes API request and response format.
{ "Token": "", "Request": { "BookingSearchRQ": { "SearchBy": "bookingdate", {bookingdate or checkindate}, "OnlyAPI":1, "SearchCriteria": { "Dates": { "FromDate": "03-19-2019", "ToDate": "04-19-2019" } } } }, "AdvancedOptions": { "Currency": "MYR" } }
{ "Error": [], "BookingSearchRS": { "BookingList": [ { "HotelName": "J", "HotelId": "1", "BookingId": , "InternalReference": "", "ReferenceNo": "AAA", "CheckInDate": "08-14-2019", "CheckOutDate": "08-15-2019", "BookingDate": "04-01-2019", "TotalPrice": 1, "BookingStatus": "cancelled", "IsAPI":true ,false } ], "Currency": "MYR" } }
Please go through certification process in order to get live access.
To ensure what API methods you are using, flow of method calls for these methods. This will help us to verify the integration.
Here we are providing a list of test cases needs to be executed .Request / response for these cases will be required for verification .
Technical team will verify the test cases using Request / Response and suggest if there is any change required.
After completion of step 3, you have to provide test link of your integration website to verify the integration flow.
On successful completion of all the above steps, we will give sign off and provide Live access details.
The communication with the system is performed through https connections. The following table enlists the properties of the request that must be employed:
It is recommended that at least all booking and cancellation transactions sent through the Test / Live environment should be logged and maintained by the travel agent for at least 6 months.
In order to start testing, please notify our support team via e-mail at sales@phoenix.comPlease note that all transactions through the test system are simply test transactions.
Please be advised few activities are available in Test Environment, Do not compare the products with Live Environment The system functionality between the Test and Live system is exactly the same except for the fact that Bookings processed in the Test environment are not sent to the Suppliers. When you have completed your development, contact your Account Manager for the activation of the access IP address of Test/Live Server is essential for whitelisting
Every product has a default transfer type and the Below id is passed along with the specific product ids.
A:We provide the REST API, request and response is in the JSON format ( JavaScript Object Notation).
A:API Services having vast pool of UAE / Singapore / Malaysia /Thailand / Hong kong Tours to help you to distribute the product globally which contains attraction / activities.
A:We provide tours time slots & tickets availability in the apis so you can select the timeslot, transfer option & tickets for adult , child , infant.
A:Yes , we provide Sandbox environment with test booking details.
Email:sales@phoenix.com
The following sections describes the Country request and response format
{ "statuscode": Status code, "error": Error description, "url": url, "count": Country Count, "result": [ { "countryId": Country Id, "countryName": Country Name } ] }
The following sections describes the City request and response format
{ "CountryId":CountryId }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": City Count, "result": [ { "cityId": City Id, "cityName": City Name } ] }
The following sections describes the Tour static data request and response format
{ "countryId": Country Id, "cityId": City Id }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Tour Data Count, "result": [ { "tourId": Tour Id, "countryId": Country Id, "countryName": Country Name, "cityId": City Id, "cityName": City Name, "tourName": Tour Name, "reviewCount": Review Count, "rating": Rating, "duration": Duration, "imagePath": Tour Image Path, "imageCaptionName": Tour Image Caption, "cityTourTypeId": Tour Type Id, "cityTourType": Tour Type Name, "tourShortDescription": Tour Short Description, "cancellationPolicyName": Cancellation Policy Name, "isSlot":is Slot, "onlyChild": Only Child, "contractId": Contract Id } ] }
The following sections describes the Tour Static Data by Id request and response format
{ "countryId": Country Id, "cityId": City Id, "tourId": Tour Id, "contractId": Contract Id, "travelDate": Travel Date }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Tour Data Count, "result": [ { "tourId": tourId, "countryId": countryId, "countryName": countryName, "cityId": cityId, "cityName": cityName, "tourName": tourName, "reviewCount": reviewCount, "rating": rating, "duration": duration, "departurePoint": departurePoint, "reportingTime": reportingTime, "tourLanguage": tourLanguage, "imagePath": imagePath, "imageCaptionName": imageCaptionName, "cityTourTypeId": cityTourTypeId, "cityTourType": cityTourType, "tourDescription": tourDescription, "tourInclusion": tourInclusion, "tourShortDescription": tourShortDescription, "globaltourdeskb2b": globaltourdeskb2b, "whatsInThisTour": whatsInThisTour, "importantInformation": importantInformation, "itenararyDescription": itenararyDescription, "usefulInformation": usefulInformation, "faqDetails": faqDetails, "termsAndConditions": termsAndConditions, "cancellationPolicyName": cancellationPolicyName, "cancellationPolicyDescription": cancellationPolicyDescription, "childCancellationPolicyName": childCancellationPolicyName, "childCancellationPolicyDescription": childCancellationPolicyDescription, "childAge": childAge, "infantAge": infantAge, "infantCount": infantCount, "isSlot": isSlot, "onlyChild": onlyChild, "contractId": contractId, "tourImages": [ { "tourId": tourId, "imagePath": imagePath, "imageCaptionName": imageCaptionName, "isFrontImage": isFrontImage, "isBannerImage": isBannerImage, "isBannerRotateImage": isBannerRotateImage } ], "tourReview": [ { "id": id, "tourId": tourId, "reviewId": reviewId, "reviewTitle": reviewTitle, "reviewContent": reviewContent, "visitMonth": visitMonth, "rating": rating, "imagePath": imagePath, "guestName": guestName } ] } ] }
The following sections describes the Option Static Data request and response format
{ "tourId":tourId, "contractId":contractId }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Tour option Data Count, "result": [ "touroption": [ { "tourId": tourId, "tourOptionId": tourOptionId, "optionName": optionName, "childAge": childAge, "infantAge": infantAge, "optionDescription": optionDescription, "cancellationPolicy": cancellationPolicy, "cancellationPolicyDescription": cancellationPolicyDescription, "childPolicyDescription": childPolicyDescription, "xmlcode": xmlcode, "xmloptioncode": xmloptioncode, "countryId": countryId, "cityId": cityId, "minPax": minPax, "maxPax": maxPax, "duration": duration, "timeZone": timeZone } ], "operationdays": [ { "tourId": tourId, "tourOptionId": tourOptionId, "monday": monday, "tuesday": tuesday, "wednesday": wednesday, "thursday": thursday, "friday": friday, "saturday": saturday, "sunday": sunday } ], "specialdates": [], "transfertime": [ { "tourId": tourId, "tourOptionId": tourOptionId, "transferType": transferType, "transferTime": transferTime, "duration": duration } ] ] }
The following sections describes the Tour Price request and response format
{ "countryId": Country Id, "cityId": City Id, "travelDate": Travel Date, }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Tour Data Count, "result": [ { "tourId": tourId, "contractId": contractId, "amount": amount, "discount": discount, "sortOrder": sortOrder } ] }
The following sections describes the Tour Options request and response format
{ "tourId": tourId, "contractId": contractId, "travelDate": TravelDate, "noOfAdult": NoOfAdult, "noOfChild": NoOfChild, "noOfInfant": NoOfInfant }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Tour Option Data Count, "result": [ { "tourId": tourId, "tourOptionId": tourOptionId, "transferId": transferId, "transferName": transferName, "adultPrice": adultPrice, "childPrice": childPrice, "infantPrice": infantPrice, "withoutDiscountAmount": withoutDiscountAmount, "finalAmount": finalAmount, "startTime": startTime, "departureTime": departureTime, "disableChild": disableChild, "disableInfant": disableInfant, "allowTodaysBooking": allowTodaysBooking, "cutOff": cutOff, "isSlot": isSlot, "isDefaultTransfer": isDefaultTransfer, "rateKey": rateKey, "inventoryId": inventoryId } ] }
The following sections describes the Tour Timeslot request and response format
{ "tourId": tourId, "tourOptionId": tourOptionId, "travelDate": travelDate, "transferId":transferId, "contractId": contractId }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Timeslot Count, "result": [ { "tourOptionId": tourOptionId, "timeSlotId": timeSlotId, "timeSlot": timeSlot, "available": available, "adultPrice": adultPrice, "childPrice": childPrice, "isDynamicPrice": isDynamicPrice } ] }
The following sections describes the Tour Availability request and response format
{ "tourId": tourId, "tourOptionId": tourOptionId, "transferId": transferId, "travelDate": travelDate, "adult": adult, "child": child, "infant": infant, "contractId": contractId }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Array Count, "result": [ { "status": status, "message": message, "productType": productType } ] }
{ "tourId": tourId, "travelDate": travelDate, "startTime": startTime, "currentDate": currentDate, "contractId": contractId, "tourOptionId": tourOptionId }
{ "statuscode": Status code, "error": Error description, "currency": currency, "currencysymbol": currencysymbol, "errormessage": errormessage, "count": Arry Count, "result": [ { "tourId": tourId, "optionId": optionId, "fromDate": From date, "toDate": To date, "percentage": Percentage charge (Eg: 100%) } ] }
The following sections describes the Tour Booking request and response format
{ "uniqueNo": uniqueNo, "TourDetails": [ { "serviceUniqueId": serviceUniqueId, "tourId": tourId, "optionId": optionId, "adult": adult, "child": child, "infant": infant, "tourDate": tourDate, "timeSlotId": timeSlotId, "startTime": startTime, "transferId": transferId, "pickup": pickup, "adultRate": adultRate, "childRate": childRate, "serviceTotal": serviceTotal } ], "passengers": [ { "serviceType": serviceType, "prefix": prefix, "firstName":firstName, "lastName": lastName, "email": email, "mobile": mobile, "nationality": nationality, "message": message, "leadPassenger": leadPassenger, "paxType": paxType, "clientReferenceNo": clientReferenceNo } ] }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Array Count, "result": [ { "refernceNo": refernceNo, "status": status, "bookingId": bookingId, "downloadRequired": downloadRequired, "serviceUniqueId": serviceUniqueId, "servicetype": servicetype, "confirmationNo": confirmationNo } ] }
The following sections describes the Ticket request and response format
{ "uniqNO": Uniq NO, "referenceNo": Reference No, "bookedOption": [ { "serviceUniqueId": Service Unique Id", "bookingId": Booking Id } ] }
{ "statuscode": Status Code, "error": Error, "result": { "bookingId": Booking Id, "referenceNo": referenceNo, "BookingStatus": BookingStatus, "ticketURL": Ticket URL, "optionName":Option Name, "validity": Validity, "validityExtraDetails": Validity Extra Details, "printType": Print Type, "slot": Slot, "pnrNumber": pnrNumber, "ticketDetails": [ { "barCode": Bar Code, "type": "Type", "noOfAdult": No Of Adult, "noOfchild": No Of Child } ] } }
The following sections describes the Tour Cancellation request and response format
{ "bookingId": bookingId, "referenceNo": referenceNo, "cancellationReason": cancellationReason }
{ "statuscode": Status code, "error": Error description, "url": Url, "count": Array Count, "result": [ { } ] }
NOTIFICATION