Hotel v2 - Reservation Message
This API has been deprecated.
Deprecation Date: 10/14/2022
Partners and customers using a deprecated API should contact SAP Concur and discuss moving to the latest versions.
Learn more in the API Lifecycle & Deprecation Policy.
Message to reserve a hotel.
SOAPAction |
OTA Name |
Message Structure |
book |
HotelRes |
OTA_HotelResRQ |
Request
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Header xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<authentication xmlns="http://www.concur.com/webservice/auth">
<userid>user</userid>
<password>password</password>
</authentication>
</Header>
<Body xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<OTA_HotelResRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="test_request_id" Version="6"
PrimaryLangID="de" AltLangID="de">
<POS>
<Source ISOCurrency="USD">
<RequestorID Type="1" ID="HTL011235"></RequestorID>
</Source>
</POS>
<HotelReservations>
<HotelReservation>
<RoomStays>
<RoomStay>
<RatePlans>
<RatePlan RatePlanID="ZZZZ1117">
<Guarantee GuaranteeType="CC/DC/Voucher">
<GuaranteesAccepted>
<GuaranteeAccepted>
<PaymentCard CardCode="VI" ExpireDate="1027">
<CardType Code="VI">VISA</CardType>
<CardHolderName>Jane Doe</CardHolderName>
<Address>
<StreetNmbr>600 13TH ST NE</StreetNmbr>
<CityName>WASHINGTON</CityName>
<PostalCode>20002</PostalCode>
<StateProv StateCode="DC">District of Columbia</StateProv>
<CountryName Code="US">United States of America</CountryName>
</Address>
<SeriesCode>
<PlainText>xxx</PlainText>
</SeriesCode>
</PaymentCard>
</GuaranteeAccepted>
</GuaranteesAccepted>
</Guarantee>
</RatePlan>
</RatePlans>
<TimeSpan Start="2017-01-26" End="2017-01-27"></TimeSpan>
<BasicPropertyInfo HotelCode="111222"></BasicPropertyInfo>
<Comments>
<Comment>
<Text TextFormat="PlainText">ROLLAWAY</Text>
</Comment>
<Comment>
<Text TextFormat="PlainText">FOAMPILLOWS</Text>
</Comment>
</Comments>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer Gender="Female" BirthDate="1987-05-12">
<PersonName Language="de">
<NamePrefix>MRS</NamePrefix>
<GivenName>JANE</GivenName>
<Surname>DOE</Surname>
</PersonName>
<Telephone PhoneNumber="703-555-6100"></Telephone>
<Email>jane.doe@example.com</Email>
<Address>
<AddressLine>209 Madison St Suite 400</AddressLine>
<CityName>Alexandria</CityName>
<PostalCode>22314</PostalCode>
<StateProv StateCode="VA"></StateProv>
<CountryName Code="US">United States of America</CountryName>
</Address>
<CitizenCountryName Code="US"></CitizenCountryName>
</Customer>
<CompanyInfo>
<CompanyName>SAP Concur</CompanyName>
</CompanyInfo>
</Profile>
</ProfileInfo>
</Profiles>
<GuestCounts>
<GuestCount Count="1"></GuestCount>
</GuestCounts>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<Memberships>
<Membership ProgramCode="HotelLoyaltyProgram" AccountID="1111111"></Membership>
</Memberships>
</ResGlobalInfo>
<TPA_Extensions>
<SearchSessionToken>5EA6C45E55104704E4</SearchSessionToken>
</TPA_Extensions>
</HotelReservation>
<TPA_Extensions>
<NotifyEmails>
<NotifyEmails>jane.doe@example.com</NotifyEmails>
<NotifyEmails>arranger@example.com</NotifyEmails>
<NotifyEmails>manager@example.com</NotifyEmails>
</NotifyEmails>
<CustomFields>
<CustomField Name="trip1" Value="value1t"></CustomField>
<CustomField Name="trip2" Value="value2t"></CustomField>
<CustomField Name="user1" Value="value1u"></CustomField>
<CustomField Name="user2"></CustomField>
</CustomFields>
<ThreeDSecure>
<AVV>AHDUHSUHD17817</AVV>
<TransactionID>38ce7751-9c7b-4d8b-a0bd-80024a09cd06</TransactionID>
<ThreeDSServerTransactionID>59bd1110-8268-47ca-a3fb-e40af0e51584</ThreeDSServerTransactionID>
<ECI>01</ECI>
<MessageVersion>2.1.0</MessageVersion>
</ThreeDSecure>
</TPA_Extensions>
</HotelReservations>
</OTA_HotelResRQ>
</Body>
</Envelope>
OTA_HotelResRQ
Name |
Type |
Description |
HotelReservations |
complex |
Required A collection of hotel reservations. SAP Concur will only send one (1) hotel reservation. |
HotelReservation
Name |
Type |
Description |
RoomStays |
complex |
Required A reference to identify the booking. |
ResGuests |
complex |
Required List of guests. Supported value: 1 |
ResGlobalInfo |
complex |
Contains information that affects the reservation as a whole, typically a list of reward programs (see Memberships ) or itinerary remarks (see Comments ). |
TPA_Extensions/SearchSessionToken |
stringLength1to128 |
The token obtained from Search response that links the Search results to Availability and Reservation requests. |
RoomStays
Name |
Type |
Description |
RatePlans |
complex |
Required Refer to RatePlans in Availability. |
Timespan |
complex |
Required Refer to Time-span in Availability. |
BasicPropertyInfo |
complex |
Required See Availability. |
Comments |
complex |
Comments from the user which are passed on to the hotel. |
GuestCounts
Name |
Type |
Description |
GuestCounts |
complex |
Required Please note: this field is currently being discussed with our partners as the plan to remove GuestCounts from OTA_HotelAvailRQ . A recurring element that identifies the number of guests. |
GuestCount
Name |
Type |
Description |
Count |
integer |
Required Please note: this element is planned to be removed. A recurring element that identifies the number of guests and ages of the guests. The number of guests. Supported value: 1 |
RatePlan
Name |
Type |
Description |
RatePlanID |
stringLength1to64 |
A text field used to provide a special ID code that is associated with the rate and is required in the reservation request in order to obtain the rate. |
Guarantee |
complex |
Required Refer to Guarantee in Availability. |
Guarantee
Name |
Type |
Description |
GuaranteeType |
stringLength1to32 |
Required CC/DC/Voucher will be sent if credit card present, None otherwise. |
GuaranteesAccepted |
complex |
Required Guarantee and payment information. |
GuaranteesAccepted
Name |
Type |
Description |
Default |
boolean |
This is to indicate that the information in the model is the default (e.g. if PaymentCard information is completed then this would be considered the default if the boolean is true ). |
NoCardHolderInfoReqInd |
boolean |
If true , no credit card holder information is required. If false , it is required. |
NameReqInd |
boolean |
If true , the credit card holder name is required. If false , it is not required. |
AddressReqInd |
boolean |
If true , credit card holder address is required. If false , it is not required. |
PhoneReqInd |
boolean |
If true , credit card holder phone number is required. If false , it is not required. |
InterbankNbrReqInd |
boolean |
If true , the credit card interbank number is required. If false , it is not required. |
PaymentCard |
complex |
Required Specific payment card information. |
PaymentCard
Name |
Type |
Description |
CardCode |
upperCaseAlphaLength1to2 |
Issuer code. Example: AX , CA , DC , DS , JC , VI . Map to AMEX, Mastercard, Diners Club, Discover, JCB, Visa |
ExpireDate |
MMYYDate |
Indicates the ending date. |
CardType |
stringLength1to32 |
Required Payment card type. Example: MasterCard |
CardHolderName |
stringLength1to32 |
Required Card holder name. |
CardNumber |
complex |
Required The card number. |
Address |
complex |
Required Refer to Address in Search. |
SeriesCode |
complex |
Verification digits. |
SeriesCode
Name |
Type |
Description |
PlainText |
stringLength1to32 |
Required CVV number. Only one (1) element of this type is sent. |
Name |
Type |
Description |
Comment |
complex |
Required SAP Concur will send one Text element per Comment element. |
Name |
Type |
Description |
Text |
string |
Required Text representing the comment. |
Text
Name |
Type |
Description |
TextFormat |
stringLength1to32 |
Required Supported value: Plain text |
ResGuest
Name |
Type |
Description |
Profiles |
complex |
Required List of Profiles. SAP Concur will only send one (1) profile. |
Profile
Name |
Type |
Description |
Customer |
complex |
Required Element to describer a customer. |
CompanyInfo |
complex |
Element to capture the company name. |
Customer
Name |
Type |
Description |
Gender |
string |
Gender. Supported values: Male , Female , Unknown , Male_NoShare , Female_NoShare |
BirthDate |
date |
Customer’s birthday. |
PersonName |
complex |
Element representing a customer’s name. |
Telephone |
complex |
Element representing a telephone number. |
Email |
stringLength1to128 |
Email address. |
Address |
complex |
Refer to Address in Search. |
CitizenCountryName |
complex |
ISO 3166 representation of the user’s country as defined in their SAP Concur Profile. |
PersonName
Name |
Type |
Description |
NamePrefix |
stringLength1to16 |
Salutation of honorific. List subject to change. Example values: Mr , Mrs , Ms , Miss , Dr , Rev , Sir , Lord , Lady , Dr Mr , Dr Mrs , Dr Ms , Prof Mr , Prof Mrs , Prof Ms , Prof Dr Mr , Prof Dr Mrs , Prof Dr Ms . Note: Prefixes can be specified in any of the languages supported by Concur Travel. |
GivenName |
stringLength1to64 |
Given name, first name or names. |
Surname |
stringLength1to64 |
Required Family 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. Example: the surname element may be used to pass the full name. |
Telephone
Name |
Type |
Description |
PhoneNumber |
stringLength1to32 |
Required A string representing a customer’s phone number. |
CitizenCountryName
Name |
Type |
Description |
Code |
stringLength1to32 |
Required ISO 3166 country code. |
CompanyInfo
Name |
Type |
Description |
CompanyName |
stringLength1to32 |
Required A string representing a customer’s company. |
ResGlobalInfo
Note: This structure is used in both request and response. Different elements are used in each of them.
Name |
Type |
Description |
Memberships |
complex |
Request Only A collection of memberships. Provides a list of reward programs. Example: loyalty cards |
Comments |
complex |
Response Only A collection of comments. Provides a list of arbitrary reservation comments. Example: modification code |
BasicPropertyInfo |
complex |
See Availability. |
Memberships
Name |
Type |
Description |
Membership |
complex |
A recurring element that identifies the type of reservation comment. |
Membership
Name |
Type |
Description |
ProgramCode |
stringLength1to32 |
Required Always HotelLoyaltyProgram for hotels |
AccountID |
stringLength1to64 |
Required The account identification number for this particular member in this particular program. |
Name |
Type |
Description |
Comment |
complex |
A recurring element that carries reservation comment. Maximum elements: 9 |
Name |
Type |
Description |
Name |
stringLength1to64 |
Attribute containing comment title. |
Text |
string |
Required Comment payload. Up to 3 Text elements in the comment. Up to 200 characters in the text. |
TPA Extensions
Name |
Type |
Description |
NotifyEmails |
complex |
Email address which can be used by the vendor to contact the customer. |
CustomFields |
complex |
A reference to identify the booking. |
ThreeDSecure |
complex |
3D Secure Strong Customer Authentication payment verification parameters. |
NotifyEmails
Name |
Type |
Description |
NotifyEmails |
stringLength1to128 |
Required There will be one (1) NotifyEmails element per email address in the configuration. |
CustomFields
Name |
Type |
Description |
CustomField |
complex |
Required A custom field in the form of a key-value pair. |
CustomField
Name |
Type |
Description |
Name |
string |
Required Name of the custom field. |
Value |
string |
Value of the custom field. |
ThreeDSecure
Name |
Type |
Description |
AVV |
string |
Required For 3DS1, this is the CAVV. For 3DS2, this is the AVV. |
CAVVAlgorithm |
stringLength1to8 |
Identifies the algorithm used to generate the CAVV for 3DS1. |
MessageVersion |
stringLength1to32 |
Required 3D Secure version |
TransactionID |
string |
Required Unique transaction identifier assigned by the 3DS Server to identify a single transaction. |
ThreeDSServerTransactionID |
string |
For 3DS1, this identifies the XID. For 3DS2, this identifies the dsTransactionID. |
ECI |
stringLength1to8 |
Required Electronic Commerce Indicator |
ExemptionCode |
stringLength1to8 |
Identifies SCA exemption type |
Response
The maximum allowed size of OTA_HotelResRS
is 150 KB. Any response that exceeds this limit shall be dropped.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
<soap:Body>
<OTA_HotelResRS xmlns="http://www.opentravel.org/OTA/2003/05" Version="6" ResResponseType="Reserved">
<Success/>
<HotelReservations>
<HotelReservation>
<UniqueID Type="14" ID="88618333"/>
<UniqueID Type="1000" ID="12345"/>
<RoomStays>
<RoomStay>
<RatePlans>
<RatePlan RatePlanID="EZ57LL7">
<CancelPenalties>
<CancelPenalty NoCancelInd="true">
<Deadline AbsoluteDeadline="2017-01-26T18:00"/>
<PenaltyDescription>
<Text>test cancel policy 1</Text>
<Text>test cancel policy 2</Text>
<Text>test cancel policy 3</Text>
</PenaltyDescription>
</CancelPenalty>
</CancelPenalty>
</CancelPenalties>
</RatePlan>
</RatePlans>
<RoomRates>
<RoomRate>
<Rates>
<Rate>
<Total AmountAfterTax="185.00" AmountBeforeTax="85.00" CurrencyCode="EUR"/>
</Rate>
</Rates>
</RoomRate>
</RoomRates>
<TimeSpan End="2017-01-27" Start="2017-01-26"/>
<BasicPropertyInfo HotelCode="50709" HotelName="Alexander Plaza">
<Address>
<AddressLine>Rosenstr. 1</AddressLine>
<CityName>Berlin</CityName>
<CountryName Code="DE">Federal Republic of Germany</CountryName>
<StateProv StateCode="BE">Berlin District</StateProv>
<PostalCode>BE123</PostalCode>
</Address>
<ContactNumbers>
<ContactNumber PhoneNumber="1111111112" PhoneTechType="1"/>
</ContactNumbers>
</BasicPropertyInfo>
</RoomStay>
</RoomStays>
<ResGuests>
<ResGuest>
<Profiles>
<ProfileInfo>
<Profile>
<Customer>
<PersonName>
<GivenName>Jane</GivenName>
<Surname>Doe</Surname>
</PersonName>
</Customer>
</Profile>
</ProfileInfo>
</Profiles>
</ResGuest>
</ResGuests>
<ResGlobalInfo>
<Comments>
<Comment Name="First Comment">
<Text>First line of first comment</Text>
<Text>Second line of first comment</Text>
</Comment>
<Comment>
<Text>Second comment without name</Text>
</Comment>
</Comments>
</ResGlobalInfo>
</HotelReservation>
</HotelReservations>
</OTA_HotelResRS>
</soap:Body>
</soap:Envelope>
OTA_HotelResRS
Name |
Type |
Description |
ResResponseType |
stringLength1to32 |
Required See the list of possible values. |
HotelReservations |
complex |
Required SAP Concur only supports one (1) reservation. All extra reservations will be ignored. |
ResResponseType
Value |
Description |
Cancelled |
The item is cancelled. |
Committed |
The item is reserved. |
Unsuccessful |
- |
Reserved |
The item is reserved. |
HotelReservations
Name |
Type |
Description |
HotelReservation |
complex |
Required A reference to identify the booking. |
HotelReservation
Name |
Type |
Description |
UniqueID |
complex |
Required A reference to identify the booking. Maximum occurrences: 2 |
RoomStays |
complex |
Required A collection of details on the room stay including time span of this room stay, and financial information related to the room stay, including guarantee, deposit, payment, and cancellation penalties. |
UniqueID
Name |
Type |
Description |
ID |
stringLength1to32 |
Required A reference to identify the booking. |
Type |
stringLength1to32 |
Required A reference to identify the type of UniqueID . See Type. |
Type - Possible Values
Value |
Description |
14 |
Reservation ID used in subsequent calls (Itinerary , Cancel ). |
15 |
Cancellation number, displayed in UI, proof of cancellation. |
40 |
Hotel Reservation System Confirmation number (for future use). |
1000 |
Cancellation/modification code. This will be rendered on itinerary page and can be used to change the reservation outside of the SAP Concur system. SAP Concur-specific OTA extension. |
RoomStays
Name |
Type |
Description |
RoomStay |
complex |
Required Details on the room stay including time span of this room stay, pointers to res guests, comments and special requests pertaining to this particular room stay. Financial information related to the room stay, including guarantee, deposit, payment, and cancellation penalties. |
RoomStay
Name |
Type |
Description |
RatePlans |
complex |
Required A collection of rate plans associated with a particular room stay. |
Timespan |
complex |
Required Refer to TimeSpan in Availability. |
BasicPropertyInfo |
complex |
Required See Availability. |
RatePlan
Name |
Type |
Description |
CancelPenalties |
complex |
Refer to CancelPenalties in Availability. |
RoomRates
Name |
Type |
Description |
RoomRate |
complex |
Required RoomRate used for reservation. SAP Concur only expects one (1) RoomRate . |
RoomRate
Name |
Type |
Description |
Rates |
complex |
Required SAP Concur only expects one (1) Rates . |
Rates
Name |
Type |
Description |
Rate |
complex |
Required Contains the payment policy for the given room. SAP Concur only expects one (1) Rate . |
Rate
Name |
Type |
Description |
Total |
complex |
Required A description of the rate. Refer to Total in Availability. |