# Reservations

## What is Reservations?

**Reservation** is a delivery method where the booking channel actively pushes reservations, modifications, and cancellations directly to the SiteMinder Platform in real-time. This integration ensures that properties receive up-to-date booking information, maintaining consistency and reducing the risk of overbooking.

**Key Characteristics:**

* **Real-time delivery:** Reservations pushed immediately after booking
* **Three message types:** New bookings (`Commit`), modifications (`Modify`), and cancellations (`Cancel`)
* **Atomic processing:** Each reservation is processed entirely or rejected entirely
* **Availability updates:** SiteMinder sends updated availability to all channels after processing reservations

**Reservation Notification Email:** SiteConnect can optionally send reservation notification emails to hotels based on the data in your `OTA_HotelResNotifRQ`. If your channel cannot send reservation emails directly to hotels, this feature can be requested during integration. It is not enabled by default.

**Cancellation Policies:** Cancellation policies are managed directly between the hotel and your booking channel and are not handled through the SiteMinder API.

{% hint style="warning" %}
**Production Endpoint Update:** SiteMinder now uses a single global endpoint for all reservation delivery, replacing the previous regional endpoint model (APAC and EMEA/AMERS). If your integration currently uses region-specific endpoints, please contact the [Partner Integrations](https://www.siteminder.com/partners-contact/) team to migrate to the global endpoint for simplified routing and improved reliability.
{% endhint %}

## Integration Requirements

Understand the essential requirements for API integration, including connectivity, authentication, message formats, and security protocols.

<table data-header-hidden><thead><tr><th width="199.954833984375">Category</th><th>Requirement</th></tr></thead><tbody><tr><td><strong>Web Service Endpoint</strong></td><td><ul><li>SiteMinder will provide a single global endpoint for all hotels for the booking channel to push <code>OTA_HotelResNotifRQ</code> messages and receive <code>OTA_HotelResNotifRQ</code> responses indicating success or failure.</li><li><strong>Test Environment Endpoint:</strong> <a href="https://tpi-cm-siteconn.preprod.siteminderlabs.com/reservation-gateway/services">https://tpi-cm-siteconn.preprod.siteminderlabs.com/reservation-gateway/services</a></li></ul></td></tr><tr><td><strong>Authentication</strong></td><td><ul><li>SiteMinder will provide a single username/password for all hotels.</li><li>The booking channel must include authentication credentials within the <strong>SOAP Security header</strong> of each request <code>OTA_HotelResNotifRQ</code>.</li></ul></td></tr><tr><td><strong>Message Structure</strong></td><td><ul><li>All messages must adhere to the SOAP message format.</li><li>OTA message must be encapsulated within the SOAP Body.</li><li>Requests must include a SOAP Security Header for authentication.</li><li>Responses will be returned in a SOAP envelope with empty SOAP Header.</li></ul></td></tr><tr><td><strong>Content-Type</strong></td><td><code>text/xml; charset=utf-8</code></td></tr><tr><td><strong>Version</strong></td><td><code>SOAP 1.1</code></td></tr><tr><td><strong>Protocol &#x26; Security</strong></td><td><ul><li>All communication must occur over <strong>HTTPS</strong> using <strong>TLS 1.2 or higher</strong>.</li><li>Non-secure (HTTP) connections are <strong>not permitted</strong>.</li><li>Communication is synchronous request/response pairs.</li><li>Each message is atomic - processed entirely or not at all.</li></ul></td></tr></tbody></table>

## Message Exchange Flow

When SiteMinder receives bookings from channels, it delivers them to your PMS using a synchronous SOAP/HTTPS exchange. Each reservation triggers a separate request-response cycle.

1. **Reservation Message (booking channel to SiteMinder):** `OTA_HotelResNotifRQ`\
   Delivers a single reservation message (new booking, modification, or cancellation).
2. **Confirmation Response (booking channel to PMS):** `OTA_HotelResNotifRS`\
   Confirms successful receipt or reports processing failure.

{% hint style="warning" %}
SiteMinder will send `OTA_HotelAvailNotifRQ` to the booking channel with the **updated availability** after the reservations, modifications, and cancellations are processed on the SiteMinder Platform. Refer to the [Availability and Restrictions](/siteconnect-api/reference/availability-and-restrictions.md).
{% endhint %}

## Security Header

The Security Header is a mandatory SOAP header that authenticates every reservation request from your booking channel to SiteMinder endpoint. It contains the username and password credentials that we provide to the booking channel during integration setup.

**Key Requirements:**

* **Validation**: Our endpoint will validate these credentials on every request.
* **Scope**: One set of credentials is used for all properties in your integration.
* **Security**: Credentials are transmitted as plain text within the HTTPS encrypted channel.
* **Response**: Invalid credentials will return a SOAP fault with appropriate error code.

{% hint style="info" %}
The only acceptable value for the **Password @Type** attribute is *<http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText>.* Plain text passwords are acceptable as all communication is done over encrypted HTTP (HTTPS).
{% endhint %}

{% tabs %}
{% tab title="Reservation Message" %}
Requests must include a SOAP Security Header for authentication.

```xml
<SOAP-ENV:Envelope
	xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
	<SOAP-ENV:Header>
		<wsse:Security SOAP-ENV:mustUnderstand="1"
			xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
			<wsse:UsernameToken>
				<wsse:Username>USERNAME</wsse:Username>
				<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
			</wsse:UsernameToken>
		</wsse:Security>
	</SOAP-ENV:Header>
	<SOAP-ENV:Body>
		<OTA_HotelResNotifRQ
			xmlns="http://www.opentravel.org/ota/2003/05" ResStatus="Commit" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
			<!-- ... other elements and attributes have been omitted for brevity ... -->
		</OTA_HotelResNotifRQ>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
```

{% endtab %}

{% tab title="Confirmation Response" %}
Responses must be returned in a SOAP envelope with an empty SOAP Header.

```xml
<SOAP-ENV:Envelope
	xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
	<SOAP-ENV:Header/>
	<SOAP-ENV:Body>
		<OTA_HotelResNotifRS
			xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
			<Success/>
			<!-- ... other elements and attributes have been omitted for brevity ... -->
		</OTA_HotelResNotifRS>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
```

{% endtab %}
{% endtabs %}

## Multiplicity

In the SOAP Specification tables below **M** refers to the number of instances or occurrences of an element or attribute that are allowed or required in a given context. It defines how many times a particular component (element or attribute) can appear within a specific structure.

<table><thead><tr><th width="94">M</th><th>Definition</th></tr></thead><tbody><tr><td><strong>1</strong></td><td>The element or attribute must be present exactly once.</td></tr><tr><td><strong>0..1</strong></td><td>The element or attribute is optional; it can be present zero or one time.</td></tr><tr><td><strong>0..n</strong></td><td>The element or attribute can be present zero or more times, with no upper limit (where <strong>n</strong> represents an infinite number of occurrences).</td></tr><tr><td><strong>1..n</strong></td><td>The element or attribute must be present at least once and can be present any number of times, with no upper limit.</td></tr><tr><td><strong>n..m</strong></td><td>Specific range, the element or attribute must be present at least <strong>n</strong> times and no more than <strong>m</strong> times (where <strong>n</strong> and <strong>m</strong> are specific numbers).</td></tr></tbody></table>

## 1. **Reservation Message**

### OTA\_HotelResNotifRQ

The `OTA_HotelResNotifRQ` message carries reservation data from your booking channel to SiteMinder. Each message contains exactly one reservation (new booking, modification, or cancellation).

* Reservation (Initial Delivery) <mark style="color:red;">\*</mark>
* Reservation Multi-Room
* Reservation Modifications
* Reservation Cancellations

**Reservation Modifications and Cancellations**: SiteMinder uses specific reservation status fields to differentiate between types of reservation actions. Modifications are identified using **`ResStatus`** **`Modify`**, while cancellations are marked with **`ResStatus`** **`Cancel`**. For both actions, the full reservation data must be provided, including the original reservation details and the timestamp reflecting when the modification or cancellation was made. This ensures that the booking system processes changes and cancellations accurately and consistently across all properties.

{% hint style="warning" %}
**Reservations follow a one-way lifecycle:** Commit → Modify → Cancel. Never send Modify or Cancel messages for reservations that are already cancelled. Once a reservation is cancelled, it is in a terminal state and no further messages should be sent.
{% endhint %}

{% tabs %}
{% tab title="Commit" %}

```xml
<OTA_HotelResNotifRQ
	xmlns="http://www.opentravel.org/OTA/2003/05" ResStatus="Commit" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
	<!-- ... other elements and attributes have been omitted for brevity ... -->
</OTA_HotelResNotifRQ>
```

{% endtab %}

{% tab title="Modify" %}

```xml
<OTA_HotelResNotifRQ
	xmlns="http://www.opentravel.org/OTA/2003/05" ResStatus="Modify" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
	<!-- ... other elements and attributes have been omitted for brevity ... -->
</OTA_HotelResNotifRQ>
```

{% endtab %}

{% tab title="Cancel" %}

```xml
<OTA_HotelResNotifRQ
	xmlns="http://www.opentravel.org/OTA/2003/05" ResStatus="Cancel" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
	<!-- ... other elements and attributes have been omitted for brevity ... -->
</OTA_HotelResNotifRQ>
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="253">Element / @Attribute</th><th width="133">Type</th><th width="53.942626953125" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>OTA_HotelResNotifRQ</code></strong></td><td>Element</td><td align="center">1</td><td>Root element for the request.</td></tr><tr><td><code>@xmlns</code></td><td>String</td><td align="center">1</td><td>Defines the XML namespace for the request. Will be set to <code>http://www.opentravel.org/OTA/2003/05</code></td></tr><tr><td><code>@ResStatus</code></td><td>Enumeration</td><td align="center">1</td><td><p>Specifies the booking status:</p><p><code>Commit</code></p><p><code>Modify</code></p><p><code>Cancel</code></p></td></tr><tr><td><code>@EchoToken</code></td><td>String</td><td align="center">1</td><td>Unique identifier for the request, used to match requests and responses. Preferred format: UUID <code>8-4-4-4-12</code>.</td></tr><tr><td><code>@TimeStamp</code></td><td>DateTime</td><td align="center">1</td><td>Time when the request was generated. <code>TimeStamp</code> must use <code>ISO 8601</code> format.</td></tr><tr><td><code>@Version</code></td><td>Decimal</td><td align="center">1</td><td>Specifies the API version. Must be set to <code>1.0</code>.</td></tr></tbody></table>

### Source

{% tabs %}
{% tab title="Source" %}

```xml
<POS>
	<Source>
		<RequestorID Type="22" ID="ABC"/>
		<BookingChannel Primary="true">
			<CompanyName Code="ABC">Channel Name</CompanyName>
		</BookingChannel>
	</Source>
	<!-- Additional Source element -->
</POS>
```

{% endtab %}

{% tab title="Second Source" %}

```xml
<POS>
	<Source>
		<RequestorID Type="22" ID="ABC"/>
		<BookingChannel Primary="true">
			<CompanyName Code="ABC">Channel Name</CompanyName>
		</BookingChannel>
	</Source>
	<Source>
		<BookingChannel Primary="false">
			<CompanyName Code="CBA">Affiliated Channel</CompanyName>
		</BookingChannel>
	</Source>
</POS>
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="253">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>POS</code></strong></td><td>Element</td><td align="center">1</td><td>Contains source details.</td></tr><tr><td><code>Source</code></td><td>Element</td><td align="center">1..2</td><td>Contains BookingChannel details.</td></tr><tr><td><code>RequestorID</code></td><td>Element</td><td align="center">1</td><td>Only present in the first Source element. Identifies the system sending the reservation.</td></tr><tr><td><code>@Type</code></td><td>Integer</td><td align="center">1</td><td>Must be set to <code>22</code> (ESRP).</td></tr><tr><td><code>@ID</code></td><td>String</td><td align="center">1</td><td>Channel code. The ID used will be agreed by trading partners and remain consistent across messages.</td></tr><tr><td><code>BookingChannel</code></td><td>Element</td><td align="center">1</td><td>Contains booking channel information.</td></tr><tr><td><code>@Primary</code></td><td>Boolean</td><td align="center">1</td><td><p><code>true</code> for the primary booking channel in the first Source element.</p><p><code>false</code> in the second Source element, if present.</p></td></tr><tr><td><code>CompanyName</code></td><td>Element</td><td align="center">1</td><td>Name of the booking channel.</td></tr><tr><td><code>@Code</code></td><td>String</td><td align="center">0..1</td><td>Code of the booking channel.</td></tr></tbody></table>

### Reservation

**Reservation IDs:** `UniqueID` `ID` must be unique across all properties connected at all times. If a reservation is received with an ID that has already been used, it will be ignored, even if it is for a different hotel. To ensure long-term uniqueness and minimize the risk of reuse, we recommend using a UniqueID with at least 7 numeric characters. Incorporating alphanumeric characters is also encouraged to further increase the number of possible combinations for reservations.

{% hint style="danger" %}
`UniqueID` `ID` must contain only alphanumeric characters (A-Z, a-z, 0-9). Special characters must be avoided.
{% endhint %}

```xml
<HotelReservations>
	<HotelReservation CreateDateTime="2024-07-06T15:27:41+00:00" LastModifyDateTime="2024-07-06T15:27:41+00:00">
		<UniqueID Type="14" ID="123456789"/>
		<!-- ... other elements and attributes have been omitted for brevity ... -->
	</HotelReservation>
</HotelReservations>
```

<table><thead><tr><th width="254">Element / @Attribute</th><th width="112">Type</th><th width="57" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>HotelReservations</code></strong></td><td>Element</td><td align="center">1</td><td>Contains the reservation details.</td></tr><tr><td><code>HotelReservation</code></td><td>Element</td><td align="center">1</td><td>Contains the specific reservation information.</td></tr><tr><td><code>@CreateDateTime</code></td><td>DateTime</td><td align="center">1</td><td>Date and time when the reservation was first made. <strong>Must be set when <code>ResStatus</code> is <code>Commit</code>, <code>Modify</code> and <code>Cancel</code></strong>. <code>CreateDateTime</code> must follow the <code>ISO 8601</code> Date and Time format.</td></tr><tr><td><code>@LastModifyDateTime</code></td><td>DateTime</td><td align="center">0..1</td><td>Date and time when the reservation was last modified. <strong>Must be set when <code>ResStatus</code> is <code>Modify</code> or <code>Cancel</code></strong>. <code>LastModifyDateTime</code> must follow the <code>ISO 8601</code> Date and Time format.</td></tr><tr><td><code>UniqueID</code></td><td>Element</td><td align="center">1</td><td>Unique identifier of the reservation in the system which sent the message.</td></tr><tr><td><code>@Type</code></td><td>Integer</td><td align="center">1</td><td>Must be set to <code>14</code> (Reservation).</td></tr><tr><td><code>@ID</code></td><td>String</td><td align="center">1</td><td>Actual confirmation number.</td></tr></tbody></table>

### RoomStays

**Multi-Room Reservations:** Multi-room reservations are sent in a single `OTA_HotelResNotifRQ` with multiple `RoomStay` elements, each representing one room.

```xml
<RoomStays>
	<RoomStay PromotionCode="AUTUNM2024">
		<!-- ... other elements and attributes have been omitted for brevity ... -->
	</RoomStay>
	<!-- Additional RoomStay elements -->
</RoomStays>
```

<table><thead><tr><th width="252">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>RoomStays</code></strong></td><td>Element</td><td align="center">1</td><td>Contains details of all room stays.</td></tr><tr><td><code>RoomStay</code></td><td>Element</td><td align="center">1..n</td><td>One instance of <code>RoomStay</code> per room type booked.</td></tr><tr><td><code>@PromotionCode</code></td><td>String</td><td align="center">0..1</td><td>If configured, this is the promotion code indicating, for instance, a specific marketing campaign (not the rate code).</td></tr></tbody></table>

### RoomTypes

```xml
<RoomTypes>
	<RoomType RoomTypeCode="TPL">
		<RoomDescription Name="Triple Room">Double bed and single bed.</RoomDescription>
	</RoomType>
</RoomTypes>
```

<table><thead><tr><th width="255">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>RoomTypes</code></strong></td><td>Element</td><td align="center">0..1</td><td>Provides more information about the room type for this room stay.</td></tr><tr><td><code>RoomType</code></td><td>Element</td><td align="center">1</td><td>Contains specific information about the room type.</td></tr><tr><td><code>@RoomTypeCode</code></td><td>String</td><td align="center">1</td><td>Code of the room booked.</td></tr><tr><td><code>RoomDescription</code></td><td>Element</td><td align="center">1</td><td>Description of the room.</td></tr><tr><td><code>@Name</code></td><td>String</td><td align="center">1</td><td>Name of the room.<br>Required for <strong>Reservation Notification Email</strong> feature.</td></tr></tbody></table>

### RatePlans

**Commission Purpose:** The `CommissionPayableAmount` represents the amount the hotel owes your booking channel. This is included in the RoomStay total and helps SiteMinder provide better reporting to hotels.

**Best Practice:** Although optional, sending commission amounts is strongly recommended because:

* Some hotels configure their PMS to receive reservation rates with or without commission
* Provides hotels with accurate financial reporting
* Enables better reconciliation between channels and properties

```xml
<RatePlans>
	<RatePlan RatePlanCode="BAR">
		<RatePlanDescription>Best Available Rate.</RatePlanDescription>
		<Commission>
			<CommissionPayableAmount Amount="60.00" CurrencyCode="EUR"/>
		</Commission>
		<MealsIncluded MealPlanCode="14"/>
		<!-- Additional MealsIncluded elements -->
	</RatePlan>
</RatePlans>
```

<table><thead><tr><th width="284">Element / @Attribute</th><th width="112">Type</th><th width="61" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>RatePlans</code></strong></td><td>Element</td><td align="center">0..1</td><td>Provides more information about the rate plan for this room stay.</td></tr><tr><td><code>RatePlan</code></td><td>Element</td><td align="center">1</td><td>Contains details about the specific rate plan.</td></tr><tr><td><code>@RatePlanCode</code></td><td>String</td><td align="center">1</td><td>Code of the rate booked.</td></tr><tr><td><code>RatePlanDescription</code></td><td>Element</td><td align="center">1</td><td>Description of the rate plan.<br>Required for <strong>Reservation Notification Email</strong> feature.</td></tr><tr><td><code>Commission</code></td><td>Element</td><td align="center">0..1</td><td>Commission amount associated with the rate plan.</td></tr><tr><td><code>CommissionPayableAmount</code></td><td>Element</td><td align="center">1</td><td>Amount of commission to be paid.</td></tr><tr><td><code>@Amount</code></td><td>Decimal</td><td align="center">1</td><td>Commission amount.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">1</td><td>Use <a href="https://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency codes.</td></tr><tr><td><code>MealsIncluded</code></td><td>Element</td><td align="center">0..n</td><td>Used to identify the types of meals included with a rate plan.</td></tr><tr><td><code>@MealPlanCode</code></td><td>Integer</td><td align="center">0..1</td><td>Refer to <a href="/pages/E3K5PNmESCObm8TXoLUy">Meal Plan Type (MPT)</a>.</td></tr></tbody></table>

### RoomRates

**AmountBeforeTax vs AmountAfterTax:**

* Use `AmountAfterTax` if your rates include taxes
* Use `AmountBeforeTax` if your rates exclude taxes
* You can send both, but amounts must differ (AfterTax must be greater than BeforeTax)
* At least one must be provided

**Multiple Tax Types:** You can send multiple `Tax` elements with different Tax Codes (e.g., GST/VAT, City Tax) to itemize tax types. Reference the Fee Tax Type (FTT) table for codes.

**Promotional Rates and Zero-Rate Nights:**

* **Best practice:** Send actual per-night rates (including 0 for free nights)
* **Alternative:** Average total across all nights
* **Recommendation:** Add comment explaining any discounts or promotions
* **Validation:** SiteMinder accepts reservations with 0 rate totals

{% tabs %}
{% tab title="Room Rates" %}
This is the **complete RoomRates structure** showing all standard elements contained in a typical reservation. It demonstrates a 3-night stay with consistent nightly rates, including tax breakdown and a linked service/extra charge.

To understand the complete `<RoomRate>` anatomy and how to structure daily rates, explore the three rate variation patterns below:

* **Same Value Per Night:** All nights charged at identical rates
* **Different Value Per Night:** Each night has a distinct rate
* **Combined:** Groups of consecutive nights at the same rate

```xml
<RoomRates>
	<RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
		<Rates>
			<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2024-10-05" ExpireDate="2024-10-08">
				<Base AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
					<Taxes>
						<Tax Type="inclusive" Code="35" Amount="62.00" CurrencyCode="EUR"/>
						<!-- Additional Tax elements -->
					</Taxes>
				</Base>
				<Total AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
					<Taxes>
						<Tax Type="inclusive" Code="35" Amount="62.00" CurrencyCode="EUR"/>
						<!-- Additional Tax elements -->
					</Taxes>
				</Total>
			</Rate>
		</Rates>
		<ServiceRPHs>
			<ServiceRPH RPH="1"/>
			<!-- Additional ServiceRPH elements -->
		</ServiceRPHs>
	</RoomRate>
</RoomRates>
```

{% endtab %}

{% tab title="Same Value Per Night" %}
A single `<Rate>` element spans the entire stay period, with the Base and Total amounts representing the sum of all nights at a uniform nightly rate. This is the most efficient structure when rates don't fluctuate during the stay.

**Example breakdown:**

* 3-night stay (Oct 5-7)
* Total: €558.00 before tax / €620.00 after tax
* Nightly rate: €186.00 before tax per night / €206.66 after tax per night

```xml
<RoomRates>
	<RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
		<Rates>
			<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2024-10-05" ExpireDate="2024-10-08">
				<Base AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR"/>
			<!-- ... other elements and attributes have been omitted for brevity ... -->
			</Rate>
		</Rates>
	</RoomRate>
</RoomRates>
<TimeSpan Start="2024-10-05" End="2024-10-08"/>
<Total AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
```

{% endtab %}

{% tab title="Different Value Per Night" %}
Each night is represented by a separate `<Rate>` element with its individual pricing. The `EffectiveDate` and `ExpireDate` span exactly one night, clearly showing the rate breakdown for each date.

**Example breakdown:**

* Night 1 (Oct 5): €153.00 before tax / €170.00 after tax
* Night 2 (Oct 6): €180.00 before tax / €200.00 after tax
* Night 3 (Oct 7): €225.00 before tax / €259.00 after tax
* Total: €558.00 before tax / €620.00 after tax

```xml
<RoomRates>
	<RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
		<Rates>
			<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2024-10-05" ExpireDate="2024-10-06">
				<Base AmountBeforeTax="153.00" AmountAfterTax="170.00" CurrencyCode="EUR"/>
			<!-- ... other elements and attributes have been omitted for brevity ... -->
			</Rate>
			<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2024-10-06" ExpireDate="2024-10-07">
				<Base AmountBeforeTax="180.00" AmountAfterTax="200.00" CurrencyCode="EUR"/>
			<!-- ... other elements and attributes have been omitted for brevity ... -->
			</Rate>
			<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2024-10-07" ExpireDate="2024-10-08">
				<Base AmountBeforeTax="225.00" AmountAfterTax="250.00" CurrencyCode="EUR"/>
			<!-- ... other elements and attributes have been omitted for brevity ... -->
			</Rate>
		</Rates>
	</RoomRate>
</RoomRates>
<TimeSpan Start="2024-10-05" End="2024-10-08"/>
<Total AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
```

{% endtab %}

{% tab title="Combined" %}
Groups consecutive nights with identical rates into single `<Rate>` elements, while separating periods where rates differ. This optimizes message size while maintaining rate accuracy.

**Example breakdown:**

* Nights 1-2 (Oct 5-6): €360.00 before tax (€180/night) / €400.00 after tax (€200/night)
* Night 3 (Oct 7): €198.00 before tax / €220.00 after tax
* Total: €558.00 before tax / €6200.00 after tax

```xml
<RoomRates>
	<RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
		<Rates>
			<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2024-10-05" ExpireDate="2024-10-07">
				<Base AmountBeforeTax="360.00" AmountAfterTax="400.00" CurrencyCode="EUR"/>
			<!-- ... other elements and attributes have been omitted for brevity ... -->
			</Rate>
			<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2024-10-07" ExpireDate="2024-10-08">
				<Base AmountBeforeTax="198.00" AmountAfterTax="220.00" CurrencyCode="EUR"/>
			<!-- ... other elements and attributes have been omitted for brevity ... -->
			</Rate>
		</Rates>
	</RoomRate>
</RoomRates>
<TimeSpan Start="2024-10-05" End="2024-10-08"/>
<Total AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="253">Element / @Attribute</th><th width="128">Type</th><th width="62" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>RoomRates</code></strong></td><td>Element</td><td align="center">1</td><td>Contains details of the rates applied to the room stay.</td></tr><tr><td><code>RoomRate</code></td><td>Element</td><td align="center">1</td><td>One RoomRate per RoomStay. Multiple rates are listed under the RoomRate.</td></tr><tr><td><code>@RoomTypeCode</code></td><td>String</td><td align="center">1</td><td>Code of the room booked.</td></tr><tr><td><code>@RatePlanCode</code></td><td>String</td><td align="center">0..1</td><td>Code of the rate plan booked. Must be included if RoomStay / RatePlans is present.</td></tr><tr><td><code>@NumberOfUnits</code></td><td>Integer</td><td align="center">1</td><td>Must be set to <code>1</code>. If there are multiple RoomStays for the same RoomTypeCode and RatePlanCode, multiple RoomStay elements should be sent.</td></tr><tr><td><code>Rates</code></td><td>Element</td><td align="center">1</td><td>Contains rate details</td></tr><tr><td><code>Rate</code></td><td>Element</td><td align="center">0..n</td><td>Rate will contain a timespan for which a rate will apply for a room type. Multiple instances of Rate will be sent if rate changes apply.</td></tr><tr><td><code>@UnitMultiplier</code></td><td>Integer</td><td align="center">1</td><td>Must be set to <code>1</code>.</td></tr><tr><td><code>@RateTimeUnit</code></td><td>String</td><td align="center">1</td><td>Must be set to <code>Day</code>.</td></tr><tr><td><code>@EffectiveDate</code></td><td>Date</td><td align="center">1</td><td>Starting date of the rate. This date is inclusive.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr><tr><td><code>@ExpireDate</code></td><td>Date</td><td align="center">1</td><td>Expire date is the first day after the applicable period. This date is not inclusive.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr><tr><td><code>Base</code></td><td>Element</td><td align="center">1</td><td>Base amount charged for the accommodation.</td></tr><tr><td><code>@AmountBeforeTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@AmountAfterTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">1</td><td>Use <a href="https://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency codes.</td></tr><tr><td><code>Taxes</code></td><td>Element</td><td align="center">0..1</td><td>Contains details of the taxes applied.</td></tr><tr><td><code>Tax</code></td><td>Element</td><td align="center">0..n</td><td>Contains specific tax information.</td></tr><tr><td><code>@Type</code></td><td>Enumeration</td><td align="center">0..1</td><td><p>Indicates whether the tax is:</p><p><code>inclusive</code></p><p><code>exclusive</code></p><p><code>cumulative</code></p></td></tr><tr><td><code>@Code</code></td><td>String</td><td align="center">0..1</td><td>Indicates the specific tax or fee that is being transferred. Refer to <a href="/pages/25577kjBcjKCgYHcsgBY">Fee Tax Type (FTT)</a>.</td></tr><tr><td><code>@Amount</code></td><td>Decimal</td><td align="center">0..1</td><td>Tax amount applied.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">0..1</td><td>Use <a href="https://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency codes.</td></tr><tr><td><code>Total</code></td><td>Element</td><td align="center">0..1</td><td>Total amount charged, including additional occupants and fees. If empty, assume the Base amount equals the Total amount.</td></tr><tr><td><code>@AmountBeforeTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@AmountAfterTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">1</td><td>Use <a href="https://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency codes.</td></tr><tr><td><code>Taxes</code></td><td>Element</td><td align="center">0..1</td><td>Contains details of the taxes applied.</td></tr><tr><td><code>Tax</code></td><td>Element</td><td align="center">0..n</td><td>Contains specific tax information.</td></tr><tr><td><code>@Type</code></td><td>Enumeration</td><td align="center">0..1</td><td><p>Indicates whether the tax is:</p><p><code>inclusive</code></p><p><code>exclusive</code></p><p><code>cumulative</code></p></td></tr><tr><td><code>@Code</code></td><td>String</td><td align="center">0..1</td><td>Indicates the specific tax or fee that is being transferred. Refer to <a href="/pages/25577kjBcjKCgYHcsgBY">Fee Tax Type (FTT)</a>.</td></tr><tr><td><code>@Amount</code></td><td>Decimal</td><td align="center">0..1</td><td>Tax amount applied.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">0..1</td><td>Use ISO 4217 currency codes.</td></tr><tr><td><code>ServiceRPHs</code></td><td>Element</td><td align="center">0..1</td><td>Container for the <code>ServiceRPH</code> elements.</td></tr><tr><td><code>ServiceRPH</code></td><td>Element</td><td align="center">0..n</td><td>Links a service to the Service information at the HotelReservation level (if applicable).<br>Service at the <code>RoomRate</code> level.</td></tr><tr><td><code>@RPH</code></td><td>Integer</td><td align="center">1</td><td>Reference to the ServiceRPH at the HotelReservation level.</td></tr></tbody></table>

### **GuestCounts**

{% tabs %}
{% tab title="Full Example" %}
{% code title="2 adults, 2 children (age 7 and 10), 1 infant" %}

```xml
<GuestCounts>
	<GuestCount AgeQualifyingCode="10" Count="2"/>
	<GuestCount AgeQualifyingCode="8" Age="7" Count="1"/>
	<GuestCount AgeQualifyingCode="8" Age="10" Count="1"/>
	<GuestCount AgeQualifyingCode="7" Count="1"/>
	<!-- Additional GuestCount elements -->
</GuestCounts>
```

{% endcode %}
{% endtab %}

{% tab title="Minimum Example" %}
{% code title="1 adult, 0 children, 0 infant" %}

```xml
<GuestCounts>
	<GuestCount AgeQualifyingCode="10" Count="1"/>
	<!-- Only GuestCount with Count greater than or equal to 1 -->
</GuestCounts>
```

{% endcode %}
{% endtab %}
{% endtabs %}

<table><thead><tr><th width="250">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>GuestCounts</code></strong></td><td>Element</td><td align="center">1</td><td>Total guest counts, divided by age group (adult, child, infant). Adult count must always be sent.</td></tr><tr><td><code>GuestCount</code></td><td>Element</td><td align="center">1..n</td><td>Represents the count for a specific age group.</td></tr><tr><td><code>@AgeQualifyingCode</code></td><td>Integer</td><td align="center">1</td><td><p><code>10</code> = Adult (mandatory)</p><p><code>8</code> = Child (optional)</p><p><code>7</code> = Infant (optional)</p></td></tr><tr><td><code>@Count</code></td><td>Integer</td><td align="center">1</td><td>Number of guests for this age group.<br>Count must be greater than or equal to 1.</td></tr><tr><td><code>@Age</code></td><td>Integer</td><td align="center">0..1</td><td>Age of the guest, required only for children and infants.</td></tr></tbody></table>

### TimeSpan

The `TimeSpan` element defines the check-in and check-out dates for the reservation. **SiteConnect requires a minimum 1-night stay** - the check-out date must be at least one day after the check-in date. Same-day bookings (day-use reservations where arrival and departure occur on the same date) are not supported and will be rejected with a validation error.

```xml
<TimeSpan Start="2024-10-05" End="2024-10-08"/>
```

<table><thead><tr><th width="250">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>TimeSpan</code></strong></td><td>Element</td><td align="center">1</td><td>Contains the timespan for the <code>RoomStay</code>.<br><strong>Maximum 749 days</strong></td></tr><tr><td><code>@Start</code></td><td>Date</td><td align="center">1</td><td>Check-in date.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr><tr><td><code>@End</code></td><td>Date</td><td align="center">1</td><td>Check-out date. <br>Must use <code>YYYY-MM-DD</code> format.<br><strong>Must be after <code>Start</code></strong> (minimum 1-night stay required). Same-day bookings will be rejected.</td></tr></tbody></table>

### RoomStayTotal

```xml
<Total AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
	<Taxes>
		<Tax Type="inclusive" Code="35" Amount="62.00" CurrencyCode="EUR"/>
		<!-- Additional Tax elements -->
	</Taxes>
</Total>
```

<table><thead><tr><th width="251">Element / @Attribute</th><th width="134">Type</th><th width="61" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>Total</code></strong></td><td>Element</td><td align="center">1</td><td>Container for the total amount elements.</td></tr><tr><td><code>@AmountBeforeTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@AmountAfterTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">1</td><td>Use ISO 4217 currency codes.</td></tr><tr><td><code>Taxes</code></td><td>Element</td><td align="center">0..1</td><td>Contains details of the taxes applied.</td></tr><tr><td><code>Tax</code></td><td>Element</td><td align="center">1..n</td><td>Contains specific tax information.</td></tr><tr><td><code>@Type</code></td><td>Enumeration</td><td align="center">0..1</td><td><p>Indicates whether the tax is:</p><p><code>inclusive</code></p><p><code>exclusive</code></p><p><code>cumulative</code></p></td></tr><tr><td><code>@Code</code></td><td>String</td><td align="center">0..1</td><td>Indicates the specific tax or fee that is being transferred. Refer to <a href="/pages/25577kjBcjKCgYHcsgBY">Fee Tax Type (FTT)</a>.</td></tr><tr><td><code>@Amount</code></td><td>Decimal</td><td align="center">0..1</td><td>Amount of the tax/fee transferred.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">0..1</td><td>Use ISO 4217 currency codes.</td></tr></tbody></table>

### **BasicPropertyInfo**

```xml
<BasicPropertyInfo HotelCode="HOTELCODE" HotelName="The Hotel Name"/>
```

<table><thead><tr><th width="253">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>BasicPropertyInfo</code></strong></td><td>Element</td><td align="center">1</td><td>Contains basic identification details for the hotel associated with the reservation.</td></tr><tr><td><code>@HotelCode</code></td><td>String</td><td align="center">1</td><td>Identifier for the hotel.</td></tr><tr><td><code>@HotelName</code></td><td>String</td><td align="center">0..1</td><td>Name of the hotel.</td></tr></tbody></table>

### ServiceRPHs

```xml
<ServiceRPHs>
	<ServiceRPH RPH="1"/>
	<!-- Additional ServiceRPH elements -->
</ServiceRPHs>
```

<table><thead><tr><th width="256">Element / @Attribute</th><th width="112">Type</th><th width="62" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>ServiceRPHs</code></strong></td><td>Element</td><td align="center">0..1</td><td>Container for the <code>ServiceRPH</code> elements.</td></tr><tr><td><code>ServiceRPH</code></td><td>Element</td><td align="center">1..n</td><td>Service at the <code>RoomStay</code> level.</td></tr><tr><td><code>@RPH</code></td><td>Integer</td><td align="center">1</td><td>Links a <code>Service</code> to the Service information provided at the HotelReservation level (if applicable).</td></tr></tbody></table>

### ResGuestRPHs

```xml
<ResGuestRPHs>
	<ResGuestRPH RPH="1"/>
	<!-- Additional ResGuestRPH elements -->
</ResGuestRPHs>
```

<table><thead><tr><th width="254">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>ResGuestRPHs</code></strong></td><td>Element</td><td align="center">0..1</td><td>Container for the <code>ResGuestRPH</code> elements.</td></tr><tr><td><code>ResGuestRPH</code></td><td>Element</td><td align="center">1..n</td><td>Container for the <code>RPH</code> attribute.</td></tr><tr><td><code>@RPH</code></td><td>Integer</td><td align="center">1</td><td>Links the <code>RoomStay</code> to <code>ResGuest</code>. Find the links in <a href="#resguests">ResGuests</a>.</td></tr></tbody></table>

### **Comments**

```xml
<Comments>
	<Comment>
		<Text>See the room stay comments here</Text>
	</Comment>
</Comments>
```

<table><thead><tr><th width="253">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>Comments</code></strong></td><td>Element</td><td align="center">0..1</td><td>Contains comment for the <code>RoomStay</code>.</td></tr><tr><td><code>Comment</code></td><td>Element</td><td align="center">1</td><td>Holds the actual comment.</td></tr><tr><td><code>Text</code></td><td>Element</td><td align="center">1</td><td><p>The content of the comment.</p><p>PCI sensitive data is prohibited.</p></td></tr></tbody></table>

### SpecialRequests

```xml
<SpecialRequests>
	<SpecialRequest Name="Extra Bed">
		<Text>Yes</Text>
	</SpecialRequest>
	<!-- Additional ServiceRPH elements -->
</SpecialRequests>
```

<table><thead><tr><th width="257">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>SpecialRequests</code></strong></td><td>Element</td><td align="center">0</td><td>Contains special requests for the <code>RoomStay</code>.</td></tr><tr><td><code>SpecialRequest</code></td><td>Element</td><td align="center">0..n</td><td>Holds the actual special request.</td></tr><tr><td><code>@Name</code></td><td>String</td><td align="center">1</td><td>Special request type (e.g., bedding configuration, smoking, cot, extra bed).</td></tr><tr><td><code>Text</code></td><td>Element</td><td align="center">0..1</td><td>Special request text.</td></tr></tbody></table>

### Services

**ServiceInventoryCode**: Use [this list](/siteconnect-api/additional-resources/reference-tables/service-and-extra-charge.md) as a guide to code your extras/services. You can use additional codes not on the list such as PARKING or your own service identifier codes generated in your system.

{% tabs %}
{% tab title="Services" %}

```xml
<Services>
    <Service ServiceInventoryCode="EXTRA_BED" Inclusive="true" ServiceRPH="1" Quantity="1" ID="12346">
        <Price>
            <Base AmountBeforeTax="2.50" AmountAfterTax="2.75" CurrencyCode="EUR">
                <Taxes Amount="0.25">
                    <Tax Code="19" Percent="10" Amount="0.25">
                        <TaxDescription>
                            <Text>GST 10 percent</Text>
                        </TaxDescription>
                    </Tax>
                </Taxes>
            </Base>
            <Total AmountBeforeTax="2.50" AmountAfterTax="2.75" CurrencyCode="EUR">
                <Taxes Amount="0.25">
                    <Tax Code="19" Percent="10" Amount="0.25">
                        <TaxDescription>
                            <Text>GST 10 percent</Text>
                        </TaxDescription>
                    </Tax>
                </Taxes>
            </Total>
            <RateDescription>
                <Text>Extra person charge EUR 2.50 per day for cot</Text>
            </RateDescription>
        </Price>
        <ServiceDetails>
            <TimeSpan Start="2024-10-05" End="2024-10-08"/>
        </ServiceDetails>
    </Service>
    <!-- Additional Service elements -->
</Services>
```

{% endtab %}

{% tab title="RoomRate Level" %}
Example of a reservation with a service linked to the **RoomRate**.\
ServiceRPH present within `<RoomRate>`.\
Service cost is **included** in the **RoomRate Total, RoomStay Total** and **ResGlobalInfo Total.**\
Service cost is **not included** in the **RoomRate Base**

MEAL service for 3 nights. **Quantity must be 1**.\
Service Total must reflect total for all nights/quantities booked.\
The connected PMS will receive a breakdown of this service (per night) based on the TimeSpan.

```xml
<RoomStays>
    <RoomStay>
        <RoomTypes>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RoomTypes>
        <RatePlans>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RatePlans>
        <RoomRates>
            <RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
                <Rates>
                    <Base AmountBeforeTax="450.00" AmountAfterTax="495.00" CurrencyCode="EUR"/>
                    <Total AmountBeforeTax="480.00" AmountAfterTax="528.00" CurrencyCode="EUR"/>
                </Rates>
                <ServiceRPHs>
                    <ServiceRPH RPH="1"/>
                </ServiceRPHs>
            </RoomRate>
        </RoomRates>
        <!-- ... other elements and attributes have been omitted for brevity ... -->
        <Total AmountBeforeTax="480.00" AmountAfterTax="528.00" CurrencyCode="EUR"></Total>
    </RoomStay>
</RoomStays>
<Services>
    <Service ServiceInventoryCode="MEAL" Inclusive="true" ServiceRPH="1" Quantity="1" ID="12346">
        <Price>
            <Base AmountBeforeTax="10.00" AmountAfterTax="11.00" CurrencyCode="EUR"/>
            <Total AmountBeforeTax="30.00" AmountAfterTax="33.00" CurrencyCode="EUR"/>
            <RateDescription>
                <Text>Breakfast Buffet per person per night</Text>
            </RateDescription>
        </Price>
        <ServiceDetails>
            <TimeSpan Start="2025-10-05" End="2025-10-08"/>
        </ServiceDetails>
    </Service>
</Services>
<ResGlobalInfo>
    <!-- ... other elements and attributes have been omitted for brevity ... -->
    <Total CurrencyCode="EUR" AmountBeforeTax="480.00" AmountAfterTax="528.00"></Total>
</ResGlobalInfo>
```

{% endtab %}

{% tab title="RoomStay Level" %}
Example of a reservation with a service linked to the **RoomStay**.\
ServiceRPH present within `<RoomStay>`.\
Service cost is **included** in the **RoomStay Total** and **ResGlobalInfo Total.**\
Service cost is **not included** in the **RoomRate Base** and **RoomRate Total.**

```xml
<RoomStays>
    <RoomStay>
        <RoomTypes>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RoomTypes>
        <RatePlans>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RatePlans>
        <RoomRates>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RoomRates>
        <ServiceRPHs>
            <ServiceRPH RPH="1"/>
        </ServiceRPHs>
        <!-- ... other elements and attributes have been omitted for brevity ... -->
        <Total AmountBeforeTax="457.50" AmountAfterTax="503.25" CurrencyCode="EUR"></Total>
    </RoomStay>
</RoomStays>
<Services>
    <Service ServiceInventoryCode="EXTRA_BED" Inclusive="true" ServiceRPH="1" Quantity="1" ID="12346">
        <Price>
            <Base AmountBeforeTax="2.50" AmountAfterTax="2.75" CurrencyCode="EUR"/>
            <Total AmountBeforeTax="7.50" AmountAfterTax="8.25" CurrencyCode="EUR"/>
            <RateDescription>
                <Text>Extra person charge EUR 2.50 per day for cot</Text>
            </RateDescription>
        </Price>
        <ServiceDetails>
            <TimeSpan Start="2025-10-05" End="2025-10-08"/>
        </ServiceDetails>
    </Service>
</Services>
<ResGlobalInfo>
    <!-- ... other elements and attributes have been omitted for brevity ... -->
    <Total CurrencyCode="EUR" AmountBeforeTax="457.50" AmountAfterTax="503.25""></Total>
</ResGlobalInfo>
```

{% endtab %}

{% tab title="Reservation Level" %}
Example of a reservation with a service linked to the entire Reservation.\
**No ServiceRPH link.**\
Service cost is **included** in the **ResGlobalInfo Total.**\
Service cost is **not included** in the **RoomRate Base, RoomRate Total and RoomStay Total.**

```xml
<RoomStays>
    <RoomStay>
        <RoomTypes>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RoomTypes>
        <RatePlans>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RatePlans>
        <RoomRates>
            <RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
                <Rates>
                    <!-- ... other elements and attributes have been omitted for brevity ... -->
                    <Total AmountBeforeTax="450.00" AmountAfterTax="495.00" CurrencyCode="EUR"/>
                </Rates>
            </RoomRate>
        </RoomRates>
        <!-- ... other elements and attributes have been omitted for brevity ... -->
        <Total AmountBeforeTax="450.00" AmountAfterTax="495.00" CurrencyCode="EUR"></Total>
    </RoomStay>
</RoomStays>
<Services>
    <Service ServiceInventoryCode="OTHER" Inclusive="true" Quantity="1" ID="12346">
        <Price>
            <Base AmountBeforeTax="10.00" AmountAfterTax="11.00" CurrencyCode="EUR"/>
            <Total AmountBeforeTax="30.00" AmountAfterTax="33.00" CurrencyCode="EUR"/>
            <RateDescription>
                <Text>Parking for 1 vehicle per night</Text>
            </RateDescription>
        </Price>
        <ServiceDetails>
            <TimeSpan Start="2025-10-05" End="2025-10-08"/>
        </ServiceDetails>
    </Service>
</Services>
<ResGlobalInfo>
    <!-- ... other elements and attributes have been omitted for brevity ... -->
    <Total CurrencyCode="EUR" AmountBeforeTax="480.00" AmountAfterTax="528.00"></Total>
</ResGlobalInfo>
```

{% endtab %}

{% tab title="Use of TimeSpan" %}
**TimeSpan** is used to show the date range or dates the service applies.\
You will use the `@Start` and `@End` dates to show the date range

**Service applied for the first 2 nights in a 4 night reservation:**

<pre class="language-xml"><code class="lang-xml">&#x3C;RoomStays>
    &#x3C;RoomStay>
<strong>        &#x3C;RoomTypes>
</strong>            &#x3C;!-- ... other elements and attributes have been omitted for brevity ... -->
        &#x3C;/RoomTypes>
        &#x3C;RatePlans>
            &#x3C;!-- ... other elements and attributes have been omitted for brevity ... -->
        &#x3C;/RatePlans>
        &#x3C;RoomRates>
            &#x3C;!-- ... other elements and attributes have been omitted for brevity ... -->
        &#x3C;/RoomRates>
        &#x3C;GuestCounts>
            &#x3C;GuestCount AgeQualifyingCode="10" Count="2"/>
        &#x3C;/GuestCounts>
        &#x3C;TimeSpan Start="2025-03-12" End="2025-03-16"/>
        &#x3C;Total AmountAfterTax="520.00" CurrencyCode="AUD">&#x3C;/Total>
        &#x3C;BasicPropertyInfo HotelCode="HTL1" HotelName="The Beach Side Hotel"/>
<strong>        &#x3C;ServiceRPHs>
</strong>            &#x3C;ServiceRPH RPH="1"/>
        &#x3C;/ServiceRPHs>
        &#x3C;ResGuestRPHs>
            &#x3C;ResGuestRPH RPH="1"/>
        &#x3C;/ResGuestRPHs>
    &#x3C;/RoomStay>
&#x3C;/RoomStays>
&#x3C;Services>
    &#x3C;Service Inclusive="true" ServiceInventoryCode="OTHER" Quantity="2" ServiceRPH="1">
        &#x3C;Price>
            &#x3C;Total AmountAfterTax="20.00" CurrencyCode="AUD"/>
            &#x3C;RateDescription>
                &#x3C;Text>Breakfast&#x3C;/Text>
            &#x3C;/RateDescription>
        &#x3C;/Price>
        &#x3C;ServiceDetails>
            &#x3C;TimeSpan Start="2025-03-12" End="2025-03-13"/>
<strong>        &#x3C;/ServiceDetails>	
</strong><strong>    &#x3C;/Service>
</strong>&#x3C;/Services>
&#x3C;ResGuests>
    &#x3C;!-- ... other elements and attributes have been omitted for brevity ... -->
&#x3C;/ResGuest>
&#x3C;/ResGuests>
&#x3C;ResGlobalInfo>
    &#x3C;!-- ... other elements and attributes have been omitted for brevity ... -->
&#x3C;/ResGlobalInfo>
</code></pre>

**Service applied for different nights in a 4 night reservation:**

TimeSpan can only be used once in a Service node. In this case, you will send 2 Service nodes to indicate the 2 service dates.

```xml
<RoomStays>
    <RoomStay>
        <RoomTypes>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RoomTypes>
        <RatePlans>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RatePlans>
        <RoomRates>
            <!-- ... other elements and attributes have been omitted for brevity ... -->
        </RoomRates>
        <GuestCounts>
            <GuestCount AgeQualifyingCode="10" Count="2"/>
        </GuestCounts>
        <TimeSpan Start="2025-03-12" End="2025-03-16"/>
        <Total AmountAfterTax="520.00" CurrencyCode="AUD"></Total>
        <BasicPropertyInfo HotelCode="HTL1" HotelName="The Beach Side Hotel"/>
        <ServiceRPHs>
            <ServiceRPH RPH="1"/>
            <ServiceRPH RPH="2"/>
        </ServiceRPHs>
        <ResGuestRPHs>
            <ResGuestRPH RPH="1"/>
        </ResGuestRPHs>
    </RoomStay>
</RoomStays>
<Services>
    <Service Inclusive="true" ServiceInventoryCode="OTHER" Quantity="1" ServiceRPH="1">
        <Price>
            <Total AmountAfterTax="10.00" CurrencyCode="AUD"/>
            <RateDescription>
                <Text>Parking 1st night</Text>
            </RateDescription>
        </Price>
        <ServiceDetails>
            <TimeSpan Start="2025-03-12" End="2025-03-12"/>
        </ServiceDetails>	
    </Service>
    <Service Inclusive="true" ServiceInventoryCode="OTHER" Quantity="1" ServiceRPH="2">
        <Price>
            <Total AmountAfterTax="10.00" CurrencyCode="AUD"/>
            <RateDescription>
                <Text>Parking last night</Text>
            </RateDescription>
        </Price>
        <ServiceDetails>
            <TimeSpan Start="2025-03-15" End="2025-03-15"/>
        </ServiceDetails>	
    </Service>
</Services>
<ResGuests>
    <!-- ... other elements and attributes have been omitted for brevity ... -->
</ResGuest>
</ResGuests>
<ResGlobalInfo>
    <!-- ... other elements and attributes have been omitted for brevity ... -->
</ResGlobalInfo>
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="262">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>Services</code></strong></td><td>Element</td><td align="center">0..1</td><td>Contains service details provided to guests.</td></tr><tr><td><code>Service</code></td><td>Element</td><td align="center">1..n</td><td>Represents a non-room product provided to guests.</td></tr><tr><td><code>@ServiceInventoryCode</code></td><td>String</td><td align="center">1</td><td>Identifier code for the service. Refer to <a href="/pages/CiYdiVL1WUiiuWGcKNmx">Service and Extra Charge</a>. Use this list as a guide to code your extras/services. You can use additional codes not on the list such as PARKING or your own service identifier codes generated in your system.</td></tr><tr><td><code>@ID</code></td><td>String</td><td align="center">0..1</td><td>Reference ID for the extra/service provided by the source booking channel.</td></tr><tr><td><code>@ServiceRPH</code></td><td>Integer</td><td align="center">0..1</td><td>Links the <code>Service</code> to a <code>RoomStay</code> or <code>RoomRate</code>. <code>ServiceRPH</code> absence indicates a <code>HotelReservation</code> level charge.</td></tr><tr><td><code>@Inclusive</code></td><td>Boolean</td><td align="center">1</td><td>Must be set to <code>TRUE</code>, as SiteMinder reports totals as inclusive of charges and extras.</td></tr><tr><td><code>@Quantity</code></td><td>Integer</td><td align="center">1</td><td>Number of units included in the charge. This value does not affect the total amount.</td></tr><tr><td><code>Price</code></td><td>Element</td><td align="center">0..1</td><td>Container for pricing details of the service.</td></tr><tr><td><code>Base</code></td><td>Element</td><td align="center">0..1</td><td>Base amount charged for the service.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">0..1</td><td>Use ISO 4217 currency codes.</td></tr><tr><td><code>@AmountAfterTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@AmountBeforeTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>Taxes</code></td><td>Element</td><td align="center">0..1</td><td>Contains details of the taxes applied.</td></tr><tr><td><code>Tax</code></td><td>Element</td><td align="center">1</td><td>Contains specific tax information.</td></tr><tr><td><code>@Code</code></td><td></td><td align="center">1</td><td>Indicates the specific tax or fee that is being transferred. Refer to <a href="/pages/25577kjBcjKCgYHcsgBY">Fee Tax Type (FTT)</a>.</td></tr><tr><td><code>@Percentage</code></td><td>Decimal</td><td align="center">0..1</td><td>Percentage rate of the applied tax.</td></tr><tr><td><code>@Amount</code></td><td>Decimal</td><td align="center">0..1</td><td>Tax amount applied.</td></tr><tr><td><code>TaxDescription</code></td><td>Element</td><td align="center">0..1</td><td>Container for a detailed description of the tax.</td></tr><tr><td><code>Text</code></td><td>Element</td><td align="center">1</td><td>Text description of the tax.</td></tr><tr><td><code>Total</code></td><td>Element</td><td align="center">1</td><td>Container for the total amount of the service.</td></tr><tr><td><code>@CurrencyCode</code></td><td></td><td align="center">0..1</td><td>Use ISO 4217 currency codes.</td></tr><tr><td><code>@AmountAfterTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@AmountBeforeTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>Taxes</code></td><td>Element</td><td align="center">0..1</td><td>Contains details of the taxes applied.</td></tr><tr><td><code>Tax</code></td><td>Element</td><td align="center">1</td><td>Contains specific tax information.</td></tr><tr><td><code>@Code</code></td><td></td><td align="center">1</td><td>Indicates the specific tax or fee that is being transferred. Refer to <a href="/pages/25577kjBcjKCgYHcsgBY">Fee Tax Type (FTT)</a>.</td></tr><tr><td><code>@Percentage</code></td><td>Decimal</td><td align="center">0..1</td><td>Percentage rate of the applied tax.</td></tr><tr><td><code>@Amount</code></td><td>Decimal</td><td align="center">0..1</td><td>Tax amount applied.</td></tr><tr><td><code>TaxDescription</code></td><td>Element</td><td align="center">0..1</td><td>Container for a detailed description of the tax.</td></tr><tr><td><code>Text</code></td><td>Element</td><td align="center">1</td><td>Text description of the tax.</td></tr><tr><td><code>RateDescription</code></td><td>Element</td><td align="center">0..1</td><td>Container for a description of the rate applied to the service.</td></tr><tr><td><code>Text</code></td><td>Element</td><td align="center">1</td><td>A text description of the service/extra.</td></tr><tr><td><code>ServiceDetails</code></td><td>Element</td><td align="center">0..1</td><td>Container for additional service details.</td></tr><tr><td><code>TimeSpan</code></td><td>Element</td><td align="center">1</td><td>Contains the time span for which the service is provided.</td></tr><tr><td><code>@Start</code></td><td>Date</td><td align="center">0..1</td><td>Start date of service.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr><tr><td><code>@End</code></td><td>Date</td><td align="center">0..1</td><td>Last date of service.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr></tbody></table>

### ResGuests

**Guest vs Customer Distinction:**

* **Guests (`ResGuest`):** People staying in the rooms (sent at `RoomStay` level via `ResGuestRPH`)
* **Customer (`Profile ProfileType="1"` in `ResGlobalInfo`):** Person who made the booking or primary contact

These can be the same person or different people.

**Linking Guests to RoomStays:** Using `ResGuestRPH` to link guests to specific RoomStays is optional but recommended because:

* Hotels value knowing which guest is in which room
* Some PMS systems require guest-to-room mapping for proper processing
* Improves data accuracy for multi-room bookings

**Minimum Requirements:**

* At least one guest profile must be provided
* For multi-room bookings, you can send one guest or multiple guests
* If you cannot link guests to rooms, send at least the primary guest

```xml
<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>
						</PersonName>
						<Telephone PhoneNumber="+61123456789"/>
						<Email>test@siteminder.com</Email>
						<Address>
							<AddressLine>200 George St</AddressLine>
							<AddressLine>Level 3</AddressLine>
							<CityName>Sydney</CityName>
							<PostalCode>2000</PostalCode>
							<StateProv>NSW</StateProv>
							<CountryName>Australia</CountryName>
						</Address>
						<CustLoyalty ProgramID="LoyaltyProgramName" MembershipID="123456789" ExpireDate="2020-12-31"/>
						<Document DocID="987654321P" DocType="5" DocHolderNationality="AU" BirthDate="1996-10-05" Gender="Male" BirthCountry="AU" BirthPlace="AU" EffectiveDate="2015-10-05" ExpireDate="2025-10-05" DocIssueAuthority="The Australian Passport Office" DocIssueLocation="Sydney" DocIssueStateProv="NSW" DocIssueCountry="?">
							<DocHolderName>John Smith</DocHolderName>
						</Document>
					</Customer>
				</Profile>
			</ProfileInfo>
		</Profiles>
	</ResGuest>
	<!-- Additional ResGuest elements -->
</ResGuests>
```

<table><thead><tr><th width="260">Element / @Attribute</th><th width="112">Type</th><th width="60" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>ResGuests</code></strong></td><td>Element</td><td align="center">1</td><td>Contains the guests for the reservation.</td></tr><tr><td><code>ResGuest</code></td><td>Element</td><td align="center">1..n</td><td>Contains the specific guest details.</td></tr><tr><td><code>@ResGuestRPH</code></td><td>Integer</td><td align="center">0..1</td><td>Links the <code>ResGuest</code> to <code>RoomStay</code>. Find the links in <a href="#resguestrphs">ResGuestRPHs</a>.</td></tr><tr><td><code>@PrimaryIndicator</code></td><td>Boolean</td><td align="center">0..1</td><td><p>Indicates the primary guest on a reservation:<br><code>1</code> primary guest</p><p><code>0</code> secondary guests</p></td></tr><tr><td><code>@ArrivalTime</code></td><td>Time</td><td align="center">0..1</td><td>Arrival time of the guest.<br>Must use <code>hh:mm:ss</code> format.</td></tr><tr><td><strong><code>Profiles</code></strong></td><td>Element</td><td align="center">1</td><td>Contains the guest profile information.</td></tr><tr><td><code>ProfileInfo</code></td><td>Element</td><td align="center">1</td><td>Contains the profile information for the guest.</td></tr><tr><td><code>Profile</code></td><td>Element</td><td align="center">1</td><td>Contains detailed customer profile information.</td></tr><tr><td><code>@ProfileType</code></td><td>Integer</td><td align="center">1</td><td>Must be set to <code>1</code> (Customer).</td></tr><tr><td><code>Customer</code></td><td>Element</td><td align="center">1</td><td>Contains detailed guest information.</td></tr><tr><td><code>PersonName</code></td><td>Element</td><td align="center">1</td><td>Contains the name information for the guest.</td></tr><tr><td><code>NamePrefix</code></td><td>Element</td><td align="center">0..1</td><td>Title of the guest (e.g., Mr., Mrs., Dr.).</td></tr><tr><td><code>GivenName</code></td><td>Element</td><td align="center">1</td><td>First name of the guest.</td></tr><tr><td><code>Surname</code></td><td>Element</td><td align="center">1</td><td>Last name of the guest.</td></tr><tr><td><code>Telephone</code></td><td>Element</td><td align="center">0..1</td><td>Contains telephone information related to the guest.</td></tr><tr><td><code>@PhoneNumber</code></td><td>String</td><td align="center">1</td><td>Contains the actual number (maximum 32 characters).</td></tr><tr><td><code>Email</code></td><td>Element</td><td align="center">0..1</td><td>Contact email address.</td></tr><tr><td><code>Address</code></td><td>Element</td><td align="center">0..1</td><td>Address information of the guest.</td></tr><tr><td><code>AddressLine</code></td><td>Element</td><td align="center">0..2</td><td>Address lines for the guest.</td></tr><tr><td><code>CityName</code></td><td>Element</td><td align="center">0..1</td><td>City of residence.</td></tr><tr><td><code>PostalCode</code></td><td>Element</td><td align="center">0..1</td><td>Postal code.</td></tr><tr><td><code>StateProv</code></td><td>Element</td><td align="center">0..1</td><td>State or province name.</td></tr><tr><td><code>CountryName</code></td><td>Element</td><td align="center">0..1</td><td>Country name (maximum 64 characters).</td></tr><tr><td><strong><code>CustLoyalty</code></strong></td><td>Element</td><td align="center">0..n</td><td>Contains loyalty information for the guest.</td></tr><tr><td><code>@ProgramID</code></td><td>String</td><td align="center">1</td><td>Defined membership program name or ID applicable to the program.</td></tr><tr><td><code>@MembershipID</code></td><td>String</td><td align="center">1</td><td>Account identification number for this particular member in this particular program.</td></tr><tr><td><code>@ExpireDate</code></td><td>Date</td><td align="center">0..1</td><td>Expiry date for this particular membership record in this particular program.</td></tr><tr><td><strong><code>Document</code></strong></td><td>Element</td><td align="center">0..1</td><td>Detailed document information for the guest.</td></tr><tr><td><code>@BirthCountry</code></td><td>String</td><td align="center">0..1</td><td>Birth country of the document holder. Use <code>ISO 3166 A-2</code> country codes.</td></tr><tr><td><code>@BirthDate</code></td><td>Date</td><td align="center">0..1</td><td>Indicates the date of birth as indicated in the document. Use ISO 8601 date format.</td></tr><tr><td><code>@BirthPlace</code></td><td>String</td><td align="center">0..1</td><td>Specifies the birth place of the document holder (e.g., city, state, county, province).<br><strong>Maximum 64 characters.</strong></td></tr><tr><td><code>@DocHolderNationality</code></td><td>String</td><td align="center">0..1</td><td>Country of nationality of the document holder. Use <code>ISO 3166 A-2</code> country codes.</td></tr><tr><td><code>@DocID</code></td><td>String</td><td align="center">1</td><td>Unique number assigned by authorities to the document.</td></tr><tr><td><code>@DocIssueAuthority</code></td><td>String</td><td align="center">0..1</td><td>Indicates the group or association that granted the document.<br><strong>Maximum 64 characters.</strong></td></tr><tr><td><code>@DocIssueCountry</code></td><td>String</td><td align="center">0..1</td><td>Country where the document was issued. Use <code>ISO 3166 A-2</code> country codes.</td></tr><tr><td><code>@DocIssueLocation</code></td><td>String</td><td align="center">0..1</td><td>Indicates the location where the document was issued.<br><strong>Maximum 64 characters.</strong></td></tr><tr><td><code>@DocIssueStateProv</code></td><td>String</td><td align="center">0..1</td><td>State or Province where the document was issued <strong>(2-8 characters)</strong>.</td></tr><tr><td><code>@DocType</code></td><td>String</td><td align="center">1</td><td>Indicates the type of document. Refer to <a href="/pages/mZ5VhSA8q98aQtJqawjh">Document Type Code (DOC)</a>.</td></tr><tr><td><code>@EffectiveDate</code></td><td>Date</td><td align="center">0..1</td><td>Indicates the starting date.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr><tr><td><code>@ExpireDate</code></td><td>Date</td><td align="center">0..1</td><td>Indicates the ending date.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr><tr><td><code>@Gender</code></td><td>String</td><td align="center">0..1</td><td><p>Identifies the gender:</p><p><code>Female</code></p><p><code>Male</code></p><p><code>Unknown</code></p></td></tr><tr><td><code>DocHolderName</code></td><td>Element</td><td align="center">0..1</td><td>The name of the document holder in unformatted text (Mr. Sam Jones). If no <code>DocHolderName</code> is included, the guest name fields will be assumed as the holder name.</td></tr></tbody></table>

### **ArrivalTransport**

```xml
<ArrivalTransport>
	<TransportInfo Type="Air" ID="QF123" Time="2024-10-05T13:00:00"/>
</ArrivalTransport>
```

<table><thead><tr><th width="254">Element / @Attribute</th><th width="112">Type</th><th width="60" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>ArrivalTransport</code></strong></td><td>Element</td><td align="center">0..1</td><td>Details about transport to the destination.</td></tr><tr><td><code>TransportInfo</code></td><td>Element</td><td align="center">1</td><td>Contains transport mode details used by the guest for arrival.</td></tr><tr><td><code>@Type</code></td><td>String</td><td align="center">0..1</td><td>Type of transport used for arrival, provided by the booking channel.</td></tr><tr><td><code>@ID</code></td><td>String</td><td align="center">0..1</td><td>Transport provider's ID for the mode of transportation (e.g., Flight Number QF123).</td></tr><tr><td><code>@Time</code></td><td>DateTime</td><td align="center">0..1</td><td>Arrival time at the destination.</td></tr></tbody></table>

### **DepartureTransport**

```xml
<DepartureTransport>
	<TransportInfo Type="Air" ID="QF321" Time="2024-10-08T17:00:00"/>
</DepartureTransport>
```

<table><thead><tr><th width="256">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>DepartureTransport</code></strong></td><td>Element</td><td align="center">0..1</td><td>Details about transport from the destination.</td></tr><tr><td><code>TransportInfo</code></td><td>Element</td><td align="center">1</td><td>Contains transport mode details used by the guest for departure.</td></tr><tr><td><code>@Type</code></td><td>String</td><td align="center">0..1</td><td>Type of transport used for departure, provided by the booking channel.</td></tr><tr><td><code>@ID</code></td><td>String</td><td align="center">0..1</td><td>Transport provider's ID for the mode of transportation (e.g., Flight Number QF123).</td></tr><tr><td><code>@Time</code></td><td>DateTime</td><td align="center">0..1</td><td>Departure time from the destination.</td></tr></tbody></table>

### ResGlobalInfo

```xml
<ResGlobalInfo>
	<HotelReservationIDs>
		<HotelReservationID ResID_Type="14" ResID_Value="123456789"/>
	</HotelReservationIDs>
	<!-- ... other elements and attributes have been omitted for brevity ... -->
</ResGlobalInfo>
```

<table><thead><tr><th width="254">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>ResGlobalInfo</code></strong></td><td>Element</td><td align="center">1</td><td>Contains global information about the reservation.</td></tr><tr><td><code>HotelReservationIDs</code></td><td>Element</td><td align="center">0..1</td><td>Contains the <code>HotelReservationID</code>.</td></tr><tr><td><code>HotelReservationID</code></td><td>Element</td><td align="center">1</td><td>Reference number/string or PNR as supplied by the booking channel.</td></tr><tr><td><code>@ResID_Type</code></td><td>String</td><td align="center">1</td><td>Must be set to <code>14</code> (Travel Agent PNR).</td></tr><tr><td><code>@ResID_Value</code></td><td>String</td><td align="center">1</td><td>Actual reference number/string supplied by the booking channel (maximum 64 characters).</td></tr></tbody></table>

### **ResComments**

```xml
<Comments>
	<Comment>
		<Text>See the reservation comments here</Text>
	</Comment>
	<!-- Additional Comment elements -->
</Comments>
```

<table><thead><tr><th width="254">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>Comments</code></strong></td><td>Element</td><td align="center">0..1</td><td>Contains comment for the reservation.</td></tr><tr><td><code>Comment</code></td><td>Element</td><td align="center">1..n</td><td>Holds the actual comment.</td></tr><tr><td><code>Text</code></td><td>String</td><td align="center">1</td><td><p>Content of the comment.</p><p>PCI sensitive data is prohibited.</p></td></tr></tbody></table>

### ReservationTotal

**Discount Handling:** SiteConnect does not have a specific discount field. Discounts should be applied to the total amounts in:

* Reservation Total (`ResGlobalInfo/Total`)
* RoomStay Total
* Daily Rate Totals

**Best practice:** Include a comment explaining the discount applied (e.g., "Early Bird 15% discount applied").

```xml
<Total CurrencyCode="EUR" AmountBeforeTax="558.00" AmountAfterTax="620.00">
	<Taxes>
		<Tax Type="inclusive" Code="35" Amount="62.00" CurrencyCode="EUR"/>
	</Taxes>
	<TPA_Extensions>
		<Total includesCommission="true"/>
	</TPA_Extensions>
</Total>
```

<table><thead><tr><th width="254">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>Total</code></strong></td><td>Element</td><td align="center">1</td><td>Total amount for the reservation. This includes all <code>RoomStays</code> and any additional fees or charges that apply.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">1</td><td>Use <code>ISO 4217</code> currency codes.</td></tr><tr><td><code>@AmountBeforeTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>@AmountAfterTax</code></td><td>Decimal</td><td align="center">0..1</td><td>At least one of <code>AmountAfterTax</code> or <code>AmountBeforeTax</code> must be set.</td></tr><tr><td><code>Taxes</code></td><td>Element</td><td align="center">0..1</td><td>Contains details of the taxes applied.</td></tr><tr><td><code>Tax</code></td><td>Element</td><td align="center">1</td><td>Contains specific tax information.</td></tr><tr><td><code>@Type</code></td><td>String</td><td align="center">0..1</td><td><p>Indicates whether the tax is:</p><p><code>inclusive</code></p><p><code>exclusive</code></p><p><code>cumulative</code></p></td></tr><tr><td><code>@Code</code></td><td>String</td><td align="center">0..1</td><td>Indicates the specific tax or fee that is being transferred. Refer to <a href="/pages/25577kjBcjKCgYHcsgBY">Fee Tax Type (FTT)</a>.</td></tr><tr><td><code>@Amount</code></td><td>Decimal</td><td align="center">0..1</td><td>Tax amount applied.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">0..1</td><td>Use ISO 4217 currency codes.</td></tr><tr><td><code>TPA_Extensions</code></td><td>Element</td><td align="center">0..1</td><td>Indicates if the reservation is using the <code>Net</code> amount or <code>Gross</code> amount. Required if the booking channel uses the <code>Commission Percentage</code> feature.</td></tr><tr><td><code>Total</code></td><td>Element</td><td align="center">1</td><td>Contains the <code>includesCommission</code> information.</td></tr><tr><td><code>@includesCommission</code></td><td>Boolean</td><td align="center">1</td><td><p><code>false</code> uses Net Amount.</p><p><code>true</code> uses Gross Amount.</p><p>When <code>includesCommission</code> is set, all RoomRate and RoomStay level totals will be considered as Net or Gross amounts based on this value.</p></td></tr></tbody></table>

### **Guarantee**

**Virtual Credit Cards (VCC)**: If a booking channel supports Virtual Credit Cards (VCC), it is essential to ensure that VCC details are updated in accordance with any reservation modifications or cancellations. This is critical for maintaining accurate payment information and ensuring that charges align with the updated booking details, especially in cases where reservations are amended or canceled after the initial transaction.

In the event of a cancellation, the **TPA\_Extensions** section must either be removed entirely, or the **VCCCurrentBalance** should be set to `0.00`. Alternatively, the **VCCCurrentBalance** can be updated to reflect the amount permitted by the cancellation policy, indicating how much the hotel can still charge from the VCC for the canceled reservation.

{% tabs %}
{% tab title="Virtual Credit Card" %}

```xml
<Guarantee>
	<GuaranteesAccepted>
		<GuaranteeAccepted>
			<PaymentCard CardType="1" CardCode="MC" CardNumber="4321432143214321" SeriesCode="123" ExpireDate="1234">
				<CardHolderName>John Smith</CardHolderName>
				<TPA_Extensions>
					<VirtualCreditCard isVCC="true" VCCActivationDate="2024-09-05" VCCCurrencyCode="EUR" VCCCurrentBalance="620.00" VCCDeactivationDate="2024-10-08"/>
				</TPA_Extensions>
			</PaymentCard>
		</GuaranteeAccepted>
	</GuaranteesAccepted>
</Guarantee>
```

{% endtab %}

{% tab title="Credit Card " %}

```xml
<Guarantee>
	<GuaranteesAccepted>
		<GuaranteeAccepted>
			<PaymentCard CardType="1" CardCode="MC" CardNumber="4321432143214321" SeriesCode="123" ExpireDate="1234">
				<CardHolderName>John Smith</CardHolderName>
			</PaymentCard>
		</GuaranteeAccepted>
	</GuaranteesAccepted>
</Guarantee>
```

{% endtab %}

{% tab title="ThreeDomainSecurity" %}

```xml
<Guarantee>
	<GuaranteesAccepted>
		<GuaranteeAccepted>
			<PaymentCard CardType="1" CardCode="MC" CardNumber="4321432143214321" SeriesCode="123" ExpireDate="1234">
				<CardHolderName>John Smith</CardHolderName>
				<ThreeDomainSecurity>
					<Results ThreeDSVersion="1.0.2" XID="z9UKb06xLziZMOXBEmWSVA1kwG0=" CAVV="MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=" ECI="05" />
				</ThreeDomainSecurity>
			</PaymentCard>
		</GuaranteeAccepted>
	</GuaranteesAccepted>
</Guarantee>
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="274">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>Guarantee</code></strong></td><td>Element</td><td align="center">0..1</td><td>Guarantee provided with the reservation. Used if no deposit is paid for the reservation.</td></tr><tr><td><code>GuaranteesAccepted</code></td><td>Element</td><td align="center">1</td><td>Contains the details of accepted guarantees.</td></tr><tr><td><code>GuaranteeAccepted</code></td><td>Element</td><td align="center">1</td><td>Specific details of the accepted guarantee.</td></tr><tr><td><code>PaymentCard</code></td><td>Element</td><td align="center">1</td><td>Details of the payment card used for the guarantee.</td></tr><tr><td><code>@CardType</code></td><td>String</td><td align="center">0..1</td><td>Must be set to <code>1</code> (Credit Card).</td></tr><tr><td><code>@CardCode</code></td><td>String</td><td align="center">1</td><td>2-character code of the credit card issuer. Refer to <a href="/pages/Iqs1qAbBKAcBqhyyZHQt">Payment Card Provider Codes</a>.</td></tr><tr><td><code>@CardNumber</code></td><td>String</td><td align="center">0..1</td><td><p>Actual credit card number. Length must not exceed 19 digits.</p><p>Required if <code>ExpireDate</code> or <code>ThreeDomainSecurity</code> is provided.</p></td></tr><tr><td><code>@SeriesCode</code></td><td>String</td><td align="center">0..1</td><td>Security number of the card. Only passed through if the booking channel uses <strong>Reservation Notification Email</strong>. Not stored for PCI compliance.</td></tr><tr><td><code>@ExpireDate</code></td><td>String</td><td align="center">0..1</td><td>Expiry date of the credit card (format <code>MMyy</code>).<br>Required if <code>CardNumber</code> is provided.</td></tr><tr><td><code>CardHolderName</code></td><td>Element</td><td align="center">0..1</td><td>Name of the cardholder.</td></tr><tr><td><code>ThreeDomainSecurity</code></td><td>Element</td><td align="center">0..1</td><td>Contains 3DS (Three Domain Security) transaction details.</td></tr><tr><td><code>Results</code></td><td>Element</td><td align="center">1</td><td>Transaction results.</td></tr><tr><td><code>@ThreeDSVersion</code></td><td>String</td><td align="center">1</td><td>3DS version used for authentication.</td></tr><tr><td><code>@XID</code></td><td>String</td><td align="center">0..1</td><td><p>Transaction identifier resulting from authentication processing.</p><p>When <code>ThreeDSVersion</code> = 1.x.x the transaction identifier MUST be provided in the <code>@XID</code> attribute.</p></td></tr><tr><td><code>@DSTransactionID</code></td><td>String</td><td align="center">0..1</td><td><p>Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.</p><p>When <code>ThreeDSVersion</code> = 2.x.x the transaction identifier MUST be provided in the <code>@DSTransactionID</code> attribute.</p></td></tr><tr><td><code>@CAVV</code></td><td>String</td><td align="center">1</td><td>Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)</td></tr><tr><td><code>@ECI</code></td><td>String</td><td align="center">1</td><td>Refer to <a href="https://developer.siteminder.com/siteminder-apis/additional-resources/reference-tables/strong-customer-authentication-codes#electronic-commerce-indicator">Electronic Commerce Indicator</a>.</td></tr><tr><td><code>@PAResStatus</code></td><td>String</td><td align="center">0..1</td><td>Refer to <a href="https://developer.siteminder.com/siteminder-apis/additional-resources/reference-tables/strong-customer-authentication-codes#transactions-status-result-identifier">Transactions Status Result Identifier</a>.</td></tr><tr><td><code>@SignatureVerification</code></td><td>String</td><td align="center">0..1</td><td>Refer to <a href="https://developer.siteminder.com/siteminder-apis/additional-resources/reference-tables/strong-customer-authentication-codes#transaction-signature-status">Transaction Signature Status</a>.</td></tr><tr><td><code>@Enrolled</code></td><td>String</td><td align="center">0..1</td><td>Refer to <a href="https://developer.siteminder.com/siteminder-apis/additional-resources/reference-tables/strong-customer-authentication-codes#status-of-authentication">Status of Authentication</a>.</td></tr><tr><td><code>TPA_Extensions</code></td><td>Element</td><td align="center">0..1</td><td>Additional elements for the transaction.</td></tr><tr><td><code>VirtualCreditCard</code></td><td>Element</td><td align="center">1</td><td>Denotes that the payment card is a virtual credit card.</td></tr><tr><td><code>@isVCC</code></td><td>Boolean</td><td align="center">1</td><td>Must be set to <code>true</code>.</td></tr><tr><td><code>@VCCActivationDate</code></td><td>Date</td><td align="center">0..1</td><td>Date from when the card can be charged.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr><tr><td><code>@VCCDeactivationDate</code></td><td>Date</td><td align="center">0..1</td><td>Date from when the card is no longer chargeable.<br>Must use <code>YYYY-MM-DD</code> format.</td></tr><tr><td><code>@VCCCurrentBalance</code></td><td>Decimal</td><td align="center">0..1</td><td>Total amount that can be charged to the card. If the reservation is modified or canceled, an updated balance should be sent indicating the new total amount that can be charged to the card. If the amount changes to <code>0</code> as a result of cancellation, the cancellation should be sent with a <code>0</code> balance.</td></tr><tr><td><code>@VCCCurrencyCode</code></td><td>String</td><td align="center">0..1</td><td>Must be included if there is <code>@VCCCurrentBalance</code>. Use <code>ISO 4217</code> currency codes.</td></tr></tbody></table>

### **DepositPayments**

**Virtual Credit Cards (VCC)**: If a booking channel supports Virtual Credit Cards (VCC), it is essential to ensure that VCC details are updated in accordance with any reservation modifications or cancellations. This is critical for maintaining accurate payment information and ensuring that charges align with the updated booking details, especially in cases where reservations are amended or canceled after the initial transaction.

In the event of a cancellation, the **TPA\_Extensions** section must either be removed entirely, or the **VCCCurrentBalance** should be set to `0.00`. Alternatively, the **VCCCurrentBalance** can be updated to reflect the amount permitted by the cancellation policy, indicating how much the hotel can still charge from the VCC for the canceled reservation.

{% tabs %}
{% tab title="Virtual Credit Card" %}
{% code expandable="true" %}

```xml
<DepositPayments>
	<GuaranteePayment>
		<AcceptedPayments>
			<AcceptedPayment>
				<PaymentCard CardType="1" CardCode="MC" CardNumber="4321432143214321" SeriesCode="123" ExpireDate="1234">
					<CardHolderName>John Smith</CardHolderName>
					<TPA_Extensions>
						<VirtualCreditCard isVCC="true" VCCActivationDate="2021-08-23" VCCDeactivationDate="2021-09-19" VCCCurrentBalance="100.00" VCCCurrencyCode="EUR"/>
					</TPA_Extensions>
				</PaymentCard>
			</AcceptedPayment>
		</AcceptedPayments>
		<AmountPercent Amount="90.00" CurrencyCode="EUR"/>
	</GuaranteePayment>
</DepositPayments>
```

{% endcode %}
{% endtab %}

{% tab title="Credit Card " %}
{% code expandable="true" %}

```xml
<DepositPayments>
	<GuaranteePayment>
		<AcceptedPayments>
			<AcceptedPayment>
				<PaymentCard CardType="1" CardCode="MC" CardNumber="4321432143214321" SeriesCode="123" ExpireDate="1234">
					<CardHolderName>John Smith</CardHolderName>
				</PaymentCard>
			</AcceptedPayment>
		</AcceptedPayments>
		<AmountPercent Amount="90.00" CurrencyCode="EUR"/>
	</GuaranteePayment>
</DepositPayments>
```

{% endcode %}
{% endtab %}

{% tab title="ThreeDomainSecurity" %}
{% code expandable="true" %}

```xml
<DepositPayments>
	<GuaranteePayment>
		<AcceptedPayments>
			<AcceptedPayment>
				<PaymentCard CardType="1" CardCode="MC" CardNumber="4321432143214321" SeriesCode="123" ExpireDate="1234">
					<CardHolderName>John Smith</CardHolderName>
					<ThreeDomainSecurity>
						<Results ThreeDSVersion="1.0.2" XID="z9UKb06xLziZMOXBEmWSVA1kwG0=" CAVV="MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=" ECI="05" />
					</ThreeDomainSecurity>
				</PaymentCard>
			</AcceptedPayment>
		</AcceptedPayments>
		<AmountPercent Amount="90.00" CurrencyCode="EUR"/>
	</GuaranteePayment>
</DepositPayments>
```

{% endcode %}
{% endtab %}

{% tab title="Deposit Only" %}

```xml
<DepositPayments>
	<GuaranteePayment>
		<AmountPercent Amount="90.00" CurrencyCode="EUR"/>
	</GuaranteePayment>
</DepositPayments>
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="270">Element / @Attribute</th><th width="112">Type</th><th width="58" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>DepositPayments</code></strong></td><td>Element</td><td align="center">0..1</td><td>Deposit provided with the reservation.</td></tr><tr><td><code>GuaranteePayment</code></td><td>Element</td><td align="center">1</td><td>Contains details of the payment guarantee for the reservation.</td></tr><tr><td><code>AcceptedPayments</code></td><td>Element</td><td align="center">0..1</td><td>Contains the accepted payment methods.</td></tr><tr><td><code>AcceptedPayment</code></td><td>Element</td><td align="center">1</td><td>Specific payment method accepted.</td></tr><tr><td><code>PaymentCard</code></td><td>Element</td><td align="center">1</td><td>Details of the payment card used for the guarantee.</td></tr><tr><td><code>@CardType</code></td><td>String</td><td align="center">0..1</td><td>Must be set to <code>1</code> (Credit Card).</td></tr><tr><td><code>@CardCode</code></td><td>String</td><td align="center">1</td><td>2-character code of the credit card issuer. Refer to <a href="https://developer.siteminder.com/sm-apis/additional-resources/reference-tables/payment-card-provider-codes">Payment Card Provider Codes</a>.</td></tr><tr><td><code>@CardNumber</code></td><td>String</td><td align="center">0..1</td><td>Actual credit card number. Length must not exceed 19 digits.</td></tr><tr><td><code>@SeriesCode</code></td><td>String</td><td align="center">0..1</td><td>Security number of the card. Only passed through if the booking channel uses <strong>Reservation Notification Email</strong>. Not stored for PCI compliance.</td></tr><tr><td><code>@ExpireDate</code></td><td>String</td><td align="center">0..1</td><td>Expiry date of the credit card (format <code>MMyy</code>).</td></tr><tr><td><code>CardHolderName</code></td><td>Element</td><td align="center">0..1</td><td>Name of the cardholder.</td></tr><tr><td><code>ThreeDomainSecurity</code></td><td>Element</td><td align="center">0..1</td><td>Contains 3DS (Three Domain Security) transaction details.</td></tr><tr><td><code>Results</code></td><td>Element</td><td align="center">1</td><td>Transaction results.</td></tr><tr><td><code>@ThreeDSVersion</code></td><td>Element</td><td align="center">1</td><td>3DS version used for authentication.</td></tr><tr><td><code>@XID</code></td><td>String</td><td align="center">0..1</td><td><p>Transaction identifier resulting from authentication processing.</p><p>When <code>ThreeDSVersion</code> = 1.x.x the transaction identifier MUST be provided in the <code>@XID</code> attribute.</p></td></tr><tr><td><code>@DSTransactionID</code></td><td>String</td><td align="center">0..1</td><td><p>Unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.</p><p>When <code>ThreeDSVersion</code> = 2.x.x the transaction identifier MUST be provided in the <code>@DSTransactionID</code> attribute.</p></td></tr><tr><td><code>@CAVV</code></td><td>String</td><td align="center">0..1</td><td>Cardholder Authentication Verification Value (CAVV); Authentication Verification Value (AVV); Universal Cardholder Authentication Field (UCAF)</td></tr><tr><td><code>@ECI</code></td><td>String</td><td align="center">1</td><td>Refer to <a href="https://developer.siteminder.com/sm-apis/additional-resources/reference-tables/strong-customer-authentication-codes#electronic-commerce-indicator">Electronic Commerce Indicator</a>.</td></tr><tr><td><code>@PAResStatus</code></td><td>String</td><td align="center">0..1</td><td>Refer to <a href="https://developer.siteminder.com/sm-apis/additional-resources/reference-tables/strong-customer-authentication-codes#transactions-status-result-identifier">Transactions Status Result Identifier</a>.</td></tr><tr><td><code>@SignatureVerification</code></td><td>String</td><td align="center">0..1</td><td>Refer to <a href="https://developer.siteminder.com/sm-apis/additional-resources/reference-tables/strong-customer-authentication-codes#transaction-signature-status">Transaction Signature Status</a>.</td></tr><tr><td><code>@Enrolled</code></td><td>String</td><td align="center">0..1</td><td>Refer to <a href="https://developer.siteminder.com/sm-apis/additional-resources/reference-tables/strong-customer-authentication-codes#status-of-authentication">Status of Authentication</a>.</td></tr><tr><td><code>TPA_Extensions</code></td><td>Element</td><td align="center">0..1</td><td>Additional elements for the transaction.</td></tr><tr><td><code>VirtualCreditCard</code></td><td>Element</td><td align="center">1</td><td>Denotes that the payment card is a virtual credit card.</td></tr><tr><td><code>@isVCC</code></td><td>Boolean</td><td align="center">1</td><td>Must be set to <code>true</code>.</td></tr><tr><td><code>@VCCActivationDate</code></td><td>Date</td><td align="center">0..1</td><td>Date from when the card can be charged.</td></tr><tr><td><code>@VCCDeactivationDate</code></td><td>Date</td><td align="center">0..1</td><td>Date from when the card is no longer chargeable.</td></tr><tr><td><code>@VCCCurrentBalance</code></td><td>Decimal</td><td align="center">0..1</td><td>Total amount that can be charged to the card. If the reservation is modified or canceled, an updated balance should be sent indicating the new total amount that can be charged to the card. If the amount changes to <code>0</code> as a result of cancellation, the cancellation should be sent with a <code>0</code> balance.</td></tr><tr><td><code>@VCCCurrencyCode</code></td><td>String</td><td align="center">0..1</td><td>Must be included if there is <code>@VCCCurrentBalance</code>. Use ISO 4217 currency codes.</td></tr><tr><td><code>AmountPercent</code></td><td>Element</td><td align="center">1</td><td>Mandatory when something is passed in the <code>DepositPayment</code> element.</td></tr><tr><td><code>@Amount</code></td><td>Decimal</td><td align="center">1</td><td>Amount charged as deposit.</td></tr><tr><td><code>@CurrencyCode</code></td><td>String</td><td align="center">1</td><td>Use ISO 4217 currency codes.</td></tr></tbody></table>

### Customer / Corporate / TravelAgent

{% tabs %}
{% tab title="Customer" %}
**Customer:** The individual who made the booking and serves as the primary contact for the reservation. This may or may not be the same person as the guest staying in the room.

{% code overflow="wrap" expandable="true" %}

```xml
<Profiles>
	<ProfileInfo>
		<Profile ProfileType="1">
			<Customer>
				<PersonName>
					<NamePrefix>Mr</NamePrefix>
					<GivenName>John</GivenName>
					<Surname>Smith</Surname>
				</PersonName>
				<Telephone PhoneNumber="0266564100"/>
				<Email>johnsmith@mail.com</Email>
				<Address>
					<AddressLine>1 George St</AddressLine>
					<AddressLine>CBD</AddressLine>
					<CityName>Sydney</CityName>
					<PostalCode>2000</PostalCode>
					<StateProv>NSW</StateProv>
					<CountryName>Australia</CountryName>
				</Address>
			</Customer>
		</Profile>
	</ProfileInfo>
	<!-- Additional ProfileInfo elements -->
</Profiles>
```

{% endcode %}
{% endtab %}

{% tab title="Corporate" %}
**Corporate:** The company or organisation associated with the booking, typically where a negotiated corporate rate applies or the reservation is billed to a company account.

{% code overflow="wrap" expandable="true" %}

```xml
<Profiles>
	<ProfileInfo>
		<Profile ProfileType="1">
			<!-- ... other elements and attributes have been omitted for brevity ... -->
		</Profile>
	</ProfileInfo>
	<ProfileInfo>
		<Profile ProfileType="3">
			<CompanyInfo>
			<UniqueID ID="CORP"/>
				<CompanyName>COMPANY</CompanyName>
				<TelephoneInfo PhoneNumber="0266564101"/>
				<Email>contact@company.com</Email>
				<AddressInfo>
					<AddressLine>3 George St</AddressLine>
					<AddressLine>CBD</AddressLine>
					<CityName>Sydney</CityName>
					<PostalCode>2000</PostalCode>
					<StateProv>NSW</StateProv>
					<CountryName>Australia</CountryName>
				</AddressInfo>
			</CompanyInfo>
		</Profile>
	</ProfileInfo>
	<!-- Additional ProfileInfo element -->
</Profiles>
```

{% endcode %}
{% endtab %}

{% tab title="Travel Agent" %}
**Travel Agent:** The agency or intermediary through which the booking was sourced, typically identified by an IATA or ARC number. The hotel may owe commission to this party for the booking.

{% code overflow="wrap" expandable="true" %}

```xml
<Profiles>
	<ProfileInfo>
		<Profile ProfileType="1">
			<!-- ... other elements and attributes have been omitted for brevity ... -->
		</Profile>
	</ProfileInfo>
	<!-- Additional ProfileInfo element -->
	<ProfileInfo>
		<Profile ProfileType="4">
		<UniqueID ID="56789"/>
			<CompanyInfo>
				<CompanyName>TRAVEL AGENT LTD</CompanyName>
				<TelephoneInfo PhoneNumber="0266564100"/>
				<Email>contact@travelagent.com</Email>
				<AddressInfo>
					<AddressLine>4 George St</AddressLine>
					<AddressLine>CBD</AddressLine>
					<CityName>Sydney</CityName>
					<PostalCode>2000</PostalCode>
					<StateProv>NSW</StateProv>
					<CountryName>Australia</CountryName>
				</AddressInfo>
			</CompanyInfo>
		</Profile>
	</ProfileInfo>
</Profiles>
```

{% endcode %}
{% endtab %}
{% endtabs %}

<table><thead><tr><th width="254">Element / @Attribute</th><th width="112">Type</th><th width="60" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>Profiles</code></strong></td><td>Element</td><td align="center">1</td><td>Contains the profiles related to the reservation, including the customer, corporate and/or travel agent.</td></tr><tr><td><code>ProfileInfo</code></td><td>Element</td><td align="center">1..3</td><td>Contains information about the profile type.</td></tr><tr><td><code>Profile</code></td><td>Element</td><td align="center">1</td><td>Contains profile details, such as customer, company, or travel agent information.</td></tr><tr><td><code>@ProfileType</code></td><td>String</td><td align="center">1</td><td><p>Defines the type of profile:</p><p><code>1</code> Customer (mandatory)</p><p><code>3</code> Corporate (optional)</p><p><code>4</code> Travel Agent (optional)</p></td></tr><tr><td><code>UniqueID</code></td><td>Element</td><td align="center">0..1</td><td>Only used on <code>ProfileType</code> <code>3</code> (Corporate) and <code>ProfileType</code> <code>4</code> (Travel Agent) to identify the unique ID of the agent.</td></tr><tr><td><code>@ID</code></td><td>String</td><td align="center">1</td><td>Identification number, such as a corporate ID or travel agent ID (e.g., IATA code).</td></tr><tr><td><code>Customer</code></td><td>Element</td><td align="center">1</td><td>Used for <code>ProfileType 1</code> to contain customer details.</td></tr><tr><td><code>PersonName</code></td><td>Element</td><td align="center">1</td><td>Contains the name information for the customer.</td></tr><tr><td><code>NamePrefix</code></td><td>Element</td><td align="center">0..1</td><td>Title of the customer (e.g., Mr., Mrs., Dr.).</td></tr><tr><td><code>GivenName</code></td><td>Element</td><td align="center">1</td><td>First name of the customer.</td></tr><tr><td><code>Surname</code></td><td>Element</td><td align="center">1</td><td>Last name of the customer.</td></tr><tr><td><code>CompanyInfo</code></td><td>Element</td><td align="center">1</td><td>Used for <code>ProfileType 3</code> (Corporate) and <code>ProfileType 4</code> (Travel Agent) to contain company information.</td></tr><tr><td><code>CompanyName</code></td><td>Element</td><td align="center">1</td><td>Name of the company.</td></tr><tr><td><code>Telephone</code></td><td>Element</td><td align="center">0..1</td><td>Contains telephone information related to the profile.</td></tr><tr><td><code>TelephoneInfo</code></td><td>Element</td><td align="center">0..1</td><td>Only used for <code>ProfileType 3</code> (Corporate) and <code>ProfileType 4</code> (Travel Agent)</td></tr><tr><td><code>@PhoneNumber</code></td><td>String</td><td align="center">1</td><td>Contains the actual number (maximum 32 characters).</td></tr><tr><td><code>Email</code></td><td>Element</td><td align="center">0..1</td><td>Contact email address related to the profile.</td></tr><tr><td><code>Address</code></td><td>Element</td><td align="center">0..1</td><td>Address information for the profile.</td></tr><tr><td><code>AddressInfo</code></td><td>Element</td><td align="center">0..1</td><td>Only used for <code>ProfileType 3</code> (Corporate) and <code>ProfileType 4</code> (Travel Agent)</td></tr><tr><td><code>AddressLine</code></td><td>Element</td><td align="center">0..2</td><td>One or more address lines for the profile.</td></tr><tr><td><code>CityName</code></td><td>Element</td><td align="center">0..1</td><td>City of the profile's residence.</td></tr><tr><td><code>PostalCode</code></td><td>Element</td><td align="center">0..1</td><td>Postal code of the profile.</td></tr><tr><td><code>StateProv</code></td><td>Element</td><td align="center">0..1</td><td>State or province of the profile's residence.</td></tr><tr><td><code>CountryName</code></td><td>Element</td><td align="center">0..1</td><td>Country of the profile's residence (maximum 64 characters).</td></tr></tbody></table>

## **2. Confirmation Response**

**Reservation Confirmation and Response Handling**: SiteMinder does not have the authority to allow or deny reservations. The `OTA_HotelResNotifRS` response simply confirms whether SiteMinder has successfully received the reservation delivery message or notification request, indicating `Success` or `Error`. It is important to note that SiteMinder only acknowledges receipt of the reservation message and does not influence the booking process on your end.

{% tabs %}
{% tab title="Success" %}

```xml
<OTA_HotelResNotifRS
	xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
	<Success/>
	<HotelReservations>
		<HotelReservation>
			<UniqueID Type="14" ID="123456789"/>
			<ResGlobalInfo>
				<HotelReservationIDs>
					<HotelReservationID ResID_Type="14" ResID_Value="ABC-123456789"/>
				</HotelReservationIDs>
			</ResGlobalInfo>
		</HotelReservation>
	</HotelReservations>
</OTA_HotelResNotifRS>
```

{% endtab %}

{% tab title="Error" %}

```xml
<OTA_HotelResNotifRS
	xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2024-07-06T15:27:41+00:00" Version="1.0">
	<Errors>
		<Error Type="6">Hotel not found for HotelCode=HOTELCODE</Error>
	</Errors>
</OTA_HotelResNotifRS>
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="257">Element / @Attribute</th><th width="108">Type</th><th width="62" align="center">M</th><th>Description</th></tr></thead><tbody><tr><td><code>OTA_HotelResNotifRS</code></td><td>Element</td><td align="center">1</td><td>Root element for the response.</td></tr><tr><td><code>@xmlns</code></td><td>String</td><td align="center">1</td><td>Defines the XML namespace for the request. Will be set to <code>http://www.opentravel.org/OTA/2003/05</code></td></tr><tr><td><code>@EchoToken</code></td><td>String</td><td align="center">1</td><td>Unique identifier for the request, used to match requests and responses.</td></tr><tr><td><code>@TimeStamp</code></td><td>DateTime</td><td align="center">1</td><td>Time when the response was generated.</td></tr><tr><td><code>@Version</code></td><td>String</td><td align="center">1</td><td>Specifies the API version. Will be set to <code>1.0</code>.</td></tr><tr><td><code>Success</code></td><td>Element</td><td align="center">0..1</td><td>Indicates successful processing of the request.</td></tr><tr><td><code>HotelReservations</code></td><td>Element</td><td align="center">1</td><td>Contains details of the reservation made.</td></tr><tr><td><code>HotelReservation</code></td><td>Element</td><td align="center">1</td><td>Individual hotel reservation information.</td></tr><tr><td><code>UniqueID</code></td><td>Element</td><td align="center">1</td><td>Unique identifier for the reservation.</td></tr><tr><td><code>@Type</code></td><td>String</td><td align="center">1</td><td>Will be set to <code>14</code> (Reservation).</td></tr><tr><td><code>@ID</code></td><td>String</td><td align="center">1</td><td>Actual confirmation number.</td></tr><tr><td><code>ResGlobalInfo</code></td><td>Element</td><td align="center">1</td><td>Contains global information about the reservation.</td></tr><tr><td><code>HotelReservationIDs</code></td><td>Element</td><td align="center">1</td><td>Contains the <code>HotelReservationID</code>.</td></tr><tr><td><code>HotelReservationID</code></td><td>Element</td><td align="center">1</td><td>Reference number/string or PNR.</td></tr><tr><td><code>@ResID_Type</code></td><td>String</td><td align="center">1</td><td>Will be set to <code>14</code> (Travel Agent PNR).</td></tr><tr><td><code>@ResID_Value</code></td><td>String</td><td align="center">1</td><td>The identifier of the reservation created by SiteMinder.</td></tr><tr><td><code>Errors</code></td><td>Element</td><td align="center">0..1</td><td>Indicates an error occurred during the processing of the request.</td></tr><tr><td><code>Error</code></td><td>Element</td><td align="center">1..n</td><td>Single error information containing free text.</td></tr><tr><td><code>@Type</code></td><td>Integer</td><td align="center">1</td><td>Type of error. Refer to <a href="/pages/eTWh81Gq6djsnm0unSR4">Error Warning Types (EWT)</a>.</td></tr><tr><td><code>@Code</code></td><td>Integer</td><td align="center">0..1</td><td>Code representing the error. Refer to <a href="/pages/4gDxPCSFeyblWHTelhiH">Error Codes (ERR)</a>.</td></tr></tbody></table>

## Reservation XML Samples <a href="#reservation-xml-samples" id="reservation-xml-samples"></a>

<details>

<summary>Maximum Content XML</summary>

This example provides a general XML for a reservation that includes a service at the `RoomStay` level, along with a guarantee using a virtual credit card. This example is designed to demonstrate the structure and key elements for such a booking scenario. Variations of this reservation can be created based on specific requirements, as long as they adhere to the [specifications](https://developer.siteminder.com/siteminder-apis/channels/introduction/siteconnect/api-reference/reservations).

The `<!-- Additional ... elements -->` comments within the XML indicate areas where further elements may be added if needed for other configurations.

```xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
	<SOAP-ENV:Header>
		<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP-ENV:mustUnderstand="1">
			<wsse:UsernameToken>
				<wsse:Username>USERNAME</wsse:Username>
				<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
			</wsse:UsernameToken>
		</wsse:Security>
	</SOAP-ENV:Header>
	<SOAP-ENV:Body>
		<OTA_HotelResNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" ResStatus="Commit" EchoToken="ed8835ff-6198-4f38-b589-3058397f677c" TimeStamp="2026-07-06T15:27:41+00:00" Version="1.0">
			<POS>
				<Source>
					<RequestorID Type="22" ID="ABC"/>
					<BookingChannel Primary="true">
						<CompanyName Code="ABC">Channel Name</CompanyName>
					</BookingChannel>
				</Source>
				<Source>
					<BookingChannel Primary="false">
						<CompanyName Code="CBA">Affiliated Channel</CompanyName>
					</BookingChannel>
				</Source>
			</POS>
			<HotelReservations>
				<HotelReservation CreateDateTime="2026-07-06T15:27:41+00:00" LastModifyDateTime="2026-07-06T15:27:41+00:00">
					<UniqueID Type="14" ID="123456789"/>
					<RoomStays>
						<RoomStay PromotionCode="AUTUNM2024">
							<RoomTypes>
								<RoomType RoomTypeCode="TPL">
									<RoomDescription Name="Triple Room">Double bed and single bed.</RoomDescription>
								</RoomType>
							</RoomTypes>
							<RatePlans>
								<RatePlan RatePlanCode="BAR">
									<RatePlanDescription>Best Available Rate.</RatePlanDescription>
									<Commission>
										<CommissionPayableAmount Amount="60.00" CurrencyCode="EUR"/>
									</Commission>
									<MealsIncluded MealPlanCode="14"/>
									<!-- Additional MealsIncluded elements -->
								</RatePlan>
							</RatePlans>
							<RoomRates>
								<RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
									<Rates>
										<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2026-10-05" ExpireDate="2026-10-08">
											<Base AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
												<Taxes>
													<Tax Type="inclusive" Code="35" Amount="62.00" CurrencyCode="EUR"/>
													<!-- Additional Tax elements -->
												</Taxes>
											</Base>
											<Total AmountBeforeTax="558.00" AmountAfterTax="620.00" CurrencyCode="EUR">
												<Taxes>
													<Tax Type="inclusive" Code="35" Amount="62.00" CurrencyCode="EUR"/>
													<!-- Additional Tax elements -->
												</Taxes>
											</Total>
										</Rate>
									</Rates>
									<!-- Additional Rates elements -->
								</RoomRate>
							</RoomRates>
							<GuestCounts>
								<GuestCount AgeQualifyingCode="10" Count="2"/>
								<GuestCount AgeQualifyingCode="8" Age="7" Count="1"/>
								<GuestCount AgeQualifyingCode="8" Age="10" Count="1"/>
								<GuestCount AgeQualifyingCode="7" Count="1"/>
								<!-- Additional GuestCount elements -->
							</GuestCounts>
							<TimeSpan Start="2026-10-05" End="2026-10-08"/>
							<Total AmountBeforeTax="565.50" AmountAfterTax="628.25" CurrencyCode="EUR">
								<Taxes>
									<Tax Type="inclusive" Code="35" Amount="62.75" CurrencyCode="EUR"/>
									<!-- Additional Tax elements -->
								</Taxes>
							</Total>
							<BasicPropertyInfo HotelCode="HOTELCODE" HotelName="The Hotel Name"/>
							<ResGuestRPHs>
								<ResGuestRPH RPH="1"/>
								<!-- Additional ResGuestRPH elements -->
							</ResGuestRPHs>
							<ServiceRPHs>
								<ServiceRPH RPH="1"/>
								<!-- Additional ServiceRPH elements -->
							</ServiceRPHs>
							<Comments>
								<Comment>
									<Text>Please, add some extra towels</Text>
								</Comment>
							</Comments>
							<SpecialRequests>
								<SpecialRequest Name="Extra Bed">
									<Text>Yes</Text>
								</SpecialRequest>
							</SpecialRequests>
						</RoomStay>
						<!-- Additional RoomStay elements -->
					</RoomStays>
					<Services>
						<Service ServiceInventoryCode="EXTRA_BED" Inclusive="true" ServiceRPH="1" Quantity="1" ID="12346">
							<Price>
								<Base AmountBeforeTax="2.50" AmountAfterTax="2.75" CurrencyCode="EUR">
									<Taxes Amount="0.25">
										<Tax Code="19" Percent="10" Amount="0.25">
											<TaxDescription>
												<Text>GST 10 percent</Text>
											</TaxDescription>
										</Tax>
									</Taxes>
								</Base>
								<Total AmountBeforeTax="2.50" AmountAfterTax="2.75" CurrencyCode="EUR">
									<Taxes Amount="0.25">
										<Tax Code="19" Percent="10" Amount="0.25">
											<TaxDescription>
												<Text>GST 10 percent</Text>
											</TaxDescription>
										</Tax>
									</Taxes>
								</Total>
								<RateDescription>
									<Text>Extra person charge EUR 2.50 per day for cot</Text>
								</RateDescription>
							</Price>
							<ServiceDetails>
								<TimeSpan Start="2026-10-05" End="2026-10-08"/>
							</ServiceDetails>
						</Service>
						<!-- Additional Service elements -->
					</Services>
					<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>
											</PersonName>
											<Telephone PhoneNumber="+61123456789"/>
											<Email>test@siteminder.com</Email>
											<Address>
												<AddressLine>200 George St</AddressLine>
												<AddressLine>Level 3</AddressLine>
												<CityName>Sydney</CityName>
												<PostalCode>2000</PostalCode>
												<StateProv>NSW</StateProv>
												<CountryName>Australia</CountryName>
											</Address>
											<CustLoyalty ProgramID="LoyaltyProgramName" MembershipID="123456789" ExpireDate="2026-12-31"/>
											<Document DocID="987654321P" DocType="5" DocHolderNationality="AU" BirthDate="1996-10-05" Gender="Male" BirthCountry="AU" BirthPlace="AU" EffectiveDate="2026-10-05" ExpireDate="2027-10-05" DocIssueAuthority="DAFT" DocIssueLocation="AU" DocIssueStateProv="AU" DocIssueCountry="AU">
												<DocHolderName>John Smith</DocHolderName>
											</Document>
										</Customer>
									</Profile>
								</ProfileInfo>
							</Profiles>
						</ResGuest>
						<!-- Additional ResGuest elements -->
					</ResGuests>
					<ArrivalTransport>
						<TransportInfo Type="Air" ID="QF123" Time="2025-10-05T13:00:00"/>
					</ArrivalTransport>
					<DepartureTransport>
						<TransportInfo Type="Air" ID="QF321" Time="2025-10-08T17:00:00"/>
					</DepartureTransport>
					<ResGlobalInfo>
						<HotelReservationIDs>
							<HotelReservationID ResID_Type="14" ResID_Value="123456789"/>
						</HotelReservationIDs>
						<Comments>
							<Comment>
								<Text>High floor if possible</Text>
							</Comment>
							<!-- Additional Comment elements -->
						</Comments>
						<Total CurrencyCode="EUR" AmountBeforeTax="565.50" AmountAfterTax="628.25">
							<Taxes>
								<Tax Type="inclusive" Code="35" Amount="62.75" CurrencyCode="EUR"/>
							</Taxes>
							<TPA_Extensions>
								<Total includesCommission="true"/>
							</TPA_Extensions>
						</Total>
						<Guarantee>
							<GuaranteesAccepted>
								<GuaranteeAccepted>
									<PaymentCard CardType="1" CardCode="MC" CardNumber="4321432143214321" SeriesCode="123" ExpireDate="1234">
										<CardHolderName>John Smith</CardHolderName>
										<TPA_Extensions>
											<VirtualCreditCard isVCC="true" VCCActivationDate="2025-09-05" VCCCurrencyCode="EUR" VCCCurrentBalance="628.25" VCCDeactivationDate="2025-10-08"/>
										</TPA_Extensions>
									</PaymentCard>
								</GuaranteeAccepted>
							</GuaranteesAccepted>
						</Guarantee>
						<Profiles>
							<ProfileInfo>
								<Profile ProfileType="1">
									<Customer>
										<PersonName>
											<NamePrefix>Mr</NamePrefix>
											<GivenName>John</GivenName>
											<Surname>Smith</Surname>
										</PersonName>
										<Telephone PhoneNumber="0266564100"/>
										<Email>johnsmith@mail.com</Email>
										<Address>
											<AddressLine>1 George St</AddressLine>
											<AddressLine>CBD</AddressLine>
											<CityName>Sydney</CityName>
											<PostalCode>2000</PostalCode>
											<StateProv>NSW</StateProv>
											<CountryName>Australia</CountryName>
										</Address>
									</Customer>
								</Profile>
							</ProfileInfo>
							<ProfileInfo>
								<Profile ProfileType="3">
									<CompanyInfo ID="CORP">
										<CompanyName>COMPANY</CompanyName>
										<TelephoneInfo PhoneNumber="0266564101"/>
										<Email>contact@company.com</Email>
										<AddressInfo>
											<AddressLine>3 George St</AddressLine>
											<AddressLine>CBD</AddressLine>
											<CityName>Sydney</CityName>
											<PostalCode>2000</PostalCode>
											<StateProv>NSW</StateProv>
											<CountryName>Australia</CountryName>
										</AddressInfo>
									</CompanyInfo>
								</Profile>
							</ProfileInfo>
							<ProfileInfo>
								<Profile ProfileType="4">
									<UniqueID ID="56789"/>
									<CompanyInfo>
										<CompanyName>TRAVEL AGENT LTD</CompanyName>
										<TelephoneInfo PhoneNumber="0266564100"/>
										<Email>contact@travelagent.com</Email>
										<AddressInfo>
											<AddressLine>4 George St</AddressLine>
											<AddressLine>CBD</AddressLine>
											<CityName>Sydney</CityName>
											<PostalCode>2000</PostalCode>
											<StateProv>NSW</StateProv>
											<CountryName>Australia</CountryName>
										</AddressInfo>
									</CompanyInfo>
								</Profile>
							</ProfileInfo>
						</Profiles>
					</ResGlobalInfo>
				</HotelReservation>
			</HotelReservations>
		</OTA_HotelResNotifRQ>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
```

</details>

## Common Questions

<details>

<summary>How can we avoid overbooking?</summary>

While overbooking is rare, it can occur when the last available room is booked simultaneously across multiple channels.

**SiteConnect Behaviour:**

* Accepts all valid reservations received
* Sends all bookings to the property
* Does not reject reservations based on availability

**Resolution:**

* The property typically works directly with booking channels to resolve overbookings
* Hotels may honor all reservations and arrange alternative accommodation if needed
* Your channel's policy determines how overbookings are handled with guests

**Prevention:**

* Ensure fast response times to availability updates
* Process availability changes immediately upon receiving them
* Implement real-time inventory management in your system

</details>

<details>

<summary>After sending a cancelled reservation, why didn't availability increase?</summary>

This is **standard SiteMinder functionality**. Cancelled reservations (or modifications that reduce room bookings) do not automatically increase availability.

**Standard Behavior:**

* Availability is **hotel-controlled** or **PMS-controlled**
* Hotels must manually update availability after cancellations
* SiteMinder processes the cancellation but doesn't adjust inventory automatically

**Auto-Replenishment Option:** If the hotel has enabled Auto-Replenishment in SiteMinder settings:

* System automatically increases availability for cancelled rooms
* You will receive updated availability via `OTA_HotelAvailNotifRQ`
* This setting is property-specific and not enabled by default

</details>

<details>

<summary>What happens if a hotel unmaps a room rate or disables the channel, and a reservation is received?</summary>

SiteConnect will **still accept the reservation**, but availability handling differs:

**Unmapped Room Rate:**

* Reservation is accepted and stored
* **Availability is NOT adjusted** (booking can't be assigned to a room type)
* Hotel sees the reservation but must manually manage it

**Disabled Channel:**

* Reservation is accepted and stored
* **Availability is adjusted** in SiteMinder
* Updated availability is **NOT sent back** to your channel (channel is disabled)

**Best Practice:**

* Validate room rate mappings exist before sending reservations
* Monitor for unmapped room rate errors in your integration logs

</details>

<details>

<summary>Is it possible to get the status or confirmation of a reservation after sending it?</summary>

No, SiteConnect does not provide reservation status queries or confirmations.

**Reservation Flow:**

1. Booking channel sends `OTA_HotelResNotifRQ`
2. SiteMinder responds with `OTA_HotelResNotifRS` (Success or Error)
3. **Success means:** Reservation received and accepted
4. **After acceptance:** Reservation is confirmed and delivered to PMS. Also, availability is updated and distributed to all channels

**No Status Changes:**

* Once accepted, reservations are considered confirmed and valid
* No "pending" or "processing" status exists
* No query endpoint to check reservation status

**Error Handling:** If you receive an Error response, the reservation was **not** accepted. Fix the issue and resend the complete reservation.

</details>

<details>

<summary>In what instances can a reservation fail to be received by SiteConnect?</summary>

Reservations can fail for the following reasons:

**XML/Format Issues:**

* Incorrect XML structure (invalid elements or attributes)
* Missing mandatory fields
* Invalid data types or formats

**Authentication Issues:**

* Invalid username or password
* Missing or malformed Security Header

**Hotel Configuration:**

* `HotelCode` not found in SiteMinder database
* Hotel not configured for your channel

**Important:** SiteConnect **will still accept** reservations even if:

* Hotel lacks availability (no availability validation)
* Room rates are not mapped in SiteMinder Platform
* Rate plans don't match

**Error Response:** Failed reservations return `OTA_HotelResNotifRS` with `<Errors>` element containing error type and description.

</details>

<details>

<summary>What data should I include in modified or cancelled reservation messages?</summary>

Include **all data from the original reservation** plus the modification/cancellation details.

**Required for Modifications (`ResStatus="Modify"`):**

* Complete original reservation data
* Updated values (dates, rates, guests, etc.)
* `CreateDateTime` (original booking time)
* `LastModifyDateTime` (when modification occurred)

**Required for Cancellations (`ResStatus="Cancel"`):**

* Complete original reservation data
* `CreateDateTime` (original booking time)
* `LastModifyDateTime` (when cancellation occurred)
* Updated VCC balance (set to 0.00 or cancellation policy amount)

**Why Complete Data Required:**

* SiteMinder **rewrites the entire reservation** on modifications/cancellations
* Missing data causes hotels to lose important information
* Data flows to connected PMS/CRS systems
* Incomplete data may cause PMS integration failures

</details>

<details>

<summary>Are credit card details visible to the hotel?</summary>

Yes, hotels can view credit card details in SiteMinder Platform, **except CVV/CVC**.

**Visible to Hotel:**

* Card number
* Cardholder name
* Expiry date
* Card type/code
* VCC details (if applicable)

**Not Visible in Platform:**

* CVV/CVC (Card Security Code)

**CVV/CVC Delivery:**

* Only available in **Reservation Notification Email** (if enabled for your channel)
* Never stored in SiteMinder database (PCI compliance)
* Never passed to PMS systems

**PMS Integration:** If the property has a PMS connected to SiteMinder that supports credit card details, the same information (excluding CVV/CVC) is forwarded to the PMS.

</details>

<details>

<summary>Is it okay to make a booking without payment details?</summary>

Yes, payment details are **optional**. Both `Guarantee` and `DepositPayments` sections can be omitted.

**Use Cases for No Payment Details:**

* Pay-at-property bookings
* Invoiced reservations
* Alternative payment methods not supported in API
* Free stays or complimentary bookings

**When to Include Payment Details:**

* Credit card guarantee provided
* Deposit collected
* Virtual Credit Card (VCC) issued
* Payment already processed

SiteMinder accepts reservations regardless of payment information presence.

</details>

<details>

<summary>What is the advantage of sending VCC instead of standard credit cards?</summary>

Virtual Credit Cards (VCC) provide significant advantages for reservation processing:

**Security and Accuracy:**

* **Reduced errors:** VCC details clearly displayed in SiteMinder Platform
* **Direct PMS reading:** PMS systems can read VCC information automatically
* **Minimized human error:** Less manual card entry required
* **Controlled usage:** VCC limits and activation/deactivation dates prevent misuse

**Payment Processing:**

* **SiteMinder Pay integration:** Simplifies transactions for hotels using SiteMinder Pay
* **Clear balance tracking:** `VCCCurrentBalance` shows exact chargeable amount
* **Modification handling:** Easy to update balance for changes/cancellations

**Compliance:**

* **PSD2 exemption:** VCCs excluded from Strong Customer Authentication requirements
* **Faster processing:** No additional authentication steps needed

**Recommendation:** VCC is optional but highly recommended when available.

</details>

<details>

<summary>Can the VCC CurrencyCode differ from the Reservation Total CurrencyCode?</summary>

Yes, the `VCCCurrencyCode` can differ from the reservation's `CurrencyCode`.

**Common Scenario:**

* Reservation made in one currency (e.g., USD)
* Hotel collects in different currency (e.g., NZD) via VCC
* Both currencies clearly specified in respective sections

**Example:**

```xml
<Total CurrencyCode="USD" AmountAfterTax="500.00"/>
<!-- ... -->
<VirtualCreditCard VCCCurrencyCode="NZD" VCCCurrentBalance="750.00"/>
```

**Handling:**

* Each currency is valid in its context
* Currency conversion handled outside API
* Hotels see both currencies in their platform

</details>

<details>

<summary>What's the difference between Guests and Customers in reservations?</summary>

**Guests (`ResGuest`):**

* People **staying in the rooms**
* Linked to specific RoomStays via `ResGuestRPH`
* Can have multiple guests per reservation
* Contains: Name, contact details, arrival time, loyalty info, ID documents

**Customer (`Profile ProfileType="1"` in `ResGlobalInfo/Profiles`):**

* Person who **made the booking** or is the primary contact
* Only one customer per reservation
* May or may not be staying at the property
* Contains: Name, contact details, address

**Relationship:**

* Guest and Customer can be the same person
* Guest and Customer can be different people (e.g., assistant booking for executive)
* Customer profile is mandatory, Guest profiles are recommended

**Best Practice:** Provide both complete Customer information and individual Guest details when available for better hotel service and PMS integration.

</details>

<details>

<summary>The hotel received a booking after the check-in date. Why did this happen?</summary>

This can occur when the `CreateDateTime` value sent in the `OTA_HotelResNotifRQ` uses an incorrect time zone offset. SiteConnect transmits the `CreateDateTime` as provided by the channel — if the timestamp is sent as UTC (suffix `Z`) but the actual booking time was in the property's local time zone, the value will be misinterpreted.

For example, if a booking was created at 20:57:41 in Jakarta (UTC+7), the correct value should be either:

* `2026-04-18T20:57:41+07:00` (local time with offset), or
* `2026-04-18T13:57:41Z` (converted to true UTC)

Sending `2026-04-18T20:57:41Z` instead tells SiteConnect the booking was made at 20:57 UTC — which converts to 03:57 local time the following day, placing it after the check-in date.

SiteConnect converts the received `CreateDateTime` to the property's local time zone without modifying the original value. Ensure your system sends the timestamp in one of the two valid formats above to avoid bookings appearing after the check-in date.

</details>

{% hint style="success" icon="sparkles" %}

## Still have questions?

Use the <i class="fa-gitbook-assistant">:gitbook-assistant:</i> **Ask** button at the top of the page to chat with our AI assistant — it can help you navigate the guide, understand requirements, and troubleshoot issues.

If you need more support, visit [Integration Support](/integration-support/integration-support.md).
{% endhint %}


---

# Agent Instructions: 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.siteminder.com/siteconnect-api/reference/reservations.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.
