Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

UlysesCloud will request undelivered Reservation from ChannelManager using OTA_ReadRQ message. Channel Manager will respond with a OTA_ResRetrieveRS that contain the reservations.

...

Code Block
languagexml
<OTA_ResRetrieveRS EchoToken="3301a089-7abf-4543-87df-bdb8f0ee37ca" TimeStamp="2021-04-20T14:23:26Z" Version="1.0" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
	<Success/>
	<ReservationsList>
		<HotelReservation ResStatus="Book" CreateDateTime="2021-04-20T14:22:33Z">
			<POS>
				<Source>
					<RequestorID Type="22" ID="SITEMINDERCHANNEL_MANAGER"/>
					<BookingChannel Type="7" Primary="true">
						<CompanyName Code="BDC">Booking.com</CompanyName>
					</BookingChannel>
				</Source>
			</POS>
			<UniqueID Type="14" ID="BDC-36909627"/>
			<UniqueID Type="16" ID_Context="MESSAGE_UNIQUE_ID" ID="x1aphaap8exx0cbk"/>
			<RoomStays>
				<RoomStay>
					<RoomTypes>
						<RoomType RoomType="Single Room" RoomTypeCode="TWN">
							<RoomDescription>
								<Text>This air-conditioned room features a small kitchenette</Text>
							</RoomDescription>
						</RoomType>
					</RoomTypes>
					<RatePlans>
						<RatePlan RatePlanCode="RO|1000|ST10" EffectiveDate="2021-04-23" ExpireDate="2021-04-26"/>
					</RatePlans>
					<RoomRates>
						<RoomRate RoomTypeCode="TWN" NumberOfUnits="1" RatePlanCode="RO|1000|ST10">
							<Rates>
								<Rate RateTimeUnit="Day" UnitMultiplier="1" EffectiveDate="2021-04-23" ExpireDate="2021-04-24">
									<Total AmountAfterTax="110.00" CurrencyCode="USD"/>
								</Rate>
								<Rate RateTimeUnit="Day" UnitMultiplier="1" EffectiveDate="2021-04-24" ExpireDate="2021-04-25">
									<Total AmountAfterTax="80.00" CurrencyCode="USD"/>
								</Rate>
								<Rate RateTimeUnit="Day" UnitMultiplier="1" EffectiveDate="2021-04-25" ExpireDate="2021-04-26">
									<Total AmountAfterTax="80.00" CurrencyCode="USD"/>
								</Rate>
							</Rates>
						</RoomRate>
					</RoomRates>
					<GuestCounts>
						<GuestCount AgeQualifyingCode="10" Count="1"/>
					</GuestCounts>
					<TimeSpan Start="2021-04-23" End="2021-04-26"/>
					<Total AmountAfterTax="270.00" CurrencyCode="USD"/>
					<BasicPropertyInfo HotelCode="UlysesCloud1063"/>
					<ResGuestRPHs>
						<ResGuestRPH RPH="1"/>
					</ResGuestRPHs>
					<Comments>
						<Comment>
							<Text>smoking preference Non-Smoking</Text>
						</Comment>
					</Comments>
				</RoomStay>
			</RoomStays>
			<Services>
				<Service ServiceRPH="1" ServiceInventoryCode="e_michstar" Inclusive="true" Quantity="2">
					<Price>
						<Total AmountBeforeTax="0.00" AmountAfterTax="566.00" CurrencyCode="EUR"/>
						<RateDescription>
							<Text>Service: 2xSan Sebastián, City of Michelin Stars. (e_michstar)</Text>
						</RateDescription>
					</Price>
					<ServiceDetails>
						<TimeSpan Start="2020-07-15" End="2020-07-16"/>
					</ServiceDetails>
				</Service>
			</Services>
			<ResGuests>
				<ResGuest ResGuestRPH="1">
					<Profiles>
						<ProfileInfo>
							<Profile ProfileType="1">
								<Customer>
									<PersonName>
										<GivenName>Fiona</GivenName>
										<Surname>Brown</Surname>
									</PersonName>
									<Telephone PhoneNumber="1111111111"/>
									<Address>
										<AddressLine>88 Cumberland St</AddressLine>
										<CityName>Sydney</CityName>
										<PostalCode>2000</PostalCode>
										<CountryName>AU</CountryName>
									</Address>
								</Customer>
							</Profile>
						</ProfileInfo>
					</Profiles>
				</ResGuest>
				<ResGuest ResGuestRPH="2" PrimaryIndicator="true">
					<Profiles>
						<ProfileInfo>
							<Profile ProfileType="1">
								<Customer>
									<PersonName>
										<GivenName>James</GivenName>
										<Surname>McDonald</Surname>
									</PersonName>
									<Telephone PhoneNumber="1111111111"/>
									<Address>
										<AddressLine>88 Cumberland St</AddressLine>
										<CityName>Sydney</CityName>
										<PostalCode>2000</PostalCode>
										<CountryName>AU</CountryName>
									</Address>
								</Customer>
							</Profile>
						</ProfileInfo>
					</Profiles>
				</ResGuest>
			</ResGuests>
			<ResGlobalInfo>
				<DepositPayments>
					<GuaranteePayment>
						<AmountPercent TaxInclusive="true" Amount="1184.00" CurrencyCode="EUR"/>
					</GuaranteePayment>
				</DepositPayments>
				<Guarantee>
					<GuaranteesAccepted>
						<GuaranteeAccepted>
							<PaymentCard CardType="1" CardCode="MC" CardNumber="555555TQAQKT4444" ExpireDate="0820">
								<CardHolderName>J McDonald</CardHolderName>
							</PaymentCard>
						</GuaranteeAccepted>
					</GuaranteesAccepted>
				</Guarantee>
				<Total AmountAfterTax="625.00" CurrencyCode="USD"/>
				<HotelReservationIDs>
					<HotelReservationID ResID_Type="14" ResID_Value="36909627"/>
				</HotelReservationIDs>
				<Profiles>
					<ProfileInfo>
						<Profile ProfileType="1">
							<Customer>
								<PersonName>
									<GivenName>James</GivenName>
									<Surname>McDonald</Surname>
								</PersonName>
								<Telephone PhoneNumber="1111111111"/>
								<Address>
									<AddressLine>88 Cumberland St</AddressLine>
									<CityName>Sydney</CityName>
									<PostalCode>2000</PostalCode>
									<CountryName>AU</CountryName>
								</Address>
							</Customer>
						</Profile>
					</ProfileInfo>
				</Profiles>
			</ResGlobalInfo>
		</HotelReservation>
	</ReservationsList>
</OTA_ResRetrieveRS>

...

Element

Number

Description

OTA_ResRetrieveRS

1

Main element

@EchoToken

1

Return the EchoToken from the request message

@Version

1

Current Version 1

@TimeStamp

1

Time of the transaction in xml schema dateTime format

OTA_ResRetrieveRS / Success

0 - 1

Should only be present if the request processed successfully. The Errors node will not be present if the Success node is present

OTA_ResRetrieveRS / Errors

0 - 1

Contains a list of errors if the request failed to process

Errors / Error

1 - n

Should be at least one node if there is an Errors Node

@Type

1

Mandatory if Error present.
Any type from the OTA code table for 'Error Warning Type (EWT)' can be used

@Code

0 - 1

Any code from the OTA code table for 'Error Codes (ERR)' can be used

OTA_ResRetrieveRS / ReservationsList

0 - 1

ReservationList is only present if there are HotelReservation elements

ReservationsList / HotelReservation

1 - n

List of reservations

@CreateDateTime

1

This is the date when the reservation was first made. Mandatory if ResStatus is "Book

@LastModifyDateTime

0 - 1

This indicates the last date and time when the reservation was last modified. Mandatory if ResStatus is "Modify" or "Cancel"

@ResStatus

1

Status is "Book", "Modify" or "Cancel"

HotelReservation / UniqueID

2

The reservation reference in ChannelManager.

The first UniqueID element will contain the unique identifier for the entire reservation. This identifier will identify the reservation through any subsequent modifications or cancellations.

The second UniqueID element with ID_Context="MESSAGE_UNIQUE_ID" is the unique id for this message. This identifier should be used to confirm the message once processed

@Type

1

Value '14' is the unique id for the reservation in ChannelManager. Value '16' is the unique id for the message transferring the reservation.

@ID

1

Identifier of the reservation according to ChannelManager. Note, this is NOT the reservation id according to the upstream system. This is located in the HotelReservationID element.

@ID_Context

0 - 1

Only present for the second UniqueID element and when present it will always be "MESSAGE_UNIQUE_ID"

HotelReservation / POS

1

Point of sale

POS / Source

1

Source of the reservation

Source / RequestorID

1

This identifies the system which is sending the reservation. This element will only appear in the first Source element.

@Type

1

Fixed at 22 (ESRP)

@ID

1

Value is your ChannelManager Name

Source / BookingChannel

1

Contains booking channel information

@Primary

1

Indicates the primary booking source

@Type

1

Always '7' for 'Internet'.

BookingChannel / CompanyName

1

Name of the Booking Channel.

@Code

1

Channel Manager code to identify the Booking Channel.

HotelReservation / RoomStays / RoomStay

0 - n

One instance of RoomStay per room booked.
A RoomStay element will always exist if ResStatus is "Book" or "Modify".
If ResStatus is "Cancel" it is possible that no RoomStay element exists. 

See RoomStay

Reservation / ResGuests / ResGuest

0 - n

One instance of ResGuest per reservation guests. This guest information is dependent on the sometimes limited information retrieved from the booking agents. ResGuests might not always be directly linkable to the RoomStays. Either all ResGuests are linked to RoomStays or none are.

See ResGuest

HotelReservation / Services / Service

0 - n

A list of service fees and extra charges linked to the HotelReservation

See Service

HotelReservation / ResGlobalInfo

1

Contains general information about the Reservation

See ResGlobalInfo

RoomStay

Element

Number

Description

RoomStay / RoomTypes / RoomType

0 - 1

Container for room information. There will only ever be one RoomType per RoomStay

@RoomType

0 - 1

The name of the RoomType as provided by source channel

@RoomTypeCode

0 - 1

Room code, identifier for the room

RoomType / RoomDescription / Text

0 - 1

A text description of the room

RoomStay / RatePlans

0 - 1

Container for rate information

RatePlans / RatePlan

0 - n

Contains information for the Rate Plan used for the RoomStay

@RatePlanCode

0 - 1

Rate code, identifier for the rate plan

@RatePlanName

0 - 1

Name of the rate plan as provided the source channel

@EffectiveDate

1

The effective date of the RatePlan

@ExpireDate

1

The expire date for a RatePlan, this should be considered an exclusive date, the date for which the current rate plan information is no longer valid.

RatePlan / RateDescription / Text

0 - 1

A text description of the rate

RoomStay / RoomRates / RoomRate

1 - n

Multiple RoomRates per RoomStay. Multiple rates are listed under each RoomRate. This can happen when there is a single room booked but more than one rate plan applies during the stay

@RoomTypeCode

1

The code of the room booked

@NumberOfUnits

1

Always 1. Each room will be listed in it's own RoomStay element

@RatePlanCode

1

This is the rate booked for the room type code listed in the RoomTypeCode attribute.

RoomRate / Rates

0 - 1

Container for the daily rate breakdown information

Rates / Rate

1 - n

The Rate element contains a timespan with daily rate information. The dates covered in the Rates will cover all the dates in the RoomStay/TimeSpan element

@EffectiveDate

1

The starting date of the rate in the form yyyy-MM-dd. This date is inclusive.

@ExpireDate

1

ExpireDate is the first day after the applicable period. Format yyyy-MM-dd. This date is exclusive.

@RateTimeUnit

1

Always "Day"

@UnitMultiplier

1

The total number of nights covered by the price

Rate / Base

0 - 1

Specifies the base per-day rate for the room. This is the gross amount charged for the room, not including any discounts or extra charges

@CurrencyCode

0 - 1

The ISO currency code for the total

@AmountAfterTax

0 - 1

The total amount after tax

@AmountBeforeTax

0 - 1

The total amount before tax

Taxes

0 - 1

The total tax amount for the TotalType

@Amount

0 - 1

The total tax amount

Rate / Total

0 - 1

The total amount charged for the Rate. Will be equal to the Base amount with the extras and discounts applied. Note that the Total is gross, in other words the FULL amount charged for the per date rate as provided by the source channel.

@CurrencyCode

0 - 1

The ISO currency code for the total

@AmountAfterTax

0 - 1

The total amount after tax

@AmountBeforeTax

0 - 1

The total amount before tax

Taxes

0 - 1

The total tax amount for the TotalType

@Amount

0 - 1

The total tax amount

RoomRate / ServiceRPHs / ServiceRPH

0 - n

Contains links to any service or extra charges for the rate

@RPH

1 - n

Links a Service/@ServiceRPHA to this RoomRate

RoomStay / GuestCounts / GuestCount

0 - n

The guest count specifies a part of the occupancy

@AgeQualifyingCode

1

Specifies the guest type for this GuestCount - uses OTA Spec for identifiers, will be one of three values
10 - Adult
8 - Child
7 - Infant

@Count

1

Number of guests

RoomStay / TimeSpan

1

Contains the timespan which this RoomStay covers

@Start

1

Check in date

@End

1

Check out date

RoomStay / Total

0 - 1

The total amount of the RoomStay. Will add up to the sum of Rate / Total*NumberOfUnits. If no Rate / Total is present, will be the sum of Rate / Base*NumberOfUnits plus any additional costs, such as fees/services etc. IE The total cost for the RoomStay.

@CurrencyCode

0 - 1

The ISO currency code for the total

@AmountAfterTax

0 - 1

The total amount after tax

@AmountBeforeTax

0 - 1

The total amount before tax

Taxes

0 - 1

The total tax amount for the TotalType

@Amount

0 - 1

The total tax amount

RoomStay / BasicPropertyInfo

0 - 1

Holds information about the Hotelier which this reservation is for.

@HotelCode

1

The Channel Managerhotel identifier

RoomStay / ServiceRPHs / ServiceRPH

0 - n

Contains links to any service or extra charges for the room

@RPH

1

Links a Service/@ServiceRPHA to this RoomStay

RoomStay / ResGuestRPHs / ResGuestRPH

0 - n

Used to link guests from the ResGuests list to the RoomStay

@RPH

1

Links a ResGuest/@ResGuestRPH to this RoomStay

RoomStay / Comments / Comment / Text

0 - 1

RoomStay comments

...

Element

Number

Description

@ResGuestRPH

0 - 1

This value links the ResGuest to RoomStay(s) where possible. You can find the links in RoomStay / ResGuestRPHs. 

@ArrivalTime

0..1

The arrival time of the guest in the form HH:mm:ss.

@PrimaryIndicator

0..1

When true indicates this is the primary guest

ResGuest / Profiles

1

Contains the guest profile information

See Profiles

ResGuest / Comments / Comment

0 - 1

Container for extra information about the guest

@Name

0 - 1

Identifier for the comment

Comment / Text

1

Text for the guest extra information

...

Element

Number

Description

HotelReservationIDs / HotelReservationID

1

Reference number/string or PNR as supplied by the Booking agent will be supplied here

@ResID_Type

1

Always ‘14’
14: OTA code for 'Travel Agent PNR'. If this type is used the @ResID_Value will be the reservation identifier as provided by the source booking channel.

@ResID_Value

1

Reference number/string supplied by the Booking agent

Total

0 - 1

The total amount for the Reservation. Will add up to the sum of the RoomStay totals PLUS any additional fees sent by the BookingAgent.

@CurrencyCode

0 - 1

The ISO currency code for the total

@AmountAfterTax

0 - 1

The total amount after tax

@AmountBeforeTax

0 - 1

The total amount before tax

Profiles

0 - 1

This is a listing of Profiles associated with the reservation that are not Guests. This includes Customers, Travel Agents and Travel Arrangers. The Customer is the contact person for the Reservation. If the customer is also a guest, they will also be included in the ResGuest profile.

See Profile

DepositPayments

0 - 1

Contains the deposit information

DepositPayments / GuaranteePayment / AmountPercent

1

@Amount

0 - 1

The deposit as a currency amount. At least @Amount or @Percent will be populated.

@CurrencyCode

0 - 1

This is the ISO currency code of the deposit. Mandatory if @Amount exists.

@Percent

0 - 1

This is the percentage of the Total charge for the deposit (rounded to 3 decimal places). If the the Total.amountAfterTax is provided, it will be a percentage of this value. If only the amountBeforeTax is provided it will be the percentage of this value. At least @Amount or @Percent will be populated.

@TaxInclusive

0 - 1

Indicates if tax is included in @Amount

Guarantee

0 - 1

Guarantee information

Guarantee / GuaranteesAccepted / GuaranteeAccepted / PaymentCard

0 - 1

Contains payment card information

@CardCode

0..1

The 2 character code of the credit card issuer. Please see the OTA Payment Card Provider Codes table for reference

@CardType

0 - 1

The type of payment card, refer to the OTA Card Type code table for reference. Common usages are:

1: Credit
2: Debit

@CardNumber

0 - 1

The number embossed on the payment card

@ExpireDate

0 - 1

This is the expiry date of the payment card used in the format MMyy

PaymentCard / CardHolderName

0 - 1

This is the name of the card holder.

...