1. Price Search: This function allows users to search for prices by check-in and check-out dates. It supports both cached rates and real-time rates.
2. Default Settings: By default, the Lowest Price Search and Cache Rate Search will return prices based on two persons.
3. Cache Building: If you use the Lowest Price Search or Cache Rate Search to build your cache for the next 30 days, you should invoke the API 30 times as the cache is on a daily basis.
4. Multiple Hotel Queries: For queries involving multiple hotels, it is recommended to use the Cache Rate Search.
5. PriceSearch Step: At this step, DidaAPI only returns the price for one room. If you search for more than one room (for example, 3 rooms), and need to calculate the total price for the order, use the price for one room multiplied by the number of rooms. At the PriceConfirm step, the total price for all rooms is returned. For a detailed explanation, please contact your dedicated API manager.
6. Multiple Rooms: Dida API supports single requests with multiple rooms of the same room type (same RatePlanID). However, it does not support single requests with multiple rooms of different room types.
7. During the PriceSearch phase, Dida does not support different rooms with varying numbers of occupants. For requests involving 2 or more rooms, each with different occupancy counts, it is not recommended to split these into separate requests to Dida, as this may result in a scenario where one order is successful while others fail, potentially leading to disputed transactions. It is advised to instead submit a single request, combining the maximum number of adults and children for different room configurations. Please note that because some hotels may not accommodate child guests, the counts for adult and child occupants should be handled separately. It is important to accurately input the counts for adult and child occupants. Please refer to the examples provided in the table below for specific guidance. This is a critical point, and if you have any questions, please reach out to your dedicated API account manager.
Scene | Room1 | Room2 | RealTimeOccupancy |
---|---|---|---|
1 | 1 Adult | 2 Adult | 2 Adult |
2 | 1 Adult | 1 Adult 1 Child | 1 Adult 1 Child |
3 | 2 Adult | 1 Adult 1 Child | 2 Adult 1 Child |
4 | 2 Adult 1 Child | 2 Adult 2 Child | 2 Adult 2 Child |
8. Regarding meal plans, Dida provides two fields to obtain information about the meal types. The first is BreakfastType, which in the Response only indicates the inclusion or exclusion of breakfast without specifying the number of meal servings. For clients developing the Dida API, this field is not recommended. The second is MealType, which not only represents the specific meal plan in the Response but is also accompanied by MealAmount to denote the number of meal servings included. If you utilize MealType, it is imperative to also parse the MealAmount field to avoid any interpretation errors or future disputes regarding the number of meal servings.Furthermore, in theory, the quantity of MealAmount is always less than or equal to the number of guests staying. For instance, if two guests are staying and MealAmount is 0, it means that breakfast is not included. A MealAmount of 1 indicates that only one breakfast serving is included, which is a scenario where some hotels may include one complimentary breakfast for two guests, and any additional servings would need to be purchased separately upon arrival. A MealAmount of 2 signifies that both guests have breakfast included in their stay.
9. Regarding the IncludedFeeList and ExcludedFeeList:
- In theory, the taxes and fees displayed within the IncludedFeeList node are included in the TotalPrice node, such as Tax and Fee, which need to be paid by the guest along with the TotalPrice. The taxes and fees displayed in the ExcludedFeeList node are not included in the TotalPrice node, such as Resort Fee, City Fee, etc., which are generally paid directly to the hotel by the guest upon arrival.
- The information in IncludedFee and ExcludedFee generally comes from the Dida supplier or the hotel, and not every hotel will include these two nodes.
This API only returns the lowest price for each hotel at a specified destination. It is recommended to use this function for hotel price caching.
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"CheckInDate": "2023-08-26",
"CheckOutDate": "2023-08-27",
"Destination": {
"CityCode": "602651"
},
"LowestPriceOnly": true,
"Nationality": "CN",
"Currency": "CNY"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<Destination CityCode="602651" />
<CheckInDate>2023-08-26</CheckInDate>
<CheckOutDate>2023-08-27</CheckOutDate>
<Nationality>CN</Nationality>
<LowestPriceOnly>true</LowestPriceOnly>
<Currency>CNY</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"CheckInDate": "2023-08-23",
"CheckOutDate": "2023-08-24",
"HotelIDList": [5982,11,7017,239133,1672],
"LowestPriceOnly": true,
"Nationality": "CN",
"Currency": "USD"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>5982</HotelID>
<HotelID>11</HotelID>
<HotelID>7017</HotelID>
<HotelID>239133</HotelID>
<HotelID>1672</HotelID>
</HotelIDList>
<CheckInDate>2023-08-23</CheckInDate>
<CheckOutDate>2023-08-24</CheckOutDate>
<Nationality>CN</Nationality>
<LowestPriceOnly>true</LowestPriceOnly>
<Currency>USD</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"CheckInDate": "2023-08-23",
"CheckOutDate": "2023-08-24",
"HotelIDList": [5982,11,7017,239133,1672],
"LowestPriceOnly": true,
"Nationality": "CN",
"Currency": "USD"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>5982</HotelID>
<HotelID>11</HotelID>
<HotelID>7017</HotelID>
<HotelID>239133</HotelID>
<HotelID>1672</HotelID>
</HotelIDList>
<CheckInDate>2023-08-23</CheckInDate>
<CheckOutDate>2023-08-24</CheckOutDate>
<Nationality>CN</Nationality>
<LowestPriceOnly>true</LowestPriceOnly>
<Currency>USD</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"HotelIDList": [76458,1250,512,251448,146962],
"CheckInDate": "2023-08-01",
"CheckOutDate": "2023-08-02",
"IsRealTime": {
"Value": false,
"RoomCount": 1
},
"Currency": "USD",
"Nationality": "CN"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>76458</HotelID>
<HotelID>1250</HotelID>
<HotelID>512</HotelID>
<HotelID>251448</HotelID>
<HotelID>146962</HotelID>
</HotelIDList>
<CheckInDate>2023-08-01</CheckInDate>
<CheckOutDate>2023-08-02</CheckOutDate>
<Nationality>CN</Nationality>
<IsRealTime RoomCount="1">false</IsRealTime>
<Currency>USD</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"HotelIDList": [76458],
"CheckInDate": "2023-08-01",
"CheckOutDate": "2023-08-02",
"IsRealTime": {
"Value": false,
"RoomCount": 1
},
"Currency": "USD",
"Nationality": "CN"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>76458</HotelID>
</HotelIDList>
<CheckInDate>2023-08-01</CheckInDate>
<CheckOutDate>2023-08-02</CheckOutDate>
<Nationality>CN</Nationality>
<IsRealTime RoomCount="1">false</IsRealTime>
<Currency>USD</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"HotelIDList": [76458],
"CheckInDate": "2023-08-01",
"CheckOutDate": "2023-08-02",
"IsRealTime": {
"Value": false,
"RoomCount": 1
},
"Currency": "USD",
"Nationality": "CN"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>76458</HotelID>
</HotelIDList>
<CheckInDate>2023-08-01</CheckInDate>
<CheckOutDate>2023-08-02</CheckOutDate>
<Nationality>CN</Nationality>
<IsRealTime RoomCount="1">false</IsRealTime>
<Currency>USD</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"HotelIDList": [
76458,1250,512,251448,146962
],
"CheckInDate": "2023-08-01",
"CheckOutDate": "2023-08-02",
"IsRealTime": {
"Value": true,
"RoomCount": 1
},
"RealTimeOccupancy": {
"AdultCount": 2,
"ChildCount": 0,
"ChildAgeDetails": []
},
"Currency": "USD",
"Nationality": "CN"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>76458</HotelID>
<HotelID>1250</HotelID>
<HotelID>512</HotelID>
<HotelID>251448</HotelID>
<HotelID>146962</HotelID>
</HotelIDList>
<CheckInDate>2023-08-01</CheckInDate>
<CheckOutDate>2023-08-02</CheckOutDate>
<Nationality>CN</Nationality>
<IsRealTime RoomCount="1">true</IsRealTime>
<RealTimeOccupancy AdultCount="2" ChildCount="0">
<ChildAgeDetails />
</RealTimeOccupancy>
<Currency>USD</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"HotelIDList": [
512
],
"CheckInDate": "2023-08-01",
"CheckOutDate": "2023-08-02",
"IsRealTime": {
"Value": true,
"RoomCount": 1
},
"RealTimeOccupancy": {
"AdultCount": 2,
"ChildCount": 0,
"ChildAgeDetails": []
},
"Currency": "USD",
"Nationality": "CN"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>512</HotelID>
</HotelIDList>
<CheckInDate>2023-08-01</CheckInDate>
<CheckOutDate>2023-08-02</CheckOutDate>
<Nationality>CN</Nationality>
<IsRealTime RoomCount="1">true</IsRealTime>
<RealTimeOccupancy AdultCount="2" ChildCount="0">
<ChildAgeDetails />
</RealTimeOccupancy>
<Currency>USD</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"HotelIDList": [512],
"CheckInDate": "2023-08-01",
"CheckOutDate": "2023-08-02",
"IsRealTime": {
"Value": true,
"RoomCount": 1
},
"RealTimeOccupancy": {
"AdultCount": 2,
"ChildCount": 2,
"ChildAgeDetails": [1, 2]
},
"Currency": "USD",
"Nationality": "CN"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>512</HotelID>
</HotelIDList>
<CheckInDate>2023-08-01</CheckInDate>
<CheckOutDate>2023-08-02</CheckOutDate>
<Nationality>CN</Nationality>
<IsRealTime RoomCount="1">true</IsRealTime>
<RealTimeOccupancy AdultCount="2" ChildCount="2">
<ChildAgeDetails>
<ChildAge>1</ChildAge>
<ChildAge>2</ChildAge>
</ChildAgeDetails>
</RealTimeOccupancy>
<Currency>USD</Currency>
</PriceSearchRequest>
{
"Header": {
"ClientID": "DidaApiTestID",
"LicenseKey": "TestKey"
},
"HotelIDList": [
512
],
"CheckInDate": "2023-08-01",
"CheckOutDate": "2023-08-02",
"IsRealTime": {
"Value": true,
"RoomCount": 1
},
"RealTimeOccupancy": {
"AdultCount": 2,
"ChildCount": 2,
"ChildAgeDetails": [1, 2]
},
"Currency": "USD",
"Nationality": "CN"
}
<PriceSearchRequest>
<Header>
<ClientID>DidaApiTestID</ClientID>
<LicenseKey>TestKey</LicenseKey>
</Header>
<HotelIDList>
<HotelID>512</HotelID>
</HotelIDList>
<CheckInDate>2023-08-01</CheckInDate>
<CheckOutDate>2023-08-02</CheckOutDate>
<Nationality>CN</Nationality>
<IsRealTime RoomCount="1">true</IsRealTime>
<RealTimeOccupancy AdultCount="2" ChildCount="2">
<ChildAgeDetails>
<ChildAge>1</ChildAge>
<ChildAge>2</ChildAge>
</ChildAgeDetails>
</RealTimeOccupancy>
<Currency>USD</Currency>
</PriceSearchRequest>