Odigeo Connect Suppliers API
Introduction & Guidelines
Welcome to Odigeo Connect API site.
This technical documentation includes API definitions & xml samples to guide you during the implementation of our various APIs.
The XMLs describe all our API services from top to bottom, following tag, @attribute, and child elements order.
Every element is classified as required / optional at each level, meaning that all @attributes defined as required are mandatory when using their correspondent tag element.
Best Practices
We strongly recommend NOT to send concurrent connections for the same property. Same property concurrent updates might lead to over-bookings.
We strongly recommend to optimize the requests sent (i.e. please use date ranges instead of updating the same data for individual dates). In this regard, it is advisable to always find a good balance between payload size and the number of requests/second.
We will apply restrictions regarding body payload max size and rate limit depending on specific needs. The current restrictions are:
- Max payload size: 100KB (413 http error in case of exceeding)
- Rate limit: Depending on the business volume, ask your representative. (429 http error in case of exceeding)
Authentication
To be able to test our various APIs, you will need to contact OC Connectivity Team.
Once Odigeo Connect signup process is completed, the OC Connectivity Team will provide you with test credentials, so you can start the API implementation on Odigeo Connect sandbox environment.
Access to the API will be provided with an API key, to be used in the Authorization
HTTP header.
Once it is considered that you have successfully implemented Odigeo Connect API, the OC Connectivity Team will provide you with the live authentication credentials necessary to test the interface in Odigeo Connect production environment.
Request header | Sample | Description |
---|---|---|
Authorization |
193s-cf36-ffff-xxxx |
When you call APIs, send the access token provided by OC Connectivity Team in the authentication header. Required. |
cURL example:
curl -X POST \
https://sandbox-api-suppliers.odigeoconnect.com/product/v1/OC_RoomTypeListRQ \
-H 'Authorization: xxxxxx-xxx-xxxxxxx-xxxxxxxxxxx' \
-H 'Content-Type: application/xml' \
-d '<OC_RoomTypeListRQ xmlns="http://odigeoconnect.com/2017">
<Property Code="valid-property-code" />
</OC_RoomTypeListRQ>'
Errors
Overview
Standard HTTP response codes are used for success and failure notifications. Our errors are further
classified by Code
identifiers.
In general, 200 HTTP codes correspond to success, 40X codes are for developer- or user-related failures, and 50X codes are for Odigeo Connect related issues.
Rate limit exceeded errors
RLEE are returned when the request is valid but has exceeded the established rate limits.
All API endpoints are rate limited and all data-access endpoints are rate limited by client SLA.
Exact limits are dynamic and are designed to prevent any single source of traffic from impacting overall API stability
API errors
APIs Errors provide the option to send multiple actions in one single message.
The approach in case of failure is to not execute anything in case of error/s and retrieve an error message with all the errors found. Our aim will always be to provide the more semantic message error inside the error tags and a code to help to identify them.
Specific API errors are returned during scheduled server downtimes.
Odigeo Connect ARI API uses standard OTA error code list for application/business related errors.
Product API
Introduction & Guidelines
Odigeo Connect Product API is able to provide two basic functions to connectivity partners:
-
It allows room type and rate plan autocreation / automapping. The connectivity partner is able to manage the full cycle of room type and rate plan creation, modification and deletion, without the need of any of these actions to be done manually on the Odigeo Connect Extranet.
Posting product data is possible using the services Create Room Types & Create Rate Plans
-
It allows you to pull all room types and rates plans created on the Odigeo Connect Extranet for a specific property to allow the subsequent manual mapping of room types and rate plans on the connectivity interface.
Reading product data is possible using the service Get List of Room Types & Rates Plans
Action | Endpoint |
---|---|
Create Room Types | POST /product/v1/OC_RoomTypeNotifRQ |
Create Rate Plans | POST /product/v1/OC_RatePlanNotifRQ |
Get List of Room Types & Rate Plans | POST /product/v1/OC_RoomTypeListRQ |
The Product API is served over HTTPS TLS (v1, v1.1, v.1.2) to ensure data privacy.
The Product API uses GET
and POST
requests to communicate and HTTP response
codes to indicate
status and errors. All responses come in standard XML and all requests must include a content-type
of
application/xml
and the body must be valid XML for POST
requests.
API Host
https://sandbox-api-suppliers.odigeoconnect.com (Sandbox)
https://api-suppliers.odigeoconnect.com (Production)
The Sandbox environment is unrestricted and only supports test items.
All testing should be done in our Sandbox environments.
When you are getting ready to launch into Production, please request the Production API access via the
OC Connectivity Team.
Product access endpoints:
/product/v1/OC_RoomTypeNotifRQ
/product/v1/OC_RatePlanNotifRQ
/product/v1/OC_RoomTypeListRQ
Creating RoomTypes
The Product API provides the capability to create a batch of roomtypes sending an XML with a collection of roomtypes tags and information in the body payload through a POST request of a OC_RoomTypeNotifRQ.
It is possible to send a collection of roomtypes for a single property but multiple property messages are not allowed. The XMLs describe all our API services from top to bottom, following tag, @attribute, and child elements order.
Every element is classified as required / optional at each level, meaning that all @attributes defined as required are mandatory when using their correspondent tag element.
Action | Endpoint |
---|---|
Create Roomtypes | POST /product/v1/OC_RoomTypeNotifRQ |
Create RoomTypes Request XML
-
OC_RoomTypeNotifRQ
requiredThe OC_RoomTypeNotifRQ is the message that provides the ability to create roomtypes for properties
-
Property
requiredProperty info (only one allowed per message).
-
@Code
requiredProperty identifier
-
RoomTypes
requiredCollection of roomtypes (only one collection allowed)
-
RoomType
requiredRoomtype information
-
@Code
requiredRoomType Code.
String from 1 to 16 chars.
Allowed chars are A to z and 0 to 9 case insensitive (A = a).
Unique code at property level.
-
@Reference
optionalSupplier roomtype id reference (mapping purpose)
-
@MaxOccupancy
requiredIndicates the maximum number of guests that occupy this room.
Maximum occupancy will be 20.
-
@MinOccupancy
optionalIndicates the minimum number of guests that occupy this room.
Default value will be 1.
-
@Status
optionalIt allows to indicate if a RoomType is enabled or disabled.
Possible values are
Active
/Inactive
.If not sent default value will be
Active
. -
@ViewCode
optionalIndicates the view from the room. Code based on: OC Room View definition
-
Occupancies
optionalIndicates specific occupancy information for different age categories
-
Occupancy
optionalIndicates specific occupancy information for an age category.
-
@AgeQualifyingCode
optionalDefines minimum age range or age category of a guest. Code based on: OC Age Categories definition
-
@MaxOccupancy
requiredDefines maximum number of guests that occupy this room for the specified occupancy.
Any maximum occupancy set up for a specific age category cannot be greater than the mandatory maximum occupancy set up for the room.
-
-
-
Bedding
optionalIndicates the type of bed(s) found in the room
-
Bed
optionalDefines the information about one Bed type
-
@Code
optionalCode identifier of a room. Code based on: OC Bedtypes definition
-
@Quantity
optionalNumber of beds of one type
-
-
-
Size
optionalRoom size information.
-
@Units
requiredSize units value.
-
@UnitType
requiredUnit of measure. Code based on OC Unit of Measure definition
-
-
Amenities
optionalA collection of amenity information.
-
Amenity
requiredRefers to a specific amenity.
-
@Code
requiredCode identifier of an amenity. Code based on: OC Amenities definition
-
@Value
requiredDefines if room has it or not. Valid values: true/false.
-
-
-
-
-
-
Request examples
-Basic roomtype creation
<OC_RoomTypeNotifRQ xmlns="http://odigeoconnect.com/2017">
<Property Code="PROPERTYCODE">
<RoomTypes>
<RoomType Code="KingdomRoom" MaxOccupancy="4"/>
</RoomTypes>
</Property>
</OC_RoomTypeNotifRQ>
+Roomtype with all features
<OC_RoomTypeNotifRQ xmlns="http://odigeoconnect.com/2017">
<Property Code="PROPERTYCODE">
<RoomTypes>
<RoomType Code="KingdomRoom" Reference="Kingdom Room" MinOccupancy="1" MaxOccupancy="4" Status="Active"
ViewCode="1">
<Occupancies>
<Occupancy AgeQualifyingCode="10" MaxOccupancy="1"/>
</Occupancies>
<Bedding>
<Bed Code="1" Quantity="1"/>
<Bed Code="2" Quantity="1"/>
</Bedding>
<Size Units="200" UnitType="13"/>
<Amenities>
<Amenity Code="74" Value="true"/>
<Amenity Code="85" Value="true"/>
<Amenity Code="101" Value="false"/>
<Amenity Code="193" Value="false"/>
<Amenity Code="1001" Value="true"/>
<Amenity Code="1002" Value="false"/>
<Amenity Code="1003" Value="true"/>
<Amenity Code="1004" Value="false"/>
<Amenity Code="1005" Value="true"/>
</Amenities>
</RoomType>
<RoomType Code="QueenRoom" Reference="Queen Room" MinOccupancy="1" MaxOccupancy="4" Status="Inactive"
ViewCode="1">
<Occupancies>
<Occupancy AgeQualifyingCode="10" MaxOccupancy="1"/>
</Occupancies>
<Bedding>
<Bed Code="1" Quantity="1"/>
<Bed Code="2" Quantity="1"/>
</Bedding>
<Size Units="200" UnitType="13"/>
<Amenities>
<Amenity Code="74" Value="true"/>
<Amenity Code="85" Value="true"/>
<Amenity Code="193" Value="false"/>
<Amenity Code="1001" Value="false"/>
<Amenity Code="1002" Value="true"/>
</Amenities>
</RoomType>
</RoomTypes>
</Property>
</OC_RoomTypeNotifRQ>
Response messages
We can have two types of response messages: success or error.
Create Roomtypes Success Response XML
-
OC_RoomTypeNotifRS
requiredThe OC_RoomTypeNotifRS is the message that provides response to create roomtypes request
-
Success
optionalGives feedback about a successful operation
-
Property
requiredProperty info (only one).
-
RoomTypes
requiredCollection of room types (only one collection allowed)
-
RoomType
requiredRoomType mapping info
-
@Code
requiredRoomType code
-
@Reference
optionalReference (supplier), if provided on creation.
-
-
-
-
Errors
optionalGives feedback about errors in an operation
Cannot come together with
Success
tag-
Error
optionalGives specific information about an error.
-
-
Response examples
-Success
<OC_RoomTypeNotifRS xmlns="http://odigeoconnect.com/2017">
<Success/>
<Property Code="PROPERTYCODE">
<RoomTypes>
<RoomType Code="KingdomRoom" Reference="Kingdom Room"/>
<RoomType Code="QueenRoom" Reference="Queen Room"/>
</RoomTypes>
</Property>
</OC_RoomTypeNotifRS>
+Error
<OC_RoomTypeNotifRS xmlns="http://odigeoconnect.com/2017">
<Errors>
<Error Code="400">Bad Request</Error>
</Errors>
</OC_RoomTypeNotifRS>
Creating RatePlans
The Product API provides the capability to create a batch of rateplans sending an XML with a collection of rateplan tags and information in the body payload through a POST request of an OC_RatePlanNotifRQ.
You can send a collection of rateplans for a single property but multiple property messages are not allowed.
Action | Endpoint |
---|---|
Create Rateplans | POST /product/v1/OC_RatePlanNotifRQ |
Create RatePlans Request XML
-
OC_RatePlanNotifRQ
requiredThe OC_RatePlanNotifRQ is the message that provides the ability to create rateplans for properties
-
Property
requiredProperty info (only one allowed by message).
-
@Code
requiredProperty identifier
-
RatePlans
requiredCollection of rateplans (only one collection allowed)
-
RatePlan
requiredRatePlan information
-
@RoomTypeCode
requiredOC RoomType identifier
-
@Code
requiredRatePlan code.
String from 1 to 16 chars.
Allowed chars are A to z and 0 to 9 case insensitive (A = a).
Unique code at room level.
-
@Reference
optionalSupplier rateplan reference (mapping purpose)
-
@RateType
requiredIndicates the type of rate.
Values accepted are
SELL
orNET
. -
@Status
optionalIt allows to indicate if a RatePlan is enabled or disabled.
Possible values are
Active
/Inactive
.If not sent, the default value will be
Active
. -
@CancellationPolicyId
optionalRefers to OC cancellation policy id. The first version of the Odigeo connect API will only accept non-ref cancellation policies. Please use code value:
1
. -
@MealPlanId
optionalRefers to OC Meal Plan Type definition.
-
-
-
-
Request examples
-Basic rateplan creation
<OC_RatePlanNotifRQ xmlns="http://odigeoconnect.com/2017">
<Property Code="PROPERTYCODE">
<RatePlans>
<RatePlan RoomTypeCode="KingdomRoom" Code="KingdomRoomRate1" RateType="SELL"/>
<RatePlan RoomTypeCode="QueenRoom" Code="QueenNetRatePlan" RateType="NET"/>
</RatePlans>
</Property>
</OC_RatePlanNotifRQ>
+Rateplan with all features
<OC_RatePlanNotifRQ xmlns="http://odigeoconnect.com/2017">
<Property Code="PROPERTYCODE">
<RatePlans>
<RatePlan RoomTypeCode="KingdomRoom" Code="KingdomRoomRate1" Reference="Kingdom Room Rate Plan"
RateType="SELL" CancellationPolicyId="1" MealPlanId="14" Status="Active"/>
<RatePlan RoomTypeCode="QueenRoom" Code="QueenNetRatePlan" Reference="Queen's Room Rate Plan" RateType="NET"
CancellationPolicyId="1" MealPlanId="5" Status="Inactive"/>
</RatePlans>
</Property>
</OC_RatePlanNotifRQ>
Response messages
We can have two types of response messages: success or error.
Create Rateplan Success Response XML
-
OC_RatePlanNotifRS
requiredThe OC_RatePlanNotifRS is the message that provides the response to create rateplans request
-
Success
optionalGives feedback about a successful operation
-
Property
requiredProperty info (only one).
-
RatePlans
requiredCollection of rateplans (only one collection allowed)
-
RatePlan
requiredRatePlan mapping info
-
@Code
requiredRatePlan code
-
@RoomTypeCode
requiredRoomType code
-
@Reference
optionalReference (supplier), if provided on creation.
-
-
-
-
Errors
optionalGives feedback about errors in an operation
Cannot come together with
Success
tag-
Error
optionalGives specific information about an error.
-
-
Response examples
-Success
<OC_RatePlanNotifRS xmlns="http://odigeoconnect.com/2017">
<Success/>
<Property Code="PROPERTYCODE">
<RatePlans>
<RatePlan RoomTypeCode="KingdomRoom" Code="KingdomRoomRate1"/>
<RatePlan RoomTypeCode="QueenRoom" Code="QueenNetRatePlan"/>
</RatePlans>
</Property>
</OC_RatePlanNotifRS>
+Error
<OC_RatePlanNotifRS xmlns="http://odigeoconnect.com/2017">
<Errors>
<Error Code="400">Bad Request</Error>
</Errors>
</OC_RatePlanNotifRS>
Get RoomTypes & RatePlans
Once RoomTypes & RatePlans are created, this endpoint can be used to retrieve all the information set up, or via the previous post services, either via a manual action of Product creation on the OC Extranet.
Action | Endpoint |
---|---|
Get List of Room Types & Rate Plans | POST /product/v1/OC_RoomTypeListRQ |
Get RoomTypes & Rateplans Request XML
-
OC_RoomTypeListRQ
requiredThe OC_RoomTypeListRQ is the message that provides the ability to list roomtypes and rateplans for properties
-
Property
requiredProperty info (only one).
-
@Code
requiredProperty identifier
-
-
Request examples
-Room & Rates request
<OC_RoomTypeListRQ xmlns="http://odigeoconnect.com/2017">
<Property Code="PROPERTYCODE" />
</OC_RoomTypeListRQ>
Response messages
We can have two types of response messages: success or error.
Success Response XML
-
OC_RoomTypeListRS
requiredThe OC_RoomTypeListRS is the message that provides the response to list Room & Rates request
-
Success
optionalGives feedback about a successful operation
-
Errors
optionalGives feedback about errors in an operation.
Cannot come together with
Success
tag-
Error
optionalGives specific information about an error.
-
-
Property
requiredProperty info (only one).
-
@Code
requiredProperty identifier
-
RoomTypes
optionalCollection of roomtypes by property (only one will be allowed)
-
RoomType
optionalRoomtype information
-
@Code
requiredRoomType Code.
String from 1 to 16 chars.
Allowed chars are A to z and 0 to 9 case insensitive (A = a).
Unique code at property level.
-
@Reference
optionalSupplier roomtype id reference (mapping purpose)
-
@MaxOccupancy
requiredIndicates the maximum number of guests that occupy this room.
Maximum occupancy will be 20.
-
@MinOccupancy
optionalIndicates the minimum number of guests that occupy this room.
Default value will be 1.
-
@Status
optionalIt allows to indicate if a RoomType is enabled or disabled.
Possible values are
Active
/Inactive
.If not sent default value will be
Active
. -
@ViewCode
optionalIndicates the view from the room. Code based on: OC Room View definition
-
Occupancies
optionalIndicates specific occupancy information for different age categories
-
Occupancy
optionalIndicates specific occupancy information for an age category.
-
@AgeQualifyingCode
optionalDefines minimum age range or age category of a guest. Code based on: OC Age Categories definition
-
@MaxOccupancy
requiredDefines maximum number of guests that occupy this room for the specified occupancy.
Any maximum occupancy set up for a specific age category cannot be greater than the mandatory maximum occupancy set up for the room.
-
-
-
Bedding
optionalIndicates the type of bed(s) found in the room
-
Bed
optionalDefines the information about one Bed type
-
@Code
optionalCode identifier of a room. Code based on: OC Bedtypes definition
-
@Quantity
optionalNumber of beds of one type
-
-
-
Size
optionalRoom size information.
-
@Units
requiredSize units value.
-
@UnitType
requiredUnit of measure. Code based on OC Unit of Measure definition
-
-
Amenities
optionalA collection of amenity information.
-
Amenity
requiredRefers to a specific amenity.
-
@Code
requiredCode identifier of an amenity. Code based on: OC Amenities definition
-
@Value
requiredDefines if room has it or not. Valid values: true/false.
-
-
-
RatePlans
requiredCollection of rateplans (only one collection allowed)
-
RatePlan
requiredRatePlan information
-
@Code
requiredRatePlan code.
String from 1 to 16 chars.
Allowed chars are A to z and 0 to 9 case insensitive (A = a).
Unique code at room level.
-
@Reference
optionalSupplier rateplan reference (mapping purpose)
-
@RateType
requiredIndicates the type of rate.
Values accepted are
SELL
orNET
. -
@Status
optionalIt allows to indicate if a RatePlan is enabled or disabled.
Possible values are
Active
/Inactive
.If not sent, the default value will be
Active
. -
@CancellationPolicyId
optionalRefers to OC cancellation policy id. The first version of the Odigeo connect API will only accept non-ref cancellation policies. Please use code value:
1
. -
@MealPlanId
optionalRefers to OC Meal Plan Type definition.
-
-
-
-
-
-
Response examples
-Success
<OC_RoomTypeListRS xmlns="http://odigeoconnect.com/2017">
<Success/>
<Property Code="PROPERTYCODE">
<RoomTypes>
<RoomType Code="KingdomRoom" Reference="Kingdom Room" MaxOccupancy="4" MinOccupancy="1" Status="Active"
ViewCode="1">
<Occupancies>
<Occupancy AgeQualifyingCode="10" MaxOccupancy="1"/>
</Occupancies>
<Bedding>
<Bed Code="1" Quantity="1"/>
<Bed Code="2" Quantity="1"/>
</Bedding>
<Size Units="200" UnitType="13"/>
<Amenities>
<Amenity Code="74" Value="true"/>
<Amenity Code="85" Value="true"/>
<Amenity Code="193" Value="false"/>
<Amenity Code="1001" Value="true"/>
<Amenity Code="1002" Value="true"/>
</Amenities>
<RatePlans>
<RatePlan Code="KingdomRoomRatePlanAllInclusive" Reference="KingdomRoomRatePlanAllInclusive"
RateType="SELL" CancellationPolicyId="1" MealPlanId="1" Status="Active"/>
<RatePlan Code="KingdomRoomRateRoomOnly" Reference="KingdomRoomRateRoomOnly" RateType="SELL"
CancellationPolicyId="1" MealPlanId="14" Status="Active"/>
<RatePlan Code="KingdomRoomRateEarlyBird" Reference="KingdomRoomRateEarlyBird" RateType="NET"
CancellationPolicyId="1" MealPlanId="10" Status="Active"/>
</RatePlans>
</RoomType>
<RoomType Code="QueenRoom" Reference="Queen Room" MaxOccupancy="2" MinOccupancy="1" Status="Active"
ViewCode="1">
<Occupancies>
<Occupancy AgeQualifyingCode="10" MaxOccupancy="1"/>
</Occupancies>
<Bedding>
<Bed Code="1" Quantity="1"/>
<Bed Code="2" Quantity="1"/>
</Bedding>
<Size Units="100" UnitType="13"/>
<Amenities>
<Amenity Code="74" Value="true"/>
<Amenity Code="85" Value="true"/>
<Amenity Code="193" Value="false"/>
<Amenity Code="1001" Value="false"/>
<Amenity Code="1002" Value="true"/>
</Amenities>
<RatePlans>
<RatePlan Code="QueenRoomRatePlanAllInclusive" Reference="QueenRoomRatePlanAllInclusive"
RateType="SELL"
CancellationPolicyId="1" MealPlanId="1" Status="Active"/>
<RatePlan Code="QueenRoomRateRoomOnly" Reference="QueenRoomRateRoomOnly" RateType="SELL"
CancellationPolicyId="1" MealPlanId="14" Status="Active"/>
<RatePlan Code="QueenRoomRateEarlyBird" Reference="QueenRoomRateEarlyBird" RateType="NET"
CancellationPolicyId="1" MealPlanId="10" Status="Active"/>
</RatePlans>
</RoomType>
</RoomTypes>
</Property>
</OC_RoomTypeListRS>
+Error
<OC_RoomTypeListRS xmlns="http://odigeoconnect.com/2017">
<Errors>
<Error Code="400">Bad Request</Error>
</Errors>
</OC_RoomTypeListRS>
ARI API
Introduction & Guidelines
The API is based on messages that conform to the OpenTravel Alliance 2016B specification and best practices
Messages exchanged through the API use a subset of elements from the full OTA specification for each message.
Elements used in each message are listed in the detailed descriptions below. Not documented elements will be ignored, but might be added in future releases.
When you launch a insert/update/delete request, the information is updated in a transactional and not partial way, so if the request fails, information is not updated.
Date range restrictions
When defining date ranges both dates (Start/End) will be included in the update.
We will support date restrictions in the future for 18 months in advance. Restrictions/updates that are greater than this will not apply.
Endpoints overview:
Action | Endpoint |
---|---|
Set and update inventory | POST /ari/v1/OTA_HotelInvCountNotifRQ |
Set and update Availability restrictions | POST /ari/v1/OTA_HotelBookingRuleNotifRQ |
Set and update Rates | POST /ari/v1/OTA_HotelRateAmountNotifRQ |
API Host
https://sandbox-api-suppliers.odigeoconnect.com (Sandbox)
https://api-suppliers.odigeoconnect.com (Production)
The Sandbox environment is unrestricted and only supports test items.
All testing should be done in our Sandbox environments.
When you are getting ready to launch into Production, please request the Production API access via the
OC Connectivity Team.
Inventory
The inventory api service allows you to send and update the amount of inventory available for a specific property.
This update is available at RoomType level or at RatePlan level.
When you launch a insert/update/delete request, the information is updated in a transactional and not partial way, so if the request fails, information is not updated.
Update Inventory for Roomtypes / Rateplans
It is possible to update inventory at RoomType level or RatePlan level.
Updating inventory at RoomType level will mean it will be shared by all rateplans that belong to this Roomtype.
However, it is possible to also update inventory at RatePlan level. In this case we will understand the value is the maximum inventory to be sold for a specific rateplan.
The message endpoint and structure will be similar, just that for rateplan updates you will
need to send
InvCode
(Roomtype) and also RatePlanCode
.
Action | Endpoint |
---|---|
Update inventory (RoomType/Rateplan) | POST /ari/v1/OTA_HotelInvCountNotifRQ |
Request XML
-
OTA_HotelInvCountNotifRQ
requiredThe OTA_HotelInvCountNotifRQ is the message that sends the update for roomtypes and rateplans inventory.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
Inventories
requiredA collection of Inventory.
-
@HotelCode
requiredThe code that uniquely identifies a single hotel property. The hotel code is decided between vendors.
-
Inventory
requiredThis is the inventory information for a given room type.The set of changes in the number of units of base inventory for one inventory type (code) to be made on the server.
-
StatusApplicationControl
requiredInformation on what the BookingRule Message applies to (i.e. the combination of inventory and rate codes) and the period of application.The StatusApplicationControl class is used to indicate to which block codes/rate plans/inventory codes a status should be applied.
-
@InvCode
requiredRoomType Code.
-
@RatePlanCode
required (When updating rates)A string value may be used to request a particular code or an ID if the guest qualifies for a specific rate, such as AARP, AAA, a corporate rate, etc., or to specify a negotiated code as a result of a negotiated rate.
-
@Start
requiredThe starting value of the time span.
Format is YYYY-MM-DD.
-
@End
requiredThe ending value of the time span. Can not be greater than the defined ARI date range restrictions
-
@Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @Sun
optionalWhen true, applies only to a particular week day in the given time span.
-
-
InvCounts
requiredA collection of inventory counts.
-
InvCount
requiredIndividual inventory count
-
@Count
requiredNumber of units of inventory
-
-
-
-
-
RoomType request examples:
-Basic example:
<OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="2017-03-08T07:38:54.729Z" Version="3.000">
<Inventories HotelCode="PROPERTYCODE">
<Inventory>
<StatusApplicationControl InvCode="KingdomRoom" Start="2017-03-28" End="2017-03-29"/>
<InvCounts>
<InvCount Count="2"/>
</InvCounts>
</Inventory>
</Inventories>
</OTA_HotelInvCountNotifRQ>
+Multiple date ranges example:
<OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="EchoToken"
TimeStamp="2017-03-08T07:38:54.729Z" Version="3.000">
<Inventories HotelCode="PROPERTYCODE">
<Inventory>
<StatusApplicationControl InvCode="KingdomRoom" Start="2017-03-18"
End="2017-03-20" Mon="true" Fri="true"/>
<InvCounts>
<InvCount Count="5"/>
</InvCounts>
</Inventory>
<Inventory>
<StatusApplicationControl InvCode="QueenRoom" Start="2017-03-28"
End="2017-03-30"/>
<InvCounts>
<InvCount Count="3"/>
</InvCounts>
</Inventory>
</Inventories>
</OTA_HotelInvCountNotifRQ>
Rateplan request examples:
+Basic example (RatePlan):
<OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="2017-03-08T07:38:54.729Z" Version="3.000">
<Inventories HotelCode="PROPERTYCODE">
<Inventory>
<StatusApplicationControl InvCode="KingdomRoom" RatePlanCode="RACK" Start="2017-03-28"
End="2017-03-29"/>
<InvCounts>
<InvCount Count="2"/>
</InvCounts>
</Inventory>
</Inventories>
</OTA_HotelInvCountNotifRQ>
+Multiple date ranges example (RatePlan):
<OTA_HotelInvCountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="EchoToken"
TimeStamp="2017-03-08T07:38:54.729Z" Version="3.000">
<Inventories HotelCode="PROPERTYCODE">
<Inventory>
<StatusApplicationControl InvCode="KingdomRoom" RatePlanCode="RACK" Start="2017-03-18" End="2017-03-20"
Mon="true" Fri="true"/>
<InvCounts>
<InvCount Count="2"/>
</InvCounts>
</Inventory>
<Inventory>
<StatusApplicationControl InvCode="QueenRoom" RatePlanCode="EARLY" Start="2017-03-28" End="2017-03-30"/>
<InvCounts>
<InvCount Count="6"/>
</InvCounts>
</Inventory>
</Inventories>
</OTA_HotelInvCountNotifRQ>
Response messages RoomType & Rateplan Inventory
We can have two types of response messages: success or error.
Update Roomtype Inventory Success Response XML
-
OTA_HotelInvCountNotifRS
requiredThe OTA_HotelInvCountNotifRS is the message used to indicate the status of processing the OTA_HotelInvCountNotifRQ message.
-
@EchoToken
optionalA reference for additional message identification, assigned by the requesting host system.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
Success
optionalAn element that is not intended to contain any data. The presence of this empty element in the response message indicates that the incoming request message was processed successfully. Returning an empty element of this type indicates the successful processing of an OpenTravel message.
-
Errors
optionalA collection of errors that occurred during the processing of a message.
-
Error
optionalIndicates that an error occurred in the processing of the incoming request message. An error is defined as a malformed XML message that could not be processed and/or validated, or any business-level error that could happen.
-
@Type
optionalThe Error element MUST contain the Type attribute that uses a recommended set of values to indicate the error type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type ="Unknown". Refer to OC Error Type.
-
@Code
optionalIf present, this refers to a table of coded values exchanged between applications to identify errors. Refer to OC Code Errors.
-
@ShortText
optionalAn abbreviated version of the error in textual format.
-
-
-
Response examples
By clicking on the example name you can fold/unfold it-Success
<OTA_HotelInvCountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000"
TimeStamp="2017-03-01T09:30:47+08:00">
<Success/>
</OTA_HotelInvCountNotifRS>
+Error
<OTA_HotelInvCountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000"
TimeStamp="2017-03-01T09:30:47+08:00">
<Errors>
<Error Type="3" Code="527" ShortText="Invalid number of inventory adjustments"/>
</Errors>
</OTA_HotelInvCountNotifRS>
Availability restrictions
Set and update Availability restrictions
The availability restrictions api service allows to send and update rules and restrictions affecting the availability status of the property.
When you launch a insert/update/delete request, the information is updated in a transactional and not partial way, so if the request fails, information is not updated.
The supported operations are:
- At room type & rate plan level:
- STOP SELL: Close / Open inventory sales
- At rate plan level:
- LOS:
- Min Length of Stay through
- Min Length of Stay on arrival
- Max Length of Stay through
- Max Length of Stay on arrival
- Full Pattern Length of Stay on arrival
- RELEASE: (aka ‘Cut off time’ or ‘Lead time’):
- Min Advanced booking offset
- Max Advanced booking offset
- CTA & CTD:
- Close to arrival (CTA)
- Close to departure (CTD)
- LOS:
Action | Endpoint |
---|---|
Set and update restrictions | POST /ari/v1/OTA_HotelBookingRuleNotifRQ |
Request XML
-
OTA_HotelBookingRuleNotifRQ
requiredThe OTA_BookingRuleNotifRQ is the message that sends the notification of the rules and restrictions affecting the availability status of the hotel.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
RuleMessages
requiredContainer for the individual RuleMessage(s). An OTA_HotelBookingRuleNotifRQ contains the booking rules for a single property.
-
@HotelCode
requiredThe code that uniquely identifies a single property.
-
RuleMessage
requiredContainer for the collection of Booking Rules for a given hotel or chain.
-
StatusApplicationControl
requiredInformation on what the BookingRule Message applies to (i.e. the combination of inventory and rate codes) and the period of application.The StatusApplicationControl class is used to indicate to which block codes/rate plans/inventory codes a status should be applied.
-
@InvCode
requiredInventory Code (Room type).
-
@RatePlanCode
requiredRate Plan code
-
@Start
requiredThe starting value of the time span.
Format is YYYY-MM-DD.
-
@End
requiredThe ending value of the time span. Can not be greater than the defined ARI date range restrictions
-
@Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @Sun
optionalWhen true, applies only to a particular week day in the given time span.
-
-
BookingRules
requiredA collection of BookingRules.
-
BookingRule
requiredThe BookingRule element defines restrictions to rates and stays at the hotel for a given rate plan, room type or rate plan/room type combination.
-
@MinAdvancedBookingOffset
optionalMinimum ISO-8601 duration before the arrival date for which this rate plan may be booked.
-
@MaxAdvancedBookingOffset
optionalMaximum ISO-8601 duration before the arrival date for which this rate plan may be booked.
-
LengthsOfStay
optionalA collection of lengths of stay.
-
@ArrivalDateBased
requiredTrue indicates that LOS is based on arrival date. False indicates that LOS is based on stay date.
-
@FixedPatternLength
optionalThe number of elements in a fixed pattern length of stay (FPLOS) array. Only applicable when
MinMaxMessageType
is FullPatternLOS. You must define the data from left to right. Example: 110001 (First day open, Second day open, Third day close, Fourth day close, Fifth daty close, Sixth day open) -
LengthOfStay
optionalA collection of patterns defining allowable lengths of stay (LOS).
-
@MinMaxMessageType
optionalAn enumerated type used to define how the minimum and maximum LOS is applied.
Accepted values: SetMinLOS, SetMaxLOS, FullPatternLOS.
-
@Time
optionalUsed in conjunction with the
MinMaxMessageType
to define the length of stay requirements. The time unit measure is DAY/s
-
LOS_Pattern
optionalThis may be used when MinMaxMessageType is FullPatternLOS to identify the open and closed status by LOS (e.g., if LengthsOfStay@FixedPatternLength="5" then FullPatternLOS="11011", left to right).
-
@FullPatternLOS
requiredThe size of the pattern cannot be greater than 31 days. Left to right
-
-
-
-
RestrictionStatus
optionalAvailability status assigned to the room rate combination for this booking rule. (CTA/CTD)
-
@Status
optionalIdentifies the availability status of an item. (Open, Close)
-
@Restriction
optionalDefines CTA/CTD. Expected values: Arrival, Departure.
-
-
-
-
-
-
Request examples
+LOS request:
<OTA_HotelBookingRuleNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2017-07-01T11:25:15"
Version="5.000">
<RuleMessages HotelCode="PROPERTYCODE">
<RuleMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="BAR" Start="2017-04-12" End="2017-04-15" Fri="true"/>
<BookingRules>
<BookingRule>
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay MinMaxMessageType="SetMinLOS" Time="3"/>
</LengthsOfStay>
</BookingRule>
</BookingRules>
</RuleMessage>
<RuleMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="BAR" Start="2017-04-16" End="2017-04-20" Mon="true"/>
<BookingRules>
<BookingRule>
<LengthsOfStay ArrivalDateBased="true">
<LengthOfStay MinMaxMessageType="SetMaxLOS" Time="5"/>
</LengthsOfStay>
</BookingRule>
</BookingRules>
</RuleMessage>
<RuleMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="BAR" Start="2017-04-21" End="2017-04-25" Mon="true"/>
<BookingRules>
<BookingRule>
<LengthsOfStay ArrivalDateBased="true">
<LengthOfStay MinMaxMessageType="SetMinLOS" Time="2"/>
<LengthOfStay MinMaxMessageType="SetMaxLOS" Time="10"/>
</LengthsOfStay>
</BookingRule>
</BookingRules>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleNotifRQ>
+Open/Close (rateplan) request:
<OTA_HotelBookingRuleNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2017-07-01T11:25:15"
Version="5.000" EchoToken="TOKEN_HASH">
<RuleMessages HotelCode="PROPERTYCODE">
<RuleMessage>
<StatusApplicationControl InvCode="KingdomRoom" RatePlanCode="RACK" Start="2017-03-18" End="2017-03-20"/>
<BookingRules>
<BookingRule>
<RestrictionStatus Status="Open"/>
</BookingRule>
</BookingRules>
</RuleMessage>
<RuleMessage>
<StatusApplicationControl InvCode="QueenRoom" RatePlanCode="EARLY" Start="2017-04-21" End="2017-04-25"/>
<BookingRules>
<BookingRule>
<RestrictionStatus Status="Close"/>
</BookingRule>
</BookingRules>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleNotifRQ>
+Open/Close (roomtype) request:
<OTA_HotelBookingRuleNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2017-07-01T11:25:15"
Version="5.000" EchoToken="TOKEN_HASH">
<RuleMessages HotelCode="PROPERTYCODE">
<RuleMessage>
<StatusApplicationControl InvCode="KingdomRoom" Start="2017-03-18" End="2017-03-20"/>
<BookingRules>
<BookingRule>
<RestrictionStatus Status="Open"/>
</BookingRule>
</BookingRules>
</RuleMessage>
<RuleMessage>
<StatusApplicationControl InvCode="QueenRoom" Start="2017-04-21" End="2017-04-25"/>
<BookingRules>
<BookingRule>
<RestrictionStatus Status="Close"/>
</BookingRule>
</BookingRules>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleNotifRQ>
+CTA request:
<OTA_HotelBookingRuleNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2017-07-01T11:25:15"
Version="5.000">
<RuleMessages HotelCode="PROPERTYCODE">
<RuleMessage>
<StatusApplicationControl InvCode="KingdomRoom" RatePlanCode="RACK" Start="2017-03-18"
End="2017-03-20"/>
<BookingRules>
<BookingRule>
<RestrictionStatus Restriction="Arrival" Status="Close"/>
</BookingRule>
</BookingRules>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleNotifRQ>
+CTD request:
<OTA_HotelBookingRuleNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2017-07-01T11:25:15"
Version="5.000">
<RuleMessages HotelCode="PROPERTYCODE">
<RuleMessage>
<StatusApplicationControl InvCode="KingdomRoom" RatePlanCode="RACK" Start="2017-03-18"
End="2017-03-20"/>
<BookingRules>
<BookingRule>
<RestrictionStatus Restriction="Departure" Status="Close"/>
</BookingRule>
</BookingRules>
</RuleMessage>
<RuleMessage>
<StatusApplicationControl InvCode="QueenRoom" RatePlanCode="EARLY" Start="2017-03-18"
End="2017-03-20"/>
<BookingRules>
<BookingRule>
<RestrictionStatus Restriction="Departure" Status="Open"/>
</BookingRule>
</BookingRules>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleNotifRQ>
+Release (Cutoff) request:
<OTA_HotelBookingRuleNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2017-07-01T11:25:15"
Version="5.000">
<RuleMessages HotelCode="PROPERTYCODE">
<RuleMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="RACK" Start="2017-04-12" End="2017-04-15" Mon="true"/>
<BookingRules>
<BookingRule MinAdvancedBookingOffset="P1D" MaxAdvancedBookingOffset="P2D"/>
</BookingRules>
</RuleMessage>
<RuleMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="EARLY" Start="2017-04-20" End="2017-04-25"
Fri="true"/>
<BookingRules>
<BookingRule MinAdvancedBookingOffset="PT2H" MaxAdvancedBookingOffset="P360D"/>
</BookingRules>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleNotifRQ>
+Mixed restrictions:
<OTA_HotelBookingRuleNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2017-07-01T11:25:15"
Version="5.000">
<RuleMessages HotelCode="PROPERTYCODE">
<RuleMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="RACK" Start="2017-04-15"
End="2017-04-20"/>
<BookingRules>
<BookingRule MinAdvancedBookingOffset="P1D" MaxAdvancedBookingOffset="P2D">
<RestrictionStatus Restriction="Arrival" Status="Open"/>
</BookingRule>
<BookingRule>
<RestrictionStatus Restriction="Departure" Status="Open"/>
</BookingRule>
</BookingRules>
</RuleMessage>
<RuleMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="EARLY" Start="2017-04-20"
End="2017-04-25" Mon="true"/>
<BookingRules>
<BookingRule>
<LengthsOfStay ArrivalDateBased="false">
<LengthOfStay MinMaxMessageType="SetMinLOS" Time="5"/>
<LengthOfStay MinMaxMessageType="SetMaxLOS" Time="10"/>
</LengthsOfStay>
<RestrictionStatus Status="Close"/>
</BookingRule>
</BookingRules>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleNotifRQ>
+Full Pattern LOS:
<OTA_HotelBookingRuleNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2017-07-01T11:25:15"
Version="5.000">
<RuleMessages HotelCode="PROPERTYCODE">
<RuleMessage>
<StatusApplicationControl InvCode="KingdomRoom" RatePlanCode="RACK" Start="2017-03-18"
End="2017-03-20"/>
<BookingRules>
<BookingRule>
<LengthsOfStay ArrivalDateBased="true" FixedPatternLength="8">
<LengthOfStay MinMaxMessageType="FullPatternLOS">
<LOS_Pattern FullPatternLOS="10001111" />
</LengthOfStay>
</LengthsOfStay>
</BookingRule>
</BookingRules>
</RuleMessage>
</RuleMessages>
</OTA_HotelBookingRuleNotifRQ>
Response messages
We can have two types of response messages: success or error.
Restrictions Success Response XML
-
OTA_HotelBookingRuleNotifRS
requiredThe OTA_HotelBookingRuleNotifRS is the message used to indicate the status of processing the OTA_HotelBookingRuleNotifRQ message.
-
@EchoToken
optionalA reference for additional message identification, assigned by the requesting host system.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
Success
optionalAn element that is not intended to contain any data. The presence of this empty element in the response message indicates that the incoming request message was processed successfully. Returning an empty element of this type indicates the successful processing of an OpenTravel message.
-
Errors
optionalA collection of errors that occurred during the processing of a message.
-
Error
optionalIndicates that an error occurred in the processing of the incoming request message. An error is defined as a malformed XML message that could not be processed and/or validated, or any business-level error that could happen..
-
@Type
optionalThe Error element MUST contain the Type attribute that uses a recommended set of values to indicate the error type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type ="Unknown". Refer to OC Error Type.
-
@Code
optionalIf present, this refers to a table of coded values exchanged between applications to identify errors. Refer to OC Code Errors.
-
@ShortText
optionalAn abbreviated version of the error in textual format.
-
-
-
Response examples
-Success
<OTA_HotelBookingRuleNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000"
TimeStamp="2017-03-01T09:30:47+08:00">
<Success/>
</OTA_HotelBookingRuleNotifRS>
+Error
<OTA_HotelBookingRuleNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000"
TimeStamp="2017-03-01T09:30:47+08:00">
<Errors>
<Error Type="3" Code="400" ShortText="Invalid property code" />
</Errors>
</OTA_HotelBookingRuleNotifRS>
Rates
Set and update rates
The rates api service allows you to send and update rate amounts for specific days and rateplans.
When you launch a insert/update/delete request, the information is updated in a transactional and not partial way, so if the request fails, information is not updated.
Action | Endpoint |
---|---|
Set and update rates | POST /ari/v1/OTA_HotelRateAmountNotifRQ |
Request XML
-
OTA_HotelRateAmountNotifRQ
requiredThis message is used to provide a notification of a new rate plan created for a hotel, and to synchronize the rate plan between systems for booking.
-
@EchoToken
optionalA reference for additional message identification, assigned by the requesting host system.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
RateAmountMessages
requiredA collection of RateAmountMessages that define the rate changes to be made.
-
@HotelCode
requiredThe code that uniquely identifies a single hotel property. The hotel code is decided between vendors.
-
RateAmountMessage
requiredDefines the rate changes to be made.
-
StatusApplicationControl
requiredInformation on what the RateAmount Message applies to (i.e. the combination of inventory and rate codes) and the period of application. The StatusApplicationControl class is used to indicate to which block codes/rate plans/inventory codes a status should be applied.
-
@InvCode
requiredInventory code. (Roomtype)
-
@RatePlanCode
requiredA string value may be used to request a particular code or an ID if the guest qualifies for a specific rate, such as AARP, AAA, a corporate rate, etc., or to specify a negotiated code as a result of a negotiated rate.
-
@Start
requiredThe starting value of the time span.
Format is YYYY-MM-DD.
-
@End
requiredThe ending value of the time span. Can not be greater than the defined ARI date range restrictions
-
@Mon, @Tue, @Weds, @Thur, @Fri, @Sat, @Sun
optionalWhen true, applies only to a particular week day in the given time span.
-
-
Rates
requiredA collection of rate changes to be synchronized between systems.
-
Rate
requiredThe BookingRule element defines restrictions to rates and stays at the hotel for a given rate plan, room type or rate plan/room type combination.
-
BaseByGuestAmts
requiredA collection of Base charges by number of guests.
-
BaseByGuestAmt
requiredBase charge for a given number of guests for a given age qualifying code.
-
@AgeQualifyingCode
optionalDefines minimum age range or age category of a guest. Code based on: OC Age Categories definition
-
@NumberOfGuests
requiredThe number of guests associated with this base charge.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
This field is an integer number. (e.g. if you want to provide a price of
33.05 EUR
per night, you should supply:AmountAfterTax="3005" DecimalPlaces="2"
)e.g. if AmountAfterTax="10056" DecimalPlaces="2", that means a price of 100.56
Zero amounts are only allowed for child and infant rates.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
-
-
-
-
-
-
Request examples
By clicking on the example name you can fold/unfold it-Basic example:
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="2017-03-08T07:38:54.729Z" Version="5.000">
<RateAmountMessages HotelCode="PROPERTYCODE">
<RateAmountMessage>
<StatusApplicationControl InvCode="SIN" RatePlanCode="RACK" Start="2017-07-24" End="2017-07-31"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" AmountAfterTax="3895" DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
+Complete example:
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="EchoToken"
TimeStamp="2017-03-08T07:38:54.729Z" Version="5.000">
<RateAmountMessages HotelCode="PROPERTYCODE">
<RateAmountMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="RACK" Start="2017-07-20" End="2017-07-22"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" AmountAfterTax="3000" DecimalPlaces="2"/>
<BaseByGuestAmt NumberOfGuests="2" AmountAfterTax="4000" DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="1" AmountAfterTax="2000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="8" NumberOfGuests="1" AmountAfterTax="3000"
DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
<RateAmountMessage>
<StatusApplicationControl InvCode="DBL" RatePlanCode="EARLY" Start="2017-07-25" End="2017-07-29"/>
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="2" AmountAfterTax="3000" DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="1" AmountAfterTax="1000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="2" AmountAfterTax="1500"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="8" NumberOfGuests="1" AmountAfterTax="2000"
DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Response messages
We can have two types of response messages: success or error.
Rates Success Response XML
-
OTA_HotelBookingRuleNotifRS
requiredThe OTA_HotelBookingRuleNotifRS is the message used to indicate the status of processing the OTA_HotelBookingRuleNotifRQ message.
-
@EchoToken
optionalA reference for additional message identification, assigned by the requesting host system.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
Success
optionalAn element that is not intended to contain any data. The presence of this empty element in the response message indicates that the incoming request message was processed successfully. Returning an empty element of this type indicates the successful processing of an OpenTravel message.
-
Errors
optionalA collection of errors that occurred during the processing of a message.
-
Error
optionalIndicates that an error occurred in the processing of the incoming request message. An error is defined as a malformed XML message that could not be processed and/or validated, or any business-level error that could happen.
-
@Type
optionalThe Error element MUST contain the Type attribute that uses a recommended set of values to indicate the error type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type ="Unknown". Refer to OC Error Type.
-
@Code
optionalIf present, this refers to a table of coded values exchanged between applications to identify errors. Refer to OC Code Errors.
-
@ShortText
optionalAn abbreviated version of the error in textual format.
-
-
-
Response examples
By clicking on the example name you can fold/unfold it-Success
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000"
TimeStamp="2017-03-01T09:30:47+08:00">
<Success/>
</OTA_HotelRateAmountNotifRS>
+Error
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000"
TimeStamp="2017-03-01T09:30:47+08:00">
<Errors>
<Error Type="3" Code="400" ShortText="Invalid property code" />
</Errors>
</OTA_HotelRateAmountNotifRS>
Read Calendar
Read the calendar for a hotel for date range
The calendar read allows you to consult with the ARI for a provided Hotel Code and date period.
It returns all the Availability restrictions, Inventory and Rates set for all RatePlans for the hotel for that period
Action | Endpoint |
---|---|
Read calendar | GET /ari/v1/OC_ReadCalendarRQ |
Request XML
-
OC_ReadCalendarRQ
requiredThis message is used to request calendar ARI dates for date period for a single property.
-
@EchoToken
optionalA reference for additional message identification, assigned by the requesting host system.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
Property
requiredA node specifying the Property code and the Start/End of the period.
-
@Code
requiredThe code that uniquely identifies a single hotel property. The hotel code is decided between vendors.
-
@Start
requiredThe starting value of the time span. Format is YYYY-MM-DD.
-
@End
requiredThe ending value of the time span. The whole period can not be greater than 31 days.
-
@Mon, @Tue, @Wed, @Thu, @Fri, @Sat, @Sun
optionalWhen true, applies only to a particular week day in the given time span.
So for example Mon="true" Tue="true" will return info only for Mondays and Tuesdays in the period.
-
-
Request examples
By clicking on the example name you can fold/unfold it-Basic example:
<OC_ReadCalendarRQ xmlns="http://odigeoconnect.com/2017">
<Property Code="PROPERTYCODE" Start="2017-04-15" End="2017-04-16" />
</OC_ReadCalendarRQ>
+Complete example:
<OC_ReadCalendarRQ xmlns="http://odigeoconnect.com/2017">
<Property Code="PROPERTYCODE" Start="2017-04-10" End="2017-04-17" Sat="true" Sun="true"/>
</OC_ReadCalendarRQ>
Response messages
We can have two types of response messages: success or error.
Calendar Read Success Response XML
-
OC_ReadCalendarRS
requiredThe OC_ReadCalendarRS is the result from making a request with the OC_ReadCalendarRQ message. The result is composed of 3 different sections, containing all the info set with the ARI messages.
Please note:
1.This endpoint returns all the data set in the Availability restrictions, Inventory and Rates
2.The data is given per date on the RatePlan level.
3.In case of any inconsistencies when setting the ARI rates, inconsistencies may appear here.
3.In case some data is not present in the database it won't be returned. So blank dates are possible.
4.In case of any error, it will be reported in Errors.
-
@EchoToken
optionalA reference for additional message identification, assigned by the requesting host system.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
Success
optionalAn element that is not intended to contain any data. The presence of this empty element in the response message indicates that the incoming request message was processed successfully. Returning an empty element of this type indicates the successful processing of an message.
-
Errors
optionalA collection of errors that occurred during the processing of a message. In case of an error, the other parts of the response are not shown.
-
Error
optionalIndicates that an error occurred in the processing of the incoming request message. An error is defined as a malformed XML message that could not be processed and/or validated, or any business-level error that could happen.
-
@Type
optionalThe Error element MUST contain the Type attribute that uses a recommended set of values to indicate the error type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type ="Unknown". Refer to OC Error Type.
-
@Code
optionalIf present, this refers to a table of coded values exchanged between applications to identify errors. Refer to OC Code Errors.
-
@ShortText
optionalAn abbreviated version of the error in textual format.
-
-
-
Property
optionalIn case of Success this element is mandatory. Gives information about the Property. Contains the response data.
-
@Code
requiredThe code that uniquely identifies a single property.
-
AvailabilityRestrictions
requiredContains the Availability restrictions. (set in the Availability restrictions endpoint). Could be empty in case no Availability restrictions were found for the period.
-
AvailabilityRestriction
requiredThis element defines restrictions to rates and stays at the hotel for a single date for a given rate plan, room type or rate plan/room type combination.
-
@Date
requiredThe date for which the restrictions are valid. Format is YYYY-MM-DD.
-
@RoomTypeCode
requiredRoomType's code.
-
@RatePlanCode
optionalRatePlanCode - if provided then the restriction applies to the corresponding RoomType. If not provided then the restriction applies for the RoomType.
-
Status
optionalIdentifies the availability status of an item. (Open, Close)
-
@Closed
requiredIf true then the item is Closed. If false the item is Open
-
-
AdvancedBookingOffset
optional-
@Min
requiredMinimum ISO-8601 duration before the arrival date for which this rate plan may be booked.
-
@Max
requiredMaximum ISO-8601 duration before the arrival date for which this rate plan may be booked.
-
-
MinLOS
Defines the minimum Length of stay (LOS)
-
@Days
requiredNumber of days defining allowable lengths of stay (LOS).
-
@ArrivalDateBased
requiredTrue indicates that LOS is based on arrival date. False indicates that LOS is based on stay date.
-
-
MaxLos
optionalDefines the maximum Length of stay (LOS). Maximum 28 days.
-
@Days
requiredNumber of days defining allowable lengths of stay (LOS).
-
@ArrivalDateBased
requiredTrue indicates that LOS is based on arrival date. False indicates that LOS is based on stay date.
-
-
LOS_Pattern
optionalTo identify the open and closed status by lengths of stay (LOS) (left to right) ex 1011 day 1 open, day 2 closed, day 3 open, day 4 open...
-
@FullPatternLOS
requiredThe size of the pattern cannot be greater than 31 days. Left to right
-
-
-
-
Inventories
requiredContains the Inventory. (set in the Inventory endpoint). Could be empty in case no Inventories were found for the period.
-
Inventory
optionalThis is the inventory information for a given room type / rate plan
-
@Date
requiredThe Inventory date. Format is YYYY-MM-DD.
-
@RoomTypeCode
requiredRoomType Code.
-
@RatePlanCode
optionalRatePlan Code - if not set then this is the Inventory for the RoomType
-
@Count
requiredNumber of units of inventory
-
-
-
Rates
requiredContains the Rates. (set in the Rates endpoint). Could be empty in case no Rates were found for the period.
-
Rate
Contains single rate for RatePlan per Date-
Date
requiredThe date for which the rates are valid.
-
RoomTypeCode
requiredInventory Code (Room type).
-
RatePlanCode
requiredRate Plan code
-
BaseByGuestAmts
requiredA collection of Base charges by number of guests.
-
BaseByGuestAmt
requiredBase charge for a given number of guests for a given age qualifying code.
-
AgeQualifyingCode
optionalDefines minimum age range or age category of a guest. Code based on: OC Age Categories definition
-
NumberOfGuests
requiredThe number of guests associated with this base charge.
-
AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency. Maximum value allowed is 3.
-
-
-
-
-
-
Response examples
-Success (Basic)
<OC_ReadCalendarRS xmlns="http://odigeoconnect.com/2017">
<Success/>
<Property Code="PROPERTYCODE">
<AvailabilityRestrictions>
<AvailabilityRestriction Date="2017-04-15" RoomTypeCode="SINGLE" >
<Status Closed="true" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-15" RoomTypeCode="SINGLE" RatePlanCode="RACK">
<Status Closed="false" ClosedToArrival="true" ClosedToDeparture="true" />
<AdvancedBookingOffset Min="PT24H" Max="PT48H"/>
<MinLOS Days="1" ArrivalDateBased="true"/>
<MaxLOS Days="10" ArrivalDateBased="true" />
</AvailabilityRestriction>
</AvailabilityRestrictions>
<Inventories>
<Inventory Date="2017-04-15" RoomTypeCode="SINGLE" RatePlanCode="RACK" Count="3" />
<Inventory Date="2017-04-15" RoomTypeCode="SINGLE" Count="8" />
</Inventories>
<Rates>
<Rate Date="2017-04-15" RoomTypeCode="SINGLE" RatePlanCode="RACK">
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" AmountAfterTax="3000" DecimalPlaces="2"/>
<BaseByGuestAmt NumberOfGuests="2" AmountAfterTax="4000" DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="1" AmountAfterTax="2000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="8" NumberOfGuests="1" AmountAfterTax="3000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</Property>
</OC_ReadCalendarRS>
+Success (With full pattern)
<OC_ReadCalendarRS xmlns="http://odigeoconnect.com/2017">
<Success/>
<Property Code="PROPERTYCODE">
<AvailabilityRestrictions>
<AvailabilityRestriction Date="2017-04-15" RoomTypeCode="SINGLE" >
<Status Closed="true" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-15" RoomTypeCode="SINGLE" RatePlanCode="RACK">
<Status Closed="false" ClosedToArrival="true" ClosedToDeparture="true" />
<AdvancedBookingOffset Min="PT24H" Max="PT48H"/>
<MinLOS Days="1" ArrivalDateBased="false"/>
<MaxLOS Days="10" ArrivalDateBased="false" />
<LOS_Pattern FullPatternLOS="10001111" />
</AvailabilityRestriction>
</AvailabilityRestrictions>
<Inventories>
<Inventory Date="2017-04-15" RoomTypeCode="SINGLE" RatePlanCode="RACK" Count="3" />
<Inventory Date="2017-04-15" RoomTypeCode="SINGLE" Count="8" />
</Inventories>
<Rates>
<Rate Date="2017-04-15" RoomTypeCode="SINGLE" RatePlanCode="RACK">
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" AmountAfterTax="3000" DecimalPlaces="2"/>
<BaseByGuestAmt NumberOfGuests="2" AmountAfterTax="4000" DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="1" AmountAfterTax="2000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="8" NumberOfGuests="1" AmountAfterTax="3000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</Property>
</OC_ReadCalendarRS>
+Error
<OC_ReadCalendarRS xmlns="http://odigeoconnect.com/2017">
<Errors>
<Error Code="400">Bad Request</Error>
</Errors>
</OC_ReadCalendarRS>
+Success (Full)
<OC_ReadCalendarRS xmlns="http://odigeoconnect.com/2017">
<Success/>
<Property Code="PROPERTYCODE">
<AvailabilityRestrictions>
<AvailabilityRestriction Date="2017-04-15" RoomTypeCode="SINGLE" >
<Status Closed="true" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-15" RoomTypeCode="SINGLE" RatePlanCode="RACK">
<Status Closed="false" ClosedToArrival="true" ClosedToDeparture="true" />
<AdvancedBookingOffset Min="PT24H" Max="PT48H"/>
<MinLOS Days="1" ArrivalDateBased="true"/>
<MaxLOS Days="10" ArrivalDateBased="true" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-15" RoomTypeCode="DBL" >
<Status Closed="true" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-15" RoomTypeCode="DBL" RatePlanCode="RACK">
<Status Closed="false" ClosedToArrival="true" ClosedToDeparture="true" />
<AdvancedBookingOffset Min="PT24H" Max="PT48H"/>
<MinLOS Days="1" ArrivalDateBased="true"/>
<MaxLOS Days="10" ArrivalDateBased="true" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-16" RoomTypeCode="SINGLE" >
<Status Closed="false" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-16" RoomTypeCode="SINGLE" RatePlanCode="RACK">
<Status Closed="false" ClosedToArrival="true" ClosedToDeparture="true" />
<AdvancedBookingOffset Min="PT24H" Max="PT48H"/>
<MinLOS Days="1" ArrivalDateBased="true"/>
<MaxLOS Days="10" ArrivalDateBased="true" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-16" RoomTypeCode="DBL" >
<Status Closed="false" />
</AvailabilityRestriction>
<AvailabilityRestriction Date="2017-04-16" RoomTypeCode="DBL" RatePlanCode="RACK">
<Status Closed="false" ClosedToArrival="true" ClosedToDeparture="true" />
<AdvancedBookingOffset Min="PT24H" Max="PT48H"/>
<MinLOS Days="1" ArrivalDateBased="true"/>
<MaxLOS Days="10" ArrivalDateBased="true" />
</AvailabilityRestriction>
</AvailabilityRestrictions>
<Inventories>
<Inventory Date="2017-04-15" RoomTypeCode="DBL" RatePlanCode="RACK" Count="5" />
<Inventory Date="2017-04-15" RoomTypeCode="DBL" RatePlanCode="NRF" Count="3" />
<Inventory Date="2017-04-15" RoomTypeCode="DBL" Count="8" />
<Inventory Date="2017-04-16" RoomTypeCode="DBL" RatePlanCode="RACK" Count="6" />
<Inventory Date="2017-04-16" RoomTypeCode="DBL" RatePlanCode="NRF" Count="4" />
<Inventory Date="2017-04-16" RoomTypeCode="DBL" Count="10" />
</Inventories>
<Rates>
<Rate Date="2017-04-15" RoomTypeCode="DBL" RatePlanCode="RACK">
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" AmountAfterTax="3000" DecimalPlaces="2"/>
<BaseByGuestAmt NumberOfGuests="2" AmountAfterTax="4000" DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="1" AmountAfterTax="2000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="8" NumberOfGuests="1" AmountAfterTax="3000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
<Rate Date="2017-04-15" RoomTypeCode="SINGLE" RatePlanCode="RACK">
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" AmountAfterTax="3000" DecimalPlaces="2"/>
<BaseByGuestAmt NumberOfGuests="2" AmountAfterTax="4000" DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="1" AmountAfterTax="2000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="8" NumberOfGuests="1" AmountAfterTax="3000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
<Rate Date="2017-04-16" RoomTypeCode="SINGLE" RatePlanCode="RACK">
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" AmountAfterTax="3000" DecimalPlaces="2"/>
<BaseByGuestAmt NumberOfGuests="2" AmountAfterTax="4000" DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="1" AmountAfterTax="2000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="8" NumberOfGuests="1" AmountAfterTax="3000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
<Rate Date="2017-04-16" RoomTypeCode="DBL" RatePlanCode="RACK">
<BaseByGuestAmts>
<BaseByGuestAmt NumberOfGuests="1" AmountAfterTax="3000" DecimalPlaces="2"/>
<BaseByGuestAmt NumberOfGuests="2" AmountAfterTax="4000" DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="7" NumberOfGuests="1" AmountAfterTax="2000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="8" NumberOfGuests="1" AmountAfterTax="3000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
<BaseByGuestAmt AgeQualifyingCode="10" NumberOfGuests="1" AmountAfterTax="4000"
DecimalPlaces="2"/>
</BaseByGuestAmts>
</Rate>
</Rates>
</Property>
</OC_ReadCalendarRS>
Reservations API
Introduction & Guidelines
The reservation api service allows partners to receive reservations made by Odigeo customers
The message format used is XML (OTA) over HTTPS TLS (v1, v1.1, v.1.2).
Is mandatory to include content-type: application/xml
EchoToken
EchoTokens ensure that each request can be uniquely identified (GUID) for troubleshooting purposes
in both testing and production environments.
All requests you receive from OdigeoConnect will contain an EchoToken, and your response
must include the same EchoToken as received in the request.
Endpoints overview:
Action | Endpoint |
---|---|
Reservation Notification | POST https://your-domain/your-path |
Reservation read | POST /reservation/v1/OTA_ReadRQ |
Reservation notification
The reservation creation notification service sends a new booking.
Endpoints overview:
Action | Endpoint |
---|---|
Reservation Notification | POST https://your-domain/your-path |
Create Reservation Request XML
-
OTA_HotelResNotifRQ
requiredThe OTA_HotelResNotifRQ
-
@EchoToken
optionalA reference for additional message identification, assigned by the requesting host system.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
@ResStatus
requiredValues accepted: Book
-
POS
optionalThe point-of-sale data that allows to identify the trading partner that is sending the request or the response message.
-
Source
requiredThis holds the details about the requestor.
-
RequestorID
requiredAn identifier of the entity making the request (e.g. ATA/IATA/ID number, Electronic Reservation Service Provider (ERSP), Association of British Travel Agents.(ABTA)).
-
@Type
requiredA reference to the type of object defined by the UniqueID element. Refer to OpenTravel Code List Unique ID Type (UIT).
-
@ID
requiredA unique identifying value assigned by the creating system. The ID attribute may be used to reference a primary-key value within a database or in a particular implementation.
-
-
BookingChannel
requiredSpecifies the booking channel type and whether it is the primary means of connectivity of the source.
-
CompanyName
-
-
-
-
HotelReservations
requiredA collection of hotel reservations.
-
HotelReservation
requiredContains a hotel reservation.
-
@CreateDateTime
requiredTime stamp of the creation.
-
UniqueID
requiredUsed to provide PMS and/or CRS identifiers. An identifier used to uniquely reference an object in a system (e.g. an airline reservation reference, customer profile reference, booking confirmation number, or a reference to a previous availability quote).
-
@Type
required -
@ID
requiredReservation ID
-
RoomStays
requiredCollection of room stays. A collection of RoomStay objects. Room stays associated with this reservation.
-
RoomStay
requiredDetails on the Room Stay including Guest Counts, Time Span of this Room Stay, pointers to Res Guests, guest Memberships, Comments and Special Requests pertaining to this particular Room Stay and finally finacial information related to the Room Stay, including Guarantee, Deposit and Payment and Cancellation Penalties.
-
RatePlans
requiredA collection of Rate Plans associated with a particular Room Stay
-
RatePlan
required-
@RatePlanCode
required -
CancelPenalties
requiredCollection of cancellation penalties.
-
CancelPenalty
requiredDefines the cancellation penalty of the hotel facility.
-
@PolicyCode
requiredRefers to OC cancellation policy id.
-
-
-
MealsIncluded
requiredDefines which meals are included with this rate program.
-
@MealPlanCodes
requiredRefers to OC Meal Plan Type definition.
-
-
-
-
RoomRates
requiredA collection of Room Rates associated with a particular Room Stay. Each Room Rate combination can have multiple rates. Example King room, Rack rate plan, Monday through Thursday, weekday amount, Friday and Saturday, weekend amount.
-
RoomRate
requiredRoom Rate specific information
-
@RoomTypeCode
requiredSpecfic system room type code, ex: A1K, A1Q etc.
-
@RatePlanCode
requiredA string value may be used to request a particular code or an ID if the guest qualifies for a specific rate, such as AARP, AAA, a corporate rate, etc., or to specify a negotiated code as a result of a negotiated rate.
-
@NumberOfUnits
requiredThe number of rooms. Please note that value is always 1.
-
Rates
optionalIndividual rate amount. This rate is valid for a range of number of occupants and an occupant type.
-
Rate
requiredThe Rate contains a collection of elements that define the amount of the rate
-
RateTimeUnit
requiredIndicates the time unit for the rate.
-
EffectiveDate
requiredIndicates the starting date
-
ExpireDate
requiredIndicates the ending date
-
Base
optionalThe total amount charged for the service including additional amounts and fees.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
-
Discount
optionalDiscount percentage and/or Amount, code and textual reason for discount
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3. -
@Percent
requiredDiscount percentage
-
-
Total
optionalThe total amount charged for the service including additional amounts and fees.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
-
-
-
-
RoomRateDescription
optionalThe description or name of a room rate
-
Text
requiredProvides text and indicates whether it is formatted or not.
-
-
-
GuestCounts
requiredA collection of Guest Counts associated with Room Stay. A child Guest Count element is required for each distinct age group.A collection of GuestCount by age group.
-
GuestCount
requiredA recurring element that identifies the number of guests and ages of the guests.
-
@AgeQualifyingCode
requiredDefines minimum age range or age category of a guest. Code based on: OC Age Categories definition
-
@Count
requiredThe number of guests in one AgeQualifyingCode or Count.
-
@Age
optionalThe exact Age of the guest - e.g. 11. (ToDo - Javi) Please check for example using this in the Multi Discount request example.
-
-
Discount
optionalDiscount percentage and/or Amount, code and textual reason for discount. (ToDo - Javi)This is the sum of all discounts found in RoomRate > Rates
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3. -
@Percent
requiredDiscount percentage
-
-
TimeSpan
optionalUsed to specify a time window range by either specifying an earliest and latest date for the start date and end date or by giving a date with a time period that can be applied before and/or after the start date.
-
Start
optionalThe starting value of the time span.
-
End
optionalThe ending value of the time span.
-
-
Comments
optionalA collection of comments.
-
Comment
requiredComment details
-
Text
requiredProvides text and indicates whether it is formatted or not.
-
-
-
Total
requiredThe total amount charged for the Room Stay including additional occupant amounts and fees. If TaxInclusive is set to True, then taxes are included in the total amount.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
-
-
-
ResGuests
requiredCollection of guests associated with the reservation.
-
ResGuest
requiredThe ResGuest object contains the information about a guest associated with a reservation.
-
Profiles
requiredA collection of Profile objects or Unique IDs of Profiles.
-
ProfileInfo
requiredA collection of Profile objects or Unique IDs of Profiles.
-
Profile
requiredProvides detailed information regarding either a company or a customer profile.Root element for profile content.
-
Customer
requiredDetailed customer information for this profile.Contains basic data on the customer's identity, location, relationships, finances, memberships, etc.
-
PersonName
requiredDetailed name information for the customer.This provides name information for a person.
-
NamePrefix
optionalSalutation of honorific (e.g. Mr., Mrs., Ms., Miss, Dr.)
-
GivenName
requiredGiven name, first name or names.
-
Surname
requiredFamily name, last name. May also be used for full name if the sending system does not have the ability to separate a full name into its parts, e.g. the surname element may be used to pass the full name.
-
-
Telephone
requiredInformation on a telephone number for the customer.
-
Email
requiredInformation on an email address for the customer.
-
Address
optionalDetailed information on an address for the customer.
-
AddressLine
optionalFree form address details.
-
CityName
optionalCity (e.g., Dublin), town, or postal station (i.e., a postal service territory, often used in a military address).
-
PostalCode
optionalPost Office Code number.
-
StateProv
optionalState or Province name (e.g., Texas).State, province, or region name or code needed to identify location.
-
CountryName
optionalISO CODE for customer country
-
-
-
-
-
-
-
-
ResGlobalInfo
requiredResGlobalInfo is a container for various information that affects the Reservation as a whole. These include global comments, counts, reservation IDs and payment methods.
-
TimeSpan
requiredThe Time Span which covers the Room Stay.Used to specify a time window range by either specifying an earliest and latest date for the start date and end date or by giving a date with a time period that can be applied before and/or after the start date.
-
@Start
requiredThe starting value of the time span.
-
@End
requiredThe ending value of the time span.
-
-
Comments
optionalA collection of comments.
-
Comment
requiredComment details
-
Text
requiredProvides text and indicates whether it is formatted or not.
-
-
-
Guarantee
requiredThe guarantee information associated to the Reservation or a particular Room Stay or Service.The guarantee information to hold a reservation
-
GuaranteesAccepted
requiredGuarantee Detail.
-
PaymentCard
requiredDetails of a debit or credit card.Specific payment card information.
-
@ExpireDate
requiredIndicates the ending date.
-
CardHolderName
requiredCard holder name
-
PlainText
requiredCard holder name text
-
-
SeriesCode
requiredVerification digits. Secure information that supports PCI tokens, data masking and other encryption methods.
-
PlainText
requiredVerification digits text.
-
-
-
-
-
Total
requiredThe total amount charged for the accommodation including additional occupant amounts and fees. If TaxInclusive is set to True, then taxes are included in the total amount.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
BasicPropertyInfo
requiredProperty information for the reservation. An abbreviated short summary of hotel descriptive information.
-
@HotelCode
requiredThe code that uniquely identifies a single property.
-
-
-
-
-
Request examples
By clicking on the example name you can fold/unfold it-Basic
<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000" TimeStamp="2017-03-09T21:32:52+02:00"
EchoToken="GUID" ResStatus="Book">
<HotelReservations>
<HotelReservation CreateDateTime="2017-03-09T21:31:52+02:00">
<UniqueID Type="14" ID="123456789abcdef"/>
<RoomStays>
<RoomStay>
<RatePlans>
<RatePlan RatePlanCode="NRF">
<CancelPenalties>
<CancelPenalty PolicyCode="1" />
</CancelPenalties>
<MealsIncluded MealPlanCodes="14"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="SRSB" RatePlanCode="NRF" NumberOfUnits="1"/>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
<GuestCount AgeQualifyingCode="8" Count="2" Age="7" />
<GuestCount AgeQualifyingCode="7" Count="3" Age="1" />
</GuestCounts>
<Total AmountAfterTax="10000" CurrencyCode="EUR" DecimalPlaces="2"/>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Mike</GivenName>
<Surname>Johnson</Surname>
</PersonName>
<Telephone PhoneNumber="+34 123456789"/>
<Email>lodging.support+123456789abcdef@odigeoconnect.com</Email>
<Address>
<AddressLine>Bailén, 67</AddressLine>
<CityName>Barcelona</CityName>
<PostalCode>08009</PostalCode>
<StateProv>Barcelona</StateProv>
<CountryName>ES</CountryName>
</Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<TimeSpan Start="2017-07-17" End="2017-07-18"/>
<Guarantee>
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard ExpireDate="0320">
<CardHolderName>Mr Mike Johnson</CardHolderName>
<CardNumber>
<PlainText>4444444444444444</PlainText>
</CardNumber>
<SeriesCode>
<PlainText>333</PlainText>
</SeriesCode>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
</Guarantee>
<Total AmountAfterTax="10000" CurrencyCode="EUR" DecimalPlaces="2"/>
<BasicPropertyInfo HotelCode="PROPERTYCODE"/>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
+Multiple room stays
<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000" TimeStamp="2017-03-09T21:32:52+02:00"
EchoToken="GUID" ResStatus="Book">
<POS>
<Source>
<RequestorID Type="18" ID="Partner" />
<BookingChannel Type="2" Primary="true">
<CompanyName>Odigeo</CompanyName>
</BookingChannel>
</Source>
</POS>
<HotelReservations>
<HotelReservation CreateDateTime="2017-03-09T21:31:52+02:00">
<UniqueID Type="14" ID="123456789abcdef"/>
<RoomStays>
<RoomStay>
<RatePlans>
<RatePlan RatePlanCode="NRF">
<CancelPenalties>
<CancelPenalty PolicyCode="1"/>
</CancelPenalties>
<MealsIncluded MealPlanCodes="14"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="SRSB" RatePlanCode="NRF" NumberOfUnits="1"/>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
</GuestCounts>
<Total AmountAfterTax="10000" CurrencyCode="EUR" DecimalPlaces="2"/>
</RoomStay>
<RoomStay>
<RatePlans>
<RatePlan RatePlanCode="NRF">
<CancelPenalties>
<CancelPenalty PolicyCode="1"/>
</CancelPenalties>
<MealsIncluded MealPlanCodes="14"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="DRDT" RatePlanCode="NRF" NumberOfUnits="1"/>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
<GuestCount AgeQualifyingCode="8" Count="2" Age="7" />
<GuestCount AgeQualifyingCode="7" Count="3" Age="1" />
</GuestCounts>
<Total AmountAfterTax="20000" CurrencyCode="EUR" DecimalPlaces="2"/>
</RoomStay>
<RoomStay>
<RatePlans>
<RatePlan RatePlanCode="NRF">
<CancelPenalties>
<CancelPenalty PolicyCode="1"/>
</CancelPenalties>
<MealsIncluded MealPlanCodes="14"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="DRDT" RatePlanCode="NRF" NumberOfUnits="1"/>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="2"/>
</GuestCounts>
<Total AmountAfterTax="20000" CurrencyCode="EUR" DecimalPlaces="2"/>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Mike</GivenName>
<Surname>Johnson</Surname>
</PersonName>
<Telephone PhoneNumber="+34 123456789"/>
<Email>lodging.support+123456789abcdef@odigeoconnect.com</Email>
<Address>
<AddressLine>Bailén, 67</AddressLine>
<CityName>Barcelona</CityName>
<PostalCode>08009</PostalCode>
<StateProv>Barcelona</StateProv>
<CountryName>ES</CountryName>
</Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Yoko</GivenName>
<Surname>Ono</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Sean</GivenName>
<Surname>Taro Ono</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Baby</GivenName>
<Surname>Ono</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Ana</GivenName>
<Surname>Lopez</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Luis</GivenName>
<Surname>Perez</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<TimeSpan Start="2017-07-28" End="2017-07-30"/>
<Guarantee>
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard ExpireDate="0320">
<CardHolderName>Mr Mike Johnson</CardHolderName>
<CardNumber>
<PlainText>4444444444444444</PlainText>
</CardNumber>
<SeriesCode>
<PlainText>333</PlainText>
</SeriesCode>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
</Guarantee>
<Total AmountAfterTax="50000" CurrencyCode="EUR" DecimalPlaces="2"/>
<BasicPropertyInfo HotelCode="PROPERTYCODE"/>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
+Multi Discount
<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000" TimeStamp="2017-03-09T21:32:52+02:00"
EchoToken="GUID" ResStatus="Book">
<POS>
<Source>
<RequestorID Type="18" ID="Partner" />
<BookingChannel Type="2" Primary="true">
<CompanyName>Odigeo</CompanyName>
</BookingChannel>
</Source>
</POS>
<HotelReservations>
<HotelReservation CreateDateTime="2017-03-09T21:31:52+02:00">
<UniqueID Type="14" ID="RESERVATION_ID"/>
<RoomStays>
<RoomStay>
<RatePlans>
<RatePlan RatePlanCode="RATE1">
<CancelPenalties>
<CancelPenalty PolicyCode="1"/>
</CancelPenalties>
<MealsIncluded MealPlanCodes="14"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="ROOM1" RatePlanCode="RATE1" NumberOfUnits="1">
<Rates>
<Rate RateTimeUnit="Day" EffectiveDate="2017-11-13" ExpireDate="2017-11-14">
<Base AmountAfterTax="20000" CurrencyCode="EUR" DecimalPlaces="2"/>
<Discount AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2" Percent="5">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="19000" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
<Rate RateTimeUnit="Day" EffectiveDate="2017-11-14" ExpireDate="2017-11-15">
<Base AmountAfterTax="12500" CurrencyCode="EUR" DecimalPlaces="2"/>
<Discount AmountAfterTax="625" CurrencyCode="EUR" DecimalPlaces="2" Percent="5">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="11875" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
<Rate RateTimeUnit="Day" EffectiveDate="2017-11-15" ExpireDate="2017-11-16">
<Base AmountAfterTax="12500" CurrencyCode="EUR" DecimalPlaces="2"/>
<Discount AmountAfterTax="625" CurrencyCode="EUR" DecimalPlaces="2" Percent="5">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="11875" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
<Rate RateTimeUnit="Day" EffectiveDate="2017-11-16" ExpireDate="2017-11-17">
<Base AmountAfterTax="20000" CurrencyCode="EUR" DecimalPlaces="2"/>
<Discount AmountAfterTax="1000" CurrencyCode="EUR" DecimalPlaces="2" Percent="5">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="19000" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
</Rates>
<RoomRateDescription Name="RatePlanName">
<Text>Parent RatePlan Name</Text>
</RoomRateDescription>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="2"/>
<GuestCount AgeQualifyingCode="8" Count="1" Age="13"/>
<GuestCount AgeQualifyingCode="8" Count="2" Age="10"/>
<GuestCount AgeQualifyingCode="7" Count="1"/>
</GuestCounts>
<TimeSpan Start="2017-11-13" End="2017-11-17"/>
<Discount AmountAfterTax="3250" Percent="5" CurrencyCode="EUR" DecimalPlaces="2">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="61750" CurrencyCode="EUR" DecimalPlaces="2"/>
</RoomStay>
<RoomStay>
<RatePlans>
<RatePlan RatePlanCode="NRF">
<CancelPenalties>
<CancelPenalty PolicyCode="1"/>
</CancelPenalties>
<MealsIncluded MealPlanCodes="14"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="DRDT" RatePlanCode="NRF" NumberOfUnits="1">
<Rates>
<Rate RateTimeUnit="Day" EffectiveDate="2017-11-13" ExpireDate="2017-11-14">
<Base AmountAfterTax="13500" CurrencyCode="EUR" DecimalPlaces="2"/>
<Discount AmountAfterTax="675" CurrencyCode="EUR" DecimalPlaces="2" Percent="5">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="12825" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
<Rate RateTimeUnit="Day" EffectiveDate="2017-11-14" ExpireDate="2017-11-15">
<Base AmountAfterTax="12500" CurrencyCode="EUR" DecimalPlaces="2"/>
<Discount AmountAfterTax="625" CurrencyCode="EUR" DecimalPlaces="2" Percent="5">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="11875" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
<Rate RateTimeUnit="Day" EffectiveDate="2017-11-15" ExpireDate="2017-11-16">
<Base AmountAfterTax="12500" CurrencyCode="EUR" DecimalPlaces="2"/>
<Discount AmountAfterTax="625" CurrencyCode="EUR" DecimalPlaces="2" Percent="5">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="11875" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
<Rate RateTimeUnit="Day" EffectiveDate="2017-11-16" ExpireDate="2017-11-17">
<Base AmountAfterTax="13500" CurrencyCode="EUR" DecimalPlaces="2"/>
<Discount AmountAfterTax="675" CurrencyCode="EUR" DecimalPlaces="2" Percent="5">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="12825" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
</Rates>
<RoomRateDescription Name="RatePlanName">
<Text>Parent RatePlan Name</Text>
</RoomRateDescription>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
<GuestCount AgeQualifyingCode="8" Count="1"/>
</GuestCounts>
<TimeSpan Start="2017-11-13" End="2017-11-17"/>
<Discount AmountAfterTax="2600" Percent="5" CurrencyCode="EUR" DecimalPlaces="2">
<DiscountReason>
<Text>Discount Name</Text>
</DiscountReason>
</Discount>
<Total AmountAfterTax="49400" CurrencyCode="EUR" DecimalPlaces="2">
</Total>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<NamePrefix>Mr</NamePrefix>
<GivenName>Mike</GivenName>
<Surname>Johnson</Surname>
</PersonName>
<Telephone PhoneNumber="+34 123456789"/>
<Email>lodging.support+RESERVATION_ID@odigeoconnect.com</Email>
<Address>
<AddressLine>Bailén, 67</AddressLine>
<CityName>Barcelona</CityName>
<PostalCode>08009</PostalCode>
<StateProv>Barcelona</StateProv>
<CountryName>ES</CountryName>
</Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<NamePrefix>Ms</NamePrefix>
<GivenName>Yoko</GivenName>
<Surname>Ono</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<NamePrefix>Mr</NamePrefix>
<GivenName>Sean</GivenName>
<Surname>Taro Ono</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<NamePrefix>Mr</NamePrefix>
<GivenName>Baby</GivenName>
<Surname>Ono</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<NamePrefix>Ms</NamePrefix>
<GivenName>Anna</GivenName>
<Surname>Lopez</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<NamePrefix>Mr</NamePrefix>
<GivenName>Luis</GivenName>
<Surname>Perez</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<TimeSpan Start="2017-11-13" End="2017-11-17"/>
<Guarantee>
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard ExpireDate="0320">
<CardHolderName>Mr Mike Johnson</CardHolderName>
<CardNumber>
<PlainText>4444444444444444</PlainText>
</CardNumber>
<SeriesCode>
<PlainText>333</PlainText>
</SeriesCode>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
</Guarantee>
<Total AmountAfterTax="111150" CurrencyCode="EUR" DecimalPlaces="2"/>
<BasicPropertyInfo HotelCode="PROPERTYCODE"/>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResNotifRQ>
Response messages
We can have two types of response messages: success or error.
Create Reservation Notification Response XML
-
OTA_HotelResNotifRS
requiredThe OTA_HotelResNotifRS is the message that provides a notification about a created reservation
-
Success
optionalGives feedback about a successful operation
-
Errors
optionalGives feedback about the errors in an operation
Cannot come together with
Success
tag-
Error
optionalGives specific information about an error.
-
@Type
optionalThe Error element MUST contain the Type attribute that uses a recommended set of values to indicate the error type. The validating XSD can expect to accept values that it has NOT been explicitly coded for and process them by using Type ="Unknown". Refer to OC Error Type.
-
@Code
optionalIf present, this refers to a table of coded values exchanged between applications to identify errors. Refer to OC Code Errors.
-
@ShortText
optionalAn abbreviated version of the error in textual format.
-
-
-
Response examples
-Success
<OTA_HotelResNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000" TimeStamp="2017-03-01T09:30:47+02:00"
EchoToken="GUID">
<Success/>
</OTA_HotelResNotifRS>
+Error
<OTA_HotelResNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000" TimeStamp="2017-03-01T09:30:47+02:00"
EchoToken="GUID">
<Errors>
<Error Type="12" Code="450" ShortText="Unable to process"/>
</Errors>
</OTA_HotelResNotifRS>
Reservation read
The connected supplier should retrieve reservations, modifications and cancellations from Odigeo Connect using the OTA_ReadRQ message. Odigeo Connect will respond with a OTA_ResRetrieveRS that contain the reservations, modifications or cancellations that meet the request criteria in the read request.
Endpoints overview:
Action | Endpoint |
---|---|
Reservation read | POST /reservation/v1/OTA_ReadRQ |
OTA_ReadRQ Request XML
-
OTA_ReadRQ
requiredA generic message, available as an action on several OpenTravel services which requests a server to read and return the document type identified by the UniqueID element.
-
@EchoToken
optionalA reference for additional message identification, assigned by the requesting host system.
-
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
@MoreDataEchoToken
optionalNumber of page of the resultset
-
ReadRequests
requiredA grouping of Read Requests by travel vertical.
-
HotelReadRequest
requiredTo retrieve a hotel reservation.
-
@HotelCode
optionalThe code that uniquely identifies a single hotel property.
-
SelectionCriteria
required-
@ResStatus
requiredSpecifies the status of the reservations to be delivered. (Book, Cancel, Modify)
-
@DateType
requiredSpecifies the type of date provided in the date time span attributes.
CreateDate: The date the reservation was created.
ArrivalDate: The arrival date of the reservation.
DepartureDate: The departure date of the reservation. -
@Start
requiredThe starting value of the time span (inclusive).
-
@End
requiredThe ending value of the time span (inclusive).
-
-
-
-
Request examples
By clicking on the example name you can fold/unfold it-Basic
<OTA_ReadRQ Version="6.0" xmlns="http://www.opentravel.org/OTA/2003/05" MoreDataEchoToken="5" TimeStamp="2017-03-01T09:30:47+02:00" EchoToken="GUID">
<ReadRequests>
<HotelReadRequest HotelCode="PROPERTYCODE">
<SelectionCriteria ResStatus="Book" DateType="CreateDate" Start="2018-05-01" End="2018-05-30" />
</HotelReadRequest>
</ReadRequests>
</OTA_ReadRQ>
OTA_ResRetrieveRS Response XML
-
OTA_ResRetrieveRS
requiredThis message returns a list of reservations when an exact match on a read request could not be made or the request was to return a list of reservations meeting specified criteria.
-
@EchoToken
optional -
@TimeStamp
requiredISO 8601 encoded timestamp indicating the creation date and time of the message.
-
@Version
requiredThe OpenTravel message version indicated by a decimal value.
-
ReservationsList
optionalA container for multiple reservations.
-
HotelReservation
requiredContains a hotel reservation.
-
@CreateDateTime
requiredTime stamp of the creation.
-
UniqueID
requiredUsed to provide PMS and/or CRS identifiers. An identifier used to uniquely reference an object in a system (e.g. an airline reservation reference, customer profile reference, booking confirmation number, or a reference to a previous availability quote).
-
@Type
required -
@ID
requiredReservation ID
-
RoomStays
requiredCollection of room stays. A collection of RoomStay objects. Room stays associated with this reservation.
-
RoomStay
requiredDetails on the Room Stay including Guest Counts, Time Span of this Room Stay, pointers to Res Guests, guest Memberships, Comments and Special Requests pertaining to this particular Room Stay and finally finacial information related to the Room Stay, including Guarantee, Deposit and Payment and Cancellation Penalties.
-
RatePlans
requiredA collection of Rate Plans associated with a particular Room Stay
-
RatePlan
required-
@RatePlanCode
required -
CancelPenalties
requiredCollection of cancellation penalties.
-
CancelPenalty
requiredDefines the cancellation penalty of the hotel facility.
-
@PolicyCode
requiredRefers to OC cancellation policy id.
-
-
-
MealsIncluded
requiredDefines which meals are included with this rate program.
-
@MealPlanCodes
requiredRefers to OC Meal Plan Type definition.
-
-
-
-
RoomRates
requiredA collection of Room Rates associated with a particular Room Stay. Each Room Rate combination can have multiple rates. Example King room, Rack rate plan, Monday through Thursday, weekday amount, Friday and Saturday, weekend amount.
-
RoomRate
requiredRoom Rate specific information
-
@RoomTypeCode
requiredSpecfic system room type code, ex: A1K, A1Q etc.
-
@RatePlanCode
requiredA string value may be used to request a particular code or an ID if the guest qualifies for a specific rate, such as AARP, AAA, a corporate rate, etc., or to specify a negotiated code as a result of a negotiated rate.
-
@NumberOfUnits
requiredThe number of rooms. Please note that value is always 1.
-
Rates
optionalIndividual rate amount. This rate is valid for a range of number of occupants and an occupant type.
-
Rate
requiredThe Rate contains a collection of elements that define the amount of the rate
-
RateTimeUnit
requiredIndicates the time unit for the rate.
-
EffectiveDate
requiredIndicates the starting date
-
ExpireDate
requiredIndicates the ending date
-
Base
optionalThe total amount charged for the service including additional amounts and fees.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
-
Discount
optionalDiscount percentage and/or Amount, code and textual reason for discount
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3. -
@Percent
requiredDiscount percentage
-
-
Total
optionalThe total amount charged for the service including additional amounts and fees.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
-
-
-
-
RoomRateDescription
optionalThe description or name of a room rate
-
Text
requiredProvides text and indicates whether it is formatted or not.
-
-
-
GuestCounts
requiredA collection of Guest Counts associated with Room Stay. A child Guest Count element is required for each distinct age group.A collection of GuestCount by age group.
-
GuestCount
requiredA recurring element that identifies the number of guests and ages of the guests.
-
@AgeQualifyingCode
requiredDefines minimum age range or age category of a guest. Code based on: OC Age Categories definition
-
@Count
requiredThe number of guests in one AgeQualifyingCode or Count.
-
@Age
optionalThe exact Age of the guest - e.g. 11. (ToDo - Javi) Please check for example using this in the Multi Discount request example.
-
-
Discount
optionalDiscount percentage and/or Amount, code and textual reason for discount. (ToDo - Javi)This is the sum of all discounts found in RoomRate > Rates
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
-
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3. -
@Percent
requiredDiscount percentage
-
-
TimeSpan
optionalUsed to specify a time window range by either specifying an earliest and latest date for the start date and end date or by giving a date with a time period that can be applied before and/or after the start date.
-
Start
optionalThe starting value of the time span.
-
End
optionalThe ending value of the time span.
-
-
Comments
optionalA collection of comments.
-
Comment
requiredComment details
-
Text
requiredProvides text and indicates whether it is formatted or not.
-
-
-
Total
requiredThe total amount charged for the Room Stay including additional occupant amounts and fees. If TaxInclusive is set to True, then taxes are included in the total amount.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
-
-
-
ResGuests
requiredCollection of guests associated with the reservation.
-
ResGuest
requiredThe ResGuest object contains the information about a guest associated with a reservation.
-
Profiles
requiredA collection of Profile objects or Unique IDs of Profiles.
-
ProfileInfo
requiredA collection of Profile objects or Unique IDs of Profiles.
-
Profile
requiredProvides detailed information regarding either a company or a customer profile.Root element for profile content.
-
Customer
requiredDetailed customer information for this profile.Contains basic data on the customer's identity, location, relationships, finances, memberships, etc.
-
PersonName
requiredDetailed name information for the customer.This provides name information for a person.
-
NamePrefix
optionalSalutation of honorific (e.g. Mr., Mrs., Ms., Miss, Dr.)
-
GivenName
requiredGiven name, first name or names.
-
Surname
requiredFamily name, last name. May also be used for full name if the sending system does not have the ability to separate a full name into its parts, e.g. the surname element may be used to pass the full name.
-
-
Telephone
required (first guest), optional (others)Information on a telephone number for the customer.
-
Email
required (first guest), optional (others)Information on an email address for the customer.
-
Address
required (first guest), optional (others)Detailed information on an address for the customer.
-
AddressLine
optionalFree form address details.
-
CityName
optionalCity (e.g., Dublin), town, or postal station (i.e., a postal service territory, often used in a military address).
-
PostalCode
optionalPost Office Code number.
-
StateProv
optionalState or Province name (e.g., Texas).State, province, or region name or code needed to identify location.
-
CountryName
optionalISO CODE for customer country
-
-
-
-
-
-
-
-
ResGlobalInfo
requiredResGlobalInfo is a container for various information that affects the Reservation as a whole. These include global comments, counts, reservation IDs and payment methods.
-
TimeSpan
requiredThe Time Span which covers the Room Stay.Used to specify a time window range by either specifying an earliest and latest date for the start date and end date or by giving a date with a time period that can be applied before and/or after the start date.
-
@Start
requiredThe starting value of the time span.
-
@End
requiredThe ending value of the time span.
-
-
Comments
optionalA collection of comments.
-
Comment
requiredComment details
-
Text
requiredProvides text and indicates whether it is formatted or not.
-
-
-
Guarantee
requiredThe guarantee information associated to the Reservation or a particular Room Stay or Service.The guarantee information to hold a reservation
-
GuaranteesAccepted
optionalGuarantee Detail.
-
PaymentCard
requiredDetails of a debit or credit card.Specific payment card information.
-
@ExpireDate
requiredIndicates the ending date.
-
CardHolderName
requiredCard holder name
-
PlainText
requiredCard holder name text
-
-
SeriesCode
requiredVerification digits. Secure information that supports PCI tokens, data masking and other encryption methods.
-
PlainText
requiredVerification digits text.
-
-
-
-
-
Total
requiredThe total amount charged for the accommodation including additional occupant amounts and fees. If TaxInclusive is set to True, then taxes are included in the total amount.
-
@AmountAfterTax
requiredThe total amount including all associated taxes (e.g., sales tax, VAT, GST or any associated tax).
-
@CurrencyCode
requiredAn ISO 4217 (3) alpha character code that specifies a monetary unit.
@DecimalPlaces
requiredThe ISO 4217 standard “minor unit” for the number of decimal places for a particular currency.
Maximum value allowed is 3.
-
BasicPropertyInfo
requiredProperty information for the reservation. An abbreviated short summary of hotel descriptive information.
-
@HotelCode
requiredThe code that uniquely identifies a single property.
-
-
-
-
Response examples
By clicking on the example name you can fold/unfold it-Success
<?xml version="1.0"?>
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000" TimeStamp="2018-07-10T16:45:22+02:00"
MaxResponses="75" MoreIndicator="false" MoreDataEchoToken="2">
<Success/>
<ReservationsList>
<HotelReservation CreateDateTime="2018-06-15T16:36:04+02:00">
<UniqueID Type="14" ID="1"/>
<RoomStays>
<RoomStay>
<RatePlans>
<RatePlan RatePlanCode="NRF">
<CancelPenalties>
<CancelPenalty PolicyCode="1"/>
</CancelPenalties>
<MealsIncluded MealPlanCodes="14"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="SRSB" RatePlanCode="NRF" NumberOfUnits="1">
<Rates>
<Rate RateTimeUnit="Day" EffectiveDate="2012-03-12" ExpireDate="2012-03-13">
<Base AmountAfterTax="10000" CurrencyCode="EUR" DecimalPlaces="2"/>
<Total AmountAfterTax="20000" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
<GuestCount AgeQualifyingCode="8" Count="2"/>
<GuestCount AgeQualifyingCode="7" Count="3"/>
</GuestCounts>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Mike</GivenName>
<Surname>Johnson</Surname>
</PersonName>
<Telephone PhoneNumber="+34935500145"/>
<Email>lodging.support+1@edreamsodigeo.com</Email>
<Address>
<AddressLine>Carrer de Diputació 303</AddressLine>
<CityName>Barcelona</CityName>
<PostalCode>08009</PostalCode>
<StateProv>Barcelona</StateProv>
<CountryName>ES</CountryName>
</Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Jeff</GivenName>
<Surname>Peterson</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<TimeSpan Start="2018-06-19" End="2018-06-20"/>
<Guarantee>
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard ExpireDate="0320">
<CardHolderName>Mr Mike Johnson</CardHolderName>
<CardNumber>
<PlainText>4444444444444444</PlainText>
</CardNumber>
<SeriesCode>
<PlainText>333</PlainText>
</SeriesCode>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
</Guarantee>
<Total AmountAfterTax="10000" CurrencyCode="EUR" DecimalPlaces="2"/>
<BasicPropertyInfo HotelCode="PROPERTYCODE"/>
</ResGlobalInfo>
</HotelReservation>
<HotelReservation CreateDateTime="2018-06-15T16:36:04+02:00">
<UniqueID Type="14" ID="2"/>
<RoomStays>
<RoomStay>
<RatePlans>
<RatePlan RatePlanCode="NRF">
<CancelPenalties>
<CancelPenalty PolicyCode="1"/>
</CancelPenalties>
<MealsIncluded MealPlanCodes="14"/>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate RoomTypeCode="SRSB" RatePlanCode="NRF" NumberOfUnits="1">
<Rates>
<Rate RateTimeUnit="Day" EffectiveDate="2012-03-12" ExpireDate="2012-03-13">
<Base AmountAfterTax="10000" CurrencyCode="EUR" DecimalPlaces="2"/>
<Total AmountAfterTax="20000" CurrencyCode="EUR" DecimalPlaces="2"/>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<GuestCounts>
<GuestCount AgeQualifyingCode="10" Count="1"/>
<GuestCount AgeQualifyingCode="8" Count="2"/>
<GuestCount AgeQualifyingCode="7" Count="3"/>
</GuestCounts>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Mike</GivenName>
<Surname>Johnson</Surname>
</PersonName>
<Telephone PhoneNumber="+34935500145"/>
<Email>lodging.support+2@edreamsodigeo.com</Email>
<Address>
<AddressLine>Carrer de Diputació 303</AddressLine>
<CityName>Barcelona</CityName>
<PostalCode>08009</PostalCode>
<StateProv>Barcelona</StateProv>
<CountryName>ES</CountryName>
</Address>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Jeff</GivenName>
<Surname>Peterson</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<TimeSpan Start="2018-06-19" End="2018-06-20"/>
<Guarantee>
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard ExpireDate="0320">
<CardHolderName>Mr Mike Johnson</CardHolderName>
<CardNumber>
<PlainText>4444444444444444</PlainText>
</CardNumber>
<SeriesCode>
<PlainText>333</PlainText>
</SeriesCode>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
</Guarantee>
<Total AmountAfterTax="10000" CurrencyCode="EUR" DecimalPlaces="2"/>
<BasicPropertyInfo HotelCode="PROPERTYCODE"/>
</ResGlobalInfo>
</HotelReservation>
</ReservationsList>
</OTA_ResRetrieveRS>
-Success without results
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000" MoreIndicator="false" TimeStamp="2017-03-01T09:30:47+02:00" EchoToken="GUID">
<Success/>
</OTA_ResRetrieveRS>
+Error
<OTA_ResRetrieveRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6.000" TimeStamp="2017-03-01T09:30:47+02:00" EchoToken="GUID">
<Errors>
<Error Type="12" Code="450" ShortText="Unable to process"/>
</Errors>
</OTA_ResRetrieveRS>
Glossary
Standard terminology
Property
: A hotel, motel, inn, lodge or other accommodation facility.
RateType
: The type of rate that applies:
SELL
: Final rate sell to the public (without discounts).NET
: Net rate provided to OC.
Cancellation Policies
: The first version of the Odigeo connect API will only accept
non-ref cancellation policies.
Please use code value: 1.
Custom Types
There are a few OTA types / Odigeo Connect custom types that you will need to know in order to use the product API properly.
That are specific code/definitions that link concepts with codes.
You will find all of them described below.
Week days
We are based on OTA descriptive code abbreviations for weekdays attributes (DOW_PatternGroup).
Code | Name |
---|---|
Mon | Monday |
Tue | Tuesday |
Weds | Wednesday |
Thur | Thursday |
Fri | Friday |
Sat | Saturday |
Sun | Sunday |
Bedtypes
Odigeo Connect provides properties with a default bed type list that provides the mapping between codes, names and dimensions.
Every property will inherit a default bedtypes list which will be able to override at dimension (width/height) level.
The list of beds is based on descriptive codes for Bed Types from OTA -2016B DESCRIPTIVE CODE TABLES(BED), and specific OC values starting from 1000:
Code | Name | Width (cm) | Height (cm) |
---|---|---|---|
1 | Double | 120 | 80 |
2 | Futon | ||
3 | King | 210 | |
4 | Murphy bed | ||
5 | Queen | 150 | |
6 | Sofa bed | ||
7 | Tatami mats | ||
8 | Twin | ||
9 | Single | ||
10 | Full | ||
11 | Run of the house | ||
12 | Bed in a shared dorm | ||
13 | Water bed | ||
1000 | Hearth shaped bed | ||
1001 | Bunk bed | ||
1002 | Capsule bed | ||
1003 | Cot | ||
1004 | Air bed | ||
1005 | Twin or double | ||
1006 | Bed in a female shared dorm | ||
1007 | Bed in a male shared dorm | ||
1008 | Bed in a mixed shared dorm | ||
1009 | Folding bed |
Age Categories
We are based on OTA descriptive code for age categories from OTA -2016B DESCRIPTIVE CODE TABLES(AQC).
From the whole OTA AQC list of age codes we are only using the following:
Code | Name |
---|---|
7 | Infant |
8 | Child |
10 | Adult |
Room View
We are based on OTA descriptive code for age categories from OTA -2016B DESCRIPTIVE CODE TABLES(RVT).
Code | Name |
---|---|
1 | Airport view |
2 | Bay view |
3 | City view |
4 | Courtyard view |
5 | Golf view |
6 | Harbor view |
7 | Intercoastal view |
8 | Lake view |
9 | Marina view |
10 | Mountain view |
11 | Ocean view |
12 | Pool view |
13 | River view |
14 | Water view |
15 | Beach view |
16 | Garden view |
17 | Park view |
18 | Forest view |
19 | Rain forest view |
20 | Various views |
21 | Limited view |
22 | Slope view |
23 | Strip view |
24 | Countryside view |
25 | Sea view |
26 | Gulf view |
27 | No window |
28 | Partial sea view |
Room Amenity Type
We are based on OTA descriptive code for age categories from OTA -2016B DESCRIPTIVE CODE TABLES(RMA)
From the whole OTA RMA list of age codes we are only using the following, having custom types also (starting from 1000):
Code | Name |
---|---|
74 | Non-smoking |
85 | Private bathroom |
101 | Smoking |
193 | Shared bathroom |
1001 | Accessible to disabled guests |
1002 | Bathroom inside room |
1003 | Bathroom outside room |
1004 | Private room |
1005 | Shared room |
Unit of Measure Code
We are based on descriptive codes for Unit of Measures from OTA -2016B DESCRIPTIVE CODE TABLES(UOM)
From the whole OTA UOM list of age codes we are only using the following:
Code | Name |
---|---|
13 | Square feet |
14 | Square meters |
Meal Plan Type
We are based on OTA descriptive code for Meal Plan Type from OTA -2016B DESCRIPTIVE CODE TABLES(MPT).
Code | Name |
---|---|
1 | All inclusive |
2 | American |
3 | Bed & Breakfast |
4 | Buffet breakfast |
5 | Caribbean breakfast |
6 | Continental breakfast |
7 | English breakfast |
8 | European plan |
9 | Family plan |
10 | Full board |
11 | Full breakfast |
12 | Half board/modified American plan |
14 | Room only |
16 | Bermuda |
17 | Dinner bed and breakfast plan |
18 | Family American |
19 | Breakfast |
21 | Lunch |
22 | Dinner |
23 | Breakfast & lunch |
Unique Id Types
We are based on OTA descriptive codes for Unique Id Type from OTA -2016B DESCRIPTIVE CODE TABLES(UIT).
From them we are just using the following:
Code | Name |
---|---|
14 | Reservation |
Code Error Types
We are based on OTA descriptive code for Error Types from OTA -2016B DESCRIPTIVE CODE TABLES(EWT).
Code | Name |
---|---|
1 | Unknown |
2 | No implementation |
3 | Biz rule |
4 | Authentication |
5 | Authentication timeout |
6 | Authorization |
7 | Protocol violation |
8 | Transaction model |
9 | Authentical model |
10 | Required field missing |
11 | Advisory |
12 | Processing exception |
13 | Application error |
Code Errors
We are based on OTA descriptive 2016B ERROR CODES.
From them we are using the following subset:
Code | Name |
---|---|
15 | Invalid Date |
58 | Price Cannot Be Validated |
61 | Invalid Currency Code |
113 | Mandatory Booking Details Missing |
131 | Invalid Roomtype Code |
143 | Price Incorrect for Room |
161 | Search Criteria Invalid |
181 | Invalid Country Code |
184 | Invalid Language Code |
187 | System Currently Unavailable |
237 | Invalid Customer Number |
244 | Invalid Email Address |
249 | Invalid Rate Code |
290 | Invalid State Provice Territory |
291 | Invalid Zip Code |
303 | Unable To Complete Process Reservation |
310 | Required Last Name |
311 | Required First Name |
317 | Invalid Phone Number |
320 | Invalid Value |
321 | Required Field Missing |
356 | Invalid Status Code |
357 | Invalid City |
362 | Invalid Number Of Nights |
363 | Invalid Number Of Rooms |
367 | Invalid Format |
375 | Hotel Not Active |
381 | Invalid Check In Date |
382 | Invalid Check Out Date |
397 | Invalid Number Of Adults |
398 | Invalid Number Specified |
400 | Invalid Property Code |
401 | Invalid Rate Requested Field |
402 | Invalid Room Type |
404 | Invalid Start-End Date Combination |
409 | Maximum Length of Stay Restriction |
411 | Minimum Length of Stay Restriction |
427 | No Rooms Available Requested Dates |
448 | System Error |
450 | Unable To Process |
749 | Invalid Address Format |
883 | Price Change Detected |
Terms and Conditions
June 20, 2017
By using our Connectivity Services or API Specifications you agree to accept the Terms and Conditions and be bound by it. You shall not use any of the Services or API Specifications if you do not agree to be bound by these Terms and Conditions.
These Terms and Conditions between you and EnGrande S.L. and its affiliates (hereinafter together referred to “Odigeo Connect”) for Odigeo’s Connectivity Services and API Specifications may include other associated material that will be related to these Terms and Conditions.
Provisions of the Terms and Conditions
Built-to-obligations, Enhancements and Maintenance
-
The Odigeo Connect API Specifications can be found at the secure URL https://developers.odigeoconnect.com/api/suppliers/.
-
For the time being in the absence of an electronic login process to the Connectivity Services you must contact Odigeo Connect connectivity department and provide your personal information to get authenticated and authorized to connect to the Odigeo Connect System. Otherwise once electronic login is established you will obtain a unique user name and password to log-in electronically to Odigeo Connect Connectivity Services.
-
A Sandbox is made available by Odigeo Connect that allows you to test your developed code. Make sure that your code is compliant with the existing API Specifications. Any Connection that does not meet Odigeo Connect standards will not be allowed. The access and the development of Odigeo Connect API does not automatically guarantee the use of Odigeo Connect connectivity services.
-
You must build the System interface in accordance with Odigeo Connect specifications your connectivity must allow properties to set and update information electronically such as but not limited to product data, inventory, rates and availability restrictions via the interface and to receive bookings made on Odigeo Connect’s websites. All property information provided to you by accommodations such as but not limited to hotel, hostel, b&b appartement (hereinafter together referred to ‘accommodation’) that work with Odigeo Connect shall be provided to Odigeo.
-
You are allowed to make copies of the API Specifications for your own convenience. However, you acknowledge not to disclose, reproduce, summarize and/or distribute the API Specifications.
-
Odigeo Connect may change, enhance, suspend or discontinue the form and nature of any part of Connectivity Services or API Specifications at any time. In case of a change or other modification Odigeo Connect is not obliged but will use reasonable efforts to inform you about the implementation of such changes. You are required to use the most recent version of the API Specifications and to notify Odigeo Connect in advance before setting live any connectivity change or enhancement.
-
Your service levels you provide to Odigeo Connect in terms of i.e. response times, scheduled outages, downtime, should not be worse than to any other third party. However, you are obliged to inform Odigeo Connect immediately about any planned and unplanned outages and downtimes as soon as you are aware of them
Relationship to accommodations
Odigeo Connect has no obligation to support accommodations or make them acquainted to the Connectivity Services provided in these Terms and Conditions. It is your sole responsibility to provide help or training to accommodations you made Connectivity Services available to.
Charges
Please note that no fees will be charged by Odigeo Connect for the Services provided in these Terms and Conditions. On the other hand you are solely responsible for any and all costs and expenses you may incur in building your Connection and/or using the Connectivity Services. You are free to charge accommodations services rendered to them in relation to the Connection.
However, you acknowledge that you make available your Connection to at least the same terms and conditions you offer the connection to any other third party.
Licenses and Intellectual Property Rights
Odigeo Connect hereby grants to you under its intellectual property rights a personal, non-transferable, non-sub-licensable, non-exclusive, world-wide license to use Services and Specifications provided in these Terms and Conditions solely for internal use and not for distribution to third parties under the Terms and Conditions currently existing between the Parties.
As between the Parties, you acknowledge that Odigeo Connect owns all rights including all Intellectual Property Rights in the Content, in Access, in the Website and in any of its products and services, and that you do not acquire any right in or to the Content, Access and/or the Website, except as expressly granted in these Terms and Conditions.
Nothing in this Agreement grants to you any right in or to Odigeo Connect’s brand elements (for example, you may not use any of the other Odigeo Connect's brand elements in Google AdWords or any other form of search engine advertising, or register or attempt to register any brand element (including domain names) that is confusingly similar to the Odigeo Connect’s brand elements). All possible use of Odigeo Connect’s brand element shall inure Odigeo Connect's benefit.
Confidentiality
The Parties may receive Confidential Information from the other Party. Each Party agrees that they will not during and for 2 years after the term of the contractual relationship of the Parties disclose Confidential Information obtained from the other Party, except as legally required, and that it will reasonably protect Confidential Information received from the other Party from unauthorized use, access, or disclosure.
Indemnification
You agree that you will, at no cost to Odigeo Connect protect and defend the Odigeo Connect, hold Odigeo Connect harmless and indemnify Odigeo Connect and its officers, directors, employees and agents, against all claims, losses and damages, liabilities, costs and expenses (including reasonable legal costs), resulting or arising from or related to the misuse of the API Specification or Connectivity Services and/or a breach of these Terms and Conditions by you
Liability
Connectivity Services or API Specifications Content are provided on an "as is" and "as available" basis. Odigeo Connect excludes any liability, in particular any liability for indirect and consequential damages, including loss of profits, loss of data, business interruptions, additional costs and expenditures, and third party claims, for itself any of its directors, employees, members, representatives and other auxiliaries, resulting from any act or omission unless committed willfully or by gross negligence, regardless of the legal basis of such liability.
To the extent permitted by applicable law, any liability of Odigeo Connect for any indirect or consequential damage and for punitive or similar damages is excluded.
Nothing shall operate so as to exclude or limit the liability of either party for death or personal injury arising out of their own negligence, or for any other liability which cannot be excluded or limited by law
Term and Termination
The term of the agreed collaboration under these Terms and Condition between the Parties will commence by using the Connectivity Services or API Specifications, and continue in force until terminated by any of the Parties.
You may terminate this collaboration by discontinuing its use at any time. Without prejudice to any other rights, Odigeo Connect may cease providing Connectivity Services or API Specifications at any time and for any reason.
Upon termination for any reason, all license rights granted herein terminate, and you must immediately return to Odigeo Connect all Odigeo Connect property in your custody or control and delete other materials received as part of access, and cease to use all of Odigeo Connect's Brand Elements.
In case of termination all bookings made prior the termination remain honored and will perpetuate until made use of by the consumer
Severability
If any provision of these Terms and Conditions is held to be unenforceable, then that provision is to be construed either by modifying it to the minimum extent necessary to make it enforceable (if permitted by law) or disregarding it (if not). The rest of the Terms and Conditions is to remain in effect as written, and the unenforceable provision is to remain as written in any circumstances other than those in which it is held to be unenforceable. This applies to contractual omissions as well, intended or unintended.
Applicable law and jurisdiction
The terms and conditions are subject to the laws of Spain.
Subject to mandatory law, the exclusive place of jurisdiction for all disputes arising out of or in connection with this contractual relationship, and the place of fulfilment and the place of enforcement, is Barcelona, Spain