standard api specifications - DataPerts Technologies

44
RezNext Global Solutions Standard Product – Channel Manager (Two Way Integration) API Specifications 2015 Version 1.2 RezNext © 2015 All Rights Reserved External Distribution: Disclose and distribute only to Partners of RezNext Global Solutions and authorized persons working for RezNext Global Solutions. Disclosing or circulating in a whole or in part outside of RezNext Global Solutions is prohibited.

Transcript of standard api specifications - DataPerts Technologies

RezNext Global Solutions

Standard Product – Channel Manager (Two Way

Integration) API Specifications

2015

Version 1.2 RezNext © 2015 All Rights Reserved

External Distribution: Disclose and distribute only to Partners of RezNext Global Solutions and authorized persons working for RezNext Global Solutions. Disclosing or circulating in a whole or in part outside of RezNext Global Solutions is prohibited.

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 1 Version 1.2

Document Information This section identifies information specific to this document.

The information available in this document is proprietary and confidential of RezNext Global Solutions, here after referred as RezNext and its subsidiaries and may not be duplicated, published or disclosed to a third party, in whole or in part without prior written permission from an authorized RezNext representative. The use and disclosure of this information are further subject to the terms and conditions of any applicable agreement between the recipient and RezNext, including any governing service, confidentiality or non-disclosure agreement.

Document History

All revisions to this document are listed in chronological order.

Version Date Description of Changes Author

1.2 16/03/2015 Standard API Specifications Sivapratap Reddy

00.02 19/05/2013 Initial Draft Jegatheesan .P

00.01 19/02/2013 Booking API updated Narasimha Reddy

This document was created by the Partner integration team within RezNext Global Solutions Pvt. Ltd. RezNext Global Solutions has made every effort to ensure this document is accurate at the time of printing.

Trademarks

The trademarks contained in this document are the property of their respective owners.

Copyright

RezNext 2013 All Rights Reserved Unpublished and Confidential Property of RezNext Global Solutions

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 2 Version 1.2

Table of Contents

1 Introduction to API ........................................................................................... 4

1.1 Audience .................................................................................................... 4 1.2 Adherence to OTA and HTNG Standards ......................................................... 4 1.3 References ................................................................................................. 4

2 Interface Architecture ....................................................................................... 5

2.1 Connectivity ............................................................................................... 5 2.2 Push Model ................................................................................................. 5

3 Inventory Notification Service........................................................................... 5

3.1 Inventory Notification Request ...................................................................... 5 3.1.1 Inventory Notification Request XML Usage Description ....................................................... 5

3.2 Inventory Notification Response .................................................................... 7 3.2.1 Inventory Notification Response XML Usage Description .................................................... 7

3.3 Examples ................................................................................................... 8 3.3.1 Example1 ............................................................................................................................... 8

3.3.2 Example 2 .............................................................................................................................. 9

4 API Specifications - Availability Service ............................................................ 9

4.1 Availability Request ................................................................................... 10 4.1.1 Availability Request XML Usage Description ...................................................................... 10

4.2 Availability Response ................................................................................. 12 4.2.1 Availability Response XML Usage Description .................................................................... 12

4.3 Availability Request Scenarios Detailed ........................................................ 13 4.3.1 Restriction Status to Support Stop Sell ............................................................................... 13

4.3.2 Using day of week attributes with date ranges .................................................................. 13

4.4 Examples ................................................................................................. 14 4.4.1 Example – Room/Rate Availability Request ........................................................................ 14

4.4.2 Example - Restrictions ......................................................................................................... 14

5 Rate Plan Service ............................................................................................ 15

5.1 Rate Plan Request ..................................................................................... 15 5.1.1 Rate Plan Request XML Usage Description ......................................................................... 16

5.2 Hotel Rate Plan Response ........................................................................... 20 5.2.1 Hotel Rate Plan Response XML Usage Description ............................................................. 20

5.3 Rate Plan Request Scenarios Detailed .......................................................... 21 5.3.1 Length of Stay Restrictions.................................................................................................. 21

5.3.2 Support for Booking Rules –Closed To Arrival, Closed To Departure and Advanced Booking

Offsets 21

6 Get Room RatePlans ........................................................................................ 22

6.1 Room RatePlan Read Request ..................................................................... 22

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 3 Version 1.2

6.1.1 Room RatePlan Read Request XML Usage Description ...................................................... 22

6.2 Room RatePlan Read Response ................................................................... 23 6.2.1 Room RatePlans Read Response XML Usage Description .................................................. 23

7 Reservation Service ........................................................................................ 24

7.1 Book/Modify Reservation Notification Request ............................................... 25 7.1.1 Header Section .................................................................................................................... 27

7.1.2 Book/Modify Reservation Notification Request XML Usage Description ........................... 28

7.2 Book/Modify Reservation Notification Response ............................................. 34 7.2.1 Book/Modify Reservation Notification Response XML Usage Description ........................ 35

7.3 Cancel Reservation Notification Request ....................................................... 36 7.4 Cancel Reservation Notification Response ..................................................... 37

8 Appendix ......................................................................................................... 38

8.1 Message Content Codes (MCC) ................................................................... 38 8.2 Meal Plan Codes ........................................................................................ 38 8.3 Error Handling .......................................................................................... 38 8.3.1 EWT Type – Error Warning Type Codes .............................................................................. 39

8.3.2 Error Codes.......................................................................................................................... 39

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 4 Version 1.2

1 Introduction to API This document describes APIs developed by Reznext to be used by third parties that manage availability, rate and inventory as available with the hotels. This document currently describes following XML API’s,

1. Inventory updates for a Room Type

2. Availability at a combination of room type and rate plan level

3. Rate Plan Details & Rate updates

4. Reservation updates

Further this document defines the usage descriptions and technical specifications for Rate, Availability and

Inventory based on OTA message request and response between Reznext system and the third party systems.

Reznext has implemented OTA-compliant XML interfaces for enabling the data transfer between the

communicating systems.

1.1 Audience

This document is for developers and managers responsible for the technical aspects of interfacing to the RezNext

Global Solutions. This document assumes reader also has a general understanding of hotel operation, distribution,

and integration. Advance working knowledge of OTA and HTNG specifications is a useful, though not a necessary

pre-requisite.

1.2 Adherence to OTA and HTNG Standards To facilitate the development of hotels real-time two way interface between property management system and a

host of channel partners such as Open Travel Alliance (“OTAs”), Hotel Technology Next Generation (“HTNG”)

organizations, GDS and hotel’s web book engine. This allows a hotel to dynamically distribute their room inventory

online and allows potential guests to book room.

The RezNext interface is a standard interface, any deviation from our standard implementation may require special

coding between RezNext and the vendor to create an interface custom for that vendor.

New OTA/HTNG messages may be added or existing messages expanded, as the RezNext functionality is enhanced,

and will be done ensuring backwards compatibility. Client software using the RezNext interface should be able to

handle the addition of new fields in the messages without breaking.

1.3 References

The following documents are referenced in this document:

1) HTNG Property Distribution Solution Specifications- available at http://www.opengroup.org/htng/specs

2) Open Travel Alliance Specifications– available at http://www.opentravel.org/Specifications

Please reference these specs for schema definitions.

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 5 Version 1.2

2 Interface Architecture

2.1 Connectivity

The RezNext interface processes XML documents utilizing standard HTTPS POST method. SSL encryption of the post ensures the security of the data being transferred. RezNext currently support synchronous methodology in which the RezNext system can send (push) the information to the distribution system/Partner.

2.2 Push Model

In the push model, the sending system pushes the data to the receiving system. In order for RezNext to connect to a Partner at a property using the push model, the Partner must provide a URL. If the Partner system is protected by a firewall, this URL needs to be accessible by RezNext from outside of the Partner’s firewall.

As of now this document details the push notifications for Rate, Availability, Inventory and Booking information.

3 Inventory Notification Service Reznext Connect provides an interface for partners for sending updates on Inventory. This service pushes inventory availability, day wise availability updates at room level for each hotel, from Reznext system to other connecting systems (OTA, GDS etc.) with the ability to book or change a reservation. This request updates inventory for one hotel at a time. Following sections explains how to use Connect interface and what information can be uploaded through it.

3.1 Inventory Notification Request Reznext would send the inventory information using this message. This is a push message from Reznext to partner systems. Sample Request: Inventory Count Notification Request <?xml version="1.0" encoding="utf-8" ?> <OTA_HotelInvCountNotifRQ xmlns="http://www.reznext.com/OTA/2015/03" EchoToken="3101877" TimeStamp="2015-03-10T09:41:51.982" Version="1.2"> <Inventories HotelCode="10001"> <Inventory> <StatusApplicationControl Start="2015-03-10" End="2015-03-30" InvTypeCode="STD" AllInvCode="False"/> <InvCounts> <InvCount CountType="2" Count="17" /> </InvCounts> </Inventory> </Inventories> </OTA_HotelInvCountNotifRQ>

3.1.1 Inventory Notification Request XML Usage Description Element | @Attribute Data

Type Occurrences

Description Validations

OTA_HotelInvCountNotifRQ N/A 1 Root element of the message

@EchoToken String 0 to 1 Optional. Token to uniquely identify the request. Generate a unique number and pass along the request

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 6 Version 1.2

@TimeStamp Date Time

1 Optional. Timestamp of the transaction

@Version String 1 Optional. Version is a mandatory attribute. Identifies the version of specifications. Set this to "1.2" If Version is not passed, the latest version specifications to be used

OTA_HotelInvCountNotifRQ / Inventories

N/A 1 A collection of Inventory. Hotel identification information are the attributes of this element. Request is to update inventory for one hotel at a time

@ChainCode String 0 to 1 Optional. The chain code for which the availability request is for.

@ HotelName String 0 to 1 Optional. This is name of the property whose availability is being requested

@ HotelCode String 1 Mandatory. This is the code of the property whose inventory is being requested. This is the partner hotel code

OTA_HotelInvCountNotifRQ / Inventories / Inventory

N/A 1 to N This is the inventory information for a given room type, date etc. This element can be repeated if inventory is to be updated for multiple room types or for different date ranges

OTA_HotelInvCountNotifRQ / Inventories / Inventory / StatusApplicationControl

N/A 0 to N Information on what the InvCountNotif Message applies to and the period of application

@Start, @End Date 1 Mandatory. The first and last dates for which the availability update is being sent. Start/End Date Format : YYYY-MM-DD

Start date <= End Date Start Date >= Today End Date <= Today + 2 years

@Mon,@Tue,@Weds,@Thur, @Fri,@Sat,@Sun

Boolean 0 to 1 per day

These 7 attributes are used to indicate on which day of the week, from the date range specified in the “Start”-“End” attributes, the updates should be applied. If none of the 7 attributes are specified, updates will apply to all days of the week. As soon as one attribute is specified, the updates will only apply to the days where the attribute value is set to true. If @Sun is set to true, apply update for each Sunday in the specified date interval.

Allowed {0 or 1} for each day

@AllInvCode String 0 to 1 When true indicates that the data transmitted is for total inventory in the hotel. Conditionally mandatory. This field is required if @InvTypeCode attribute is missing.

Allowed {True, False)

@InvTypeCode String 0 to 1 This is the room type code for which the update is being sent. This is the room type code as setup in partners system. This field is required if @AllInvCode=”False” or missing. This field should not be sent if @AllInvCode=”True”.

OTA_HotelInvCountNotifRQ / Inventories / Inventory / InvCounts

N/A 0 to 1 A collection of inventory counts

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 7 Version 1.2

OTA_HotelInvCountNotifRQ / Inventories / Inventory / InvCounts / InvCount

N/A 1 to N Individual inventory count (e.g. Physical, Available, Sold, OOO, NAFS). Can be repeated to update iventory count for Physical, Available, Sold inventory etc.

@CountType Integer 1 This identifies the type of inventory count being reported. 2 - Definitive availability

Allowed (2}

@Count Integer 1 Number of rooms of this type available for sale. Total number of rooms made available for this room type, for each day specified by “DateRange” element.

OTA_HotelInvCountNotifRQ / Inventories / Inventory / UniqueID

N/A 0 to 1 Used to uniquely track for any errors that might happen. Each inventory message to have an unique code which the receiver responds back in the response for troubleshooting purposes

@Type Integer 1 Type refers to OpenTravel Alliance code list UIT – nr 16 = Reference. This is used to identify each single availability status message for error reporting purposes

Use only 16

@ID Integer 1 ID is a unique incremental number for each message that identifies that specific message

3.2 Inventory Notification Response Partner systems should respond to this request by sending OTA_HotelInvCountNotifRS message. This message

should be returned synchronously and it should return one of {‘Success’, ’Success with Warning messages’, ’Error

message’}

Sample Response: Inventory Count <?xml version="1.0" encoding="UTF-8"?> <OTA_HotelInvCountNotifRS xmlns="http://www.reznext.com/OTA/2015/10" TimeStamp="2013-03-10T06:39:09" Version="1.2"> <Success/> </OTA_HotelInvCountNotifRS>

3.2.1 Inventory Notification Response XML Usage Description Element | @Attribute Data

Type Occurrences

Description

OTA_HotelInvCountNotifRS N/A 1 Root element of the message

@EchoToken String 0 to 1 Optional. Token sent during the request should be updated here

@TimeStamp Date Time

1 Timestamp of the transaction

@Version String 1 Optional. Version is a mandatory attribute. Identifies the version of specifications. Set this to "1.2" If Version is not passed, the latest version specifications to be used

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 8 Version 1.2

OTA_HotelInvCountNotifRS / Success

N/A 0 to 1 This is the annotation that the Inventory Count request was received successfully. It could be combined with warning messages if some of the messages in the batch had issues. Element appears if the request to update Inventory was successful. If this element is present, Error node(s) does not appear. Not everything from the request was successfully processed if warnings are also returned.

OTA_HotelInvCountNotifRS / Warnings

N/A 0 to 1 Detailed description of a warning. When this element appears, anything that is not listed in the warning list is assumed to be successfully processed and updated.

OTA_HotelAvailNotifRS / Warnings / Warning

N/A 1 to N Mandatory. This element can be repeated to update multiple warnings

@ Type Integer 1 Refers to Open Travel Alliance EWT list (error warning type in the Appendix)

@ Code Integer 0 to 1 Optional. Refer for Open Travel Alliance ERR list. Refer Error code in the Appendix

@ RecordID Integer 0 to 1 If the receiving system is able to identify within a batch of availability status messages which specific message failed, the UniqueID of the message should be reported here.

OTA_HotelInvCountNotifRS / Errors NA 0 to 1 Optional. If included, this element will indicate that the request message could not be processed. Either a Success element or an Errors element is required in every response.

OTA_HotelAvailNotifRS / Errors / Error

N/A 1 to N Mandatory. Description of cause for a fatal problem during request message processing. If an Error element is included, at least one Error element is required. Can have multiple errors

@ Type Integer 1 This is an enumeration of error types. See Code Lists below for supported values.Code list Error Types.

@ Code Integer 0 to 1 Optional. Refer for Open Travel Alliance ERR list. Refer Error code in the Appendix

@ RecordID Integer 0 to 1 If the receiving system is able to identify within a batch of availability status messages which specific message failed, the UniqueID of the message should be reported here.

3.3 Examples

3.3.1 Example1

Scenario: Reznext sends a request an OTA ‘ABC123’ requesting to update the inventory data for Hotel ‘TestHotel’ for the period between May 16, 2015 and May 30, 2015 for room type code ‘DLX’. Definitive availability – 17 Request XML: <?xml version="1.0" encoding="UTF-8"?> <OTA_HotelInvCountNotifRQ xmlns="http://www.reznext.com/OTA/2015/03" TimeStamp="2015-03-10T09:41:51.982" Version="1.2"> <Inventories HotelCode="10001"> <Inventory> <StatusApplicationControl Start="2015-05-16" End="2015-05-30" InvTypeCode="DLX" AllInvCode="False"/> <InvCounts> <InvCount CountType="2" Count="17" /> </InvCounts> </Inventory> </Inventories>

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 9 Version 1.2

</OTA_HotelInvCountNotifRQ> Response: Success <?xml version="1.0" encoding="UTF-8"?> <OTA_HotelInvCountNotifRS xmlns="http://www.reznext.com/OTA/2015/03" TimeStamp="2015-05-10T06:39:09" Version="1.2"> <Success/> </OTA_HotelInvCountNotifRS>

3.3.2 Example 2

Scenario: Hotel: Test Hotel InvType: STD, DLX For DLX – 16

th may 2015 till 30

th may 2015 – available inventory is 17 – Inventory available only on Weekends

For STD – 16th

may 2015 till 30th

may 2015 – available inventory is 7 – Inventory available on all days; Request XML:

<OTA_HotelInvCountNotifRQ xmlns="http://www.reznext.com/OTA/2015/03" TimeStamp="2015-03-10T09:41:51.982" Version="1.2"> <Inventories HotelCode="10001"> <Inventory> <StatusApplicationControl Start="2015-03-16" End="2015-03-30" Mon="0" Tue="0" Wed="0" Thur="0" Fri="0" Sat="1" Sun="1" InvTypeCode="DLX" AllInvCode="False" /> <InvCounts> <InvCount CountType="2" Count="17" /> </InvCounts> </Inventory> <Inventory> <StatusApplicationControl Start="2015-03-16" End="2015-03-30" AllInvCode="False" Mon="1" Tue="1" Wed="1" Thur="1" Fri="1" Sat="1" Sun="1" InvTypeCode="STD"></StatusApplicationControl> <InvCounts> <InvCount CountType="2" Count="7" /> </InvCounts> </Inventory> </Inventories> </OTA_HotelInvCountNotifRQ>

4 API Specifications - Availability Service

All the requests in this service are partial updates. Partner systems should overwrite only the values which are

specifically passed in the update and retain previously set values for other Availability information. If any element

or attribute is missing, they are assumed to retain their previously set values. For example, if availability

information is not passed in the update the partner system must continue to apply the previously set values of

availability for the dates specified. It should be noted that the partner system could have different values set

previously for the dates specified in the update and they should all be retained as is.

Reznext Availability service provides Room/Rate availability. Room/Rate Availability – To update availability of a Room Type along with a Rate Plan

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 10 Version 1.2

4.1 Availability Request Reznext would send the availability information to the connecting partner system using this message. This is a push message from Reznext. Sample Request: Room Availability Request Transmit the following ROOM TYPE availability update: Hotel Code: HXCAIZZ Start date: Mar 15

th 2015

End date: Mar 30th

2015 Change applies to DOW: FRI-SAT-SUN Room Type: STD Rate Plan Code: B001 Stop Sell. Sample XML: <OTA_HotelAvailNotifRQ xmlns="http://www.reznext.com/OTA/2015/03" Version="1.2" EchoToken="54638383" TransactionIdentifier="938383" TimeStamp="2015-03-10T09:30:47-05:00" MessageContentCode="3"> <AvailStatusMessages HotelCode="HXCAIZZ"> <AvailStatusMessage> <StatusApplicationControl Start="2015-03-15" End="2015-03-30" InvTypeCode="STD" Mon="0" Tue="0" RatePlanCode="B001" MealPlanCode="CP" Weds="0" Thur="0" Fri="1" Sat="1" Sun="1"></StatusApplicationControl> <RestrictionStatus Restriction="Master" Status="Close"/> <UniqueID Type="16" ID="1"></UniqueID> </AvailStatusMessage> </AvailStatusMessages> </OTA_HotelAvailNotifRQ>

4.1.1 Availability Request XML Usage Description Element | @Attribute Data Type Occurre

nces Description Validations

OTA_HotelAvailNotifRQ N/A 1 Root element of the message

@EchoToken String 0 to 1 Optional. Token to uniquely identify the request. Generate a unique number and pass along the request

@TimeStamp Date 1 Time of the transaction in xml schema

@Version String 1 Optional. Version is a mandatory attribute. Identifies the version of specifications. Set this to "1.2" If Version is not passed, the latest version specifications to be used

@TransactionIdentifier String 0 to 1 Optional. If the availability update is the result of a reservation upload, the reservation number should be indicated in this field.

@MessageContentCode Integer 1 The attribute refers to OpenTravel Alliance code list MCC which Reznext supports only RoomRateAvail at this point in time. 3- Room/Rate availability

Allowed {3}

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 11 Version 1.2

OTA_HotelAvailNotifRQ / AvailStatusMessages

N/A 1 The element is used to transfer the ARI information for a Room/Rate/Segment for a date range (with day of week applicability)

@ChainCode String 0 to 1 Optional. The Partner chain code for which the availability request is for.

@ HotelName String 0 to 1 Optional. This is name of the property whose availability is being requested

@HotelCode String 1 Mandatory. This is the Partner code of the property whose availability is being updated.

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / UniqueID

N/A 0 to 1 Used to uniquely track for any errors that might happen. Each ARI message to have an unique code which the receiver responds back in the response for troubleshooting purposes

@Type Integer 1 Refers to OpenTravel Alliance code list UIT – nr 16 = Reference. This is used to identify each single availability status message for error reporting purposes.

Only 16 is allowed

@ID Integer 1 A unique incremental number for each availability message that identifies that specific message.

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl

N/A 1 Element defining application of controls being sent.

@Start, @End Date 1 Mandatory. The first and last dates for which the availability update is being sent. Specify dates on which inventory information provided in this message applies. A 'Start' and an 'End' date must be specified. They can be equal if the partner wants to update only one date. This element can be repeated more than once if there is a need to update non-consecutive dates or date ranges. Start/End Date Format : YYYY-MM-DD

- Format: YYYY-MM-DD - Start Date <= End Date - End Date <= Current Date + 2 Years

@Mon,@Tue,@Weds,@Thur, @Fri,@Sat,@Sun

Boolean 0 to 1 These 7 attributes are used to indicate on which day of the week, from the date range specified in the “Start”-“End” attributes, the updates should be applied. If none of the 7 attributes are specified, updates will apply to all days of the week. As soon as one attribute is specified, the updates will only apply to the days where the attribute value is set to 1. If 'Sun' set to 1, apply update for each Sunday in the specified date interval.

Allowed {1, 0}

@RatePlanCode String 1 This will represent Partner RatePlan Code Max. of 20 characters

@InvTypeCode String 1 This is the Partner room type code for which the update is being sent.

@MealPlanCode String 0 to 1 This is the Partner meal plan code associated with the rateplan code

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage

N/A 1 to N Restriction should be sent for the message to have any meaning. This element can be repeated.

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 12 Version 1.2

OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / RestrictionStatus

N/A 1 This element contains rules like open/close room, open/close room for arrival and open/close room for departure.

@Restriction String 1 Used as a stop sell, close to departure and close to arrival. Refer Section 3.3.3 for more information.

Allowed {Master, Arrival, Departure}

@Status String 1 Enumeration; possible values ="Open", "Close". Works in conjunction with @Restriction. If one of the partners implementing the message does not support all the enumerations, the enumerations that are not supported should be mapped to supported enumerations by the receiving system.

Allowed {Open, Close}

4.2 Availability Response The response for the request defined above is sent using the OTA_HotelAvailNotifRS message. It should be returned synchronously to update the Reznext system with the status of the availability request. The status can either be success or Error. If successful, it can contain warnings. Response messages indicating failures must contain at least one error element. It is possible to return more than one error element.

Sample Response: Availability Response

<OTA_HotelAvailNotifRS xmlns="http://www.reznext.com/OTA/2015/03" Version="1.2" EchoToken="54638383" TransactionIdentifier="938389" TimeStamp="2015-03-10T09:30:47-05:00"> <Success/> <Warnings> <Warning Type="3" Code="458" RecordID="1"> <!-- Type 3 => Business Rule, Code 458 => Date Outside Inventory Period --> </Warning> </Warnings> </OTA_HotelAvailNotifRS>

4.2.1 Availability Response XML Usage Description Element | @Attribute Data

Type Occurrences Description

OTA_HotelAvailNotifRS N/A 1 Root element of the message

@EchoToken String 0 to 1 Optional. Token sent during the request should be updated here

@Version String 1 Optional. Version is a mandatory attribute. Identifies the version of specifications. Set this to "1.2" If Version is not passed, the latest version specifications to be used

@TimeStamp Date Time

1 Time of the transaction in xml schema date-time format

OTA_HotelAvailNotifRS / Success N/A 0 to 1 This is the annotation that the availability status message batch was received successfully. It could be combined with warning messages if some of the messages in the batch had issues. Either a Success element or an Error element is required in every response.

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 13 Version 1.2

OTA_HotelAvailNotifRS / Warnings N/A 0 to 1 Detailed description of a warning. When this element appears, anything that is not listed in the warning list is assumed to be successfully processed and updated.

OTA_HotelAvailNotifRS / Warnings / Warning

N/A 1 to 99 Mandatory. This element can be repeated to update multiple warnings

@Type Integer 1 Refers to Open Travel Alliance EWT list (Refer Error Warning Type in the Appendix)

@Code Integer 0 to 1 Optional. Refer for Open Travel Alliance ERR list. Refer Error code in the Appendix

@RecordID Integer 0 to 1 If the receiving system is able to identify within a batch of availability status messages which specific message failed, the UniqueID of the message should be reported here.

OTA_HotelAvailNotifRS / Errors N/A 0 to 1 Optional. If included, this element will indicate that the request message could not be processed. Either a Success element or an Errors element is required in every response.

OTA_HotelAvailNotifRS / Errors / Error

N/A 1 to 99 Mandatory. Description of cause for a fatal problem during request message processing. If an Error element is included, at least one Error element is required. Can have multiple errors

@Type Integer 1 Refers to Open Travel Alliance EWT list (error warning type in the Appendix)

@Code Integer 0 to 1 Optional. Refer for Open Travel Alliance ERR list. Refer Error code in the Appendix

@RecordID Integer 0 to 1 If the receiving system is able to identify within a batch of availability status messages which specific message failed, the UniqueID of the message should be reported here.

4.3 Availability Request Scenarios Detailed

4.3.1 Restriction Status to Support Stop Sell

Reznext handles Stop Sell through status as Open/Close against a Restriction Type Master. Stop Sell – If ‘Open’ is passed in the Status, and Restriction is set to Master, it means the roomtype and rate plan is open to sell in the channels. If Close is passed, it means roomtype and rate plan is not bookable if any of the stay dates includes one of the dates specified by the application control element. Example for StopSell: …<AvailStatusMessage > <StatusApplicationControl Start="2015-03-15" End="2015-03-30" InvTypeCode="STD" Mon="1" Tue="1" Weds="1" Thur="1" Fri="1" Sat="1" Sun="1" RatePlanCode="B0012" MealPlanCode="AP"/> <RestrictionStatus Restriction="Master" Status="Close"/> </AvailStatusMessage>…

4.3.2 Using day of week attributes with date ranges

Day of week attributes are used to perform updates based on the day of week. For example,they can be used to stop sell for Friday, Saturday and Sunday, for the month of March 2015. To do so, it is not necessary to call out every single date requiring to be updated. Instead, day of week attributes can be used.

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 14 Version 1.2

As soon as day of week attributes are used, updates will only be applied to the attributes for which the value is set to 1. Missing or omitted day of week attributes will see their value defaulted to 0.

4.4 Examples

4.4.1 Example – Room/Rate Availability Request Scenario: Transmit the following ROOM/RATE availability Hotel Code: HXCAIZZ Start date: Mar 16

th 2015

End date: Mar 30th

2015 Change applies to DOW: SAT-SUN-MON Rate Plan: CR Meal Plan Code: CP InvTypeCode: DLX Status: Open for Arrivals Request XML: <OTA_HotelAvailNotifRQ xmlns="http://www.reznext.com/OTA/2015/03" Version="1.2" EchoToken="54638383" TimeStamp="2015-03-10T09:30:47-05:00" MessageContentCode="3"> <!-- MessageContentCode=3 for Room Rate Availability--> <AvailStatusMessages HotelCode="HXCAIZZ"> <AvailStatusMessage> <StatusApplicationControl Start="2015-03-16" End ="2015-03-30" InvTypeCode="DLX" RatePlanCode="CR" MealPlanCode="CP" Mon="1" Tue="0" Weds="0" Thur="0" Fri="0" Sat="1" Sun="1"></StatusApplicationControl> <UniqueID Type="16" ID="1"></UniqueID> <RestrictionStatus Restriction="Arrival" Status="Open"/> </AvailStatusMessage> </AvailStatusMessages> </OTA_HotelAvailNotifRQ>

4.4.2 Example - Restrictions Scenario: Update “Open” and “Close” restrictions between the period of June 20, 2015 and June 22, 2015 as shown below,

Start Date End Date Hotel Code

Rate Plan

Room Type

Status Type

06/20/2015 06/22/2015 ABC123 1234 GR Close Master

Request XML: <OTA_HotelAvailNotifRQ xmlns="http://www.reznext.com/OTA/2015/03" Version="1.2" TimeStamp="2015-03-10T09:30:47-06:00"> <AvailStatusMessages HotelCode="ABC123"> <AvailStatusMessage> <StatusApplicationControl Start="2015-06-20" End="2015-06-22" RatePlanCode="1234" InvTypeCode="GR" MealPlanCode="CP" Mon="1" Tue="1" Weds="1" Thur="1" Fri="1" Sat="1" Sun="1"/> <RestrictionStatus Status="Close" Restriction="Master"/> <UniqueID Type="16" ID="2"/> </AvailStatusMessage> </AvailStatusMessages> </OTA_HotelAvailNotifRQ>

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 15 Version 1.2

5 Rate Plan Service Rate Plan service updates the partner system with rate of an existing or a new rate plan. Booking rules supported by this service are Closed To Arrival and Departure restrictions, Advanced Booking Offsets, Minimum and Maximum Lengths Of Stay. Reznext support rate updates for occupancy level – from single to double rate along with additional adult and child rates with meal plans. We will have support for rates till sextuple from Q4 2015.

5.1 Rate Plan Request Reznext would send the rate plan information using this message. This is a push message from Reznext to partner systems. Sample Request: Rate Plan Request <OTA_HotelRatePlanNotifRQ xmlns="http://www.reznext.com/OTA/2015/03" Version="1.2" EchoToken="000" TimeStamp="2015-03-10T09:30:47-05:00" MessageContentCode="8"> <!-- MessageContentCode=8 for Rate Update --> <RatePlans HotelCode="HXCAIZZ"> <RatePlan RatePlanNotifType="Overlay" RatePlanCode="SR" Start="2015-03-15" End="2015-03-30" CurrencyCode="EUR" > <BookingRules> <BookingRule MinAdvancedBookingOffset="P7D" MaxAdvancedBookingOffset="P14D"> <InventoryInfo InvTypeCode="King"/> <TPA_Extensions> <MealPlanInfo MealPlanCode="CP"/> </TPA_Extensions> <LengthsOfStay> <LengthOfStay MinMaxMessageType="SetMinLOS" Time="1" TimeUnit="Day"></LengthOfStay> <LengthOfStay MinMaxMessageType="SetMaxLOS" Time="3" TimeUnit="Day"></LengthOfStay> </LengthsOfStay> <DOW_Restrictions> <ArrivalDaysOfWeek Sun="0" Sat="0" Tue="0" Mon="0" Fri="1" Weds="0" Thur="1"/> </DOW_Restrictions> </BookingRule> </BookingRules> <Rates> <Rate RateTimeUnit="Day" UnitMultiplier="1" InvTypeCode="King" MealPlanCode="CP" Sun="1" Sat="1" Tue="1" Fri="1" Mon="1" CurrencyCode="EUR" Weds="1" Thur="1"> <BaseByGuestAmts> <BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" Amount="120.00"></BaseByGuestAmt> <BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="2" Amount="200.00"></BaseByGuestAmt> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="50.00" AgeQualifyingCode="8"></AdditionalGuestAmount> <AdditionalGuestAmount Amount="50.00" AgeQualifyingCode="10"></AdditionalGuestAmount> </AdditionalGuestAmounts> </Rate> </Rates> <Description Name="Short description"> <Text>Special Rare January 2006</Text> </Description>

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 16 Version 1.2

<Description Name="Long description"> <Text>rate includes complimentary daily newspaper</Text> </Description> </RatePlan> </RatePlans> </OTA_HotelRatePlanNotifRQ>

5.1.1 Rate Plan Request XML Usage Description Element | @Attribute Data Type Occurrenc

es Description Validations

OTA_HotelRatePlanNotifRQ

N/A 1 Root Element of the message

@EchoToken String 0 to 1 Optional. Token to uniquely identify the request. Generate a unique number and pass along the request

@Timestamp Date Time 1 Time of the transaction in xml schema Date time format

@Version String 1 Optional. Version is a mandatory attribute. Identifies the version of specifications. Set this to "1.2" If Version is not passed, the latest version specifications to be used

@MessageContentCode Integer 1 The attribute refers to the MCC OpenTravel Alliance code list which includes Rate, Package, Group. Check appendix for MCC code list. Reznext supports only Rate code.

In this case it can only hold Rate code. So always 8.

OTA_HotelRatePlanNotifRQ / RatePlans

N/A 1 Enumeration of Rateplans setup for a hotel

@HotelCode String 1 Mandatory. This is the Partner code of the property whose availability is being requested

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan

N/A 1 to N Information about a rate plan This element can be repeated more than once if there are multiple rate plans

@RatePlanCode String 1 This is the Partner rate plan code

@CurrencyCode String 0 to 1 This is the currency associated to the rate that is being uploaded/downloaded

@RatePlanNotifType String 1 This enumeration indicates whether the upload/download is meant to overwrite existing data or delete it. Possible enumerations are: Overlay Overlay - Use for overriding existing rateplan details. Like increasing rate values over all effective time periods of a rateplan - in this case Reznext will send an overlay of the entire rate plan

Allowed {Overlay}

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 17 Version 1.2

@Start, @End Date 1 In general, the Start and End attributes used at the RatePlan level should be used as follows: the Start attribute should be equal to the earliest Start attribute at the Rate level, and the End attribute should be equal to the latest End attribute at the Rate level. In other words, the Start and End attributes at the RatePlan level should specify the entire span of dates representing the Rate elements found in the Rates collection. If the Start and End attribute at rate plan level are used to indicate each season, the Start and End attribute at rate level WOULD ONLY BE USED in case of DOW variations – if no DOW variation is needed the Start and end attributes at Rate level could be omitted.

- Format: YYYY-MM-DD - Start Date <= End Date - End Date <= Current Date + 2 Years

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / Description

N/A 0 to 2 For the description of the Rate Plan

@Name String 1 To indicate the name of the Rate Plan

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / Description / Text

String 1 Description of the Rate Plan

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / UniqueID

N/A 0 to 1 Used to uniquely track for any errors that might happen. Each RatePlan message to have an unique code which the receiver responds back in the response for troubleshooting purposes

@Type Integer 1 Refers to OpenTravel Alliance code list UIT – nr 16 = Reference. This is used to identify each single rate plan message for error reporting purposes.

Use only 16

@ID Long 1 ID is a unique incremental number for each rate plan message that identifies that specific message.

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / BookingRules

N/A 0 to 1 BookingRules is optional element. Used to transfer booking rules.

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / BookingRules / BookingRule

N/A 1 Mandatory if BookingRules elment is available

@MinAdvancedBookingOffset

String 0 to 1 Optional. This is the minimum amount of days prior to arrival that the rate can be booked. Format: "P<MinNumberOfDays>D"

@MaxAdvancedBookingOffset

String 0 to 1 Optional. This is the maximum amount of days prior to arrival that the rate can be booked. Format: "P<MaxNumberOfDays>D"

MaxAdvancedBookingOffSet <=MinAdvancedBookingOffset

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 18 Version 1.2

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / BookingRules / BookingRule / LengthsOfStay

N/A 0 to 1 Define booking rules around Lengths of Stay for a rate plan

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / BookingRules / BookingRule / LengthsOfStay / LengthOfStay

N/A 1 to N Mandatory if LengthsOfStay is transferred. This element can be repeated

@MinMaxMessageType =SetMinLOS, @Time @TimeUnit

@MinMaxMessageType - String @Time - Integer @TimeUnit – String

1 @MinMaxMessageType: Specifies minimu/maximum length of stay required to qualify for this rate. Guest has to stay at least this number of nights to benefit from rate. If not specified, the minimum length of stay will be set to a default value configured in OTA systems (1 might be the default, but it can be changed). Refer to section 5.6.4 for more details on MinLOS and MaxLOS @Time : - Indicates the length of stay in terms of number of days - If sending SetMinLOS then set time to the “MinLOS” value - If sending SetMaxLOS then set time to the “MaxLOS” value @TimeUnit – Always set to “Day”

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / BookingRules / BookingRule / DOW_Restrictions / ArrivalDaysOfWeek

N/A 0 to 1 Element to indicate which day of week the Arrival is possible for this rate to be booked

@Mon,@Tue,@Weds,@Thur,@Fri,@Sat,@Sun

Boolean 0 to 1 per day

The day of the week indicators set to 1 are those in which Arrival is allowed. Those set to 0 are the days in which arrival is not allowed. If one Day Of Week indicator is used they must all be used.

Allowed Values: {1,0}

OTA_HotelRatePlanNotifRQ /RatePlans / RatePlan/BookingRules/BookingRule/DOW_Restrictions/ DepartureDaysOfWeek

N/A 0 to 1 Element to indicate which DOW departure is possible.

@Mon,@Tue,@Weds,@Thur,@Fri,@Sat,@Sun

Boolean 0 to 1 per day

The day of the week indicators set to 1 are those in which Departure is allowed. Those set to 0 are the days in which departure is not allowed. If one Day Of Week indicator is used they must all be used.

Allowed Values: {1,0}

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / BookingRules / BookingRule / InventoryInfo

N/A 0 to 1 Allows specification of a room type to be used in conjunction with the rate plan being communicated. This will allow communication of booking rules by product

@InvTypeCode String 1 Partner Room type code

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 19 Version 1.2

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / BookingRules / BookingRule / TPA_Extensions

N/A 0 to 1

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / BookingRules / BookingRule /TPA_Extensions/MealPlanInfo

N/A 0 to 1 Holds information of meal plan code associated with Rateplan and room type

@MealPlanCode String 1 Partner MealPlan code associated with the room type and rateplan

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / Rates

N/A 1 This element includes all rates loaded for the rate plan

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / Rates / Rate

N/A 1 to N Repeat this element for multiple RateTypes and MealPlan Codes

@Start, @End Date 0 to 1 Start date and end date for which rate is updated for in the request

- Format: YYYY/MM/DD - Start Date <= End Date - End Date <= Current Date + 2 Years

@CurrencyCode String 1 This is the currency associated to the rate that is being uploaded/downloaded – it could be different to the currency loaded for the property

Max. of 5 characters

@Mon,@Tue,@Weds,@Thur, @Fri,@Sat,@Sun

Boolean 0 to 1 per day

Element is used to indicate on which day of the week, from the date range specified in the element from date to to-date the updates should be applied.

Allowed Values: {1,0}

@InvTypeCode String 1 This is the partner room type for which the rates are transferred.

@MealPlanCode String 0 to 1 This is the partner meal plan code/ inclusion type for which rates are transferred

@RateTimeUnit, @UnitMultiplier

@RateTimeUnit - String @UnitMultiplier – Integer

0 to 1 If NOT sent the default assumed is always 1 day (i.e., the rate is based on a nightly rate). Rate Time unit is an Enumeration of time units upon which the RateAmount is based (e.g., daily, weekly, single rate for full stay). UnitMultiplier is the number of RateTimeUnits that the rate Amount is based upon (e.g., rate for one day in case of nightly rates).

@RateTimeUnit: Allowed {Day} @UnitMultiplier: Allowed {1}

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / Rates / Rate / BaseByGuestAmnts / BaseByGuestAmt

N/A 1 to N Base charge for a given number of guests for a given age qualifying code. At least one instance of this element is mandatory for the RatePlanNotifType Overlay. Can be repeated for multiple guests.

Property is configured with per Occupancy

@AgeQualifyingCode Integer 0 to 1 @AgeQualifyingCode - 8 = child, 10 = adult Allowed {8, 10}

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 20 Version 1.2

@NumberOfGuests Integer 1 Occupancy of the room to which the rate specified applies (not related to base occupancy). The NumberOfGuests Attribute indicates what type of rate is being passed – if NumberOfGuests is = 1 then we are transmitting a single rate, if higher than 1 then it is a double occupancy rate

Minimum value: 1 Maximum value: max occupancy defined for this room in OTA system.

@Amount Decimal 1 Rate for occupancy. Amount should be used in conjunction with the settings on the partners system. Amount can either be AmountAfterTax or AmountBeforeTax depending on the setting on partners system.

OTA_HotelRatePlanNotifRQ / RatePlans / RatePlan / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount

N/A 0 to N Used to transfer extra adult and extra child information. This element can be repeated

@AgeQualifyingCode Integer 0 to 1 @AgeQualifyingCode: 8 = child, 10 = adult Allowed {8, 10}

@Amount Decimal 0 to 1

5.2 Hotel Rate Plan Response Response for the hotel rate plan request defined above is sent using the OTA_HotelRatePlanNotifRS message. It should be returned synchronously to update the Reznext system with the status of the rate plan request. The status can either be success or Error. If successful, it can contain warnings. Response messages indicating failures must contain at least one error element. It is possible to return more than one error element.

Sample Response: Hotel Rate Plan <OTA_HotelRatePlanNotifRS xmlns="http://www.reznext.com/OTA/2015/03" Version="1.2" EchoToken="000" TimeStamp="2015-03-10T09:30:47-05:00"> <Success/> </OTA_HotelRatePlanNotifRS>

5.2.1 Hotel Rate Plan Response XML Usage Description Element | @Attribute Data

Type Occurrences Description

OTA_HotelRatePlanNotifRS

N/A 1 Root element of the message

@EchoToken String 0 to 1 Optional. Token sent during the request should be updated here

@TimeStamp Date Time

1 Timestamp of the transaction

@Version String 1 Optional. Version is a mandatory attribute. Identifies the version of specifications. Set this to "1.2" If Version is not passed, the latest version specifications to be used

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 21 Version 1.2

OTA_HotelRatePlanNotifRS / Success

N/A 0 to 1 This is the annotation that the rate plan message batch was received successfully. It could be combined with warning messages if some of the messages in the batch had issues. One of Success, Errors element should be available

OTA_HotelRatePlanNotifRS / Warnings

N/A 0 to 1 Detailed description of a warning. When this element appears, anything that is not listed in the warning list is assumed to be successfully processed and updated.

OTA_HotelRatePlanNotifRS / Warnings / Warning

N/A 1 to 99 Mandatory. This element can be repeated to update multiple warnings

@ Type Integer 1 Refers to Open Travel Alliance EWT list (Refer error warning type in the Appendix)

@ Code Integer 0 to 1 Optional. Refer for Open Travel Alliance ERR list. Refer Error code in the Appendix

@ RecordID Integer 0 to 1 If the receiving system is able to identify within a batch of rate plan status messages which specific message failed, the UniqueID of the message should be reported here.

OTA_HotelRatePlanNotifRS / Errors

N/A 0 to 1 Optional. If included, this element will indicate that the request message could not be processed. Either a Success element or an Errors element is required in every response.

OTA_HotelRatePlanNotifRS / Errors / Error

N/A 1 to 99 Mandatory. Description of cause for a fatal problem during request message processing. If an Error element is included, at least one Error element is required. Can have multiple errors

@ Type Integer 1 Refers to Open Travel Alliance EWT list (Refer error warning type in the Appendix)

@ Code Integer 0 to 1 Optional. Refer for Open Travel Alliance ERR list. Refer Error code in the Appendix

@ RecordID Integer 0 to 1 If the receiving system is able to identify within a batch of rate plan status messages which specific message failed, the UniqueID of the message should be reported here.

5.3 Rate Plan Request Scenarios Detailed

5.3.1 Length of Stay Restrictions

Reznext supports updating the rate plan details based on minimum and maximum length of stay restrictions. Example: …<LengthsOfStay>

<LengthOfStay MinMaxMessageType="SetMinLOS" Time="2" TimeUnit="Day"/> <LengthOfStay MinMaxMessageType="SetMaxLOS" Time="5" TimeUnit="Day"/>

</LengthsOfStay> ….

5.3.2 Support for Booking Rules –Closed To Arrival, Closed To Departure and Advanced

Booking Offsets

Reznext handles CTA, CTD through Day of Week restriction elements. Closed To Arrival and Closed to Departure – Restrictions on Arrivals and Departurs are applied through ArrivalDaysOfWeek and DepartureDaysOfWeek elements. If any of the day flag (ex: Mon=’0’) in

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 22 Version 1.2

ArrivalDaysOfWeek element is set to ‘0’ then the rate is not bookable for arrival for Monday during the date range specified in the rate plan element. Example for Closed To Arrival: … <DOW_Restrictions>

<ArrivalDaysOfWeek Mon="1" Tue="1" Weds="0" Thur="1" Fri="1" Sat="0" Sun="0"/> … </DOW_Restrictions> Example for Closed To Departure: … <DOW_Restrictions>

<DepartureDaysOfWeek Mon="0" Tue="0" Weds="1" Thur="0" Fri="0" Sat="1" Sun="1"/> … </DOW_Restrictions> AdvancedBookingOffSet – This defines the minimum and maximum advanced booking period prior to the start date passed in the Rate Plan or Rate element that a rate is available for booking, after that period the rate will be closed. The pattern of the value is “P<num>D”. Example for Advanced Booking Offset: …<BookingRules>

<BookingRule MinAdvancedBookingOffset="P1D" MaxAdvancedBookingOffset="P14D"/> </BookingRules>…

6 Get Room RatePlans The Room Rate Fetch service provides the ability for RezNext to fetch all Rate plans (and meal plans), Room Types, and room/rate combinations for a property as setup in the partner’s system. This service will be used to fetch the codes that are used while sending ARI updates from RezNext or while receiving reservations from the partner.

6.1 Room RatePlan Read Request Sample Request: Room RatePlan Read Request

<RN_HotelRoomRatePlanReadRQ Version="1.2" EchoToken="879791878" xmlns="http://www.opentravel.org/OTA/2003/05"> <RoomRatePlan> <HotelCriteria HotelCode="7777" /> </RoomRatePlan> </RN_HotelRoomRatePlanReadRQ>

6.1.1 Room RatePlan Read Request XML Usage Description Element | @Attribute Data Type Occurences Description

RN_HotelRoomRatePlanReadRQ N/A 1 Customized namespace that belongs to this message

@EchoToken String 0 to 1 Optional. Token to uniquely identify the request. Generate a unique number and pass along the request

@TimeStamp Date 1 Time of the transaction in xml schema

@Version String 1 Optional. Identifies the version of specifications. Set this to "1.2" If Version is not passed, the latest version specifications to be used

RN_HotelRoomRatePlanReadRQ/RoomRatePlan

N/A 1

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 23 Version 1.2

RN_HotelRoomRatePlanReadRQ/RoomRatePlan/HotelCriteria

N/A

1

Holds the search criteria

@ChainCode String 0 to 1 Value used to identify the chain of the hotel

@HotelCode String 1 Value used to identify the hotel. Corresponds to the partner(channel) Property ID in the extranet

@HotelName String 0 to 1 Name of the hotel

6.2 Room RatePlan Read Response Sample Request: Room RatePlan Read Response <RN_HotelRoomRatePlanReadRS Version="1.2" EchoToken="879791878" xmlns="http://www.opentravel.org/OTA/2003/05"> <HotelCriteria HotelCode="7777"/> <RoomTypes> <RoomType InvTypeCode="12664" RoomName="Deluxe Room" BaseOccupancy="3" MaxOccupancy="5" Quantity="10" IsRoomActive="1"> <RoomDescription Text="Royal - 2 king beds or 1 sofa bed"/> </RoomType> <RoomType InvTypeCode="12665" RoomName="Standard Room" BaseOccupancy="3" MaxOccupancy="5" Quantity="10" MinChildAge="2" MinAdultAge="12" IsRoomActive="1"> <RoomDescription Text="Royal - 2 king beds or 1 sofa bed"/> </RoomType> </RoomTypes> <RatePlans> <RatePlan RatePlanCode="123" RatePlanStatusType="Active" RatePlanName="Deluxe room with AP meal" Description="This can describe the rateplan" InvTypeCode="12664" MealPlanCode="AP" Start="2015-01-01" End="2016-06-30" CurrencyCode="USD"></RatePlan> <RatePlan RatePlanCode="124" RatePlanStatusType="Active" RatePlanName="Deluxe room with EP meal" Description="This can describe the rateplan" InvTypeCode="12664" MealPlanCode="EP" Start="2015-01-01" End="2016-06-30" CurrencyCode="USD"></RatePlan> </RatePlans> </RN_HotelRoomRatePlanReadRS>

6.2.1 Room RatePlans Read Response XML Usage Description

Element | @Attribute Data Type Occurences

Description

RN_HotelRoomRatePlanReadRS

N/A 1 Customized namespace that belongs to this message

@EchoToken String 0 to 1 Optional. Token to uniquely identify the request. Generate a unique number and pass along the request

@TimeStamp Date 1 Time of the transaction in xml schema

@Version String 1 Optional. Identifies the version of specifications. Set this to "1.2" If Version is not passed, the latest version specifications to be used

RN_HotelRoomRatePlanReadRS/HotelCriteria

N/A 1 Holds the property details

@ChainCode String 0 to 1 Value used to identify the chain of the hotel

@HotelCode String 1 Value used to identify the hotel. Corresponds to the partner(channels) Property ID

@HotelName String 0 to 1 Name of the hotel

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 24 Version 1.2

RN_HotelRoomRatePlanReadRS/RoomTypes

N/A 1 Container for multiple room types. Will contain as many RoomType elements as there are room types configured for the property.

RN_HotelRoomRatePlanReadRS/RoomType

N/A 0 to N Specific details of the room

@InvTypeCode String 1 Unique Id associated with this room at the partner system

@RoomName String 1 Partner name of the room

@BaseOccupancy Integer 0 to 1 Minimum persons that should be accomodated in the room

@MaxOccupancy Integer 0 to 1 Max. persons that can be accommodated, if any extra persons are accommodated.

@Quantity Integer 0 to 1 Total number of rooms of this room category available at the property

@IsRoomActive Boolean 1 Indicated passive or active status of the room. If passive, all rate plan codes associated with room type should also been made Deactivated

RN_HotelRoomRatePlanReadRS/RoomType/Description

N/A 0 to 1

@Text Text 1 Description of the room type.

RN_HotelRoomRatePlanReadRS/RatePlans

N/A 1 Container for multiple rate types

RN_HotelRoomRatePlanReadRS/RatePlan

N/A 0 to N Holds the details of a specific rate type. This element will appear as many times as there are rate types configured for the property.

@RatePlanCode String 1 Unique ID of the rate type. Corresponds to “Rate Code” in thePartner system

@RatePlanStatusType String 1 Status of the rate type. Possiblevalues: Active, Deactivated

@RatePlanName String 1 Partner name of the rateplan

@Description Text 0 to 1 Short description of the rate type. Corresponds to “Rate Description” in the Extranet.

@InvTypeCode String 1 Partner Inventory type code assocoated with the RatePlan

@MealPlanCode String 0 to 1 Partner Meal type code associated with the rateplan

@MealPlanDesc Text 0 to 1 Description of the meal plan included as part of this rateplan

@Start DateTime 1 To indicate the validity of the rateplan. - Format: YYYY-MM-DD - Start Date <= End Date, End Date <= Current Date + 2 Years

@End DateTime 1 To indicate the validity of the rateplan. - Format: YYYY-MM-DD - Start Date <= End Date, End Date <= Current Date + 2 Years

@CurrencyCode String 0 to 1 This is the currency associated to the rate

7 Reservation Service RezNext provides an interface to partners for sending updates on Reservations. This service supports:

1. “Pushing” booking related information to RezNext. The push model is the method of reservation delivery

defined by the HTNG reservation v.1 and v.2 specification. Partner system to push reservation

notifications by sending an OTA_HotelResNotifRQ. RezNext will then process the notification and reply

with an OTA_HotelResNotifRS

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 25 Version 1.2

2. RezNext only allows one hotel code per reservation. Multiple rooms and rates are allowed in one

reservation request.

RezNext expects that the partners would manage the customer and keep a track of the reservation history

against the customer profile. Also we generally do not hold (or block) rooms during a reservation process, so

it is recommended for the partner to make a “Search – Hotel Details” call to confirm the availability and rate.

7.1 Book/Modify Reservation Notification Request The reservation notification usage profile covers the basic use-case in which partner systems with the ability to

Book and Modify reservations are notifying RezNext system of their activity. The intent of the messages exchanged

is to keep RezNext systems up-to-date on all reservations at the property. Using this message, partner systems can

update either New reservation or an amendment

Sample Request: Book/Modify Reservation Notification Request

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:htn="http://pms.ihotelier.com/HTNGService/services/HTNG2011BService"> <soapenv:Header> <wsa:MessageID>713</wsa:MessageID> <wsa:To>http://pmcoutllm01-t5.tcprod.local:8080/HtngSimulator/PMSInterfaceSimulator</wsa:To> <wsa:UserName>test</wsa:UserName> <wsa:PassWord>test</wsa:PassWord> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo> <wsa:Action>http://htng.org/2011B/HTNG2011B_SubmitResult</wsa:Action> </soapenv:Header> <soapenv:Body> <OTA_HotelResNotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" Version="1.003" EchoToken="713" TimeStamp="2015-04-16T12:47:59" ResStatus="Book"> <POS> <Source> <RequestorID Type="14" ID="Channelid" /> <BookingChannel Type="5" Primary="1"> <CompanyName Code="WEB">WEB</CompanyName> </BookingChannel> </Source> </POS> <HotelReservations> <HotelReservation CreatorID="channelid" CreateDateTime="2015-04-11T15:35:00" ResStatus="Reserved"> <UniqueID ID="133" Type="14" /> <RoomStays> <RoomStay MarketCode=" " SourceOfBusiness="WEB "> <RatePlans> <RatePlan RatePlanCode="BO1"> <MealsIncluded MealPlanCodes="CP" MealPlanIndicator="True" />

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 26 Version 1.2

</RatePlan> </RatePlans> <RoomRates> <RoomRate RoomTypeCode="RGL" NumberOfUnits="1" RatePlanCode="BO1" RatePlanCategory="Bar"> <Rates> <Rate EffectiveDate="2015-08-15" ExpireDate="2015-08-15" RateTimeUnit="DAY" UnitMultiplier="2"> <Base AmountBeforeTax="5100.0" AmountAfterTax="5100.0" CurrencyCode="INR"> <Taxes Amount="0" CurrencyCode="INR" /> </Base> </Rate> </Rates> </RoomRate> </RoomRates> <GuestCounts IsPerRoom="1"> <GuestCount AgeQualifyingCode="10" Count="2" /> <GuestCount AgeQualifyingCode="8" Count="0" /> </GuestCounts> <TimeSpan Start="2015-08-15" End="2015-08-16" /> <Total AmountBeforeTax="5100.0" CurrencyCode="INR"> <Taxes Amount="0" CurrencyCode="INR" /> </Total> <BasicPropertyInfo HotelCode="7777" /> <ResGuestRPHs> <ResGuestRPH RPH="0" /> </ResGuestRPHs> </RoomStay> </RoomStays> <ResGuests> <ResGuest ResGuestRPH="0" PrimaryIndicator="1"> <Profiles> <ProfileInfo> <UniqueID ID="0001010062" Type="1" ID_Context="Customer" /> <Profile ProfileType="1"> <Customer> <PersonName> <NamePrefix>Mr</NamePrefix> <GivenName>K</GivenName> <Surname>Mohandas</Surname> </PersonName> <Telephone PhoneLocationType="6" PhoneTechType="1" PhoneNumber="9494730961" FormattedInd="0" /> <Email>[email protected]</Email> <Address Type="1"> <AddressLine>NC-132 <CityName>KARIM NAGAR</CityName> <PostalCode>505211</PostalCode> <StateProv>ANDHRA PRADESH</StateProv> <CountryName>India</CountryName> </Address> </Customer>

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 27 Version 1.2

</Profile> </ProfileInfo> </Profiles> </ResGuest> <ResGuest ResGuestRPH="1" PrimaryIndicator="0"> <Profiles> <ProfileInfo> <UniqueID ID="0001010063" Type="1" ID_Context="Customer" /> <Profile ProfileType="1"> <Customer> <PersonName> <NamePrefix>Mr</NamePrefix> <GivenName>K</GivenName> <Surname>Mohandas</Surname> </PersonName> <Telephone PhoneLocationType="6" PhoneTechType="1" PhoneNumber="9494730961" FormattedInd="0" /> <Email>[email protected]</Email> <Address Type="1"> <AddressLine>NC-132 <CityName>KARIM NAGAR</CityName> <PostalCode>505211</PostalCode> <StateProv>ANDHRA PRADESH</StateProv> <CountryName>India</CountryName> </Address> </Customer> </Profile> </ProfileInfo> </Profiles> </ResGuest> </ResGuests> <ResGlobalInfo> <HotelReservationIDs> <HotelReservationID ResID_Value="133" ResID_Type="14" ResID_Source="OTA Name" /> </HotelReservationIDs> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ> </soapenv:Body> </soapenv:Envelope>

7.1.1 Header Section

A valid username and password is required in this section, this method shall first authenticate the login credentials, and if it is successful then it shall proceed further with processing the XML Schema located in the body of the XML. <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:htn="http://pms.ihotelier.com/HTNGService/services/HTNG2011BService"> <soapenv:Header> <wsa:MessageID>713</wsa:MessageID>

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 28 Version 1.2

<wsa:To>http://pmcoutllm01-t5.tcprod.local:8080/HtngSimulator/PMSInterfaceSimulator</wsa:To> <wsa:UserName>test</wsa:UserName> <wsa:PassWord>test</wsa:PassWord> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo> <wsa:Action>http://htng.org/2011B/HTNG2011B_SubmitResult</wsa:Action> </soapenv:Header> <soapenv:Body>

7.1.2 Book/Modify Reservation Notification Request XML Usage Description

Element | @Attribute Data Type Occurences

Description Validations

OTA_HotelResNotifRQ N/A 1 Root element of the message.

@EchoToken Char(16) 1 Token to uniquely identify the request. Generate a unique number and pass along the request

Less than a 16 digit number

@ResStatus Char(6) 1 Status can be "Book" or "Modify" Use "Book" for a new booking and "Modify" for amendments

Allowed {Book, Modify}

@Version Float 1 Identifies the version of specifications. Set this to "1.003"

@TimeStamp DateTime 1 Time of the transaction in xml schema Date time format

OTA_HotelResNotifRQ / POS / Source / RequestorID

N/A 1 To identify the system sending the reservation request

@Type Integer 1 Fixed to 14 always

@ID String 1 The ID used to identify the requestor (either name or ID to be passed). This should remain the same throughout all the messages

OTA_HotelResNotifRQ / POS / Source / BookingChannel

N/A 1 to 2 This element is used to pass the booking source for the reservation. If a secondary booking channel information is to be passed, then the entire source element to be repeated

@Type Integer 1 Type is mandatory in OpenTravel Alliance and indicates the type of booking channel. Refers to OpenTravel Alliance code list BCT (Booking Channel Type). Pass the following based on the type, 1 for Global distribution system (GDS) 2 for Alternative distribution system (ADS) 3 for Sales and catering system (SCS) 4 for Property management system (PMS) 5 for Central reservation system (CRS) 6 for Tour operator system (TOS) 7 for Internet

Allowed {1,2,3,4,5,6,7}

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 29 Version 1.2

@Primary Boolean 1 Primary attribute would be set to “1” if only one booking channel is transferred. Only one source should be marked “1” if multiple sources/source elements are sent.

Allowed {1,0}

OTA_HotelResNotifRQ / POS / Source / BookingChannel / CompanyName

String 1 Name of the booking channel

@Code String 0 to 1 Code is Optional and can be used to transfer the code of the Booking channel

OTA_HotelResNotifRQ / HotelReservations / HotelReservation

N/A 1 Details of the reservation.

@CreatorID VarChar(20) 1 Code of the channel

@ CreateDateTime Date Time 1 This is the date when the reservation was first made. Mandatory if ResStatus is Commit

Data Time format

@ResStatus Char(10 )

1 Send “Reserved” always

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / UniqueID

N/A 1 The unique identifier of the reservation in the system which sent the message

@Type Integer 1 Type is assigned codes from the UIT (Unique ID Type) code list. If the originator is a CRS, the recommended value for this message is 14 – Reservation. If the originator is a PMS, the recommended value for this message would be 10 – Hotel.

@ID String 1 ID is the actual confirmation number

OTA_HotelResNotifRQ / HotelReservations / HotelReservation /RoomStays

N/A 1

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay

N/A 1 to N One instance of RoomStay per Room booked.

@MarketCode String 0 to 1 This is the code that relates to the market being sold and may be needed by the PMS for tracking purposes.

@ SourceOfBusiness String 0 to 1 Used to specify where the business came from; e.g., radio, newspaper ad, or it could be a referring property.

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RatePlans /

N/A 1 This indicates rate plans associated with the booking.

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 30 Version 1.2

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RatePlans / RatePlan /

N/A 1 Defines the rate plan used for this booking

@RatePlanCode VarChar(15) 1 Rateplan code

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RatePlans / RatePlan / MealsIncluded

N/A 1 Defines the meal plan is included as part of the rate plan

@MealPlanCodes Integer 1 Meal plan code of the channel. If this value is blank, then there is no meal plan included as part of the rate

@MealPlanIndicator Boolean 1 Indicates if meal plan is included in the rate. True indicate meal plan is indicated

“True”, “False”

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates

N/A 1

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate /

N/A 1 One instance of RoomRate per room/rate booked. If multiple room types can be booked, then the element “RoomStay” must be repeated for each room or room type booked in the reservation

@RoomTypeCode VarChar(15) 1 This is the room type code booked in the reservation.

@NumberOfUnits Integer 1 Always “1” Allowed {1}

@RatePlanCode VarChar(15) 1 This is the rate booked for the room type code listed in the RoomTypeCode attribute.

@RatePlanCategory VarChar(10) 1 Category of the rate plan. Echo the rate plan category code from the response of “Search – Hotel Details” request

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate /Rates

N/A 1 Details the daily rates

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate /Rates/Rate

N/A 1 to N Contains the day rate breakdown

@EffectiveDate DateTime 1 Indicates starting date for the rate

@ExpireDate DateTime 1 Indicates the ending date for the rate

@RateTimeUnit Char(3) 1 Always send “Day”

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 31 Version 1.2

@UnitMultiplier Integer 1 Always “1” indicating one day

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate /Rates/Rate/Base

N/A 1 Contains the total day rate amount

@AmountAfterTax Float 1 Rate for this day including all associated taxes

@AmountBeforeTax Float 1 Rate for this day excluding all associated taxes

@CurrencyCode Char(3) 1 Currency Code

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / RoomRates / RoomRate /Rates/Rate/Base/Taxes

N/A 0 to 1 To hold the tax information for the day

@Amount Float 1 Indicates the total tax amount for the day

@CurrencyCode Char(3) 1 Currency Code

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / GuestCounts

N/A 1 Contains the guest counts of the booking for this room stay

@IsPerRoom Bit 1 Always “1”

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / GuestCounts / GuestCount

N/A 1 to 2 Contains the type and number of guests included in the reservation for this room stay

@AgeQualifyingCode Integer 1 The two codes used from the OpenTravel Alliance AQC code list are: 8-Child, 10-Adult.

Allowed {8,10}

@Count Integer 1 The actual count for this type of guest

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / TimeSpan

N/A 1 These are the check-in and check-out dates of this stay

@Start Date 1 Arrival date Date format

@End Date 1 Departure date Date format

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Total

N/A 1 Contains the room total amount

@AmountBeforeTax Float 1 The total amount excluding all associated taxes for room

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 32 Version 1.2

@CurrencyCode Char(3) 1 Currency code

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / Taxes

N/A 1 Contains this room stay total tax amount

@Amount Float 1 The total tax amount associated for this room

@CurrencyCode Char(3) 1 Currency code

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / BasicPropertyInfo

N/A 1 Details of the property for which booking is passed for.

@HotelCode Char(15) 1 The code for the Hotel for which the booking was made Echo Hotel from the response of ‘Search – Hotel details” request

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / RoomStays / RoomStay / ResGuestRPHs / ResGuestRPH /

N/A 1 to N Index identifying which guests occupy this room

@RPH Integer 1 Customer info. The value link to the ResGuest

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest /

N/A 1 to N Contains the guest information

@ResGuestRPH Integer 1 This value links the ResGuest

@PrimaryIndicator Boolean 0 to 1 This indicates the primary guest on a reservation. In the case of multiple guests on a reservation, the guest responsible for payment, etc. will be marked true.

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / UniqueID

N/A 0 to 1 Unique id for the customer profile

ID VarChar(15) 1 Unique id for the customer profile

Type Integer 1 Always “1”

ID_Context Char(10) 1 Always “Customer”

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 33 Version 1.2

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile /

N/A 1

@ProfileType Integer 1 Always “1”

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer

N/A 1 Contains the guest profile information

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName / NamePrefix

VarChar(5) 0 to 1 The prefix name of the customer

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName / GivenName

String 1 The first name of the customer.

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / PersonName / Surname

String 1 Last name of the customer

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Telephone

N/A 0 to 1 Contact telephone number for the customer if available

@PhoneNumber String 1 PhoneNumber contains the actual number as a string

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Email

String 0 to 1 The email address of the customer if available

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Address

N/A 0 to 1 Address for the customer if available

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 34 Version 1.2

@Type Integer 1 Always “1”

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Address / AddressLine

String 1 to N Address Line

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Address / CityName

String 0 to 1 City name

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Address / PostalCode

String 0 to 1 This path is used to transmit the Customer details. Details of the company or Travel agency use a different path. This field would be used to pass the guest‟s Postal / ZIP code.

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Address / CountryName

String 1 Country name

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGuests / ResGuest / Profiles / ProfileInfo / Profile / Customer / Address / StateProvince

String 1 State name

OTA_HotelResNotifRQ/ HotelReservations/Hotel Reservation/ ResGlobalInfo

N/A 1 Contains general information about the Reservation

OTA_HotelResNotifRQ/ HotelReservations/Hotel Reservation/ResGlobalInfo/HotelReservationIDs/HotelReservationID

N/A 1 contains various unique (ReservationID)

@ResID_Type Integer 1 Fixed 14= reservation number. Defines the type of Reservation ID

@ResID_Value VarChar(50) 1 The reservation number

@ResID_Source VarChar(30) 1 Channel id or name of the reservation generator

7.2 Book/Modify Reservation Notification Response RezNext system will respond to this request using the OTA_HotelResNotifRS message.

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 35 Version 1.2

Sample Response: Reservation Notification Response

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soapenv:Header> <wsa:MessageID>BOOK:49ceeda85512a4b1b0173</wsa:MessageID> <wsa:RelatesTo>713</wsa:RelatesTo> </soapenv:Header> <soapenv:Body> <OTA_HotelResNotifRS schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRS.xsd" Version="1.003" TimeStamp="2015-04-16T12:47:59" ResResponseType="Committed" HotelCode="7777" EchoToken="713"> <Success /> <HotelReservations> <HotelReservation> <UniqueID Type="14" ID="133" /> <ResGlobalInfo> <HotelReservationIDs> <HotelReservationID ResID_Type="14" ResID_Value="133" ResID_Source="OTA Name" ForGuest="true" /> <HotelReservationID ResID_Type="10" ResID_Value="2" ResID_Source="PMS" ForGuest="true" /> </HotelReservationIDs> <RefundAmount>0</RefundAmount> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRS> </soapenv:Body>

7.2.1 Book/Modify Reservation Notification Response XML Usage Description Element | @Attribute Data Type Occurences Description/Contents

OTA_HotelResNotifRS N/A 1 Root element of the message.

@EchoToken String 1 Echo EchoToken from request

@Version String 1 Echo version from request

@TimeStamp Date Time 1 Echo timestamp from request

@HotelCode Char(15) 1 Echo hotel code from request

@ResResponseType VarChar(20) 1 If new reservation send “Committed” If amendment then send “Modified”

OTA_HotelResNotifRS / Errors / Error N/A 0 to 5 Mandatory only if Success element is not sent. Only needed if RQ message was unsuccessful.

@Type Integer 1 Refers to Open Travel Alliance EWT list (error warning type in the Appendix section)

@Code Integer 1 Optional. Refer for Open Travel Alliance ERR list. Refer Error code in the Appendix section

OTA_HotelResNotifRS / Errors / Error/Text

String 1 Text error message

OTA_HotelResNotifRS / Success N/A 0 to 1 Mandatory if no Errors were sent. This is the annotation that the reservation batch was received successfully.

OTA_HotelResNotifRS / HotelReservations / HotelReservation / UniqueID

0 to 1 Available only if reservation is successful. This is the confirmation number for the reservation assigned by the immediate originator of the booking (i.e., the system which sent the OTA_HotelResNotifRQ message

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 36 Version 1.2

@Type Integer 1 Type is assigned values from the UIT code list. If the original system was a CRS: Type = 14 – Reservation ID is the actual confirmation number If it was a PMS: Type = 10 – Hotel

@ID String 1 ID is the CRS confirmation number (or PMS number if the reservation was originated in the PMS).

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / HotelReservationIDs / HotelReservationID

N/A 1 to 2 Available only if reservation is successful. This is the confirmation number associated by the system which received the booking.

@ResID_Type Integer 1 ResID_Type is assigned values from the UIT code list. 10 – Reservation Server 13 – Internet Broker 14 – Reservation Broker 24 – Travel Agent PNR 25- Associated reservation (travelling with) 26- Associated itinerary reservation 27- Associated shared reservation 34 – Master Itinerary For any other type of system the implementing partners should agree on the appropriate code from the OpenTravel Alliance UIT code list.

@ResID_Value String 1 ResID_Value is the actual confirmation number.

@ ResID_Source VarChar(30) 1 Channel id or name of the reservation generator

@ForGuest Boolean 1 Always “True”

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / ResGlobalInfo / RefundAmount

Float 0 to 1 Send “0” always

7.3 Cancel Reservation Notification Request The reservation notification usage profile covers the basic use-case in which partner systems with the ability to

Cancel reservations are notifying RezNext system of their activity. The intent of the messages exchanged is to keep

RezNext systems up-to-date on all reservations at the property. Using this message, partner systems can update a

reservation Cancellation.

Sample Request: Cancel Reservation Notification Request

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:htn="http://pms.ihotelier.com/HTNGService/services/HTNG2011BService"> <soapenv:Header> <wsa:MessageID>713</wsa:MessageID> <wsa:To>http://pmcoutllm01-t5.tcprod.local:8080/HtngSimulator/PMSInterfaceSimulator</wsa:To> <wsa:UserName>test</wsa:UserName> <wsa:PassWord>test</wsa:PassWord> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo>

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 37 Version 1.2

<wsa:Action>http://htng.org/2011B/HTNG2011B_SubmitResult</wsa:Action> </soapenv:Header> <soapenv:Body> <OTA_HotelResNotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRQ.xsd" Version="1.003" EchoToken="713" TimeStamp="2014-09-12T12:47:59" ResStatus="Cancel"> <POS> <Source> <RequestorID Type="14" ID="OTA Name" /> <BookingChannel Type="5" Primary="1"> <CompanyName Code="WEB">WEB</CompanyName> </BookingChannel> </Source> </POS> <HotelReservations> <HotelReservation CreatorID="OTA Name" CreateDateTime="2013-03-14T12:00:00" LastModifiedDateTime="2013-03-14T12:00:00"> <UniqueID ID="133" Type="14" /> <BasicPropertyInfo HotelCode="7777" /> <ResGlobalInfo> <HotelReservationIDs> <HotelReservationID ResID_Value="133" ResID_Type="14" ResID_Source="OTA Name" /> </HotelReservationIDs> </ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRQ> </soapenv:Body> </soapenv:Envelope>

7.4 Cancel Reservation Notification Response RezNext system will respond to this request using the OTA_HotelResNotifRS message.

Sample Response: Cancel Reservation Notification Response

<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soapenv:Header> <wsa:MessageID>BOOK:2083e3d32df5ab8e1f865</wsa:MessageID> <wsa:RelatesTo>713</wsa:RelatesTo> </soapenv:Header> <soapenv:Body> <OTA_HotelResNotifRS schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelResNotifRS.xsd" Version="1.003" TimeStamp="2015-07-24T10:46:19" ResResponseType="Cancelled" HotelCode="7777" EchoToken="713"> <Success /> <HotelReservations> <HotelReservation> <UniqueID Type="14" ID="133" /> <ResGlobalInfo> <HotelReservationIDs> <HotelReservationID ResID_Type="14" ResID_Value="133" ResID_Source="OTA Name" ForGuest="true" /> <HotelReservationID ResID_Type="10" ResID_Value="2" ResID_Source="PMS" ForGuest="true" /> </HotelReservationIDs> <RefundAmount>0.000</RefundAmount>

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 38 Version 1.2

</ResGlobalInfo> </HotelReservation> </HotelReservations> </OTA_HotelResNotifRS> </soapenv:Body> </soapenv:Envelope>

8 Appendix

8.1 Message Content Codes (MCC)

MCC MCC Message Content Codes

3 Room/rate availability

8 Rate update

8.2 Meal Plan Codes

Code Value Code Name

1 All inclusive

2 American

3 Bed & breakfast

4 Buffet breakfast

5 Caribbean breakfast

6 Continental plan

7 English breakfast

8 European plan

9 Family plan

10 Full board

11 Full breakfast

12 Half board/modified American plan

13 As brochure

14 Room only

15 Self catering

16 Bermuda

17 Dinner bed and breakfast plan

18 Family American

8.3 Error Handling Each receiving system must be able to accept the following mandatory error codes from the OpenTravel Alliance Code table. It is agreed that whilest the system receiving the error must be able to process all of the errors listed below, the

sending system may not need to use all of them (if, for instance, they do not apply to the functions performed by

the system).

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 39 Version 1.2

8.3.1 EWT Type – Error Warning Type Codes

EWT Error Warning Type

1 Unknown

2 No implementation

3 Biz rule

4 Authentication

5 Authentication timeout

6 Authorization

7 Protocol violation

8 Transaction model

9 Authentical mode

8.3.2 Error Codes

8.3.2.1 Error Codes – General Code Error Description

15 Invalid date TimeStamp - from any message

187 System currently unavailable

320 Invalid value Invalid value in a field for which there is no individual error

321 Required field missing

400 Invalid property code Hotel code

448 System error

450 Unable to process

8.3.2.2 Error Codes – Availability

Code Error Description

356 Invalid action/status code AvailStatusMessages / AvailStatusMessage / RestrictionStatus

402 Invalid room type OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl/InvTypeCode

135 End date is invalid AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / End

136 Start date is invalid AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / Start

8.3.2.3 Error Codes – Rates

Code Error Description

356 Invalid action/status code AvailStatusMessages / AvailStatusMessage / RestrictionStatus

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 40 Version 1.2

402 Invalid room type OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl/InvTypeCode

135 End date is invalid AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / End

136 Start date is invalid AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / Start

8.3.2.4 Error Codes – Others

Code Code Name

15 Invalid Date

61 Invalid currency code

69 Minimum stay criteria not fulfilled

181 Invalid country code

243 Invalid ARC/IATA number

245 Invalid confirmation number

290 Invalid state/province/territory code

291 Invalid zip/postal code

322 No availability

323 All not valid

342 Cancel fee may apply

343 Can't sell, file maintenance is active

344 Can't sell, record maintenance is active

345 Can't sell, inventory reconcile is active

346 Closed to arrivals

347 Company address required

348 Company or travel agent address required

349 Contact housing office

350 Credit card deposits only

351 Credit card guarantee not accepted at hotel

352 Invalid credit card type

353 Departure date is past dated

354 Deposit forfeiture and/or refund may apply

355 Deposit/guarantee due immediately

356 Invalid action/status code

357 Invalid city

358 Error convention/group code

359 Error convention/group name

360 Error entry code

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 41 Version 1.2

361 Invalid hotel

362 Invalid number of nights

363 Invalid number of rooms

364 Error rate range

365 Error credit card

366 Error during processing, please retry

367 Invalid format

368 Error no active accommodation

369 Frequency (SMTWTFS) specified does not match date

370 Frequent guest points cannot be redeemed at this time

371 Full payment or deposit required

372 Guarantee code not accepted at this hotel

373 Guarantee required immediately

374 Guaranteed room type is not offered by this brand

375 Hotel not active

376 Hotel full check alternated

377 Invalid - max number of nights exceeded

378 Invalid - max number of rooms exceeded

379 Invalid - only one name allowed

380 Invalid arrival date for group

381 Invalid check-in date

382 Invalid check-out date

383 Invalid city code

384 Invalid client file for product type

385 Invalid confirmation or cancellation number

386 Invalid fax number

387 Invalid guarantee option

388 Invalid guaranteed room type

389 Invalid guarantee type

390 Invalid hold type

391 Invalid hold until time

392 Invalid hotel code

393 Invalid hotel location type

394 Invalid item

395 Invalid message text

396 Invalid name

397 Invalid number of adults

398 Invalid number specified

399 Invalid product type code

400 Invalid property code

401 Invalid rate requested field

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 42 Version 1.2

402 Invalid room type

403 Invalid segment type

404 Invalid start/end date combination

405 Invalid vendor

406 Invalid for convention/group

407 Item too long

408 Last page of data already displayed

409 Maximum length of stay restriction

410 Minimum length of stay error

411 Minimum length of stay restriction

412 Modification completed

413 Modify

414 More days were specified than exist in inventory

415 Multiple hotels in same GNR not allowed

416 Multi-room/name combination invalid

417 Name change not allowed

418 Name/address missing

419 Need names

420 Need e-mail address

421 No rooms available for waitlist

422 No active accommodation found

423 No alternates defined for requested location

424 No hotels found which match this input

425 No match found

426 No rates offered for this sell request

427 No rooms available for requested dates

428 No tax information available

429 Number nights deposit exceeds stay

430 Ok

431 Out date past end date

432 Payment or deposit required, no non-guaranteed holds

433 Please book on a separate reservation

434 Product requested not in city requested

435 Property name required

436 Rate does not exist

437 Rate unavailable

438 Requested rate not available

439 Reenter

440 Request completed

441 Requested rate not available for entire stay

442 Requested rate not available for waitlist

March 10, 2015 [STANDARD API SPECIFICATIONS]

R e z N e x t G l o b a l S o l u t i o n s P v t L t d

Page 43 Version 1.2

443 Requested rate not offered at this location

444 Restrictions - limit 1 room

445 Seasonal rate change error

446 Service request not allowed

447 Unable to update - simultaneous updates

448 System error

449 Unable to add IATA nbr to existing reservation

450 Unable to process

451 Unable to retrieve client file

452 Use advance purchase arrival guarantee

453 Voucher number required

454 Wholesaler client file required

455 Wholesaler rate requires wholesaler client file

456 Work block is corrupted - cannot proceed

457 Need arrival information

458 Date outside inventory period

459 Invalid request code

503 Invalid form of deposit

504 Extra bed or crib not available

505 Invalid bed type

506 Credit card not accepted at property

507 Room type on request