> For the complete documentation index, see [llms.txt](https://developer.rategain.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.rategain.com/ultradirect/ultradirect-transaction-sets-xml/booking-transactions/booking-request-message-format.md).

# Booking request message format

<table data-header-hidden><thead><tr><th valign="top">Element Path</th><th>Attribute</th><th>Occ</th><th>Type</th><th>Notes</th></tr></thead><tbody><tr><td valign="top"><p> </p><p>HotelML/Head/Process</p></td><td> </td><td><p> </p><p>1</p></td><td> </td><td> </td></tr><tr><td valign="top"> </td><td><p> </p><p>DataPath</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Char</p></td><td><p> </p><p>Set to "/HotelML/Form/BookReservation”</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>Function</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Char</p></td><td><p> </p><p>Set to “TI_BookReservationV1_1”</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>Token</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Char</p></td><td><p> </p><p>Unique ID for the transaction generated by the system sending the transaction.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Head/Route</p></td><td> </td><td><p> </p><p>1</p></td><td> </td><td> </td></tr><tr><td valign="top"> </td><td><p> </p><p>Source</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Char 2-3</p></td><td><p> </p><p>Identifies the organization sending the transaction. The value to use will be provided during the implementation project.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>Destination</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Char 2</p></td><td><p> </p><p>Always set to “00” (i.e. zero zero).</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation</p></td><td> </td><td> </td><td> </td><td> </td></tr><tr><td valign="top"> </td><td><p> </p><p>  VersionCompliance</p></td><td><p> </p><p>  0..1</p></td><td><p> </p><p>  Enum</p></td><td><p> </p><p>Must be set to “EnhancedBook_V1” for enhanced booking functionality.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>GuaranteeType</p></td><td><p> </p><p>0..1</p></td><td><p> </p><p>Enum.</p></td><td><p> </p><p>Indicates whether this is a guarantee, deposit or prepayment. Normally bookings are guaranteed.</p><p> </p><p>Values are: “Guarantee”, “Deposit” and “PrePay”.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>GuaranteeMethod</p></td><td><p> </p><p>0..1</p></td><td><p> </p><p>Enum.</p></td><td><p> </p><p>Normally bookings are guaranteed by credit card, although other methods may be used if configured by the hotel chain.</p><p> </p><p>Values are: “CreditCard”, “Account”, “Agency”, “Company”, “CashOrCheck”, “DirectBill”, “Other”.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>InDate</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Date</p></td><td><p> </p><p>Arrival date</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>OutDate</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Date</p></td><td><p> </p><p>Departure date</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>PropertyCode</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Char 10</p></td><td><p> </p><p>Chain and property code – e.g. “UI;12345”</p></td></tr></tbody></table>

<br>

&#x20;

&#x20;

&#x20;

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top"> </td><td valign="top"><p> </p><p>RatePlanCode</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 10</p></td><td valign="top"><p> </p><p>Rate plan code (as returned in the availability response)</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>RatePlanType</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Enum.</p></td><td valign="top"><p> </p><p>Rate plan type. Not normally required. Values are:</p><p> </p><p>BusinessStandard, Consortium, Convention, Corporate, Credential, FreqAuto, FreqGuest, FreqFlyer, Government, IATA,Inclusive, Negotiated, Package, Privileged, PseudoCity, SearchQualifier</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>RoomRate</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Decimal</p></td><td valign="top"><p> </p><p>The ‘bookable room rate’, as returned in the availability response</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>CurrencyCode</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 3</p></td><td valign="top"><p> </p><p>The currency of the room rate</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>RateOverride</p></td><td valign="top"><p> </p><p>  0..1</p></td><td valign="top"><p> </p><p>  Boolean</p></td><td valign="top"><p> </p><p>Set to “true” to request that the room rate provided in the booking message overrides the rate defined in the supplier’s system.   As this is a request, the supplier can choose whether or not to override the rate.  The demand partner must therefore get prior agreement from the supplier to use this rate override feature.  </p><p> </p><p>Rate information must be provided in the request message in order to override the rates in the supplier’s system.  At a minimum, the RoomRate must be included and calculated as the average daily rate before tax.   However, it is recommended that as much rate information as possible should be included in the request - i.e. total rate inclusive of taxes, and daily rates.</p><p> </p><p>This attribute was added in UltraDirect version 1.2.2 but can be used with the standard version of the booking transaction (i.e. without the VersionCompliance attribute) or the newer ‘enhanced booking’ version added in version 1.2 (i.e. with VersionCompliance attribute set to “EnhancedBook_V1”).  However, it is recommended that the ‘enhanced booking version’ is used when overriding rates because it allows more detailed rate information to be included in the request message.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>RoomTypeCode</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 10</p></td><td valign="top"><p> </p><p>Room type code, as returned in the availability response</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Session</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Enum</p></td><td valign="top"><p> </p><p>Set to “New” if using active session control (i.e. booking will not be confirmed until committed using the SessionControl message). Otherwise omit the attribute.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>  TotalRateInclusive</p></td><td valign="top"><p> </p><p>  0..1</p></td><td valign="top"><p> </p><p>  Decimal</p></td><td valign="top"><p> </p><p>The sum of nightly rates and taxes for the stay. Mutually exclusive withTotalRateInclusiveCharges.</p><p> </p><p>  This attribute is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>  TotalRateInclusiveCharges</p></td><td valign="top"><p> </p><p>  0..1</p></td><td valign="top"><p> </p><p>  Decimal</p></td><td valign="top"><p> </p><p>Total room rate inclusive of all known taxes, fees and any extra charges.</p><p> </p><p>  This attribute is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request.</p></td><td></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/ Locale</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"> </td><td valign="top"><p> </p><p>This is used to request the response in a specific language.</p><p> </p><p>Note: It can only be included if requesting a language other than English.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Language</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 2</p></td><td valign="top"><p> </p><p>Language code – e.g. “FR”</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Country</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char</p></td><td valign="top"><p> </p><p>Optional country name – e.g. “France”.</p></td><td></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/ AgentInfo</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"> </td><td valign="top"><p> </p><p>Travel agent identifier. This is normally required for the hotel to pay commission. It may also be required to access non-public rates.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Number</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 8</p></td><td valign="top"><p> </p><p>Travel agent identifier – often the IATA number.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Type</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Enum.</p></td><td valign="top"><p> </p><p>Identifies the type of travel agent number. Values are: “ARC”, “IATA”, “TIDS”, “CLIA”, “AAA”,  “GDS”, “Other”.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>CityCode</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 3</p></td><td valign="top"><p> </p><p>Originating Agent’s City. Not normally required.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>CountryCode</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 2</p></td><td valign="top"><p> </p><p>Originating Agent’s Country Code (ISO Standard Codes). Not normally required.</p></td><td></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation</p><p>CreditCard</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"> </td><td valign="top"><p> </p><p>Details of the credit card used for guarantee, deposit or prepayment.</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>TypeIdentifier</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 2</p></td><td valign="top"><p> </p><p>Type of credit card – e.g. “VI” (Visa), “AX” (American Express) etc</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Number</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 21</p></td><td valign="top"><p> </p><p>Credit card number</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>CVMNumber</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 3-4</p></td><td valign="top"><p> </p><p>Three or four digit credit card security code</p></td><td></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>ExpirationDate</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>YYMM</p></td><td valign="top"><p> </p><p>Credit card expiry date</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>IssuedName</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Full credit card holder’s name, as printed on the card</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>  Email</p></td><td valign="top"><p> </p><p>  0..1</p></td><td valign="top"><p> </p><p>  Char 128</p></td><td valign="top"><p> </p><p>  Email address of the cardholder (which may be different from the guest)</p><p> </p><p>  This attribute is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>  Channel</p></td><td valign="top"><p> </p><p>  0..1</p></td><td valign="top"><p> </p><p>  Enum</p></td><td valign="top"><p> </p><p>  Channel used to make the booking:</p><p>  Valid values are “MailOrder”, “Telephone”, Ecommerce”, “FaceToFace”</p><p> </p><p>  This attribute is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>  CollectionMethod</p></td><td valign="top"><p> </p><p>  0..1</p></td><td valign="top"><p> </p><p>  Enum</p></td><td valign="top"><p> </p><p>  The method used to capture the credit card number.  Valid values are “KeyedIn”, “OnFile”, “CardReader”</p><p> </p><p>  This attribute is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"> IsVCC</td><td valign="top"> 0..1</td><td valign="top"> Bookean</td><td valign="top"> Specified whether this is a Virtual Credit Card (i.e. single-use)<br><br>(*Only Applicable for “Enhanced_V2”)</td><td> </td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation</p><p>/CreditCard/PostalAddress</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0,,1</p></td><td valign="top"> </td><td valign="top"><p> </p><p>This only needs to be supplied of the credit card billing address is different from the guest’s address</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>City</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 50</p></td><td valign="top"><p> </p><p>City name</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>CountryCode</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 2</p></td><td valign="top"><p> </p><p>Country code</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Line1</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Address line 1</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Line2</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Address line 2</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Line3</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Address line 3</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Line4</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Address line 4</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>PostalCode</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 15</p></td><td valign="top"><p> </p><p>Postal code/ Zip code</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>StateCode</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 2</p></td><td valign="top"><p> </p><p>State / Province code</p></td><td> </td></tr><tr><td valign="top">  CreditCard/ ThreeDomainSecurity</td><td valign="top"> </td><td valign="top">  0..1</td><td valign="top"> </td><td valign="top"><p>  This element is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  Protocol Version</td><td valign="top">  0..1</td><td valign="top">  Char 3</td><td valign="top">  3DS Program Protocol version<br>  No dots between numbers - e.g. 020 is version 2.0</td><td> </td></tr><tr><td valign="top"><p>  CreditCard/ ThreeDomainSecurity/</p><p>  Gateway</p></td><td valign="top"> </td><td valign="top">  0..1</td><td valign="top"> </td><td valign="top"><p>  This element is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  ECI</td><td valign="top">  0..1</td><td valign="top">  Char 2</td><td valign="top"><p>  Electronic Commerce Indicator.  Indicates the security level associated</p><p>  with an Internet purchase transaction<br><br>Values 00 to 09</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  Merchant Name</td><td valign="top">  0..1</td><td valign="top">  Char 40</td><td valign="top">  Name of the merchant completing the 3DS transaction</td><td> </td></tr><tr><td valign="top"><p>  CreditCard/ ThreeDomainSecurity/</p><p>  Results</p></td><td valign="top"> </td><td valign="top">  0..1</td><td valign="top"> </td><td valign="top"><p>  This element is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  CAVV</td><td valign="top">  0..1</td><td valign="top">  Char 28</td><td valign="top"><p>  Cardholder Authentication Verification Value Information retrieved</p><p>  from the 3DS provider when authentication is successful<br><br>Length 28 characters. A 20-byte value that has been Base64 encoded, giving a 28-byte result</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  XID</td><td valign="top">  0..1</td><td valign="top">Char 28</td><td valign="top">  Transaction identifier for a 3DS Version 1 provider<br><br>  Length 28 characters (Base 64 or HEX)</td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  TransactionID</td><td valign="top">  0..1</td><td valign="top">  Char 36</td><td valign="top">  Transaction identifier for a 3DS Version 2 provider<br><br>  May contain special characters</td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  PAResStatus</td><td valign="top">  0..1</td><td valign="top">  Enum.</td><td valign="top"><p>  Payer Authentication Result Status when using 3DS credit card security<br><br>  This value will be required to communicate to the authorizing party</p><p>  when authentication could not be completed for reasons other than</p><p>  Authentication Outage<br><br>  Values:<br>  "Y" (Authentication Successful)<br>  "N" (Authentication Failed)<br>  "U" (Authentication Unavailable)</p></td><td> </td></tr><tr><td valign="top"><p>  HotelML/Form/ BookReservation/</p><p>  CreditCard/ThreeDomainSecurity/</p><p>  Exemption</p></td><td valign="top"> </td><td valign="top">  0..1</td><td valign="top"> </td><td valign="top"><p>  This element is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  Reason</td><td valign="top">  1</td><td valign="top">E  num.</td><td valign="top"><p>  The reason for the 3DS exemption:<br>  Valid values are "RiskAnalysis"</p><p>  "TrustedBeneficiary"</p><p>  "LowValue"</p><p>  "SecureCorporate"</p><p>  "DelegatedAuthentication"</p><p>  "AuthenticationOutage"</p></td><td> </td></tr><tr><td valign="top"><p>  HotelML/Form/ BookReservation/</p><p>  CreditCard/ThreeDomainSecurity/</p><p>  MIT_Mandate</p></td><td valign="top"> </td><td valign="top">  0..1</td><td valign="top"> </td><td valign="top"><p>  This is used if the cardholder has authorized a merchant initiated</p><p>  transaction.</p><p> </p><p>  This element is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  Type</td><td valign="top">  0..1</td><td valign="top">  Enum.</td><td valign="top">  Merchant Initiated Transaction mandate:<br>  Valid values are "None"<br>  "NoShowFee"<br>  "CancelFee"<br>  "PostCheckInCharges"<br>  "PrePayment"<br>  "BalancePayment"<br>  "RecurringChargeFixedDate"<br>  "RecurringChargeVariableDate"</td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  Amount</td><td valign="top">  0..1</td><td valign="top">  Num(15)</td><td valign="top">  Maximum amount mandated for Merchant Initiated Transaction</td><td> </td></tr><tr><td valign="top"> </td><td valign="top">  Currency</td><td valign="top">  0..1</td><td valign="top">  Char 3</td><td valign="top"><p>  Currency associated with the amount.  Must be present if Amount</p><p>  provided.</p></td><td> </td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/Extra</p><p>Bed</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..3</p></td><td valign="top"> </td><td valign="top"><p> </p><p>This is used to request rollaway beds or cots/cribs. The element can occur up to three times - once for each type of extra bed – as defined by the Type attribute.</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Type</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Enum</p></td><td valign="top"><p> </p><p>Type of extra bed required. Valid values are:</p><p> </p><p>AdultRollAway, ChildRollAway, Crib</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Number</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Integer</p></td><td valign="top"><p> </p><p>The number of beds of this type</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Charge</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Decimal</p></td><td valign="top"><p> </p><p>Optional charge for extra bed</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Currency</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 3</p></td><td valign="top"><p> </p><p>Currency code for charge</p></td><td> </td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation</p><p>FlightInfo</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"> </td><td valign="top"><p> </p><p>Optional details of the arrival flight</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>AirportCode</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 3</p></td><td valign="top"><p> </p><p>Arrival airport code</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Number</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char</p></td><td valign="top"><p> </p><p>Flight number</p></td><td> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Time</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Date/ Time</p></td><td valign="top"><p> </p><p>Arrival time</p></td><td> </td></tr></tbody></table>

&#x20;

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/Guest</p></td><td valign="top"> </td><td valign="top"><p> </p><p>1..M</p></td><td valign="top"> </td><td valign="top"><p> </p><p>Guest details. Normally just the details of the primary guest are included in the booking request, although details of all guests are permitted.</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>FirstName</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char</p></td><td valign="top"><p> </p><p>Guest’s first name or initials. Total length of Title + FirstName + LastName + MiddleName + Suffix must not exceed 95 characters,</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>LastName</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char</p></td><td valign="top"><p> </p><p>Guest’s last name</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>MiddleName</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char</p></td><td valign="top"><p> </p><p>Guest’s middle name or initial (optional)</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>NumberOfAdults</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Integer</p></td><td valign="top"><p> </p><p>Number of adults staying per room. Normally at least one adult is required per room.</p><p>This attribute is deprecated.  Should use GuestCount element instead.</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>NumberOfChildren</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Integer</p></td><td valign="top"><p> </p><p>Number of children staying per room</p><p>This attribute is deprecated.  Should use GuestCount element instead.</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>NumberOfRooms</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Integer</p></td><td valign="top"><p> </p><p>Number of rooms (of the specified type and rate) to be booked.</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Primary</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Boolean</p></td><td valign="top"><p> </p><p>Indicates whether the Guest element if for the primary guest. One and only one Guest element must have Primary=”true”</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Remarks</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 256</p></td><td valign="top"><p> </p><p>Free format comment text</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>ServiceRequest</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 189</p></td><td valign="top"><p> </p><p>Free format special request text</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Suffix</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char</p></td><td valign="top"><p> </p><p>Guest name suffix</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Title</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char</p></td><td valign="top"><p> </p><p>Guest name title</p></td></tr><tr><td valign="top"><p>  HotelML/Form/BookReservation/Guest/</p><p>  GuestCount</p></td><td valign="top"> </td><td valign="top">1..M</td><td valign="top"> </td><td valign="top"><p>This element specifies the type of guest “Adult” or “Child”, and (optionally the age of the child).</p><p> </p><p>GuestCount must occur once (and only once) per Guest.</p><p> </p><p> </p><p>  It should be used instead of the NumberOfAdults and NumberOfChildren</p><p>  attributes of BookReservation/Guest because it allows the age of each child to</p><p>be specified.</p><p> </p><p>  This element is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request.</p></td></tr><tr><td valign="top"> </td><td valign="top">  Type</td><td valign="top">  1</td><td valign="top">  Enum</td><td valign="top">  Values “Adult” or “Child”</td></tr><tr><td valign="top"> </td><td valign="top">  Age</td><td valign="top">  0..1</td><td valign="top">  Integer</td><td valign="top">  The optional age of the guest.  Only applicable when Type=”Child”</td></tr><tr><td valign="top"> </td><td valign="top">  Count</td><td valign="top">  1</td><td valign="top">  Integer</td><td valign="top">  Number of guests of this type</td></tr><tr><td valign="top"><p>HotelML/Form/BookReservation</p><p>/Guest/ExtraPerson</p></td><td valign="top"> </td><td valign="top">  1..2</td><td valign="top"> </td><td valign="top"><p>  Only associated to BookReservation/Guest segment where Primary = true.</p><p> </p><p>  This element is an enhanced booking feature, and VersionCompliance must</p><p>  be set to “EnhancedBook_V1” for this to be used in the request.</p></td></tr><tr><td valign="top"> </td><td valign="top">  Type</td><td valign="top">  1</td><td valign="top">  Enum.</td><td valign="top">  Values “Adult” and “Child”</td></tr><tr><td valign="top"> </td><td valign="top">  Number</td><td valign="top">  1</td><td valign="top">  Integer</td><td valign="top">  Number of Extra person(s) by type</td></tr><tr><td valign="top"> </td><td valign="top">  Charge</td><td valign="top">  0..1</td><td valign="top">  Decimal</td><td valign="top">  This value should be the same as ExtraBed Charge</td></tr><tr><td valign="top"> </td><td valign="top">  Currency</td><td valign="top">  0..1</td><td valign="top">  Char 3</td><td valign="top">  This value should be the same as ExtraBed Currency</td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation</p><p>/Guest/AutoInfo</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..M</p></td><td valign="top"> </td><td valign="top"> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Code</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 25</p></td><td valign="top"><p> </p><p>Auto frequent traveler ID. Not normally used.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/ Guest/CorpInfo</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"> </td><td valign="top"> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Code</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 25</p></td><td valign="top"><p> </p><p>Corporate Customer ID. Only used if booking a corporate rate.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/ Guest/Email</p></td><td valign="top"> </td><td valign="top"><p> </p><p>1</p></td><td valign="top"> </td><td valign="top"> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Address</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 128</p></td><td valign="top"><p> </p><p>Guest’s email address is required when making a reservation.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/ Guest/FlyerInfo</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..M</p></td><td valign="top"> </td><td valign="top"> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Code</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 25</p></td><td valign="top"><p> </p><p>Frequent flyer number. Not normally used.</p></td></tr></tbody></table>

&#x20;

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/ Guest/FreqGuest</p></td><td valign="top"> </td><td valign="top"><p> </p><p>0..M</p></td><td valign="top"> </td><td valign="top"> </td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Code</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 25</p></td><td valign="top"><p> </p><p>Frequent guest number. Not normally used.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/ Guest/Phone</p></td><td valign="top"> </td><td valign="top"><p> </p><p>1..M</p></td><td valign="top"> </td><td valign="top"><p> </p><p>Guest’s telephone number(s). At least one is required.</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Number</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 20</p></td><td valign="top"><p> </p><p>Telephone number</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Type</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Enum</p></td><td valign="top"><p> </p><p>Type of telephone number,</p><p> </p><p>Most common values in this context are: “Home”, “Business”, “Mobile”, “FAX”</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/BookReservation/Guest/PostalAddress</p></td><td valign="top"> </td><td valign="top"><p> </p><p>1..M</p></td><td valign="top"> </td><td valign="top"><p> </p><p>Guest’s address details</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>City</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 50</p></td><td valign="top"><p> </p><p>City name</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>CountryCode</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 2</p></td><td valign="top"><p> </p><p>Country code</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Line1</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Address line 1</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Line2</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Address line 2</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Line3</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Address line 3</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Line4</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 99</p></td><td valign="top"><p> </p><p>Address line 4</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>PostalCode</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 15</p></td><td valign="top"><p> </p><p>Postal code/ Zip code</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>StateCode</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 2</p></td><td valign="top"><p> </p><p>State / Province code</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>Type</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Enum</p></td><td valign="top"><p> </p><p>Values “Home”, “Agent”, and “Business”</p></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.rategain.com/ultradirect/ultradirect-transaction-sets-xml/booking-transactions/booking-request-message-format.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
