> 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/pre-book/request-message-format.md).

# 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/PreBook”</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_PreBookV1_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/PreBook/Property</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>PropertyCode</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Char</p></td><td><p> </p><p>Chain and property code, separated by a semi-colon – e.g. “UI;AB1234”</p></td></tr><tr><td valign="top"> </td><td>Context</td><td>0..1</td><td>Char</td><td> </td></tr><tr><td valign="top"> </td><td>CityCode</td><td>0..1</td><td>Char</td><td>Prioperty’s city code.  Not normally required.<br><br>(*Only Applicable for “Enhanced_V2”)</td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/PreBook/ Property/Locale</p></td><td> </td><td><p> </p><p>0..1</p></td><td> </td><td><p> </p><p>This is used to request the response in a specific language.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>Language</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Char 2</p></td><td><p> </p><p>Language code – e.g. “FR”</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>Country</p></td><td><p> </p><p>0..1</p></td><td><p> </p><p>Char</p></td><td><p> </p><p>Optional country name – e.g. “France”.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/PreBook/ RateCriteria</p></td><td> </td><td><p> </p><p>1</p></td><td> </td><td><p> </p><p>Specifies rate selection criteria.</p></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 “PreBook_V1”</p><p> </p></td></tr><tr><td valign="top"> </td><td><p> </p><p>NumberOfRooms</p></td><td><p> </p><p>1</p></td><td><p> </p><p>Integer</p></td><td><p> </p><p>Total number of rooms required, which is used when checking availability. The prices in the response will be per room.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>NumberOfBeds</p></td><td><p> </p><p>0..1</p></td><td><p> </p><p>Integer</p></td><td><p> </p><p>Preferred number of beds per room</p></td></tr><tr><td valign="top"> </td><td>TotalRate</td><td>0..1</td><td>Decimal</td><td>Expected total rate excluding taxes and fees</td></tr><tr><td valign="top"> </td><td>TotalRateInclusive</td><td>0..1</td><td>Decimal</td><td>Expected total rate including taxes and fees</td></tr><tr><td valign="top"> </td><td>RatePlanCode</td><td>0..1</td><td>Char</td><td>Rate plan for the rate being checked.  Will be the same as the rate plan code returned in the availability response</td></tr><tr><td valign="top"> </td><td>RateCodeContext</td><td>0..1</td><td>Char</td><td> </td></tr><tr><td valign="top"> </td><td>RoomCode</td><td>0..1</td><td>Char</td><td>Rate plan for the rate being checked.  Will be the same as the rate plan code returned in the availability response</td></tr><tr><td valign="top"> </td><td>RoomCodeContext</td><td>0..1</td><td>Char</td><td> </td></tr><tr><td valign="top"><p> </p><p>  HotelML/Form/PreBook/</p><p>  RateCriteria/GuestCount</p></td><td> </td><td><p> </p><p>0..M</p></td><td> </td><td><p> </p><p>This element specifies the number of adults and children (optionally including child counts by age).</p><p> </p><p>GuestCount must occur once (and only once) with Type=”Adult”.</p><p> </p><p>It can also occur once with Type=”Child” if no Age attribute is supplied. Alternatively, it can multiple times for Type=”Child” when an Age attribute is specified.</p><p> </p><p>  It should be used instead of the NumberOfAdults and NumberOfChildren</p><p>  attributes of PropertyRate because it allows the age of each child to be</p><p>  specified.</p><p> </p><p>  This element is an enhanced rate rule feature, and VersionCompliance must</p><p>  be set to “Enhanced_V1” for this to be used in the request.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>  Type</p></td><td><p> </p><p>  1</p></td><td><p> </p><p>  Enum</p></td><td><p> </p><p>  Values “Adult” or “Child”</p><p> </p><p>  This attribute is an enhanced rate rule feature, and VersionCompliance must</p><p>  be set to “Enhanced_V1” for this to be used in the request.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>  Count</p></td><td><p> </p><p>  1</p></td><td><p> </p><p>  Integer</p></td><td><p> </p><p>  Number of guests of this type</p><p> </p><p>  This attribute is an enhanced rate rule feature, and VersionCompliance must</p><p>  be set to “Enhanced_V1” for this to be used in the request.</p></td></tr><tr><td valign="top"> </td><td><p> </p><p>  Age</p></td><td><p> </p><p>  0..1</p></td><td><p> </p><p>  Integer</p></td><td><p> </p><p>  The optional age of the guest. Only applicable when Type=”Child”.</p><p> </p><p>  This attribute is an enhanced rate rule feature, and VersionCompliance must</p><p>  be set to “Enhanced_V1” for this to be used in the request.</p></td></tr><tr><td valign="top">HotelML/Form/PreBook/ RateCriteria/ExtraBed</td><td> </td><td>  0..2</td><td> </td><td><p>  This element is an enhanced rate rule feature, and VersionCompliance must</p><p>  be set to “Enhanced_V1” for this to be used in the request.</p></td></tr><tr><td valign="top"> </td><td>  Number</td><td>  0..2</td><td>  Integer</td><td><p>  Number of extra beds</p><p> </p><p>  This attribute is an enhanced rate rule feature, and VersionCompliance must</p><p>  be set to “Enhanced_V1” for this to be used in the request.</p></td></tr><tr><td valign="top"> </td><td>  Type</td><td>  0..2</td><td>  Enum</td><td><p>Type of extra bed required. Valid values are:</p><p>  AdultRollAway, ChildRollAway, Crib</p><p> </p><p>  This attribute is an enhanced rate rule feature, and VersionCompliance must</p><p>  be set to “Enhanced_V1” for this to be used in the request.</p></td></tr></tbody></table>

<br>

&#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></tr></thead><tbody><tr><td valign="top"><p> </p><p>HotelML/Form/PreBook/ RateCriteria/AgentInfo</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>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></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 identifier. Values are: “ARC” , “IATA”, “TIDS”, “CLIA”, “AAA”, “GDS”, “Other”.</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>City</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></tr><tr><td valign="top"> </td><td valign="top">PseudoCityCode</td><td valign="top">0..1</td><td valign="top">Char 1-6</td><td valign="top">Agent’s Pseudo City Code.  Not normally required.<br><br>(*Only Applicable for “Enhanced_V2”)</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 2</p></td><td valign="top"><p> </p><p>Originating Agent’s Country Code (ISO Standard Codes). Not normally required.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/PreBook/RateCriteria/ DateRange</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>InDate</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Date</p></td><td valign="top"><p> </p><p>The arrival date in format “2011-12-24”</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>OutDate</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Date</p></td><td valign="top"><p> </p><p>The departure date in format “2011-12-27”</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/PreBook/RateCrieria/ RateSearch</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>RatePlanCode</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"> </td><td valign="top"><p> </p><p>Rate access code</p></td></tr><tr><td valign="top"> </td><td valign="top"><p> </p><p>RatePlanType</p></td><td valign="top"><p> </p><p>1</p></td><td valign="top"><p> </p><p>Date</p></td><td valign="top"><p> </p><p>“Negotiated”, “Corporate”, “Standard” etc.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/PreBook/ RateCriteria/RateSearch/AutoInfo</p></td><td valign="top"><p> </p><p>Code</p></td><td valign="top"><p> </p><p>0..5</p></td><td valign="top"><p> </p><p>Char 25</p></td><td valign="top"><p> </p><p>Auto Frequent Traveler Number</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/PreBook/RateCriteria/ RateSearch/ CorpInfo</p></td><td valign="top"><p> </p><p>Code</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 25</p></td><td valign="top"><p> </p><p>Corporate Account Number.</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/ PreBook/RateCriteria/ RateSearch/ FlyerInfo</p></td><td valign="top"><p> </p><p>Code</p></td><td valign="top"><p> </p><p>0..5</p></td><td valign="top"><p> </p><p>Char 25</p></td><td valign="top"><p> </p><p>Frequent Flyer Number</p></td></tr><tr><td valign="top"><p> </p><p>HotelML/Form/ PreBook/RateCriteria/ RateSearch/ FreqGuest</p></td><td valign="top"><p> </p><p>Code</p></td><td valign="top"><p> </p><p>0..1</p></td><td valign="top"><p> </p><p>Char 25</p></td><td valign="top"><p> </p><p>Frequent Guest Number</p></td></tr></tbody></table>

<br>


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developer.rategain.com/ultradirect/ultradirect-transaction-sets-xml/pre-book/request-message-format.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
