SiteConnect Change Log

Please check this page regularly for functionality and feature updates to SiteConnect.

Removed / Modified / Added to the specification.

Updated 6 July 2023

Minimum Length of Stay Through and Maximum Length of Stay Through

Minimum and maximum lengths of stay can be defined as a length of stay through instead of a length of stay on arrival.

OTA_HotelAvailNotifRQ Specification

Element

Number

Type

Description

OTA_HotelAvailNotifRQ

1


Root node

AvailStatusMessage /
LengthsOfStay / LengthOfStay

0..2


Optional, used for minimum and maximum length of stay

@MinMaxMessageType

1

String

Mandatory if LengthsOfStay present. Can be one of the following
SetMinLOS: Sets the minimum length of stay on arrival
SetMaxLOS: Sets the maximum length of stay on arrival
SetForwardMinStay: Sets the maximum length of stay through
SetForwardMaxStay: Sets the maximum length of stay through

For any property only either SetMinLOS and SetMaxLOS or SetForwardMinStay and SetForwardMaxStay will be used.

@Time

0..1

Integer

Mandatory if @MinMaxMessageType is ‘SetMinLOS' or 'SetForwardMinStay’: Sets the minimum or maximum number of days required for a stay.

If @MinMaxMessageType is ‘SetMaxLOS' or 'SetForwardMaxStay’: Sets the maximum number of days bookable. If no MaxLOS value is set, no @Time will be specified.

Updated  

Occupancy Based Pricing

OTA_HotelAvailRS - able to return a number of Occupants of a RoomType or Rateplan

Element

Attribute

Number

Description

OTA_HotelAvailRS


1

Root element


@TimeStamp

1

Time of the transaction in xml schema dateTime format.
Format like yyyy-MM-dd'T'HH:mm:ssZZ, (i.e '2021-03-09T20:05:52+08:00')


@Version

1

Always 1.0


@EchoToken

1

Mirror the EchoToken in the OTA_HotelAvailRQ request that your system received

OTA_HotelAvailRS / Success


0..1

Mandatory when success. Should only be present if it was a successful response.
The Errors node should not be present if the Success node is present.

OTA_HotelAvailRS / RoomStays


0..1

A collection of RoomStay elements

OTA_HotelAvailRS / RoomStays / RoomStay


1..n

Room stay details. Each RoomStay should only contain one RoomType + RatePlan combination.

OTA_HotelAvailRS / RoomStays / RoomStay / RoomTypes / RoomType


1

Each RoomStay element should contain 1 RoomType


@RoomTypeCode

1

The code identifying this room

OTA_HotelAvailRS / RoomStays / RoomStay / RoomTypes / RoomType / RoomDescription


1




@Name

1

The room name. This name should be a unique description of the room. E.g. "Deluxe Double Room 1 King size bed". The hotel will use this value to identify the room.

OTA_HotelAvailRS / RoomStays / RoomStay / RoomTypes / RoomType / RoomDescription / Text


0..1

Additional text to describe the room

OTA_HotelAvailRS / RoomStays / RoomStay / RoomTypes / RoomType / Occupancy

 

0..1

(Beta) Mandatory, if your channel is using Occupancy Based Pricing.
This element must be included in all OTA_HotelAvailRS messages for all RoomType or RoomType+RatePlan combinations.

This information will only be used once when initially enabling Occupancy Based Pricing for an established channel, after which time the customer will set/update this value. The information is used to determine the number of occupants to supply rates for. We request that you continue to include it always, even after the initial enablement.

 

@AgeQualifyingCode

1

Mandatory, if your channel is using Occupancy Based Pricing.
This attribute must be included in all RoomType or RoomType+RatePlan combinations.

Always “10” indicating the maximum adult occupancy of the room

 

@MaxOccupancy

1

Mandatory, if your channel is using Occupancy Based Pricing.

This attribute indicates the max number of occupants for the RoomType or RoomType+RatePlan combination.
This attribute must be included in all RoomType or RoomType+RatePlan combinations.

Value Range: Min 1, Max 50

OTA_HotelRateAmountNotifRQ - Examples

Element

Attribute

Number

Type 

Description

OTA_HotelRateAmountNotifRQ


1



Root node


@TimeStamp

1

DateTime

Time of the transaction


@Version

1

Decimal

Current version is 1.0


@EchoToken

1

String

Globally unique identifier for the request, this should be reflected as an EchoToken in the response

OTA_HotelRateAmountNotifRQ /
RateAmountMessages


1



Contains rates for a given hotel

   

@HotelCode

1

String

Hotel code of the property whose rate is being updated 

RateAmountMessages / RateAmountMessage


1..n



Contain details of a rate update for a time span

RateAmountMessage / StatusApplicationControl


1



Contains date and room identification information,
This element must appear once in each RateAmountMessage element. The StatusApplicationControl element is used to specify the room type, rate code and dates for which the update applies. The dates affected by the update are controlled by the mandatory @Start and @End attributes.


@InvTypeCode

1

String

Identifies the room  


@RatePlanCode

0..1

String

Identifies the rate


@Start

1

Date

The start date for which the rate is being set. This date is inclusive.


@End

1

Date

The end date for which the rate is being set. This date is inclusive.

RateAmountMessage / Rates


1





Rates / Rate


1





Rate / BaseByGuestAmts


1



Base charge for a given number of guests.

BaseByGuestAmts / BaseByGuestAmt


1..n



Contains information about the rates.


@AmountAfterTax

1

Decimal

Rate Amount after tax. Positive decimal value.


@NumberOfGuests

0..1

Integer

Number of guests in room.

Mandatory when Occupancy Based Pricing is enabled.


@AgeQualifyingCode

0..1

Integer

SiteMinder supports the following values:
10 = Adult

Mandatory when Occupancy Based Pricing is enabled.


@CurrencyCode

0..1

String

The currency of the rate. This is an optional attribute can be enabled if requested.
This feature is configured at the channel level. Once it’s enabled, the @CurrencyCode will applies to all rate messages

Rate / AdditionalGuestAmounts


0..1



Additional charges for extra guests for a given age qualifying code.

AdditionalGuestAmounts /
AdditionalGuestAmount


1..2



Mandatory if AdditionalGuestAmounts is present


@AgeQualifyingCode

1

Integer

SiteMinder supports the following values:
10 = Adult
8   = Child

Note: If Occupancy Based Pricing is enabled, the AdditionalGuestAmount for AgeQualifyingCode=’10’ is no longer included in the XML (Beta)


@Amount

1

Decimal

Extra charge amount.


@CurrencyCode

0..1

String

The currency of the extra guest amount. This is an optional attribute can be enabled if requested.
This feature is configured at the channel level. Once it’s enabled, the @CurrencyCode will applies to all rate messages

Rate / RateDescription


0..1



Description of what the rate includes.

RateDescription / Text


1

String

The inclusion text. Max Length is 255 characters.


OTA_HotelRateAmountNotifRS - Added one error Code 

Element

Attribute

Number

Type

Description

OTA_HotelRateAmountNotifRS / 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

String

Any type from the OTA code table for 'Error Warning Type (EWT)' can be used. In particular, the following types are recommended

1: Unknown
4: Authentication error (If username and password are not authenticated)
6: Authorization error (If authenticated username is not authorized to alter hotel data)
12: Processing exception


@Code

0..1

String

Any code from the OTA code table for 'Error Codes (ERR)' can be used. In particular, the following codes are important as they will inform SiteConnect of a room or hotel mapping error

402: Invalid room type
392: Invalid hotel code
783: Room or rate not found
249: Invalid rate code

397: Invalid number of adults (Beta)
(*this should be returned when an occupancy based pricing OTA_HotelRateAmountNotifRQ is sent where the total NumberOfGuests sent is either below or above the maximum adult occupancy of the room)


Updated 8 September 2020

Virtual Credit Cards

Extra information about Virtual Credit Cards can now be included with a Payment Card in a reservation.

OTA_HotelResNotifRQ

Element
Number
Type
Description
ResGlobalInfo / Guarantee /
GuaranteesAccepted / GuaranteeAccepted / 
PaymentCard
0..1
Guarantee provided with the reservation. This element is used if there is no deposit payed for the reservation.
@CardType0..1
Always 1 to indicate credit card
@CardCode1
The 2 character code of the credit card issuer. Please see the OTA Payment Card Provider Codes table for reference
@CardNumber0..1
This is actual number of the credit card used for deposit/prepayment.
@SeriesCode0..1
The SeriesCode attribute is used (Optionally) for the security number of the card. NOTE: While this attribute is supported in the reservation XML, the details of this attribute are ONLY passed through when a Channel decides to utilise the SiteConnect Reservation Email notification. SeriesCode will not be stored anywhere within SiteConnect for PCI compliance. 
@ExpireDate0..1
This is the expiry date of the credit card used for deposit/prepayment. Format MMyy.
PaymentCard / CardHolderName0..1
The name of the card holder.
PaymentCard / ThreeDomainSecurity / Results0..1

Transaction results.

IMPORTANT NOTE: SCA / 3DS details will only be passed through to hoteliers integrated with a 3DS compatible property management system. If the hotelier is not integrated with a property management system or the property management system does not support SCA, information within the 'ThreeDomainSecurity' element will not be visible in The Channel Manager.

@ThreeDSVersion1
The 3DS version used for authentication
@ECI1
Electronic Commerce Indicator. Please see Electronic Commerce Indicator Codes table for reference.
@CAVV0..1
Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)
@PAResStatus0..1
Transactions status result identifier. Please see Transactions Status Result Identifier Codes table for reference.
@SignatureVerification0..1
Transaction Signature status identifier. Please see Transaction Signature Status Codes table for reference.
@XID0..1

Transaction identifier resulting from authentication processing

When ThreeDSVersion = 1.x.x the transaction identifier MUST be provided in the @XID attribute
@Enrolled0..1
Status of Authentication eligibility. Please see Status of Authentication Codes table for reference.
@DSTransactionID0..1

Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction

When ThreeDSVersion = 2.x.x the transaction identifier MUST be provided in the @DSTransactionID attribute

PaymentCard / TPA_Extensions / VirtualCreditCard0..1
Denotes that the payment card is a virtual credit card.
@isVCC1
Must always be “true”.

@VCCActivationDate

0..1

Date

The date from when the card can be charged. Format YYYY-MM-DD.

@VCCDeactivationDate

0..1

Date

The date from when the card will no longer be chargeable. Format YYYY-MM-DD.

@VCCCurrentBalance

0..1

Decimal

The amount which can be charged to the card. If this is not included, it does not mean a 0 balance.

@VCCCurrencyCode

0..1

String

The ISO currency code of the VCCCurrentBalance. Must be included if there is @VCCCurrentBalance.

ResGlobalInfo / DepositPayments /GuaranteePayment0..1
Deposit provided with the reservation.
GuaranteePayment /
AcceptedPayments / AcceptedPayment
0..1
Deposit payment information.
AcceptedPayment / PaymentCard1
Mandatory if AcceptedPayment is sent. The card to which the deposit or prepayment is charged.
@CardType0..1
Always 1 to indicate credit card
@CardCode1
The 2 character code of the credit card issuer. Please see the OTA Payment Card Provider Codes table for reference
@CardNumber0..1
This is actual number of the credit card used for deposit/prepayment.
@SeriesCode0..1
The SeriesCode attribute is used (Optionally) for the security number of the card. NOTE: While this attribute is supported in the reservation XML, the details of this attribute are not stored or passed through to the hotel due to PCI-DSS requirements.
@ExpireDate0..1
This is the expiry date of the credit card used for deposit/prepayment. Format MMyy.
PaymentCard / CardHolderName0..1
The name of the card holder.
PaymentCard / ThreeDomainSecurity / Results0..1

Transaction results.

IMPORTANT NOTE: SCA / 3DS details will only be passed through to hoteliers integrated with a 3DS compatible property management system. If the hotelier is not integrated with a property management system or the property management system does not support SCA, information within the 'ThreeDomainSecurity' element will not be visible in The Channel Manager.

@ThreeDSVersion1
The 3DS version used for authentication
@ECI1
Electronic Commerce Indicator. Please see Electronic Commerce Indicator Codes table for reference.
@CAVV0..1
Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)
@PAResStatus0..1
Transactions status result identifier. Please see Transactions Status Result Identifier Codes table for reference.
@SignatureVerification0..1
Transaction Signature status identifier. Please see Transaction Signature Status Codes table for reference.
@XID0..1

Transaction identifier resulting from authentication processing

When ThreeDSVersion = 1.x.x the transaction identifier MUST be provided in the @XID attribute

@Enrolled0..1
Status of Authentication eligibility. Please see Status of Authentication Codes table for reference.
@DSTransactionID0..1

Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction

When ThreeDSVersion = 2.x.x the transaction identifier MUST be provided in the @DSTransactionID attribute

PaymentCard / TPA_Extensions / VirtualCreditCard

0..1


Denotes that the payment card is a virtual credit card.

@isVCC

1


Must always be “true”.

@VCCActivationDate

0..1

Date

The date from when the card can be charged. Format YYYY-MM-DD.

@VCCDeactivationDate

0..1

Date

The date from when the card will no longer be chargeable. Format YYYY-MM-DD.

@VCCCurrentBalance

0..1

Decimal

The amount which can be charged to the card. If this is not included, it does not mean a 0 balance.

@VCCCurrencyCode

0..1

String

The ISO currency code of the VCCCurrentBalance. Must be included if there is @VCCCurrentBalance.

Updated 28 August 2020

Guest Count Ages

Ages can now be included with guest counts.

OTA_HotelResNotifRQ

GuestCounts

ElementNumberTypeDescription

RoomStay / GuestCounts

1


How many guests will be staying in the room. The count is split over one or more GuestCount elements under GuestCounts, for each type of guest: adult, child or infant. At least one adult count will always be sent. Each combination of AgeQualifyingCode and Age must be unique for a RoomStay.

GuestCounts / GuestCount1..n

@AgeQualifyingCode

1

Integer

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

Integer

The actual count for this type of guest

@Age0..1Integer

Updated 06 November 2019

Credit card series codes (CVV numbers) will now be provided in the SiteConnect reservation email only. 

Guarantee and Deposit Payments

Element
Number
Type
Description
ResGlobalInfo / Guarantee /
GuaranteesAccepted / GuaranteeAccepted
PaymentCard
0..1
Guarantee provided with the reservation. This element is used if there is no deposit payed for the reservation.
@CardType0..1
Always 1 to indicate credit card
@CardCode1
The 2 character code of the credit card issuer. Please see the OTA Payment Card Provider Codes table for reference
@CardNumber0..1
This is actual number of the credit card used for deposit/prepayment.
@SeriesCode0..1
The SeriesCode attribute is used (Optionally) for the security number of the card. NOTE: While this attribute is supported in the reservation XML, the details of this attribute are ONLY passed through when a Channel decides to utilise the SiteConnect Reservation Email notification. SeriesCode will not be stored anywhere within SiteConnect for PCI compliance. 
@ExpireDate0..1
This is the expiry date of the credit card used for deposit/prepayment. Format MMyy.
PaymentCard / CardHolderName0..1
The name of the card holder.
PaymentCard / ThreeDomainSecurity / Results0..1

Transaction results.

IMPORTANT NOTE: SCA / 3DS details will only be passed through to hoteliers integrated with a 3DS compatible property management system. If the hotelier is not integrated with a property management system or the property management system does not support SCA, information within the 'ThreeDomainSecurity' element will not be visible in The Channel Manager.

@ThreeDSVersion1
The 3DS version used for authentication
@ECI1
Electronic Commerce Indicator. Please see Electronic Commerce Indicator Codes table for reference.
@CAVV0..1
Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)
@PAResStatus0..1
Transactions status result identifier. Please see Transactions Status Result Identifier Codes table for reference.
@SignatureVerification0..1
Transaction Signature status identifier. Please see Transaction Signature Status Codes table for reference.
@XID0..1
Transaction identifier resulting from authentication processing
@Enrolled0..1
Status of Authentication eligibility. Please see Status of Authentication Codes table for reference.
@DSTransactionID0..1
Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction
ResGlobalInfo / DepositPayments /GuaranteePayment0..1
Deposit provided with the reservation.
GuaranteePayment /
AcceptedPayments / AcceptedPayment
0..1
Deposit payment information.
AcceptedPayment / PaymentCard1
Mandatory if AcceptedPayment is sent. The card to which the deposit or prepayment is charged.
@CardType0..1
Always 1 to indicate credit card
@CardCode1
The 2 character code of the credit card issuer. Please see the OTA Payment Card Provider Codes table for reference
@CardNumber0..1
This is actual number of the credit card used for deposit/prepayment.
@SeriesCode0..1
The SeriesCode attribute is used (Optionally) for the security number of the card. NOTE: While this attribute is supported in the reservation XML, the details of this attribute are ONLY passed through when a Channel decides to utilise the SiteConnect Reservation Email notification. SeriesCode will not be stored anywhere within SiteConnect for PCI compliance. 
@ExpireDate0..1
This is the expiry date of the credit card used for deposit/prepayment. Format MMyy.
PaymentCard / CardHolderName0..1
The name of the card holder.
PaymentCard / ThreeDomainSecurity / Results0..1

Transaction results.

IMPORTANT NOTE: SCA / 3DS details will only be passed through to hoteliers integrated with a 3DS compatible property management system. If the hotelier is not integrated with a property management system or the property management system does not support SCA, information within the 'ThreeDomainSecurity' element will not be visible in The Channel Manager.

@ThreeDSVersion1
The 3DS version used for authentication
@ECI1
Electronic Commerce Indicator. Please see Electronic Commerce Indicator Codes table for reference.
@CAVV0..1
Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)
@PAResStatus0..1
Transactions status result identifier. Please see Transactions Status Result Identifier Codes table for reference.
@SignatureVerification0..1
Transaction Signature status identifier. Please see Transaction Signature Status Codes table for reference.
@XID0..1
Transaction identifier resulting from authentication processing
@Enrolled0..1
Status of Authentication eligibility. Please see Status of Authentication Codes table for reference.
@DSTransactionID0..1
Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction
GuaranteePayment / AmountPercent1
Mandatory if something is passed in the DepositPayment element.
@Amount1
Amount charged as deposit
@CurrencyCode1
Currency of the deposit payment

Updated 13 September 2019

Strong Customer Authentication

3DS data can now be delivered in reservations alongside payment card data.

OTA_HotelResNotifRQ

Guarantee and Deposit Payments

Element
Number
Type
Description
ResGlobalInfo / Guarantee /
GuaranteesAccepted / GuaranteeAccepted
PaymentCard
0..1
Guarantee provided with the reservation. This element is used if there is no deposit payed for the reservation.
@CardType0..1
Always 1 to indicate credit card
@CardCode1
The 2 character code of the credit card issuer. Please see the OTA Payment Card Provider Codes table for reference
@CardNumber0..1
This is actual number of the credit card used for deposit/prepayment.
@SeriesCode0..1
The SeriesCode attribute is used (Optionally) for the security number of the card. NOTE: While this attribute is supported in the reservation XML, the details of this attribute are not stored or passed through to the hotel due to PCI-DSS requirements.
@ExpireDate0..1
This is the expiry date of the credit card used for deposit/prepayment. Format MMyy.
PaymentCard / CardHolderName0..1
The name of the card holder.
PaymentCard / ThreeDomainSecurity / Results0..1

Transaction results.

IMPORTANT NOTE: SCA / 3DS details will only be passed through to hoteliers integrated with a 3DS compatible property management system. If the hotelier is not integrated with a property management system or the property management system does not support SCA, information within the 'ThreeDomainSecurity' element will not be visible in The Channel Manager.

@ThreeDSVersion1
The 3DS version used for authentication
@ECI1
Electronic Commerce Indicator. Please see Electronic Commerce Indicator Codes table for reference.
@CAVV0..1
Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)
@PAResStatus0..1
Transactions status result identifier. Please see Transactions Status Result Identifier Codes table for reference.
@SignatureVerification0..1
Transaction Signature status identifier. Please see Transaction Signature Status Codes table for reference.
@XID0..1
Transaction identifier resulting from authentication processing
@Enrolled0..1
Status of Authentication eligibility. Please see Status of Authentication Codes table for reference.
@DSTransactionID0..1
Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction
ResGlobalInfo / DepositPayments /GuaranteePayment0..1
Deposit provided with the reservation.
GuaranteePayment /
AcceptedPayments / AcceptedPayment
0..1
Deposit payment information.
AcceptedPayment / PaymentCard1
Mandatory if AcceptedPayment is sent. The card to which the deposit or prepayment is charged.
@CardType0..1
Always 1 to indicate credit card
@CardCode1
The 2 character code of the credit card issuer. Please see the OTA Payment Card Provider Codes table for reference
@CardNumber0..1
This is actual number of the credit card used for deposit/prepayment.
@SeriesCode0..1
The SeriesCode attribute is used (Optionally) for the security number of the card. NOTE: While this attribute is supported in the reservation XML, the details of this attribute are not stored or passed through to the hotel due to PCI-DSS requirements.
@ExpireDate0..1
This is the expiry date of the credit card used for deposit/prepayment. Format MMyy.
PaymentCard / CardHolderName0..1
The name of the card holder.
PaymentCard / ThreeDomainSecurity / Results0..1

Transaction results.

IMPORTANT NOTE: SCA / 3DS details will only be passed through to hoteliers integrated with a 3DS compatible property management system. If the hotelier is not integrated with a property management system or the property management system does not support SCA, information within the 'ThreeDomainSecurity' element will not be visible in The Channel Manager.

@ThreeDSVersion1
The 3DS version used for authentication
@ECI1
Electronic Commerce Indicator. Please see Electronic Commerce Indicator Codes table for reference.
@CAVV0..1
Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)
@PAResStatus0..1
Transactions status result identifier. Please see Transactions Status Result Identifier Codes table for reference.
@SignatureVerification0..1
Transaction Signature status identifier. Please see Transaction Signature Status Codes table for reference.
@XID0..1
Transaction identifier resulting from authentication processing
@Enrolled0..1
Status of Authentication eligibility. Please see Status of Authentication Codes table for reference.
@DSTransactionID0..1
Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction
GuaranteePayment / AmountPercent1
Mandatory if something is passed in the DepositPayment element.
@Amount1
Amount charged as deposit
@CurrencyCode1
Currency of the deposit payment

Updated 4 June 2019

Guest ID Document

Guest profiles (ResGuest) can now contain guest ID document details.

ElementNumberTypeDescription

Customer / Document

0..1


Detailed document information for the guest (e.g., driver license, passport, visa).

@BirthCountry

0..1


Specifies the birth country of the document holder.

@BirthPlace

0..1


Specifies the birth place of the document holder (e.g., city, state, county, province), when designating a country of birth, use BirthCountry.

@DocHolderNationality

0..1


The country code of the nationality of the document holder.

@DocID

1


Unique number assigned by authorities to document.

@DocIssueAuthority

0..1


Indicates the group or association that granted the document.

@DocIssueCountry

0..1


Country where the document was issued.

@DocIssueLocation

0..1


Indicates the location where the document was issued.

@DocIssueStateProv

0..1


State or Province where the document was issued.

@DocType

1


Indicates the type of document (e.g. Passport, Military ID, Drivers License, national ID, Vaccination Certificate). Refer to the Document Type Code List

@BirthDate

0..1


Indicates the date of birth as indicated in the document, in ISO 8601 prescribed format (YYYY-MM-DD).

@Gender

0..1

String

Identifies the gender. Possible values are "Female", "Male", or "Unknown".

@EffectiveDate

0..1

Date

Indicates the starting date, in format YYYY-MM-DD.

@ExpireDate

0..1

Date

Indicates the ending date, in format YYYY-MM-DD.

Document / DocHolderName

0..1


The name of the document holder in unformatted text (Mr. Sam Jones). If no DocHolderName is included, the guest name fields will be assumed to be the name as per passport.

Updated 26 February 2019

Corporate Profile ID

Corporate profiles in reservations can now contain a UniqueID.

CompanyInfo (Corporate)

ElementNumberTypeDescription
ResGlobalInfo / Profiles / ProfileInfo0..1

ProfileInfo / UniqueID0..1

@ID1StringCorporate identification number e.g. company code
ProfileInfo / Profile1

@ProfileType1StringAlways 3 – OTA code for a Corporate





Maximum Length of Stay

Maximum stay can now be sent with restriction updates.

OTA_HotelAvailNotifRQ Specification

Element

Number

Type

Description

OTA_HotelAvailNotifRQ

1


Root node

AvailStatusMessage /
LengthsOfStay / LengthOfStay

0..2


Optional, used for minimum and maximum length of stay

@MinMaxMessageType

1

String

Mandatory if LengthsOfStay present. Can be one of the following
SetMinLOS: Sets the minimum length of stay
SetMaxLOS: Sets the maximum length of stay

@Time

0..1

Integer

Mandatory if @MinMaxMessageType is 'SetMinLOS': Sets the minimum or maximum number of days required for a stay.

If @MinMaxMessageType is 'SetMaxLOS': Sets the maximum number of days bookable. If no MaxLOS value is set, no @Time will be specified.

Updated 3 September 2018

The Reservation API now has the ability to accept only AmountBeforeTax, instead of requiring AmountAfterTax to be always set.

HotelReservation / RoomStays / RoomStay

RoomRates

Element
Number
Type
Description

Rate / Base

1


The base amount charged for the accommodation

@CurrencyCode

1

String

CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked.

@AmountAfterTax

0..1

Decimal

The total amount after tax. At least one of AmountAfterTax or AmountBeforeTax must be set.

@AmountBeforeTax

0..1

Decimal

The total amount before tax. At least one of AmountAfterTax or AmountBeforeTax must be set.

Rate / Total

0..1


The total amount charged for this rate including additional occupant amounts and fees. If left empty and the Base amount is provided then assume the Base amount to be the Total Amount.

@CurrencyCode

1

String

CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked.

@AmountAfterTax

0..1

Decimal

The total amount after tax. At least one of AmountAfterTax or AmountBeforeTax must be set.

@AmountBeforeTax

0..1

Decimal

The total amount before tax. At least one of AmountAfterTax or AmountBeforeTax must be set.

Total

Element
Number
Type
Description
Total / Taxes0..1
Optional. Can be used for Total Pricing.
@Code0..1
The Code attribute refers to OpenTravel Alliance list FTT (fee tax type) and is used to indicate the specific tax or fee that is being transferred.

@AmountAfterTax

0..1

Decimal

The total amount after tax. At least one of AmountAfterTax or AmountBeforeTax must be set.

@AmountBeforeTax

0..1

Decimal

The total amount before tax. At least one of AmountAfterTax or AmountBeforeTax must be set.

HotelReservation / ResGlobalInfo

Total

Element
Number
Type
Description

ResGlobalInfo / Total

1


The total amount for the Reservation. This is the total amount charged for all RoomStays and any additional fees and/or charges that applies.

@CurrencyCode

1


CurrencyCode uses ISO 4217 codes to indicate the currency of the rate that is being booked.

@AmountAfterTax

0..1


The total amount after tax. At least one of AmountAfterTax or AmountBeforeTax must be set.

@AmountBeforeTax

0..1


The total amount before tax. At least one of AmountAfterTax or AmountBeforeTax must be set.

Updated 24 May 2017

We extended the Reservation API with the ability to provide Services information. Please see relevant additions to both Services and RoomStay below.

Services

ElementNumberDescription

OTA_HotelResNotifRQ / HotelReservations / HotelReservation / Services / Service


A Service object represents a non-room product provided to guests. Service products may have associated inventory and charges
@ServiceInventoryCode1

The identifier code for the service as given by the source booking channel will be provided here

Options are: event, extra, extra-bed, extra-person, meal, other, service, surcharge, tour

@ID0..1The reference id provided for a extra/service by the source booking channel (if provided)
@ServiceRPH0..1This links a Service to a RoomStay or RatePlan. The absence of a ServiceRPH indicates that this is a HotelReservation level charge
@Inclusive1This should always be TRUE because SiteConnect will report totals as inclusive of charges and extras
@Quantity1The number of units included in the charge. This value does not affect the Total amount
Service / Price / Base1Container for the Service base price
@CurrencyCode0..1The ISO currency code for the unit amount
@AmountAfterTax0..1The unit amount after tax
@AmountBeforeTax0..1The unit amount before tax
Service / Price / Base / Taxes / Tax0..1Container for the tax
@Code1The type of tax being applied to the total. Refer to the code table OTA Fee Tax Type (FTT)
@Percentage0..1Tax percentage
@Amount0..1Tax amount
Service / Price / Base / Taxes / Tax / TaxDescription / Text0..1Text description of the tax
Service / Price / Total1Container for the Service total
@CurrencyCode0..1The ISO currency code for the unit amount
@AmountAfterTax0..1The unit amount after tax
@AmountBeforeTax0..1The unit amount before tax
Service / Price /Total / Taxes / Tax0..1Container for the tax
@Code1The type of tax being applied to the total. Refer to the code table OTA Fee Tax Type (FTT)
@Percentage 0..1Tax percentage
@Amount0..1Tax amount
Service / Price / Total / Taxes / Tax / TaxDescription / Text0..1Text description of the tax
Service / Price / RateDescription / Text0..1A text description of the service/extra
Service / ServiceDetails / Timespan0..1Container for the Timespan
@Start0..1Start date of service. Format: YYYY-MM-DD
@End0..1Last date of service. Format: YYYY-MM-DD

RoomStay

ElementNumberDescription
OTA_HotelResNotifRQ / HotelReservations / HotelReservation/ RoomStays / RoomStay
A service can be linked to the RoomStay using the below element/attribute combo
ServiceRPHs / ServiceRPH0..nContainer for the ServiceRPH
@RPH1This links a Service to the Service information provided at the HotelReservation level (if applicable)
ElementNumberDescription
OTA_HotelResNotifRQ / HotelReservations / HotelReservation/ RoomStays / RoomStay / RoomRates / RoomRate
A service can be linked to the RatePlan using the below element/attribute combo
ServiceRPHs / ServiceRPH0..nContainer for the ServiceRPH
@RPH1This links a Service to the Service information provided at the HotelReservation level (if applicable)

Updated  

We extended the Reservation API with the ability to provide Company and Travel Agent information.  See spec for more details on this functionality.

Company Info

ElementNumberTypeDescription
ResGlobalInfo / Profiles / ProfileInfo / Profile0..1

@ProfileType1StringAlways 3 – OTA code for a Corporate
Profile / CompanyInfo1

CompanyInfo / CompanyName1
The company Name

CompanyInfo / TelephoneInfo

0..1



@PhoneNumber

1

String

PhoneNumber, contains the actual number as a string of max 32 character

CompanyInfo / Email

0..1


Email address

CompanyInfo / AddressInfo

0..1


Address information

AddressInfo / AddressLine

0..3


Address lines

AddressInfo / CityName

0..1


City

AddressInfo / PostalCode

0..1


Post code

AddressInfo / StateProv

0..1


State or province name

AddressInfo / CountryName

0..1



@Code1StringCountry Code (two letter ISO codes)

Travel Agent Info

ElementNumberTypeDescription
ResGlobalInfo / Profiles / ProfileInfo0..1

ProfileInfo / UniqueID0..1

@ID1StringTravel Agent identificaiton number e.g. IATA Code
ProfileInfo / Profile1

@ProfileType1StringAlways 4 – OTA code for a Travel Agent
Profile / CompanyInfo1

CompanyInfo / CompanyName1
The company Name

CompanyInfo / TelephoneInfo

0..1



@PhoneNumber

1

String

PhoneNumber, contains the actual number as a string of max 32 character

CompanyInfo / Email

0..1


Email address

CompanyInfo / AddressInfo

0..1


Address information

AddressInfo / AddressLine

0..3


Address lines

AddressInfo / CityName

0..1


City

AddressInfo / PostalCode

0..1


Post code

AddressInfo / StateProv

0..1


State or province name

AddressInfo / CountryName

0..1



@Code1StringCountry Code (two letter ISO codes)

Updated  

To better support character limitations to certain attributes in the the OTA Specifications, we've modified our 'Retrieve Rooms' API to include shorter character code within AddtionalDetails / AdditionalDetail / @Code. See spec for more details on this functionality.

Restricting Rates and/or Availability

OTA_HotelAvailRS

Element
Number
Description
AdditionalDetails0..1A collection of AdditionalDetail. Should only be included if there are additionalDetails that are to be included in the rate plan.
AdditionalDetails / AdditionalDetail

1..n

Mandatory if AdditionalDetails is used.
@Code1

One code per AdditionalDetail, the following codes are supported:

    • NO_RATES
    • NO_AVAILABILITY

Creating Reservation Only Room Rates

OTA_HotelAvailRS

Element
Number
Description
AdditionalDetails0..1A collection of AdditionalDetail. Should only be included if there are additionalDetails that are to be included in the rate plan.
AdditionalDetails / AdditionalDetail

1..n

Mandatory if AdditionalDetails is used.
@Code1

One code per AdditionalDetail, the following codes are supported:

    • NO_UPDATES


Updated  

OTA_HotelResNotifRQ

These changes are reflected now on the /wiki/spaces/APIDEV/pages/2047747 page.

RoomRate / Rates / Rate / Total is an important value as most PMS will only receive proper room rate values if this value is provided.

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

Element
Number
Description
Rate / Total0..1The total amount charged for this rate including additional occupant amounts and fees. If left empty and the Base amount is provided then assume the Base amount to be the Total Amount.



Updated  

OTA_HotelResNotifRQ

These changes are reflected now on the /wiki/spaces/APIDEV/pages/2047747 page.

PaymentCard @CardCode is now a mandatory field (if any PaymentCard details are sent) due to an issue found where the reservation will not be accepted by all PMSs if it is not included.

HotelReservations / HotelReservation / ResGlobalInfo / Guarantee / GuaranteesAccepted / GuaranteeAccepted / PaymentCard

Element
Number
Description
@CardCode


1The Card code is the 2-letter code indicative of the card. See table below for valid values.

HotelReservations / HotelReservation / ResGlobalInfo / DepositPayments / GuaranteePayment / AcceptedPayments / AcceptedPayment / PaymentCard

Element
Number
Description
@CardCode


1The Card code is the 2-letter code indicative of the card. See table below for valid values.



Released  

OTA_HotelResNotifRQ

These changes are reflected now on the /wiki/spaces/APIDEV/pages/2047747 page.

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

Element
Number
Description

Customer / CustLoyalty

0..nA list of loyalty/rewards programs for the customer
@ProgramID 0..1

The defined membership program name or ID applicable to program. e.g. Qantas

@MembershipID 0..1The account identification number for this particular member in this particular program
@ExpireDate0..1The expiry date for this particular membership record in this particular program. Format yyyy-MM-dd
...
<Customer>
	...
	<CustLoyalty ProgramID="LoyaltyProgramName" MembershipID="123456789" ExpireDate="2019-12-30">
</Customer>
...

HotelReservations / HotelReservation / ResGuests / ResGuest

Element
Number
Description

ResGuest / ArrivalTransport / TransportInfo

0..n

A list of details regarding transport to destination

@Type0..1

The type of transport the guest used for travelling to destination as provided by booking channel

@ID0..1The transport provider's ID for transportation mode the guest is using. e.g. Flight Number QF123
@Time 0..1

The transportation arrival time to destination. Format yyyy-MM-ddThh:mm:ss

ResGuest / DepartureTransport / TransportInfo0..nA list of details regarding transport from destination 
@Type0..1The type of transport the guest used for travelling from destination as provided by booking channel
@ID0..1The transport provider's ID for transportation mode the guest is using. e.g. Flight Number QF123
@Time 0..1

The transportation departure time from destination. Format yyyy-MM-ddThh:mm:ss

...
<ResGuest>
	...
	<ArrivalTransport>
 		<TransportInfo Time="2014-­01-12T14:00:00" Type="Air" ID="BA125"/>
 	</ArrivalTransport>
	<DepartureTransport>
 		<TransportInfo Time="2014-­01-16T17:00:00" Type="Air" ID="BA143"/>
 	</DepartureTransport>
</ResGuest>
...

HotelReservations / HotelReservation / RoomStays / RoomStay / RatePlans / RatePlan

Element
Number
Description

RatePlan / MealsIncluded

0..n

Used to identify the types of meals included with a rate plan

@MealPlanCodes 0..1Meal plan codes outline meal inclusions within rate plan e.g. fullBoard
...
<RatePlan>
	...
	<MealsIncluded MealPlanCodes="Full board">
</RatePlan>
...

Released  

OTA_HotelResNotifRQ

These changes are reflected now on the /wiki/spaces/APIDEV/pages/2047747 page.

HotelReservations / HotelReservation / RoomStays / ResGuest / Profiles / ProfileInfo / Profile / Customer

Element
Number
Description

Customer / NamePrefix

0..n

The title of the customer

...
<ResGuests>
        <ResGuest ResGuestRPH="1" ArrivalTime="14:00:00" PrimaryIndicator="1">
          <Profiles>
            <ProfileInfo>
              <Profile ProfileType="1">
                <Customer>
                  <PersonName>
                    <NamePrefix>Mr</NamePrefix>
                    <GivenName>John</GivenName>
                    <Surname>Smith</Surname>
...


HotelReservations / HotelReservation / ResGlobalInfo / Profiles / ProfileInfo / Profile / Customer

Element
Number
Description

Customer / NamePrefix

0..n

The title of the customer

...
 <ResGlobalInfo>
	...
        <Profiles>
          <ProfileInfo>
            <Profile>
              <Customer>
                <PersonName>
                  <NamePrefix>Mr</NamePrefix>
                  <GivenName>John</GivenName>
                  <Surname>Smith</Surname>
                </PersonName>
...