# Changelog

### 2024

{% updates format="full" %}
{% update date="2024-06-19" tags="added,reservations" %}

## <sup>Net or Gross Reservation / Commission Percentage</sup>

When `includesCommission` is set, all `RoomRate` and `RoomStay` level totals will be considered as **Net** or **Gross** amounts based on this value. Properties can enable reservation commission percentage to add a commission to the totals sent to the PMS for NET rates. More details in [ReservationTotal](https://siteminder-apis-beta-upgrade.gitbook.io/siteminder-apis-new/DOKB3juwFiYhvklwuL1W/channels-siteconnect/api-reference/reservations#reservationtotal).

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

```xml
<ResGlobalInfo>
    ...
	<Total CurrencyCode="AUD" AmountBeforeTax="462.73" AmountAfterTax="509.00">
		<Taxes>
			<Tax Amount="46.27" CurrencyCode="AUD"/>
		</Taxes>
		<TPA_Extensions>
			<Total includesCommission="true"/>
		</TPA_Extensions>
	</Total>
    ...
</ResGlobalInfo>
```

{% endcode %}
{% endupdate %}
{% endupdates %}

### 2023

{% updates format="full" %}
{% update date="2023-07-06" tags="added,restrictions" %}

## <sup>Minimum Stay Through / Maximum Stay Through</sup>

Property can decide if `LengthOfStay` `MinMaxMessageType` is on arrival (`SetMinLOS` / `SetMaxLOS`) or through (`SetForwardMinStay` / `SetForwardMaxStay`). More details in [Availability and Restrictions](https://siteminder-apis-beta-upgrade.gitbook.io/siteminder-apis-new/DOKB3juwFiYhvklwuL1W/channels-siteconnect/api-reference/availability-and-restrictions).

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

```xml
<AvailStatusMessage>
	<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
	<LengthsOfStay>
		<LengthOfStay MinMaxMessageType="SetForwardMinStay" Time="1"/>
		<!-- Min Length of Stay -->
		<LengthOfStay MinMaxMessageType="SetForwardMaxStay" Time="3"/>
		<!-- Max Length of Stay -->
	</LengthsOfStay>
</AvailStatusMessage>
```

{% endcode %}
{% endupdate %}
{% endupdates %}

### 2022

{% updates format="full" %}
{% update date="2022-03-14" tags="added,rates" %}

## <sup>Occupancy Based Pricing</sup>

The booking channel can support now Occupancy Based Pricing (OBP), instead of Per Day Pricing (PDP). More details in [Rates](https://siteminder-apis-beta-upgrade.gitbook.io/siteminder-apis-new/DOKB3juwFiYhvklwuL1W/channels-siteconnect/api-reference/rates).

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

```xml
<Rates>
	<Rate>
		<BaseByGuestAmts>
			<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="100.00" CurrencyCode="EUR" NumberOfGuests="1"/>
			<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="200.00" CurrencyCode="EUR" NumberOfGuests="2"/>
			<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="300.00" CurrencyCode="EUR" NumberOfGuests="3"/>
			<BaseByGuestAmt AgeQualifyingCode="10" AmountAfterTax="400.00" CurrencyCode="EUR" NumberOfGuests="4"/>
			<!-- Additional BaseByGuestAmt elements -->
		</BaseByGuestAmts>
		<AdditionalGuestAmounts>
			<AdditionalGuestAmount AgeQualifyingCode="8" Amount="50" CurrencyCode="EUR"/>
			<!-- Extra Child Rate -->
		</AdditionalGuestAmounts>
		<RateDescription>
			<Text>Contemporary 1 Bedroom Apartment with private balcony.</Text>
			<!-- Inclusions -->
		</RateDescription>
	</Rate>
</Rates>
```

{% endcode %}
{% endupdate %}
{% endupdates %}

### 2020

{% updates format="full" %}
{% update date="2020-09-08" tags="added,reservations" %}

## <sup>Virtual Credit Card</sup>

Extra information about Virtual Credit Cards can now be included with a Payment Card in a reservation. More details in [Guarantee](https://developer.siteminder.com/sm-apis/channels/siteconnect/api-reference/reservations#guarantee) and [DepositPayments](depositpayhttps://developer.siteminder.com/sm-apis/channels/siteconnect/api-reference/reservations#depositpaymentsments).

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

```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>
```

{% endcode %}
{% endupdate %}

{% update date="2020-08-28" tags="added,reservations" %}

## <sup>Guest Count Ages</sup>

Ages can now be included within reservation guest counts. More details in [GuestCounts](https://developer.siteminder.com/sm-apis/channels/siteconnect/api-reference/reservations#guestcounts).

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

```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 %}
{% endupdate %}
{% endupdates %}

### 2019

{% updates format="full" %}
{% update date="2019-11-06" tags="modified,reservations" %}

## <sup>CVV/CVC of a Payment Card</sup> <a href="#h_1a63c83e34" id="h_1a63c83e34"></a>

Payment card series codes (CVV or CVC) will now be provided only in the Reservation Notification Email.
{% endupdate %}

{% update date="2019-09-13" tags="added,reservations" %}

## <sup>Strong Customer Authentication (SCA)</sup>

Three Domain Security (3DS) data can now be delivered in reservations alongside payment card data. More details in [Guarantee](https://developer.siteminder.com/sm-apis/channels/siteconnect/api-reference/reservations#guarantee) and [DepositPayments](depositpayhttps://developer.siteminder.com/sm-apis/channels/siteconnect/api-reference/reservations#depositpaymentsments).

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

```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>
```

{% endcode %}
{% endupdate %}

{% update date="2019-06-04" tags="added,reservations" %}

## <sup>Guest ID Document</sup>

Guest profiles can now contain guest ID document details. More details in [ResGuests](https://developer.siteminder.com/sm-apis/channels/siteconnect/api-reference/reservations#resguests).

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

```xml
<ResGuests>
	<ResGuest ResGuestRPH="1" ArrivalTime="14:00:00" PrimaryIndicator="1">
		<Profiles>
			<ProfileInfo>
				<Profile ProfileType="1">
					<Customer>
						---
						<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>
</ResGuests>
```

{% endcode %}
{% endupdate %}

{% update date="2019-02-26" tags="added,reservations" %}

## <sup>Corporate Profile ID</sup>

Corporate profiles in reservations can now contain a UniqueID ID: 3

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

```xml
<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>
```

{% endcode %}
{% endupdate %}

{% update date="2019-02-26" tags="added,restrictions" %}

## <sup>Maximum Length of Stay</sup>

Maximum stay can now be sent with restriction updates.

{% code overflow="wrap" %}

```xml
<AvailStatusMessage>
	<StatusApplicationControl End="2024-10-05" InvTypeCode="SGL" RatePlanCode="BAR" Start="2024-10-05"/>
	<LengthsOfStay>
		<LengthOfStay MinMaxMessageType="SetMinLOS" Time="1"/>
		<!-- Min Length of Stay -->
		<LengthOfStay MinMaxMessageType="SetMaxLOS" Time="3"/>
		<!-- Max Length of Stay -->
	</LengthsOfStay>
</AvailStatusMessage>
```

{% endcode %}
{% endupdate %}
{% endupdates %}

### 2018

{% updates format="full" %}
{% update date="2022-12-01" tags="added,reservations" %}

## <sup>AmountBeforeTax</sup>

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

{% code overflow="wrap" %}

```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>
```

{% endcode %}
{% endupdate %}
{% endupdates %}

### 2017

{% updates format="full" %}
{% update date="2017-05-24" tags="added,reservations" %}

## <sup>Services</sup>

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

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

```xml
<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>
```

{% endcode %}
{% endupdate %}
{% endupdates %}

### 2016

{% updates format="full" %}
{% update date="2016-06-30" tags="added,reservations" %}

## <sup>Company and Travel Agent</sup>

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

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

```xml
<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>
```

{% endcode %}

{% code title="Travel Agent" overflow="wrap" expandable="true" %}

```xml
<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>
```

{% endcode %}
{% endupdate %}

{% update date="2016-04-04" tags="added,reservations" %}

## <sup>Additional Details</sup>

To better support character limitations to certain attributes in the the OTA Specifications, we've modified our 'Retrieve Rooms' API to include shorter character code within AdditionalDetails / AdditionalDetail / @Code (`NO_AVAILABILITY`, `NO_RATES`, `NO_UPDATES`).

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

```xml
<RatePlans>
	<RatePlan RatePlanCode="BAR">
		<RatePlanDescription Name="Best Available Rate">
			<Text>Best Available Rate.</Text>
		</RatePlanDescription>
		<AdditionalDetails>
			<AdditionalDetail Code="NO_RATES"/>
			<AdditionalDetail Code="NO_AVAILABILITY"/>
		</AdditionalDetails>
	</RatePlan>
</RatePlans>
```

{% endcode %}

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

```xml
<RatePlans>
	<RatePlan RatePlanCode="BAR">
		<RatePlanDescription Name="Best Available Rate">
			<Text>Best Available Rate.</Text>
		</RatePlanDescription>
		<AdditionalDetails>
			<AdditionalDetail Code="NO_UPDATES"/>
		</AdditionalDetails>
	</RatePlan>
</RatePlans>
```

{% endcode %}
{% endupdate %}
{% endupdates %}

### 2014

{% updates format="full" %}
{% update date="2014-07-31" tags="added,reservations" %}

## <sup>RoomRate / Rates / Rate / Total</sup>

This total is an important value as most PMS will only receive proper room rate values if this value is provided.

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

```xml
<RoomRates>
	<RoomRate RoomTypeCode="TPL" RatePlanCode="BAR" NumberOfUnits="1">
		<Rates>
			<Rate UnitMultiplier="1" RateTimeUnit="Day" EffectiveDate="2024-10-05" ExpireDate="2024-10-08">
				---
				<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>
    	---
	</RoomRate>
</RoomRates>
```

{% endcode %}
{% endupdate %}

{% update date="2014-07-03" tags="added,reservations" %}

## <sup>PaymentCard @CardCode</sup>

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

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

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

{% endcode %}
{% endupdate %}

{% update date="2014-04-02" tags="added,reservations" %}

## <sup>Customer / CustLoyalty</sup>

Adding loyalty information for the guest.// Some code

{% code overflow="wrap" %}

```xml
<Customer>
	...
	<CustLoyalty ProgramID="LoyaltyProgramName" MembershipID="123456789" ExpireDate="2019-12-30">
</Customer>
```

{% endcode %}
{% endupdate %}

{% update date="2014-04-02" tags="added,reservations" %}

## <sup>ArrivalTransport / DepartureTransport</sup>

Adding TransportInfo for arrival and departure.

{% code overflow="wrap" %}

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

{% endcode %}
{% endupdate %}

{% update date="2014-04-02" tags="added,reservations" %}

## <sup>MealsIncluded MealPlanCodes</sup>

Adding meal plan information to the `RatePlan`.

{% code overflow="wrap" %}

```xml
<RatePlan>
	<MealsIncluded MealPlanCodes="Full board"/>
</RatePlan>
```

{% endcode %}
{% endupdate %}

{% update date="2014-10-23" tags="added,reservations" %}

## <sup>Customer / NamePrefix</sup>

Adding the title of the guest or customer to the reservation profiles.

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

```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>
```

{% endcode %}

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

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

{% endcode %}
{% endupdate %}
{% endupdates %}


---

# 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/additional-resources/changelog.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.
