NAV Navbar
XML User Interface C#

Introduction

Rentals United API Endpoint

https://rm.rentalsunited.com/api/Handler.ashx

Welcome to the Rentals United Developer Portal.

Rentals United is The Channel Manager of choice for the Vacation Rental Market.

This Developer Portal has been designed to support developers to

Property providers use this portal to programmatically create properties that you want to publish on Sales Channels or Vacation Rentals Services, manage property content, availability, prices, minimum stay, changeover and bookings via the API.

Sales Channels and VR Services use this portal retrieve Vacation Rentals inventory data and distribute it on the market.

Both developers and business people will find useful and actionable information in this portal.

We recommend that you follow the below steps to streamline the integration process:

  1. Start from the Guides & User Cases section
  2. Review Integration Certification process to understand our expectations of connection quality and scope
  3. Review API methods required for your use case in the API Reference section
  4. Get familiar with additional resources we provide: Screenshots of Rentals United User Interface, XML Requests and Responses, C# code examples
  5. Plan the integration architecture for your system
  6. Describe your action plan and contact Rentals United API Support Team via apisupport@rentalsunited.com
  7. Jump on a kick-off call with our engineers
  8. Code, test and self-certify using the Certification Section
  9. Get Certified by Rentals United API Support Team
  10. Soft-launch and launch.

Guides & User Cases

This section explains Rentals United capabilities which enables you to evaluate whether Rentals United API serves your needs.

The following abbreviations are used

There are three basic integration models

Try the API - the basics!

Sandbox account

All newly created Rentals United accounts are sandbox accounts which you can use for development and testing purposes. Your sandbox account can be transferred to a production accounts once the integration is certified (see Certification section). Sandbox accounts are isolated and have lower API limits than production accounts.

First API Request

The simplest method of sending a request to Rentals United API is to send the XML directly in the body of a HTTP POST. In practice though, most development platforms provide a simple mechanism to send such a request without the need to generate the headers yourself.

You can use a free tool like Fiddler or Postman to make a POST requests to the RU XML API and check the response XML.

API Response Status

XML Request

<Pull_ListStatuses_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
</Pull_ListStatuses_RQ>

XML Response

<Pull_ListStatuses_RS>
    <Status ID="0">Success</Status>
    <ResponseID>c70979d4485c4e7dbabe6a5aea1c4d4d</ResponseID>
    <Statuses>
        <StatusInfo ID="-6">This request was rate limited. Maximum number of requests allowed for this API method with specified parameters is {0} per {1} sliding window. You have reached this limit.</StatusInfo>
        <StatusInfo ID="-5">This request was rate limited. Maximum concurrent requests allowed for this API method with specified parameters is {0}. You have reached this limit.</StatusInfo>
        <StatusInfo ID="-4">Incorrect login or password</StatusInfo>
        <StatusInfo ID="-3">Invalid request. {0}</StatusInfo>
        <StatusInfo ID="-2">This request cannot be processed. {0}</StatusInfo>
        <StatusInfo ID="-1">The XML contains not implemented method</StatusInfo>
        <StatusInfo ID="0">Success</StatusInfo>
        <StatusInfo ID="1">Property is not available for a given dates</StatusInfo>
        <StatusInfo ID="2">Nothing available for a given dates</StatusInfo>
        <StatusInfo ID="3">Property has no price settings for a given dates</StatusInfo>
        <StatusInfo ID="4">Wrong destination id:{0}</StatusInfo>
        <StatusInfo ID="5">Wrong distance unit id:{0}</StatusInfo>
        <StatusInfo ID="6">Wrong composition room id:{0}</StatusInfo>
        <StatusInfo ID="7">Wrong amenity id:{0}</StatusInfo>
        <StatusInfo ID="8">Wrong arrival instructions</StatusInfo>
        <StatusInfo ID="9">Could not insert late arrival fee, From:{0} To:{1} Fee:{2}</StatusInfo>
        <StatusInfo ID="10">Could not insert early departure fee, From:{0} To:{1} Fee:{2}</StatusInfo>
        <StatusInfo ID="11">Wrong payment method id:{0}</StatusInfo>
        <StatusInfo ID="12">Wrong deposit type id:{0}</StatusInfo>
        <StatusInfo ID="13">Cancellation policies overlaps</StatusInfo>
        <StatusInfo ID="14">Owner does not exist</StatusInfo>
        <StatusInfo ID="15">Apartment name ({0}) already exist in database.</StatusInfo>
        <StatusInfo ID="16">You already defined apartment with PUID:{0}</StatusInfo>
        <StatusInfo ID="17">Unexpected error, contact IT or try again</StatusInfo>
        <StatusInfo ID="18">Property with given ID does not exist.</StatusInfo>
        <StatusInfo ID="19">Dates mishmash</StatusInfo>
        <StatusInfo ID="20">Past dates</StatusInfo>
        <StatusInfo ID="21">Weird block dates for property: {0} - {1} - {2}. Whole block is {3} - {4}</StatusInfo>
        <StatusInfo ID="22">We have confirmed reservation for those dates. Please cancel the reservation instead of marking the dates as available.</StatusInfo>
        <StatusInfo ID="23">Wrong ImageTypeID:{0}</StatusInfo>
        <StatusInfo ID="24">Your are not the owner of the apartment.</StatusInfo>
        <StatusInfo ID="25">The value of "Bigger" must be smaller than the value of "Smaller".</StatusInfo>
        <StatusInfo ID="26">Warning! Look at Notifs collection.</StatusInfo>
        <StatusInfo ID="27">DaysToArrivalFrom and DaysToArrivalTo requires positive values.</StatusInfo>
        <StatusInfo ID="28">Reservation does not exist.</StatusInfo>
        <StatusInfo ID="29">Requested stay, cost details do not match with property on reservation on hold.</StatusInfo>
        <StatusInfo ID="30">Element ignored because of other errors.</StatusInfo>
        <StatusInfo ID="31">Error occurred. All changes rolled back.</StatusInfo>
        <StatusInfo ID="32">Bigger and Smaller requires positive values.</StatusInfo>
        <StatusInfo ID="33">Smaller is smaller than Bigger.</StatusInfo>
        <StatusInfo ID="34">RUPrice is not valid. Correct price is:{0}</StatusInfo>
        <StatusInfo ID="35">AlreadyPaid is bigger than ClientPrice.</StatusInfo>
        <StatusInfo ID="36">Wrong DetailedLocationID. City or district precision is required.</StatusInfo>
        <StatusInfo ID="37">Property name is too long (max 150).</StatusInfo>
        <StatusInfo ID="38">Property has missing data and cannot be offered.</StatusInfo>
        <StatusInfo ID="39">Location does not exist.</StatusInfo>
        <StatusInfo ID="40">You cannot define discounts before the prices. The property has missing prices in given dates.</StatusInfo>
        <StatusInfo ID="41">The reservation was created by the other user.</StatusInfo>
        <StatusInfo ID="42">The reservation is expired.</StatusInfo>
        <StatusInfo ID="43">You cannot confirm this reservation. It's broken.</StatusInfo>
        <StatusInfo ID="44">The apartments are not in the same city.</StatusInfo>
        <StatusInfo ID="45">Data validation error.</StatusInfo>
        <StatusInfo ID="46">The property is not active. PropertyID:{0}</StatusInfo>
        <StatusInfo ID="47">Property is not available for a given dates. PropertyID:{0}</StatusInfo>
        <StatusInfo ID="48">The reservation is not on Put On Hold status.</StatusInfo>
        <StatusInfo ID="49">CountryID does not exist.</StatusInfo>
        <StatusInfo ID="50">Guest name is required.</StatusInfo>
        <StatusInfo ID="51">Guest surname is required.</StatusInfo>
        <StatusInfo ID="52">Guest email is required.</StatusInfo>
        <StatusInfo ID="53">This method is deprecated. Use Push_PutConfirmedReservationMulti_RS</StatusInfo>
        <StatusInfo ID="54">This method is deprecated. Use Push_PutPropertiesOnHold_RQ</StatusInfo>
        <StatusInfo ID="55">Negative values in price elements is not allowed.</StatusInfo>
        <StatusInfo ID="56">Property does not exist.</StatusInfo>
        <StatusInfo ID="57">The request contains both types of composition definitions: composition and composition with amenities. Please use only one type.</StatusInfo>
        <StatusInfo ID="58">This amenity: {0} is not allowed in room type: {1}</StatusInfo>
        <StatusInfo ID="59">Positive value is required</StatusInfo>
        <StatusInfo ID="60">Duplicate value in LOSS element</StatusInfo>
        <StatusInfo ID="61">Duplicate value in EGPS element</StatusInfo>
        <StatusInfo ID="62">Missing Text or Image value.</StatusInfo>
        <StatusInfo ID="63">Wrong language id:{0}.</StatusInfo>
        <StatusInfo ID="64">DayOfWeek attribute must be between {0} and {1}.</StatusInfo>
        <StatusInfo ID="65">No permission to property {0}.</StatusInfo>
        <StatusInfo ID="66">Coordinates are invalid or missing.</StatusInfo>
        <StatusInfo ID="67">Duplicate value in LOSPS element</StatusInfo>
        <StatusInfo ID="68">NumberOfGuests in LOSP element has to be greater than 0</StatusInfo>
        <StatusInfo ID="69">Building does not exist</StatusInfo>
        <StatusInfo ID="70">Some properties not updated:{0}</StatusInfo>
        <StatusInfo ID="71">Wrong security deposit type id: {0}</StatusInfo>
        <StatusInfo ID="72">Discount value can't be lower than 0.</StatusInfo>
        <StatusInfo ID="73">At least one PropertyID element is required.</StatusInfo>
        <StatusInfo ID="74">DateFrom has to be earlier than DateTo.</StatusInfo>
        <StatusInfo ID="75">DateFrom has to be earlier or equal to DateTo.</StatusInfo>
        <StatusInfo ID="76">StandardGuests must be smaller than CanSleepMax.</StatusInfo>
        <StatusInfo ID="77">NOP: positive value required.</StatusInfo>
        <StatusInfo ID="78">Minimum stay is not valid (X nights).</StatusInfo>
        <StatusInfo ID="79">Stay period doesn't match with minimum stay</StatusInfo>
        <StatusInfo ID="80">Cannot activate archived property</StatusInfo>
        <StatusInfo ID="81">You don't have permission to modify this owner</StatusInfo>
        <StatusInfo ID="82">Apartment is Archived or no longer available or not Active</StatusInfo>
        <StatusInfo ID="83">Mixed owners in the request. Contact IT.</StatusInfo>
        <StatusInfo ID="84">Too many properties in your request (max 100).</StatusInfo>
        <StatusInfo ID="85">Invalid time value. Allowed values 00:00 - 23:59</StatusInfo>
        <StatusInfo ID="86">Operation has reached the maximum limit of time. The results are not complete.</StatusInfo>
        <StatusInfo ID="87">Wrong page URL Type</StatusInfo>
        <StatusInfo ID="88">Wrong date format for parameter {0}</StatusInfo>
        <StatusInfo ID="89">Stay period doesn't match with changeover</StatusInfo>
        <StatusInfo ID="90">Enqueued</StatusInfo>
        <StatusInfo ID="91">Not found</StatusInfo>
        <StatusInfo ID="92">Duplicate value in distances.</StatusInfo>
        <StatusInfo ID="93">Unauthorized</StatusInfo>
        <StatusInfo ID="94">Some of required fields were not filled.</StatusInfo>
        <StatusInfo ID="95">Email already exists.</StatusInfo>
        <StatusInfo ID="96">Password must be at least 8 characters long.</StatusInfo>
        <StatusInfo ID="97">Standard number of guests must be of positive value.</StatusInfo>
        <StatusInfo ID="98">Deposit amount can't exceed value of 214,748.3647</StatusInfo>
        <StatusInfo ID="99">Technical error - missing file</StatusInfo>
        <StatusInfo ID="100">Property description is required</StatusInfo>
        <StatusInfo ID="101">Pets not allowed</StatusInfo>
        <StatusInfo ID="102">Currency doesn't match with city currency</StatusInfo>
        <StatusInfo ID="103">Properties collection cannot be empty</StatusInfo>
        <StatusInfo ID="104">You need provide at least one value to modify stay.</StatusInfo>
        <StatusInfo ID="105">Some periods overlap. Periods must be separable.</StatusInfo>
        <StatusInfo ID="106">You can only modify stay in confirmed reservation.</StatusInfo>
        <StatusInfo ID="107">No reserved apartment found.</StatusInfo>
        <StatusInfo ID="108">Client Price cannot be negative</StatusInfo>
        <StatusInfo ID="109">Already Paid cannot be negative.</StatusInfo>
        <StatusInfo ID="110">Cannot use OwnerID created by other users.</StatusInfo>
        <StatusInfo ID="111">Only property owner can add reviews.</StatusInfo>
        <StatusInfo ID="112">Review rating value must be between 0-5</StatusInfo>
        <StatusInfo ID="113">Submitted date must be later than arrival date</StatusInfo>
        <StatusInfo ID="114">Cannot remove confirmed reservation. Some periods ignored.</StatusInfo>
        <StatusInfo ID="115">MinStays not satisfied, collection cannot be empty.</StatusInfo>
        <StatusInfo ID="116">LocationID {0} is not proper city location.</StatusInfo>
        <StatusInfo ID="117">Only one description allowed per language.</StatusInfo>
        <StatusInfo ID="118">Max number of guests must be of positive value.</StatusInfo>
        <StatusInfo ID="119">Property name is not defined.</StatusInfo>
        <StatusInfo ID="120">Check-in / check-out details are incorrect.</StatusInfo>
        <StatusInfo ID="121">Reservation not mapped in PMS. Contact IT support with Rentals United ID and your PMS Reservation ID.</StatusInfo>
        <StatusInfo ID="122">Failed to modify reservation in PMS. Try again or contact IT support for more information.</StatusInfo>
        <StatusInfo ID="123">Failed to cancel reservation in PMS. Try again or contact IT support for more information.</StatusInfo>
        <StatusInfo ID="124">Failed to insert reservation in PMS. Try again or contact IT support for more information.</StatusInfo>
        <StatusInfo ID="125">Wrong quantity of amenities. It should be between 0 - 32767.</StatusInfo>
        <StatusInfo ID="126">Invalid URL.</StatusInfo>
        <StatusInfo ID="127">Missing mandatory element: {0}.</StatusInfo>
        <StatusInfo ID="128">Cancellation policy text cannot be empty.</StatusInfo>
        <StatusInfo ID="129">Only reservations for apartments from same city are allowed</StatusInfo>
        <StatusInfo ID="130">Cannot change apartment from city other than initial reservation. Cancel this reservation and create new one.</StatusInfo>
        <StatusInfo ID="131">Bad request.</StatusInfo>
        <StatusInfo ID="132">This functionality is forbidden for you.</StatusInfo>
        <StatusInfo ID="133">Too many images. Images limit is 100.</StatusInfo>
        <StatusInfo ID="134">Invalid currency.</StatusInfo>
        <StatusInfo ID="135">Request rejected by partner.</StatusInfo>
        <StatusInfo ID="136">Customer info is required.</StatusInfo>
        <StatusInfo ID="137">PMSID is not valid.</StatusInfo>
        <StatusInfo ID="138">Provide a not empty PUID.</StatusInfo>
        <StatusInfo ID="139">Cannot create new property as archived.</StatusInfo>
        <StatusInfo ID="140">PropertyID : {0} cannot be archived / activated. The whole request was cancelled. Use Push_PutProperty_RQ instead.</StatusInfo>
        <StatusInfo ID="141">PUID already exists for another property.</StatusInfo>
        <StatusInfo ID="142">Property already has PMSID assigned. You cannot omit PMSID while update.</StatusInfo>
        <StatusInfo ID="143">Cannot archive this property. {0}</StatusInfo>
        <StatusInfo ID="144">Invalid Additional fees collection. {0}</StatusInfo>
        <StatusInfo ID="145">There are not enough units in this property.</StatusInfo>
        <StatusInfo ID="146">Multi unit functionality is disabled.</StatusInfo>
        <StatusInfo ID="147">Changeover is invalid. Use number 1, 2, 3 or 4.</StatusInfo>
        <StatusInfo ID="148">Number of units do not match with reservation on hold.</StatusInfo>
        <StatusInfo ID="149">Units must be a positive number</StatusInfo>
        <StatusInfo ID="150">Invalid invoice ID</StatusInfo>
        <StatusInfo ID="151">CancelUrl is missing</StatusInfo>
        <StatusInfo ID="152">ReturnUrl is missing</StatusInfo>
        <StatusInfo ID="153">PayPal transaction failed</StatusInfo>
        <StatusInfo ID="154">Single unit apartment cannot be converted to multi unit</StatusInfo>
        <StatusInfo ID="155">ResApaID has to be provided for multi unit properties</StatusInfo>
        <StatusInfo ID="156">ResApaID is not valid</StatusInfo>
        <StatusInfo ID="157">Card registration failed</StatusInfo>
        <StatusInfo ID="158">Request rejected. Check PMS synchronization settings</StatusInfo>
        <StatusInfo ID="159">Failed to insert reservation for property {0}({1}) to PMS. {2}</StatusInfo>
        <StatusInfo ID="160">The location and city already added to database</StatusInfo>
        <StatusInfo ID="161">You are not permitted to list this user's reservations</StatusInfo>
        <StatusInfo ID="162">Pass valid email</StatusInfo>
        <StatusInfo ID="163">Future dates</StatusInfo>
        <StatusInfo ID="164">Invalid date format</StatusInfo>
        <StatusInfo ID="165">You cannot archive a confirmed reservation. If this is a cancellation please cancel it first.</StatusInfo>
        <StatusInfo ID="166">Reservation is archived. Unarchive first before performing this operation.</StatusInfo>
        <StatusInfo ID="167">Reservation is for properties you are not the owner of</StatusInfo>
        <StatusInfo ID="168">Reservation is not canceled.</StatusInfo>
        <StatusInfo ID="169">Cannot process a request because apartment is connected to RMS</StatusInfo>
        <StatusInfo ID="170">Invalid property type id</StatusInfo>
        <StatusInfo ID="171">Invalid xml format in AdditionalData node</StatusInfo>
        <StatusInfo ID="172">Preparation time before arrival is blocking requested stay</StatusInfo>
        <StatusInfo ID="173">Discount ignored or trimmed. Maximum length of discounted stay is {0} nights.</StatusInfo>
        <StatusInfo ID="174">Invalid field LicenceInfo/FrenchLicenceInfo/CityTaxCategory. Allowed values: 11-19</StatusInfo>
        <StatusInfo ID="175">Invalid field LicenceInfo/FrenchLicenceInfo/TypeOfResidence. Allowed values: 1-3</StatusInfo>
        <StatusInfo ID="176">Request confirmation in external system failed</StatusInfo>
        <StatusInfo ID="177">Property is not connected to external system</StatusInfo>
        <StatusInfo ID="178">This reservation was made in external system and cannot be cancelled in Rentals United. Please cancel it directly in the sales channel</StatusInfo>
        <StatusInfo ID="179">Additional fee value must be greater or equal zero</StatusInfo>
        <StatusInfo ID="180">LOS pricing and full stay pricing cannot be defined in the same season</StatusInfo>
    </Statuses>
</Pull_ListStatuses_RS>

You can pull all possible RU XML API response statuses with a detailed <StatusInfo> message from Pull_ListStatuses_RQ

XML Response with Notifs collection

<Push_PutAvb_RS>
    <Status ID="5">Warning! Look at Notifs collection.</Status>
    <ResponseID ID="1">Success</ResponseID>
    <Notifs>
        <Notif StatusID="5" DateFrom="2020-03-01" DateTo="2020-03-04">Internal error, please try again</Notif>
        <Notif StatusID="6" DateFrom="2020-04-05" DateTo="2020-03-02">Dates mishmash</Notif>
    </Notifs>
</Push_PutAvb_RS>

Note that some Rentals United API methods may process parts of submitted XML requests despite returning an error.

For example, Push_PutAvbUnits_RQ which you use to upload availability, minimum stay and changeover of a property, processes each date range independently. It means that some date ranges can be successfully saved and erroneous date ranges will return a detailed message in the collection in the XML Response.

Note that some errors can be easily fixed by submitting the same request at a later time. We recommend setting up an automatic retrial mechanism and configuring it in the following way:

After three retries, the error needs to be handled manually.

The list of errors that should be retried according to the above frequency is the following:

API Limits

There are limits of number of requests you can make to Rentals United API. There are two major limit types:

If the API limit is exceeded, you will receive a corresponding error message in the XML Response.

By default, you can make total of 20 concurrent Requests to Rentals United API with the following exceptions

Pull_ListReservations_RQ - no concurrent XML Requests are allowed (Concurrency limit) and you can make only one request per minute (Rate limit)

The below methods are limited to one request at a time per unique property (Concurrency limit) to ensure that critical sections are held. (i.e. concurrent XML Requests to modify availability for the same property and dates at the same time are not allowed). In total you can make maximum 20 API calls (global Concurrency limit) i.e. you can modify availability for maximum 20 unique properties concurrently.

Sample code

You can use the below method to post requests to the RU XML API

private string SendXmlRequest(string requestXml)
{
  HttpWebRequest httpWebRequest =
            (HttpWebRequest)WebRequest.Create("http://rm.rentalsunited.com/API/Handler.ashx");
  httpWebRequest.Method = "POST";
  httpWebRequest.ContentType = "application/xml";
  byte[] content = Encoding.UTF8.GetBytes(requestXml);
  httpWebRequest.ContentLength = content.Length;
  httpWebRequest.Timeout = 180000;
  using(Stream stream = httpWebRequest.GetRequestStream())
  {
    stream.Write(content, 0, content.Length);
  }
  using(HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
  {
    using(StreamReader reader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.UTF8))
    {
      return reader.ReadToEnd();
    }
  }
}

Usage of WS.XMLLayer.dll library and SendXMLRequest method

public int PushProperty()
{
  //Initiate PutProperty object
  WS.XMLLayer.WebMethods.Property.Push_PutProperty_RQ request = new WS.XMLLayer.WebMethods.Property.Push_PutProperty_RQ();

  //Prepare authentication object
  WS.XMLLayer.WebMethods.Authentication authentication = new WS.XMLLayer.WebMethods.Authentication();
  authentication.UserName = username;
  authentication.Password = password;

  //Assign authentication to request object
  request.Authentication = authentication;
  request.Property = CreatePropertyData();
  string requestXml = WS.XMLLayer.XmlTools.SerializeObject<WS.XMLLayer.WebMethods.Property.Push_PutProperty_RQ>(request);

  //Send request and get response
  string responseXml = SendXmlRequest(requestXml);

  //Deserialize response
  WS.XMLLayer.WebMethods.Property.Push_PutProperty_RS response = WS.XMLLayer.XmlTools.DeserializeObject<WS.XMLLayer.WebMethods.Property.Push_PutProperty_RS>(responseXml);

  //Check response
  if(response.Status.ID == 0)
  {
    //Success
    return response.ID;
  }
  else
  {
    //Add error handling here. Check the documentation on specific method.
  }
}

private WS.XMLLayer.WebMethods.Property.PropertyDetailedInfo CreatePropertyData()
{
  //Create property data here
}

We provide a WS.XMLLayer .NET C# library with classes corresponding to all necessary XML requests and responses. You can download it here.

WS.XMLLayer library implements methods to serialize and deserialize Rentals United API XML Requests and XML Responses using built in .NET System.XML library.

You can plug this library directly into your project or use this library as guidelines for coding your own Data Model. It's not .NET Core compatible. You can use only DTO objects without serializing and deserializing features.

You can easily find an equivalent of .NET System.XML library in other programming languages and rewrite WS.XMLLayer to the programming language you use.

Sample data

Below you can find a collection of Postman calls that lets you create a property and supply it with pricing and availability calendar. We believe it's especially useful for Sales Channel and VR services types of integration because it saves you time on generating sample data.

Please have in mind that you still have to fill some od the data inside like credentials and some Ids referencing your user or newly created apartment, so please browse through the requests and find fields filled like [field name].

Run in Postman

Extend your PMS with Channel Management functionality

You run a Property Management Software and you would like to use Rentals United as a Channel Manager. In this section, we describe best distribution practices for vacation rental properties. Follow the steps, complete integration and enjoy new reservations from multiple Sales Channels.

Integration Architecture

The below examples are only pseudo code, do not attempt to use and compile them! They are here to present a concept.

namespace SynchronizationPseudoCode
{
    class Push
    {
        enum EventType
        {
            Static
            , Availability
            , Pricing
        }
        enum ChangeOverType
        {
            Both
            , None
            , CheckInOnly
            , CheckOutOnly
        }
        class Event
        {
            int propertyId;
            EventType type;
        }
        class AvailabilityEvent : Event
        {
            DateTime dateFrom;
            DateTime dateTo;
        }
        class PricingEvent : Event
        {
            DateTime dateFrom;
            DateTime dateTo;
        }
        class EventDetails
        {
            int propertyID;
        }
        class StaticEventDetails : EventDetails
        {
            StaticData staticData;
        }
        class StaticData
        {
            // your property definition e.g. property names, images, description, etc.
        }
        class PricingEventDetails : EventDetails
        {
            List<PricingData> pricesData;
        }
        class PricingData
        {
            decimal price;
            DateTime dateFrom;
            DateTime dateTo;
        }
        class AvailabilityEventDetails : EventDetails
        {
            List<AvailabilityData> availabilityData;
        }
        class AvailabilityData
        {
            int availableUnits;
            int minimumStay;
            ChangeOverType changeOver;
            DateTime dateFrom;
            DateTime dateTo;
        }
        static void SynchronizeEvents() // service process
        {
            while (true)
            {
                List<Event> events = getQueuedEvents();
                foreach (var e in events)
                {
                    try
                    {
                        BaseRequest request = null;
                        switch (e.type)
                        {
                            case Static:
                                var eventDetails = getEventDetails<StaticEventDetails>(e);
                                request = new Push_PutSpecProp_RQ(eventDetails.propertyId, eventDetails.staticData);
                                break;
                            case Prices:
                                var eventDetails = getEventDetails<PricingEventDetails>(e);
                                request = new Push_PutPrices_RQ(eventDetails.propertyId, eventDetails.pricesData);
                                break;
                            case Availability:
                                var eventDetails = getEventDetails<AvailabilityEventDetails>(e);
                                request = new Push_PutAvbUnits_RQ(eventDetails.propertyId, eventDetails.availabilityData);
                                break;
                        }
                        var response = CallRentalsUnitedAPI(request);
                        //for troubleshooting purposes                        
                        var logId = LogSynchronization(request, response);
                        if (response.Status.ID == 0)
                        {
                            //success
                            RemoveEventFromQueue(e);
                        }
                        else
                        {
                            //do not remove event from the queue
                            //log synchronization error including logId for details
                            LogSyncError(e, logId);
                        }
                    } catch (Exception exc)
                    {
                        LogSyncError(e, exc);
                    }
                }
            }
        }
    }
}

An effective integration is composed of two parts:

  1. Full data sync required when you initially create a property, performed periodically (weekly or monthly) and emergency synchronization performed or upon Rentals United request.
  2. Delta sync - performed constantly (on data change event in your system)

Below you will find a high-level overview of the recommended system architecture designed for maximum data consistency, minimum load and minimum sync delay. The below events architecture isolates Rentals United integration from other operations your system performs.

All business layer code that modifies property data in your system should trigger an internal event which gets queued. A Service constantly pulls events from the queue and sends updates to Rentals United via the API. It is essential to push delta updates to Rentals United. For example: When a date gets blocked for a specific property in your system, an event is generated to update only this particular date in Rentals United, not the whole calendar!

Explanations of elements from diagrams:

Action – a modify action that adds, deletes or modifies property data (static, availability or price). This can be triggered by the user or by interacting system.

Your Applications – Any of your applications that modify property data.

Queue – a queue of all unprocessed events.

Event – an element that stores information that a property data has changed (Event example: property X – images changed, property Y – availability for specified dates changed, property Z – pricing for specified dates changed. Events' would consist of information of what changed without the actual values. Current values are pulled from your system just before sending them to Rentals United API.

Service - an application which processes events from the queue continuously.

A single event processing is composed of the following steps: 1. pull an event from the queue 2. identify type of data changed 3. identify property, dates, etc. affected (stored within the event object) 4. pull current data from your system for affected property, dates, etc. 5. push data to Rentals United API

In order to prevent from dirty reads, a single data event does not store the data values to synchronize, it stores only the metadata of a change (property, dates affected). Current values are pulled by the Service just before sending them to the Rentals United API. Thanks to this approach, events processing order does not affect data consistency.

Dictionaries

Implement Pull methods - Dictionaries methods to be able to communicate with Rentals United API i.e. create property featuring all descriptive content (Rooms, Amenities, etc.)

Dictionary values should be stored in your local cache and refreshed every 3 months or upon Rentals United request.

The more Rentals United dictionary values you map, the more complete listings you will create.

Creating properties

Use Push_PutProperty_RQ to create a new property in Rentals United. You may wish to group properties into buildings (this is not mandatory unless the property is multiunit type). Use Push_PutBuilding_RQ to create a building.

Modifying properties information

Use Push_PutProperty_RQ with a Property/ID parameter to modify static property data of an existing property.

Modifying a property's status

To change a property's status in Rentals United use Push_SetPropertiesStatus_RQ.

There are two flags affecting a property status in Rentals United and connected Sales Channels.

Properties with isActive = true and isArchived = false are visible in the Rentals United UI and can be distributed to the Sales Channels.

You can set up isActive = false and isArchived = false if you wish to temporary deactivate a property in Rentals United and connected Sales Channels. The property is still visible in the Rentals United UI, but availability on the connected Sales Channels gets automatically blocked.

Once you set up isActive = true and isArchived = false, the property and the Sales Channels connections will be restored automatically.

A property in Rentals United will get archived and hidden in Rentals United UI when you set isActive = false and isArchived = true. All of the Sales Channels connections for archived property will be disabled.

Managing a property's calendar

Property calendar consists of * availability (number of units) * minimum stay * changeover days

To push a property's calendar, use Push_PutAvbUnits_RQ. Multiple periods can be pushed in one XML Request. Only calendar data for specified date ranges will get overwritten. Other dates will be untouched.

The default changeover value is Both, check-in and check-out are possible. The minimum stay value must be greater than 0. To remove minimum stay restriction for a date range, set minimum stay value to 1.

Each date range element in Push_PutAvbUnits_RQ, is processed independently. If an error occurs, you need to review the date range element(s) that returned an error. Review the Notifs collection in the XML Response for more info.

Modifying a property's price

Please study VR Price Calculation Logic before you map your pricing logic to Rentals United pricing logic. Rentals United supports seasonal rates, extra guests prices, length of stay pricing, occupancy pricing, last-minute discounts, length of stay discounts, extra fees, taxes and multiple combinations of those.

To modify prices for a specific property, use Push_PutPrices_RQ.

Days without pricing set are deemed as not available - availability is blocked on the Sales Channels.

Reservations & Lead retrieval

In order to get the list of reservations made for your properties, use Pull_ListReservations_RQ. You can make the call every 10 minutes and use LocationID="0" in the request to get reservations for properties in all locations. This method returns all created, modified and cancelled reservations at the same time.

In order to get the list of leads recieved on your properties, use Pull_GetLeads_RQ.

We strongly recommend that you implement Reservation Live Notification Mechanism which notifies your system about reservations (new, modified and cancelled) and leads in real time. here.

You need to create an HTTPS handler, which accepts 3 types of notification XMLs:

LNM_PutConfirmedReservation_RQ – new confirmed reservation notifications

LNM_CancelReservation_RQ – cancellation notifications of confirmed reservations

LNM_PutLeadReservation_RQ – new lead notifications

Reservations & Lead handling

Rentals United provides your system with reservations from multiple Sales Channels. Reservation data received by Rentals United from the Sales Channels is available for you to pull via Rentals United API. Different channels provide different reservation details.

The differences between Channels occur mostly in the following areas:

You can modify reservations created by Sales Channels using Push_ModifyStay_RQ. Your changes are made only in Rentals United and are not propagated to the Sales Channels. You may wish to modify reservations in the below scenarios:

You can also cancel reservations via Rentals United API by using Push_CancelReservation_RQ. It may be useful in cases of reservations where guests do not show up on the arrival day, so you would like to open availability calendar. Please be aware that not all sales channels support cancelling reservation via Rentals United. Majority of sales channels require cancelling reservations directly in their extranet/management console/platform. Full list of OTAs that support cancellation via Rentals United API is available here.

FAQ

What needs to be created before I can add a property to Rentals United via the API?

All you need is an active Rentals United account, there are no other prerequisites. You can create new Rentals United accounts via the User Interface Sign-up. Users are isolated on separate accounts with individual credentials for logging in to the UI or authorizing to the API.

How do I create a property on a brand-new Rentals United account?

In order to create a property you just need to use Push_PutProperty_RQ with all the mandatory information provided. You will need to pull dictionary methods and use the values in the Push_PutProperty_RQ. Dictionary values should be pulled and updated in your local cache once a month and every time you receive an email notification from us that dictionary values have changed.

Do you calculate prices based on the rates pushed via the API?

Yes. We distribute pricing provided by you to connected Sales Channels. This is extremely important to map the pricing logic precisely between your PMS and Rentals United so that a booking price is always correct. Rentals United pricing logic is described in VR price calculation logic section.

Do you quote our system for a final/stay price and availability before making a booking? Or do you accept a booking at your calculated price?

We do not quote your system for a final/stay price before allowing a booking from a Sales Channel. You are responsible for providing up-to-date rates via the API. The best practice is to push new prices to Rentals United immediately after they get changed in your system (event driven delta updates).

What is a difference between RLNM and LNM?

RLNM notifications (LNM_PutHandlerUrl_RQ) are intended for property managers, while LNM (Push_PutLiveNotificationMechanismSubscriptions_RQ) are intended for sales channels.

How do I receive bookings from Rentals United?

You can pull bookings from Rentals United via Pull_ListReservations_RQ API method. You should call Pull_ListReservations_RQ method every 10 minutes and pull bookings from the last hour.

There is also a webhook system in place called Reservations Live Notification Mechanism (RLNM). RLNM sends notifications to your handler, which you can set with LNM_PutHandlerUrl_RQ. Notifications will be triggered by Rentals United at the moment of a new booking created, modified or cancelled in Rentals United.

Every reservation will trigger the RLNM notification.

Example Bok Direct: https://new.rentalsunited.com/Property/2640549?df=22/06/2020&dt=23/06/2020&nop=2&sc=431557

Do you handle the credit card processing or do you pass it to us to process?

We do not process any payments ourselves (Rentals United is not a merchant of record). You can pull credit card details via the API (if you are PCI DSS compliant) via Pull_ListReservations_RQ Users can also charge the guests' credit cards through Rentals United UI via a selected 3rd party Payment Gateway.

How can I test a booking process?

You can add a booking through Rentals United UI and then fetch it with Pull_ListReservations_RQ. You can also attempt to modify a test booking and cancel it via UI and pull changes via API.

I can create owners using Push_PutOwner_RQ method (an ownerID is returned). However, when I try to Pull_GetOwnerDetails_RQ with the new ownerID, I get an "Unauthorized" error.

Owners will only become active and visible via the API after you assign properties to them.

When I list all owners via Pull_ListAllOwners_RQ, only one owner is returned.

Owners will not be visible until you assign properties to them. Otherwise only the default account owner will be visible.

How Owner in RU is related to a property?

Owner is basically a landlord or a contact person for a property. You can use Owners to sort which property belongs to whom, but Owners have no impact on how the properties are distributed and presented externally.

In our PMS, all the properties have owners, and many owners have several properties. Should I create a separate owner in RU for every owner in the PMS?

This depends on how you would like to run the account(s). Owners do not have separate login details in Rentals United. If you want to allow your owners to access only their own properties in Rentals United UI, you need to create separate Rentals United account for every owner in your PMS.

How can I delete an owner?

There is no API method to delete owners.

Do I need to group properties into Buildings?

Buildings in Rentals United serve the same purpose as folders on drives. You can use buildings to group properties together, but they have no impact on publishing properties on the Sales Channels. Building are optional and you can have properties without buildings assigned. The only exception is multiunit-type property. Multiunit properties must be assigned to buildings.

What Agents are for?

Every Sales Channel in Rentals United is represented as an Agent in the API. Agents represent the reservation source.

Add Vacation Rentals product to your offering

You run a Sales Channel and you would like to add Vacation Rentals properties to your offering. In this section, we describe best practices for adding Vacation Rental properties to your offering, updating calendar data and reservation handling. Follow the steps, complete integration and enjoy new Vacation Rentals inventory on your website.

Integration architecture

The below examples are only pseudo code, do not attempt to use and compile them! They are here to present a concept.

class RentalsUnited
{
  static void Static()
  {
    Collection listOfLocations = Pull_ListCitiesProps_RQ(); // retrieve all locations with at least 1 property
    foreach (location in listOfLocations)
    {
      Collection listOfProperties = Pull_ListProp_RQ(location); // retrieve all properties you have access to
      foreach (property in listOfProperties)
      {
        var importStatus;
        if (!existsInMySystem)
        {
          var propertyDetails = Pull_ListSpecProp_RQ(property);
          importStatus = addPropertyToMySystem(propertyDetails);
        }
        else
        {
          if (myLastSyncDate < property.LastMod)
          {
            var propertyDetails = Pull_ListSpecProp_RQ(property);
            importStatus = updatePropertyInMySystem(propertyDetails);
          }
          else
          {
            do nothing;
          }
        }
        Push_PutPropertyExternalListing_RQ(property, importStatus);
      }
    }
  }

  static void Availability()
  {
    Collection listOfPropertiesInMySystem = GetAlreadyImportedPropertiesIntoMySystem();
    foreach (property in listOfProperties)
    {
      Collection dates = Pull_ListPropertyAvbChanges_RQ(property, myLastSyncDate);
      Collection periods = MergeAvbDates(dates); // join adjacent dates into one period
      foreach (period in periods)
      {
        var Block = Pull_ListPropertyBlocks_RQ(property, period.DateFrom, period.DateTo); // get the property's blocks
        var MinStay = Pull_ListPropertyMinStay_RQ(property, period.DateFrom, period.DateTo); // get the property's minstay policy
        var Changeover = Pull_GetChangeoverDays_RQ(property, period.DateFrom, period.DateTo); // get the property's changeover policy
        saveInMySystem(property, Block, MinStay, Changeover);
      }
    }
  }

  static void Prices()
  {
    Collection listOfPropertiesInMySystem = GetAlreadyImportedPropertiesIntoMySystem();
    foreach (property in listOfProperties)
    {
      Collection dates = Pull_ListPropertyPriceChanges_RQ(property, myLastSyncDate);
      Collection periods = MergePrices(dates); // join adjacent dates into one period
      foreach (period in periods)
      {
        var price = Pull_ListPropertyPrices_RQ(property, period.DateFrom, period.DateTo); // get the property's base prices
        var discounts = Pull_ListPropertyDiscounts_RQ(property, period.DateFrom, period.DateTo); // get the property's discounts
        saveInMySystem(property, price, discounts);
      }
    }
  }
}

An effective integration is composed of two parts:

  1. Full data sync required when you initially retrieve a property, performed periodically (weekly or monthly) and emergency synchronization performed or upon Rentals United request.
  2. Delta sync - performed constantly (on data change event in Rentals United)

Below you will find a high-level overview of the recommended system architecture designed for maximum data consistency, minimum load and minimum sync delay. The below events architecture isolates Rentals United integration from other operations your system performs.

Dictionaries

Implement Pull methods - Dictionaries methods to be able to communicate with Rentals United API i.e. create property featuring all descriptive content (Rooms, Amenities, etc.)

Dictionary values should be stored in your local cache and refreshed every 3 months or upon Rentals United request.

The more Rentals United dictionary values you map, the more complete listings you will create.

Retrieving properties

You will get access to properties once a property manager selects your Sales Channel in Rentals United, completes connection wizard and activates the connection.

We offer 3 API methods allowing you to retrieve properties depending on your needs: - Pull_ListProp_RQ - allows you to pull properties by LocationID - Pull_ListOwnerProp_RQ - allows you to pull properties by OwnerID - Pull_ListPropByCreationDate_RQ - allows you to pull properties by the date they were created in Rentals United.

To get the details of a specific property, use Pull_ListSpecProp_RQ

User and Owner ID

In RU API, every account can have one or multiple owners. Owners can be used to group properties, for example, properties with the same landlord or if they share the same location.

Retrieving property updates

Use Live Notification Mechanism to receive webhooks once property data gets changed in Rentals United. There are 3 data change types supported

Onboarding new properties

Periodically use Pull_ListProp_RQ or Pull_ListOwnerProp_RQ to identify new properties connected to your Sales Channel.

Only properties with isActive = true, isArchived = false are available for sales.

To get the details of a specific property, use Pull_ListSpecProp_RQ

Removing properties

Properties with isActive = false, isArchived = true or false or property not available in Pull_ListProp_RQ XML Response are not available for sales and should be removed from your system.

Updating property external status

Use Push_PutPropertyExternalListing_RQ to provide current status of a listing on your Sales Channel.

Retrieving calendar

Property calendar consists of - availability (number of units) - minimum stay - changeover days

Use Pull_ListPropertyAvailabilityCalendar_RQ to pull property calendar at least once a day and every time your receive a Live Notification to your LNM endpoint.

Retrieving pricing

Please study VR Price Calculation Logic before you map Rentals United pricing logic to your platform pricing logic. Rentals United supports seasonal rates, extra guests prices, length of stay pricing, occupancy pricing, last-minute discounts, length of stay discounts, extra fees, taxes and multiple combinations of those.

Use Pull_ListPropertyPrices_RQ to pull property pricing at least once a day and every time your receive a Live Notification to your LNM endpoint. Use Pull_ListPropertyDiscounts_RQ to pull property discounts at least once a day and every time your receive a Live Notification to your LNM endpoint.

Reservations, Requests & Leads

In order to retrieve a reservation, use any of the following methods:

The below examples are only pseudo code, do not attempt to use and compile it! It is only here to present the concept.

namespace PseudoCodeDocumentation
{

    static void makeReservation()
    {
        var clientPrice < the final price the client will pay
        var canBook = Pull_GetPropertyAvbPrice_RQ(propertyid, arrival, departure, guests);
        if (canBook.Status == Success)
        {
            var result = Push_PutConfirmedReservationMulti_RQ(propertyid, arrival, departure, guests, guestInfo, canBook.RUPrice, clientprice);
            if (result.Status == Success)
            {
                saveInMySystem(result.ReservationID);
                ShowReservationConfirmedMessage();
            }
            else
            {
                ShowErrorMessage();
            }
        }
        else
        {
            ShowPropertyNotAvailableMessage();
        }
    }

    static void modifyReservation()
    {
        var ReservationID; //ReservationID returned by RentalsUnited
        var initialStay = GetInitialStayFromMySystem(ReservationID);
        var newStay = GetNewStayFromMySystem(ReservationID);
        var result = Push_ModifyStay_RQ(ReservationID, initialStay, newStay);
        if (result.Status == Success)
        {
            updateInMySystem(result.ReservationID, newStay); //save updated values in my system
            ShowReservationUpdatedMessage();
        }
        else
        {
            ShowErrorMessage();
        }
    }

    static void cancelReservation()
    {
        var ReservationID; //ReservationID returned by RentalsUnited
        var result = Push_CancelReservation_RQ(ReservationID);
        if (result.Status == Success)
        {
            updateInMySystem(result.ReservationID); //save updated values in my system
            ShowReservationCancelledMessage();
        }
        else
        {
            ShowErrorMessage();
        }
    }
}

Enhance Property Manager's workflow

You run a Vacation Rental service that makes Property Managers life easier. Let's say you help them to manage reservations in terms of scheduling apartment cleaning or automate guest registration process. If you need to be notified every time a Property Manager using your service gets a reservation, this section will help you plan your integration.

Integration architecture

Below you will find a high-level overview of the recommended system architecture designed for maximum data consistency, minimum load and minimum sync delay. The below events architecture isolates Rentals United integration from other operations your system performs.

Explanations of elements from diagrams:

Action – a modify action that confirms, cancels or modifies reservation data. This can be triggered by the user or by interacting system.

Your Applications – Any of your applications that rely on reservation data.

Webhook notification - XML request sent to endpoint you specify that carries information about reservation.

Endpoint - a web service, part of your system that can handle RLNM notifications.

Service - an object that is able to communicate with Rentals United system and process objects from Rentals United domain.

Periodical sync jobs - set of processes that will help you control inventory(properties list and reservations) of ParentUsers

Dictionaries

We recommend implementing Pull methods - Dictionaries methods to be able to communicate with Rentals United API i.e. group properties by their location and display it.

We believe that in scope of your integration you should focus on implementing locations, reservation statuses, cancellation types

Dictionary values should be stored in your local cache and refreshed every 3 months or upon Rentals United request.

Retrieve users and their properties

You will get access to properties once a property manager selects your Vacation Rental Service in Rentals United, completes connection wizard and activates the connection. You will become a Subuser that gets access to information about properties and notifications regarding reservations updates of a ParentUser that connected to you service.

For starters you should call Pull_ListAllParentUsers_RQ in order to retrieve list of users available to you. Then for each user you can call Pull_ListOwnerProp_RQ.

If you feel like you need more details about the property than available in Pull_ListOwnerProp_RS you may also implement Pull_ListSpecProp_RQ

Synchronize reservations

In order to get the list of reservations made for ParentUser properties, use Pull_ListReservationsSubUsers_RQ. You can make the call every 10 minutes and use LocationID="0" in the request to get reservations for properties in all locations. This method returns both created, modified and cancelled reservations at the same time.

We strongly recommend that you implement Reservation Live Notification Mechanism which notifies your system in a real time about new reservations and reservation modifications.

You need to create a HTTPS handler, which accepts 3 types of notification XMLs:

LNM_PutConfirmedReservation_RQ – new confirmed reservation notifications

LNM_CancelReservation_RQ – cancellation notifications of confirmed reservations

LNM_PutLeadReservation_RQ – new lead notifications

Live Notification Mechanism does not process your webhook response and does not resend notifications in case of errors. You need to implement Pull_ListReservations_RQ and periodically check if all reservations and reservation modifications were properly delivered via RLNM.

Guest Communication

Rentals United Guest Communication REST API Documentation

https://api.rentalsunited.com/swagger/ui/index

In this section we describe Guest Communication API designed for:

Rentals United Guest communication currently supports:

Swagger documentation for Rentals United Guest Communication REST API is available under the below link: https://api.rentalsunited.com/swagger/ui/index

Guest Communication for Sales Channels

You are integrated with Rentals United as a Sales Channel and you would like to automatically exchange messages between Guests and Property Providers via Rentals United Guest Communication REST API. In this section we describe best practices for Guest Communication integration, starting a new thread, posting messages to a thread, getting new messages, marking messages as “read”, getting webhook notifications when a new message is posted.

An effective Guest Communication integration for a Sales Channel is composed of the following steps:

Guest Communication for PMSs

You are integrated with Rentals United as a Property Management System and you would like to automatically exchange messages with Guests via Rentals United Guest Communication REST API. In this section we describe best practices for Guest Communication integration, fetching threads attached to reservations, getting messages, posting replies, marking message as “read”, getting webhook notifications when a new message is posted.

An effective Guest Communication integration for a PMS is composed of the following steps:

Channel Management API

This section is dedicated to managing connections to Sales Channels known also as OTAs. As soon as you integrate below methods you will have channel management features in your software as well! We recommend to study glossary thoroughly as every Sales Channel has different business constraints so it is important when submitting update requests. Fortunately Rentals United comes with an idea to standardize them as much as possible.

Glossary

Rentals United distinguishes different types of Sales Channels, depending on the structure and capabilities of the properties they manage. The structure has been flatten into the following 2-tier architecture:

The two types of systems are described below. Please, read the definitions in order to have a better overview of what cluster, unit and rate can be in various systems.

Cluster

It is an entity that aggregates units.

Unit

It is an entity that represents a unit being rented in a Sales Channel.

Rate

It is an entity that holds information on the pricing rules for specific unit. Rate has parameters needed for RU to calculate a proper price value, which is later sent to the Sales Channels (e.g. prices mark-up, a number of people included in price).

Concluding, there are some limitations due to above structure supported by various OTA systems.

TypeId System type Apartments clustering Multi-rate plan support
1 HRS Yes; in hotels Yes
2 HRW Yes; in accounts No

For now it is possible to:

ruEX Promotions API

Overview

Rentals United ruEX Promotions is a PMS-dedicated solution that allows you to expand the range of offered services in your PMS application. The ruEX Promotions add-on is an extra layer of product where your Booking.com-connected clients can create and manage promotions and special offers and, therefore, attract more potential guests and advance in the sales channel ranking. And all of this comes in a single extra tab within your own software!

No need for constant switching between your PMS software and the sales channel dashboard, property managers using your PMS gain a great feature to offer discounts and adjust special offers, bringing more and more clients in.

Are you already connected to Booking.com? You can keep your existing connection, but expand it with the ruEX Promotions solution.

Plus, you maintain a full PMS autonomy. Upon implementation, the PMS gains access to the Management Panel and has full control over licences and user management

All of the above comes in a simple HTML format that can be embedded in your application and fully blended with your company branding.

What benefits does it bring to you and your clients?

PMS partners

Property Managers

Full ruEX Promotions documentation as well as detailed instructions can be found at RU Docs.

API methods

New ruEX Promotions methods are published at ruEX Promotions.

Suggested Push and Pull methods call frequency

As a partner integrating Rentals United API, you need to ensure the data flow works in the most efficient way possible. This way, the data is synchronized frequently enough to remain up-to-date across PMS, Rentals United and SC. Below, you can find the suggested frequency with which you should call certain methods:

Property Management Systems (PMS)

Mandatory methods

Method Schedule
Dictionary methods Every month
Push_PutProperty_RQ Upon change or once a week
Push_PutPrices_RQ Upon change or every 24 hours
Push_PutAvbUnits_RQ Upon change or every 24 hours
Pull_ListReservations_RQ Every 30 minutes
Pull_GetLeads_RQ Every 30 minutes
LNM_PutHandlerUrl_RQ Mandatory notification system, updated on URL change only

Optional methods

Method Schedule
Push_ModifyStay_RQ Upon modification is made to the booking
Push_PutLongStayDiscounts_RQ Upon change or every 24 hours
Push_PutLastMinuteDiscounts_RQ Upon change or every 24 hours

Sales Channels (SC)

Mandatory methods

Method Schedule
Dictionary methods Every month
Push_PutLiveNotificationMechanismSubscriptions_RQ Mandatory notification system, updated upon new connections
Pull_ListAllOwners_RQ Upon new connection or every 24 hours
Pull_ListOwnerProp_RQ Upon new connection or every 24 hours
Pull_ListSpecProp_RQ Upon LNM Notification or new property onboarding or every 24 hours
Pull_ListPropertyAvailabilityCalendar_RQ Upon LNM Notification or every 24 hours
Pull_ListPropertyPrices_RQ Upon LNM Notification or every 24 hours
Pull_ListPropertyDiscounts_RQ Upon LNM Notification or every 24 hours
Pull_GetPropertyAvbPrice_RQ Before creating reservation
Push_PutConfirmedReservationMulti_RQ Upon booking creation
Push_CancelReservation_RQ Upon booking cancelation
Push_ModifyStay_RQ Upon modification is made to the booking

Optional methods

Method Schedule
Pull_GetOwnReservations_RQ Every 24 hours
Pull_ListPropertiesBlocks_RQ Every 24 hours

API Reference

The API Reference section documents each and every endpoint: HTTP routes, input requests, output responses, and what each domain object and its attributes mean.

Abbreviations in API

Abbreviation Description
C Container element
M Mandatory element
O Optional element
X Element can be omitted in update mode. If you need to remove some data just define an element, attribute with an empty value

Authentication

To authorize, use this code:

<Pull_ListStatuses_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListStatuses_RQ>

Pull methods - Dictionaries

This section contains information about the predefined dictionary values used in Rentals United like list of property types, amenities, etc.

Make sure create proper mappings between values retrieved from these dictionaries and your system. You will use these mappings to encode data sent and received from rentals united API.

List statuses

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Status;

Pull_ListStatuses_RQ request = new Pull_ListStatuses_RQ() 
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListStatuses_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try 
{
    Pull_ListStatuses_RS response = XmlTools.DeserializeObject<Pull_ListStatuses_RS>(xmlResponse);
    // process response object
}
catch 
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Rentals United API will provide a response including:

Request

XML Request

<Pull_ListStatuses_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
</Pull_ListStatuses_RQ>
XML Path Data Type Type Description
Pull_ListStatuses_RQ C Root element
Pull_ListStatuses_RQ/Authentication C, M Authentication details
Pull_ListStatuses_RQ/Authentication/UserName String(50) M Username
Pull_ListStatuses_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListStatuses_RS>
    <Status ID="0">Success</Status>
    <ResponseID>d3144ddc232f40ccb2b974e0e4ef66f5</ResponseID>
    <Statuses>
        <StatusInfo ID="-6">This request was rate limited. Maximum number of requests allowed for this API method with specified parameters is {0} per {1} sliding window. You have reached this limit.</StatusInfo>
        <StatusInfo ID="-5">This request was rate limited. Maximum concurrent requests allowed for this API method with specified parameters is {0}. You have reached this limit.</StatusInfo>
        <StatusInfo ID="-4">Incorrect login or password</StatusInfo>
        <StatusInfo ID="-3">Invalid request. {0}</StatusInfo>
        <StatusInfo ID="-2">This request cannot be processed. {0}</StatusInfo>
        <StatusInfo ID="-1">The XML contains not implemented method</StatusInfo>
        <StatusInfo ID="0">Success</StatusInfo>
        <StatusInfo ID="1">Property is not available for a given dates</StatusInfo>
        <StatusInfo ID="2">Nothing available for a given dates</StatusInfo>
        <StatusInfo ID="3">Property has no price settings for a given dates</StatusInfo>
        <StatusInfo ID="4">Wrong destination id:{0}</StatusInfo>
        <StatusInfo ID="5">Wrong distance unit id:{0}</StatusInfo>
        <StatusInfo ID="6">Wrong composition room id:{0}</StatusInfo>
        <StatusInfo ID="7">Wrong amenity id:{0}</StatusInfo>
        <StatusInfo ID="8">Wrong arrival instructions</StatusInfo>
        <StatusInfo ID="9">Could not insert late arrival fee, From:{0} To:{1} Fee:{2}</StatusInfo>
        <StatusInfo ID="10">Could not insert early departure fee, From:{0} To:{1} Fee:{2}</StatusInfo>
        <StatusInfo ID="11">Wrong payment method id:{0}</StatusInfo>
        <StatusInfo ID="12">Wrong deposit type id:{0}</StatusInfo>
        <StatusInfo ID="13">Cancellation policies overlaps</StatusInfo>
        <StatusInfo ID="14">Owner does not exist</StatusInfo>
        <StatusInfo ID="15">Apartment name ({0}) already exist in database.</StatusInfo>
        <StatusInfo ID="16">You already defined apartment with PUID:{0}</StatusInfo>
        <StatusInfo ID="17">Unexpected error, contact IT or try again</StatusInfo>
        <StatusInfo ID="18">Property with given ID does not exist.</StatusInfo>
        <StatusInfo ID="19">Dates mishmash</StatusInfo>
        <StatusInfo ID="20">Past dates</StatusInfo>
        <StatusInfo ID="21">Weird block dates for property: {0} - {1} - {2}. Whole block is {3} - {4}</StatusInfo>
        <StatusInfo ID="22">We have confirmed reservation for those dates. Please cancel the reservation instead of marking the dates as available.</StatusInfo>
        <StatusInfo ID="23">Wrong ImageTypeID:{0}</StatusInfo>
        <StatusInfo ID="24">Your are not the owner of the apartment.</StatusInfo>
        <StatusInfo ID="25">The value of "Bigger" must be smaller than the value of "Smaller".</StatusInfo>
        <StatusInfo ID="26">Warning! Look at Notifs collection.</StatusInfo>
        <StatusInfo ID="27">DaysToArrivalFrom and DaysToArrivalTo requires positive values.</StatusInfo>
        <StatusInfo ID="28">Reservation does not exist.</StatusInfo>
        <StatusInfo ID="29">Requested stay, cost details do not match with property on reservation on hold.</StatusInfo>
        <StatusInfo ID="30">Element ignored because of other errors.</StatusInfo>
        <StatusInfo ID="31">Error occurred. All changes rolled back.</StatusInfo>
        <StatusInfo ID="32">Bigger and Smaller requires positive values.</StatusInfo>
        <StatusInfo ID="33">Smaller is smaller than Bigger.</StatusInfo>
        <StatusInfo ID="34">RUPrice is not valid. Correct price is:{0}</StatusInfo>
        <StatusInfo ID="35">AlreadyPaid is bigger than ClientPrice.</StatusInfo>
        <StatusInfo ID="36">Wrong DetailedLocationID. City or district precision is required.</StatusInfo>
        <StatusInfo ID="37">Property name is too long (max 150).</StatusInfo>
        <StatusInfo ID="38">Property has missing data and cannot be offered.</StatusInfo>
        <StatusInfo ID="39">Location does not exist.</StatusInfo>
        <StatusInfo ID="40">You cannot define discounts before the prices. The property has missing prices in given dates.</StatusInfo>
        <StatusInfo ID="41">The reservation was created by the other user.</StatusInfo>
        <StatusInfo ID="42">The reservation is expired.</StatusInfo>
        <StatusInfo ID="43">You cannot confirm this reservation. It's broken.</StatusInfo>
        <StatusInfo ID="44">The apartments are not in the same city.</StatusInfo>
        <StatusInfo ID="45">Data validation error.</StatusInfo>
        <StatusInfo ID="46">The property is not active. PropertyID:{0}</StatusInfo>
        <StatusInfo ID="47">Property is not available for a given dates. PropertyID:{0}</StatusInfo>
        <StatusInfo ID="48">The reservation is not on Put On Hold status.</StatusInfo>
        <StatusInfo ID="49">CountryID does not exist.</StatusInfo>
        <StatusInfo ID="50">Guest name is required.</StatusInfo>
        <StatusInfo ID="51">Guest surname is required.</StatusInfo>
        <StatusInfo ID="52">Guest email is required.</StatusInfo>
        <StatusInfo ID="53">This method is deprecated. Use Push_PutConfirmedReservationMulti_RS</StatusInfo>
        <StatusInfo ID="54">This method is deprecated. Use Push_PutPropertiesOnHold_RQ</StatusInfo>
        <StatusInfo ID="55">Negative values in price elements is not allowed.</StatusInfo>
        <StatusInfo ID="56">Property does not exist.</StatusInfo>
        <StatusInfo ID="57">The request contains both types of composition definitions: composition and composition with amenities. Please use only one type.</StatusInfo>
        <StatusInfo ID="58">This amenity: {0} is not allowed in room type: {1}</StatusInfo>
        <StatusInfo ID="59">Positive value is required</StatusInfo>
        <StatusInfo ID="60">Duplicate value in LOSS element</StatusInfo>
        <StatusInfo ID="61">Duplicate value in EGPS element</StatusInfo>
        <StatusInfo ID="62">Missing Text or Image value.</StatusInfo>
        <StatusInfo ID="63">Wrong language id:{0}.</StatusInfo>
        <StatusInfo ID="64">DayOfWeek attribute must be between {0} and {1}.</StatusInfo>
        <StatusInfo ID="65">No permission to property {0}.</StatusInfo>
        <StatusInfo ID="66">Coordinates are invalid or missing.</StatusInfo>
        <StatusInfo ID="67">Duplicate value in LOSPS element</StatusInfo>
        <StatusInfo ID="68">NumberOfGuests in LOSP element has to be greater than 0</StatusInfo>
        <StatusInfo ID="69">Building does not exist</StatusInfo>
        <StatusInfo ID="70">Some properties not updated:{0}</StatusInfo>
        <StatusInfo ID="71">Wrong security deposit type id: {0}</StatusInfo>
        <StatusInfo ID="72">Discount value can't be lower than 0.</StatusInfo>
        <StatusInfo ID="73">At least one PropertyID element is required.</StatusInfo>
        <StatusInfo ID="74">DateFrom has to be earlier than DateTo.</StatusInfo>
        <StatusInfo ID="75">DateFrom has to be earlier or equal to DateTo.</StatusInfo>
        <StatusInfo ID="76">StandardGuests must be smaller than CanSleepMax.</StatusInfo>
        <StatusInfo ID="77">NOP: positive value required.</StatusInfo>
        <StatusInfo ID="78">Minimum stay is not valid (X nights).</StatusInfo>
        <StatusInfo ID="79">Stay period doesn't match with minimum stay</StatusInfo>
        <StatusInfo ID="80">Cannot activate archived property</StatusInfo>
        <StatusInfo ID="81">You don't have permission to modify this owner</StatusInfo>
        <StatusInfo ID="82">Apartment is Archived or no longer available or not Active</StatusInfo>
        <StatusInfo ID="83">Mixed owners in the request. Contact IT.</StatusInfo>
        <StatusInfo ID="84">Too many properties in your request (max 100).</StatusInfo>
        <StatusInfo ID="85">Invalid time value. Allowed values 00:00 - 23:59</StatusInfo>
        <StatusInfo ID="86">Operation has reached the maximum limit of time. The results are not complete.</StatusInfo>
        <StatusInfo ID="87">Wrong page URL Type</StatusInfo>
        <StatusInfo ID="88">Wrong date format for parameter {0}</StatusInfo>
        <StatusInfo ID="89">Stay period doesn't match with changeover</StatusInfo>
        <StatusInfo ID="90">Enqueued</StatusInfo>
        <StatusInfo ID="91">Not found</StatusInfo>
        <StatusInfo ID="92">Duplicate value in distances.</StatusInfo>
        <StatusInfo ID="93">Unauthorized</StatusInfo>
        <StatusInfo ID="94">Some of required fields were not filled.</StatusInfo>
        <StatusInfo ID="95">Email already exists.</StatusInfo>
        <StatusInfo ID="96">Password must be at least 8 characters long.</StatusInfo>
        <StatusInfo ID="97">Standard number of guests must be of positive value.</StatusInfo>
        <StatusInfo ID="98">Deposit amount can't exceed value of 214,748.3647</StatusInfo>
        <StatusInfo ID="99">Technical error - missing file</StatusInfo>
        <StatusInfo ID="100">Property description is required</StatusInfo>
        <StatusInfo ID="101">Pets not allowed</StatusInfo>
        <StatusInfo ID="102">Currency doesn't match with city currency</StatusInfo>
        <StatusInfo ID="103">Properties collection cannot be empty</StatusInfo>
        <StatusInfo ID="104">You need provide at least one value to modify stay.</StatusInfo>
        <StatusInfo ID="105">Some periods overlap. Periods must be separable.</StatusInfo>
        <StatusInfo ID="106">You can only modify stay in confirmed reservation.</StatusInfo>
        <StatusInfo ID="107">No reserved apartment found.</StatusInfo>
        <StatusInfo ID="108">Client Price cannot be negative</StatusInfo>
        <StatusInfo ID="109">Already Paid cannot be negative.</StatusInfo>
        <StatusInfo ID="110">Cannot use OwnerID created by other users.</StatusInfo>
        <StatusInfo ID="111">Only property owner can add reviews.</StatusInfo>
        <StatusInfo ID="112">Review rating value must be between 0-5</StatusInfo>
        <StatusInfo ID="113">Submitted date must be later than arrival date</StatusInfo>
        <StatusInfo ID="114">Cannot remove confirmed reservation. Some periods ignored.</StatusInfo>
        <StatusInfo ID="115">MinStays not satisfied, collection cannot be empty.</StatusInfo>
        <StatusInfo ID="116">LocationID {0} is not proper city location.</StatusInfo>
        <StatusInfo ID="117">Only one description allowed per language.</StatusInfo>
        <StatusInfo ID="118">Max number of guests must be of positive value.</StatusInfo>
        <StatusInfo ID="119">Property name is not defined.</StatusInfo>
        <StatusInfo ID="120">Check-in / check-out details are incorrect.</StatusInfo>
        <StatusInfo ID="121">Reservation not mapped in PMS. Contact IT support with Rentals United ID and your PMS Reservation ID.</StatusInfo>
        <StatusInfo ID="122">Failed to modify reservation in PMS. Try again or contact IT support for more information.</StatusInfo>
        <StatusInfo ID="123">Failed to cancel reservation in PMS. Try again or contact IT support for more information.</StatusInfo>
        <StatusInfo ID="124">Failed to insert reservation in PMS. Try again or contact IT support for more information.</StatusInfo>
        <StatusInfo ID="125">Wrong quantity of amenities. It should be between 0 - 32767.</StatusInfo>
        <StatusInfo ID="126">Invalid URL.</StatusInfo>
        <StatusInfo ID="127">Missing mandatory element: {0}.</StatusInfo>
        <StatusInfo ID="128">Cancellation policy text cannot be empty.</StatusInfo>
        <StatusInfo ID="129">Only reservations for apartments from same city are allowed</StatusInfo>
        <StatusInfo ID="130">Cannot change apartment from city other than initial reservation. Cancel this reservation and create new one.</StatusInfo>
        <StatusInfo ID="131">Bad request.</StatusInfo>
        <StatusInfo ID="132">This functionality is forbidden for you.</StatusInfo>
        <StatusInfo ID="133">Too many images. Images limit is 100.</StatusInfo>
        <StatusInfo ID="134">Invalid currency.</StatusInfo>
        <StatusInfo ID="135">Request rejected by partner.</StatusInfo>
        <StatusInfo ID="136">Customer info is required.</StatusInfo>
        <StatusInfo ID="137">PMSID is not valid.</StatusInfo>
        <StatusInfo ID="138">Provide a not empty PUID.</StatusInfo>
        <StatusInfo ID="139">Cannot create new property as archived.</StatusInfo>
        <StatusInfo ID="140">PropertyID : {0} cannot be archived / activated. The whole request was cancelled. Use Push_PutProperty_RQ instead.</StatusInfo>
        <StatusInfo ID="141">PUID already exists for another property.</StatusInfo>
        <StatusInfo ID="142">Property already has PMSID assigned. You cannot omit PMSID while update.</StatusInfo>
        <StatusInfo ID="143">Cannot archive this property. {0}</StatusInfo>
        <StatusInfo ID="144">Invalid Additional fees collection. {0}</StatusInfo>
        <StatusInfo ID="145">There are not enough units in this property.</StatusInfo>
        <StatusInfo ID="146">Multi unit functionality is disabled.</StatusInfo>
        <StatusInfo ID="147">Changeover is invalid. Use number 1, 2, 3 or 4.</StatusInfo>
        <StatusInfo ID="148">Number of units do not match with reservation on hold.</StatusInfo>
        <StatusInfo ID="149">Units must be a positive number</StatusInfo>
        <StatusInfo ID="150">Invalid invoice ID</StatusInfo>
        <StatusInfo ID="151">CancelUrl is missing</StatusInfo>
        <StatusInfo ID="152">ReturnUrl is missing</StatusInfo>
        <StatusInfo ID="153">PayPal transaction failed</StatusInfo>
        <StatusInfo ID="154">Single unit apartment cannot be converted to multi unit</StatusInfo>
        <StatusInfo ID="155">ResApaID has to be provided for multi unit properties</StatusInfo>
        <StatusInfo ID="156">ResApaID is not valid</StatusInfo>
        <StatusInfo ID="157">Card registration failed</StatusInfo>
        <StatusInfo ID="158">Request rejected. Check PMS synchronization settings</StatusInfo>
        <StatusInfo ID="159">Failed to insert reservation for property {0}({1}) to PMS. {2}</StatusInfo>
        <StatusInfo ID="160">The location and city already added to database</StatusInfo>
        <StatusInfo ID="161">You are not permitted to list this user's reservations</StatusInfo>
        <StatusInfo ID="162">Pass valid email</StatusInfo>
        <StatusInfo ID="163">Future dates</StatusInfo>
        <StatusInfo ID="164">Invalid date format</StatusInfo>
        <StatusInfo ID="165">You cannot archive a confirmed reservation. If this is a cancellation please cancel it first.</StatusInfo>
        <StatusInfo ID="166">Reservation is archived. Unarchive first before performing this operation.</StatusInfo>
        <StatusInfo ID="167">Reservation is for properties you are not the owner of</StatusInfo>
        <StatusInfo ID="168">Reservation is not canceled.</StatusInfo>
        <StatusInfo ID="169">Cannot process a request because apartment is connected to RMS</StatusInfo>
        <StatusInfo ID="170">Invalid property type id</StatusInfo>
        <StatusInfo ID="171">Invalid xml format in AdditionalData node</StatusInfo>
        <StatusInfo ID="172">Preparation time before arrival is blocking requested stay</StatusInfo>
        <StatusInfo ID="173">Discount ignored or trimmed. Maximum length of discounted stay is {0} nights.</StatusInfo>
        <StatusInfo ID="174">Invalid field LicenceInfo/FrenchLicenceInfo/CityTaxCategory. Allowed values: 11-19</StatusInfo>
        <StatusInfo ID="175">Invalid field LicenceInfo/FrenchLicenceInfo/TypeOfResidence. Allowed values: 1-3</StatusInfo>
        <StatusInfo ID="176">Request confirmation in external system failed</StatusInfo>
        <StatusInfo ID="177">Property is not connected to external system</StatusInfo>
        <StatusInfo ID="178">This reservation was made in external system and cannot be cancelled in Rentals United. Please cancel it directly in the sales channel</StatusInfo>
        <StatusInfo ID="179">Additional fee value must be greater or equal zero</StatusInfo>
        <StatusInfo ID="180">LOS pricing and full stay pricing cannot be defined in the same season</StatusInfo>
        <StatusInfo ID="181">Number of units cannot be decreased</StatusInfo>
    </Statuses>
</Pull_ListStatuses_RS>
XML Path Data Type Type Description
Pull_ListStatuses_RS C Root element
Pull_ListStatuses_RS/Status String(100) M Status description
Pull_ListStatuses_RS/Status@ID Integer M Status ID
Pull_ListStatuses_RS/ResponseID String(32) M Unique response ID
Pull_ListStatuses_RS/Statuses C A collection of statuses
Pull_ListStatuses_RS/Statuses/StatusInfo String(100) M Status description
Pull_ListStatuses_RS/Statuses/StatusInfo@ID Integer M Status ID

List MCQ Statuses

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.MCQStatus;

Pull_ListMCQStatuses_RQ request = new Pull_ListMCQStatuses_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListMCQStatuses_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListMCQStatuses_RS response = XmlTools.DeserializeObject<Pull_ListMCQStatuses_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns the list of minimum content quality validation error codes with their descriptions. It is used in method OrderMinimumContentQualityCheck.

Request

XML Request

<Pull_ListMCQStatuses_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListMCQStatuses_RQ>
XML Path Data Type Type Description
Pull_ListMCQStatuses_RQ C Root element
Pull_ListMCQStatuses_RQ/Authentication C, M Authentication details
Pull_ListMCQStatuses_RQ/Authentication/UserName String(50) M Username
Pull_ListMCQStatuses_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListMCQStatuses_RS>
    <Status ID="0">Success</Status>
    <ResponseID>8e0539c0801e4a7f9462b6f3a68d5a2c</ResponseID>
    <MCQViolationStatuses>
        <Statuses>
            <Code>CanSleepMaxIsSmallerThenMinValue</Code>
            <Description>Fill can sleep - Go to My Properties -&gt; Edit Property -&gt; Step 1 and fill in how many guests can sleep in your property</Description>
        </Statuses>
        <Statuses>
            <Code>CanSleepMaxIsGreaterThenMaxValue</Code>
            <Description>Fill can sleep - Go to My Properties -&gt; Edit Property -&gt; Step 1 and fill in how many guests can sleep in your property</Description>
        </Statuses>
        <Statuses>
            <Code>ContinentIsNotValid</Code>
            <Description>Please fill the street address. - Go to My Properties -&gt;Edit Property -&gt; Step 1 and add proper location of your property, use them map to provide exact coordinates.</Description>
        </Statuses>
        <Statuses>
            <Code>CountryIsNotValid</Code>
            <Description>Fill country and city - Go to My Properties -&gt; Edit Property -&gt; Step 1 and fill in Country and City fields above the map</Description>
        </Statuses>
        <Statuses>
            <Code>AddressIsEmpty</Code>
            <Description>Please fill the street address. - Go to My Properties -&gt;Edit Property -&gt; Step 1 and add proper street in the first field of Location. You can also use them map to provide exact coordinates.</Description>
        </Statuses>
        <Statuses>
            <Code>AmenitiesAreEmpty</Code>
            <Description>Add at least @number@ of amenities - Go to My Properties -&gt; Edit Property -&gt; Step 2: Amenities and add as many amenities as requested and possible for this property.</Description>
        </Statuses>
    </MCQViolationStatuses>
</Pull_ListMCQStatuses_RS>
XML Path Data Type Type Description
Pull_ListMCQStatuses_RS C Root element
Pull_ListMCQStatuses_RS/Status String(100) M See ListStatuses
Pull_ListMCQStatuses_RS/Status@ID Integer M See ListStatuses
Pull_ListMCQStatuses_RS/ResponseID String(32) M Unique response ID
Pull_ListMCQStatuses_RS/MCQViolationStatuses C, M A collection of mcq violation statuses
Pull_ListMCQStatuses_RS/MCQViolationStatuses/Code String(50) M ValidationErrorCode
Pull_ListMCQStatuses_RS/MCQViolationStatuses/Description String(2000) M Phrase describing the Error Code

List citizenships

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Citizenship;

Pull_ListCitizenships_RQ request = new Pull_ListCitizenships_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListCitizenships_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListCitizenships_RS response = XmlTools.DeserializeObject<Pull_ListCitizenships_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of owners' citizenships with their values. Use numeric value while setting owner data related to licence info in Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerCitizenship. See PutProperty.

Request

XML Request

<Pull_ListCitizenships_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListCitizenships_RQ>
XML Path Data Type Type Description
Pull_ListCitizenships_RQ C Root element
Pull_ListCitizenships_RQ/Authentication C, M Authentication details
Pull_ListCitizenships_RQ/Authentication/UserName String(50) M Username
Pull_ListCitizenships_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListCitizenships_RS>
    <Status ID="0">Success</Status>
    <ResponseID>ae42543ddab0404490524217bba6b594</ResponseID>
    <CitizenshipsInfo>
        <Citizenship>
            <Value>1</Value>
            <Text>Andorra</Text>
        </Citizenship>
        <Citizenship>
            <Value>2</Value>
            <Text>United Arab Emirates</Text>
        </Citizenship>
        <Citizenship>
            <Value>3</Value>
            <Text>Afghanistan</Text>
        </Citizenship>
        <Citizenship>
            <Value>4</Value>
            <Text>Antigua and Barbuda</Text>
        </Citizenship>
    </CitizenshipsInfo>
</Pull_ListCitizenships_RS>
XML Path Data Type Type Description
Pull_ListCitizenships_RS C Root element
Pull_ListCitizenships_RS/Status String(100) M See ListStatuses
Pull_ListCitizenships_RS/Status@ID Integer M See ListStatuses
Pull_ListCitizenships_RS/ResponseID String(32) M Unique response ID
Pull_ListCitizenships_RS/CitizenshipsInfo C, M A container object with a list of citizenships assigned to the owner
Pull_ListCitizenships_RS/CitizenshipsInfo/Citizenship C, M A container object for owner’s all citizenship information
Pull_ListCitizenships_RS/CitizenshipsInfo/Citizenship/Value Integer M Unique ID assigned to citizenship
Pull_ListCitizenships_RS/CitizenshipsInfo/Citizenship/Text String(2000) M Owner's citizenship

List property types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyType;

Pull_ListPropTypes_RQ request = new Pull_ListPropTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropTypes_RS response = XmlTools.DeserializeObject<Pull_ListPropTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns the list of available property types by number of bedrooms.

Request

XML Request

<Pull_ListPropTypes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListPropTypes_RQ>
XML Path Data Type Type Description
Pull_ListPropTypes_RQ C Root element
Pull_ListPropTypes_RQ/Authentication C, M Authentication details
Pull_ListPropTypes_RQ/Authentication/UserName String(50) M Username
Pull_ListPropTypes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListPropTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>d98099217d9041dcb98389dea617ac5b</ResponseID>
    <PropertyTypes>
        <PropertyType PropertyTypeID="1">Studio</PropertyType>
        <PropertyType PropertyTypeID="2">One Bedroom</PropertyType>
        <PropertyType PropertyTypeID="3">Two Bedroom</PropertyType>
        <PropertyType PropertyTypeID="4">Three Bedroom</PropertyType>
        <PropertyType PropertyTypeID="12">Four Bedroom</PropertyType>
        <PropertyType PropertyTypeID="11">Five Bedroom</PropertyType>
        <PropertyType PropertyTypeID="26">Six Bedroom</PropertyType>
        <PropertyType PropertyTypeID="27">Seven Bedroom</PropertyType>
        <PropertyType PropertyTypeID="28">Eight Bedroom</PropertyType>
        <PropertyType PropertyTypeID="29">Nine Bedroom</PropertyType>
        <PropertyType PropertyTypeID="30">Ten Bedroom</PropertyType>
        <PropertyType PropertyTypeID="34">Eleven Bedroom</PropertyType>
        <PropertyType PropertyTypeID="35">Twelve Bedroom</PropertyType>
        <PropertyType PropertyTypeID="36">Thirteen Bedroom</PropertyType>
        <PropertyType PropertyTypeID="37">Fourteen Bedroom</PropertyType>
        <PropertyType PropertyTypeID="38">Fifteen Bedroom</PropertyType>
        <PropertyType PropertyTypeID="39">Sixteen Bedroom</PropertyType>
        <PropertyType PropertyTypeID="40">Seventeen Bedroom</PropertyType>
        <PropertyType PropertyTypeID="41">Eighteen Bedroom</PropertyType>
        <PropertyType PropertyTypeID="42">Nineteen Bedroom</PropertyType>
        <PropertyType PropertyTypeID="43">Twenty Bedroom</PropertyType>
        <PropertyType PropertyTypeID="44">Twentyone Bedroom</PropertyType>
        <PropertyType PropertyTypeID="45">Twentytwo Bedroom</PropertyType>
        <PropertyType PropertyTypeID="46">Twentythree Bedroom</PropertyType>
        <PropertyType PropertyTypeID="47">Twentyfour Bedroom</PropertyType>
        <PropertyType PropertyTypeID="48">Twentyfive Bedroom</PropertyType>
        <PropertyType PropertyTypeID="49">Twentysix Bedroom</PropertyType>
        <PropertyType PropertyTypeID="50">Twentyseven Bedroom</PropertyType>
        <PropertyType PropertyTypeID="51">Twentyeight Bedroom</PropertyType>
        <PropertyType PropertyTypeID="52">Twentynine Bedroom</PropertyType>
        <PropertyType PropertyTypeID="53">Thirty Bedroom</PropertyType>
    </PropertyTypes>
</Pull_ListPropTypes_RS>
XML Path Data Type Type Description
Pull_ListPropTypes_RS C Root element
Pull_ListPropTypes_RS/Status String(100) M See ListStatuses
Pull_ListPropTypes_RS/Status@ID Integer M See ListStatuses
Pull_ListPropTypes_RS/ResponseID String(32) M Unique response ID
Pull_ListPropTypes_RS/PropertyTypes C, M A collection of property types
Pull_ListPropTypes_RS/PropertyTypes/PropertyType String(50) M Description of a property type
Pull_ListPropTypes_RS/PropertyTypes/PropertyTypes@PropertyTypeID Integer M Unique property type ID

List OTA property types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyType;

Pull_ListOTAPropTypes_RQ request = new Pull_ListOTAPropTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListOTAPropTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListOTAPropTypes_RS response = XmlTools.DeserializeObject<Pull_ListOTAPropTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns the list of available property types as classified by Open Travel Alliance Standard

Request

XML Request

<Pull_ListOTAPropTypes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListOTAPropTypes_RQ>
XML Path Data Type Type Description
Pull_ListOTAPropTypes_RQ C Root element
Pull_ListOTAPropTypes_RQ/Authentication C, M Authentication details
Pull_ListOTAPropTypes_RQ/Authentication/UserName String (50) M Username
Pull_ListOTAPropTypes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListOTAPropTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>5aa853ab207e4d829312046dc5d7dc66</ResponseID>
    <PropertyTypes>
        <PropertyType PropertyTypeID="1" OTACode="1">All suite</PropertyType>
        <PropertyType PropertyTypeID="2" OTACode="2">All-Inclusive resort</PropertyType>
        <PropertyType PropertyTypeID="3" OTACode="3">Apartment</PropertyType>
        <PropertyType PropertyTypeID="4" OTACode="4">Bed and breakfast</PropertyType>
        <PropertyType PropertyTypeID="7" OTACode="7">Chalet</PropertyType>
        <PropertyType PropertyTypeID="16" OTACode="16">Guest house</PropertyType>
        <PropertyType PropertyTypeID="20" OTACode="20">Hotel</PropertyType>
        <PropertyType PropertyTypeID="22" OTACode="22">Lodge</PropertyType>
        <PropertyType PropertyTypeID="30" OTACode="30">Resort</PropertyType>
        <PropertyType PropertyTypeID="35" OTACode="35">Villa</PropertyType>
        <PropertyType PropertyTypeID="37" OTACode="37">Castle</PropertyType>
        <PropertyType PropertyTypeID="63" OTACode="3">Aparthotel</PropertyType>
        <PropertyType PropertyTypeID="64" OTACode="31">Boat</PropertyType>
        <PropertyType PropertyTypeID="65" OTACode="5">Cottage</PropertyType>
        <PropertyType PropertyTypeID="66" OTACode="25">Camping</PropertyType>
        <PropertyType PropertyTypeID="67" OTACode="34">House</PropertyType>
    </PropertyTypes>
</Pull_ListOTAPropTypes_RS>
XML Path Data Type Type Description
Pull_ListOTAPropTypes_RS C Root element
Pull_ListOTAPropTypes_RS/Status String (100) M See ListStatuses
Pull_ListOTAPropTypes_RS/Status@ID Integer M See ListStatuses
Pull_ListOTAPropTypes_RS/ResponseID String(32) M Unique response ID
Pull_ListOTAPropTypes_RS/PropertyTypes C, M A collection of property types
Pull_ListOTAPropTypes_RS/PropertyTypes/PropertyTypes/PropertyType String (50) M Description of a property type
Pull_ListOTAPropTypes_RS/PropertyTypes/PropertyTypes@PropertyTypeID Integer M Unique OTA property type ID
Pull_ListOTAPropTypes_RS/PropertyTypes/PropertyTypes@OTACode Integer M Property Type Code according to Open Travel Alliance standard

List location types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.LocationType;

Pull_ListLocationTypes_RQ request = new Pull_ListLocationTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListLocationTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListLocationTypes_RS response = XmlTools.DeserializeObject<Pull_ListLocationTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns Rentals United location hierarchy.

Request

XML Request

<Pull_ListLocationTypes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListLocationTypes_RQ>
XML Path Data Type Type Description
Pull_ListLocationTypes_RQ C Root element
Pull_ListLocationTypes_RQ/Authentication C, M Authentication details
Pull_ListLocationTypes_RQ/Authentication/UserName String(50) M Username
Pull_ListLocationTypes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListLocationTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>07d879f033104283a0b018561d4b2867</ResponseID>
    <LocationTypes>
        <LocationType LocationTypeID="6">Worldwide</LocationType>
        <LocationType LocationTypeID="1">Continent</LocationType>
        <LocationType LocationTypeID="2">Country</LocationType>
        <LocationType LocationTypeID="3">Region</LocationType>
        <LocationType LocationTypeID="4">City</LocationType>
        <LocationType LocationTypeID="5">District</LocationType>
    </LocationTypes>
</Pull_ListLocationTypes_RS>
XML Path Data Type Type Description
Pull_ListLocationTypes_RS C Root element
Pull_ListLocationTypes_RS/Status String(100) M See ListStatuses
Pull_ListLocationTypes_RS/Status@ID Integer M See ListStatuses
Pull_ListLocationTypes_RS/ResponseID String(32) M Unique response ID
Pull_ListLocationTypes_RS/LocationTypes C, M A collection of all location types
Pull_ListLocationTypes_RS/LocationTypes/LocationType String(50) M A description of the location type
Pull_ListLocationTypes_RS/LocationTypes/LocationType@LocationTypeID Integer M Unique location type ID

List locations

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Location;

Pull_ListLocations_RQ request = new Pull_ListLocations_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListLocations_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListLocations_RS response = XmlTools.DeserializeObject<Pull_ListLocations_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns entire dictionary of locations supported by Rentals United.

If you are a property provider you may prefer we recommend to use Pull_GetLocationByCoordinates_RQ. If you don't retrieve location you expected then you should call Pull_GetLocationsListByName_RQ to choose appropriate location. We believe implementing these two methods will be handy and always up to date compared to mapping entire dictionary of locations.

If you are a Sales Channel or VR Service Provider pulling properties from Rentals United, you need to map the location to your system in order to retrieve properties by location.

Request

XML Request

<Pull_ListLocations_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListLocations_RQ>
XML Path Data Type Type Description
Pull_ListLocations_RQ C Root element
Pull_ListLocations_RQ/Authentication C Authentication details
Pull_ListLocations_RQ/Authentication/UserName String(50) M Username
Pull_ListLocations_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListLocations_RS>
    <Status ID="0">Success</Status>
    <ResponseID>5a4f24d5e1494918ba5056fafd88edfa</ResponseID>
    <Locations>
        <Location LocationID="1" LocationTypeID="6" ParentLocationID="0">Worldwide</Location>
        <Location LocationID="2" LocationTypeID="1" ParentLocationID="1">Europe</Location>
        <Location LocationID="3" LocationTypeID="1" ParentLocationID="1">North America</Location>
        <Location LocationID="4" LocationTypeID="1" ParentLocationID="1">South America</Location>
        <Location LocationID="5" LocationTypeID="1" ParentLocationID="1">Asia</Location>
        <Location LocationID="6" LocationTypeID="1" ParentLocationID="1">Australia</Location>
        <Location LocationID="7" LocationTypeID="1" ParentLocationID="1">Antarctica</Location>
        <Location LocationID="8" LocationTypeID="1" ParentLocationID="1">Africa</Location>
        <Location LocationID="55443" LocationTypeID="2" ParentLocationID="1">Isle of Man</Location>
        <Location LocationID="57296" LocationTypeID="2" ParentLocationID="1">Jersey</Location>
        <Location LocationID="58829" LocationTypeID="2" ParentLocationID="1">Bouvet Island</Location>
        <Location LocationID="58834" LocationTypeID="2" ParentLocationID="1">Comoros</Location>
        <Location LocationID="58835" LocationTypeID="2" ParentLocationID="1">Falkland Islands</Location>
        <Location LocationID="58836" LocationTypeID="2" ParentLocationID="1">French Southern Territories</Location>
        <Location LocationID="58837" LocationTypeID="2" ParentLocationID="1">Guernsey</Location>
        <Location LocationID="58838" LocationTypeID="2" ParentLocationID="1">Holy See</Location>
        <Location LocationID="58841" LocationTypeID="2" ParentLocationID="1">Mayotte</Location>
        <Location LocationID="58842" LocationTypeID="2" ParentLocationID="1">Nauru</Location>
        <Location LocationID="58843" LocationTypeID="2" ParentLocationID="1">Niue</Location>
        <Location LocationID="58844" LocationTypeID="2" ParentLocationID="1">Palau</Location>
        <Location LocationID="58847" LocationTypeID="2" ParentLocationID="1">Pitcairn</Location>
        <Location LocationID="58848" LocationTypeID="2" ParentLocationID="1">Saint Helena, Ascension and Tristan da Cunha</Location>
        <Location LocationID="58849" LocationTypeID="2" ParentLocationID="1">Saint Pierre and Miquelon</Location>
        ...
 </Locations>
</Pull_ListLocations_RS>
XML Path Data Type Type Description
Pull_ListLocations_RS C Root element
Pull_ListLocations_RS/Status String(100) M See ListStatuses
Pull_ListLocations_RS/Status@ID Integer M See ListStatuses
Pull_ListLocations_RS/ResponseID String(32) M Unique response ID
Pull_ListLocations_RS/Locations C, M A collection of locations
Pull_ListLocations_RS/Locations/Location String(50) M A description of a single location
Pull_ListLocations_RS/Locations/Location@LocationID Integer M Unique location ID
Pull_ListLocations_RS/Locations/Location@LocationTypeID Integer M Location type ID, see ListLocationTypes
Pull_ListLocations_RS/Locations/Location@ParentLocationID Integer M Parent location ID, see ListLocations
Pull_ListLocations_RS/Locations/Location@TimeZone String(50) O IANA timezone code of location

Get location details

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Location;

Pull_GetLocationDetails_RQ request = new Pull_GetLocationDetails_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_GetLocationDetails_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetLocationDetails_RS response = XmlTools.DeserializeObject<Pull_GetLocationDetails_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns the location details in a parent-child way. LocationID of any LocationTypeID can be requested.

If you are a Sales Channel or VR Service Provider pulling properties from Rentals United, you can use this method to pull a single location details in case of not recognized property location.

Request

XML Request

<Pull_GetLocationDetails_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <LocationID>500</LocationID>
</Pull_GetLocationDetails_RQ>
XML Path Data Type Type Description
Pull_GetLocationDetails_RQ C Root element
Pull_GetLocationDetails_RQ/Authentication C, M Authentication details
Pull_GetLocationDetails_RQ/Authentication/UserName String(50) M Username
Pull_GetLocationDetails_RQ/Authentication/Password String(50) M Password
Pull_GetLocationDetails_RQ/LocationID Integer M Location ID, see ListLocations

Response

XML Response

<Pull_GetLocationDetails_RS>
 <Status ID="0">Success</Status>
 <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
 <Locations>
   <Location LocationID="1" LocationTypeID="6" ParentLocationID="-1">Worldwide</Location>
   <Location LocationID="2" LocationTypeID="1" ParentLocationID="1">Europe</Location>
   <Location LocationID="10" LocationTypeID="2" ParentLocationID="2" >Belgium</Location>
   <Location LocationID="10054" LocationTypeID="3" ParentLocationID="10" >Wallonia</Location>
   <Location LocationID="500" LocationTypeID="4" ParentLocationID="10054" >Duffet</Location>
 </Locations>
</Pull_GetLocationDetails_RS>
XML Path Data Type Type Description
Pull_GetLocationDetails_RS C Root element
Pull_GetLocationDetails_RS/Status String(100) M See ListStatuses
Pull_GetLocationDetails_RS/Status@ID Integer M See ListStatuses
Pull_GetLocationDetails_RS/ResponseID String(32) M Unique response ID
Pull_GetLocationDetails_RS/Locations C A collection of locations
Pull_GetLocationDetails_RS/Locations/Location String(50) M A description of a location
Pull_GetLocationDetails_RS/Locations/Location@LocationID Integer M Location ID, see ListLocations
Pull_GetLocationDetails_RS/Locations/Location@LocationTypeID Integer M Location type ID, see ListLocationTypes
Pull_GetLocationDetails_RS/Locations/Location@ParentLocationID Integer M Parent location ID, see ListLocations
Pull_GetLocationDetails_RS/Locations/Location@TimeZone String(50) O IANA timezone code of location

Get location by name

This method is deprecated. See Pull_GetLocationsListByName_RQ

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Location;

Pull_GetLocationByName_RQ request = new Pull_GetLocationByName_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    LocationName = "Łomża"
};

string xmlBody = XmlTools.SerializeObject<Pull_GetLocationByName_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetLocationByName_RS response = XmlTools.DeserializeObject<Pull_GetLocationByName_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a Rentals United LocationID based on the location name.

If you are a property provider pushing properties to Rentals United, you can check a specific Rentals United LocationID based on a location name.

It may be easier for you to get the location name and Rentals United LocationID by geo-coordinates of a property. Please review Pull_GetLocationByCoordinates_RQ API method for details.

Request

XML Request

<Pull_GetLocationByName_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <LocationName>Warsaw</LocationName>
</Pull_GetLocationByName_RQ>
XML Path Data Type Type Description
Pull_GetLocationByName_RQ C Root element
Pull_GetLocationByName_RQ/Authentication C, M Authentication details
Pull_GetLocationByName_RQ/Authentication/UserName String(50) M Username
Pull_GetLocationByName_RQ/Authentication/Password String(50) M Password
Pull_GetLocationByName_RQ/LocationName String(50) M Location name

Response

XML Response

<Pull_GetLocatinByName_RS>
    <Status ID="0">Success</Status>
    <ResponseID>e483f7675d554aad9f5efeff35532ef4</ResponseID>
    <LocationID>5309</LocationID>
</Pull_GetLocatinByName_RS>
XML Path Data Type Type Description
Pull_GetLocationByName_RS C Root element
Pull_GetLocationByName_RS/Status String(100) M See ListStatuses
Pull_GetLocationByName_RS/Status@ID Integer M See ListStatuses
Pull_GetLocationByName_RS/LocationID Integer M A collection of locations
Pull_GetLocationDetails_RS/Locations/Location String(50) M Location ID, see ListLocations

Get locations list by name and country name

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Location;

Pull_GetLocationsListByName_RQ request = new Pull_GetLocationsListByName_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    LocationName = "Łomża"
};

string xmlBody = XmlTools.SerializeObject<Pull_GetLocationsListByName_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetLocationsListByName_RS response = XmlTools.DeserializeObject<Pull_GetLocationsListByName_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of Rentals United locations details, based on the location name and country name (optional). Returned locations data contains: Currency, LocationID, CountryLocationID and LocationName.

The Currency field in returned data will be filled only if the provided location name is either a city or a district of a city. Otherwise, the field will be left empty. An empty Currency field also means that in such location an apartment cannot be placed.

If you are a property provider pushing properties to Rentals United, you can check a specific Rentals United data set associated with a location, based on a location name and country name (optional).

It may be easier for you to get the location name and Rentals United LocationID by geo-coordinates of a property. Please review Pull_GetLocationByCoordinates_RQ API method for details.

Request

XML Request

<Pull_GetLocationsListByName_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <CountryName>United States</CountryName>
 <LocationName>Warsaw</LocationName>
</Pull_GetLocationsListByName_RQ>
XML Path Data Type Type Description
Pull_GetLocationsListByName_RQ C Root element
Pull_GetLocationsListByName_RQ/Authentication C, M Authentication details
Pull_GetLocationsListByName_RQ/Authentication/UserName String(50) M Username
Pull_GetLocationsListByName_RQ/Authentication/Password String(50) M Password
Pull_GetLocationsListByName_RQ/CountryName String(50) O Country name
Pull_GetLocationsListByName_RQ/LocationName String(50) M Location name

Response

XML Response

<Pull_GetLocationsListByName_RS>
    <Status ID="0">Success</Status>
    <ResponseID>22385f6d056c45d08d462599002c2219</ResponseID>
    <Locations>
        <LocationWithCurrency Currency="USD" LocationID="58334" CountryLocationID="330">Warsaw</LocationWithCurrency>
        <LocationWithCurrency Currency="USD" LocationID="58338" CountryLocationID="330">Warsaw</LocationWithCurrency>
    </Locations>
</Pull_GetLocationsListByName_RS>
XML Path Data Type Type Description
Pull_GetLocationsListByName_RS C Root element
Pull_GetLocationsListByName_RS/Status String(100) M See ListStatuses
Pull_GetLocationsListByName_RS/Status@ID Integer M See ListStatuses
Pull_GetLocationsListByName_RS/Locations C, M A collection of locations
Pull_GetLocationsListByName_RS/Locations/LocationWithCurrency String(50) M Location name, see ListLocations
Pull_GetLocationsListByName_RS/Locations/LocationWithCurrency@Currency String(3) M Currency, see ListCurrencies
Pull_GetLocationsListByName_RS/Locations/LocationWithCurrency@LocationID Integer M LocationID, see ListLocations
Pull_GetLocationsListByName_RS/Locations/LocationWithCurrency@CountryLocationID Integer M CountryLocationID, see ListLocations
Pull_GetLocationsListByName_RS/Locations/LocationWithCurrency@TimeZone String(50) O IANA timezone code of location

Get location by coordinates

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Location;

Pull_GetLocationByCoordinates_RQ request = new Pull_GetLocationByCoordinates_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Latitude = 10.12312,
    Longitude = 22.23123
};

string xmlBody = XmlTools.SerializeObject<Pull_GetLocationByCoordinates_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetLocationByCoordinates_RS response = XmlTools.DeserializeObject<Pull_GetLocationByCoordinates_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns Rentals United location details based on the geo-coordinates provided on the XML request.

Request

XML Request

<Pull_GetLocationByCoordinates_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <Latitude>52.14</Latitude>
 <Longitude>21.1</Longitude>
</Pull_GetLocationByCoordinates_RQ>
XML Path Data Type Type Description
Pull_GetLocationByCoordinates_RQ C Root element
Pull_GetLocationByCoordinates_RQ/Authentication C, M Authentication details
Pull_GetLocationByCoordinates_RQ/Authentication/UserName String(50) M Username
Pull_GetLocationByCoordinates_RQ/Authentication/Password String(50) M Password
Pull_GetLocationByCoordinates_RQ/Latitude Decimal M Latitude
Pull_GetLocationByCoordinates_RQ/Longitude Decimal M Longitude

Response

XML Response

<Pull_GetLocationByCoordinates_RS>
    <Status ID="0">Success</Status>
    <ResponseID>ffacd672ac424e128b58362d2e4e53c2</ResponseID>
    <Location LocationID="25591" Distance="11.6227131">Warszawa</Location>
</Pull_GetLocationByCoordinates_RS>
XML Path Data Type Type Description
Pull_GetLocationByCoordinates_RS C Root element
Pull_GetLocationByCoordinates_RS/Status String(100) M See ListStatuses
Pull_GetLocationByCoordinates_RS/Status@ID Integer M See ListStatuses
Pull_GetLocationByCoordinates_RS/Locations/Location M Collection of locations
Pull_GetLocationByCoordinates_RS/LocationID Integer M Location ID, see ListLocations
Pull_GetLocationByCoordinates_RS/Locations/Distance Decimal M Distance between the coordinates and that location center
Pull_GetLocationByCoordinates_RS/Locations/Location@TimeZone String(50) O IANA timezone code of location

Get cities and number of properties

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Location;

Pull_ListCitiesProps_RQ request = new Pull_ListCitiesProps_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListCitiesProps_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListCitiesProps_RS response = XmlTools.DeserializeObject<Pull_ListCitiesProps_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method has been designed for distribution partners (Sales Channels and VR Service Providers). It returns a breakdown of number of active properties per LocationID available for you to pull.

Request

XML Request

<Pull_ListCitiesProps_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListCitiesProps_RQ>
XML Path Data Type Type Description
Pull_ListCitiesProps_RQ C Root element
Pull_ListCitiesProps_RQ/Authentication C, M Authentication details
Pull_ListCitiesProps_RQ/Authentication/UserName String(50) M Username
Pull_ListCitiesProps_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListCitiesProps_RS>
    <Status ID="0">Success</Status>
    <ResponseID>268ee54444da4f1688a6a9b4004b188f</ResponseID>
    <CitiesProps>
        <CityProps LocationID="48">18</CityProps>
        <CityProps LocationID="49">3</CityProps>
        <CityProps LocationID="50">7</CityProps>
        <CityProps LocationID="51">1</CityProps>
        <CityProps LocationID="54">4</CityProps>
        <CityProps LocationID="55">1</CityProps>
        <CityProps LocationID="56">1</CityProps>
        <CityProps LocationID="58">3</CityProps>
        <CityProps LocationID="59">1</CityProps>
        <CityProps LocationID="60">11</CityProps>
    </CitiesProps>
</Pull_ListCitiesProps_RS>
XML Path Data Type Type Description
Pull_ListCitiesProps_RS C Root element
Pull_ListCitiesProps_RS/Status String(100) M See ListStatuses
Pull_ListCitiesProps_RS/Status@ID Integer M See ListStatuses
Pull_ListCitiesProps_RS/ResponseID String(32) M Unique response ID
Pull_ListCitiesProps_RS/CitiesProps C A collection of cities (locations with city location type)
Pull_ListCitiesProps_RS/CitiesProps/CityProps Integer M The number of active properties in the city
Pull_ListCitiesProps_RS/CitiesProps/CityProps@LocationID Integer M Location ID, see ListLocations

List cities and currencies

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Currency;

Pull_ListCurrenciesWithCities_RQ request = new Pull_ListCurrenciesWithCities_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListCurrenciesWithCities_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListCurrenciesWithCities_RS response = XmlTools.DeserializeObject<Pull_ListCurrenciesWithCities_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Currency displayed in Rentals United is based on the city the property is located in (LocationID of LocationTypeID = 4 is used)

Currency per property is currently not supported. All properties in a given city across the whole Rentals United client base work with the same currency e.g. all properties in London (UK) work with GBP.

Example: UK resident leaving in London manages a property in Spain. Given his clients are mostly UK based, his rates are in GBP. He works in GBP with Sales Channels already but wants to join Rentals United. Rentals United supports EUR for all cities in Spain. UK resident will convert GBP to EUR before pushing rates to Rentals United and configure Rentals United Sales Channel connection to GBP. Rentals United will perform currency conversion from EUR to GBP when sending rates to the Sales Channels.

Request

XML Request

<Pull_ListCurrenciesWithCities_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListCurrenciesWithCities_RQ>
XML Path Data Type Type Description
Pull_ListCurrenciesWithCities_RQ C Root element
Pull_ListCurrenciesWithCities_RQ/Authentication C, M Authentication details
Pull_ListCurrenciesWithCities_RQ/Authentication/UserName String(50) M Username
Pull_ListCurrenciesWithCities_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListCurrenciesWithCities_RS>
 <Status ID="0">Success</Status>
 <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
 <Currencies>
   <Currency CurrencyCode="AUD">
     <Locations>
       <LocationID>8694</LocationID>
       <LocationID>8718</LocationID>
     </Locations>
   </Currency>
   <Currency CurrencyCode="CAD">
     <Locations>
       <LocationID>5032</LocationID>
     </Locations>
   </Currency>
   <Currency CurrencyCode="CHF">
     <Locations>
       <LocationID>7222</LocationID>
     </Locations>
   </Currency>
   <Currency CurrencyCode="EUR">
     <Locations>
       <LocationID>7048</LocationID>
       <LocationID>3206</LocationID>
       <LocationID>4898</LocationID>
       <LocationID>5964</LocationID>
       <LocationID>3191</LocationID>
       <LocationID>8752</LocationID>
       <LocationID>2958</LocationID>
       <LocationID>3119</LocationID>
       <LocationID>2986</LocationID>
     </Locations>
   </Currency>
   <Currency CurrencyCode="GBP">
     <Locations>
       <LocationID>7752</LocationID>
     </Locations>
   </Currency>
   <Currency CurrencyCode="PLN">
     <Locations>
       <LocationID>5319</LocationID>
     </Locations>
   </Currency>
   <Currency CurrencyCode="USD">
     <Locations>
      <LocationID>5514</LocationID>
     </Locations>
   </Currency>
   <Currency CurrencyCode="ZAR">
     <Locations>
      <LocationID>6169</LocationID>
     </Locations>
   </Currency>
 </Currencies>
</Pull_ListCurrenciesWithCities_RS>
XML Path Data Type Type Description
Pull_ListCurrenciesWithCities_RS C Root element
Pull_ListCurrenciesWithCities_RS/Status String(100) M See ListStatuses
Pull_ListCurrenciesWithCities_RS/Status@ID Integer M See ListStatuses
Pull_ListCurrenciesWithCities_RS/ResponseID String(32) M Unique response ID
Pull_ListCurrenciesWithCities_RS/Currencies C, M A collection of currencies
Pull_ListCurrenciesWithCities_RS/Currencies/Currency M A single currency used in the locations
Pull_ListCurrenciesWithCities_RS/Currencies/Currency@CurrencyCode String(3) M Unique currency ISO 4217 code
Pull_ListCurrenciesWithCities_RS/Currencies/Currency/Locations C, M A collection of cities where the currency applies
Pull_ListCurrenciesWithCities_RS/Currencies/Currency/Locations/LocationID Integer M Location ID, see ListLocations, LocationTypeID = 4)

List destinations

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Destination;

Pull_ListDestinations_RQ request = new Pull_ListDestinations_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListDestinations_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListDestinations_RS response = XmlTools.DeserializeObject<Pull_ListDestinations_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Rentals United destinations are POIs to which you can define distances from the property.

Request

XML Request

<Pull_ListDestinations_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListDestinations_RQ>
XML Path Data Type Type Description
Pull_ListDestinations_RQ C Root element
Pull_ListDestinations_RQ/Authentication C, M Authentication details
Pull_ListDestinations_RQ/Authentication/UserName String(50) M Username
Pull_ListDestinations_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListDestinations_RS>
    <Status ID="0">Success</Status>
    <ResponseID>2d1eff43b6bc4647b1df7f0af73db5d1</ResponseID>
    <Destinations>
        <Destination DestinationID="2">Central Barcelona</Destination>
        <Destination DestinationID="3">La Sagrada Familia</Destination>
        <Destination DestinationID="4">Metro</Destination>
        <Destination DestinationID="5">Gothic Church of Sta. Maria del Mar</Destination>
        <Destination DestinationID="7">Boqueria Street</Destination>
        <Destination DestinationID="8">Sea</Destination>
        <Destination DestinationID="9">Tourist bus stops nearby</Destination>
        <Destination DestinationID="10">Bogatell beach</Destination>
        <Destination DestinationID="11">Ramblas</Destination>
        <Destination DestinationID="13">Paseo del Borne</Destination>
        <Destination DestinationID="14">Main Square</Destination>
        <Destination DestinationID="15">Hachesche Hofe</Destination>
        <Destination DestinationID="17">Pl. Catalunya</Destination>
        ...
 </Destinations>
</Pull_ListDestinations_RS>
XML Path Data Type Type Description
Pull_ListDestinations_RS C Root element
Pull_ListDestinations_RS/Status String(100) M See ListStatuses
Pull_ListDestinations_RS/Status@ID Integer M See ListStatuses
Pull_ListDestinations_RS/ResponseID String(32) M Unique response ID
Pull_ListDestinations_RS/Destinations C, M A collection of destinations
Pull_ListDestinations_RS/Destinations/Destination String(200) M Description of a destination
Pull_ListDestinations_RS/Destinations/Destination@DestinationID Integer M Unique destination ID

List distance units

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.DistanceUnit;

Pull_ListDistanceUnits_RQ request = new Pull_ListDistanceUnits_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListDistanceUnits_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListDistanceUnits_RS response = XmlTools.DeserializeObject<Pull_ListDistanceUnits_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns available distance unit types from property to a POI (minutes, km, etc.)

Request

XML Request

<Pull_ListDistanceUnits_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListDistanceUnits_RQ>
XML Path Data Type Type Description
Pull_ListDistanceUnits_RQ C Root element
Pull_ListDistanceUnits_RQ/Authentication C, M Authentication details
Pull_ListDistanceUnits_RQ/Authentication/UserName String(50) M Username
Pull_ListDistanceUnits_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListDistanceUnits_RS>
    <Status ID="0">Success</Status>
    <ResponseID>d6a3b5b657234cc59c44da6f72d057c0</ResponseID>
    <DistanceUnits>
        <DistanceUnit DistanceUnitID="1">meters</DistanceUnit>
        <DistanceUnit DistanceUnitID="2">minutes</DistanceUnit>
        <DistanceUnit DistanceUnitID="3">km</DistanceUnit>
        <DistanceUnit DistanceUnitID="6">minutes walk</DistanceUnit>
        <DistanceUnit DistanceUnitID="8">miles</DistanceUnit>
        <DistanceUnit DistanceUnitID="16">minutes by tube</DistanceUnit>
        <DistanceUnit DistanceUnitID="18">minutes by train</DistanceUnit>
        <DistanceUnit DistanceUnitID="19">minutes by bus</DistanceUnit>
        <DistanceUnit DistanceUnitID="20">On location</DistanceUnit>
        <DistanceUnit DistanceUnitID="21">minutes drive</DistanceUnit>
        <DistanceUnit DistanceUnitID="22">yards</DistanceUnit>
    </DistanceUnits>
</Pull_ListDistanceUnits_RS>
XML Path Data Type Type Description
Pull_ListDistanceUnits_RS C Root element
Pull_ListDistanceUnits_RS/Status String(100) M See ListStatuses
Pull_ListDistanceUnits_RS/Status@ID Integer M See ListStatuses
Pull_ListDistanceUnits_RS/ResponseID String(32) M Unique response ID
Pull_ListDistanceUnits_RS/DistanceUnits C A collection of distance units
Pull_ListDistanceUnits_RS/DistanceUnits/DistanceUnit String(50) M Description of a distance unit
Pull_ListDistanceUnits_RS/DistanceUnits/DistanceUnit@DistanceUnitID Integer M Unique distance unit ID

List composition rooms

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.CompositionRoom;

Pull_ListCompositionRooms_RQ request = new Pull_ListCompositionRooms_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListCompositionRooms_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListCompositionRooms_RS response = XmlTools.DeserializeObject<Pull_ListCompositionRooms_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of room types available for a property. .

Request

XML Request

<Pull_ListCompositionRooms_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListCompositionRooms_RQ>
XML Path Data Type Type Description
Pull_ListCompositionRooms_RQ C Root element
Pull_ListCompositionRooms_RQ/Authentication C, M Authentication details
Pull_ListCompositionRooms_RQ/Authentication/UserName String(50) M Username
Pull_ListCompositionRooms_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListCompositionRooms_RS>
    <Status ID="0">Success</Status>
    <ResponseID>4217f8c4615048488e029b931e13eca2</ResponseID>
    <CompositionRooms>
        <CompositionRoom CompositionRoomID="53">WC</CompositionRoom>
        <CompositionRoom CompositionRoomID="81">Bathroom</CompositionRoom>
        <CompositionRoom CompositionRoomID="94">Kitchen in the living / dining room</CompositionRoom>
        <CompositionRoom CompositionRoomID="101">Kitchen</CompositionRoom>
        <CompositionRoom CompositionRoomID="249">Living room</CompositionRoom>
        <CompositionRoom CompositionRoomID="257">Bedroom</CompositionRoom>
        <CompositionRoom CompositionRoomID="372">Livingroom / Bedroom</CompositionRoom>
        <CompositionRoom CompositionRoomID="517">Bedroom/Living room with kitchen corner</CompositionRoom>
    </CompositionRooms>
</Pull_ListCompositionRooms_RS>
XML Path Data Type Type Description
Pull_ListCompositionRooms_RS C Root element
Pull_ListCompositionRooms_RS/Status String(100) M See ListStatuses
Pull_ListCompositionRooms_RS/Status@ID Integer M See ListStatuses
Pull_ListCompositionRooms_RS/ResponseID String(32) M Unique response ID
Pull_ListCompositionRooms_RS/CompositionRooms C, M A collection of room types
Pull_ListCompositionRooms_RS/CompositionRooms/CompositionRoom String(100) M Description of a room type
Pull_ListCompositionRooms_RS/CompositionRooms/CompositionRoomID Integer Unique room type ID

List amenities

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Amenity;

Pull_ListAmenities_RQ request = new Pull_ListAmenities_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListAmenities_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListAmenities_RS response = XmlTools.DeserializeObject<Pull_ListAmenities_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of amenities available for a property.

Request

XML Request

<Pull_ListAmenities_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListAmenities_RQ>
XML Path Data Type Type Description
Pull_ListAmenities_RQ C Root element
Pull_ListAmenities_RQ/Authentication C, M Authentication details
Pull_ListAmenities_RQ/Authentication/UserName String(50) M Username
Pull_ListAmenities_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListAmenities_RS>
    <Status ID="0">Success</Status>
    <ResponseID>7cc63f8cc9f84693aa1a856767c4c85d</ResponseID>
    <Amenities>
        <Amenity AmenityID="2">Cookware &amp; Kitchen Utensils</Amenity>
        <Amenity AmenityID="3">Crockery &amp; Cutlery</Amenity>
        <Amenity AmenityID="4">Iron &amp; Ironing Board</Amenity>
        <Amenity AmenityID="5">Drying Rack</Amenity>
        <Amenity AmenityID="6">Hair Dryer</Amenity>
        <Amenity AmenityID="7">Bed Linen &amp; Towels</Amenity>
        <Amenity AmenityID="8">Toiletries</Amenity>
        ...
      </Amenities>
</Pull_ListAmenities_RS>
XML Path Data Type Type Description
Pull_ListAmenities_RS C Root element
Pull_ListAmenities_RS/Status String(100) M See ListStatuses
Pull_ListAmenities_RS/Status@ID Integer M See ListStatuses
Pull_ListAmenities_RS/ResponseID String(32) M Unique response ID
Pull_ListAmenities_RS/Amenities C A collection of amenities
Pull_ListAmenities_RS/Amenity String(200) M Description of an amenity
Pull_ListAmenities_RS/Amenity@AmenityID Integer Unique amenity ID

List amenities available for room

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.CompositionRoom;

Pull_ListAmenitiesAvailableForRooms_RQ request = new Pull_ListAmenitiesAvailableForRooms_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListAmenitiesAvailableForRooms_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListAmenitiesAvailableForRooms_RS response = XmlTools.DeserializeObject<Pull_ListAmenitiesAvailableForRooms_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of amenities available for a given room type

Request

XML Request

<Pull_ListAmenitiesAvailableForRooms_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListAmenitiesAvailableForRooms_RQ>
XML Path Data Type Type Description
Pull_ListAmenitiesAvailableForRooms_RQ C Root element
Pull_ListAmenitiesAvailableForRooms_RQ/Authentication C, M Authentication details
Pull_ListAmenitiesAvailableForRooms_RQ/Authentication/UserName String(50) M Username
Pull_ListAmenitiesAvailableForRooms_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListAmenitiesAvailableForRooms_RS>
    <Status ID="0">Success</Status>
    <ResponseID>b0cb6ee42e1e495cadacbbe40413081c</ResponseID>
    <AmenitiesAvailableForRooms>
        <AmenitiesAvailableForRoom CompositionRoom="WC" CompositionRoomID="53">
            <Amenity AmenityID="11">Washing Machine</Amenity>
            <Amenity AmenityID="29">bidet</Amenity>
            <Amenity AmenityID="37">toilet</Amenity>
            <Amenity AmenityID="78">chest of drawers</Amenity>
            <Amenity AmenityID="245">washbasin </Amenity>
            <Amenity AmenityID="447">Heated towel bar</Amenity>
            <Amenity AmenityID="503">mirror</Amenity>
        </AmenitiesAvailableForRoom>
        <AmenitiesAvailableForRoom CompositionRoom="Bathroom" CompositionRoomID="81">
            <Amenity AmenityID="4">Iron &amp; Ironing Board</Amenity>
            <Amenity AmenityID="5">Drying Rack</Amenity>
            <Amenity AmenityID="6">Hair Dryer</Amenity>
            <Amenity AmenityID="8">Toiletries</Amenity>
            <Amenity AmenityID="11">Washing Machine</Amenity>
            <Amenity AmenityID="29">bidet</Amenity>
            <Amenity AmenityID="32">cupboard</Amenity>
            <Amenity AmenityID="33">vanity cupboard</Amenity>
            <Amenity AmenityID="37">toilet</Amenity>
            <Amenity AmenityID="52">bath with shower</Amenity>
            <Amenity AmenityID="78">chest of drawers</Amenity>
            ...
        </AmenitiesAvailableForRoom>
        ...
 </AmenitiesAvailableForRooms>
</Pull_ListAmenitiesAvailableForRooms_RS>
XML Path Data Type Type Description
Pull_ListAmenitiesAvailableForRooms_RS C Root element
Pull_ListAmenitiesAvailableForRooms_RS/Status String(100) M See ListStatuses
Pull_ListAmenitiesAvailableForRooms_RS/Status@ID Integer M See ListStatuses
Pull_ListAmenitiesAvailableForRooms_RS/ResponseID String(32) M Unique response ID
Pull_ListAmenitiesAvailableForRooms_RS/AmenitiesAvailableForRooms C A collection of amenities available for rooms
Pull_ListAmenitiesAvailableForRooms_RS/AmenitiesAvailableForRooms/AmenitiesAvailableForRoom C A collection of amenities available for a given room type
Pull_ListAmenitiesAvailableForRooms_RS/AmenitiesAvailableForRooms/AmenitiesAvailableForRoom@CompositionRoom String(100) M Description of a composition room, see ListCompositionRooms
Pull_ListAmenitiesAvailableForRooms_RS/AmenitiesAvailableForRooms/AmenitiesAvailableForRoom@CompositionRoom M Composition room ID, see ListCompositionRooms
Pull_ListAmenitiesAvailableForRooms_RS/AmenitiesAvailableForRooms/AmenitiesAvailableForRoom/Amenity String(200) M Amenity description, see ListAmenities
Pull_ListAmenitiesAvailableForRooms_RS/AmenitiesAvailableForRooms/AmenitiesAvailableForRoom/Amenity@AmenityID Integer Unique amenity ID, see ListAmenities

List image types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ImageType;

Pull_ListImageTypes_RQ request = new Pull_ListImageTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListImageTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListImageTypes_RS response = XmlTools.DeserializeObject<Pull_ListImageTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of image types available for a property

Request

XML Request

<Pull_ListImageTypes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListImageTypes_RQ>
XML Path Data Type Type Description
Pull_ListImageTypes_RQ C Root element
Pull_ListImageTypes_RQ/Authentication C, M Authentication details
Pull_ListImageTypes_RQ/Authentication/UserName String(50) M Username
Pull_ListImageTypes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListImageTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>c9b3c6ba5c4e4a18bfc825ba18688426</ResponseID>
    <ImageTypes>
        <ImageType ImageTypeID="1">MainImage</ImageType>
        <ImageType ImageTypeID="2">PropertyPlan</ImageType>
        <ImageType ImageTypeID="3">Interior</ImageType>
        <ImageType ImageTypeID="4">Exterior</ImageType>
        <ImageType ImageTypeID="5">Activities: Aerobics</ImageType>
        <ImageType ImageTypeID="6">Activities: Arcade</ImageType>
        <ImageType ImageTypeID="7">Activities: Archery</ImageType>
        <ImageType ImageTypeID="8">Activities: Basketball court</ImageType>
        <ImageType ImageTypeID="9">Activities: BBQ</ImageType>
        <ImageType ImageTypeID="10">Activities: Billiard</ImageType>
        <ImageType ImageTypeID="11">Activities: Boating</ImageType>
        <ImageType ImageTypeID="12">Activities: Bowling</ImageType>
        <ImageType ImageTypeID="13">Activities: Canoeing</ImageType>
        <ImageType ImageTypeID="14">Activities: Casino</ImageType>
        <ImageType ImageTypeID="15">Activities: Children activities</ImageType>
        <ImageType ImageTypeID="16">Activities: Cycling</ImageType>
        <ImageType ImageTypeID="17">Activities: Darts</ImageType>
        <ImageType ImageTypeID="18">Activities: Diving</ImageType>
        <ImageType ImageTypeID="19">Activities: Entertainment</ImageType>
        <ImageType ImageTypeID="20">Activities: Equipment storage</ImageType>
        <ImageType ImageTypeID="21">Activities: fishing</ImageType>
        <ImageType ImageTypeID="22">Activities: Fitness centre facilities</ImageType>
        <ImageType ImageTypeID="23">Activities: Fitness studio</ImageType>
        <ImageType ImageTypeID="24">Activities: Game room</ImageType>
        <ImageType ImageTypeID="25">Activities: Golf</ImageType>
        <ImageType ImageTypeID="26">Activities: Golf cart</ImageType>
        <ImageType ImageTypeID="27">Activities: Gym</ImageType>
        <ImageType ImageTypeID="28">Activities: Hiking</ImageType>
        <ImageType ImageTypeID="29">Activities: Horse riding</ImageType>
        <ImageType ImageTypeID="30">Activities: Hot spring bath</ImageType>
        <ImageType ImageTypeID="31">Activities: Hunting</ImageType>
        <ImageType ImageTypeID="32">Activities: Indoor golf driving range</ImageType>
        <ImageType ImageTypeID="33">Activities: Karaoke</ImageType>
        <ImageType ImageTypeID="34">Activities: Massage</ImageType>
        <ImageType ImageTypeID="35">Activities: Minigolf</ImageType>
        <ImageType ImageTypeID="36">Activities: Nightclub</ImageType>
        <ImageType ImageTypeID="37">Activities: Outdoor rock climbing</ImageType>
        <ImageType ImageTypeID="38">Activities: Pilates</ImageType>
        <ImageType ImageTypeID="39">Activities: Pro shop</ImageType>
        <ImageType ImageTypeID="40">Activities: Rock climbing wall indoor</ImageType>
        <ImageType ImageTypeID="41">Activities: Ropes course team building</ImageType>
        <ImageType ImageTypeID="42">Activities: Ski hill</ImageType>
        <ImageType ImageTypeID="43">Activities: Ski school</ImageType>
        <ImageType ImageTypeID="44">Activities: Ski sports</ImageType>
        <ImageType ImageTypeID="45">Activities: Skiing</ImageType>
        <ImageType ImageTypeID="46">Activities: Snorkeling</ImageType>
        <ImageType ImageTypeID="47">Activities: Snowboarding</ImageType>
        <ImageType ImageTypeID="48">Activities: Sports</ImageType>
        <ImageType ImageTypeID="49">Activities: Squash</ImageType>
        <ImageType ImageTypeID="50">Activities: Table tennis</ImageType>
        <ImageType ImageTypeID="51">Activities: Tennis court</ImageType>
        <ImageType ImageTypeID="52">Activities: Windsurfing</ImageType>
        <ImageType ImageTypeID="53">Activities: Yoga</ImageType>
        <ImageType ImageTypeID="54">Dining: Alcoholic drinks</ImageType>
        <ImageType ImageTypeID="55">Dining: American breakfast</ImageType>
        <ImageType ImageTypeID="56">Dining: Asian breakfast</ImageType>
        <ImageType ImageTypeID="57">Dining: Breakfast</ImageType>
        <ImageType ImageTypeID="58">Dining: Buffet breakfast</ImageType>
        <ImageType ImageTypeID="59">Dining: Coffee service</ImageType>
        <ImageType ImageTypeID="60">Dining: Continental breakfast</ImageType>
        <ImageType ImageTypeID="61">Dining: Couples dining</ImageType>
        <ImageType ImageTypeID="62">Dining: Delicatessen</ImageType>
        <ImageType ImageTypeID="63">Dining: Dining</ImageType>
        <ImageType ImageTypeID="64">Dining: Dinner</ImageType>
        <ImageType ImageTypeID="65">Dining: Drinks</ImageType>
        <ImageType ImageTypeID="66">Dining: English/Irish breakfast</ImageType>
        <ImageType ImageTypeID="67">Dining: Family dining</ImageType>
        <ImageType ImageTypeID="68">Dining: Food</ImageType>
        <ImageType ImageTypeID="69">Dining: Food and drinks</ImageType>
        <ImageType ImageTypeID="70">Dining: Food close up</ImageType>
        <ImageType ImageTypeID="71">Dining: Food court</ImageType>
        <ImageType ImageTypeID="72">Dining: Italian breakfast</ImageType>
        <ImageType ImageTypeID="73">Dining: Lunch</ImageType>
        <ImageType ImageTypeID="74">Dining: Meals</ImageType>
        <ImageType ImageTypeID="75">Dining: Non alcoholic drinks</ImageType>
        <ImageType ImageTypeID="76">Dining: Outdoor dining</ImageType>
        <ImageType ImageTypeID="77">Dining: Restaurant</ImageType>
        <ImageType ImageTypeID="78">Dining: Room service dining</ImageType>
        <ImageType ImageTypeID="79">Dining: Snack bar</ImageType>
        <ImageType ImageTypeID="80">Exterior: Airport shuttle</ImageType>
        <ImageType ImageTypeID="81">Exterior: Area and facilities</ImageType>
        <ImageType ImageTypeID="82">Exterior: Beach</ImageType>
        <ImageType ImageTypeID="83">Exterior: Beach ocean sea view</ImageType>
        <ImageType ImageTypeID="84">Exterior: Birds eye</ImageType>
        <ImageType ImageTypeID="85">Exterior: Children playground</ImageType>
        <ImageType ImageTypeID="86">Exterior: City shuttle</ImageType>
        <ImageType ImageTypeID="87">Exterior: City view</ImageType>
        <ImageType ImageTypeID="88">Exterior: Courtyard</ImageType>
        <ImageType ImageTypeID="89">Exterior: Detail</ImageType>
        <ImageType ImageTypeID="90">Exterior: Dock</ImageType>
        <ImageType ImageTypeID="91">Exterior: Entrance</ImageType>
        <ImageType ImageTypeID="92">Exterior: Fountain</ImageType>
        <ImageType ImageTypeID="93">Exterior: Garden</ImageType>
        <ImageType ImageTypeID="94">Exterior: Gated community</ImageType>
        <ImageType ImageTypeID="95">Exterior: Gazebo</ImageType>
        <ImageType ImageTypeID="96">Exterior: Lake</ImageType>
        <ImageType ImageTypeID="97">Exterior: Lake view</ImageType>
        <ImageType ImageTypeID="98">Exterior: Landmark</ImageType>
        <ImageType ImageTypeID="99">Exterior: Marina</ImageType>
        <ImageType ImageTypeID="100">Exterior: Mountain view</ImageType>
        <ImageType ImageTypeID="101">Exterior: On site shops</ImageType>
        <ImageType ImageTypeID="102">Exterior: Outdoor banquet area</ImageType>
        <ImageType ImageTypeID="103">Exterior: Outdoor wedding area</ImageType>
        <ImageType ImageTypeID="104">Exterior: Parking</ImageType>
        <ImageType ImageTypeID="105">Exterior: Patio</ImageType>
        <ImageType ImageTypeID="106">Exterior: Porch</ImageType>
        <ImageType ImageTypeID="107">Exterior: Property</ImageType>
        <ImageType ImageTypeID="108">Exterior: Property grounds</ImageType>
        <ImageType ImageTypeID="109">Exterior: River view</ImageType>
        <ImageType ImageTypeID="110">Exterior: Shopping area</ImageType>
        <ImageType ImageTypeID="111">Exterior: Street view</ImageType>
        <ImageType ImageTypeID="112">Exterior: Sundeck</ImageType>
        <ImageType ImageTypeID="113">Exterior: Supermarket grocery shop</ImageType>
        <ImageType ImageTypeID="114">Exterior: View from property</ImageType>
        <ImageType ImageTypeID="115">Exterior: View from room</ImageType>
        <ImageType ImageTypeID="116">Interior: ATM/Banking on site</ImageType>
        <ImageType ImageTypeID="117">Interior: Ballroom</ImageType>
        <ImageType ImageTypeID="118">Interior: Bar</ImageType>
        <ImageType ImageTypeID="119">Interior: Birthday party area</ImageType>
        <ImageType ImageTypeID="120">Interior: Business facilities</ImageType>
        <ImageType ImageTypeID="121">Interior: Cafe</ImageType>
        <ImageType ImageTypeID="122">Interior: Chapel</ImageType>
        <ImageType ImageTypeID="123">Interior: Check-in/out kiosk</ImageType>
        <ImageType ImageTypeID="124">Interior: Children playground</ImageType>
        <ImageType ImageTypeID="125">Interior: Childrens area</ImageType>
        <ImageType ImageTypeID="126">Interior: Concierge desk</ImageType>
        <ImageType ImageTypeID="127">Interior: Day care</ImageType>
        <ImageType ImageTypeID="128">Interior: Detail</ImageType>
        <ImageType ImageTypeID="129">Interior: Entrance</ImageType>
        <ImageType ImageTypeID="130">Interior: Fireplace</ImageType>
        <ImageType ImageTypeID="131">Interior: Gift shop</ImageType>
        <ImageType ImageTypeID="132">Interior: Hallway</ImageType>
        <ImageType ImageTypeID="133">Interior: Indoor wedding</ImageType>
        <ImageType ImageTypeID="134">Interior: Laundry room</ImageType>
        <ImageType ImageTypeID="135">Interior: Library</ImageType>
        <ImageType ImageTypeID="136">Interior: Lobby</ImageType>
        <ImageType ImageTypeID="137">Interior: Lobby/Sitting area</ImageType>
        <ImageType ImageTypeID="138">Interior: Lounge</ImageType>
        <ImageType ImageTypeID="139">Interior: Meeting/Conference room</ImageType>
        <ImageType ImageTypeID="140">Interior: Patio</ImageType>
        <ImageType ImageTypeID="141">Interior: Property amenity</ImageType>
        <ImageType ImageTypeID="142">Interior: Reception</ImageType>
        <ImageType ImageTypeID="143">Interior: Reception hall</ImageType>
        <ImageType ImageTypeID="144">Interior: RV or truck parking</ImageType>
        <ImageType ImageTypeID="145">Interior: Sports bar</ImageType>
        <ImageType ImageTypeID="146">Interior: Staircase</ImageType>
        <ImageType ImageTypeID="147">Other: Animals</ImageType>
        <ImageType ImageTypeID="148">Other: Certificate award</ImageType>
        <ImageType ImageTypeID="149">Other: Location map</ImageType>
        <ImageType ImageTypeID="150">Other: Logo sign</ImageType>
        <ImageType ImageTypeID="151">Other: Other</ImageType>
        <ImageType ImageTypeID="152">Other: Pets</ImageType>
        <ImageType ImageTypeID="153">Pool: Aqua park</ImageType>
        <ImageType ImageTypeID="154">Pool: Childrens pool</ImageType>
        <ImageType ImageTypeID="155">Pool: Indoor pool</ImageType>
        <ImageType ImageTypeID="156">Pool: Indoor/Outdoor pool</ImageType>
        <ImageType ImageTypeID="157">Pool: Infinity pool</ImageType>
        <ImageType ImageTypeID="158">Pool: Lap pool</ImageType>
        <ImageType ImageTypeID="159">Pool: Natural pool</ImageType>
        <ImageType ImageTypeID="160">Pool: Outdoor pool</ImageType>
        <ImageType ImageTypeID="161">Pool: Pool view</ImageType>
        <ImageType ImageTypeID="162">Pool: Pool waterfall</ImageType>
        <ImageType ImageTypeID="163">Pool: Poolside bar</ImageType>
        <ImageType ImageTypeID="164">Pool: Rooftop pool</ImageType>
        <ImageType ImageTypeID="165">Pool: Swimming pool</ImageType>
        <ImageType ImageTypeID="166">Pool: Water park</ImageType>
        <ImageType ImageTypeID="167">Pool: Waterslide</ImageType>
        <ImageType ImageTypeID="168">Rooms: Balcony/Terrace</ImageType>
        <ImageType ImageTypeID="169">Rooms: Bathroom</ImageType>
        <ImageType ImageTypeID="170">Rooms: Bathroom amenities</ImageType>
        <ImageType ImageTypeID="171">Rooms: Bed</ImageType>
        <ImageType ImageTypeID="172">Rooms: Bedroom</ImageType>
        <ImageType ImageTypeID="173">Rooms: Bunk bed</ImageType>
        <ImageType ImageTypeID="174">Rooms: Business facilities</ImageType>
        <ImageType ImageTypeID="175">Rooms: Coffee/Tea facilities</ImageType>
        <ImageType ImageTypeID="176">Rooms: Communal kitchen</ImageType>
        <ImageType ImageTypeID="177">Rooms: Cot</ImageType>
        <ImageType ImageTypeID="178">Rooms: Deep soaking bathtub</ImageType>
        <ImageType ImageTypeID="179">Rooms: Dining area</ImageType>
        <ImageType ImageTypeID="180">Rooms: Hot tub</ImageType>
        <ImageType ImageTypeID="181">Rooms: Jetted tub</ImageType>
        <ImageType ImageTypeID="182">Rooms: Kitchen</ImageType>
        <ImageType ImageTypeID="183">Rooms: Kitchenette</ImageType>
        <ImageType ImageTypeID="184">Rooms: Living area</ImageType>
        <ImageType ImageTypeID="185">Rooms: Living room</ImageType>
        <ImageType ImageTypeID="186">Rooms: Microwave</ImageType>
        <ImageType ImageTypeID="187">Rooms: Minibar</ImageType>
        <ImageType ImageTypeID="188">Rooms: Mosquito nets</ImageType>
        <ImageType ImageTypeID="189">Rooms: Refrigerator</ImageType>
        <ImageType ImageTypeID="190">Rooms: Room</ImageType>
        <ImageType ImageTypeID="191">Rooms: Room changing table</ImageType>
        <ImageType ImageTypeID="192">Rooms: Safe</ImageType>
        <ImageType ImageTypeID="193">Rooms: Shower</ImageType>
        <ImageType ImageTypeID="194">Rooms: Sink</ImageType>
        <ImageType ImageTypeID="195">Rooms: Toilet</ImageType>
        <ImageType ImageTypeID="196">Rooms: TV and multimedia</ImageType>
        <ImageType ImageTypeID="197">Spa: Facial</ImageType>
        <ImageType ImageTypeID="198">Spa: Hair salon</ImageType>
        <ImageType ImageTypeID="199">Spa: Indoor spa tub</ImageType>
        <ImageType ImageTypeID="200">Spa: Nail salon</ImageType>
        <ImageType ImageTypeID="201">Spa: Outdoor spa tub</ImageType>
        <ImageType ImageTypeID="202">Spa: Reception</ImageType>
        <ImageType ImageTypeID="203">Spa: Sauna</ImageType>
        <ImageType ImageTypeID="204">Spa: Solarium</ImageType>
        <ImageType ImageTypeID="205">Spa: Spa treatment</ImageType>
        <ImageType ImageTypeID="206">Spa: Spa tub</ImageType>
        <ImageType ImageTypeID="207">Spa: Steam room</ImageType>
        <ImageType ImageTypeID="208">Spa: Treatment room</ImageType>
        <ImageType ImageTypeID="209">Spa: Turkish bath</ImageType>
        <ImageType ImageTypeID="210">Spa: Vichy shower</ImageType>
    </ImageTypes>
</Pull_ListImageTypes_RS>
XML Path Data Type Type Description
Pull_ListImageTypes_RS C Root element
Pull_ListImageTypes_RS/Status String(100) M See ListStatuses
Pull_ListImageTypes_RS/Status@ID Integer M See ListStatuses
Pull_ListImageTypes_RS/ResponseID String(32) M Unique response ID
Pull_ListImageTypes_RS/ImageTypes C, M A collection of image types
Pull_ListImageTypes_RS/ImageTypes/ImageType String(50) M Description of an image type
Pull_ListImageTypes_RS/ImageTypes/ImageType@ImageTypeID Integer M Unique image type ID

List payment methods

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PaymentMethod;

Pull_ListPaymentMethods_RQ request = new Pull_ListPaymentMethods_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPaymentMethods_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPaymentMethods_RS response = XmlTools.DeserializeObject<Pull_ListPaymentMethods_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of payment methods available for a property.

Request

XML Request

<Pull_ListPaymentMethods_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListPaymentMethods_RQ>
XML Path Data Type Type Description
Pull_ListPaymentMethods_RQ C Root element
Pull_ListPaymentMethods_RQ/Authentication C, M Authentication details
Pull_ListPaymentMethods_RQ/Authentication/UserName String(50) M Username
Pull_ListPaymentMethods_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListPaymentMethods_RS>
    <Status ID="0">Success</Status>
    <ResponseID>faa0a17760cf40a6a393acbccb4473de</ResponseID>
    <PaymentMethods>
        <PaymentMethod PaymentMethodID="1">Cash</PaymentMethod>
        <PaymentMethod PaymentMethodID="2">Bank transfer</PaymentMethod>
        <PaymentMethod PaymentMethodID="3">Credit card</PaymentMethod>
        <PaymentMethod PaymentMethodID="4">PayPal</PaymentMethod>
        <PaymentMethod PaymentMethodID="5">Other method</PaymentMethod>
    </PaymentMethods>
</Pull_ListPaymentMethods_RS>
XML Path Data Type Type Description
Pull_ListPaymentMethods_RS C Root element
Pull_ListPaymentMethods_RS/Status String(100) M See ListStatuses
Pull_ListPaymentMethods_RS/Status@ID Integer M See ListStatuses
Pull_ListPaymentMethods_RS/ResponseID String(32) M Unique response ID
Pull_ListPaymentMethods_RS/PaymentMethods C, M A collection of payment methods
Pull_ListPaymentMethods_RS/PaymentMethods/PaymentMethod String(100) M Description of a payment method
Pull_ListPaymentMethods_RS/PaymentMethods/PaymentMethod@PaymentMethodID Integer M Unique payment method ID

List reservation statuses

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_ListReservationStatuses_RQ request = new Pull_ListReservationStatuses_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListReservationStatuses_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListReservationStatuses_RS response = XmlTools.DeserializeObject<Pull_ListReservationStatuses_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of reservation statuses available in Rentals United.

Some of the reservation statuses block, some of them do not block a property availability.

Request

XML Request

<Pull_ListReservationStatuses_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListReservationStatuses_RQ>
XML Path Data Type Type Description
Pull_ListReservationStatuses_RQ C Root element
Pull_ListReservationStatuses_RQ/Authentication C, M Authentication details
Pull_ListReservationStatuses_RQ/Authentication/UserName String(50) M Username
Pull_ListReservationStatuses_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListReservationStatuses_RS>
    <Status ID="0">Success</Status>
    <ResponseID>c3cc93f191ee498993f0ec9dcaf89e55</ResponseID>
    <ReservationStatuses>
        <ReservationStatus ReservationStatusID="1">Confirmed</ReservationStatus>
        <ReservationStatus ReservationStatusID="2">Canceled</ReservationStatus>
        <ReservationStatus ReservationStatusID="3">Modified</ReservationStatus>
        <ReservationStatus ReservationStatusID="4">Request</ReservationStatus>
        <ReservationStatus ReservationStatusID="5">Lead</ReservationStatus>
        <ReservationStatus ReservationStatusID="6">Approved</ReservationStatus>
        <ReservationStatus ReservationStatusID="7">Rejected</ReservationStatus>
        <ReservationStatus ReservationStatusID="8">Expired</ReservationStatus>
    </ReservationStatuses>
</Pull_ListReservationStatuses_RS>
XML Path Data Type Type Description
Pull_ListReservationStatuses_RS C Root element
Pull_ListReservationStatuses_RS/Status String(100) M See ListStatuses
Pull_ListReservationStatuses_RS/Status@ID Integer M See ListStatuses
Pull_ListReservationStatuses_RS/ResponseID String(32) M Unique response ID
Pull_ListReservationStatuses_RS/ReservationStatuses C, M A collection of reservation statuses
Pull_ListReservationStatuses_RS/ReservationStatuses/ReservationStatus String(100) M Description of a reservation status
Pull_ListReservationStatuses_RS/ReservationStatuses/ReservationStatus@ReservationStatusID Integer M Unique reservation status ID

List deposit types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.DepositType;

Pull_ListDepositTypes_RQ request = new Pull_ListDepositTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListDepositTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListDepositTypes_RS response = XmlTools.DeserializeObject<Pull_ListDepositTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of deposit discriminator types. These types are used when specifying:

Request

XML Request

<Pull_ListDepositTypes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListDepositTypes_RQ>
XML Path Data Type Type Description
Pull_ListDepositTypes_RQ C Root element
Pull_ListDepositTypes_RQ/Authentication C, M Authentication details
Pull_ListDepositTypes_RQ/Authentication/UserName String(50) M Username
Pull_ListDepositTypes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListDepositTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>4802b449d5014917a67dfd20dc5b7ac0</ResponseID>
    <DepositTypes>
        <DepositType DepositTypeID="1">No deposit</DepositType>
        <DepositType DepositTypeID="2">Percentage of total price (without cleaning)</DepositType>
        <DepositType DepositTypeID="3">Percentage of total price</DepositType>
        <DepositType DepositTypeID="4">Fixed amount per day</DepositType>
        <DepositType DepositTypeID="5">Flat amount per stay</DepositType>
    </DepositTypes>
</Pull_ListDepositTypes_RS>
XML Path Data Type Type Description
Pull_ListDepositTypes_RS C Root element
Pull_ListDepositTypes_RS/Status String(100) M See ListStatuses
Pull_ListDepositTypes_RS/Status@ID Integer M See ListStatuses
Pull_ListDepositTypes_RS/ResponseID String(32) M Unique response ID
Pull_ListDepositTypes_RS/DepositTypes C, M A collection of deposit types
Pull_ListDepositTypes_RS/DepositTypes/DepositType String(50) M Description of a deposit type
Pull_ListDepositTypes_RS/DepositTypes/DepositType@DepositTypeID Integer M Unique deposit type ID

List languages

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Language;

Pull_ListLanguages_RQ request = new Pull_ListLanguages_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListLanguages_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListLanguages_RS response = XmlTools.DeserializeObject<Pull_ListLanguages_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of languages supported by Rentals United.

Request

XML Request

<Pull_ListLanguages_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListLanguages_RQ>
XML Path Data Type Type Description
Pull_ListLanguages_RQ C Root element
Pull_ListLanguages_RQ/Authentication C, M Authentication details
Pull_ListLanguages_RQ/Authentication/UserName String(50) M Username
Pull_ListLanguages_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListLanguages_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0f2ee36c70134f36bb9cf5e48c097256</ResponseID>
    <Languages>
        <Language LanguageID="1" LanguageCode="en">English</Language>
        <Language LanguageID="2" LanguageCode="de">German</Language>
        <Language LanguageID="3" LanguageCode="pl">Polish</Language>
        <Language LanguageID="4" LanguageCode="fr">French</Language>
        <Language LanguageID="5" LanguageCode="es">Spanish</Language>
        <Language LanguageID="6" LanguageCode="it">Italian</Language>
        <Language LanguageID="7" LanguageCode="sv">Swedish</Language>
        <Language LanguageID="8" LanguageCode="da">Danish</Language>
        <Language LanguageID="9" LanguageCode="pt">Portuguese</Language>
        <Language LanguageID="10" LanguageCode="cs">Czech</Language>
        <Language LanguageID="11" LanguageCode="nl">Dutch</Language>
        <Language LanguageID="12" LanguageCode="fi">Finnish</Language>
        <Language LanguageID="13" LanguageCode="ru">Russian</Language>
        <Language LanguageID="14" LanguageCode="lv">Latvian</Language>
        <Language LanguageID="15" LanguageCode="lt">Lithuanian</Language>
        <Language LanguageID="16" LanguageCode="ee">Estonian</Language>
        <Language LanguageID="17" LanguageCode="sk">Slovak</Language>
        <Language LanguageID="18" LanguageCode="hu">Hungarian</Language>
        <Language LanguageID="19" LanguageCode="jp">Japanese</Language>
        <Language LanguageID="22" LanguageCode="bg">Bulgarian</Language>
        <Language LanguageID="23" LanguageCode="tk">Turkish</Language>
        <Language LanguageID="24" LanguageCode="gr">Greek</Language>
        <Language LanguageID="25" LanguageCode="ro">Romanian</Language>
        <Language LanguageID="26" LanguageCode="zh">Chinese</Language>
        <Language LanguageID="27" LanguageCode="ca">Catalan</Language>
    </Languages>
</Pull_ListLanguages_RS>
XML Path Data Type Type Description
Pull_ListLanguages_RS C Root element
Pull_ListLanguages_RS/Status String(100) M See ListStatuses
Pull_ListLanguages_RS/Status@ID Integer M See ListStatuses
Pull_ListLanguages_RS/ResponseID String(32) M Unique response ID
Pull_ListLanguages_RS/Languages C, M A collection of languages
Pull_ListLanguages_RS/Languages/Language String(50) M Description of a language
Pull_ListLanguages_RS/Languages/Language@LanguageID Integer M Unique language ID
Pull_ListLanguages_RS/Languages/Language@LanguageCode String(2) M ISO 639-1 code that uniquely identifies a single language

List property external statuses

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyExternalStatus;

Pull_ListPropExtStatuses_RQ request = new Pull_ListPropExtStatuses_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropExtStatuses_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropExtStatuses_RS response = XmlTools.DeserializeObject<Pull_ListPropExtStatuses_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of property status on the Sales Channels.

If you are a PMS, you can pull a property status on connected Sales Channels and display it in your software to a client.

If you are a Sales Channel, you can push a property status to inform a property provider of a current property status on the Sales Channel.

Status description:

Request

XML Request

<Pull_ListPropExtStatuses_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListPropExtStatuses_RQ>
XML Path Data Type Type Description
Pull_ListPropExtStatuses_RQ C Root element
Pull_ListPropExtStatuses_RQ/Authentication C, M Authentication details
Pull_ListPropExtStatuses_RQ/Authentication/UserName String(50) M Username
Pull_ListPropExtStatuses_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListPropExtStatuses_RS>
    <Status ID="0">Success</Status>
    <ResponseID>7530c57d477943889d8d659b99a13223</ResponseID>
    <PropertyExternalStatuses>
        <Status ID="1">Online</Status>
        <Status ID="2">Offline</Status>
        <Status ID="3">Missing data</Status>
        <Status ID="4">Requested publishing</Status>
        <Status ID="5">Requested removal</Status>
        <Status ID="6">Disconnected</Status>
        <Status ID="7">Requested update</Status>
        <Status ID="8">Requested deactivation</Status>
    </PropertyExternalStatuses>
</Pull_ListPropExtStatuses_RS>
XML Path Data Type Type Description
Pull_ListPropExtStatuses_RS C Root element
Pull_ListPropExtStatuses_RS/Status String(100) M See ListStatuses
Pull_ListPropExtStatuses_RS/Status@ID Integer M See ListStatuses
Pull_ListPropExtStatuses_RS/ResponseID String(32) M Unique response ID
Pull_ListPropExtStatuses_RS/PropertyExternalStatuses C, M A collection of property external statuses
Pull_ListPropExtStatuses_RS/PropertyExternalStatuses/Status String(50) M Description of a property external status
Pull_ListPropExtStatuses_RS/PropertyExternalStatuses/Status@ID Integer M Unique property external status ID

List changeover types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Changeover;

Pull_ListChangeoverTypes_RQ request = new Pull_ListChangeoverTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListChangeoverTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListChangeoverTypes_RS response = XmlTools.DeserializeObject<Pull_ListChangeoverTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of available changeover day types.

Request

XML Request

<Pull_ListChangeoverTypes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListChangeoverTypes_RQ>
XML Path Date Type Type Description
Pull_ListChangeoverTypes_RQ C Root element
Pull_ListChangeoverTypes_RQ/Authentication C, M Authentication details
Pull_ListChangeoverTypes_RQ/Authentication/UserName String(50) M Username
Pull_ListChangeoverTypes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListChangeoverTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>49d9e4099e0744c8b06da39c6a6dc53c</ResponseID>
    <ChangeoverTypes>
        <ChangeoverType ID="1">CheckIn</ChangeoverType>
        <ChangeoverType ID="2">CheckOut</ChangeoverType>
        <ChangeoverType ID="3">None</ChangeoverType>
        <ChangeoverType ID="4">Both</ChangeoverType>
    </ChangeoverTypes>
</Pull_ListChangeoverTypes_RS>
XML Path Date Type Type Description
Pull_ListChangeoverTypes_RS C Root element
Pull_ListChangeoverTypes_RS/Status String(100) C, M See ListStatuses
Pull_ListChangeoverTypes_RS/Status@ID Integer M See ListStatuses
Pull_ListChangeoverTypes_RS/ResponseID String(32) M Unique response ID
Pull_ListChangeoverTypes_RS/ChangeoverTypes M A collection of changeover types
Pull_ListChangeoverTypes_RS/ChangeoverTypes/ChangeoverType String(100) Description of a changeover type
Pull_ListChangeoverTypes_RS/ChangeoverTypes/ChangeoverType@ID Integer Unique changeover type ID

List additional fee kinds

This method is already deprecated. See ListAdditionalFeeTypes

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.AdditionalFees;

Pull_ListAdditionalFeeKinds_RQ request = new Pull_ListAdditionalFeeKinds_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListAdditionalFeeKinds_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListAdditionalFeeKinds_RS response = XmlTools.DeserializeObject<Pull_ListAdditionalFeeKinds_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of additional fee types (tax or an extra cost) so that you can properly classify extra fees.

Request

XML Request

<Pull_ListAdditionalFeeKinds_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListAdditionalFeeKinds_RQ>
XML Path Date Type Type Description
Pull_ListAdditionalFeeKinds_RQ C Root element
Pull_ListAdditionalFeeKinds_RQ/Authentication C, M Authentication details
Pull_ListAdditionalFeeKinds_RQ/Authentication/UserName String(50) M Username
Pull_ListAdditionalFeeKinds_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListAdditionalFeeKinds_RS>
    <Status ID="0">Success</Status>
    <ResponseID>729bd4deb274444ba3824510d8b4b94f</ResponseID>
    <AdditionalFeeKinds>
        <AdditionalFeeKindInfo ID="1">Tax - a kind representing generic tax value</AdditionalFeeKindInfo>
        <AdditionalFeeKindInfo ID="2">Fee - a kind representing generic fee</AdditionalFeeKindInfo>
    </AdditionalFeeKinds>
</Pull_ListAdditionalFeeKinds_RS>

XML Path Data Type Type Description
Pull_ListAdditionalFeeKinds_RS C Root element
Pull_ListAdditionalFeeKinds_RS/Status String(100) M See ListStatuses
Pull_ListAdditionalFeeKinds_RS/Status@ID Integer M See ListStatuses
Pull_ListAdditionalFeeKinds_RS/ResponseID String(32) M Unique response ID
Pull_ListAdditionalFeeKinds_RS/AdditionalFeeKinds C A collection of additional fee kinds
Pull_ListAdditionalFeeKinds_RS/AdditionalFeeKinds/AdditionalFeeKindInfo String(100) M Description of a fee kind
Pull_ListAdditionalFeeKinds_RS/AdditionalFeeKinds/AdditionalFeeKindInfo@ID Integer M Unique fee kind ID

List additional fee discriminators

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.AdditionalFees;

Pull_ListAdditionalFeeDiscriminators_RQ request = new Pull_ListAdditionalFeeDiscriminators_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListAdditionalFeeDiscriminators_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListAdditionalFeeDiscriminators_RS response = XmlTools.DeserializeObject<Pull_ListAdditionalFeeDiscriminators_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of extra fee discriminators. Full description of each extra fee discriminator is available in the XML response.

Request

XML Request

<Pull_ListAdditionalFeeDiscriminators_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListAdditionalFeeDiscriminators_RQ>
XML Path Date Type Type Description
Pull_ListAdditionalFeeDiscriminators_RQ C Root element
Pull_ListAdditionalFeeDiscriminators_RQ/Authentication C, M Authentication details
Pull_ListAdditionalFeeDiscriminators_RQ/Authentication/UserName String(50) M Username
Pull_ListAdditionalFeeDiscriminators_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListAdditionalFeeDiscriminators_RS>
    <Status ID="0">Success</Status>
    <ResponseID>fc3da4ae8fcc4bfdbb6075d2565d870e</ResponseID>
    <AdditionalFeeDiscriminators>
        <AdditionalFeeDiscriminatorInfo ID="1">FlatPerStay - a fixed value will be added once per whole stay. Value=10.05 means 10.05 EUR/USD or other currency will be added as additional fee.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="2">FixedPerDay - a fixed value will be added for each day of stay. Value=10.05 means 10.05 EUR/USD or other currency will be added as additional fee.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="3">IndependentPercentage - a percentage of total value will be added independently at the end of calculations. Value=0.0123 means 1.23% additional fee will be added.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="4">CumulativePercentage - a percentage of total value which will be added immediately and will take part in further calculation. Value=0.0123 means 1.23% additional fee will be added.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="5">FixedAmountPerPerson - a fixed value will be added for whole stay for each person.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="6">FixedAmountPerPersonPerDay - a fixed value will be added for each day of stay for each person.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="7">FixedAmountPerPersonPerWeek - a fixed value will be added for every week commenced for each person.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="8">FixedAmountPerWeek - a fixed value will be added for every week commenced.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="9">VariableAmountByConsumption - the value of the fee depends on consumption, e.g. gas, power and water usage.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="10">VariableAmountByUse - the value of the fee depends on usage, e.g. kilometers driven by car.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="11">FixedAmountPerSet - the value of the fee depends on the number of sets, e.g. a scuba gear.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="12">FixedAmountPerSetPerWeek - the value of the fee depends on the number of sets for every week commenced, e.g. a windsurfing set.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="13">IndependentPercentagePerDay - a percentage of the total value is added independently at the end of calculations for each day of the stay.</AdditionalFeeDiscriminatorInfo>
        <AdditionalFeeDiscriminatorInfo ID="14">IndependentPercentagePerPerson - a percentage of the total value is added independently at the end of calculations for each person.</AdditionalFeeDiscriminatorInfo>
    </AdditionalFeeDiscriminators>
</Pull_ListAdditionalFeeDiscriminators_RS>
XML Path Data Type Type Description
Pull_ListAdditionalFeeDiscriminators_RS C Root element
Pull_ListAdditionalFeeDiscriminators_RS/Status String(100) M See ListStatuses
Pull_ListAdditionalFeeDiscriminators_RS/Status@ID Integer M See ListStatuses
Pull_ListAdditionalFeeDiscriminators_RS/ResponseID String(32) M Unique response ID
Pull_ListAdditionalFeeDiscriminators_RS/AdditionalFeeDiscriminators C A collection of additional fee discriminators
Pull_ListAdditionalFeeDiscriminators_RS/AdditionalFeeDiscriminators/AdditionalFeeDiscriminatorInfo String(200) M Description of a fee discriminator
Pull_ListAdditionalFeeDiscriminators_RS/AdditionalFeeDiscriminators/AdditionalFeeDiscriminatorInfo@ID Integer M Unique fee discriminator ID

List additional fee types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.AdditionalFees;

Pull_ListAdditionalFeeTypes_RQ request = new Pull_ListAdditionalFeeTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListAdditionalFeeTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListAdditionalFeeTypes_RS response = XmlTools.DeserializeObject<Pull_ListAdditionalFeeTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of all supported taxes and extra costs in Rentals United.

Request

XML Request

<Pull_ListAdditionalFeeTypes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListAdditionalFeeTypes_RQ>
XML Path Date Type Type Description
Pull_ListAdditionalFeeTypes_RQ C Root element
Pull_ListAdditionalFeeTypes_RQ/Authentication C, M Authentication details
Pull_ListAdditionalFeeTypes_RQ/Authentication/UserName String(50) M Username
Pull_ListAdditionalFeeTypes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListAdditionalFeeTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>2291da59fce44efb87850f8b8d375328</ResponseID>
    <AdditionalFeeTypes>
        <AdditionalFeeTypeInfo ID="1">local tax</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="2">VAT</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="3">tourist tax</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="4">goods and services tax</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="5">city tax</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="6">Towels fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="7">Electricity fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="8">Bed linen fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="9">Gas fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="10">Oil fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="11">Wood fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="12">Water usage fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="13">Transfer fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="14">Linen package fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="15">Heating fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="16">Air conditioning fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="17">Kitchen linen fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="18">Housekeeping fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="19">Airport shuttle fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="20">Shuttle boat fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="21">Sea plane fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="22">Ski pass</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="23">Wristband fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="24">Visa support fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="25">Water park fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="26">Club card fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="27">Conservation fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="28">Credit card fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="29">Pet fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="30">Internet fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="0">unknown</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="31">Parking fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="32">Insurance</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="33">Service fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="34">Resort fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="35">Booking fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="36">Tourism fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="37">Destination fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="38">Extra bed fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="39">Environment fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="40">Children extra fee</AdditionalFeeTypeInfo>
        <AdditionalFeeTypeInfo ID="41">Cleaning fee</AdditionalFeeTypeInfo>
    </AdditionalFeeTypes>
</Pull_ListAdditionalFeeTypes_RS>
XML Path Data Type Type Description
Pull_ListAdditionalFeeTypes_RS C Root element
Pull_ListAdditionalFeeTypes_RS/Status String(100) M See ListStatuses
Pull_ListAdditionalFeeTypes_RS/Status@ID Integer M See ListStatuses
Pull_ListAdditionalFeeTypes_RS/ResponseID String(32) M Unique response ID
Pull_ListAdditionalFeeTypes_RS/AdditionalFeeTypes C A collection of additional fee types
Pull_ListAdditionalFeeTypes_RS/AdditionalFeeTypes/AdditionalFeeTypeInfo String(200) M Description of a fee type
Pull_ListAdditionalFeeTypes_RS/AdditionalFeeTypes/AdditionalFeeTypeInfo@ID Integer M Unique fee type ID

List cancellation types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_CancellationTypes_RQ request = new Pull_CancellationTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_CancellationTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_CancellationTypes_RS response = XmlTools.DeserializeObject<Pull_CancellationTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of supported cancellation types. A confirmed reservation can be cancelled either by a guest or refused by a property provider.

Request

XML Request

<Pull_CancellationTypes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_CancellationTypes_RQ>
XML Path Data Type Type Description
Pull_CancellationTypes_RQ C Root element
Pull_CancellationTypes_RQ/Authentication C, M Authentication details
Pull_CancellationTypes_RQ/Authentication/UserName String(50) M Username
Pull_CancellationTypes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_CancellationTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>367bec28bb3c4bc78ad63189079fd796</ResponseID>
    <CancellationTypes>
        <CancellationType Id="1">Owner</CancellationType>
        <CancellationType Id="2">Guest</CancellationType>
    </CancellationTypes>
</Pull_CancellationTypes_RS>
XML Path Data Type Type Description
Pull_CancellationTypes_RS C Root element
Pull_CancellationTypes_RS/Status String(100) M See ListStatuses
Pull_CancellationTypes_RS/Status@ID Integer M See ListStatuses
Pull_CancellationTypes_RS/ResponseID String(32) M Unique response ID
Pull_CancellationTypes_RS/CancellationTypes C, M A collection of cancellation types
Pull_CancellationTypes_RS/CancellationTypes/CancellationType C Description of a cancellation type
Pull_CancellationTypes_RS/CancellationTypes/PCancellationType/@ID Integer Unique cancellation type ID

List quote modes

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_QuoteModes_RQ request = new Pull_QuoteModes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_QuoteModes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_QuoteModes_RS response = XmlTools.DeserializeObject<Pull_QuoteModes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method is designed for Sales Channels.

It returns a list of available modes that can be used when inserting a new reservation to Rentals United.

Request

XML Request

<Pull_QuoteModes_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_QuoteModes_RQ>
XML Path Data Type Type Description
Pull_QuoteModes_RQ C Root element
Pull_QuoteModes_RQ/Authentication C, M Authentication details
Pull_QuoteModes_RQ/Authentication/UserName String(50) M Username
Pull_QuoteModes_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_QuoteModes_RS>
    <Status ID="0">Success</Status>
    <ResponseID>03da7a6347364eea9fbf2416d0b0fa08</ResponseID>
    <QuoteModes>
        <QuoteMode Id="0">DoNotIgnore</QuoteMode>
        <QuoteMode Id="1">IgnorePMS</QuoteMode>
        <QuoteMode Id="2">IgnorePMSAndRU</QuoteMode>
        <QuoteMode Id="3">IgnorePMSAvbPrice</QuoteMode>
        <QuoteMode Id="4">IgnorePMSAvbPriceRUPrice</QuoteMode>
    </QuoteModes>
</Pull_QuoteModes_RS>
XML Path Data Type Type Description
Pull_QuoteModes_RS C Root element
Pull_QuoteModes_RS/Status String(100) M See ListStatuses
Pull_QuoteModes_RS/Status@ID Integer M See ListStatuses
Pull_QuoteModes_RS/ResponseID String(32) M Unique response ID
Pull_QuoteModes_RS/QuoteModes C, M A collection of cancellation types
Pull_QuoteModes_RS/QuoteModes/QuoteMode C Description of a quote mode
Pull_QuoteModes_RS/QuoteModes/QuoteMode/@ID Integer Unique quote mode ID

List Sales Channels

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;

Pull_ListSalesChannels_RQ request = new Pull_ListSalesChannels_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListSalesChannels_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListSalesChannels_RS response = XmlTools.DeserializeObject<Pull_ListSalesChannels_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of all available Sales Channels and their connection status.

If you are a PMS, use this method to identify a reservation creator within reservations retrieval API methods.

Request

XML Request

<Pull_ListSalesChannels_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListSalesChannels_RQ>
XML Path Data Type Type Description
Pull_ListSalesChannels_RQ C Root element
Pull_ListSalesChannels_RQ/Authentication C, M Authentication details
Pull_ListSalesChannels_RQ/Authentication/UserName String(50) M Username
Pull_ListSalesChannels_RQ/Authentication/Password String(50) M Password

Response

<Pull_ListSalesChannels_RS>
    <Status ID="0">Success</Status>
    <ResponseID>847dafcd12864a6a9026d25b245fb301</ResponseID>
    <Channels>
        <Channel>
            <ChannelID>420853</ChannelID>
            <ReservationCreatorName>ha@ha.ha</ReservationCreatorName>
            <CompanyName>Vrbo</CompanyName>
            <YourConfigurationComplete>false</YourConfigurationComplete>
        </Channel>
        <Channel>
            <ChannelID>421327</ChannelID>
            <ReservationCreatorName>bookingcom@rentalsunited.com</ReservationCreatorName>
            <CompanyName>Booking.com</CompanyName>
            <YourConfigurationComplete>false</YourConfigurationComplete>
        </Channel>
        <Channel>
            <ChannelID>421402</ChannelID>
            <ReservationCreatorName>expedia@rentalsunited.com</ReservationCreatorName>
            <CompanyName>Expedia</CompanyName>
            <YourConfigurationComplete>false</YourConfigurationComplete>
        </Channel>
        ...
    </Channels>
</Pull_ListSalesChannels_RQ>
XML Path Data Type Type Description
Pull_ListSalesChannels_RS C Root element
Pull_ListSalesChannels_RS/Status String(100) M See ListStatuses
Pull_ListSalesChannels_RS/Status@ID Integer M See ListStatuses
Pull_ListSalesChannels_RS/ResponseID String(32) M Unique response ID
Pull_ListSalesChannels_RS/Channels C, O Collection of channels
Pull_ListSalesChannels_RS/Channels/Channel/ChannelID Integer M Channel's unique ID
Pull_ListSalesChannels_RS/Channels/Channel/ReservationCreatorName String(50) M The channel's Rentals United username
Pull_ListSalesChannels_RS/Channels/Channel/CompanyName String(100) M Name of the channel's company.
Pull_ListSalesChannels_RS/Channels/Channel/YourConfigurationComplete Boolean M Indicates whether you are ready to push properties to the channel

Pull methods - Static property data

API methods described in this section allow you to pull a property and a property provider information from Rentals United.

List properties

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;

Pull_ListProp_RQ request = new Pull_ListProp_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    LocationID = 3509,
    IncludeNLA = false
};

string xmlBody = XmlTools.SerializeObject<Pull_ListProp_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListProp_RS response = XmlTools.DeserializeObject<Pull_ListProp_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of properties in a given location. Use IncludeNLA to identify archived (no longer available) properties.

Request

XML Request

<Pull_ListProp_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <LocationID>3509</LocationID>
 <IncludeNLA>false</IncludeNLA>
</Pull_ListProp_RQ>
XML Path Data Type Type Description
Pull_ListProp_RQ C Root element
Pull_ListProp_RQ/Authentication C, M Authentication details
Pull_ListProp_RQ/Authentication/UserName String(50) M Username
Pull_ListProp_RQ/Authentication/Password String(50) M Password
Pull_ListProp_RQ/LocationID Integer M See ListLocations
Pull_ListProp_RQ/IncludeNLA Boolean O False/0 will filter out no longer available properties from the XML Response. Default is True/1.

Response

XML Response


<Pull_ListProp_RS>
    <Status ID="0">Success</Status>
    <ResponseID>320b40cb8d6f434cb0c6d4bd2799974f</ResponseID>
    <Properties>
        <Property>
            <PUID BuildingID="-1">273641</PUID>
            <ID BuildingID="-1">2209989</ID>
            <Name>One Bedroom Apartment</Name>
            <OwnerID>553968</OwnerID>
            <DetailedLocationID TypeID="4">25591</DetailedLocationID>
            <LastMod NLA="false">2019-04-26 06:53:45</LastMod>
            <DateCreated>2019-03-05</DateCreated>
        </Property>
    </Properties>
</Pull_ListProp_RS>
XML Path Data Type Type Description
Pull_ListProp_RS C Root element
Pull_ListProp_RS/Status String(100) M See ListStatuses
Pull_ListProp_RS/Status@ID Integer M See ListStatuses
Pull_ListProp_RS/ResponseID String(32) M Unique response ID
Pull_ListProp_RS/Properties C, M A collection of properties in the location specified in the XML Request
Pull_ListProp_RS/Properties/Property C A single property
Pull_ListProp_RS/Properties/Property/PUID String(200) O Unique property ID in the property provider's system
Pull_ListProp_RS/Properties/Property/PUID@BuildingID Integer O Unique building ID in the property provider's system
Pull_ListProp_RS/Properties/Property/PUID@BuildingName String(50) O Building name in the provider's system
Pull_ListProp_RS/Properties/Property/ID Integer Unique property ID
Pull_ListProp_RS/Properties/Property/ID@BuildingID Integer O Building ID
Pull_ListProp_RS/Properties/Property/ID@BuildingName String(100) O Building name
Pull_ListProp_RS/Properties/Property/Name String(300) M Property name
Pull_ListProp_RS/Properties/Property/OwnerID Integer M Owner ID, See GetOwnerDetails
Pull_ListProp_RS/Properties/Property/DetailedLocationID Integer M The most detailed location. See GetLocationDetails
Pull_ListProp_RS/Properties/Property/DetailedLocationID@TypeID Integer M Location type ID, see ListLocationTypes
Pull_ListProp_RS/Properties/Property/LastMod String M Last modification date of property static details (format YYYY-MM-DD HHMM-SS)
Pull_ListProp_RS/Properties/Property/LastMod@NLA Boolean M True/1 means that the property is no longer available, NLA properties are automatically removed from the XML feed 1 week after they have been deactivated by the property provider
Pull_ListProp_RS/Properties/Property/DateCreated String(10) M Property create date (YYYY-MM-DD format)

List owner's properties

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;

Pull_ListOwnerProp_RQ request = new Pull_ListOwnerProp_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Username = "username@xyz.com",
    IncludeNLA = false
};

string xmlBody = XmlTools.SerializeObject<Pull_ListOwnerProp_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListOwnerProp_RS response = XmlTools.DeserializeObject<Pull_ListOwnerProp_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of properties that belong to a specified owner when you use OwnerId parameter. However, if you supply Username parameter instead, response will contain properties of all owners underlying this very Username. Using Username parameter can help you to reduce the number of calls performed. Use IncludeNLA to identify archived (no longer available) properties. It's also worth mentioning that not active properties available to you are still listed in response.

Request

XML Request

<Pull_ListOwnerProp_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <Username>username@xyz.com</Username>
 <IncludeNLA>false</IncludeNLA>
</Pull_ListOwnerProp_RQ>
XML Path Data Type Type Description
Pull_ListOwnerProp_RQ C Root element
Pull_ListOwnerProp_RQ/Authentication C, M Authentication details
Pull_ListOwnerProp_RQ/Authentication/UserName String(50) M Username
Pull_ListOwnerProp_RQ/Authentication/Password String(50) M Password
Pull_ListOwnerProp_RQ/OwnerID Integer O See ListAllOwners
Pull_ListOwnerProp_RQ/Username String(50) O It's possible to find one common username for ownerIds in ListAllOwners. It happens when user distributes properties between owners.
Pull_ListOwnerProp_RQ/IncludeNLA Boolean O If False/0, no longer available properties will be filtered out from the XML Response. Default is True/1

Response

XML Response

<Pull_ListOwnerProp_RS>
    <Status ID="0">Success</Status>
    <ResponseID>1713ee87464547f8aa9a120af0f02d5d</ResponseID>
    <Properties>
        <Property>
            <PUID BuildingID="-1">273641</PUID>
            <ID BuildingID="-1">2209989</ID>
            <Name>One Bedroom Apartment</Name>
            <OwnerID>111111</OwnerID>
            <DetailedLocationID TypeID="4">25591</DetailedLocationID>
            <LastMod NLA="false" Active="true">2019-04-26 06:53:45</LastMod>
            <DateCreated>2019-03-05</DateCreated>
        </Property>
    </Properties>
</Pull_ListOwnerProp_RS>
XML Path Data Type Type Description
Pull_ListOwnerProp_RS C Root element
Pull_ListOwnerProp_RS/Status String(100) M See ListStatuses
Pull_ListOwnerProp_RS/Status@ID Integer M See ListStatuses
Pull_ListOwnerProp_RS/ResponseID String(32) M Unique response ID
Pull_ListOwnerProp_RS/Properties C, M A collection of owner's properties
Pull_ListOwnerProp_RS/Properties/Property C Single property
Pull_ListOwnerProp_RS/Properties/Property/PUID String(50) M Unique property ID in the property provider's system
Pull_ListOwnerProp_RS/Properties/Property/PUID@BuildingID Integer M Unique building ID in the property provider's system
Pull_ListOwnerProp_RS/Properties/Property/ID Integer M Unique property ID
Pull_ListOwnerProp_RS/Properties/Property/ID@BuildingID Integer O Unique building ID
Pull_ListOwnerProp_RS/Properties/Property/ID@BuildingName String(50) O Building name
Pull_ListOwnerProp_RS/Properties/Property/Name String(150) M Property name
Pull_ListOwnerProp_RS/Properties/Property/OwnerID Integer M Owner ID, See GetOwnerDetails
Pull_ListOwnerProp_RS/Properties/Property/DetailedLocationID Integer M The most detailed location ID. See GetLocationDetails
Pull_ListOwnerProp_RS/Properties/Property/DetailedLocationID@TypeID Integer M Location type ID, See ListLocationTypes
Pull_ListOwnerProp_RS/Properties/Property/LastMod String M Last modification date of property static details (format YYYY-MM-DD HHMM-SS)
Pull_ListOwnerProp_RS/Properties/Property/LastMod@NLA Boolean M True/1 means that the property is no longer available, NLA properties are automatically removed from the XML feed 1 week after they have been deactivated by the property provider
Pull_ListOwnerProp_RS/Properties/Property/LastMod@Active Boolean M True/1 means that the property is active
Pull_ListOwnerProp_RS/Properties/Property/DateCreated String(10) M Property create date (YYYY-MM-DD format)

List properties by creation date

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;

Pull_ListPropByCreationDate_RQ request = new Pull_ListPropByCreationDate_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    CreationFrom = new DateTime(2013, 08, 17),
    CreationTo = new DateTime(2013, 08, 27),
    IncludeNLA = false
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropByCreationDate_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropByCreationDate_RS response = XmlTools.DeserializeObject<Pull_ListPropByCreationDate_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of properties that have been created in Rentals United in a given date range.

Use IncludeNLA to identify archived (no longer available) properties.

Request

XML Request

<Pull_ListPropByCreationDate_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <CreationFrom>2019-03-01</CreationFrom>
 <CreationTo>2021-01-01</CreationTo>
 <IncludeNLA>false</IncludeNLA>
</Pull_ListPropByCreationDate_RQ>
XML Path Data Type Type Description
Pull_ListPropByCreationDate_RQ C Root element
Pull_ListPropByCreationDate_RQ/Authentication C, M Authentication details
Pull_ListPropByCreationDate_RQ/Authentication/UserName String(50) M Username
Pull_ListPropByCreationDate_RQ/Authentication/Password String(50) M Password
Pull_ListPropByCreationDate_RQ/CreationFrom String(10) M Property creation date from (YYYY-MM-DD format)
Pull_ListPropByCreationDate_RQ/CreationTo String(10) M Property creation date to (YYYY-MM-DD format)
Pull_ListPropByCreationDate_RQ/IncludeNLA Boolean O If False/0, no longer available properties will be filtered out from XML Response. Default is True/1

Response

XML Response

<Pull_ListPropByCreationDate_RS>
    <Status ID="0">Success</Status>
    <ResponseID>2900670d93404b0ea93664e18e5675ca</ResponseID>
    <Properties>
        <Property>
            <ID BuildingID="-1">2209989</ID>
            <Name>One Bedroom Apartment</Name>
            <OwnerID>553968</OwnerID>
            <DetailedLocationID TypeID="-1">25591</DetailedLocationID>
            <LastMod NLA="false">2019-04-26 06:53:45</LastMod>
            <DateCreated>2019-03-05 08:38:42</DateCreated>
        </Property>
    </Properties>
</Pull_ListPropByCreationDate_RS>
XML Path Data Type Type Description
Pull_ListPropByCreationDate_RS C Root element
Pull_ListPropByCreationDate_RS/Status String(100) M See ListStatuses
Pull_ListPropByCreationDate_RS/Status@ID Integer M See ListStatuses
Pull_ListPropByCreationDate_RS/ResponseID String(32) M Unique response ID
Pull_ListPropByCreationDate_RS/Properties C, M A collection of properties created in the specified date range
Pull_ListPropByCreationDate_RS/Properties/Property C Single property
Pull_ListPropByCreationDate_RS/Properties/Property/PUID String(50) M Unique property ID in the property provider's system
Pull_ListPropByCreationDate_RS/Properties/Property/PUID@BuildingID Integer M Unique building ID in the property provider's system
Pull_ListPropByCreationDate_RS/Properties/Property/ID Integer Unique property ID
Pull_ListPropByCreationDate_RS/Properties/Property/ID@BuildingID Integer O Unique building ID
Pull_ListPropByCreationDate_RS/Properties/Property/ID@BuildingName String(50) O Building name
Pull_ListPropByCreationDate_RS/Properties/Property/Name String(150) M Property name
Pull_ListPropByCreationDate_RS/Properties/Property/OwnerID Integer M Owner ID. See GetOwnerDetails
Pull_ListPropByCreationDate_RS/Properties/Property/DetailedLocationID Integer M The most detailed location. See GetLocationDetails
Pull_ListPropByCreationDate_RS/Properties/Property/DetailedLocationID@TypeID Integer M Location type ID, See ListLocationTypes
Pull_ListPropByCreationDate_RS/Properties/Property/LastMod String M Last modification date of property static details (format YYYY-MM-DD HHMM-SS)
Pull_ListPropByCreationDate_RS/Properties/Property/LastMod@NLA Boolean M True/1 means that the property is no longer available, NLA properties are automatically removed from the XML feed 1 week after they have been deactivated by the property provider
Pull_ListPropByCreationDate_RS/Properties/Property/DateCreated String(10) M Property create date (YYYY-MM-DD format)

List specific property

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;

Pull_ListSpecProp_RQ request = new Pull_ListSpecProp_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1
};

string xmlBody = XmlTools.SerializeObject<Pull_ListSpecProp_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListSpecProp_RS response = XmlTools.DeserializeObject<Pull_ListSpecProp_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a property's static details.

If you are a Sales Channel you will retrieve full property information and create a listing in your system.

Request

XML Request

<Pull_ListSpecProp_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <PropertyID>2209989</PropertyID>
</Pull_ListSpecProp_RQ>
XML Path Data Type Type Description
Pull_ListSpecProp_RQ C Root element
Pull_ListSpecProp_RQ/Authentication C, M Authentication details
Pull_ListSpecProp_RQ/Authentication/UserName String(50) M Username
Pull_ListSpecProp_RQ/Authentication/Password String(50) M Password
Pull_ListSpecProp_RQ/PropertyID Integer C Property ID

Response

XML Response (amenities not assigned to a specific room)

<Pull_ListSpecProp_RS>
    <Status ID="0">Success</Status>
    <ResponseID>a61501281f7d4b63999b65ba3dcb2b96</ResponseID>
    <Property Currency="EUR">
        <PUID BuildingID="-1">273641</PUID>
        <ID BuildingID="-1" BuildingName="">2209989</ID>
        <Name>One Bedroom Apartment</Name>
        <OwnerID>553968</OwnerID>
        <DetailedLocationID TypeID="4">25591</DetailedLocationID>
        <LastMod NLA="false">2019-04-26 06:53:45</LastMod>
        <DateCreated>2019-03-05</DateCreated>
        <UserID>553968</UserID>
        <Space>47</Space>
        <StandardGuests>4</StandardGuests>
        <CanSleepMax>4</CanSleepMax>
        <PropertyTypeID>2</PropertyTypeID>
        <ObjectTypeID>3</ObjectTypeID>
        <NoOfUnits>1</NoOfUnits>
        <Floor>0</Floor>
        <Street>Palmowa 15</Street>
        <ZipCode>05</ZipCode>
        <LicenseNumber />
        <LicenceInfo>
            <FrenchLicenceInfo />
        </LicenceInfo>
        <Coordinates>
            <Latitude>52.217453</Latitude>
            <Longitude>21.139456</Longitude>
        </Coordinates>
        <ArrivalInstructions>
            <Landlord>John Smith</Landlord>
            <Email>john@example.com</Email>
            <Phone>+1 111 111 111</Phone>
            <DaysBeforeArrival>0</DaysBeforeArrival>
            <PickupService />
            <HowToArrive />
        </ArrivalInstructions>
        <CheckInOut>
            <CheckInFrom>13:00</CheckInFrom>
            <CheckInTo>18:00</CheckInTo>
            <CheckOutUntil>12:00</CheckOutUntil>
            <Place>at_the_apartment</Place>
            <LateArrivalFees />
            <EarlyDepartureFees />
        </CheckInOut>
        <Deposit DepositTypeID="1">0.00</Deposit>
        <SecurityDeposit DepositTypeID="5">200.00</SecurityDeposit>
        <IsActive>true</IsActive>
        <IsArchived>false</IsArchived>
        <Distances />
        <CompositionRooms>
            <CompositionRoomID Count="1">257</CompositionRoomID>
            <CompositionRoomID Count="1">249</CompositionRoomID>
        </CompositionRooms>
        <Amenities>
            <Amenity Count="1">595</Amenity>
            <Amenity Count="1">702</Amenity>
            <Amenity Count="1">802</Amenity>
            <Amenity Count="1">930</Amenity>
            <Amenity Count="1">101</Amenity>
            <Amenity Count="1">187</Amenity>
        </Amenities>
        <Images>
            <Image ImageTypeID="1" ImageReferenceID="1">https://a0.muscache.com/im/pictures/2762835/690c16be_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="2">https://a0.muscache.com/im/pictures/2762748/fe106e44_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="3">https://a0.muscache.com/im/pictures/2762913/330bc8fc_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762824/efde5102_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762742/8db449ba_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762709/d5475c1f_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762927/dbcef7be_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762876/924c76ce_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762732/11549cb5_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762859/47299148_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762790/1ed28e01_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762903/876416ab_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762768/dc034096_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580441799567.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580519143138.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580532424324.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580535861847.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580539611850.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580554299473.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580559455559.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580563830468.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580568830701.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580575549208.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580582111732.jpg</Image>
        </Images>
        <ImageCaptions>
            <ImageCaption LanguageID="1", ImageReferenceID="1">
                This is the main image
            </ImageCaption>
            <ImageCaption LanguageID="1", ImageReferenceID="2">
                This is image showcasing X
            </ImageCaption>
            <ImageCaption LanguageID="1", ImageReferenceID="3">
                This is image showcasing Y
            </ImageCaption>
        </ImageCaptions>
        <PaymentMethods>
            <PaymentMethod PaymentMethodID="3">
                <![CDATA[]]>
            </PaymentMethod>
        </PaymentMethods>
        <TermsAndConditionsLinks>
            <TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
            <TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
        </TermsAndConditionsLinks>
        <CancellationPolicies>
            <CancellationPolicy ID="0" ValidFrom="0" ValidTo="6">100.00</CancellationPolicy>
            <CancellationPolicy ID="0" ValidFrom="7" ValidTo="999">50.00</CancellationPolicy>
        </CancellationPolicies>
        <Descriptions>
            <Description LanguageID="1">
                <Text>
                    <![CDATA[One bedroom apartment for rent in green area of Warsaw - Wawer  district for Euro 2012. 
The apartment is located in newly built block of flats on the ground level with 40 sqm private garden.

The apartment is 46 sqm, 23 sqm living room with kitchenette, 13 sqm bedroom with big closet and a bedroom with toilet.

The estate is fenced with private parking place in the price. In the neighborhood there is a lot of green area, bus stop, grocery. All the amenities in the apartment are new, the apartment is newly renovated with all the comforts.

This is a great place to stay for Euro 2012 championship. The apartment is on the right side of the river, 8km from the football stadium. It is easy to get to the city center and the stadium by either car or bus (bust station 100m from the building). 
You can also watch football matches with your friends on the barbecue party in the garden.
]]>
                </Text>
            </Description>
        </Descriptions>
        <AdditionalFees />
    </Property>
</Pull_ListSpecProp_RS>

XML Response (amenities assigned to a specific room)

<Pull_ListSpecProp_RS>
    <Status ID="0">Success</Status>
    <ResponseID>a61501281f7d4b63999b65ba3dcb2b96</ResponseID>
    <Property Currency="EUR">
        <PUID BuildingID="-1">273641</PUID>
        <ID BuildingID="-1" BuildingName="">2209989</ID>
        <Name>One Bedroom Apartment</Name>
        <OwnerID>553968</OwnerID>
        <DetailedLocationID TypeID="4">25591</DetailedLocationID>
        <LastMod NLA="false">2019-04-26 06:53:45</LastMod>
        <DateCreated>2019-03-05</DateCreated>
        <UserID>553968</UserID>
        <Space>47</Space>
        <StandardGuests>4</StandardGuests>
        <CanSleepMax>4</CanSleepMax>
        <PropertyTypeID>2</PropertyTypeID>
        <ObjectTypeID>3</ObjectTypeID>
        <NoOfUnits>1</NoOfUnits>
        <Floor>0</Floor>
        <Street>Palmowa 15</Street>
        <ZipCode>05</ZipCode>
        <LicenseNumber />
        <LicenceInfo>
            <FrenchLicenceInfo />
        </LicenceInfo>
        <Coordinates>
            <Latitude>52.217453</Latitude>
            <Longitude>21.139456</Longitude>
        </Coordinates>
        <ArrivalInstructions>
            <Landlord>John Smith</Landlord>
            <Email>john@example.com</Email>
            <Phone>+1 111 111 111</Phone>
            <DaysBeforeArrival>0</DaysBeforeArrival>
            <PickupService />
            <HowToArrive />
        </ArrivalInstructions>
        <CheckInOut>
            <CheckInFrom>13:00</CheckInFrom>
            <CheckInTo>18:00</CheckInTo>
            <CheckOutUntil>12:00</CheckOutUntil>
            <Place>at_the_apartment</Place>
            <LateArrivalFees />
            <EarlyDepartureFees />
        </CheckInOut>
        <Deposit DepositTypeID="1">0.00</Deposit>
        <SecurityDeposit DepositTypeID="5">200.00</SecurityDeposit>
        <IsActive>true</IsActive>
        <IsArchived>false</IsArchived>
        <Distances />
        <CompositionRoomsAmenities>
            <CompositionRoomAmenities CompositionRoomID="257">
                <Amenities>
                    <Amenity Count="1">61</Amenity>
                </Amenities>
            </CompositionRoomAmenities>
            <CompositionRoomAmenities CompositionRoomID="249">
                <Amenities>
                    <Amenity Count="1">200</Amenity>
                </Amenities>
            </CompositionRoomAmenities>
        </CompositionRoomsAmenities>
        <Amenities>
            <Amenity Count="1">595</Amenity>
            <Amenity Count="1">702</Amenity>
            <Amenity Count="1">802</Amenity>
            <Amenity Count="1">930</Amenity>
            <Amenity Count="1">101</Amenity>
            <Amenity Count="1">187</Amenity>
        </Amenities>
        <Images>
            <Image ImageTypeID="1" ImageReferenceID="1">https://a0.muscache.com/im/pictures/2762835/690c16be_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="2">https://a0.muscache.com/im/pictures/2762748/fe106e44_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="3">https://a0.muscache.com/im/pictures/2762913/330bc8fc_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762824/efde5102_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762742/8db449ba_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762709/d5475c1f_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762927/dbcef7be_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762876/924c76ce_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762732/11549cb5_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762859/47299148_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762790/1ed28e01_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762903/876416ab_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762768/dc034096_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580441799567.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580519143138.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580532424324.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580535861847.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580539611850.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580554299473.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580559455559.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580563830468.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580568830701.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580575549208.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580582111732.jpg</Image>
        </Images>
        <ImageCaptions>
            <ImageCaption LanguageID="1", ImageReferenceID="1">
                This is the main image
            </ImageCaption>
            <ImageCaption LanguageID="1", ImageReferenceID="2">
                This is image showcasing X
            </ImageCaption>
            <ImageCaption LanguageID="1", ImageReferenceID="3">
                This is image showcasing Y
            </ImageCaption>
        </ImageCaptions>
        <PaymentMethods>
            <PaymentMethod PaymentMethodID="3">
                <![CDATA[]]>
            </PaymentMethod>
        </PaymentMethods>
        <TermsAndConditionsLinks>
            <TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
            <TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
        </TermsAndConditionsLinks>
        <CancellationPolicies>
            <CancellationPolicy ID="0" ValidFrom="0" ValidTo="6">100.00</CancellationPolicy>
            <CancellationPolicy ID="0" ValidFrom="7" ValidTo="999">50.00</CancellationPolicy>
        </CancellationPolicies>
        <Descriptions>
            <Description LanguageID="1">
                <Text>
                    <![CDATA[One bedroom apartment for rent in green area of Warsaw - Wawer  district for Euro 2012. 
The apartment is located in newly built block of flats on the ground level with 40 sqm private garden.

The apartment is 46 sqm, 23 sqm living room with kitchenette, 13 sqm bedroom with big closet and a bedroom with toilet.

The estate is fenced with private parking place in the price. In the neighborhood there is a lot of green area, bus stop, grocery. All the amenities in the apartment are new, the apartment is newly renovated with all the comforts.

This is a great place to stay for Euro 2012 championship. The apartment is on the right side of the river, 8km from the football stadium. It is easy to get to the city center and the stadium by either car or bus (bust station 100m from the building). 
You can also watch football matches with your friends on the barbecue party in the garden.
]]>
                </Text>
            </Description>
        </Descriptions>
        <AdditionalFees />
    </Property>
</Pull_ListSpecProp_RS>

XML Response with AdditionalFees and ChargeProfile

<Pull_ListSpecProp_RS>
    <Status ID="0">Success</Status>
    <ResponseID>a61501281f7d4b63999b65ba3dcb2b96</ResponseID>
    <Property Currency="EUR">
        <PUID BuildingID="-1">273641</PUID>
        <ID BuildingID="-1" BuildingName="">2209989</ID>
        <Name>One Bedroom Apartment</Name>
        <OwnerID>553968</OwnerID>
        <DetailedLocationID TypeID="4">25591</DetailedLocationID>
        <LastMod NLA="false">2019-04-26 06:53:45</LastMod>
        <DateCreated>2019-03-05</DateCreated>
        <UserID>553968</UserID>
        <Space>47</Space>
        <StandardGuests>4</StandardGuests>
        <CanSleepMax>4</CanSleepMax>
        <PropertyTypeID>2</PropertyTypeID>
        <ObjectTypeID>3</ObjectTypeID>
        <NoOfUnits>1</NoOfUnits>
        <Floor>0</Floor>
        <Street>Palmowa 15</Street>
        <ZipCode>05</ZipCode>
        <LicenseNumber />
        <LicenceInfo>
            <FrenchLicenceInfo />
        </LicenceInfo>
        <Coordinates>
            <Latitude>52.217453</Latitude>
            <Longitude>21.139456</Longitude>
        </Coordinates>
        <ArrivalInstructions>
            <Landlord>John Smith</Landlord>
            <Email>john@example.com</Email>
            <Phone>+1 111 111 111</Phone>
            <DaysBeforeArrival>0</DaysBeforeArrival>
            <PickupService />
            <HowToArrive />
        </ArrivalInstructions>
        <CheckInOut>
            <CheckInFrom>13:00</CheckInFrom>
            <CheckInTo>18:00</CheckInTo>
            <CheckOutUntil>12:00</CheckOutUntil>
            <Place>at_the_apartment</Place>
            <LateArrivalFees />
            <EarlyDepartureFees />
        </CheckInOut>
        <Deposit DepositTypeID="1">0.00</Deposit>
        <SecurityDeposit DepositTypeID="5">200.00</SecurityDeposit>
        <IsActive>true</IsActive>
        <IsArchived>false</IsArchived>
        <Distances />
        <CompositionRooms>
            <CompositionRoomID Count="1">257</CompositionRoomID>
            <CompositionRoomID Count="1">249</CompositionRoomID>
        </CompositionRooms>
        <Amenities>
            <Amenity Count="1">595</Amenity>
            <Amenity Count="1">702</Amenity>
            <Amenity Count="1">802</Amenity>
            <Amenity Count="1">930</Amenity>
            <Amenity Count="1">101</Amenity>
            <Amenity Count="1">187</Amenity>
        </Amenities>
        <Images>
            <Image ImageTypeID="1" ImageReferenceID="1">https://a0.muscache.com/im/pictures/2762835/690c16be_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="2">https://a0.muscache.com/im/pictures/2762748/fe106e44_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="3">https://a0.muscache.com/im/pictures/2762913/330bc8fc_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762824/efde5102_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762742/8db449ba_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762709/d5475c1f_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762927/dbcef7be_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762876/924c76ce_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762732/11549cb5_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762859/47299148_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762790/1ed28e01_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762903/876416ab_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762768/dc034096_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580441799567.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580519143138.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580532424324.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580535861847.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580539611850.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580554299473.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580559455559.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580563830468.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580568830701.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580575549208.jpg</Image>
            <Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580582111732.jpg</Image>
        </Images>
        <ImageCaptions>
            <ImageCaption LanguageID="1", ImageReferenceID="1">
                This is the main image
            </ImageCaption>
            <ImageCaption LanguageID="1", ImageReferenceID="2">
                This is image showcasing X
            </ImageCaption>
            <ImageCaption LanguageID="1", ImageReferenceID="3">
                This is image showcasing Y
            </ImageCaption>
        </ImageCaptions>
        <PaymentMethods>
            <PaymentMethod PaymentMethodID="3">
                <![CDATA[]]>
            </PaymentMethod>
        </PaymentMethods>
        <TermsAndConditionsLinks>
            <TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
            <TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
        </TermsAndConditionsLinks>
        <CancellationPolicies>
            <CancellationPolicy ID="0" ValidFrom="0" ValidTo="6">100.00</CancellationPolicy>
            <CancellationPolicy ID="0" ValidFrom="7" ValidTo="999">50.00</CancellationPolicy>
        </CancellationPolicies>
        <Descriptions>
            <Description LanguageID="1">
                <Text>
                    <![CDATA[One bedroom apartment for rent in green area of Warsaw - Wawer  district for Euro 2012. 
The apartment is located in newly built block of flats on the ground level with 40 sqm private garden.

The apartment is 46 sqm, 23 sqm living room with kitchenette, 13 sqm bedroom with big closet and a bedroom with toilet.

The estate is fenced with private parking place in the price. In the neighborhood there is a lot of green area, bus stop, grocery. All the amenities in the apartment are new, the apartment is newly renovated with all the comforts.

This is a great place to stay for Euro 2012 championship. The apartment is on the right side of the river, 8km from the football stadium. It is easy to get to the city center and the stadium by either car or bus (bust station 100m from the building). 
You can also watch football matches with your friends on the barbecue party in the garden.
]]>
                </Text>
            </Description>
        </Descriptions>
        <AdditionalFees>
          <AdditionalFee Order="1" DiscriminatorID="1" KindID="2" Name="Cleaning Fee" Optional="false" Refundable="true" FeeTaxType="41" CollectTime="1">
            <Value>100.0000</Value>
          </AdditionalFee>
          <AdditionalFee Order="2" DiscriminatorID="3" KindID="1" Name="State Tax" Optional="false" Refundable="true" FeeTaxType="4" CollectTime="1">
            <Value>0.1000</Value>
          </AdditionalFee>
          <AdditionalFee Order="3" DiscriminatorID="1" KindID="2" Name="Towel Fee" Optional="false" Refundable="true" FeeTaxType="16" CollectTime="1">
            <Value>100.0000</Value>
          </AdditionalFee>
        </AdditionalFees>
        <ChargeProfiles>
          <ChargeProfile ID="0">
            <ApplicableAdditionalFee DiscriminatorID="1" Name="Towel Fee" Optional="false" Refundable="true" FeeTaxType="16" CollectTime="1">
              <Value>100.0000</Value>
              <ApplicableTo>
                <FeeNames />
                <Rent>false</Rent>
              </ApplicableTo>
            </ApplicableAdditionalFee>
            <ApplicableAdditionalFee DiscriminatorID="1" Name="Cleaning Fee" Optional="false" Refundable="true" FeeTaxType="41" CollectTime="1">
              <Value>100.0000</Value>
              <ApplicableTo>
                <FeeNames />
                <Rent>false</Rent>
              </ApplicableTo>
            </ApplicableAdditionalFee>
            <ApplicableAdditionalFee DiscriminatorID="3" Name="State Tax" Optional="false" Refundable="true" FeeTaxType="4" CollectTime="1">
              <Value>0.1000</Value>
              <ApplicableTo>
                <FeeNames>
                  <FeeName>Cleaning Fee</FeeName>
                </FeeNames>
                <Rent>true</Rent>
              </ApplicableTo>
            </ApplicableAdditionalFee>
          </ChargeProfile>
        </ChargeProfiles>
    </Property>
</Pull_ListSpecProp_RS>
XML Path Data Type Type Description
Pull_ListSpecProp_RS C Root element
Pull_ListSpecProp_RS/Status String(100) M See ListStatuses
Pull_ListSpecProp_RS/Status@ID Integer M See ListStatuses
Pull_ListSpecProp_RS/ResponseID String(32) M Unique response ID
Pull_ListSpecProp_RS/Property C, M Single property
Pull_ListSpecProp_RS/Property@Currency String(3) C, M Property rates currency
Pull_ListSpecProp_RS/Properties/Property/PUID String(50) M Unique property ID in the property provider's system
Pull_ListSpecProp_RS/Properties/Property/PUID@BuildingID Integer M Unique building ID in the property provider's system
Pull_ListSpecProp_RS/Property/ID Integer M Unique property ID
Pull_ListSpecProp_RS/Property/ID@BuildingID Integer O Unique building ID
Pull_ListSpecProp_RS/Property/ID@BuildingName String(50) O Building name
Pull_ListSpecProp_RS/Property/Name String(150) M Property name
Pull_ListSpecProp_RS/Property/OwnerID Integer M Owner ID. See GetOwnerDetails
Pull_ListSpecProp_RS/Property/Property/DetailedLocationID Integer M The most detailed location. See GetLocationDetails
Pull_ListSpecProp_RS/Property/Property/DetailedLocationID@TypeID Integer M Location type ID, See ListLocationTypes
Pull_ListSpecProp_RS/Property/Property/LastMod String M Last modification date of property static details (format YYYY-MM-DD HHMM-SS)
Pull_ListSpecProp_RS/Property/LastMod@NLA Boolean M True/1 means that the property is no longer available, NLA properties are automatically removed from the XML feed 1 week after they have been deactivated by the property provider
Pull_ListSpecProp_RS/Property/DateCreated String M Property create date (YYYY-MM-DD format)
Pull_ListSpecProp_RS/Property/IsActive Boolean M Indicates whether the property is active, See Property status
Pull_ListSpecProp_RS/Property/IsArchived Boolean M Indicates whether the property is archived, See Property status
Pull_ListSpecProp_RS/Property/CleaningPrice Decimal(19,2 O Property cleaning price. Deprecated as of August 2021. Please provide the cost of cleaning within the Push_PutProperty_RQ/Property/AdditionalFees collection.
Pull_ListSpecProp_RS/Property/Space Integer M Living space in square meters
Pull_ListSpecProp_RS/Property/StandardGuests Integer M Number of guests included in the price
Pull_ListSpecProp_RS/Property/CanSleepMax Integer M Maximum number of guests
Pull_ListSpecProp_RS/Property/PropertyTypeID Integer M See ListPropertyTypes
Pull_ListSpecProp_RS/Property/ObjectTypeID Integer M See ListOTAPropertyTypes
Pull_ListSpecProp_RS/Property/NoOfUnits Integer O Number of units in the multi unit property
Pull_ListSpecProp_RS/Property/Floor Integer M Floor on which a property is located
Pull_ListSpecProp_RS/Property/Street String(100) M Property address (street name, building/flat number)
Pull_ListSpecProp_RS/Property/ZipCode String(15) M Property zip code
Pull_ListSpecProp_RS/Property/Coordinates C Property's geographical coordinates
Pull_ListSpecProp_RS/Property/Coordinates/Latitude String(50) M Geographic latitude
Pull_ListSpecProp_RS/Property/Coordinates/Longitude String(50) M Geographic longitude
Pull_ListSpecProp_RS/Property/Distances C, O A collection of distances to city attractions/points of interest
Pull_ListSpecProp_RS/Property/Distances/Distance C, O Details of distance
Pull_ListSpecProp_RS/Property/Distances/Distance/DestinationID Integer M See ListDestinations
Pull_ListSpecProp_RS/Property/Distances/Distance/DistanceUnitID Integer M See ListDistanceUnits
Pull_ListSpecProp_RS/Property/Distances/Distance/DistanceValue Decimal(5,2) M Value of distance in distance unit
Pull_ListSpecProp_RS/Property/CompositionRooms C, O A collection of rooms
Pull_ListSpecProp_RS/Property/CompositionRooms/CompositionRoomID Integer M See ListCompositionRooms
Pull_ListSpecProp_RS/Property/CompositionRoomID@Count Integer M The amount of each room type in the property
Pull_ListSpecProp_RS/Property/CompositionRoomsAmenities C, O A collection of rooms with amenities, this element contains information about the amenities available in a given room type, some general amenities (e.g. parking or wireless internet connection) will be defined in the Pull_ListSpecProp_RS/Property/Amenities element
Pull_ListSpecProp_RS/Property/CompositionRoomsAmenities/CompositionRoomAmenities C, M A single room
Pull_ListSpecProp_RS/Property/CompositionRoomsAmenities/CompositionRoomAmenities@CompositionRoomID Integer M See ListCompositionRooms
Pull_ListSpecProp_RS/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities C, O A collection of amenities available in a given room type
Pull_ListSpecProp_RS/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities/Amenity Integer M See ListAmenitiesAvailableForRooms
Pull_ListSpecProp_RS/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities/Amenity@Count Integer M The amount of each amenity
Pull_ListSpecProp_RS/Property/Amenities C, O A collection of apartment amenities
Pull_ListSpecProp_RS/Property/Amenities/Amenity Integer M See ListAmenities
Pull_ListSpecProp_RS/Property/Amenities/Amenity@Count Integer M The amount of each amenity
Pull_ListSpecProp_RS/Property/Images C, O A collection of property images
Pull_ListSpecProp_RS/Property/Images/Image String(300) M Image url
Pull_ListSpecProp_RS/Property/Images/Image@ImageTypeID Integer M Image type. See ListImageTypes
Pull_ListSpecProp_RS/Property/Images/Image@ImageReferenceID String O ID to reference Captions to Image
Pull_ListSpecProp_RS/Property/ImageCaptions O A collection of image captions. It must not be sent standalone, it has to be sent along with Images collection.
Pull_ListSpecProp_RS/Property/ImageCaptions/ImageCaption String(255) M Image caption description
Pull_ListSpecProp_RS/Property/ImageCaptions/ImageCaption@LanguageID Integer M Language of the description see ListLanguages
Pull_ListSpecProp_RS/Property/ImageCaptions/ImageCaption@ImageReferenceID String M ID referencing property image to which assign caption
Pull_ListSpecProp_RS/Property/ArrivalInstructions C, O Property arrival instructions
Pull_ListSpecProp_RS/Property/ArrivalInstructions/Landlord String(20) M Name of the person which Guests will contact before arrival
Pull_ListSpecProp_RS/Property/ArrivalInstructions/Email String(30) M Contact email address
Pull_ListSpecProp_RS/Property/ArrivalInstructions/Phone String(20) M Contact phone number (with the country code)
Pull_ListSpecProp_RS/Property/ArrivalInstructions/DaysBeforeArrival Integer M The amount of days before arriving in which the guest should contact the landlord
Pull_ListSpecProp_RS/Property/ArrivalInstructions/HowToArrive C, M Instructions of how to arrive
Pull_ListSpecProp_RS/Property/ArrivalInstructions/HowToArrive/Text String O Text that describes how to arrive to the property. Value returned as CDATA
Pull_ListSpecProp_RS/Property/ArrivalInstructions/HowToArrive/Text@LanguageID Integer M Language ID, See Pull_ListLanguages_RQ
Pull_ListSpecProp_RS/Property/ArrivalInstructions/PickupService C, O Pickup service information
Pull_ListSpecProp_RS/Property/ArrivalInstructions/PickupService/Text String O Text that describes the pickup service. Value returned as CDATA
Pull_ListSpecProp_RS/Property/ArrivalInstructions/PickupService/Text@LanguageID Integer M Language ID, See Pull_ListLanguages_RQ
Pull_ListSpecProp_RS/Property/CheckInOut C, M Check in, check out details
Pull_ListSpecProp_RS/Property/CheckInOut/CheckInFrom String(5) M Accepted check in time – from (HH:MM format, 24h format)
Pull_ListSpecProp_RS/Property/CheckInOut/CheckInTo String(5) M Accepted check in time – to (HH:MM format, 24h format)
Pull_ListSpecProp_RS/Property/CheckInOut/CheckOutUntil String(5) M The latest check out time. (HH:MM format, 24h format)
Pull_ListSpecProp_RS/Property/CheckInOut/Place String(30) M The location where the check in takes place
Pull_ListSpecProp_RS/Property/CheckInOut/LateArrivalFees C, O A collection of fees for late arrivals by arrival time (separable ranges)
Pull_ListSpecProp_RS/Property/CheckInOut/LateArrivalFees/LateArrivalFee Decimal(19,2) M Fee for a late arrival
Pull_ListSpecProp_RS/Property/CheckInOut/LateArrivalFees/LateArrivalFee@From String(5) M Start hour of the late arrival range (HH:MM format, 24h format)
Pull_ListSpecProp_RS/Property/CheckInOut/LateArrivalFees/LateArrivalFee@To String(5) M End hour of the late arrival range (HH:MM format, 24h format)
Pull_ListSpecProp_RS/Property/CheckInOut/EarlyDepartureFees C, O A collection of fees for early departures by arrival times (separable ranges)
Pull_ListSpecProp_RS/Property/CheckInOut/EarlyDepartureFees/EarlyDepartureFee Decimal(19,2) M Fee for an early departure
Pull_ListSpecProp_RS/Property/CheckInOut/EarlyDepartureFees/EarlyDepartureFee@From String(5) M Start hour of an early departure range (HH:MM format, 24h format)
Pull_ListSpecProp_RS/Property/CheckInOut/EarlyDepartureFees/EarlyDepartureFee@To String(5) M End hour of an early departure range (HH:MM format, 24h format)
Pull_ListSpecProp_RS/Property/PaymentMethods C, M A collection of acceptable payment methods
Pull_ListSpecProp_RS/Property/PaymentMethods/PaymentMethod String(500) M Payment method details, i.e. Bank account. Value returned as CDATA
Pull_ListSpecProp_RS/Property/PaymentMethods/PaymentMethod@PaymentMethodID Integer M Payment method. See ListPaymentMethods
Pull_ListSpecProp_RS/Property/TermsAndConditionsLinks C, M A collection of terms and conditions
Pull_ListSpecProp_RS/Property/TermsAndConditionsLinks/TermsAndConditionsLink C, M Property terms and conditions
Pull_ListSpecProp_RS/Property/TermsAndConditionsLinks/TermsAndConditionsLink@LanguageID Integer M Language ID, See ListLanguages
Pull_ListSpecProp_RS/Property/TermsAndConditionsLinks/TermsAndConditionsLink/Text String(200) M URL link of Terms and conditions in the selected language. Accepted http,https,ftp URL
Pull_ListSpecProp_RS/Property/Deposit Decimal(19,2) M Deposit amount depending on deposit type. In case deposit is of 16%, then the value displayed will be 16.
Pull_ListSpecProp_RS/Property/Deposit@DepositTypeID Integer M Deposit type ID. See ListDepositTypes
Pull_ListSpecProp_RS/Property/CancellationPolicies C, M A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Pull_ListSpecProp_RS/Property/CancellationPolicies/CancellationPolicy Decimal(19,2) M A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Pull_ListSpecProp_RS/Property/CancellationPolicies/CancellationPolicy@ValidFrom Integer M Start of the range when the cancellation policy is valid
Pull_ListSpecProp_RS/Property/CancellationPolicies/CancellationPolicy@ValidTo Integer M End of the range when the cancellation policy is valid
Pull_ListSpecProp_RS/Property/CancellationPoliciesText C, O A collection of cancellation policies as text
Pull_ListSpecProp_RS/Property/CancellationPoliciesText/CancellationPolicyText C, M A cancellation policy
Pull_ListSpecProp_RS/Property/CancellationPoliciesText/CancellationPolicyText@LanguageID Integer M Language ID, See Pull_ListLanguages_RQ
Pull_ListSpecProp_RS/Property/CancellationPoliciesText/CancellationPolicyText/Text String(300) M A cancellation policy description
Pull_ListSpecProp_RS/Property/Descriptions C, M A collection of descriptions
Pull_ListSpecProp_RS/Property/Descriptions/Description C, M Property description
Pull_ListSpecProp_RS/Property/Descriptions/Description@LanguageID Integer M Language ID, See ListLanguages
Pull_ListSpecProp_RS/Property/Descriptions/Description/Text String(3000) M Description in the selected language. Value returned in CDATA
Pull_ListSpecProp_RS/Property/Descriptions/Description/Image String(300) M The url of the image that contains the property description ("description as an image")
Pull_ListSpecProp_RS/Property/Descriptions/Description/Space String(40000) O Additional information about the property space - what makes it unique and how many people it comfortably fits
Pull_ListSpecProp_RS/Property/Descriptions/Description/Access String(40000) O Additional information about the access to the property - what parts of the space the guests will be able to access
Pull_ListSpecProp_RS/Property/Descriptions/Description/Interaction String(40000) O Additional information about the interaction with the host - how much the host will interact with the guests and if the host will be present during the guest stay
Pull_ListSpecProp_RS/Property/Descriptions/Description/Neighborhood String(40000) O Additional information about the property neighborhood - what can be found in the neighbourhood and the surrounding region as well as suggestions about places to visit and unique experiences
Pull_ListSpecProp_RS/Property/Descriptions/Description/Notes String(40000) O Additional notes
Pull_ListSpecProp_RS/Property/Descriptions/Description/HouseRules String(40000) O Additional information about the house rules - instructions for guests on how to behave at the property. It should also include information whether pets are allowed and if there are rules about smoking
Pull_ListSpecProp_RS/Property/Descriptions/Description/Headline String(80) O Additional information about the property headline
Pull_ListSpecProp_RS/Property/Descriptions/Description/WhyPurchased String(40000) O Additional information about why the property was purchased
Pull_ListSpecProp_RS/Property/Descriptions/Description/OwnerListingStory String(40000) O Additional information about the property story, for example how the owner came to own the property and what makes it so special to the owner
Pull_ListSpecProp_RS/Property/Descriptions/Description/WiFiName String(40000) O Additional information about the WiFi
Pull_ListSpecProp_RS/Property/Descriptions/Description/AdditionalInfo String(40000) O Additional information
Pull_ListSpecProp_RS/Property/Descriptions/Description/LocationDesc String(40000) O Additional description about the property location
Pull_ListSpecProp_RS/Property/SecurityDeposit Decimal(8,2) M Refundable security deposit amount depending on deposit type. In case deposit is of 16%, then the value displayed will be 16.00
Pull_ListSpecProp_RS/Property/SecurityDeposit@DepositTypeID Integer M Deposit type ID. See ListDepositTypes
Pull_ListSpecProp_RS/Property/AdditionalFees C, O A collection of additional fees. See Charge Profile Example. If property has charge profile defined, additional fees will be deducted from it.
Pull_ListSpecProp_RS/Property/AdditionalFees/AdditionalFee/Value Decimal(10,4) M The value of the additional fee. If discriminator of the percentage type is set, then a 15% fee value will be displayed as 0.15
Pull_ListSpecProp_RS/Property/AdditionalFees/AdditionalFee@KindID Integer M Additional fee kind. See ListAdditionalFeeKinds. DEPRECATED and left only for backwards compatibility
Pull_ListSpecProp_RS/Property/AdditionalFees/AdditionalFee@FeeTaxType Integer M Type of the tax/fee. See ListAdditionalFeeTypes
Pull_ListSpecProp_RS/Property/AdditionalFees/AdditionalFee@DiscriminatorID Integer M How the fee should be calculated (e.g. per night, per person, etc.) See ListAdditionalFeeDiscriminators
Pull_ListSpecProp_RS/Property/AdditionalFees/AdditionalFee@CollectTime Integer O When the fee should be collected (1 - upon booking, 2 - upon arrival). If not specified, default value is set to: 1- upon booking.
Pull_ListSpecProp_RS/Property/AdditionalFees/AdditionalFee@Optional Boolean M Is the fee obligatory or optional.
Pull_ListSpecProp_RS/Property/AdditionalFees/AdditionalFee@Name String(100) O Additional note for presentation purpose only.
Pull_ListSpecProp_RS/Property/AdditionalFees/AdditionalFee@Order Integer M Additional fee order. The order is important in case when the fees/taxes are cumulative.
Pull_ListSpecProp_RS/Property/ChargeProfiles C, O Collection of charge profiles. If the property has additional fees defined, the default charge profile will be deducted from them.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile M, X Collection of ApplicableAdditionalFee.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/@ID Integer O ID of the charge profile. Default 0.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/Value Decimal (10,4) O The value of the applicable additional fee. If a discriminator of percentage type is set, then a 15% fee value will be displayed as 0.15.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@FeeTaxType Integer M Type of the tax/fee. See ListAdditionalFeeTypes.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@DiscriminatorID Integer M How the fee should be calculated (e.g. per night, per person, etc.). See ListAdditionalFeeDiscriminators.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@CollectTime Integer O When the fee should be collected (1 - upon booking, 2 - upon arrival). If not specified, the default value is set to: 1 - upon booking.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@Optional Boolean O It specifies if the fee is obligatory or optional.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@Name String (200) M Fee name, used to identify fees in fee applications.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo C, O Container of line items for applicable additional fee. Only for percentage charges.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/FeeNames C, O Container of fee names that are line items for applicable additional fee. Optional if the charge applies to rent, otherwise at least one item needs to be provided.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/FeeName String (200) M Fee name which is line item for applicable additional fee.
Pull_ListSpecProp_RS/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/Rent Boolean O It defines if applicable additional fee applies to rent. The default value is false.
Pull_ListSpecProp_RS/Property/DateCreated String(10) M Property creation date (in the YYYY-MM-DD format).
Pull_ListSpecProp_RS/Property/LicenseNumber String(50) O Property’s license number. OBSOLETE, please use Pull_ListSpecProp_RS/Property/LicenceInfo/LicenceNumber
Pull_ListSpecProp_RS/Property/LicenceInfo O Information about various legislation issues, registration and tourist licence; might be required for some sales channels
Pull_ListSpecProp_RS/Property/LicenceInfo/IsExempt Boolean O Should be delivered as “true” if local law does not require licence number
Pull_ListSpecProp_RS/Property/LicenceInfo/LicenceNumber String(50) O Licence number issued by appropriate local authorities
Pull_ListSpecProp_RS/Property/LicenceInfo/IssueDate Date O Date the licence was issued
Pull_ListSpecProp_RS/Property/LicenceInfo/ExpirationDate Date O Date the licence is valid to
Pull_ListSpecProp_RS/Property/LicenceInfo/IsVATRegistered Boolean O Is the property not obliged to have any licence under the local law. Pass “true” to let us know you did not skip LicenceNumber field, but you really don’t have it.
Pull_ListSpecProp_RS/Property/LicenceInfo/ExemptionReason String O Reason the property does not need the license. Use if it’s any of the reasons below: AustraliaNewSouthWalesHotelMotel, AustraliaNewSouthWalesServicedApartment, AustraliaNewSouthWalesBackpackerAccomodation, AustraliaNewSouthWalesCampingGround, AustraliaNewSouthWalesEcotouristFacility, AustraliaNewSouthWalesMoveableDwelling, AustraliaNewSouthWalesOtherExemptAccommodation, AustraliaTasmaniaHomeSharing, AustraliaTasmaniaLandUse, AustraliaTasmaniaTraditionalHospitality, CanadaHotelOrMotel, CanadaEventSpace, CanadaLocationExempt, FranceBedBreakfast, FranceDependentRoom, FranceMobilityLease, GreeceBoat, GreeceLeasing, GreeceMtAthos, GreecePublicStateProperty, GreeceRightHabitation, GreeceTrailerMobileHome, HawaiiHonoluluHotelOrMotel, JapanHotelsAndInnsAct, JapanEconomicZoningAct, JapanEventMinpakuStay, NetherlandsCampgroung, NetherlandsHotelOrMotel, NetherlandsNonResidentialApartment, PortugalListingIsNotAFullBuilding, PortugalListingHasARegisteredUrbanLeaseContract, PendingApplication, SpainAndalusiaListingTypeNotIncluded, SpainAndalusiaNotATouristAccomodation, SpainCataloniaListingNotFullBuilding, SpainCataloniaListingIsSharedRoom, SpainCataloniaOtherExemptionReason, SpainLongTermRentalAttestation, USABedAndBreakfast, USAHotelOrMotel, USABostonHotelMotel, USABostonBedBreakfastLodging, USABostonInstitutionalBusiness, USABostonHospitals, USASantaMonicaLicensedHotelOrBb, SicilyInProgress, LongTermBookingsOnly, TransientOccupancy, OutsideBoundaries, USANewYorkClassB, USASanFranciscoCorporateProperty, HotelOrMotel, BedAndBreakfast, CyprusTouristicAccommodation
Pull_ListSpecProp_RS/Property/LicenceInfo/IsManagedByOwner Boolean O Is the rental managed by its owner – information required by Catalonian and Portugese law.
Pull_ListSpecProp_RS/Property/LicenceInfo/IsManagedByPrivatePerson Boolean O Is the rental managed by a private person or a company. For now needed for French properties pushed to booking.com.
Pull_ListSpecProp_RS/Property/LicenceInfo/LicenceType String O For countries that require specific declaration of licence type. Use one of the following values GreeceShortTermLeaseRegister, GreeceEOT, GreeceMAG, Pending, CanadaPrincipalResidenceEstablishment, CanadaYouthTouristAccommodationEstablishment, CanadaGeneralTouristAccommodationEstablishment, BedAndBreakfast, Hotel, HomeSharing, TransientOccupancyResidentialStructure, TouristicAccommodation
Pull_ListSpecProp_RS/Property/LicenceInfo/BrazilianLicenceInfo C, O The registration information required by Brazilian authorities
Pull_ListSpecProp_RS/Property/LicenceInfo/BrazilianLicenceInfo/CityHallInfoId String O The 8-digit ID for the city hall which issued the CNPJ or CPF number.
Pull_ListSpecProp_RS/Property/LicenceInfo/DenmarkLicenceInfo O Data required because of the new law in Denmark. Skip it for properties located outside Denmark.
Pull_ListSpecProp_RS/Property/LicenceInfo/DenmarkLicenceInfo/TypeOfProperty String O Type of property according do Danish law. Possible values: primary_residence, houseboat, tent, tree_house, hotel_or_hostel, serviced_apartment, trailer, mobile_home, summer_house.
Pull_ListSpecProp_RS/Property/LicenceInfo/JapaneseLicenceInfo C, O Licencing data required by Japanese law. Please contact us for details
Pull_ListSpecProp_RS/Property/LicenceInfo/FrenchLicenceInfo O Data required because of the new law in France effective from January 2019. Skip it for properties located outside France. Please check validity of the provided data in UI.
Pull_ListSpecProp_RS/Property/LicenceInfo/FrenchLicenceInfo/IsRegisteredAtTradeCommercialRegister Boolean M Is registered as a professional at the trade commercial register (Registre du Commerce et des Sociétés)
Pull_ListSpecProp_RS/Property/LicenceInfo/FrenchLicenceInfo/PropertyTypeForTaxPurposes String O Type of property in terms of French law to determine proper City Tax Category. Needed in some regions of France. Possible values: FurnishedTourism, TouristHotel, OutdoorAccommodations, HolidayVillage, TouristResidence, Bnb, CarsiteParkingLot, Marinas, Palaces
Pull_ListSpecProp_RS/Property/LicenceInfo/FrenchLicenceInfo/DeclaresRevenuesAsProfessionalForDirectTaxPurposes Boolean M Does the owner declare revenues as professional for direct tax purposes (see article 155 IV du CGI)
Pull_ListSpecProp_RS/Property/LicenceInfo/FrenchLicenceInfo/TypeOfResidence Integer M Type of residence according to the French law. Possible values: 1-3, 1 – Primary, 2 – Secondary, 3 - Other
Pull_ListSpecProp_RS/Property/LicenceInfo/FrenchLicenceInfo/CityTaxCategory Integer M You only need to specify it if all three out of DeclaresRevenuesAsProfessionalForDirectTaxPurposes, IsRegisteredAtTradeCommercialRegister and IsVATRegistered are "false". Possible values: 11-19; 11 - palaces; 12 - 5 star tourist hotels, 5 star tourist residences, 5 star furnished tourism; 13 - 4 star tourist hotels, 4 star tourist residences, 4 star furnished tourist accommodation; 14 - 3 star tourist hotels, 3 star tourist residences, 3 star furnished tourist accommodation; 15 - 2-star tourist hotels, 2-star tourist residences, 2-star furnished holiday homes, 4 and 5-star holiday villages; 16 - 1-star tourist hotels, 1-star tourist residences, 1-star furnished holiday homes, 1,2 and 3-star holiday villages, bed and breakfasts, RV parks and tourist parking lots for each 24 hours; 17 - Campgrounds and caravan parks classified in 3,4 and 5 stars; 18 - Campsites and caravan parks classified in 1 and 2 stars, marinas; 19 - Accommodations awaiting classification or without classification
Pull_ListSpecProp_RS/Property/LicenceInfo/HungarianLicenceInfo String C, O Licencing data required by Hungarian law.
Pull_ListSpecProp_RS/Property/LicenceInfo/HungarianLicenceInfo/PropertyType String O Allowed values are: hotel, pension, campsite, holiday_cottage_resort, community_accommodation, private_accommodation, private_accommodation_rural, other_accommodation, other_accommodation_rural
Pull_ListSpecProp_RS/Property/LicenceInfo/TasmanianLicenceInfo C, O Data required because of the law in Tasmania. Skip it for properties located outside Tasmania.
Pull_ListSpecProp_RS/Property/LicenceInfo/TasmanianLicenceInfo/TypeOfResidence String(50) O "Primary" or "NonPrimary"
Pull_ListSpecProp_RS/Property/LicenceInfo/HawaiiLicenceInfo C, O Data required because of the law in Hawaii. Skip it for properties located outside Hawaii.
Pull_ListSpecProp_RS/Property/LicenceInfo/HawaiiLicenceInfo/LandParcelIdentificationNumber String O Parcel Number (Tax Map Key)
Pull_ListSpecProp_RS/Property/LicenceInfo/HawaiiLicenceInfo/GeneralExciseTaxID String O General Excise Tax ID
Pull_ListSpecProp_RS/Property/LicenceInfo/HawaiiLicenceInfo/TransientAccomodationsTaxNumber String O Transient Accommodations Tax license number
Pull_ListSpecProp_RS/Property/LicenceInfo/HawaiiLicenceInfo/PropertyUnitNumber String O Property’s Unit Number. You are required to add the unit number for the property field if- (1) your property is located in an apartment building, multifamily dwelling, cooperative, or other development with more than one dwelling unit per zoning lot(multi-unit development) and (2) the last four digits of the property’s TMK number does not correspond to the property’s unit number.
Pull_ListSpecProp_RS/Property/LicenceInfo/UKLicenceInfo O Data required because of the new law in United Kingdom. Skip it for properties located outside United Kingdom.
Pull_ListSpecProp_RS/Property/LicenceInfo/UKLicenceInfo/IsLondonCityNightCapConsented Boolean O Specifies if there is a consent to the Airbnb's attestation about a cap on the number of nights in London City.
Pull_ListSpecProp_RS/Property/LicenceInfo/UKLicenceInfo/EnergyRating String O Accepted values: A,B,C,D,E,F,G
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo O Data required because of the law in USA. Skip it for properties located outside of the USA.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/PropertyIsLicencedHotel Boolean O Is property a licenced hotel.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/BusinessLicenceNumber String(50) O Business licence number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/OperatorPermitNumber String(50) O Operator permit number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/OperatorPermitNumberExpirationDate Date O Expiration date of the operator permit number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/TDTNumber String(50) O Tourist Development Tax number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber String(50) O There are two types of licences possible to provide in Washington DC. Depending on its type, you should provide different information.
-If you have an Unhosted (VR) licence only, provide it in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber
-If you have a Hosted (STR) licence only:
1. Provide Hosted (STR) licence number in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber
2.Provide the same Hosted (STR) licence number again in Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber.
-If you have both Unhosted (VR) and Hosted (STR) licences:
1. Provide Unhosted (VR) licence number in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber
2. Provide Hosted (STR) licence number in Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/TLTLicenceNumber String(50) O Transient lodging tax licence number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/PortlandApplicationType String(50) O Portland application type. Possible values: TypeA - You’ll need a Type A permit if you host 1-2 bedrooms in your space. It costs $65-$105 and can take up to 120 days to obtain from the city, TypeB - You’ll need a Type B permit if you host 3-5 bedrooms in your space. It costs $5,800 and can take up to a year to obtain from the city.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/MassachusettsTaxCollectionType String O Tax collection type in Massachusetts. Possible values: Type1 - Your listing is one of multiple that you host in the same city, and it’s not located in a single, two, or three-family dwelling that includes your primary residence, Type2 - Your listing is located in a two or three-family dwelling that includes your primary residence.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/BostonShortTermRentalLicenceNumber String(50) O Boston STR licence number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/LosAngelesExtendHomeSharingApproval Boolean O Has property extended sharing approval.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/LAFirstName String O First name.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/LALastName String O Last name.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/LAUnitNumber String O Unit number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/LAStreetNumber String O Street number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/LAStreetName String O Street name.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/LAZipCode String O Zip code.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/MiamiBeachBusinessTaxReceipt String O The Business Tax Receipt number.
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYBorough String O New York Borough used in Booking.com. Possible values: Queens, Manhattan, TheBronx, StatenIsland, Brooklyn
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderName String O Licence holder name used in License_holder_details licecning information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderLastName String O Licence holder last name name used in License_holder_details licecning information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderStreetNumber String O Licence holder street number used in License_holder_details licecning information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderStreetName String O Licence holder street name used in License_holder_details licecning information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYClassBAddressNumber String O Address number used in Class B icecning information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYClassBStreetName String O Street name used in Class B icecning information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYClassBZipCode String O Zip Code used in Class B icecning information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/SanDiegoBTRNumber String O San Diego BTR Number
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/SanDiegoTier Integer O San Diego licence tier number (1-4)
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/WashingtonClassification String O Washington DC license classification. Possible values: ShortTermRental, ShortTermRentalVacationRental, LodgingBusinessLicense
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/CertificateOfUse String O Certificate of use number
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/PropertyType String O Possible values: primary, secondary
Pull_ListSpecProp_RS/Property/LicenceInfo/ScottishLicenceInfo C, O DEPRECATED. Data required because of the law in Scotland. Skip it for properties located outside of Scotland.
Pull_ListSpecProp_RS/Property/LicenceInfo/ScottishLicenceInfo/ScotlandEnergyRating String O DEPRECATED.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo O Data required because of the law in Spain. Skip it for properties located outside of Spain.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/IsApplicableTaxDegree Boolean O Information if tax degree is applicable or not.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/Block String(50) O Block information.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/ComplementaryInfo String(50) O Complementary information.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/Door String(50) O Door information.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/Floor String(50) O Floor information.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/Gate String(50) O Gate information.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/HouseNumber String(50) O House number.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/MunicipalCode String(50) O Municipal code.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/NumberType String O Type of number. Possible values: Number, Kilometer, WithoutNumber, Other.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/NumberQualifier String(50) O Number qualifier.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/Staircase String(50) O Staircase information.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/StreetName String(50) O Street name.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/StreetType String(50) O Type of street.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/ProvinceCode String O Province code. Possible values: ArabaAlava, Albacete, AlicanteAlacant, Almeria, Avila, Badajoz, IllesBalears, Barcelona, Burgos, Caceres, Cadiz, CastellonCastello, CiudadReal, Cordoba, Coruna, Cuenca, Girona, Granada, Guadalajara, GuipuzcoaGuipuzkoa, Huelva, Huesca, Jaen, Leon, Lleida, Rioja, Lugo, Madrid, Malaga, Murcia, Navarra, Ourense, Asturias, Palencia, Palmas, Pontevedra, Salamanca, Sctenerife, Cantabria, Segovia, Sevilla, Soria, Tarragona, Teruel, Toledo, Valencia, Valladolid, VizcayaBizkaia, Zamora, Zaragoza
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/CadastralNumber String(50) O Cadastral number.
Pull_ListSpecProp_RS/Property/LicenceInfo/SpainLicenceInfo/CadastralType String(50) O Type of cadastral. Possible values: Spain, PaisVasco, Navarra, NoCadastralReference.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos C, O List of Owners' licence Infos.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo C, O Owner's licence info.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerEmail String(50) O Owner's email adress.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerMailingAddress String(50) O Owner's mailing address.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerName String(50) O Owner's name.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerPhone String(50) O Owner's phone number.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerCitizenship String(2000) O Owner's citizenship. See Pull_ListCitizenships_RQ.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/DoesOwnerHasSpanishIdentificationNumber Boolean O Does owner have Spanish identification number?
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerSpanishIdentificationNumber String(50) O Owner's Spanish identification number. Provided if owner has Spanish identification number.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationType String O Owner's identification type. Provided if owner doesn't have spanish identification number. Possible values: IdVat, Passport, IdCard, ResidenceCertificate, AnotherProbatoryDocument, NotRegistered, PersonalPublicServiceNumber.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/NonSpanishIdentificationNumber String(50) O DEPRECATED. Use IdentificationNumber.
Pull_ListSpecProp_RS/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationNumber String(50) O Owner's identification number.
Pull_ListSpecProp_RS/Property/LicenceInfo/BusinessTaxLicenceInfo C, O Business Tax licence info.
Pull_ListSpecProp_RS/Property/LicenceInfo/BusinessTaxLicenceInfo/BusinessTaxID String(50) O Business Tax ID.
Pull_ListSpecProp_RS/Property/LicenceInfo/BusinessTaxLicenceInfo/BusinessTaxIDNotSpecified Boolean O Information if Business Tax ID is provided or not.
Pull_ListSpecProp_RS/Property/LicenceInfo/TOTRegistrationLicenceInfo C, O Transient Occupancy Tax Registration licence info.
Pull_ListSpecProp_RS/Property/LicenceInfo/TOTRegistrationLicenceInfo/TOTRegistrationID String(50) O Transient Occupancy Tax Registration ID.
Pull_ListSpecProp_RS/Property/LicenceInfo/TOTRegistrationLicenceInfo/TOTRegistrationIDNotSpecified Boolean O Information if Transient Occupancy Tax Registration ID is provided or not.
Pull_ListSpecProp_RS/Property/PreparationTimeBeforeArrival Integer O Number of nights blocked for preparation time before arrival
Pull_ListSpecProp_RS/Property/PreparationTimeBeforeArrivalInHours Integer O Number of hours blocked for preparation time before arrival
Pull_ListSpecProp_RS/Property/NumberOfStars Integer O Star rating of the property (1-5)

List buildings

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Building;

Pull_ListBuildings_RQ request = new Pull_ListBuildings_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListBuildings_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListBuildings_RS response = XmlTools.DeserializeObject<Pull_ListBuildings_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of buildings with properties assigned.

Request

XML Request

<Pull_ListBuildings_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListBuildings_RQ>
XML Path Data Type Type Description
Pull_ListBuildings_RQ C Root element
Pull_ListBuildings_RQ/Authentication C, M Authentication details
Pull_ListBuildings_RQ/Authentication/UserName String(50) M Username
Pull_ListBuildings_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListBuildings_RS>
    <Status ID="0">Success</Status>
    <ResponseID>1da026c48d3b4f1295b1d51d32bfe424</ResponseID>
    <Buildings>
        <Building BuildingID="11231" BuildingName="Palamowa 15F">
            <PropertyID>2544642</PropertyID>
        </Building>
    </Buildings>
</Pull_ListBuildings_RS>
XML Path Data Type Type Description
Pull_ListBuildings_RS C Root element
Pull_ListBuildings_RS/Status String(100) M See ListStatuses
Pull_ListBuildings_RS/Status@ID Integer M See ListStatuses
Pull_ListBuildings_RS/ResponseID String(32) M Unique response ID
Pull_ListBuildings_RS/Buildings C A collection of buildings
Pull_ListBuildings_RS/Buildings/Building O A single building
Pull_ListBuildings_RS/Buildings/Building@BuildingID Integer M Unique building ID
Pull_ListBuildings_RS/Buildings/Building@BuildingName String(50) M Building name
Pull_ListBuildings_RS/Buildings/Building/Properties/PropertyID Integer O A collection of property IDs assigned located in the building

List all owners

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;

Pull_ListAllOwners_RQ request = new Pull_ListAllOwners_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListAllOwners_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListAllOwners_RS response = XmlTools.DeserializeObject<Pull_ListAllOwners_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of property owners available on your account. Owner represents contact information for a property.

Request

XML Request

<Pull_ListAllOwners_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListAllOwners_RQ>
XML Path Data Type Type Description
Pull_ListAllOwners_RQ C Root element
Pull_ListAllOwners_RQ/Authentication C, M Authentication details
Pull_ListAllOwners_RQ/Authentication/UserName String(50) M Username
Pull_ListAllOwners_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListAllOwners_RS>
    <Status ID="0">Success</Status>
    <ResponseID>b8057c27e2a84447b6d94fa60a2a533f</ResponseID>
    <Owners>
        <Owner OwnerID="553968">
            <FirstName>John</FirstName>
            <SurName>Smith</SurName>
            <Email>john.smith@domain.com</Email>
            <Phone>+48 22 000 00 00</Phone>
              <User>
                <UserName>john.smith@domain.com</UserName>
              </User>
            <UserAccountId>2012</UserAccountId>
        </Owner>
    </Owners>
</Pull_ListAllOwners_RS>
XML Path Data Type Type Description
Pull_ListAllOwners_RS C Root element
Pull_ListAllOwners_RS/Status String(100) M See ListStatuses
Pull_ListAllOwners_RS/Status@ID Integer M See ListStatuses
Pull_ListAllOwners_RS/ResponseID String(32) M Unique response ID
Pull_ListAllOwners_RS/Owners C, O A collection of owners
Pull_ListAllOwners_RS/Owners/Owner C, O Single owner
Pull_ListAllOwners_RS/Owners/Owner@OwnerID Integer M Unique owner ID
Pull_ListAllOwners_RS/Owners/Owner/FirstName String(20) M Owner's first name
Pull_ListAllOwners_RS/Owners/Owner/SurName String(30) M Owner's surname
Pull_ListAllOwners_RS/Owners/Owner/Email String(100) M Owner's email address
Pull_ListAllOwners_RS/Owners/Owner/Phone String (20) M Owner's phone number (with the country code)
Pull_ListAllOwners_RS/Owners/Owner/User C, O User details
Pull_ListAllOwners_RS/Owners/Owner/User/UserName String(100) M Owner's Rentals United username
Pull_ListAllOwners_RS/Owners/Owner/UserAccountId Integer M Owner's PMS Account ID (0 will be returned if the user is not connected to any PMS), it should be used in Push_PutProperty_RQ

Get owner details

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;

Pull_GetOwnerDetails_RQ request = new Pull_GetOwnerDetails_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    OwnerID = 1
};

string xmlBody = XmlTools.SerializeObject<Pull_GetOwnerDetails_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetOwnerDetails_RS response = XmlTools.DeserializeObject<Pull_GetOwnerDetails_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns detailed contact information of a specific property owner.

Request

XML Request

<Pull_GetOwnerDetails_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <OwnerID>553968</OwnerID>
</Pull_GetOwnerDetails_RQ>
XML Path Data Type Type Description
Pull_GetOwnerDetails_RQ C Root element
Pull_GetOwnerDetails_RQ/Authentication C, M Authentication details
Pull_GetOwnerDetails_RQ/Authentication/UserName String(50) M Username
Pull_GetOwnerDetails_RQ/Authentication/Password String(50) M Password
Pull_GetOwnerDetails_RQ/OwnerID Integer M Unique owner ID

Response

XML Response

<Pull_GetOwnerDetails_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Owner OwnerID="553968">
        <FirstName>John</FirstName>
        <SurName>Smith</SurName>
        <ScreenName>John S.</ScreenName>
        <Email>john.smith@domain.com</Email>
        <Phone>+48 22 000 00 00</Phone>
        <User>
          <UserName>john.smith@domain.com</UserName>
        </User>
        <UserAccountId>2012</UserAccountId>
    </Owner>
</Pull_GetOwnerDetails_RS>
XML Path Data Type Type Description
Pull_GetOwnerDetails_RS C Root element
Pull_GetOwnerDetails_RS/Status String(100) M See ListStatuses
Pull_GetOwnerDetails_RS/Status@ID Integer M See ListStatuses
Pull_GetOwnerDetails_RS/ResponseID String(32) M Unique response ID
Pull_GetOwnerDetails_RS/Owner C, O The details of the owner
Pull_GetOwnerDetails_RS/Owner@OwnerID Integer M Unique owner ID
Pull_GetOwnerDetails_RS/Owner/FirstName String(20) M Owner's first name
Pull_GetOwnerDetails_RS/Owner/SurName String(30) M Owner's surname
Pull_GetOwnerDetails_RS/Owner/CompanyName String (100) M Owner's company name.
Pull_GetOwnerDetails_RS/Owner/ScreenName String (100) O Owner's screen name
Pull_GetOwnerDetails_RS/Owner/Email String(100) M Owner's email address
Pull_GetOwnerDetails_RS/Owner/Phone String (20) M Owner's phone number (with the country code)
Pull_GetOwnerDetails_RS/Owner/User C, O User details
Pull_GetOwnerDetails_RS/Owner/UserName String(100) M Owner's Rentals United username
Pull_GetOwnerDetails_RS/Owner/UserAccountID Integer M Owner's PMS Account ID (0 will be returned if the user is not connected to any PMS), it should be used in Push_PutProperty_RQ

List owner agents

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;

Pull_GetAgents_RQ request = new Pull_GetAgents_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_GetAgents_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetAgents_RS response = XmlTools.DeserializeObject<Pull_GetAgents_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of all available Sales Channels.

If you are a PMS, use this method to identify a reservation creator within reservations retrieval API methods.

Request

XML Request

<Pull_GetAgents_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_GetAgents_RQ>
XML Path Data Type Type Description
Pull_GetAgents_RQ C Root element
Pull_GetAgents_RQ/Authentication C, M Authentication details
Pull_GetAgents_RQ/Authentication/UserName String(50) M Username
Pull_GetAgents_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_GetAgents_RS>
    <Status ID="0">Success</Status>
    <ResponseID>5304842c268f4f318528c9f97bc2c264</ResponseID>
    <Owner OwnerID="553968">
          <FirstName>John</FirstName>
          <SurName>Smith</SurName>
          <Email> john.smith@domain.com </Email>
          <Phone>+48 22 000 00 00</Phone>
            <User>
              <UserName>john.smith@domain.com</UserName>
            </User>
        <UserAccountId>2012</UserAccountId>
    </Owner>
    <Agents>
        <Agent>
            <AgentID>420853</AgentID>
            <UserName>ha@ha.ha</UserName>
            <CompanyName>HomeAway</CompanyName>
            <FirstName>HomeAway</FirstName>
            <SurName>HomeAway</SurName>
            <Emial>ha@ha.ha</Emial>
            <Email>ha@ha.ha</Email>
            <Telephone>+</Telephone>
        </Agent>
        <Agent>
            <AgentID>421327</AgentID>
            <UserName>bookingcom@rentalsunited.com</UserName>
            <CompanyName>Booking.com</CompanyName>
            <FirstName>Booking.com</FirstName>
            <SurName />
            <Emial>customer.service@booking.com</Emial>
            <Email>customer.service@booking.com</Email>
            <Telephone />
        </Agent>
        <Agent>
            <AgentID>421402</AgentID>
            <UserName>expedia@rentalsunited.com</UserName>
            <CompanyName>Expedia, Inc. </CompanyName>
            <FirstName>Expedia</FirstName>
            <SurName />
            <Emial />
            <Email />
            <Telephone />
        </Agent>
        <Agent>
            <AgentID>421423</AgentID>
            <UserName>agoda@rentalsunited.com</UserName>
            <CompanyName>Agoda Company Pte. Ltd</CompanyName>
            <FirstName>Agoda</FirstName>
            <SurName />
            <Emial />
            <Email />
            <Telephone />
        </Agent>
        <Agent>
            <AgentID>423608</AgentID>
            <UserName>jason@travelstaytion.com</UserName>
            <CompanyName>Staytion LTD</CompanyName>
            <FirstName>TravelStaytion</FirstName>
            <SurName>.com</SurName>
            <Emial>partners@travelstaytion.com</Emial>
            <Email>partners@travelstaytion.com</Email>
            <Telephone>+</Telephone>
        </Agent>
        <Agent>
            <AgentID>423784</AgentID>
            <UserName>hello@misterbnb.com</UserName>
            <CompanyName>misterb&amp;b</CompanyName>
            <FirstName>mister</FirstName>
            <SurName>b&amp;b</SurName>
            <Emial>rentalsunited@misterbandb.com</Emial>
            <Email>rentalsunited@misterbandb.com</Email>
            <Telephone>+33 6 20 91 41 47</Telephone>
        </Agent>
        <Agent>
            <AgentID>424037</AgentID>
            <UserName>rentalsunited@tripvillas.com</UserName>
            <CompanyName>Tripvillas India Pvt. Ltd.</CompanyName>
            <FirstName>Tripvillas</FirstName>
            <SurName>unknown</SurName>
            <Emial>rentalsunited@tripvillas.com</Emial>
            <Email>rentalsunited@tripvillas.com</Email>
            <Telephone />
        </Agent>
        <Agent>
            <AgentID>425566</AgentID>
            <UserName>taraneh.najafi@holidu.com</UserName>
            <CompanyName />
            <FirstName>Taraneh</FirstName>
            <SurName>Najafi</SurName>
            <Emial>taraneh.najafi@holidu.com</Emial>
            <Email>taraneh.najafi@holidu.com</Email>
            <Telephone />
        </Agent>
        <Agent>
            <AgentID>426592</AgentID>
            <UserName>airbnb@rentalsunited.com</UserName>
            <CompanyName>Airbnb</CompanyName>
            <FirstName>Air</FirstName>
            <SurName>Bnb</SurName>
            <Emial>log@rentalsunited.com</Emial>
            <Email>log@rentalsunited.com</Email>
            <Telephone>+1</Telephone>
        </Agent>
        <Agent>
            <AgentID>426699</AgentID>
            <UserName>ctrip@rentalsunited.com</UserName>
            <CompanyName>Ctrip</CompanyName>
            <FirstName>Ctrip</FirstName>
            <SurName>Ctrip</SurName>
            <Emial>ctrip@rentalsunited.com</Emial>
            <Email>ctrip@rentalsunited.com</Email>
            <Telephone>+</Telephone>
        </Agent>
        <Agent>
            <AgentID>556556</AgentID>
            <UserName>info@altovita.com</UserName>
            <CompanyName>Altovita</CompanyName>
            <FirstName>Karolina</FirstName>
            <SurName>Saviova</SurName>
            <Emial>info@altovita.com</Emial>
            <Email>info@altovita.com</Email>
            <Telephone>+420 727 876 152</Telephone>
        </Agent>
        ...
    </Agents>
</Pull_GetAgents_RS>

XML Path Data Type Type Description
Pull_GetAgents_RS C Root element
Pull_GetAgents_RS/Status String(100) M See ListStatuses
Pull_GetAgents_RS/Status@ID Integer M See ListStatuses
Pull_GetAgents_RS/ResponseID String(32) M Unique response ID
Pull_GetAgents_RS/Owner C, O The details of the owner
Pull_GetAgents_RS/Owner@OwnerID Integer M Unique owner ID
Pull_GetAgents_RS/Owner/FirstName String(20) M Owner's first name
Pull_GetAgents_RS/Owner/SurName String(30) M Owner's surname
Pull_GetAgents_RS/Owner/CompanyName String (100) M Owner's company name.
Pull_GetAgents_RS/Owner/ScreenName String (100) O Owner's screen name
Pull_GetAgents_RS/Owner/Email String(100) M Owner's email address
Pull_GetAgents_RS/Owner/Phone String (20) M Owner's phone number (with the country code)
Pull_GetAgents_RS/Owner/User C, O User details
Pull_GetAgents_RS/Owner/UserName String(100) M Owner's Rentals United username
Pull_GetAgents_RS/Owner/UserAccountID Integer M Owner's PMS Account ID (0 will be returned if the user is not connected to any PMS), it should be used in Push_PutProperty_RQ
Pull_GetAgents_RS/Agents C, O Collection of agents
Pull_GetAgents_RS/Agents/Agent C, O The details of the agent
Pull_GetAgents_RS/Agents/Agent/AgentID Integer M Agent's unique ID
Pull_GetAgents_RS/Agents/Agent/UserName String(50) M The agent's Rentals United username
Pull_GetAgents_RS/Agents/Agent/CompanyName String(100) M Name of the agent's company.
Pull_GetAgents_RS/Agents/Agent/FirstName String(20) M The agent's contact person name.
Pull_GetAgents_RS/Agents/Agent/SurName String(30) M The agent's contact person surname.
Pull_GetAgents_RS/Agents/Agent/Email String(100) M The agent's email address
Pull_GetAgents_RS/Agents/Agent/Telephone String(20) M The agent's phone number

List property external listing

using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyExternalListing;

Pull_GetPropertyExternalListing_RQ request = new Pull_GetPropertyExternalListing_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Properties = new List<int>() {
        0,
        1
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_GetPropertyExternalListing_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetPropertyExternalListing_RS response = XmlTools.DeserializeObject<Pull_GetPropertyExternalListing_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of properties and their status on the connected Sales Channels.

Request

XML Request

<Pull_GetPropertyExternalListing_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <Properties>
   <PropertyID>0</PropertyID>
   <PropertyID>1</PropertyID>
 </Properties>
</Pull_GetPropertyExternalListing_RQ>
XML Path Data Type Type Description
Pull_GetPropertyExternalListing_RQ C Root element
Pull_GetPropertyExternalListing_RQ/Authentication C, M Authentication details
Pull_GetPropertyExternalListing_RQ/Authentication/UserName String(50) M Username
Pull_GetPropertyExternalListing_RQ/Authentication/Password String(50) M Password
Pull_GetPropertyExternalListing_RQ/Properties C A collection of properties
Pull_GetPropertyExternalListing_RQ/Properties/PropertyID Integer M Unique property ID

Response

XML Response

<Pull_GetPropertyExternalListing_RS>
 <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
 <Properties>
   <Property ID="0">
     <ExternalListing>
       <Url>http://someAgency.com/apartment0</Url>
       <Status>2</Status>
       <Description>Property cannot be listed, living space is missing</Description>
     </ExternalListing>
     <ExternalListing>
       <Url>http://someAgency.com/apartment1</Url>
       <Status>1</Status>
       <Description>We need more photos</Description>
     </ExternalListing>
   </Property>
   <Property ID="1">
     <ExternalListing>
       <Url>http://someAgency.com/apartment2</Url>
       <Status>1</Status>
       <Description>Some description</Description>
     </ExternalListing>
   </Property>
 </Properties>
 <Notifs />
</Pull_GetPropertyExternalListing_RS>
XML Path Data Type Type Description
Pull_GetPropertyExternalListing_RS C Root element
Pull_GetPropertyExternalListing_RS/Status String(100) M See ListStatuses
Pull_GetPropertyExternalListing_RS/Status@ID Integer M See ListStatuses
Pull_GetLocationDetails_RS/ResponseID String(32) M Unique response ID
Pull_GetLocationDetails_RS/Properties C A collection of properties
Pull_GetPropertyExternalListing_RS/Properties/Property O A single property
Pull_GetPropertyExternalListing_RS/Properties/Property@ID Integer M Unique property ID
Pull_GetPropertyExternalListing_RS/Properties/Property/ExternalListing C A collection of property listings
Pull_GetPropertyExternalListing_RS/Properties/Property/ExternalListing/Url String(300) M Url to an external service
Pull_GetPropertyExternalListing_RS/Properties/Property/ExternalListing/Status Integer M External listing status, See ListPropertyExternalStatuses
Pull_GetPropertyExternalListing_RS/Properties/Property/ExternalListing/Description String(500) M Additional information from the Sales Channel/Agent
Pull_GetPropertyExternalListing_RS/Notifs C, O A collection of notifications
Pull_GetPropertyExternalListing_RS/Notif String(100) M A detailed information about the problem

Pull methods - Availability and prices

This section describes API methods that allow you to pull dynamic property data like availability calendar, minimum stays, rates, discounts

List properties blocks

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyBlock;

Pull_ListPropertiesBlocks_RQ request = new Pull_ListPropertiesBlocks_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    LocationID = 500,
    DateFrom = new DateTime(2014, 1, 4),
    DateTo = new DateTime(2014, 1, 9),
    IncludeNLA = false
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertiesBlocks_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertiesBlocks_RS response = XmlTools.DeserializeObject<Pull_ListPropertiesBlocks_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns blocked (unavailable) periods in properties' availability calendars. For multiunit type properties, availability is blocked when 0 units are available.

Request

<Pull_ListPropertiesBlocks_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <LocationID>500</LocationID>
  <DateFrom>2014-01-04</DateFrom>
  <DateTo>2014-01-09</DateTo>
  <IncludeNLA>false</IncludeNLA>
</Pull_ListPropertiesBlocks_RQ>
XML Path Data Type Type Description
Pull_ListPropertiesBlocks_RQ C Root element
Pull_ListPropertiesBlocks_RQ/Authentication C, M Authentication details
Pull_ListPropertiesBlocks_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertiesBlocks_RQ/Authentication/Password String(50) M Password
Pull_ListPropertiesBlocks_RQ/LocationID Integer M Location ID of LocationTypeID="4". See ListLocations
Pull_ListPropertiesBlocks_RQ/DateFrom String(10) M Start of the range(YYYY-MM-DD format)
Pull_ListPropertiesBlocks_RQ/DateTo String(10) M End of the range (blocks starting on this date will not be returned)(YYYY-MM-DD format)
Pull_ListPropertiesBlocks_RQ/IncludeNLA Boolean O False/0 will filter out no longer available properties from the XML Response. Default is True/1.

Response

<Pull_ListPropertiesBlocks_RS>
  <Status ID="0">Success</Status>
  <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
  <Properties>
      <PropertyBlock PropertyID="1">
          <Block>
              <DateFrom>2012-03-02</DateFrom>
              <DateTo>2012-03-09</DateTo>
          </Block>
          <Block>
              <DateFrom>2012-03-20</DateFrom>
              <DateTo>2012-03-30</DateTo>
          </Block>
      </PropertyBlock>
      <PropertyBlock PropertyID="2">
          <Block>
              <DateFrom>2012-03-05</DateFrom>
              <DateTo>2012-03-08</DateTo>
          </Block>
          <Block>
              <DateFrom>2012-03-12</DateFrom>
              <DateTo>2012-03-18</DateTo>
          </Block>
      </PropertyBlock>
  </Properties>
</Pull_ListPropertiesBlocks_RS>
XML Path Data Type Type Description
Pull_ListPropertiesBlocks_RS C Root element
Pull_ListPropertiesBlocks_RS/Status String(100) M See ListStatuses
Pull_ListPropertiesBlocks_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertiesBlocks_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertiesBlocks_RS/Properties C A collection of properties
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock C, O Single property
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock@PropertyID Integer M Unique property ID
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock/Block C, M Single block
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock/Block/DateFrom String(10) M Start of the block(YYYY-MM-DD format)
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock/Block/DateTo String(10) M End of the block(YYYY-MM-DD format)

List property availability calendar

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyAvailabilityCalendar;

Pull_ListPropertyAvailabilityCalendar_RQ request = new Pull_ListPropertyAvailabilityCalendar_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1,
    DateFrom = new DateTime(2014, 1, 4),
    DateTo = new DateTime(2014, 1, 9)
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyAvailabilityCalendar_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertyAvailabilityCalendar_RS response = XmlTools.DeserializeObject<Pull_ListPropertyAvailabilityCalendar_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns night-by-night calendar including number of available units, minimum stay and changeover day settings.

Request

<Pull_ListPropertyAvailabilityCalendar_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <PropertyID>1</PropertyID>
  <DateFrom>2014-01-04</DateFrom>
  <DateTo>2014-01-09</DateTo>
</Pull_ListPropertyAvailabilityCalendar_RQ>
XML Path Data Type Type Description
Pull_ListPropertyAvailabilityCalendar_RQ C Root element
Pull_ListPropertyAvailabilityCalendar_RQ/Authentication C, M Authentication details
Pull_ListPropertyAvailabilityCalendar_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertyAvailabilityCalendar_RQ/Authentication/Password String(50) M Password
Pull_ListPropertyAvailabilityCalendar_RQ/PropertyID Integer M Unique property ID
Pull_ListPropertyAvailabilityCalendar_RQ/DateFrom String(10) M Start of the range(YYYY-MM-DD format)
Pull_ListPropertyAvailabilityCalendar_RQ/DateTo String(10) M End of the range (the last date to be included in the response)(YYYY-MM-DD format)

Response

<Pull_ListPropertyAvailabilityCalendar_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <PropertyCalendar PropertyID="1">
        <CalDay Date="2012-03-01">
            <IsBlocked>true</IsBlocked>
            <MinStay>2</MinStay>
            <Changeover>1</Changeover>
        </CalDay>
        <CalDay Date="2012-03-02">
            <IsBlocked>false</IsBlocked>
            <MinStay>3</MinStay>
            <Changeover>1</Changeover>
        </CalDay>
        <CalDay Date="2012-03-04">
            <IsBlocked>false</IsBlocked>
            <Changeover>4</Changeover>
        </CalDay>
        <CalDay Date="2012-03-05">
            <IsBlocked>false</IsBlocked>
            <Changeover>4</Changeover>
        </CalDay>
        <CalDay Date="2012-04-01">
            <IsBlocked>false</IsBlocked>
            <Changeover>3</Changeover>
        </CalDay>
    </PropertyCalendar>
</Pull_ListPropertyAvailabilityCalendar_RS>
XML Path Data Type Type Description
Pull_ListPropertyAvailabilityCalendar_RS C Root element
Pull_ListPropertyAvailabilityCalendar_RS/Status String(100) M See ListStatuses
Pull_ListPropertyAvailabilityCalendar_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyAvailabilityCalendar_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar C, O Single property
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar@PropertyID Integer M Unique property ID
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay C Represents a single day
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay@Date String(10) M Date(YYYY-MM-DD format)
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay@Units Integer M Number of units available
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay@Reservations Integer M Number of confirmed reservations
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay/IsBlocked Boolean M Returns whether the property is unavailable for that day. If True/1, the property is not available.
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay/MinStay Integer O Minimum length of stay for that day
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay/Changeover Integer M Changeover for that day

List property min stay

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyMinStay;

Pull_ListPropertyMinStay_RQ request = new Pull_ListPropertyMinStay_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1,
    DateFrom = new DateTime(2014, 1, 4),
    DateTo = new DateTime(2014, 1, 9)
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyMinStay_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertyMinStay_RS response = XmlTools.DeserializeObject<Pull_ListPropertyMinStay_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns properties' minimum stay settings in a date periods manner.

Request

<Pull_ListPropertyMinStay_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>1</PropertyID>
    <DateFrom>2014-01-04</DateFrom>
    <DateTo>2014-01-09</DateTo>
</Pull_ListPropertyMinStay_RQ>
XML Path Data Type Type Description
Pull_ListPropertyMinStay_RQ C Root element
Pull_ListPropertyMinStay_RQ/Authentication C, M Authentication details
Pull_ListPropertyMinStay_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertyMinStay_RQ/Authentication/Password String(50) M Password
Pull_ListPropertyMinStay_RQ/PropertyID Integer M Unique property ID
Pull_ListPropertyMinStay_RQ/DateFrom String(10) M Start of the range(YYYY-MM-DD format)
Pull_ListPropertyMinStay_RQ/DateTo String(10) M End of the range(YYYY-MM-DD format)

Response

<Pull_ListPropertyMinStay_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <PropertyMinStay PropertyID="1">
        <MinStay DateFrom="2012-03-04" DateTo="2012-03-20">2</MinStay>
        <MinStay DateFrom="2012-03-22" DateTo="2012-03-28">3</MinStay>
    </PropertyMinStay>
</Pull_ListPropertyMinStay_RS>
XML Path Data Type Type Description
Pull_ListPropertyMinStay_RS C Root element
Pull_ListPropertyMinStay_RS/Status String(100) M See ListStatuses
Pull_ListPropertyMinStay_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyMinStay_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertyMinStay_RS/PropertyMinStay C, O Single property
Pull_ListPropertyMinStay_RS/PropertyMinStay@PropertyID Integer M Unique property ID
Pull_ListPropertyMinStay_RS/PropertyMinStay/MinStay Integer O Any stay between the selected dates has to be at least X nights long
Pull_ListPropertyMinStay_RS/PropertyMinStay/MinStay@DateFrom String(10) M Start of the date range(YYYY-MM-DD format)
Pull_ListPropertyMinStay_RS/PropertyMinStay/MinStay@DateTo String(10) M End of the date range(YYYY-MM-DD format)

List property prices

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyPrice;

Pull_ListPropertyPrices_RQ request = new Pull_ListPropertyPrices_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1,
    DateFrom = new DateTime(2014, 1, 4),
    DateTo = new DateTime(2014, 1, 9),
    // new field!
    PricingModelMode = 1  // 0 - standard pricing (daily/los), 1 - full stay pricing, 2 - LOS or FSP
                          // default value - 0
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyPrices_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertyPrices_RS response = XmlTools.DeserializeObject<Pull_ListPropertyPrices_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns seasonal rates configuration for a property. Additional fees and discounts are covered separately and are not included in this API method.

Request

<Pull_ListPropertyPrices_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>1</PropertyID>
    <DateFrom>2014-01-04</DateFrom>
    <DateTo>2014-01-09</DateTo>
    <!-- new field! -->
    <PricingModelMode>1</PricingModelMode> <!-- 0 - standard pricing (daily/los), 1 - full stay pricing, 2 - LOS or FSP -->
                                         <!-- default value - 0 -->
</Pull_ListPropertyPrices_RQ>
XML Path Data Type Type Description
Pull_ListPropertyPrices_RQ C Root element
Pull_ListPropertyPrices_RQ/Authentication C, M Authentication details
Pull_ListPropertyPrices_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertyPrices_RQ/Authentication/Password String(50) M Password
Pull_ListPropertyPrices_RQ/PropertyID Integer M Unique property ID. All prices for the property will be returned for the specified date ranges
Pull_ListPropertyPrices_RQ/DateFrom String(10) M Start of the date range(YYYY-MM-DD format)
Pull_ListPropertyPrices_RQ/DateTo String(10) M End of the date range(YYYY-MM-DD format)
Pull_ListPropertyPrices_RQ/PricingModelMode Integer O Specifies in what pricing model prices will be returned in response. Possible values: 0 - Standard pricing (daily/los pricing), 1 - Full Stay Pricing, 2 - Pricing model set by PutPrices request

Responses

Depending on the PricingModelMode chosen, one of the following responses will be sent:

Example 1 (standard pricing)

<Pull_ListPropertyPrices_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Prices PropertyID="1">
        <Season DateFrom="2012-03-01" DateTo="2012-03-08">
            <Price>100.00</Price>
            <Extra>10.00</Extra>
        </Season>
        <Season DateFrom="2012-03-09" DateTo="2012-04-01">
            <Price>120.00</Price>
            <Extra>10.00</Extra>
            <LOSS>
                <LOS Nights="5">
                    <Price>100.00</Price>
                </LOS>
                <LOS Nights="10">
                    <Price>80.00</Price>
                    <LOSPS>
                        <LOSP NrOfGuests="5">
                            <Price>150.00</Price>
                        </LOSP>
                        <LOSP NrOfGuests="6">
                            <Price>175.00</Price>
                        </LOSP>
                    </LOSPS>
                </LOS>
            </LOSS>
            <EGPS>
                <EGP ExtraGuests="1">
                    <Price>25.00</Price>
                </EGP>
                <EGP ExtraGuests="2">
                    <Price>50.00</Price>
                </EGP>
            </EGPS>
        </Season>
    </Prices>
</Pull_ListPropertyPrices_RS>
XML Path Data Type Type Description
Pull_ListPropertyPrices_RS C Root element
Pull_ListPropertyPrices_RS/Status String(100) M See ListStatuses
Pull_ListPropertyPrices_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyPrices_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertyPrices_RS/Prices C, M A collection of the prices for the property
Pull_ListPropertyPrices_RS/Prices@PropertyID Integer M Unique property ID
Pull_ListPropertyPrices_RS/Prices/Season C, O Information about the price for the specified dates and number of guests
Pull_ListPropertyPrices_RS/Prices/Season@DateFrom String(10) M Start of the date range when the price is valid(YYYY-MM-DD format)
Pull_ListPropertyPrices_RS/Prices/Season@DateTo String(10) M End of the date range when the price is valid (YYYY-MM-DD format)
Pull_ListPropertyPrices_RS/Prices/Season/Price Decimal (19,2) M Price for the standard number of guests defined for that property
Pull_ListPropertyPrices_RS/Prices/Season/Extra Decimal (19,2) O Extra fee for each guest above the standard number of guests
Pull_ListPropertyPrices_RS/Prices/Season/LOSS C, O A collection of nightly price settings depending on the length of stay
Pull_ListPropertyPrices_RS/Prices/Season/LOSS/LOS C, O Single nightly price
Pull_ListPropertyPrices_RS/Prices/Season/LOSS/LOS@Nights Integer M Number of nights for which the price applies
Pull_ListPropertyPrices_RS/Prices/Season/LOSS/LOS/Price Decimal (19,2) M Nightly price value for the specified length of stay
Pull_ListPropertyPrices_RS/Prices/Season/LOSS/LOS/LOSPS C, O A collection of nightly price settings depending on the number of guests
Pull_ListPropertyPrices_RS/Prices/Season/LOSS/LOS/LOSPS/LOSP C, M Single nightly price depending on the number of guests
Pull_ListPropertyPrices_RS/Prices/Season/LOSS/LOS/LOSPS/LOSP@NrOfGuests Integer M Number of guests
Pull_ListPropertyPrices_RS/Prices/Season/LOSS/LOS/LOSPS/LOSP/Price Decimal (19,2) M Nightly price
Pull_ListPropertyPrices_RS/Prices/Season/EGPS C, O A collection of extra guests price settings depending on the number of extra guests
Pull_ListPropertyPrices_RS/Prices/Season/EGPS/EGP C, O Single extra guest price
Pull_ListPropertyPrices_RS/Prices/Season/EGPS/EGP@ExtraGuests Integer M Number of extra guests for which the price applies
Pull_ListPropertyPrices_RS/Prices/Season/EGPS/EGP/Price Decimal (19,2) M Single extra guest price value for the specified number of extra guests

Example 2 (Full Stay Pricing)

<Pull_ListPropertyPrices_RS>
  <Status ID="0">Success</Status>
  <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
  <Prices PropertyID="1">
    <FSPSeasons>
      <FSPSeason Date="2020-01-01" DefaultPrice="200">
        <FSPRows>
          <FSPRow NrOfGuests="2">
            <Prices>
              <Price NrOfNights="1">123</Price>
              <Price NrOfNights="2">200</Price>
            </Prices>
          </FSPRow>
          <FSPRow NrOfGuests="3">
            <Prices>
              <Price NrOfNights="1">123</Price>
              <Price NrOfNights="2">200</Price>
            </Prices>
          </FSPRow>
        </FSPRows>
      </FSPSeason>
      <FSPSeason Date="2020-01-02" DefaultPrice="300">
        <FSPRows>
          <FSPRow NrOfGuests="3">
            <Prices>
              <Price NrOfNights="1">123</Price>
              <Price NrOfNights="2">200</Price>
            </Prices>
          </FSPRow>
        </FSPRows>
      </FSPSeason>
    </FSPSeasons>
  </Prices>
</Pull_ListPropertyPrices_RS>
XML Path Data Type Type Description
Pull_ListPropertyPrices_RS C Root element
Pull_ListPropertyPrices_RS/Status String(100) M See ListStatuses
Pull_ListPropertyPrices_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyPrices_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertyPrices_RS/Prices C, M A collection of the prices for the property
Pull_ListPropertyPrices_RS/Prices@PropertyID Integer M Unique property ID
Pull_ListPropertyPrices_RS/FSPSeasons C, O A collection of one-day seasons
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason C Information about prices for specified date with default price
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason@Date String(10) M Date in format YYYY-MM-DD for which season prices are applied
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason@DefaultPrice Decimal (19,2) M Default daily price (for Sales Channels that do not support FSP prices) - inserted with PutPrices request or generated by Rentals United
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason/FSPRows C, M A collection of nightly price settings
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason/FSPRows/FSPRow C, M Container for nightly prices
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason/FSPRows/FSPRow@NrOfGuests Integer M Number of guests for which collection of prices applies
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices C, M Collection of nightly prices depending on the number of guests
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices/Price Decimal(19, 2) M Single nightly price for specified on the number of nights and guests
Pull_ListPropertyPrices_RS/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices/Price@NrOfNights Integer M Number of nights for which the price applies

Get property avb price

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyAvbPrice;

Pull_GetPropertyAvbPrice_RQ request = new Pull_GetPropertyAvbPrice_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1,
    DateFrom = new DateTime(2014, 1, 4),
    DateTo = new DateTime(2014, 1, 9)
};

string xmlBody = XmlTools.SerializeObject<Pull_GetPropertyAvbPrice_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetPropertyAvbPrice_RS response = XmlTools.DeserializeObject<Pull_GetPropertyAvbPrice_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a final price calculation for a given stay. You will receive an empty response when the property is either not available or there are no seasonal rates set. In both cases a reservation cannot be created.

Request

<Pull_GetPropertyAvbPrice_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>1</PropertyID>
    <DateFrom>2014-01-04</DateFrom>
    <DateTo>2014-01-07</DateTo>
</Pull_GetPropertyAvbPrice_RQ>
XML Path Data Type Type Description
Pull_GetPropertyAvbPrice_RQ C Root element
Pull_GetPropertyAvbPrice_RQ/Authentication C, M Authentication details
Pull_GetPropertyAvbPrice_RQ/Authentication/UserName String(50) M Username
Pull_GetPropertyAvbPrice_RQ/Authentication/Password String(50) M Password
Pull_GetPropertyAvbPrice_RQ/PropertyID Integer M Unique property ID
Pull_GetPropertyAvbPrice_RQ/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Pull_GetPropertyAvbPrice_RQ/DateTo String(10) M Departure date (YYYY-MM-DD format)
Pull_GetPropertyAvbPrice_RQ/NOP Integer O Number of guests. If it's provided the response will include the price details for the specified number of guests only
Pull_GetPropertyAvbPrice_RQ/GetChannelPrice Integer O Filling this parameter allows Property Manager to retrieve price that is sent to Sales Channel when quoting for a stay. Proper value to be used can be found in Pull_GetAgents_RQ as an AgentId
Pull_GetPropertyAvbPrice_RQ/Currency String(3) O Currency (see ListCurrencies) in which a property price should be presented. This may lead to currency conversion, when the property's currency is different than the one provided in this field
Pull_GetPropertyAvbPrice_RQ/QuotePMS Boolean O Flag, which determines whether the PMS should be quoted for the price. Default value of this flag is false
Pull_GetPropertyAvbPrice_RQ/AllowLongstays Boolean O Setting this flag to true allows to quote for longer datespans than 120 days. Default value of this flag is false

Response

Example 1 (property is available in the specified dates)

<Pull_GetPropertyAvbPrice_RS>
    <Status ID="0">Success</Status>
    <ResponseID>60f6ee655ac14200a067dc74abdbac4e</ResponseID>
    <PropertyPrices PropertyID="1" Currency="EUR" Units="1">
        <PropertyPrice NOP="1" Cleaning="0.00" ExtraPersonPrice="0.00" Deposit="922.00" SecurityDeposit="336.00" AdditionalFees="122.00" Taxes="10.00" Fees="112.00">922.00</PropertyPrice>
        <PropertyPrice NOP="2" Cleaning="0.00" ExtraPersonPrice="160.00" Deposit="1082.00" SecurityDeposit="336.00" AdditionalFees="122.00" Taxes="10.00" Fees="112.00">1082.00</PropertyPrice>
        <PropertyPrice NOP="3" Cleaning="0.00" ExtraPersonPrice="240.00" Deposit="1162.00" SecurityDeposit="336.00" AdditionalFees="122.00" Taxes="10.00" Fees="112.00">1162.00</PropertyPrice>
    </PropertyPrices>
    <ReservationsBreakdowns>
        <ReservationBreakdown NOP="1">
            <RUBreakdown>
                <DayPrices Date="2014-01-04">
                    <Rent>200.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>221.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-05">
                    <Rent>200.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>221.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-06">
                    <Rent>200.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>221.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-07">
                    <Rent>200.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>221.75</Price>
                </DayPrices>
                <TotalFeesTaxes>
                    <TotalFeeTax AlreadyIncluded="false" Amount="12.0" Name="Pet fee"/>
                    <TotalFeeTax AlreadyIncluded="false" Amount="40.0" Name="Parking Fee" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="35.0" Name="Cleaning Fee" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="10.0" Name="Tourist Tax" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="25.0" Name="Gas Fee" />
                </TotalFeesTaxes>
                <Total>922.00</Total>
                <Rent>800.0</Rent>
            </RUBreakdown>
            <ChannelBreakdown />
        </ReservationBreakdown>
        <ReservationBreakdown NOP="2">
            <RUBreakdown>
                <DayPrices Date="2014-01-04">
                    <Rent>240.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>261.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-05">
                    <Rent>240.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>261.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-06">
                    <Rent>240.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>261.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-07">
                    <Rent>240.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>261.75</Price>
                </DayPrices>
                <TotalFeesTaxes>
                    <TotalFeeTax AlreadyIncluded="false" Amount="12.0" Name="Pet fee"/>
                    <TotalFeeTax AlreadyIncluded="false" Amount="40.0" Name="Parking Fee" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="35.0" Name="Cleaning Fee" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="10.0" Name="Tourist Tax" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="25.0" Name="Gas Fee" />
                </TotalFeesTaxes>
                <Total>1082.00</Total>
                <Rent>960.0</Rent>
            </RUBreakdown>
            <ChannelBreakdown />
        </ReservationBreakdown>
        <ReservationBreakdown NOP="3">
            <RUBreakdown>
                <DayPrices Date="2014-01-04">
                    <Rent>260.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>281.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-05">
                    <Rent>260.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>281.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-06">
                    <Rent>260.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>281.75</Price>
                </DayPrices>
                <DayPrices Date="2014-01-07">
                    <Rent>260.0</Rent>
                    <Taxes>
                        <Tax AlreadyIncluded="false" Amount="10.0" Name="Parking Fee" />
                        <Tax AlreadyIncluded="false" Amount="2.5" Name="Tourist Tax" />
                        <Tax AlreadyIncluded="false" Amount="6.25" Name="Gas Fee" />
                    </Taxes>
                    <Fees>
                        <Fee AlreadyIncluded="false" Amount="3.0" Name="Pet fee"/>
                    </Fees>
                    <Price>281.75</Price>
                </DayPrices>
                <TotalFeesTaxes>
                    <TotalFeeTax AlreadyIncluded="false" Amount="12.0" Name="Pet fee"/>
                    <TotalFeeTax AlreadyIncluded="false" Amount="40.0" Name="Parking Fee" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="35.0" Name="Cleaning Fee" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="10.0" Name="Tourist Tax" />
                    <TotalFeeTax AlreadyIncluded="false" Amount="25.0" Name="Gas Fee" />
                </TotalFeesTaxes>
                <Total>1162.00</Total>
                <Rent>1040.0</Rent>
            </RUBreakdown>
            <ChannelBreakdown />
        </ReservationBreakdown>
    </ReservationsBreakdowns>
</Pull_GetPropertyAvbPrice_RS>

Example 2 (property is not available in the specified dates)

<Pull_GetPropertyAvbPrice_RS>
    <Status ID="1">Property is not available for the specified dates</Status>
</Pull_GetPropertyAvbPrice_RS>
XML Path Data Type Type Description
Pull_GetPropertyAvbPrice_RS C Root element
Pull_GetPropertyAvbPrice_RS/Status String(100) M See ListStatuses
Pull_GetPropertyAvbPrice_RS/Status@ID Integer M See ListStatuses
Pull_GetPropertyAvbPrice_RS/ResponseID String(32) M Unique response ID
Pull_GetPropertyAvbPrice_RS/PropertyPrices C, O A collection of the final property prices depending on the number of guests
Pull_GetPropertyAvbPrice_RS/PropertyPrices@PropertyID Integer M Unique property ID
Pull_GetPropertyAvbPrice_RS/PropertyPrices@Currency String(3) M Currency. If currency was passed as an argument to the request, all the prices will be displayed in that currency, otherwise the property currency will be shown, see ListCurrencies
Pull_GetPropertyAvbPrice_RS/PropertyPrices@Units Integer M Number of units available
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice Decimal (19,2) M Final property price depending on the number of guests
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice@NOP Integer M Number of guest for which the price is valid
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice@Cleaning Decimal (19,2) M Cleaning fee (included in PropertyPrice)
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice@ExtraPersonPrice Decimal (19,2) M Extra person fee (included in PropertyPrice)
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice@Deposit Decimal (19,2) M The required deposit
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice@SecurityDeposit Decimal (19,2) M Refundable security deposit paid by the client directly to the property owner upon arrival
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice@AdditionalFees Decimal (19,2) M All fees and taxes that were included in final property price. Cleaning fee is excluded from this value and presented separately Do not use this attribute value in code. Please use PropertyPrice@Taxes and PropertyPrice@Fees attributes.
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice@Taxes Decimal (19,2) M Only taxes that were included in the final property price
Pull_GetPropertyAvbPrice_RS/PropertyPrices/PropertyPrice@Fees Decimal (19,2) M Only fees that were included in the final property price. Note that the cleaning fee is excluded from this value and presented separately
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns C, O A collection of reservation breakdown details, each for specified number of guests
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown M A container object for the reservation price breakdown details for specified number of guests
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown@NOP Integer M Number of guests for which the breakdown is calculated
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown C, M A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices C, M A collection of objects containing price information for each day of the reservation
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Rent Decimal(19,2) M The value of the base rent for specific day
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Taxes C, M A collection of taxes for specific DayPrices@Date of the reservation
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded Boolean M Information if the tax value is included in Rent
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Fees C, M A collection of fees for specific DayPrices@Date of the reservation
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded Boolean M Information if the fee value is included in Rent
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/TotalFeesTaxes C,M A container objects for fees and taxes applied for the whole stay
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded Boolean M Information if the total tax/fee amount of one type is included in Rent
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay.The maximum accepted value is 214748.36
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name String(50) M Tax/fee description
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/Total Decimal(19,2) M The overall value of rent, fees and taxes of the whole stay
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/RUBreakdown/Rent Decimal(19,2) M The value of rent for the whole stay
Pull_GetPropertyAvbPrice_RS/ReservationsBreakdowns/ReservationBreakdown/ChannelBreakdown C,M A container object for the reservation price breakdown as received from the sales channel

List property discounts

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;

Pull_ListPropertyDiscounts_RQ request = new Pull_ListPropertyDiscounts_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertyDiscounts_RS response = XmlTools.DeserializeObject<Pull_ListPropertyDiscounts_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns length of stay and last-minute discounts settings.

Request

<Pull_ListPropertyDiscounts_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>1</PropertyID>
</Pull_ListPropertyDiscounts_RQ>
XML Path Data Type Type Description
Pull_ListPropertyDiscounts_RQ C Root element
Pull_ListPropertyDiscounts_RQ/Authentication C, M Authentication details
Pull_ListPropertyDiscounts_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertyDiscounts_RQ/Authentication/Password String(50) M Password
Pull_ListPropertyDiscounts_RQ/PropertyID Integer M Unique property ID

Response

<Pull_ListPropertyDiscounts_RS>
  <Status ID="0">Success</Status>
  <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
  <Discounts PropertyID="1">
    <LongStays>
      <LongStay DateFrom="2012-03-01" DateTo="2012-06-01" Bigger="2" Smaller="20">
        10
      </LongStay>
      <LongStay DateFrom="2012-06-02" DateTo="2012-09-01" Bigger="2" Smaller="20">
        20
      </LongStay>
    </LongStays>
    <LastMinutes>
      <LastMinute DateFrom="2012-03-01" DateTo="2012-06-01" DaysToArrivalFrom="2" DaysToArrivalTo="5">
        10
      </LastMinute>
      <LastMinute DateFrom="2012-06-02" DateTo="2012-08-01" DaysToArrivalFrom="0" DaysToArrivalTo="1">
        10
      </LastMinute>
    </LastMinutes>
  </Discounts>
</Pull_ListPropertyDiscounts_RS>
XML Path Data Type Type Description
Pull_ListPropertyDiscounts_RS C Root element
Pull_ListPropertyDiscounts_RS/Status String(100) M See ListStatuses
Pull_ListPropertyDiscounts_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyDiscounts_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertyDiscounts_RS/Discounts C, O A collection of long stay discounts
Pull_ListPropertyDiscounts_RS/Discounts@PropertyID C, M Unique property ID
Pull_ListPropertyDiscounts_RS/Discounts/LongStays C, O Long stay discounts value, percentage of the final price
Pull_ListPropertyDiscounts_RS/Discounts/LongStays/LongStay Integer C, O Discount details
Pull_ListPropertyDiscounts_RS/Discounts/LongStays/LongStay@DateFrom String M Start of the date range(YYYY-MM-DD format)
Pull_ListPropertyDiscounts_RS/Discounts/LongStays/LongStay@DateTo String M End of the date range(YYYY-MM-DD format)
Pull_ListPropertyDiscounts_RS/Discounts/LongStays/LongStay@Bigger Integer M Minimum length of stay in order to get the discount
Pull_ListPropertyDiscounts_RS/Discounts/LongStays/LongStay@Smaller Integer M Maximum length of stay in order to get the discount
Pull_ListPropertyDiscounts_RS/Discounts/LastMinutes C, O Last-minute discounts
Pull_ListPropertyDiscounts_RS/Discounts/LastMinutes/LastMinute Integer C, O Last-minute discount, percentage of final price
Pull_ListPropertyDiscounts_RS/Discounts/LastMinutes/LastMinute@DateFrom String M Start of the date range(YYYY-MM-DD format)
Pull_ListPropertyDiscounts_RS/Discounts/LastMinutes/LastMinute@DateTo String M End of the date range(YYYY-MM-DD format)
Pull_ListPropertyDiscounts_RS/Discounts/LastMinutes/LastMinute@DaysToArrivalFrom Integer M Minimum number of days away from the arrival date when the discount is valid
Pull_ListPropertyDiscounts_RS/Discounts/LastMinutes/LastMinute@DaysToArrivalTo Integer M Maximum number of days away the arrival date when the discount is valid

Get Changeover Days

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Changeover;

Pull_GetChangeoverDays_RQ request = new Pull_GetChangeoverDays_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1,
    StartDate = new DateTime(2014, 10, 10),
    EndDate = new DateTime(2014, 10, 20)
};

string xmlBody = XmlTools.SerializeObject<Pull_GetChangeoverDays_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetChangeoverDays_RS response = XmlTools.DeserializeObject<Pull_GetChangeoverDays_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns changeover days setup for a given property in a given time frame.

The XML response node Changeover returns a string composed of one digit for each day.

Request

<Pull_GetChangeoverDays_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>1</PropertyID>
    <StartDate>2014-10-10</StartDate>
    <EndDate>2014-10-20</EndDate>
</Pull_GetChangeoverDays_RQ>
XML Path Data Type Type Description
Pull_GetChangeoverDays_RQ C Root element
Pull_GetChangeoverDays_RQ/Authentication C, M Authentication details
Pull_GetChangeoverDays_RQ/Authentication/UserName String(50) M Username
Pull_GetChangeoverDays_RQ/Authentication/Password String(50) M Password
Pull_GetChangeoverDays_RQ/PropertyID Integer M Unique property ID
Pull_GetChangeoverDays_RQ/StartDate String(10) M Start date of the date range (YYYY-MM-DD format)
Pull_GetChangeoverDays_RQ/EndDate String(10) M End date of the date range (YYYY-MM-DD format)

Response

<Pull_GetChangeoverDays_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Changeover>11122233344</Changeover>
</Pull_GetChangeoverDays_RS>
XML Path Data Type Type Description
Pull_GetChangeoverDays_RS C Root element
Pull_GetChangeoverDays_RS/Status String(100) M See ListStatuses
Pull_GetChangeoverDays_RS/Status@ID Integer M See ListStatuses
Pull_GetChangeoverDays_RS/ResponseID String(32) M Unique response ID
Pull_GetChangeoverDays_RS/Changeover String M A sequence of strings representing the changeover policy in the specified dates

Delta methods

These methods have been created in order to provide you with information on last change within property data in Rentals United. There are five types of changes:

Use these methods to quickly identify latest changes in Rentals United platform to save resources on your side.

List property change log

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChangeLog;

Pull_ListPropertyChangeLog_RQ request = new Pull_ListPropertyChangeLog_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyChangeLog_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertyChangeLog_RS response = XmlTools.DeserializeObject<Pull_ListPropertyChangeLog_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method provides the exact date and time (UTC) of the last change for each data type for an individual property.

Request

<Pull_ListPropertyChangeLog_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>1</PropertyID>
</Pull_ListPropertyChangeLog_RQ>
XML Path Data Type Type Description
Pull_ListPropertyChangeLog_RQ C Root element
Pull_ListPropertyChangeLog_RQ/Authentication C, M Authentication details
Pull_ListPropertyChangeLog_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertyChangeLog_RQ/Authentication/Password String(50) M Password
Pull_ListPropertyChangeLog_RQ/PropertyID Integer M Unique property ID

Response

<Pull_ListPropertyChangeLog_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <ChangeLog PropertyID="1" NLA="false" IsActive="true">
        <StaticData>2013-05-07 12:10:00</StaticData>
        <Pricing>2013-05-07 22:13:20</Pricing>
        <Availability>2013-04-07 02:20:00</Availability>
        <Image>2013-02-22 14:40:00</Image>
        <Description>2013-03-01 10:02:20</Description>
    </ChangeLog>
</Pull_ListPropertyChangeLog_RS>
XML Path Data Type Type Description
Pull_ListPropertyChangeLog_RS C Root element
Pull_ListPropertyChangeLog_RS/Status String(100) M See ListStatuses
Pull_ListPropertyChangeLog_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyChangeLog_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertyChangeLog_RS/ChangeLog C, O Element is empty when an error occurres
Pull_ListPropertyChangeLog_RS/ChangeLog@PropertyID Integer M Unique property ID
Pull_ListPropertyChangeLog_RS/ChangeLog@NLA Boolean M Indicates whether the property is archived
Pull_ListPropertyChangeLog_RS/ChangeLog@IsActive Boolean M Indicates whether the property is active
Pull_ListPropertyChangeLog_RS/ChangeLog/StaticData String M Last modification of the property's data (living space, address, coordinates, amenities, composition, etc.)(YYYY-MM-DD HH:MM:SS format – 24h format)
Pull_ListPropertyChangeLog_RS/ChangeLog/Pricing String M Last modification of the property's price (base price, seasonal price, discounts)(YYYY-MM-DD HH:MM:SS format – 24h format)
Pull_ListPropertyChangeLog_RS/ChangeLog/Availability String M Last modification of the property's availability (YYYY-MM-DD HH:MM:SS format – 24h format)
Pull_ListPropertyChangeLog_RS/ChangeLog/Image String M Last modification of the property's images (YYYY-MM-DD HH:MM:SS format – 24h format)
Pull_ListPropertyChangeLog_RS/ChangeLog/Description String M Last modification of the property's description (YYYY-MM-DD HH:MM:SS format – 24h format)

List properties change log

using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChangeLog;

Pull_ListPropertiesChangeLog_RQ request = new Pull_ListPropertiesChangeLog_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyIDs = new List<int>() { 1, 2 }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertiesChangeLog_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertiesChangeLog_RS response = XmlTools.DeserializeObject<Pull_ListPropertiesChangeLog_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method provides the exact date and time (UTC) of the last change for each data type for multiple properties.

Request

<Pull_ListPropertiesChangeLog_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyIDs>
    <PropertyID>1</PropertyID>
    <PropertyID>2</PropertyID>
  </PropertyIDs>
</Pull_ListPropertiesChangeLog_RQ>
XML Path Data Type Type Description
Pull_ListPropertiesChangeLog_RQ C Root element
Pull_ListPropertiesChangeLog_RQ/Authentication C, M Authentication details
Pull_ListPropertiesChangeLog_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertiesChangeLog_RQ/Authentication/Password String(50) M Password
Pull_ListPropertiesChangeLog_RQ/PropertyIDs C, O Omit this element if you want to receive data for all properties
Pull_ListPropertiesChangeLog_RQ/PropertyIDs/PropertyID Integer M Unique property ID

Response

<Pull_ListPropertiesChangeLog_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <ChangeLogs>
        <ChangeLog PropertyID="1" NLA="true" IsActive="false">
            <StaticData>2013-02-14 09:28:13</StaticData>
            <Pricing>2013-02-27 07:15:29</Pricing>
            <Availability>2013-03-21 14:10:55</Availability>
            <Image>2013-03-12 09:09:23</Image>
            <Description>2012-04-27 00:00:00</Description>
        </ChangeLog>
        <ChangeLog PropertyID="2" NLA="false" IsActive="false">
            <StaticData>2013-12-23 19:07:32</StaticData>
            <Pricing>2013-12-24 06:36:19</Pricing>
            <Availability>2014-01-09 20:18:08</Availability>
            <Image>2013-10-28 16:12:56</Image>
            <Description>2013-04-29 08:20:51</Description>
        </ChangeLog>
    </ChangeLogs>
</Pull_ListPropertiesChangeLog_RS>
XML Path Data Type Type Description
Pull_ListPropertiesChangeLog_RS C Root element
Pull_ListPropertiesChangeLog_RS/Status String(100) M See ListStatuses
Pull_ListPropertiesChangeLog_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertiesChangeLog_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertiesChangeLog_RS/ChangeLogs C, O Element is empty when an error occurres
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog C Contains information about a single property's changelog
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog@PropertyID Integer M Unique property ID
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog@NLA Boolean M Indicates whether the property is archived
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog@IsActive Boolean M Indicates whether the property is active
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog/StaticData String M Last modification of the property's data (living space, address, coordinates, amenities, composition, etc.)(YYYY-MM-DD HH:MM:SS format – 24h format)
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog/Pricing String M Last modification of the property's price (base price, seasonal price, discounts)(YYYY-MM-DD HH:MM:SS format – 24h format)
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog/Availability String M Last modification of the property's availability (YYYY-MM-DD HH:MM:SS format – 24h format)
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog/Image String M Last modification of the property's images (YYYY-MM-DD HH:MM:SS format – 24h format)
Pull_ListPropertiesChangeLog_RS/ChangeLogs/ChangeLog/Description String M Last modification of the property's description (YYYY-MM-DD HH:MM:SS format – 24h format)

List property price changes

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChangeLog;

Pull_ListPropertyPriceChanges_RQ request = new Pull_ListPropertyPriceChanges_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1,
    Since = new DateTime(2013, 10, 16, 12, 0, 0)
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyPriceChanges_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertyPriceChanges_RS response = XmlTools.DeserializeObject<Pull_ListPropertyPriceChanges_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns the dates for which price in Rentals United has changed since a timestamp provided in the request.

Request

<Pull_ListPropertyPriceChanges_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>1</PropertyID>
    <Since>2013-10-16 12:00:00</Since>
</Pull_ListPropertyPriceChanges_RQ>
XML Path Data Type Type Description
Pull_ListPropertyPriceChanges_RQ C Root element
Pull_ListPropertyPriceChanges_RQ/Authentication C, M Authentication details
Pull_ListPropertyPriceChanges_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertyPriceChanges_RQ/Authentication/Password String(50) M Password
Pull_ListPropertyPriceChanges_RQ/PropertyID Integer M Unique property ID. All prices for the property will be returned for the specified range of dates
Pull_ListPropertyPriceChanges_RQ/Since String M Date since which the changes are to be returned (YYYY-MM-DD HH:MM:SS format – 24h format)

Response

<Pull_ListPropertyPriceChanges_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <PriceChanges>
        <Day>2013-05-22</Day>
        <Day>2013-06-02</Day>
        <Day>2013-06-03</Day>
        <Day>2013-06-04</Day>
    </ChangeLog>
</Pull_ListPropertyPriceChanges_RS>
XML Path Data Type Type Description
Pull_ListPropertyPriceChanges_RS C Root element
Pull_ListPropertyPriceChanges_RS/Status String(100) M See ListStatuses
Pull_ListPropertyPriceChanges_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyPriceChanges_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertyPriceChanges_RS/PriceChanges C Element is empty when when there are no changes to show
Pull_ListPropertyPriceChanges_RS/PriceChanges/Day String M A single day when a change occurred(YYYY-MM-DD HH:MM:SS format)

List property availability changes

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChangeLog;

Pull_ListPropertyAvbChanges_RQ request = new Pull_ListPropertyAvbChanges_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1,
    Since = new DateTime(2013, 10, 16, 12, 0, 0)
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyAvbChanges_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertyAvbChanges_RS response = XmlTools.DeserializeObject<Pull_ListPropertyAvbChanges_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns the dates for which availability in Rentals United has changed since a timestamp provided in the request.

Request

<Pull_ListPropertyAvbChanges_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>1</PropertyID>
    <Since>2013-10-16 12:00:00</Since>
</Pull_ListPropertyAvbChanges_RQ>
XML Path Data Type Type Description
Pull_ListPropertyAvbChanges_RQ C Root element
Pull_ListPropertyAvbChanges_RQ/Authentication C, M Authentication details
Pull_ListPropertyAvbChanges_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertyAvbChanges_RQ/Authentication/Password String(50) M Password
Pull_ListPropertyAvbChanges_RQ/PropertyID Integer M Unique property ID
Pull_ListPropertyAvbChanges_RQ/Since String M Date since which the changes are to be returned (YYYY-MM-DD HH:MM:SS format – 24h format)

Response

<Pull_ListPropertyAvbChanges_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <AvbChanges>
        <Day>2013-05-22</Day>
        <Day>2013-06-02</Day>
        <Day>2013-06-03</Day>
        <Day>2013-06-04</Day>
    </AvbChangeLog>
</Pull_ListPropertyAvbChanges_RS>
XML Path Data Type Type Description
Pull_ListPropertyAvbChanges_RS C Root element
Pull_ListPropertyAvbChanges_RS/Status String(100) M See ListStatuses
Pull_ListPropertyAvbChanges_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyAvbChanges_RS/ResponseID String(32) M Unique response ID
Pull_ListPropertyAvbChanges_RS/PriceChanges C Element is empty when when there are no changes to show
Pull_ListPropertyAvbChanges_RS/PriceChanges/Day String M A single day when a change occurred (YYYY-MM-DD HH:MM:SS format)

Push methods - Static property data

Push Rentals United API methods are designed to create a property in Rentals United system.

Put building

This method inserts a single building into the Rentals United system.

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Building;

Push_PutBuilding_RQ request = new Push_PutBuilding_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    BuildingName = "Building 1"
};

string xmlBody = XmlTools.SerializeObject<Push_PutBuilding_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutBuilding_RS response = XmlTools.DeserializeObject<Push_PutBuilding_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Request

<Push_PutBuilding_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <BuildingName>Building 1</BuildingName>
</Push_PutBuilding_RQ>
XML Path Data Type Type Description
Push_PutBuilding_RQ C Root element
Push_PutBuilding_RQ/Authentication C, M Authentication details
Push_PutBuilding_RQ/Authentication/UserName String(50) M Username
Push_PutBuilding_RQ/Authentication/Password String(50) M Password
Push_PutBuilding_RQ/BuildingName String(20) M Name of the building

Response

<Push_PutBuilding_RS>
 <Status ID="0">Success</Status>
 <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
 <BuildingID> 1</BuildingID>
</Push_PutBuilding_RS>
XML Path Data Type Type Description
Push_PutBuilding_RS C Root element
Push_PutBuilding_RS/Status String(100) M See ListStatuses
Push_PutBuilding_RS/Status@ID Integer M See ListStatuses
Push_PutBuilding_RS/ResponseID String(32) M Unique response ID
Push_PutBuilding_RS/BuildingID Integer O Building's unique ID

Put owner

This method inserts a single owner into Rentals United.

Each owner represents a property contact information i.e. arrival instructions to a property.

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;

Push_PutOwner_RQ request = new Push_PutOwner_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Owner = new OwnerInfo() 
    {
        FirstName = "John",
        LastName = "Smith",
        Email = "john.smith@domain.com",
        Phone = "+48 22 000 00 00"
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutOwner_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutOwner_RS response = XmlTools.DeserializeObject<Push_PutOwner_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Request

<Push_PutOwner_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
  <Owner>
    <FirstName>John</FirstName>
    <SurName>Smith</SurName>
    <Email>john.smith@domain.com</Email>
    <Phone>+48 22 000 00 00</Phone>
  </Owner>
</Push_PutOwner_RQ>
XML Path Data Type Type Description
Push_PutOwner_RQ C Root element
Push_PutOwner_RQ/Authentication C, M Authentication details
Push_PutOwner_RQ/Authentication/UserName String(50) M Username
Push_PutOwner_RQ/Authentication/Password String(50) M Password
Push_PutOwner_RQ/Owner C Owner's details
Push_PutOwner_RQ/Owner@OwnerID Integer O ID of the owner. This is only required when updating the owner's information. Can only be changed by the Agent who created the owner.
Push_PutOwner_RQ/Owner/FirstName String(20) M Owner's first name
Push_PutOwner_RQ/Owner/SurName String(30) M Owner's surname
Push_PutOwner_RQ/Owner/Email String(100) M Owner's email address
Push_PutOwner_RQ/Owner/Phone String(20) M Owner's phone number with the country code

Response

<Push_PutOwner_RS>
  <Status ID="0">Success</Status>
  <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
  <OwnerID>1 </OwnerID>
</Push_PutOwner_RS>
XML Path Data Type Type Description
Push_PutOwner_RS C Root element
Push_PutOwner_RS/Status String(100) M See ListStatuses
Push_PutOwner_RS/Status@ID Integer M See ListStatuses
Push_PutOwner_RS/ResponseID String(32) M Unique response ID
Push_PutOwner_RS/OwnerID Integer M Unique property ID owner

Put property

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;
using WS.XMLLayer.WebMethods.AdditionalFees;
using System.Collections.Generic;

Push_PutProperty_RQ request = new Push_PutProperty_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Property = new PropertyDetailedInfo()
    {
        Name = "Apartment 1",
        OwnerID = 1,
        // DetailedLocationID
        IsActive = true,
        IsArchived = false,
        Space = 45,
        StandardGuests = 3,
        CanSleepMax = 5,
        PropertyTypeID = 1,
        NoOfUnits = 1,
        Floor = 1,
        Street = "Street 1",
        ZipCode = "00-001",
        Coordinates = new CoordinatesInfo()
        {
            Longitude = "40.21334234",
            Latitude = "42.123123"
        },
        Distances = new DistanceInfo[]
        {
            new DistanceInfo()
            {
                DestinationID = 1,
                DistanceUnitID = 1,
                DistanceValue = 10
            }
        },
        Amenities = new AmenityInfo[]
        {
            new AmenityInfo() { AmenityID = 1, Count = 2 },
            new AmenityInfo() { AmenityID = 2 }
        },
        Images = new ImageInfo[]
        {
            new ImageInfo() { ImageTypeID = 1, Image = "http://www.domain.com/1.jpg" }
        },
        ArrivalInstructions = new ArrivalInstructionsInfo()
        {
            Landlord = "John Smith",
            Email = "john.smith@domain.com",
            Phone = "+48 22 000 00 00",
            DaysBeforeArrival = 2,
            HowToArrive = new List<ArriveDescriptionInfo>()
            {
                new ArriveDescriptionInfo()
                {
                    LanguageID = 1,
                    Description = "Information about how to arrive in English"
                },
                new ArriveDescriptionInfo()
                {
                    LanguageID = 2,
                    Description = "Information about how to arrive in German"
                }
            },
            PickupService = new List<ArriveDescriptionInfo>()
            {
                new ArriveDescriptionInfo()
                {
                    LanguageID = 1,
                    Description = "Information about pickup service in English"
                }
            },
        },
        CheckInOut = new CheckInOutInfo()
        {
            CheckInFrom = "10:00",
            CheckInTo = "13:00",
            CheckOutUntil = "09:00",
            Place = "apartment",
            LateArrivalFees = new List<LateArrivalFeeInfo>()
            {
                new LateArrivalFeeInfo()
                {
                    From = "13:00",
                    To = "20:00",
                    Fee = 10.00M
                },
                new LateArrivalFeeInfo()
                {
                    From = "20:00",
                    To = "01:00",
                    Fee = 30.00M
                }
            },
            EarlyDepartureFees = new List<EarlyDepartureFeeInfo>()
            {
                new EarlyDepartureFeeInfo()
                {
                    From = "03:00",
                    To = "05:00",
                    Fee = 30.00M
                },
                new EarlyDepartureFeeInfo()
                {
                    From = "05:00",
                    To = "13:00",
                    Fee = 25.00M
                }
            }
        },
        PaymentMethods = new PaymentMethodInfo[]
        {
            new PaymentMethodInfo() { PaymentMethodID = 1, PaymentMethod = "Account number: 000000000000000" },
            new PaymentMethodInfo() { PaymentMethodID = 2, PaymentMethod = "VISA, MASTERCARD, AMERICAN EXPRESS" }
        },
        Deposit = new DepositInfo() { DepositTypeID = 3, Deposit = 15.00M },
        CancellationPolicies = new CancellationPolicyInfo[]
        {
            new CancellationPolicyInfo()
            {
                ValidFrom = 0,
                ValidTo = 3,
                CancellationPolicy = 100M
            },
            new CancellationPolicyInfo()
            {
                ValidFrom = 4,
                ValidTo = 10,
                CancellationPolicy = 50M
            }
        },
        Descriptions = new DescriptionInfo[]
        {
            new DescriptionInfo()
            {
                LanguageID = 1,
                Text = "Description in English."
            },
            new DescriptionInfo()
            {
                LanguageID = 2,
                Image = "http://YourServer/GermanDescription.jpg"
            },
            new DescriptionInfo()
            {
                LanguageID = 3,
                Image = "http://YourServer/PolishDescription.jpg"
            }
        },
        SecurityDeposit = new DepositInfo() { DepositTypeID = 5, Deposit = 85.00M },
        AdditionalFees = new AdditionalFeeInfo[]
        {  
            new AdditionalFeeInfo()
            {
                FeeTaxType = 1,
                DiscriminatorID = 1,
                Order = 0,
                Value = 50.05M
            },
            new AdditionalFeeInfo()
            {
                FeeTaxType = 6,
                DiscriminatorID = 3,
                Order = 1,
                Value = 0.1255M
            }
        },
        LicenceInfo = new LicenceInfo() { LicenceNumber = "Licence_Number" }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutProperty_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutProperty_RS response = XmlTools.DeserializeObject<Push_PutProperty_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method has been designed to create and update a property in Rentals United. Update mode is triggered when Push_PutProperty_RQ/Property/ID is provided in the XML request.

Elements marked with M are mandatory for property creation. They may be skipped in update XML requests if they are marked with X. Elements marked with O are optional for property creation and update. If they are not sent, no changes will be made in Rentals United. If they are sent as empty nodes, data will be erased from Rentals United.

Request

Example 1: Put a new property, without detailed amenities data

<Push_PutProperty_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <Property>
   <PUID BuildingID="-1">1</PUID>
   <Name>Apartment 1</Name>
   <OwnerID>1</OwnerID>
   <DetailedLocationID TypeID="4">1</DetailedLocationID>
   <IsActive>true</IsActive>
   <IsArchived>false</IsArchived>
   <Space>45</Space>
   <StandardGuests>3</StandardGuests>
   <CanSleepMax>5</CanSleepMax>
   <PropertyTypeID>1</PropertyTypeID>
   <NoOfUnits>1</NoOfUnits>
   <Floor>1</Floor>
   <Street>Street 1</Street>
   <ZipCode>00-001</ZipCode>
   <Coordinates>
     <Longitude>40.21334234</Longitude>
     <Latitude>42.123123</Latitude>
   </Coordinates>
   <Distances>
     <Distance>
       <DestinationID>1</DestinationID>
       <DistanceUnitID>1</DistanceUnitID>
       <DistanceValue>10</DistanceValue>
     </Distance>
   </Distances> 
   <Amenities>
     <Amenity Count="2">1</Amenity>
     <Amenity Count="1">2</Amenity>
   </Amenities>
   <Images>
     <Image ImageTypeID="1">http://www.domain.com/1.jpg</Image>
   </Images>
   <ArrivalInstructions>
     <Landlord>John Smith</Landlord>
     <Email>john.smith@domain.com</Email>
     <Phone>+48 22 000 00 00</Phone>
     <DaysBeforeArrival>2</DaysBeforeArrival>
     <HowToArrive>
       <Text LanguageID="1">Information about how to arrive in English</Text>
       <Text LanguageID="2">Information about how to arrive in German</Text>
     </HowToArrive>
     <PickupService>
       <Text LanguageID="1">Information about pickup service in English</Text>
     </PickupService>
   </ArrivalInstructions>
   <CheckInOut>
     <CheckInFrom>10:00</CheckInFrom>
     <CheckInTo>13:00</CheckInTo>
     <CheckOutUntil>09:00</CheckOutUntil>
     <Place>apartment</Place>
     <LateArrivalFees>
       <LateArrivalFee From="13:00" To="20:00">10.00</LateArrivalFee>
       <LateArrivalFee From="20:00" To="01:00">30.00</LateArrivalFee>
     </LateArrivalFees>
     <EarlyDepartureFees>
       <EarlyDepartureFee From="03:00" To="05:00">30.00</EarlyDepartureFee>
       <EarlyDepartureFee From="05:00" To="13:00">25.00</EarlyDepartureFee>
     </EarlyDepartureFees>
   </CheckInOut>
   <PaymentMethods>
     <PaymentMethod PaymentMethodID="1">Account number: 000000000000000</PaymentMethod>
     <PaymentMethod PaymentMethodID="2" >VISA, MASTERCARD, AMERICAN EXPRESS</PaymentMethod>
   </PaymentMethods>
   <TermsAndConditionsLinks>
      <TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
      <TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
   </TermsAndConditionsLinks>
   <Deposit DepositTypeID="3">15.00</Deposit>
   <CancellationPolicies>
     <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
     <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
   </CancellationPolicies>
   <Descriptions>
     <Description LanguageID="1">
       <Text>Description in English.</Text>
     </Description>
     <Description LanguageID="3">
       <Text>Description in Polish</Text>
     </Description>
   </Descriptions>
   <SecurityDeposit DepositTypeID="5">85.00</SecurityDeposit>
   <AdditionalFees>
     <AdditionalFee FeeTaxType="1" DiscriminatorID="1" Order="0">
       <Value>50.05</Value>
     </AdditionalFee>
     <AdditionalFee FeeTaxType="1" DiscriminatorID="4" Order="1">
       <Value>0.1255</Value>
     <!-- This will represent a value of 12.55% -->
     </AdditionalFee>
   </AdditionalFees>
   <LicenceInfo>
     <LicenceNumber>Licence_Number</LicenceNumber>
   </LicenceInfo>
 </Property>
</Push_PutProperty_RQ>

Example 2: Update a previously uploaded property, with detailed amenity data

<Push_PutProperty_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <Property>
   <ID>1</ID>
   <PUID BuildingID="1">apt1</PUID>
   <Name>Apartment 1</Name>
   <OwnerID>1</OwnerID>
   <DetailedLocationID TypeID="1">1</DetailedLocationID>
   <IsActive>true</IsActive>
   <IsArchived>false</IsArchived>
   <Space>45</Space>
   <StandardGuests>3</StandardGuests>
   <CanSleepMax>5</CanSleepMax>
   <PropertyTypeID>1</PropertyTypeID>
   <Floor>1</Floor>
   <Street>Street 1</Street>
   <ZipCode>00-001</ZipCode>
   <Coordinates>
     <Longitude>40.21334234</Longitude>
     <Latitude>42.123123</Latitude>
   </Coordinates>
   <Distances>
     <Distance>
       <DestinationID>1</DestinationID>
       <DistanceUnitID>1</DistanceUnitID>
       <DistanceValue>10</DistanceValue>
     </Distance>
   </Distances>
   <CompositionRoomsAmenities>
     <CompositionRoomAmenities CompositionRoomID="1">
       <Amenities>
         <Amenity Count="1">1</Amenity>
       </Amenities>
     </CompositionRoomAmenities>
     <CompositionRoomAmenities CompositionRoomID="2">
       <Amenities>
         <Amenity Count="1">1</Amenity>
       </Amenities>
     </CompositionRoomAmenities>
   </CompositionRoomsAmenities>
   <Amenities>
     <Amenity Count="1">2</Amenity>
   </Amenities>
   <Images>
     <Image ImageTypeID="1">http://www.domain.com/1.jpg</Image>
   </Images>
   <ArrivalInstructions>
     <Landlord>John Smith</Landlord>
     <Email>john.smith@domain.com</Email>
     <Phone>+48 22 000 00 00</Phone>
     <DaysBeforeArrival>2</DaysBeforeArrival>
     <HowToArrive>
       <Text LanguageID="1">Information about how to arrive in English</Text>
       <Text LanguageID="2">Information about how to arrive in German</Text>
     </HowToArrive>
     <PickupService>
       <Text LanguageID="1">Information about pickup service in English</Text>
     </PickupService>
   </ArrivalInstructions>
   <CheckInOut>
   <CheckInFrom>10:00</CheckInFrom>
   <CheckInTo>13:00</CheckInTo>
   <CheckOutUntil>09:00</CheckOutUntil>
   <Place>apartment</Place>
   <LateArrivalFees>
     <LateArrivalFee From="13:00" To="20:00">10.00</LateArrivalFee>
     <LateArrivalFee From="20:00" To="01:00">30.00</LateArrivalFee>
   </LateArrivalFees>
   </CheckInOut>
   <PaymentMethods>
     <PaymentMethod PaymentMethodID="1">Account number: 000000000000000</PaymentMethod>
     <PaymentMethod PaymentMethodID="2" >VISA, MASTERCARD, AMERICAN EXPRESS</PaymentMethod>
   </PaymentMethods>
   <TermsAndConditionsLinks>
      <TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
      <TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
   </TermsAndConditionsLinks>
   <Deposit DepositTypeID="3">15.00</Deposit>
   <CancellationPolicies>
     <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
     <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
   </CancellationPolicies>
   <Descriptions>
     <Description LanguageID="1">
       <Text>Description in English.</Text>
     </Description>
     <Description LanguageID="3">
       <Text>Description in Polish</Text>
     </Description>
   </Descriptions>
   <SecurityDeposit DepositTypeID="5">85.00</SecurityDeposit>
   <AdditionalFees>
     <AdditionalFee FeeTaxType="1" DiscriminatorID="1" Order="0">
       <Value>50.05</Value>
     </AdditionalFee>
     <AdditionalFee FeeTaxType="3" DiscriminatorID="4" Order="1">
       <Value>0.1255</Value>
       <!-- This will represent a value of 12.55% -->
     </AdditionalFee>
   </AdditionalFees>
   <LicenceInfo>
     <LicenceNumber>Licence_Number</LicenceNumber>
   </LicenceInfo>
 </Property>
</Push_PutProperty_RQ>

Example 3: Put a new property, without detailed amenities data and charge profile

<Push_PutProperty_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <Property>
   <PUID BuildingID="1">apt1</PUID>
   <Name>Apartment 1</Name>
   <OwnerID>1</OwnerID>
   <DetailedLocationID TypeID="1">1</DetailedLocationID>
   <IsActive>true</IsActive>
   <IsArchived>false</IsArchived>
   <Space>45</Space>
   <StandardGuests>3</StandardGuests>
   <CanSleepMax>5</CanSleepMax>
   <PropertyTypeID>1</PropertyTypeID>
   <Floor>1</Floor>
   <Street>Street 1</Street>
   <ZipCode>00-001</ZipCode>
   <Coordinates>
     <Longitude>40.21334234</Longitude>
     <Latitude>42.123123</Latitude>
   </Coordinates>
   <Distances>
     <Distance>
       <DestinationID>1</DestinationID>
       <DistanceUnitID>1</DistanceUnitID>
       <DistanceValue>10</DistanceValue>
     </Distance>
   </Distances>
   <CompositionRoomsAmenities>
     <CompositionRoomAmenities CompositionRoomID="1">
       <Amenities>
         <Amenity Count="1">1</Amenity>
       </Amenities>
     </CompositionRoomAmenities>
     <CompositionRoomAmenities CompositionRoomID="2">
       <Amenities>
         <Amenity Count="1">1</Amenity>
       </Amenities>
     </CompositionRoomAmenities>
   </CompositionRoomsAmenities>
   <Amenities>
     <Amenity Count="1">2</Amenity>
   </Amenities>
   <Images>
     <Image ImageTypeID="1">http://www.domain.com/1.jpg</Image>
   </Images>
   <ArrivalInstructions>
     <Landlord>John Smith</Landlord>
     <Email>john.smith@domain.com</Email>
     <Phone>+48 22 000 00 00</Phone>
     <DaysBeforeArrival>2</DaysBeforeArrival>
     <HowToArrive>
       <Text LanguageID="1">Information about how to arrive in English</Text>
       <Text LanguageID="2">Information about how to arrive in German</Text>
     </HowToArrive>
     <PickupService>
       <Text LanguageID="1">Information about pickup service in English</Text>
     </PickupService>
   </ArrivalInstructions>
   <CheckInOut>
   <CheckInFrom>10:00</CheckInFrom>
   <CheckInTo>13:00</CheckInTo>
   <CheckOutUntil>09:00</CheckOutUntil>
   <Place>apartment</Place>
   <LateArrivalFees>
     <LateArrivalFee From="13:00" To="20:00">10.00</LateArrivalFee>
     <LateArrivalFee From="20:00" To="01:00">30.00</LateArrivalFee>
   </LateArrivalFees>
   </CheckInOut>
   <PaymentMethods>
     <PaymentMethod PaymentMethodID="1">Account number: 000000000000000</PaymentMethod>
     <PaymentMethod PaymentMethodID="2" >VISA, MASTERCARD, AMERICAN EXPRESS</PaymentMethod>
   </PaymentMethods>
   <TermsAndConditionsLinks>
      <TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
      <TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
   </TermsAndConditionsLinks>
   <Deposit DepositTypeID="3">15.00</Deposit>
   <CancellationPolicies>
     <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
     <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
   </CancellationPolicies>
   <Descriptions>
     <Description LanguageID="1">
       <Text>Description in English.</Text>
     </Description>
     <Description LanguageID="3">
       <Text>Description in Polish</Text>
     </Description>
   </Descriptions>
   <SecurityDeposit DepositTypeID="5">85.00</SecurityDeposit>
   <ChargeProfiles>
     <ChargeProfile id="0">
        <ApplicableAdditionalFee FeeTaxType="41" DiscriminatorID="1" Name="cleaning">
         <Value>50.05</Value>
        </ApplicableAdditionalFee>
        <ApplicableAdditionalFee FeeTaxType="1" DiscriminatorID="3" Name="state tax">
          <Value>50.05</Value>
          <ApplicableTo>
            <FeeNames>
              <FeeName>cleaning</FeeName>
            </FeeNames>
            <Rent>true</Rent>
          </ApplicableTo>
         </ApplicableAdditionalFee>
     </ChargeProfile>
   </ChargeProfiles>
   <LicenceInfo>
     <LicenceNumber>Licence_Number</LicenceNumber>
   </LicenceInfo>
 </Property>
</Push_PutProperty_RQ>

Example 4: Put a new property, with optional Description fields filled

<Push_PutProperty_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
 <Property>
   <PUID BuildingID="1">apt1</PUID>
   <Name>Apartment 1</Name>
   <OwnerID>1</OwnerID>
   <DetailedLocationID TypeID="1">1</DetailedLocationID>
   <IsActive>true</IsActive>
   <IsArchived>false</IsArchived>
   <Space>45</Space>
   <StandardGuests>3</StandardGuests>
   <CanSleepMax>5</CanSleepMax>
   <PropertyTypeID>1</PropertyTypeID>
   <Floor>1</Floor>
   <Street>Street 1</Street>
   <ZipCode>00-001</ZipCode>
   <Coordinates>
     <Longitude>40.21334234</Longitude>
     <Latitude>42.123123</Latitude>
   </Coordinates>
   <ArrivalInstructions>
     <Landlord>John Smith</Landlord>
     <Email>john.smith@domain.com</Email>
     <Phone>+48 22 000 00 00</Phone>
     <DaysBeforeArrival>2</DaysBeforeArrival>
     <HowToArrive>
       <Text LanguageID="1">Information about how to arrive in English</Text>
       <Text LanguageID="2">Information about how to arrive in German</Text>
     </HowToArrive>
     <PickupService>
       <Text LanguageID="1">Information about pickup service in English</Text>
     </PickupService>
   </ArrivalInstructions>
   <CheckInOut>
     <CheckInFrom>10:00</CheckInFrom>
     <CheckInTo>13:00</CheckInTo>
     <CheckOutUntil>09:00</CheckOutUntil>
     <Place>apartment</Place>
   </CheckInOut>
   <PaymentMethods>
     <PaymentMethod PaymentMethodID="1">Account number: 000000000000000</PaymentMethod>
     <PaymentMethod PaymentMethodID="2" >VISA, MASTERCARD, AMERICAN EXPRESS</PaymentMethod>
   </PaymentMethods>
   <TermsAndConditionsLinks>
      <TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
      <TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
   </TermsAndConditionsLinks>
   <Deposit DepositTypeID="3">15.00</Deposit>
   <CancellationPolicies>
     <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
     <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
   </CancellationPolicies>
   <Descriptions>
     <Description LanguageID="1">
       <Text>
         Space description. Access description. Interaction description.
         Neighbourhood description. Notes description. HouseRules description.
         Headline description. WhyPurchased description. OwnerListingStory description.
         WiFiName description. AdditionalInfo description. LocationDesc description.
       </Text>
       <Space>Space description.</Space>
       <Access>Access description.</Access>
       <Interaction>Interaction description.</Interaction>
       <Neighborhood>Neighbourhood description.</Neighborhood>
       <Notes>Notes description.</Notes>
       <HouseRules>HouseRules description.</HouseRules>
       <Headline>Headline description.</Headline>
       <WhyPurchased>WhyPurchased description.</WhyPurchased>
       <OwnerListingStory>OwnerListingStory description.</OwnerListingStory>
       <WiFiName>WiFiName description.</WiFiName>
       <AdditionalInfo>AdditionalInfo description.</AdditionalInfo>
       <LocationDesc>LocationDesc description.</LocationDesc>
     </Description>
   </Descriptions>
   <SecurityDeposit DepositTypeID="5">85.00</SecurityDeposit>
   <LicenceInfo>
     <LicenceNumber>Licence_Number</LicenceNumber>
   </LicenceInfo>
 </Property>
</Push_PutProperty_RQ>

XML Path Data Type Type Description
Push_PutProperty_RQ Integer C Root element
Push_PutProperty_RQ/Authentication C, M Authentication details
Push_PutProperty_RQ/Authentication/UserName String(50) M Username
Push_PutProperty_RQ/Authentication/Password String(50) M Password
Push_PutProperty_RQ/UserAccountId Integer O Property owner's PMS Account ID
Push_PutProperty_RQ/Property C Single property
Push_PutProperty_RQ/Property/ID Integer O Unique property ID, use this element if you want to update an already uploaded property
Push_PutProperty_RQ/Property/PUID String(200) O Unique property ID in the uploader system
Push_PutProperty_RQ/Property/PUID@BuildingID Integer O Unique building ID that houses the property, define -1 when you do not need to assign the property to a building
Push_PutProperty_RQ/Property/Name String(300) M, X Property name. Use CDATA if the name contains special characters
Push_PutProperty_RQ/Property/OwnerID Integer M The property owner's ID. See PutOwner
Push_PutProperty_RQ/Properties/Property/DetailedLocationID Integer M, X The most detailed location. See ListLocations. DetailedLocationID should be provided with at least city precision
Push_PutProperty_RQ/Property/IsActive Boolean M Use this element if you want to activate (True/1) or deactivate (False/0) the property in the RU system. IsActive and IsArchived cannot be simultaneously set to true
Push_PutProperty_RQ/Property/IsArchived Boolean M Use this element if you want to archive (True/1) or restore (False/0) the property in RU system. IsActive and IsArchived cannot be simultaneously set to true
Push_PutProperty_RQ/Property/Space Integer M, X Living space in square meters
Push_PutProperty_RQ/Property/StandardGuests Integer M, X Number of guest included in the base price
Push_PutProperty_RQ/Property/CanSleepMax Integer M, X Maximum number of guests
Push_PutProperty_RQ/Property/PropertyTypeID Integer M, X See ListPropertyTypes method
Push_PutProperty_RQ/Property/ObjectTypeID Integer M, X See ListOTAPropertyTypes method
Push_PutProperty_RQ/Property/NoOfUnits Integer O, X Number of units in the multi unit property. Number of units can be increased, but cannot be decreased in future updates
Push_PutProperty_RQ/Property/Floor Integer M, X Apartment floor. If it's a house and providing floor info does not make much sense, you can just put 1.
Push_PutProperty_RQ/Property/Street String(300) M, X Property's street details (street name, building/flat number)
Push_PutProperty_RQ/Property/ZipCode String(30) M, X Property's zip code
Push_PutProperty_RQ/Property/Coordinates C, X Property's geographical coordinates
Push_PutProperty_RQ/Property/Coordinates/Latitude String(50) M Geographic latitude
Push_PutProperty_RQ/Property/Coordinates/Longitude String(50) M Geographic longitude
Push_PutProperty_RQ/Property/Distances C, O, X A collection of distances to main city attractions/points of interest
Push_PutProperty_RQ/Property/Distances/Distance C Distance details
Push_PutProperty_RQ/Property/Distances/Distance/DestinationID Integer M See ListDestinations
Push_PutProperty_RQ/Property/Distances/Distance/DistanceUnitID Integer M See ListDistanceUnits
Push_PutProperty_RQ/Property/Distances/Distance/DistanceValue Decimal (5,2) M Value of distance in distance units
Push_PutProperty_RQ/Property/CompositionRoomsAmenities C, O, X A collection of rooms with amenities, the amenities will be assigned to the specified room. Any general amenities (e.g. parking or wireless internet connection) should be defined in Push_PutProperty_RQ/Property/Amenities element
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities C, M A single room
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities@CompositionRoomID Integer M See ListCompositionRooms
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities C, O A collection of amenities available in the specified room
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities/Amenity Integer M See ListAmenitiesAvailableForRooms
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities/Amenity@Count Integer M Number of each amenity
Push_PutProperty_RQ/Property/Amenities C, O, X A collection of apartment amenities
Push_PutProperty_RQ/Property/Amenities/Amenity Integer M See ListAmenities
Push_PutProperty_RQ/Property/Amenities/Amenity@Count Integer M Amount of each amenity
Push_PutProperty_RQ/Property/Images C, O, X A collection of property images
Push_PutProperty_RQ/Property/Images/Image String(300) M Image url
Push_PutProperty_RQ/Property/Images/Image@ImageTypeID Integer M Image type. See ListImageTypes
Push_PutProperty_RQ/Property/Images/Image@ImageReferenceID String O ID to reference Captions to Image
Push_PutProperty_RQ/Property/ImageCaptions O A collection of image captions
Push_PutProperty_RQ/Property/ImageCaptions/ImageCaption String(255) M Image caption description
Push_PutProperty_RQ/Property/ImageCaptions/ImageCaption@LanguageID Integer M Language of the description see ListLanguages
Push_PutProperty_RQ/Property/ImageCaptions/ImageCaption@ImageReferenceID String M ID referencing property image to which assign caption
Push_PutProperty_RQ/Property/ArrivalInstructions C, M, X Property arrival instructions
Push_PutProperty_RQ/Property/ArrivalInstructions/Landlord String(100) M, X Name of the property's landlord
Push_PutProperty_RQ/Property/ArrivalInstructions/Email String(100) M, X Landlord's email address
Push_PutProperty_RQ/Property/ArrivalInstructions/Phone String(100) M, X Landlord's phone number (with the country code)
Push_PutProperty_RQ/Property/ArrivalInstructions/DaysBeforeArrival Integer M, X The amount of days before arriving in which the guest should contact the landlord
Push_PutProperty_RQ/Property/ArrivalInstructions/HowToArrive C, M, X Instructions how to arrive
Push_PutProperty_RQ/Property/ArrivalInstructions/HowToArrive/Text String(40000) O Text that describe how to arrive to the property. Use CDATA if text contains special characters.
Push_PutProperty_RQ/Property/ArrivalInstructions/HowToArrive/Text@LanguageID Integer M Code that identifies the language of the description
Push_PutProperty_RQ/Property/ArrivalInstructions/PickupService C, M, X
Push_PutProperty_RQ/Property/ArrivalInstructions/PickupService/Text String(40000) O Text that describes the pickup service. Value returned as CDATA
Push_PutProperty_RQ/Property/ArrivalInstructions/PickupService/Text@LanguageID Integer M Code that identifies the language of the description
Push_PutProperty_RQ/Property/CheckInOut C, M, X Check in, check out details
Push_PutProperty_RQ/Property/CheckInOut/CheckInFrom String(5) M, X Accepted check in time – from (HH:MM format, 24h format)
Push_PutProperty_RQ/Property/CheckInOut/CheckInTo String(5) M, X Accepted check in time – to (HH:MM format, 24h format)
Push_PutProperty_RQ/Property/CheckInOut/CheckOutUntil String(5) M, X The latest check out time (HH:MM format, 24h format)
Push_PutProperty_RQ/Property/CheckInOut/Place String(100) M, X The location where the Place check in takes place
Push_PutProperty_RQ/Property/CheckInOut/LateArrivalFees C, O, X A collection of fees for late arrivals by arrival time (separable ranges)
Push_PutProperty_RQ/Property/CheckInOut/LateArrivalFees/Fee Decimal (19,2) M Fee for a late arrival. The maximum accepted value is 214748.36
Push_PutProperty_RQ/Property/CheckInOut/LateArrivalFees/Fee@From String(5) M Start hour of a range (HH:MM format, 24h format)
Push_PutProperty_RQ/Property/CheckInOut/LateArrivalFees/Fee@To String(5) M End hour of a range (HH:MM format, 24h format)
Push_PutProperty_RQ/Property/CheckInOut/EarlyDepartureFees C, O, X A collection of fees for early departures by arrival times (separable ranges)
Push_PutProperty_RQ/Property/CheckInOut/EarlyDepartureFees/Fee Decimal (19,2) M Fee for an early departure. The maximum accepted value is 214748.36
Push_PutProperty_RQ/Property/CheckInOut/EarlyDepartureFees/Fee@From String(5) M Start hour of a range (HH:MM format, 24h format)
Push_PutProperty_RQ/Property/CheckInOut/EarlyDepartureFees/Fee@To String(5) M End hour of a range (HH:MM format, 24h format)
Push_PutProperty_RQ/Property/PaymentMethods C, M A collection of acceptable payment methods
Push_PutProperty_RQ/Property/PaymentMethods/PaymentMethod String(1000) M, X Payment method details, i.e. Bank account. Use CDATA if the text contains special characters.
Push_PutProperty_RQ/Property/PaymentMethods/PaymentMethod@PaymentMethodID Integer M Payment method. See ListPaymentMethods
Push_PutProperty_RQ/Property/TermsAndConditionsLinks C, O, X A collection of terms and conditions
Push_PutProperty_RQ/Property/TermsAndConditionsLinks/TermsAndConditionsLink C, M Property terms and conditions
Push_PutProperty_RQ/Property/TermsAndConditionsLinks/TermsAndConditionsLink@LanguageID Integer M Language ID, See ListLanguages
Push_PutProperty_RQ/Property/TermsAndConditionsLinks/TermsAndConditionsLink/Text String(200) M URL link of Terms and conditions in the selected language. Accepted http,https,ftp URL
Push_PutProperty_RQ/Property/Deposit Decimal (19,2) M Deposit amount depending on the deposit type. In case deposit is of 16%, then the value supplied should be be 16.00 along with DepositTypeID(2 or 3) suitable for percentage values.
Push_PutProperty_RQ/Property/Deposit@DepositTypeID Integer M Deposit type. See ListDepositTypes
Push_PutProperty_RQ/Property/CancellationPolicies C, M, X A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Push_PutProperty_RQ/Property/CancellationPolicies/CancellationPolicy Decimal (19,2) M A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Push_PutProperty_RQ/Property/CancellationPolicies/CancellationPolicy@ValidFrom Integer M Start of the range when the policy is valid
Push_PutProperty_RQ/Property/CancellationPolicies/CancellationPolicy@ValidTo Integer M End of the range when the policy is valid
Push_PutProperty_RQ/Property/CancellationPoliciesText C, O, X A collection of cancellation policies as text
Push_PutProperty_RQ/Property/CancellationPoliciesText/CancellationPolicyText C, M Property cancellationPolicyText
Push_PutProperty_RQ/Property/CancellationPoliciesText/CancellationPolicyText@LanguageID Integer M Code that identifies the language of the cancellation policy text
Push_PutProperty_RQ/Property/CancellationPoliciesText/CancellationPolicyText/Text String(40000) M Text that describes the cancellation policy
Push_PutProperty_RQ/Property/CancellationPoliciesText/CancellationPolicyText/Image String(600) O Image that descibes the cancellation policy
Push_PutProperty_RQ/Property/Descriptions C, O, X A collection of descriptions
Push_PutProperty_RQ/Property/Descriptions/Description C, M Property description
Push_PutProperty_RQ/Property/Descriptions/Description@LanguageID Integer M Code that identifies the language of the description
Push_PutProperty_RQ/Property/Descriptions/Description/Text String(40000) M Text that describes the property. Use CDATA if the text contains special characters. Do not decode special characters inside CDATA. Most of the Sales Channels do not accept HTML in property description.
Push_PutProperty_RQ/Property/Descriptions/Description/Space String(40000) O Additional information about the property space - what makes it unique and how many people it comfortably fits
Push_PutProperty_RQ/Property/Descriptions/Description/Access String(40000) O Additional information about the access to the property - what parts of the space the guests will be able to access
Push_PutProperty_RQ/Property/Descriptions/Description/Interaction String(40000) O Additional information about the interaction with the host - how much the host will interact with the guests and if the host will be present during the guest stay
Push_PutProperty_RQ/Property/Descriptions/Description/Neighborhood String(40000) O Additional information about the property neighborhood - what can be found in the neighbourhood and the surrounding region as well as suggestions about places to visit and unique experiences
Push_PutProperty_RQ/Property/Descriptions/Description/Notes String(40000) O Additional notes
Push_PutProperty_RQ/Property/Descriptions/Description/HouseRules String(40000) O Additional information about the house rules - instructions for guests on how to behave at the property. It should also include information whether pets are allowed and if there are rules about smoking
Push_PutProperty_RQ/Property/Descriptions/Description/Headline String(80) O Additional information about the property headline
Push_PutProperty_RQ/Property/Descriptions/Description/WhyPurchased String(40000) O Additional information about why the property was purchased
Push_PutProperty_RQ/Property/Descriptions/Description/OwnerListingStory String(40000) O Additional information about the property story, for example how the owner came to own the property and what makes it so special to the owner
Push_PutProperty_RQ/Property/Descriptions/Description/WiFiName String(40000) O Additional information about the WiFi
Push_PutProperty_RQ/Property/Descriptions/Description/AdditionalInfo String(40000) O Additional information
Push_PutProperty_RQ/Property/Descriptions/Description/LocationDesc String(40000) O Additional description about the property location
Push_PutProperty_RQ/Property/SecurityDeposit Decimal (8,2) O, X Refundable security deposit amount depending on the deposit type. In case deposit is of 16%, then the value supplied should be be 16.00 along with DepositTypeID(2 or 3) suitable for percentage values.
Push_PutProperty_RQ/Property/SecurityDeposit@DepositTypeID Integer M Deposit type. See ListDepositTypes
Push_PutProperty_RQ/Property/AdditionalFees C, O, X Collection of additional fees/taxes. It cannot be sent together with Push_PutProperty_RQ/Property/ChargeProfiles.
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee/Value Decimal (10,4) M The value of an additional fee/tax. If the discriminator of a percentage type is used, the value must be divided by 100. Hence, a 15% discriminator should be passed as 0.15.
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@KindID Integer M Additional fee/tax kind. See ListAdditionalFeeKinds. DEPRECATED and left only for backwards compatibility, you can omit it if you provide @FeeTaxType.
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@FeeTaxType Integer M Type of the fee/tax. See ListAdditionalFeeTypes.
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@DiscriminatorID Integer M It specifies how the fee/tax should be calculated (per night, per person, etc.). See ListAdditionalFeeDiscriminators.
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@CollectTime Integer O When the fee/tax should be collected (1 - upon booking, 2 - upon arrival). If not specified, the default value is set to: 1 - upon booking. Collect time is currently supported by Expedia and Trip.com only. All other sales channels treat all fees/taxes as to be paid upon booking.
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@Optional Boolean O It specifies if the fee/tax is optional or obligatory. The default value is @Obligatory. Note that taxes usually are obligatory while fees may be optional.
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@Name String (200) O A custom fee/tax name for the presentation purposes only. Do not put important details about fee calculation here. The name must be unique.
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@Order Integer M Additional fees/taxes order. The order is important in case the discriminator is set to cumulative.
Push_PutProperty_RQ/Property/ChargeProfiles C, O, X Collection of charge profiles. It cannot be sent together with. Push_PutProperty_RQ/Property/AdditionalFees.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile M, X Collection of ApplicableAdditionalFee. Currently only one charge profile is allowed.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/@ID Integer O ID of the charge profile. The default value is 0. Currently, only the 0 value is allowed.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/Value Decimal (10,4) O The default value is 0.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@FeeTaxType Integer M Type of the fee/tax. You are allowed to use only values specified in ListAdditionalFeeTypes except the Unknown value.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@DiscriminatorID Integer M It specifies how the fee/tax should be calculated (per night, per person, etc.). See ListAdditionalFeeDiscriminators.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@CollectTime Integer O When the fee/tax should be collected (1 - upon booking, 2 - upon arrival). If not specified, the default value is set to 1 - upon booking. Collect time is currently supported by Expedia and Trip.com only. All other sales channels treat all fees as to be paid upon booking.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@Optional Boolean O It specifies if the fee is optional or obligatory. The default value is @Obligatory. Note that taxes usually are obligatory while fees may be optional.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@Name String (200) M Fee/tax name used to identify fees in Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/FeeNames. The name must be unique.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo C, M Container of line items to which applicable additional fee/tax applies. It is mandatory for the percentage charges and can be omitted for the flat ones.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/FeeNames C, M Container of Fee Names to which applicable additional fee/tax applies. Optional if the additional charge applies to rent, otherwise at least one item needs to be provided.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/FeeName String (200) M Fee name to which applicable additional fee/tax applies.
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFees/ApplicableAdditionalFee/ApplicableTo/Rent Boolean O It defines if applicable additional fee/tax applies to rent. The default value is false.
Push_PutProperty_RQ/Property/LicenceInfo O Information about various legislation issues, registration and tourist licence; might be required for some sales channels.
Push_PutProperty_RQ/Property/LicenceInfo/IsExempt Boolean O Should be delivered as “true” if local law does not require licence number
Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber String (200) O Licence number issued by appropriate local authorities
Push_PutProperty_RQ/Property/LicenceInfo/IssueDate Date O Date the licence was issued
Push_PutProperty_RQ/Property/LicenceInfo/ExpirationDate Date O Date the licence is valid to
Push_PutProperty_RQ/Property/LicenceInfo/IsVATRegistered Boolean O Is the property not obliged to have any licence under the local law. Pass “true” to let us know you did not skip LicenceNumber field, but you really don’t have it.
Push_PutProperty_RQ/Property/LicenceInfo/ExemptionReason String O Reason the property does not need the license. Use if it’s any of the reasons below: AustraliaNewSouthWalesHotelMotel, AustraliaNewSouthWalesServicedApartment, AustraliaNewSouthWalesBackpackerAccomodation, AustraliaNewSouthWalesCampingGround, AustraliaNewSouthWalesEcotouristFacility, AustraliaNewSouthWalesMoveableDwelling, AustraliaNewSouthWalesOtherExemptAccommodation, AustraliaTasmaniaHomeSharing, AustraliaTasmaniaLandUse, AustraliaTasmaniaTraditionalHospitality, CanadaHotelOrMotel, CanadaEventSpace, CanadaLocationExempt, FranceBedBreakfast, FranceDependentRoom, FranceMobilityLease, GreeceBoat, GreeceLeasing, GreeceMtAthos, GreecePublicStateProperty, GreeceRightHabitation, GreeceTrailerMobileHome, HawaiiHonoluluHotelOrMotel, JapanHotelsAndInnsAct, JapanEconomicZoningAct, JapanEventMinpakuStay, NetherlandsCampgroung, NetherlandsHotelOrMotel, NetherlandsNonResidentialApartment, PortugalListingIsNotAFullBuilding, PortugalListingHasARegisteredUrbanLeaseContract, PendingApplication, SpainAndalusiaListingTypeNotIncluded, SpainAndalusiaNotATouristAccomodation, SpainCataloniaListingNotFullBuilding, SpainCataloniaListingIsSharedRoom, SpainCataloniaOtherExemptionReason, SpainLongTermRentalAttestation, USABedAndBreakfast, USAHotelOrMotel, USABostonHotelMotel, USABostonBedBreakfastLodging, USABostonInstitutionalBusiness, USABostonHospitals, USASantaMonicaLicensedHotelOrBb, SicilyInProgress, LongTermBookingsOnly, TransientOccupancy, OutsideBoundaries, USANewYorkClassB, USASanFranciscoCorporateProperty, HotelOrMotel, BedAndBreakfast, CyprusTouristicAccommodation
Push_PutProperty_RQ/Property/LicenceInfo/IsManagedByOwner Boolean O Is the rental managed by its owner – information required by Catalonian and Portugese law.
Push_PutProperty_RQ/Property/LicenceInfo/IsManagedByPrivatePerson Boolean O Is the rental managed by a private person or a company. For now needed for French properties pushed to booking.com.
Push_PutProperty_RQ/Property/LicenceInfo/LicenceType String O For countries that require specific declaration of licence type. Use one of the following values GreeceShortTermLeaseRegister, GreeceEOT, GreeceMAG, Pending, CanadaPrincipalResidenceEstablishment, CanadaYouthTouristAccommodationEstablishment, CanadaGeneralTouristAccommodationEstablishment, BedAndBreakfast, Hotel, HomeSharing, TransientOccupancyResidentialStructure, TouristicAccommodation
Push_PutProperty_RQ/Property/LicenceInfo/BrazilianLicenceInfo C, O The registration information required by Brazilian authorities
Push_PutProperty_RQ/Property/LicenceInfo/BrazilianLicenceInfo/CityHallInfoId String O The 8-digit ID for the city hall which issued the CNPJ or CPF number.
Push_PutProperty_RQ/Property/LicenceInfo/DenmarkLicenceInfo O Data required because of the new law in Denmark. Skip it for properties located outside Denmark.
Push_PutProperty_RQ/Property/LicenceInfo/DenmarkLicenceInfo/TypeOfProperty String O Type of property according do Danish law. Possible values: primary_residence, houseboat, tent, tree_house, hotel_or_hostel, serviced_apartment, trailer, mobile_home, summer_house.
Push_PutProperty_RQ/Property/LicenceInfo/JapaneseLicenceInfo C, O Licencing data required by Japanese law. Please contact us for details
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo O Data required because of the new law in France effective from January 2019. Skip it for properties located outside France.
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/IsRegisteredAtTradeCommercialRegister Boolean O Is registered as a professional at the trade commercial register (Registre du Commerce et des Sociétés)
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/PropertyTypeForTaxPurposes String O Type of property in terms of French law to determine proper City Tax Category. Needed in some regions of France. Possible values: FurnishedTourism, TouristHotel, OutdoorAccommodations, HolidayVillage, TouristResidence, Bnb, CarsiteParkingLot, Marinas, Palaces
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/DeclaresRevenuesAsProfessionalForDirectTaxPurposes Boolean O Does the owner declare revenues as professional for direct tax purposes (see article 155 IV du CGI)
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/TypeOfResidence Integer O Type of residence according to the French law. Possible values: 1-3 1 – Primary 2 – Secondary 3 - Other
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/CityTaxCategory Integer O You only need to specify it if all three out of DeclaresRevenuesAsProfessionalForDirectTaxPurposes, IsRegisteredAtTradeComme rcialRegister and IsVATRegistered are "false". Possible values: 11-19 11 - palaces 12 - 5 star tourist hotels, 5 star tourist residences, 5 star furnished tourism 13 - 4 star tourist hotels, 4 star tourist residences, 4 star furnished tourist accommodation 14 - 3 star tourist hotels, 3 star tourist residences, 3 star furnished tourist accommodation 15 - 2-star tourist hotels, 2- star tourist residences, 2- star furnished holiday homes, 4 and 5-star holiday villages 16 - 1-star tourist hotels, 1- star tourist residences, 1- star furnished holiday homes, 1,2 and 3-star holiday villages, bed and breakfasts, RV parks and tourist parking lots for each 24 hours 17 - Campgrounds and caravan parks classified in 3,4 and 5 stars 18 - Campsites and caravan parks classified in 1 and 2 stars, marinas 19 - Accommodations awaiting classification or without classification
Push_PutProperty_RQ/Property/LicenceInfo/HungarianLicenceInfo String C, O Licencing data required by Hungarian law.
Push_PutProperty_RQ/Property/LicenceInfo/HungarianLicenceInfo/PropertyType String O Allowed values are: hotel, pension, campsite, holiday_cottage_resort, community_accommodation, private_accommodation, private_accommodation_rural, other_accommodation, other_accommodation_rural
Push_PutProperty_RQ/Property/LicenceInfo/TasmanianLicenceInfo C, O Data required because of the law in Tasmania. Skip it for properties located outside Tasmania.
Push_PutProperty_RQ/Property/LicenceInfo/TasmanianLicenceInfo/TypeOfResidence String(50) O "Primary" or "NonPrimary"
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo C, O Data required because of the law in Hawaii. Skip it for properties located outside Hawaii.
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo/LandParcelIdentificationNumber String O Parcel Number (Tax Map Key)
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo/GeneralExciseTaxID String O General Excise Tax ID
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo/TransientAccomodationsTaxNumber String O Transient Accommodations Tax license number
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo/PropertyUnitNumber String O Property’s Unit Number. You are required to add the unit number for the property field if- (1) your property is located in an apartment building, multifamily dwelling, cooperative, or other development with more than one dwelling unit per zoning lot(multi-unit development) and (2) the last four digits of the property’s TMK number does not correspond to the property’s unit number.
Push_PutProperty_RQ/Property/LicenceInfo/UKLicenceInfo O Data required because of the new law in United Kingdom. Skip it for properties located outside United Kingdom.
Push_PutProperty_RQ/Property/LicenceInfo/UKLicenceInfo/IsLondonCityNightCapConsented Boolean O Specifies if there is a consent to the Airbnb's attestation about a cap on the number of nights in London City.
Push_PutProperty_RQ/Property/LicenceInfo/UKLicenceInfo/EnergyRating String O Accepted values: A,B,C,D,E,F,G
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo O Data required because of the law in USA. Skip it for properties located outside of the USA.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/PropertyIsLicencedHotel Boolean O Is property a licenced hotel.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/BusinessLicenceNumber String(50) O Business licence number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/OperatorPermitNumber String(50) O Operator permit number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/OperatorPermitNumberExpirationDate Date O Expiration date of the operator permit number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/TDTNumber String(50) O Tourist Development Tax number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber String(50) O There are two types of licences possible to provide in Washington DC. Depending on its type, you should provide different information.
-If you have an Unhosted (VR) licence only, provide it in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber
-If you have a Hosted (STR) licence only:
1. Provide Hosted (STR) licence number in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber
2. Provide the same Hosted (STR) licence number again in Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber.
-If you have both Unhosted (VR) and Hosted (STR) licences:
1. Provide Unhosted (VR) licence number in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber
2. Provide Hosted (STR) licence number in Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/TLTLicenceNumber String(50) O Transient lodging tax licence number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/PortlandApplicationType String(50) O Portland application type. Possible values: TypeA - You’ll need a Type A permit if you host 1-2 bedrooms in your space. It costs $65-$105 and can take up to 120 days to obtain from the city, TypeB - You’ll need a Type B permit if you host 3-5 bedrooms in your space. It costs $5,800 and can take up to a year to obtain from the city.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/MassachusettsTaxCollectionType String O Tax collection type in Massachusetts. Possible values: Type1 - Your listing is one of multiple that you host in the same city, and it’s not located in a single, two, or three-family dwelling that includes your primary residence, Type2 - Your listing is located in a two or three-family dwelling that includes your primary residence.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/BostonShortTermRentalLicenceNumber String(50) O Boston STR licence number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LosAngelesExtendHomeSharingApproval Boolean O Has property extended sharing approval.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAFirstName String O First name.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LALastName String O Last name.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAUnitNumber String O Unit number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAStreetNumber String O Street number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAStreetName String O Street name.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAZipCode String O Zip code.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/MiamiBeachBusinessTaxReceipt String O The Business Tax Receipt number.
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYBorough String O New York Borough used in Booking.com. Possible values: Queens, Manhattan, TheBronx, StatenIsland, Brooklyn
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderName String O Licence holder name used in License_holder_details licecning information
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderLastName String O Licence holder last name name used in License_holder_details licecning information
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderStreetNumber String O Licence holder street number used in License_holder_details licecning information
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderStreetName String O Licence holder street name used in License_holder_details licecning information
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYClassBAddressNumber String O Address number used in Class B icecning information
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYClassBStreetName String O Street name used in Class B icecning information
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYClassBZipCode String O Zip Code used in Class B icecning information
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/SanDiegoBTRNumber String O San Diego BTR Number
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/SanDiegoTier Integer O San Diego licence tier number (1-4)
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/WashingtonClassification String O Washington DC license classification. Possible values: ShortTermRental, ShortTermRentalVacationRental, LodgingBusinessLicense
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/CertificateOfUse String O Certificate of use number
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/PropertyType String O Possible values: primary, secondary
Push_PutProperty_RQ/Property/LicenceInfo/ScottishLicenceInfo C, O DEPRECATED. Data required because of the law in Scotland. Skip it for properties located outside of Scotland.
Push_PutProperty_RQ/Property/LicenceInfo/ScottishLicenceInfo/ScotlandEnergyRating~ String O DEPRECATED. Use Property/LicenceInfo/UKLicenceInfo/EnergyRating
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo O Data required because of the law in Spain. Skip it for properties located outside of Spain.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/IsApplicableTaxDegree Boolean O Information if tax degree is applicable or not.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Block String(50) O Block information.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/ComplementaryInfo String(50) O Complementary information.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Door String(50) O Door information.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Floor String(50) O Floor information.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Gate String(50) O Gate information.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/HouseNumber String(50) O House number.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/MunicipalCode String(50) O Municipal code.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/NumberType String O Type of number. Possible values: Number, Kilometer, WithoutNumber, Other.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/NumberQualifier String(50) O Number qualifier.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Staircase String(50) O Staircase information.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/StreetName String(50) O Street name.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/StreetType String(50) O Type of street.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/ProvinceCode String O Province code. Possible value: ArabaAlava, Albacete, AlicanteAlacant, Almeria, Avila, Badajoz, IllesBalears, Barcelona, Burgos, Caceres, Cadiz, CastellonCastello, CiudadReal, Cordoba, Coruna, Cuenca, Girona, Granada, Guadalajara, GuipuzcoaGuipuzkoa, Huelva, Huesca, Jaen, Leon, Lleida, Rioja, Lugo, Madrid, Malaga, Murcia, Navarra, Ourense, Asturias, Palencia, Palmas, Pontevedra, Salamanca, Sctenerife, Cantabria, Segovia, Sevilla, Soria, Tarragona, Teruel, Toledo, Valencia, Valladolid, VizcayaBizkaia, Zamora, Zaragoza
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/CadastralNumber String(50) O Cadastral number.
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/CadastralType String(50) O Type of cadastral. Possible values: Spain, PaisVasco, Navarra, NoCadastralReference.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos C, O List of Owners' licence Infos.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo C, O Owner's licence info.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerEmail String(50) O Owner's email adress.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerMailingAddress String(50) O Owner's mailing address.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerName String(50) O Owner's name.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerPhone String(50) O Owner's phone number.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerCitizenship String(2000) O Owner's citizenship. See Pull_ListCitizenships_RQ.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/DoesOwnerHasSpanishIdentificationNumber Boolean O Does owner have Spanish identification number?
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerSpanishIdentificationNumber String(50) O Owner's Spanish identification number. Provided if owner has Spanish identification number.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationType String O Owner's identification type. Provided if owner doesn't have Spanish identification number. Possible values: IdVat, Passport, IdCard, ResidenceCertificate, AnotherProbatoryDocument, NotRegistered, PersonalPublicServiceNumber.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/NonSpanishIdentificationNumber String(50) O DEPRECATED. Use IdentificationNumber.
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationNumber String(50) O Owner's identification number.
Push_PutProperty_RQ/Property/LicenceInfo/BusinessTaxLicenceInfo C, O Business Tax licence info.
Push_PutProperty_RQ/Property/LicenceInfo/BusinessTaxLicenceInfo/BusinessTaxID String(50) O Business Tax ID.
Push_PutProperty_RQ/Property/LicenceInfo/BusinessTaxLicenceInfo/BusinessTaxIDNotSpecified Boolean O Information if Business Tax ID is provided or not.
Push_PutProperty_RQ/Property/LicenceInfo/TOTRegistrationLicenceInfo C, O Transient Occupancy Tax Registration licence info.
Push_PutProperty_RQ/Property/LicenceInfo/TOTRegistrationLicenceInfo/TOTRegistrationID String(50) O Transient Occupancy Tax Registration ID.
Push_PutProperty_RQ/Property/LicenceInfo/TOTRegistrationLicenceInfo/TOTRegistrationIDNotSpecified Boolean O Information if Transient Occupancy Tax Registration ID is provided or not.
Push_PutProperty_RQ/Property/PreparationTimeBeforeArrival Integer O DEPRECATED. Use PreparationTimeBeforeArrivalInHours.
Push_PutProperty_RQ/Property/PreparationTimeBeforeArrivalInHours Integer O Sets Preparation Time Before Arrival in hours for this property. To remove PTBA from apartment negative value must be sent.
Push_PutProperty_RQ/Property/NumberOfStars Integer O Star rating of the property (1-5)

Response

<!-- The first push completed succesfully-->
<Push_PutProperty_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
  <ID>1234567</ID>
</Push_PutProperty_RS>

<!-- Completed succesfully-->
<Push_PutProperty_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_PutProperty_RS>

<!-- Error occurred-->
<Push_PutProperty_RS>
 <Status ID="4">Wrong authentication data</Status>
 <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_PutProperty_RS>
XML Path Data Type Type Description
Push_PutProperty_RS C Root element
Push_PutProperty_RS/Status String(100) M See ListStatuses
Push_PutProperty_RS/Status@ID Integer M See ListStatuses
Push_PutProperty_RS/ResponseID String(32) M Unique response ID
Push_PutProperty_RS/Notifs C Root element. Indicates that some data could not be processed.
Push_PutProperty_RS/Notifs/@StatusID Integer M See ListStatuses
Push_PutProperty_RS/Notifs/Notif String M See [ListStatuses](#list-statuses

Set properties status

This method allows you to set status for multiple properties in Rentals United.

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;
using System.Collections.Generic;

Push_SetPropertiesStatus_RQ request = new Push_SetPropertiesStatus_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    IsActive = false,
    IsArchived = false,
    PropertyIDs = new List<int>() { 1, 4, 13 }
};

string xmlBody = XmlTools.SerializeObject<Push_SetPropertiesStatus_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_SetPropertiesStatus_RS response = XmlTools.DeserializeObject<Push_SetPropertiesStatus_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Request

<Push_SetPropertiesStatus_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <IsActive>0</IsActive>
  <IsArchived>0</IsArchived>
  <PropertyIDs>
    <PropertyID>1</PropertyID>
    <PropertyID>4</PropertyID>
    <PropertyID>13</PropertyID>
  </PropertyIDs>
</Push_SetPropertiesStatus_RQ>
XML Path Data Type Type Description
Push_SetPropertiesStatus_RQ C Root element
Push_SetPropertiesStatus_RQ/Authentication C, M Authentication details
Push_SetPropertiesStatus_RQ/Authentication/UserName String(50) M Username
Push_SetPropertiesStatus_RQ/Authentication/Password String(50) M Password
Push_SetPropertiesStatus_RQ/IsActive Boolean O Activate (True/1) or deactivate (False/0) properties for the specified IDs. If not provided, the value will not be changed for the specified properties.
Push_SetPropertiesStatus_RQ/IsArchived Boolean O Archive (True/1) or restore (False/0) properties for the specified IDs. If not provided, the value will not be changed for the specified properties.
Push_SetPropertiesStatus_RQ/PropertyIDs C, M A collection of property IDs
Push_SetPropertiesStatus_RQ/PropertyIDs/PropertyID Integer M Single property ID

Response

<!-- Completed successfully -->
<Push_SetPropertiesStatus_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_SetPropertiesStatus_RS>

<!-- Error occurred -->
<Push_SetPropertiesStatus_RS>
  <Status ID="17">Unexpected error, contact IT or try again</Status>
</Push_SetPropertiesStatus_RS>
XML Path Data Type Type Description
Push_SetPropertiesStatus_RS C Root element
Push_SetPropertiesStatus_RS/Status String(100) M See ListStatuses
Push_SetPropertiesStatus_RS/Status@ID Integer M See ListStatuses
Push_SetPropertiesStatus_RS/ResponseID String(32) M Unique response ID
Push_SetPropertiesStatus_RS/Warnings C, O Collection of warnings. Warnings do not block the whole process
Push_SetPropertiesStatus_RS/Warnings/Warning String(100) M Warning for the specific property from the specified IDs.
Push_SetPropertiesStatus_RS/Warnings/Warning@StatusID Integer M ID of the status message. SeeListStatuses for details.
Push_SetPropertiesStatus_RS/Warnings/Warning@ID Integer M Property's ID

Put property external listing

This method is designed for Sales Channels to provide information about listing status in the Sales Channel. Use this method to insert current status of a given property in your Sales Channel.

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyExternalListing;
using System.Collections.Generic;

Push_PutPropertyExternalListing_RQ request = new Push_PutPropertyExternalListing_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Properties = new List<PropertyPutInfo>() 
    {
        new PropertyPutInfo()
        {
            PropertyID = 0,
            Url = "http://someAgency.com/apartment0",
            Status = 1,
            Description = "Online but the property plan will be nice"
        },
        new PropertyPutInfo()
        {
            PropertyID = 1,
            Url = "http://someAgency.com/apartment1",
            Status = 1,
            Description = "everything ok"
        }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutPropertyExternalListing_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutPropertyExternalListing_RS response = XmlTools.DeserializeObject<Push_PutPropertyExternalListing_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Request

<Push_PutPropertyExternalListing_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <Properties>
    <Property ID="0">
      <Url>http://someAgency.com/apartment0</Url>
      <Status>1</Status>
      <Description>Online but the property plan will be nice</Description>
    </Property>
    <Property ID="1">
      <Url>http://someAgency.com/apartment1</Url>
      <Status>1</Status>
      <Description>everything ok</Description>
    </Property>
  </Properties>
</Push_PutPropertyExternalListing_RQ>
XML Path Data Type Type Description
Push_PutPropertyExternalListing_RQ C Root element
Push_PutPropertyExternalListing_RQ/Authentication C, M Authentication details
Push_PutPropertyExternalListing_RQ/Authentication/UserName String(50) M Username
Push_PutPropertyExternalListing_RQ/Authentication/Password String(50) M Password
Push_PutPropertyExternalListing_RQ/Properties C A collection of properties
Push_PutPropertyExternalListing_RQ/Properties/Property C Single property
Push_PutPropertyExternalListing_RQ/Properties/Property@ID Integer M Unique property ID
Push_PutPropertyExternalListing_RQ/Properties/Property/Url String(300) M Url to external service
Push_PutPropertyExternalListing_RQ/Properties/Property/Status Integer M ID of the status to be set (see ListPropertyExternalStatuses). Passing "Requested publishing" or "Requested removal" statuses is not allowed here
Push_PutPropertyExternalListing_RQ/Properties/Property/Description String(500) M Additional information for the owner, e.g. "property is online, but the property plan is missing, we need this", "property is not online, amenities are missing"

Response

<Push_PutPropertyExternalListing_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_PutPropertyExternalListing_RS>
XML Path Data Type Type Description
Push_PutPropertyExternalListing_RS C Root element
Push_PutPropertyExternalListing_RS/Status String(100) M See ListStatuses
Push_PutPropertyExternalListing_RS/Status@ID Integer M See ListStatuses
Push_PutPropertyExternalListing_RS/ResponseID String(32) M Unique response ID

Push standard number of guests

This method has been designed to update number of people included in the seasonal price for a given property. It can be used by property providers and Revenue Management Systems.

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;

Push_StandardNumberOfGuests_RQ request = new Push_StandardNumberOfGuests_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Property = new PropertyStandardOfGuestInfoOnly() 
    {
        ID = new IDIfo() { ID = 1 },
        StandardGuests = 2
    }
};

string xmlBody = XmlTools.SerializeObject<Push_StandardNumberOfGuests_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_StandardNumberOfGuests_RS response = XmlTools.DeserializeObject<Push_StandardNumberOfGuests_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Request

<Push_StandardNumberOfGuests_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <Property>
    <ID>1</ID>
    <StandardGuests>2</StandardGuests>
  </Property>
</Push_StandardNumberOfGuests_RQ>
XML Path Data Type Type Description
Push_StandardNumberOfGuests_RQ Integer C Root element
Push_StandardNumberOfGuests_RQ/Authentication C, M Authentication details
Push_StandardNumberOfGuests_RQ/Authentication/UserName String(50) M Username
Push_StandardNumberOfGuests_RQ/Authentication/Password String(50) M Password
Push_StandardNumberOfGuests_RQ/Property C Single property
Push_StandardNumberOfGuests_RQ/Property/ID Integer O Unique property ID, use this element if you want to update an already uploaded property
Push_StandardNumberOfGuests_RQ/Property/StandardGuests Integer M, X Number of guest included in the base price

Response

Example (completed successfully)

<Push_StandardNumberOfGuests_RS>
  <Status ID="0">Success</Status>
  <ResponseId>85f7f6d1c13348b7a426600c17cffaf3</ResponseId>
</Push_StandardNumberOfGuests_RS>

Example (error occurred)

<Push_PutProperty_RS>
  <Status ID="97">Standard number of guests must be a positive value </Status>
  <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_PutProperty_RS>
XML Path Data Type Type Description
Push_StandardNumberOfGuests_RS C Root element
Push_StandardNumberOfGuests_RS/Status String(100) M See ListStatuses
Push_StandardNumberOfGuests_RS/Status@ID Integer M See ListStatuses
Push_StandardNumberOfGuests_RS/ResponseID String(32) M Unique response ID

Push methods - Availability and prices

These methods have been designed to insert non static data (ARI) into Rentals United. You can push availability (including multiunit), rates, minimum stay (MLOS), changeover days and discounts.

Upload available units

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyAvailabilityCalendarMultiUnit;

Push_PutAvbUnits_RQ request = new Push_PutAvbUnits_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    MuCalendar = new MUCalendar()
    {
        PropertyId = 1,
        Availability = new MUAvailability[]
        {
            new MUAvailability()
            {
                From = new DateTime(2012, 3, 1),
                To = new DateTime(2012, 3, 4),
                NoOfAvailableUnits = 2,
                MinStay = 4,
                Changeover = 1
            },
            new MUAvailability()
            {
                From = new DateTime(2012, 3, 5),
                To = new DateTime(2012, 3, 8),
                NoOfAvailableUnits = 0,
                MinStay = 7,
                Changeover = 2
            }
        }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutAvbUnits_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutAvbUnits_RS response = XmlTools.DeserializeObject<Push_PutAvbUnits_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to upload availability, minimum stay and changeover for a property and specified date ranges.

If your property is multiunit, you can set number of available units.

In order to remove minimum stay restriction for a given date range, push minimum stay value of 1.

If you want to remove changeover day restriction, sent value of 4.

Initial calendar push should include availability for all future dates up to 2 years ahead (we will not save dates further than 3 years in advance). Subsequent updates should only include date ranges for which availability, minimum stay or changeover settings have changed in your system (delta update). Rentals United overwrites only dates you specify in the XML request and leaves other dates intact.

Request

<Push_PutAvbUnits_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <MuCalendar PropertyID="1">
    <Date From="2012-03-01" To="2012-03-04">
      <U>2</U>
      <MS>4</MS>
      <C>1</C>
    </Date>
    <Date From="2012-03-05" To="2012-03-08">
      <U>0</U>
      <MS>7</MS>
      <C>2</C>
    </Date>
  </MuCalendar>
</Push_PutAvbUnits_RQ>

XML Path Data Type Type Description
Push_PutAvbUnits_RQ C Root element
Push_PutAvbUnits_RQ/Authentication C, M Authentication details
Push_PutAvbUnits_RQ/Authentication/UserName String(50) M Username
Push_PutAvbUnits_RQ/Authentication/Password String(50) M Password
Push_PutAvbUnits_RQ/MUCalendar C, M Information about the property's availability calendar
Push_PutAvbUnits_RQ/Calendar@PropertyID Integer M Unique property ID
Push_PutAvbUnits_RQ/Calendar/Date M Information about the property availability in the given date range
Push_PutAvbUnits_RQ/Calendar/@From String(10) M Start of the range when the availability information is valid (YYYY-MM-DD format)
Push_PutAvbUnits_RQ/Calendar/@To String(10) M End of the range when the availability information is valid (YYYY-MM-DD format)
Push_PutAvbUnits_RQ/Calendar/U Integer M Number of available units
Push_PutAvbUnits_RQ/Calendar/MS Integer M Minimum length of stay
Push_PutAvbUnits_RQ/Calendar/C Integer M Changeover type ID

Response

<Push_PutAvbUnits_RS>
  <Status ID="5">An error occurred for some of the ranges</Status>
</Push_PutAvbUnits_RS>
XML Path Data Type Type Description
Push_PutAvbUnits_RS C Root element
Push_PutAvbUnits_RS/Status String(100) M See ListStatuses
Push_PutAvbUnits_RS/Status@ID Integer M See ListStatuses
Push_PutAvbUnits_RS/ResponseID String(32) M Unique response ID

Put prices

Example 1 (standard pricing)

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyPrice;

Push_PutPrices_RQ request = new Push_PutPrices_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Prices = new PricesInfo()
    {
        PropertyID = 1,
        Seasons = new List<SeasonInfo>()
        {
        new SeasonInfo
        {
            DateFrom = new DateTime(2012, 3, 1),
            DateTo = new DateTime(2012, 3, 4),
            Price = 100M,
            Extra = 10M
        },
        new SeasonInfo
        {
            DateFrom = new DateTime(2012, 4, 5),
            DateTo = new DateTime(2012, 3, 2),
            Price = 120M,
            Extra = 10M,
            EGPS = new List<EGPInfo>
            {
                new EGPInfo { ExtraGuests = 1, Price = 25M },
                new EGPInfo { ExtraGuests = 2, Price = 50M }
            }
        },
        new SeasonInfo
        {
          DateFrom = new DateTime(2012, 4, 3),
          DateTo = new DateTime(2012, 9, 8),
          Price = 120M,
          Extra = 10M,
          LOSS = new List<LOSInfo>
          {
              new LOSInfo
              {
                  Nights = 5,
                  Price = 100M,
                  LOSPS = new List<LOSPInfo>
                  {
                      new LOSPInfo { NrOfGuests = 5, Price = 150M },
                      new LOSPInfo { NrOfGuests = 6, Price = 175M }
                  }
              },
              new LOSInfo { Nights = 10, Price = 80M }
            }
        },
        new SeasonInfo
        {
            DateFrom = new DateTime(2012, 9, 9),
            DateTo = new DateTime(2013, 3, 2),
            Price = 190M,
            Extra = 20M,
            LOSS = new List<LOSInfo>
            {
                new LOSInfo { Nights = 5, Price = 160M },
                new LOSInfo { Nights = 10, Price = 140M }
            },
            EGPS = new List<EGPInfo>
            {
                new EGPInfo { ExtraGuests = 1, Price = 25M },
                new EGPInfo { ExtraGuests = 2, Price = 50M }
            }
          },
        }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutPrices_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutPrices_RS response = XmlTools.DeserializeObject<Push_PutPrices_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this mehod to upload rates for specified date ranges.

Initial push should include rates for all future dates. Subsequent updates should only include date ranges for which rates have changed in your system (delta update). Rentals United overwrites only dates you specify in the XML request and leaves other dates intact.

It is not possible to remove rates; it is only possible to overwrite them with new values.

Dates with no prices set are deemed as not available.

Requests

Depending on what pricing model you want to insert, you will need to send one of the following requests:

Example 1 (standard pricing)

<Push_PutPrices_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <Prices PropertyID="1">
    <Season DateFrom="2012-03-01" DateTo="2012-03-04">
      <Price>100.00</Price>
      <Extra>10.00</Extra>
    </Season>
    <Season DateFrom="2012-04-05" DateTo="2012-03-02">
      <Price>120.00</Price>
      <Extra>10.00</Extra>
      <EGPS>
        <EGP ExtraGuests="1">
          <Price>25.00</Price>
        </EGP>
        <EGP ExtraGuests="2">
          <Price>50.00</Price>
        </EGP>
      </EGPS>
    </Season>
    <Season DateFrom="2012-04-03" DateTo="2012-09-08">
      <Price>120.00</Price>
      <Extra>10.00</Extra>
      <LOSS>
        <LOS Nights="5">
          <Price>100.00</Price>
          <LOSPS>
            <LOSP NrOfGuests="5">
              <Price>150.00</Price>
            </LOSP>
            <LOSP NrOfGuests="6">
              <Price>175.00</Price>
            </LOSP>
          </LOSPS>
        </LOS>
        <LOS Nights="10">
          <Price>80.00</Price>
        </LOS>
      </LOSS>
    </Season>
    <Season DateFrom="2012-09-09" DateTo="2013-03-02">
      <Price>190.00</Price>
      <Extra>20.00</Extra>
      <LOSS>
        <LOS Nights="5">
          <Price>160.00</Price>
        </LOS>
        <LOS Nights="10">
          <Price>140.00</Price>
        </LOS>
      </LOSS>
      <EGPS>
        <EGP ExtraGuests="1">
          <Price>25.00</Price>
        </EGP>
        <EGP ExtraGuests="2">
          <Price>50.00</Price>
        </EGP>
      </EGPS>
    </Season>
  </Prices>
</Push_PutPrices_RQ>

XML Path Data Type Type Description
Push_PutPrices_RQ Integer C Root element
Push_PutPrices_RQ/Authentication C, M Authentication details
Push_PutPrices_RQ/Authentication/UserName String(50) M Username
Push_PutPrices_RQ/Authentication/Password String(50) M Password
Push_PutPrices_RQ/Prices C Information about the property's prices
Push_PutPrices_RQ/Prices@PropertyID Integer M Unique property ID
Push_PutPrices_RQ/Prices/Season C, M Information about the property price for the specified dates and number of guests
Push_PutPrices_RQ/Prices/Season@DateFrom String(10) M Start of the range when a price is valid (YYYY-MM-DD format)
Push_PutPrices_RQ/Prices/Season@DateTo String(10) M End of the range when a price value is valid (YYYY-MM-DD format)
Push_PutPrices_RQ/Prices/Season/Price Decimal (19,2) M Price for the standard number of guests defined for that property. The maximum accepted value is 214748.36
Push_PutPrices_RQ/Prices/Season/Extra Decimal (19,2) O Extra fee for each guest above the standard number of guests. The maximum accepted value is 214748.36
Push_PutPrices_RQ/Prices/Season/LOSS C, O A collection of nightly price settings depending on the length of stay
Push_PutPrices_RQ/Prices/Season/LOSS/LOS C, O Single nightly price
Push_PutPrices_RQ/Prices/Season/LOSS/LOS@Night Integer M Number of nights for which the price applies
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/Price Decimal(19,2) M Nightly price value for the specified length of stay. The maximum accepted value is 214748.36
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/LOSPS C, O A collection of nightly price settings depending on the number of guests
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/LOSPS/LOSP C, M Single nightly price depending on the number of guests
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/LOSPS/LOSP@NrOfGuests Integer M Number of guests
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/LOSPS/LOSP/Price Decimal(19,2) M Nightly price. The maximum accepted value is 214748.36
Push_PutPrices_RQ/Prices/Season/EGPS C, O A collection of extra person price settings depending on the number of extra guests
Push_PutPrices_RQ/Prices/Season/EGPS/EGP C, O Single extra guest price
Push_PutPrices_RQ/Prices/Season/EGPS/EGP@ExtraGuests Integer M Number of extra guests for which the price applies
Push_PutPrices_RQ/Prices/Season/EGPS/EGP/Price Decimal (19,2) M Single extra guest price value for the specified number of extra guests. The maximum accepted value is 214748.36

Example 2 (Full Stay Pricing)

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyPrice;

Push_PutPrices_RQ request = new Push_PutPrices_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Prices = new PricesInfo() { PropertyID = 1 },
    FSPSeasons = new List<FSPSeason>() 
    {
        new FSPSeason() 
        {
            Date = new DateTime(2020, 1, 1),
            DefaultPrice = 100M,
            FSPRows = new List<FSPRow>() 
            {
                new FSPRow() 
                {
                    NrOfGuests = 2,
                    Prices = new List<Price>() 
                    {
                        new Price() { NrOfNights = 1, Price = 123 },
                        new Price() { NrOfNights = 2, Price = 200 }
                    }
                },
                new FSPRow()
                {
                    NrOfGuests = 3,
                    Prices = new List<Price>()
                    {
                        new Price() { NrOfNights = 1, Price = 123 },
                        new Price() { NrOfNights = 2, Price = 200 }
                    }
                }
            }
        },
        new FSPSeason() 
        {
            Date = new DateTime(2020, 1, 2),
            DefaultPrice = 300M,
            FSPRows = new List<FSPRow>() 
            {
                new FSPRow() 
                {
                    NrOfGuests = 3,
                    Prices = new List<Price>() 
                    {
                        new Price() { NrOfNights = 1, Price = 123 },
                        new Price() { NrOfNights = 2, Price = 200 }
                    }
                },
            }
        }
    }
}

string xmlBody = XmlTools.SerializeObject<Push_PutPrices_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutPrices_RS response = XmlTools.DeserializeObject<Push_PutPrices_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Example 2 (Full Stay Pricing)

<Push_PutPrices_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <Prices PropertyID="1">
    <FSPSeasons>
      <FSPSeason Date="2020-01-01" DefaultPrice="200">
        <FSPRows>
          <FSPRow NrOfGuests="2">
            <Prices>
              <Price NrOfNights="1">123</Price>
              <Price NrOfNights="2">200</Price>
            </Prices>
          </FSPRow>
          <FSPRow NrOfGuests="3">
            <Prices>
              <Price NrOfNights="1">123</Price>
              <Price NrOfNights="2">200</Price>
            </Prices>
          </FSPRow>
        </FSPRows>
      </FSPSeason>
      <FSPSeason Date="2020-01-02" DefaultPrice="300">
        <FSPRows>
          <FSPRow NrOfGuests="3">
            <Prices>
              <Price NrOfNights="1">123</Price>
              <Price NrOfNights="2">200</Price>
            </Prices>
          </FSPRow>
        </FSPRows>
      </FSPSeason>
    </FSPSeasons>
  </Prices>
</Push_PutPrices_RQ>
XML Path Data Type Type Description
Push_PutPrices_RQ C Root element
Push_PutPrices_RQ/Authentication C, M Authentication details
Push_PutPrices_RQ/Authentication/UserName String(50) M Username
Push_PutPrices_RQ/Authentication/Password String(50) M Password
Push_PutPrices_RQ/Prices C, M A collection of the prices for the property
Push_PutPrices_RQ/Prices@PropertyID Integer M Unique property ID
Push_PutPrices_RQ/FSPSeasons C, O A collection of one-day seasons
Push_PutPrices_RQ/FSPSeasons/FSPSeason C Information about prices for specified date with default price
Push_PutPrices_RQ/FSPSeasons/FSPSeason@Date String(10) M Date in format YYYY-MM-DD for which season prices are applied
Push_PutPrices_RQ/FSPSeasons/FSPSeason@DefaultPrice Decimal(19, 2) M Default daily price (for Sales Channels that do not support FSP prices) - inserted with PutPrices request or generated by Rentals United. The maximum accepted value is 214748.36
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows C, M A collection of nightly price settings
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow C, M Container for nightly prices
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow@NrOfGuests Integer M Number of guests for which collection of prices applies
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices C, M Collection of nightly prices depending on the number of guests
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices/Price Decimal(19, 2) M Single nightly price for specified on the number of nights and guests. The maximum accepted value is 214748.36
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices/Price@NrOfNights Integer M Number of nights for which the price applies

Response

Regardless of the type of request you sent (Length Of Stay pricing or Full Stay Pricing), you will receive the same type of response:

<Push_PutPrices_RS>
 <Status ID="5">An error occurred for some of the ranges</Status>
 <ResponseID ID="1">Success</ResponseID>
 <Notifs>
   <Notif StatusID="5" DateFrom="2012-03-01" DateTo="2012-03-04">Internal error, please try again</Notif>
   <Notif StatusID="6" DateFrom="2012-04-05" DateTo="2012-03-02">Dates mishmash</Notif>
 </Notifs>
</Push_PutPrices_RS>
XML Path Data Type Type Description
Push_PutPrices_RS Integer C Root element
Push_PutPrices_RS/Status String(100) M See ListStatuses
Push_PutPrices_RS/Status@ID Integer M See ListStatuses
Push_PutPrices_RS/ResponseID String(32) M Unique response ID
Push_PutPrices_RS/Notifs C, O A collection of information with uploading process errors. Successfully updated ranges are not included in this collection
Push_PutPrices_RS/Notif Integer C, M Detailed information about the erronous ranges
Push_PutPrices_RS/Notif@StatusID Integer M See ListStatuses
Push_PutPrices_RS/Notif@DateFrom String(10) M Start of a single erronous range (YYYY-MM-DD format)
Push_PutPrices_RS/Notif@DateTo String(10) M End of a single erronous range (YYYY-MM-DD format)

Put long stay discounts

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;

Push_PutLongStayDiscounts_RQ request = new Push_PutLongStayDiscounts_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    LongStays = new LongStaysInfo()
    {
      LongStays = new List<LongStayInfo>
      {
        new LongStayInfo
        {                                          
            DateFrom = new DateTime(2012, 3, 1),
            DateTo = new DateTime(2012, 9, 10),
            Bigger = 2,
            Smaller = 20,
            LongStay = 10
        },
        new LongStayInfo
        {
            DateFrom = new DateTime(2012, 9, 11),
            DateTo = new DateTime(2012, 12, 1),
            Bigger = 2,
            Smaller = 20,
            LongStay = 20
        },
        new LongStayInfo
        {
            DateFrom = new DateTime(2012, 12, 2),
            DateTo = new DateTime(2012, 12, 11),
            Bigger = 2,
            Smaller = 20,
            LongStay = 5
        },
      }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutLongStayDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutLongStayDiscounts_RS response = XmlTools.DeserializeObject<Push_PutLongStayDiscounts_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to upload length of stay discounts for specified date ranges.

Length of stay discounts are defined by setting % discount eligible for stays longer than Bigger parameter and shorter than Smaller parameter. Bigger and Smaller parameters can contain the same value, if you want to add the discount for a specific length of stay.

Smaller value can be maximum 180 days.

Length of stay discounts updates should only include date ranges for which length of stay discounts have changed in your system (delta update). Rentals United overwrites only dates you specify in the XML request and leaves other dates intact.

In order to remove discounts, push 0 or empty value for a given date range.

Request

<Push_PutLongStayDiscounts_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <LongStays PropertyID="1">
    <LongStay DateFrom="2012-03-01" DateTo="2012-09-10" Bigger="2" Smaller="20">
      10
    </LongStay>
    <LongStay DateFrom="2012-09-11" DateTo="2012-12-01" Bigger="2" Smaller="20">
      20
    </LongStay>
    <LongStay DateFrom="2012-12-02" DateTo="2012-12-11" Bigger="2" Smaller="20">
      5
    </LongStay>
  </LongStays>
</Push_PutLongStayDiscounts_RQ>

XML Path Data Type Type Description
Push_PutLongStayDiscounts_RQ C Root element
Push_PutLongStayDiscounts_RQ/Authentication C, M Authentication details
Push_PutLongStayDiscounts_RQ/Authentication/UserName String(50) M Username
Push_PutLongStayDiscounts_RQ/Authentication/Password String(50) M Password
Push_PutLongStayDiscounts_RQ/LongStays C, M A collection of long stay discounts
Push_PutLongStayDiscounts_RQ/LongStays/LongStay C, O Long stay discount
Push_PutLongStayDiscounts_RQ/LongStays@PropertyID Integer C, M Unique property ID
Push_PutLongStayDiscounts_RQ/LongStays/LongStay Integer M Long stay discounts value, percentage of the final price
Push_PutLongStayDiscounts_RQ/LongStays/LongStay@DateFrom String(10) M Start of the range (YYYY-MM-DD format)
Push_PutLongStayDiscounts_RQ/LongStays/LongStay@DateTo String(10) M End of the range (YYYY-MM-DD format)
Push_PutLongStayDiscounts_RQ/LongStays/LongStay@Bigger Integer M Minimum length of stay required in order to get the discount
Push_PutDiscounts_RQ/LongStays/LongStay@Smaller Integer M Maximum length of stay required in order to get the discount (max value is 180)

Response

<Push_PutLongStayDiscounts_RS>
 <Status ID="5">An error occurred for some of the ranges</Status>
 <ResponseID ID="1">Success</ResponseID>
 <Notifs>
  <Notif StatusID="5" DateFrom="2012-12-02" DateTo="2012-12-11">Internal error, please try again</Notif>
 </Notifs>
</Push_PutLongStayDiscounts_RS>
XML Path Data Type Type Description
Push_PutLongStayDiscounts_RS C Root element
Push_PutLongStayDiscounts_RS/Status String(100) M See ListStatuses
Push_PutLongStayDiscounts_RS/Status@ID Integer M See ListStatuses
Push_PutLongStayDiscounts_RS/ResponseID String(32) M Unique response ID
Push_PutLongStayDiscounts_RS/Notifs C, O A collection of information with uploading process errors. Successfully updated ranges are not included in this collection
Push_PutLongStayDiscounts_RS/Notif Integer C, M Detailed information about the erronous ranges
Push_PutLongStayDiscounts_RS/Notif@StatusID Integer M See ListStatuses
Push_PutLongStayDiscounts_RS/Notif@DateFrom String(10) M Start of a single erronous range (YYYY-MM-DD format)
Push_PutLongStayDiscounts_RS/Notif@DateTo String(10) M End of a single erronous range (YYYY-MM-DD format)

Put last-minute discounts

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;

Push_PutLastMinuteDiscounts_RQ request = new Push_PutLastMinuteDiscounts_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },  
    LastMinutes = new LastMinutesInfo()
    {
      LastMinutes = new List<LastMinuteInfo>
      {
        new LastMinuteInfo
        {
            DateFrom = new DateTime(2012, 9, 9),
            DateTo = new DateTime(2012, 9, 10),
            DaysToArrivalFrom = 2,
            DaysToArrivalTo = 5,
            LastMinute = 10
        },
        new LastMinuteInfo
        {
            DateFrom = new DateTime(2012, 9, 11),
            DateTo = new DateTime(2012, 12, 1),
            DaysToArrivalFrom = 1,
            DaysToArrivalTo = 4,
            LastMinute = 20
        },
        new LastMinuteInfo
        {
            DateFrom = new DateTime(2012, 12, 2),
            DateTo = new DateTime(2012, 12, 11),
            DaysToArrivalFrom = 2,
            DaysToArrivalTo = 3,
            LastMinute = 5
        }
      }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutLastMinuteDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutLastMinuteDiscounts_RS response = XmlTools.DeserializeObject<Push_PutLastMinuteDiscounts_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to set last-minute discounts. Adapting last-minute discounts allows you to provide Early Bird/First Minute discounts to your guests.

Last-minute discounts can be set by providing:

The discount requirements are checked for each day of the reservation and not only for the day when the reservation started. It means that each day in the reservation is checked:

This ensures that the guest is offered the last-minute discount, but the discount does not dramatically decrease the price in the case of longer stays.

Example: You offer last-minute discounts in February for bookings made 0 to 7 days before arrival.

In the case when your guest makes a reservation on 1st February for 5th - 10th February, the last minute discount will be applied to the following days:

Last-minute discount updates should only include date ranges for which last-minute discounts have changed in your system (delta update). Rentals United overwrites only the dates you specify in the XML request and leaves other dates intact.

In order to remove discounts, push <LastMinute>0</LastMinute> or leave the value empty for a given date range.

Request

<Push_PutLastMinuteDiscounts_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <LastMinutes PropertyID="1">
    <LastMinute DateFrom="2012-09-09" DateTo="2012-09-10" DaysToArrivalFrom="2" DaysToArrivalTo="5">
      10
    </LastMinute>
    <LastMinute DateFrom="2012-09-11" DateTo="2012-12-01" DaysToArrivalFrom="1" DaysToArrivalTo="4">
      20
    </LastMinute>
    <LastMinute DateFrom="2012-12-02" DateTo="2012-12-11" DaysToArrivalFrom="2" DaysToArrivalTo="3">
      5
    </LastMinute>
  </LastMinutes>
</Push_PutLastMinuteDiscounts_RQ>

XML Path Data Type Type Description
Push_PutLastMinuteDiscounts_RQ C Root element
Push_PutLastMinuteDiscounts_RQ/Authentication C, M Authentication details
Push_PutLastMinuteDiscounts_RQ/Authentication/UserName String(50) M Username
Push_PutLastMinuteDiscounts_RQ/Authentication/Password String(50) M Password
Push_PutLastMinuteDiscounts_RQ/LastMinutes C, M Last-minute discounts
Push_PutLastMinuteDiscounts_RQ/LastMinutes@PropertyID Integer M Unique property ID
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute Integer O Value to be discounted from the final price
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute@DateFrom String(10) M Start of the period when the discount is offered (YYYY-MM-DD format). Only bookings made in this period will be checked against the discount requirements
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute@DateTo String(10) M End of the period when discount is offered (YYYY-MM-DD format). Only bookings made in this period will be checked against the discount requirements
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute@DaysToArrivalFrom Integer M Minimum number of days between each day of the reservation and the day when the booking is made in order to apply the discount. The discount will be applied only to those days in the reservation that fit this range. The maximum value is 180 days
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute@DaysToArrivalTo Integer M Maximum number of days between each day of the reservation and the day when the booking is made. The discount will be applied only to those days in the reservation that fit this range

Response

<Push_PutLastMinuteDiscounts_RS>
 <Status ID="5">An error occurred for some of the ranges</Status>
 <ResponseID ID="1">Success</ResponseID>
 <Notifs>
  <Notif StatusID="5" DateFrom="2012-12-02" DateTo="2012-12-11">Internal error, please try again</Notif>
 </Notifs>
</Push_PutLastMinuteDiscounts_RS>
XML Path Data Type Type Description
Push_PutLastMinuteDiscounts_RS C Root element
Push_PutLastMinuteDiscounts_RS/Status String(100) M See ListStatuses
Push_PutLastMinuteDiscounts_RS/Status@ID Integer M See ListStatuses
Push_PutLastMinuteDiscounts_RS/ResponseID String(32) M Unique response ID
Push_PutLastMinuteDiscounts_RS/Notifs C, O A collection of information with uploading process errors. Successfully updated ranges are not included in this collection
Push_PutLastMinuteDiscounts_RS/Notif Integer C, M Detailed information about the erronous ranges
Push_PutLastMinuteDiscounts_RS/Notif@StatusID Integer M See ListStatuses
Push_PutLastMinuteDiscounts_RS/Notif@DateFrom String(10) M End of a single erronous range (YYYY-MM-DD format)
Push_PutLastMinuteDiscounts_RS/Notif@DateTo String(10) M End of a single erronous range (YYYY-MM-DD format)

VR price calculation logic

The price consists of different elements. However, the price for a night is calculated based on the seasonal price, any extra guests fees and discounts.

SeasonalPrice + (NumberOfGuestsInReservation - StandardGuests) * ExtraGuestsFee - LastMinuteDiscount - LongStayDiscount = PriceFor1Night

where LastMinuteDiscount = SeasonalPrice * DiscountValue

where LongStayDiscount = SeasonalPrice * DiscountValue

The below examples will use the scenario to walk you step by step and explain how the price is calculated.

Property prices

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyPrice;

Push_PutPrices_RQ request = new Push_PutPrices_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Prices = new PricesInfo()
    {
        PropertyID = 1,
        Seasons = new List<SeasonInfo>()
        {
        new SeasonInfo
        {
          DateFrom = new DateTime(2012, 3, 1),
          DateTo = new DateTime(2012, 3, 4),
          Price = 100M,
          Extra = 10M,
          LOSS = new List<LOSInfo>
          {
              new LOSInfo
              {
                  Nights = 2,
                  Price = 90M,
                  LOSPS = new List<LOSPInfo>
                  {
                      new LOSPInfo
                      {
                          NrOfGuests = 5,
                          Price = 160M
                      }
                  }
              },
            }
        },
        new SeasonInfo
        {
            DateFrom = new DateTime(2012, 3, 5),
            DateTo = new DateTime(2012, 4, 2),
            Price = 120M,
            Extra = 10M,
            EGPS = new List<EGPInfo>
            {
              new EGPInfo
              {
                  ExtraGuests = 1,
                  Price = 20M
              },
              new EGPInfo
              {
                  ExtraGuests = 2,
                  Price = 20M
              }
            }
        },
        new SeasonInfo
        {
            DateFrom = new DateTime(2012, 4, 3),
            DateTo = new DateTime(2012, 9, 8),
            Price = 120M,
            Extra = 10M
        },
        new SeasonInfo
        {
            DateFrom = new DateTime(2012, 9, 9),
            DateTo = new DateTime(2013, 3, 2),
            Price = 190M,
            Extra = 20M
        },
      }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutPrices_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutPrices_RS response = XmlTools.DeserializeObject<Push_PutPrices_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}
<Push_PutPrices_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <Prices PropertyID="1">
    <Season DateFrom="2012-03-01" DateTo="2012-03-04">
      <Price>100.00</Price>
      <Extra>10.00</Extra>
      <LOSS>
        <LOS Nights="2">
          <Price>90.00</Price>
          <LOSPS>
            <LOSP NrOfGuests="5">
              <Price>160.00</Price>
            </LOSP>
          </LOSPS>
        </LOS>
      </LOSS>
    </Season>
    <Season DateFrom="2012-03-05" DateTo="2012-04-02">
      <Price>120.00</Price>
      <Extra>10.00</Extra>
      <EGPS>
        <EGP ExtraGuests="1">
          <Price>20.00</Price>
        </EGP>
        <EGP ExtraGuests="2">
          <Price>20.00</Price>
        </EGP>
      </EGPS>
    </Season>
    <Season DateFrom="2012-04-03" DateTo="2012-09-08">
      <Price>120.00</Price>
      <Extra>10.00</Extra>
    </Season>
    <Season DateFrom="2012-09-09" DateTo="2013-03-02">
      <Price>190.00</Price>
      <Extra>20.00</Extra>
    </Season>
  </Prices>
</Push_PutPrices_RQ>

Property discounts

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;

Push_PutLongStayDiscounts_RQ request = new Push_PutLongStayDiscounts_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    LongStays = new LongStaysInfo()
    {
      LongStays = new List<LongStayInfo>
      {
        new LongStayInfo
        {                                          
            DateFrom = new DateTime(2012, 3, 1),
            DateTo = new DateTime(2012, 9, 10),
            Bigger = 2,
            Smaller = 20,
            LongStay = 10
        },
        new LongStayInfo
        {
            DateFrom = new DateTime(2012, 9, 11),
            DateTo = new DateTime(2012, 12, 1),
            Bigger = 2,
            Smaller = 20,
            LongStay = 20
        },
        new LongStayInfo
        {
            DateFrom = new DateTime(2012, 12, 2),
            DateTo = new DateTime(2012, 12, 11),
            Bigger = 2,
            Smaller = 20,
            LongStay = 5
        },
        new LongStayInfo
        {
            DateFrom = new DateTime(2014, 1, 2),
            DateTo = new DateTime(2014, 12, 11),
            Bigger = 2,
            Smaller = 20,
            LongStay = 10
        }
      }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutLongStayDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutLongStayDiscounts_RS response = XmlTools.DeserializeObject<Push_PutLongStayDiscounts_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;

Push_PutLastMinuteDiscounts_RQ request = new Push_PutLastMinuteDiscounts_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },  
    LastMinutes = new LastMinutesInfo()
    {
      LastMinutes = new List<LastMinuteInfo>
      {
        new LastMinuteInfo
        {
            DateFrom = new DateTime(2012, 9, 9),
            DateTo = new DateTime(2012, 9, 10),
            DaysToArrivalFrom = 1,
            DaysToArrivalTo = 5,
            LastMinute = 10
        },
        new LastMinuteInfo
        {
            DateFrom = new DateTime(2012, 9, 11),
            DateTo = new DateTime(2012, 12, 1),
            DaysToArrivalFrom = 1,
            DaysToArrivalTo = 4,
            LastMinute = 20
        },
        new LastMinuteInfo
        {
            DateFrom = new DateTime(2012, 12, 2),
            DateTo = new DateTime(2012, 12, 11),
            DaysToArrivalFrom = 2,
            DaysToArrivalTo = 3,
            LastMinute = 5
        }
      }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutLastMinuteDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutLastMinuteDiscounts_RS response = XmlTools.DeserializeObject<Push_PutLastMinuteDiscounts_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}
<Push_PutLongStayDiscounts_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <LongStays PropertyID="1">
    <LongStay DateFrom="2012-03-01" DateTo="2012-09-10" Bigger="2" Smaller="20">
      10
    </LongStay>
    <LongStay DateFrom="2012-09-11" DateTo="2012-12-01" Bigger="2" Smaller="20">
      20
    </LongStay>
    <LongStay DateFrom="2012-12-02" DateTo="2012-12-11" Bigger="2" Smaller="20">
      5
    </LongStay>
    <LongStay DateFrom="2014-01-02" DateTo="2014-12-11" Bigger="2" Smaller="20">
      10
    </LongStay>
  </LongStays>
</Push_PutLongStayDiscounts_RQ>
<Push_PutLastMinuteDiscounts_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <LastMinutes PropertyID="1">
    <LastMinute DateFrom="2012-09-09" DateTo="2012-09-10" DaysToArrivalFrom="1" DaysToArrivalTo="5">
      10
    </LastMinute>
    <LastMinute DateFrom="2012-09-11" DateTo="2012-12-01" DaysToArrivalFrom="1" DaysToArrivalTo="4">
      20
    </LastMinute>
    < LastMinute DateFrom="2012-12-02" DateTo="2012-12-11" DaysToArrivalFrom="2" DaysToArrivalTo="3">
      5
    </LastMinute>
  </LastMinutes>
</Push_PutLastMinuteDiscounts_RQ>

Property details

The property owner can define various details for the property which affect the final price.

For example:

Standard number of guests – 3

Can sleep max – 5

Cleaning fee - 10,00

These details mean that the property price for 1, 2 or 3 guests is the same, but there is an extra fee for the 4th and 5th guest.

Example stay 1

In this example, today's date is 2012-01-01.

Stay details:

arrival – 2012-03-04

departure – 2012-03-06

number of guests: 4

It is a 2-nights stay and the number of guests exceeds the standard number of guests (3), hence a fee for an extra guest will be applied. Since the property has a LOS policy defined, a discount will be applied.

The seasonal price for 2012-03-04 is 90, and the seasonal price for 2012-03-05 is 120.

Price calculation

Price calculation for each day:

2012-03-04 – 90+(4-3)*10 = 100 – there is a LOS element with Nights = 2 (equal to the length of stay), in this case the price from the LOS element (90) will be applied.

2012-03-05 – 120+(4-3)*20 = 140 – there is an EGP element with ExtraGuests=1 (equal to the number of extra guests), in this case the extra guest price from the EGP element (20) will be applied.

Seasonal prices total before discounts – 100+140 = 240

Discounts:

Last minute:

2012-03-04: none

2012-03-05: none

Long stay:

2012-03-04: 10% of 90 = 9

2012-03-05: 10% of 120 = 12

Final calculation:

Seasonal price – discounts

2012-03-04: 100-0-9 = 91

2012-03-05: 140-0-12 = 128

Final price:

Daily prices + cleaning fee

91+128+10 = 229

Example stay 2

In this example today's date is 2012-09-07.

Stay details:

arrival – 2012-09-08

departure – 2012-09-12

number of guests: 5

It is a 4-nights stay and the number of guests exceeds the standard number of guests (3), hence a fee for an extra guests will be applied. The stay was booked last-minute, so a discount will be applied, too.

Price calculation

Price calculation for each day:

2012-09-08 – 120+(5-3)*10 = 140

2012-09-09 – 190+(5-3)*20 = 230

2012-09-10 – 190+(5-3)*20 = 230

2012-09-11 – 190+(5-3)*20 = 230

Seasonal prices total before discounts – 140+230+230+230 = 830

Discounts:

Last minute:

2012-09-08: none

2012-09-09: 10% of 190 = 19

2012-09-10: 10% of 190 = 19

2012-09-11: 20% of 190 = 38

Long stay:

2012-09-08: 10% of 120 = 12

2012-09-09: 10% of 190 = 19

2012-09-10: 10% of 190 = 19

2012-09-11: 20% of 190 = 28

Final calculation:

Seasonal price – discounts

2012-09-08: 140-0-12 = 128

2012-09-09: 230-19-19 = 192

2012-09-10: 230-19-19 = 192

2012-09-11: 230-38-38 = 154

Final price:

Daily prices + cleaning fee

128+192+192+154+10,00 = 676,00

Example stay 3

In this example today's date is 2012-09-07.

Stay details:

arrival – 2014-09-08

departure – 2014-09-12

number of guests: 5

It is a 4-nights stay and the number of guests exceeds the standard number of guests (3), hence a fee for an extra guests will be applied. There is no seasonal price defined for this period, so the regular base price will be applied. The booking meets the requirements of a long stay, so the LOS discount will be applied.

Price calculation

Price calculation for each day:

2014-09-08 – 100+(5-3)*10 = 120

2014-09-09 – 100+(5-3)*10 = 120

2014-09-10 – 120+(5-3)*15 = 150

2014-09-11 – 120+(5-3)*20 = 160

Base prices total before discounts – 120+120+150+160 = 550

Discounts:

Last minute:

2014-09-08: none

2014-09-09: none

2014-09-10: none

2014-09-11: none

Long stay:

2014-09-08: 10% of 100 = 10

2014-09-09: 10% of 100 = 10

2014-09-10: 10% of 120 = 12

2014-09-11: 10% of 120 = 12

Final calculation

Base price – discounts

2014-09-08: 120-0-10 = 110

2014-09-09: 120-0-10 = 110

2014-09-10: 150-0-12 = 138

2014-09-11: 160-0-12 = 148

Final price:

Daily prices + cleaning fee

110+110+138+148+10,00 = 516,00

Example stay 4

In this example today's date is 2012-01-01.

Stay details:

arrival – 2012-03-04

departure – 2012-03-06

number of guests: 5

It is a 2-nights stay and the number of guests exceeds the standard number of guests (3), hence a fee for an extra guests will be applied. There is a LOS element for this period. There is also a nightly price (LOSP) element defined for bookings including 5 guests.

Price calculation

Price calculation for each day:

2012-03-04 – 160+(5-3)*10 = 180 – there is LOS element with Nights = 2 (equal to the length of stay) and LOSP element with NrOfGuests=5 (equal to the number of guests), in this case the price from LOS element (90) is ignored and LOSP element price (160) will be applied.

2012-03-05 – 120+(5-3)*20 = 160 – there is EGP element with ExtraGuests=2 (equal to the number of extra guests), in this case the extra guest price from EGP element (20) will be applied.

Seasonal price – 180+160 = 340

Discounts:

Last minute:

2012-03-04: none

2012-03-05: none

Long stay:

2012-03-04: 10% of 160 = 16

2012-03-05: 10% of 120 = 12

Final calculation:

Seasonal price – discounts

2012-03-04: 180-0-16 = 164

2012-03-05: 160-0-12 = 148

Final price:

Daily prices + cleaning fee

164+148+10 = 322

Extra fees and taxes

Additional fees represent different kinds of additional fees which can be applied to the rental price. This does not concern explicitly specified fees on the property, for example cleaning fees, security deposit, extra guest price etc.

Additional fees are applied onto the final price (for example, after adding the cleaning fee). Each fee is applied according to it's order: fees with small order number are applied first. Each fee is applied on the result from the previous fee calculation, unless otherwise specified.

Additional fee item consists of: Order, FeeTaxType, DiscriminatorID and Value.

Fees & Taxes example 1

Example 1

<AdditionalFees>
 <AdditionalFee FeeTaxType="1" DiscriminatorID="1" Order="0">
   <Value>10</Value>
 </AdditionalFee>
 <AdditionalFee FeeTaxType="1" DiscriminatorID="3" Order="1">
   <Value>0.1</Value>
 </AdditionalFee>
 <AdditionalFee FeeTaxType="1" DiscriminatorID="4" Order="2">
   <Value>0.15</Value>
 </AdditionalFee>
 <AdditionalFee FeeTaxType="1" DiscriminatorID="2" Order="5">
   <Value>2</Value>
 </AdditionalFee>
 <AdditionalFee FeeTaxType="1" DiscriminatorID="3" Order="66">
   <Value>0.23</Value>
 </AdditionalFee>
</AdditionalFees>

Taking input price: 33.12, reservation for 2 days and following additional fees collection.

The calculations is as follows:

  1. DiscriminatorID="1" is a "FlatPerStay" fee, therefore to 33.12 we add 10. Current price: 43.12.

  2. DiscriminatorID="3" is a "IndependentPercentage" fee, therefore the current price doesn't change (stays 43.12), but at the end we have to remember to add 4.31 for the taxes fees.

  3. DiscriminatorID="4" is a "CumulativePercentage" fee, therefore to 43.12 we add (43.12 * 0.15)=6.47. Current price: 43.12 + 6.47 = 49.59.

  4. DiscriminatorID="2" is a "FixedPerDay" fee, therefore to the current price we add 2 (the length of the reservation) * 2 (the value of the fee)=4. Current price: 53.59.

  5. DiscriminatorID="3" is a "IndependentPercentage" fee, therefore the current price doesn't change (stays 53.59), but at the end we have to remember to add 53.59 * 0.23 = 12.33 for the taxes fees.

End of calculations. The final price is: 53.59 (the price from the last step) + 4.31 + 12.33 (the independent fees) = 70.23. All of the fees were taxes, so taxes added in this example = 37.11.

Fees & Taxes example 2

Example 2

<AdditionalFees>
  <AdditionalFee FeeTaxType="1" DiscriminatorID="1" Order="2">
    <Value>10</Value>
  </AdditionalFee>
  <AdditionalFee FeeTaxType="1" DiscriminatorID="3" Order="1">
    <Value>0.1</Value>
  </AdditionalFee>
  <AdditionalFee FeeTaxType="1" DiscriminatorID="4" Order="0">
    <Value>0.15</Value>
  </AdditionalFee>
  <AdditionalFee FeeTaxType="1" DiscriminatorID="2" Order="5">
    <Value>2</Value>
  </AdditionalFee>
  <AdditionalFee FeeTaxType="1" DiscriminatorID="3" Order="66">
    <Value>0.23</Value>
  </AdditionalFee>
</AdditionalFees>

Taking input price: 100, reservation for 2 days and following additional fees collection:

The calculations is as follows:

  1. DiscriminatorID= 4 (note the order value) is a "CumulativePercentage" fee, therefore to 100 we add (0.15 * 100). Current price: 115.

  2. DiscriminatorID="3" is a "IndependentPercentage" fee, therefore the current price doesn't change (stays 115), but at the end we have to remember to add 115 * 0.1 = 11.5 for the taxes fees.

  3. DiscriminatorID="1" is a "FlatPerStay" fee, therefore to 115 we add 10. Current price: 125.

  4. DiscriminatorID="2" is a "FixedPerDay" fee, therefore to the current price we add 2 (the length of the reservation) * 2 (the value of the fee) = 4. Current price: 129.

  5. DiscriminatorID="3" is a "IndependentPercentage" fee, therefore the current price doesn't change (stays 129), but at the end we have to remember to add 129 * 0.23 = 29.67 for the taxes fees.

End of calculations. The final price is: 129 (the price from the last step) + 11.5 + 29.67 (the independent fees) = 170.17. All of the fees were taxes, so taxes added in this example = 70.17.

Charge Profile Example 1

Charge Profile Example 1

<ChargeProfile>
  <ApplicableAdditionalFee FeeTaxType="41" DiscriminatorID="1" Name="cleaning">
    <Value>50</Value>
  </ApplicableAdditionalFee>
  <ApplicableAdditionalFee FeeTaxType="1" DiscriminatorID="3" Name="state tax">
    <Value>10</Value>
    <ApplicableTo>
      <FeeNames>
        <FeeName>cleaning</FeeName>
      </FeeNames>
      <Rent>true</Rent>
    </ApplicableTo>
  </ApplicableAdditionalFee>
</ChargeProfile>

Taking input price: 100 and following charge profile:

The calculations is as follows:

  1. The rent is 100

  2. The cleaning fee (FeeTaxType="41") is a flat charge (DiscriminatorID="1") and its amount is 50

  3. The state tax (FeeTaxType="1" = LocalTax, DiscriminatorID="3" = IndeplendentPercentage) applies to the cleaning giving in result: 50 * 10% = 5

  4. The tax applies on rent giving in result: 100 * 10% = 10

The final price is 100 + 50 + 5 + 10 = 165

FSP calculation logic

In the Full Stay Pricing model the prices are calculated differently than in Base and Length of Stay pricing. The examples below should help to clear all doubts regarding price calculation with this pricing model and the model itself.

In Standard Pricing model, stay prices in Rentals United are calculated on a nightly basis. The system calculates the price for each night separately and then summarizes them to get the final price for a stay. All is fine as long as the PMS partner provides us with nightly pricing. If they share prices of possible stays, it gets more complicated (especially in the case of overlapping stays) and discrepancies can occur.

With the introduction of the FSP model it became possible to save a total price for a given arrival and number of nights in Rentals United - a full price for a stay. Seasons are one-night long and prices within seasons are applicable for up to the given number of guests (see Example Stay 3).

Example stay 1

<Prices PropertyID="1">
  <FSPSeasons>
    <FSPSeason Date="2020-02-01" DefaultPrice="150">
      <FSPRows>
        <FSPRow NrOfGuests="3">
          <Prices>
            <Price NrOfNights="1">200</Price>
            <Price NrOfNights="2">300</Price>
            <Price NrOfNights="3">425</Price>
            <Price NrOfNights="4">575</Price>
            <Price NrOfNights="5">700</Price>
          </Prices>
        </FSPRow>
      </FSPRows>
    </FSPSeason>
    <FSPSeason Date="2020-02-02" DefaultPrice="150">
      <FSPRows>
        <FSPRow NrOfGuests="2">
          <Prices>
            <Price NrOfNights="1">123</Price>
            <Price NrOfNights="2">234</Price>
            <Price NrOfNights="3">345</Price>
            <Price NrOfNights="4">456</Price>
            <Price NrOfNights="5">567</Price>
          </Prices>
        </FSPRow>
        <FSPRow NrOfGuests="3">
          <Prices>
            <Price NrOfNights="1">150</Price>
            <Price NrOfNights="2">250</Price>
            <Price NrOfNights="3">350</Price>
            <Price NrOfNights="4">450</Price>
            <Price NrOfNights="5">550</Price>
          </Prices>
        </FSPRow>
      </FSPRows>
    </FSPSeason>
    <FSPSeason Date="2020-02-03" DefaultPrice="100">
      <FSPRows>
        <FSPRow NrOfGuests="1">
          <Prices>
            <Price NrOfNights="1">100</Price>
            <Price NrOfNights="2">150</Price>
            <Price NrOfNights="3">200</Price>
            <Price NrOfNights="4">350</Price>
            <Price NrOfNights="5">500</Price>
          </Prices>
        </FSPRow>
        <FSPRow NrOfGuests="2">
          <Prices>
            <Price NrOfNights="1">110</Price>
            <Price NrOfNights="2">160</Price>
            <Price NrOfNights="3">200</Price>
            <Price NrOfNights="4">350</Price>
            <Price NrOfNights="5">500</Price>
          </Prices>
        </FSPRow>
        <FSPRow NrOfGuests="3">
          <Prices>
            <Price NrOfNights="1">120</Price>
            <Price NrOfNights="2">170</Price>
            <Price NrOfNights="3">200</Price>
            <Price NrOfNights="4">350</Price>
            <Price NrOfNights="5">500</Price>
          </Prices>
        </FSPRow>
      </FSPRows>
    </FSPSeason>
  </FSPSeasons>
</Prices>

Let's say that we want to determine the cost of a 3 nights’ stay for 3 guests from 2020-02-03.

In the pricing model on right, we need to look for an FSPSeason section with the Date attribute set to 2020-02-03 and an FSPRow with the NrOfGuests attribute set to 3.

Now all we need to do is find the Price in the chosen FSPRow that has the NrOfNights attribute set to 3. The Price exists, so the final price of this reservation is 200.

We can also determine the cost by multiplying DefaultPrice of chosen FSPSeason by length of this stay. In this example final price of this reservation would be 100 (default price) * 3 (length of this stay) = 300. That price would be used only in Sales Channels that didn't implement Full Stay Pricing model. This is why it's very important to remember about setting DefaultPrice value.

Example stay 2

Let's say that we want to determine the cost of a 4 nights’ stay for 2 guests from 2020-02-02.

Similarly as in the previous example, we need to find an FSPSeason with its Date attribute set to 2020-02-02 and an FSPRow with its NrOfGuests attribute set to 2.

There is a Price with its NrOfNights attribute set to 4, so the final price of this reservation is 456.

Example stay 3

Let's say, we want to determine the cost of another stay, this time for 5 nights and for one guest, starting on 2020-02-01.

Similarly to previous examples, we need to find an FSPSeason with its Date attribute set to 2020-02-01 and an FSPRow with its NrOfGuests attribute set to 1. While the first is easily done, there is no FSPRow the season, with its NrOfGuests attribute equal to 1. In such a case we need to look for an FSPRow with its NrOfGuests attribute set to the next closest value. In this case, the next closest value is 3, so the FSPRow with NrOfGuest attribute set to 3 applies.

Now we need to locate a Price element with its NrOfNights attribute set to 5. The final price for this stay is 700.

Example stay 4

Let's say that we want to determine the cost of a 6 nights’ stay for 2 guests from 2020-02-02.

Information about such stay is not included in FSProw, then it's not possible to make such reservation.

Full Stay Pricing FAQ

SC implements FSP SC doesn't implement FSP
Push SC The same way as they were inserted Convertion to LOSes will be made
Pull SC The same way as they were inserted Will use DefaultPrice or convert FSPs to LOSes (by setting PriceModelMode in List property prices to 0)

Reservations, Requests & Leads

These methods have been designed to manage reservations through their entire lifecycle (across multiple reservation statuses).

Put confirmed reservations

Example

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_PutConfirmedReservationMulti_RQ request = new Push_PutConfirmedReservationMulti_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Reservation = new ReservationInfo()
    {
        StayInfos = new List<StayInfo2>()
        {
            new StayInfo2()
            {
                PropertyID = 2,
                DateFrom = new DateTime(2012, 3, 2),
                DateTo = new DateTime(2012, 3, 14),
                NumberOfGuests = 3,
                Costs = new CostsInfo()
                {
                    RUPrice = 120.00M,
                    ClientPrice = 140.00M,
                    AlreadyPaid = 0.00M
                }
            },
            new StayInfo2()
            {
                PropertyID = 4,
                DateFrom = new DateTime(2012, 3, 2),
                DateTo = new DateTime(2012, 3, 14),
                NumberOfGuests = 3,
                Costs = new CostsInfo()
                {
                    RUPrice = 120.00M,
                    ClientPrice = 140.00M,
                    AlreadyPaid = 0.00M
                }
            }
        },
        CustomerInfo = new CustomerInfo()
        {
            Name = "Test",
            SurName = "Test",
            Email = "test.test@test.com",
            Phone = "+11 111 111 111",
            SkypeID = "test.test",
            Address = "Street 1/2",
            ZipCode = "00-000",
            LanguageID = 1,
            CountryID = new CountryIDInfo()
            {
                CountryID = 42
            }
        },
        Comments = "test"
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutConfirmedReservationMulti_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutConfirmedReservationMulti_RS response = XmlTools.DeserializeObject<Push_PutConfirmedReservationMulti_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Example (when the credit card information is provided)

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_PutConfirmedReservationMulti_RQ request = new Push_PutConfirmedReservationMulti_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Reservation = new ReservationInfo()
    {
        StayInfos = new List<StayInfo2>()
        {
            new StayInfo2()
            {
                PropertyID = 2,
                DateFrom = new DateTime(2012, 3, 2),
                DateTo = new DateTime(2012, 3, 14),
                NumberOfGuests = 3,
                Costs = new CostsInfo()
                {
                    RUPrice = 120.00M,
                    ClientPrice = 140.00M,
                    AlreadyPaid = 0.00M
                }
            },
            new StayInfo2()
            {
                PropertyID = 4,
                DateFrom = new DateTime(2012, 3, 2),
                DateTo = new DateTime(2012, 3, 14),
                NumberOfGuests = 3,
                Costs = new CostsInfo()
                {
                    RUPrice = 120.00M,
                    ClientPrice = 140.00M,
                    AlreadyPaid = 0.00M
                }
            }
        },
        CustomerInfo = new CustomerInfo()
        {
            Name = "Test",
            SurName = "Test",
            Email = "test.test@test.com",
            Phone = "+11 111 111 111",
            SkypeID = "test.test",
            Address = "Street 1/2",
            ZipCode = "00-000",
            LanguageID = 1,
            CountryID = new CountryIDInfo()
            {
                CountryID = 42
            }
        },
        Comments = "test",
        CreditCard = new CreditCardInfo()
        {
            CCNumber = "00000000000",
            CVC = "321",
            NameOnCard = "Test",
            Expiration = "12/2015",
            BillingAddress = "testaddr",
            CardType = CreditCardType.VISA,
            Comments = "comments"
        }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutConfirmedReservationMulti_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutConfirmedReservationMulti_RS response = XmlTools.DeserializeObject<Push_PutConfirmedReservationMulti_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Example (when you want to ignore PMS and RU quote)

using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_PutConfirmedReservationMulti_RQ request = new Push_PutConfirmedReservationMulti_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Reservation = new ReservationInfo()
    {
        StayInfos = new List<StayInfo2>()
        {
            new StayInfo2()
            {
                PropertyID = 2,
                DateFrom = new DateTime(2012, 3, 2),
                DateTo = new DateTime(2012, 3, 14),
                NumberOfGuests = 3,
                Costs = new CostsInfo()
                {
                    RUPrice = 120.00M,
                    ClientPrice = 140.00M,
                    AlreadyPaid = 0.00M
                }
            },
            new StayInfo2()
            {
                PropertyID = 4,
                DateFrom = new DateTime(2012, 3, 2),
                DateTo = new DateTime(2012, 3, 14),
                NumberOfGuests = 3,
                Costs = new CostsInfo()
                {
                    RUPrice = 120.00M,
                    ClientPrice = 140.00M,
                    AlreadyPaid = 0.00M
                }
            }
        },
        CustomerInfo = new CustomerInfo()
        {
            Name = "Test",
            SurName = "Test",
            Email = "test.test@test.com",
            Phone = "+11 111 111 111",
            SkypeID = "test.test",
            Address = "Street 1/2",
            ZipCode = "00-000",
            LanguageID = 1,
            CountryID = new CountryIDInfo()
            {
                CountryID = 42
            }
        },
        Comments = "test"                    
    },
    QuoteModeId = 2
};

string xmlBody = XmlTools.SerializeObject<Push_PutConfirmedReservationMulti_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutConfirmedReservationMulti_RS response = XmlTools.DeserializeObject<Push_PutConfirmedReservationMulti_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to create a confirmed reservation. You can book more than one property in a single reservation.

Request

Example

<Push_PutConfirmedReservationMulti_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Reservation>
        <StayInfos>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
            <StayInfo>
                <PropertyID>4</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
        </StayInfos>
        <CancellationPolicyInfo>
            <PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
            <CancellationPolicies>
                <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
                <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
            </CancellationPolicies>
        </CancellationPolicyInfo>
        <CustomerInfo>
            <Name>Test</Name>
            <SurName>Test</SurName>
            <Email>test.test@test.com</Email>
            <Phone>+11 111 111 111</Phone>
            <SkypeID>test.test</SkypeID>
            <Address>Street 1/2</Address>
            <ZipCode>00-000</ZipCode>
            <LanguageID>1</LanguageID>
            <CountryID>42</CountryID>
        </CustomerInfo>
        <GuestDetailsInfo>
            <NumberOfAdults>2</NumberOfAdults>
            <NumberOfChildren>2</NumberOfChildren>
            <NumberOfInfants>3</NumberOfInfants>
            <ChildrenAges>
                <Age>12</Age>
                <Age>9</Age>
                <Age>2</Age>
                <Age>2</Age>
                <Age>1</Age>
            </ChildrenAges>
        </GuestDetailsInfo>
        <Comments>test</Comments>
    </Reservation>
</Push_PutConfirmedReservationMulti_RQ>

Example (when the credit card and sales channel price breakdown information is provided)

<Push_PutConfirmedReservationMulti_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Reservation>
        <StayInfos>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
            <StayInfo>
                <PropertyID>4</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
        </StayInfos>
        <CustomerInfo>
            <Name>Test</Name>
            <SurName>Test</SurName>
            <Email>test.test@test.com</Email>
            <Phone>+11 111 111 111</Phone>
            <SkypeID>test.test</SkypeID>
            <Address>Street 1/2</Address>
            <ZipCode>00-000</ZipCode>
            <LanguageID>1</LanguageID>
            <CountryID>42</CountryID>
        </CustomerInfo>
        <Comments>test</Comments>
        <CreditCard>
            <CCNumber>00000000000</CCNumber>
            <CVC>321</CVC>
            <NameOnCard>Test</NameOnCard>
            <Expiration>12/2015</Expiration>
            <BillingAddress>testaddr</BillingAddress>
            <CardType>VISA</CardType>
            <Comments>comments</Comments>
            <SecureAuthentication>
                <CAVV>AAABADUwN4BCdmNkQDA3EFZht3Y=</CAVV>
                <ECI>02</ECI>
                <XID>YeHuimlTf1MTGaelHpisFSE4jVe=</XID>
                <DsTransID>3efde785-d918-40ba-a274-48e343ffb276</DsTransID>
                <ThreeDSVersion>2.1.0</ThreeDSVersion>
                <ExceptionType>MAIL_ORDER_TELEPHONE_ORDER</ExceptionType>
            </SecureAuthentication>
        </CreditCard>
        <ChannelBreakdownInfo>
            <DayPrices Date="2012-03-02">
                <RentInfo>
                    <Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
                </RentInfo>
                <Taxes>
                    <Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
                    <Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
                </Taxes>
                <Fees>
                    <Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
                </Fees>
                <Price>157.10</Price>
            </DayPrices>
            <ChannelTotalFeesTaxes>
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
            </ChannelTotalFeesTaxes>
            <ChannelTotal>282.07</ChannelTotal>
            <ChannelRent>206.37</ChannelRent>
        </ChannelBreakdownInfo>
    </Reservation>
</Push_PutConfirmedReservationMulti_RQ>

Example (when you want to ignore PMS and RU quote)

<Push_PutConfirmedReservationMulti_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Reservation>
        <StayInfos>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <DateFrom>2019-03-02</DateFrom>
                <DateTo>2019-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
            <StayInfo>
                <PropertyID>4</PropertyID>
                <DateFrom>2019-03-02</DateFrom>
                <DateTo>2019-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
        </StayInfos>
        <CustomerInfo>
            <Name>Test</Name>
            <SurName>Test</SurName>
            <Email>test.test@test.com</Email>
            <Phone>+11 111 111 111</Phone>
            <SkypeID>test.test</SkypeID>
            <Address>Street 1/2</Address>
            <ZipCode>00-000</ZipCode>
            <LanguageID>1</LanguageID>
            <CountryID>42</CountryID>
        </CustomerInfo>
        <Comments>test</Comments>
    </Reservation>
    <QuoteModeId>2</QuoteModeId>
</Push_PutConfirmedReservationMulti_RQ>

Example (when you want to confirm an existing request)

<Push_PutConfirmedReservationMulti_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Reservation>
        <ReservationID>123456789</ReservationID>
        <StayInfos>
            <StayInfo>
                <PropertyID>2</PropertyID>
                    <DateFrom>2019-03-02</DateFrom>
                    <DateTo>2019-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>0.00</ChannelCommission>
                </Costs>
            </StayInfo>
        </StayInfos>
        <CustomerInfo>
            <Name>Test</Name>
            <SurName>Test</SurName>
            <Email>test.test@test.com</Email>
            <Phone>+11 111 111 111</Phone>
        </CustomerInfo>
        <Comments>test</Comments>
    </Reservation>
</Push_PutConfirmedReservationMulti_RQ>

XML Path Data Type Type Description
Push_PutConfirmedReservationMulti_RQ C Root element
Push_PutConfirmedReservationMulti_RQ/Authentication C, M Authentication details
Push_PutConfirmedReservationMulti_RQ/Authentication/UserName String(50) M Username
Push_PutConfirmedReservationMulti_RQ/Authentication/Password String(50) M Password
Push_PutConfirmedReservationMulti_RQ/Reservation M Single reservation
Push_PutConfirmedReservationMulti_RQ/Reservation/ReservationID Integer O Unique reservation ID, this element is optional, you should use it only as a follow up to Push_PutUnconfirmedReservation_RQ.
Push_PutConfirmedReservationMulti_RQ/Reservation@Currency String(3) O Currency code of the reservation prices. Note that the reservation prices will be exchanged to the currency of the property, using the current exchange rates
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos C, M A collection of stay information
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo C, M Information about the stay
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Units Integer O Number of units booked
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/PropertyID Integer M Unique property ID
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/DateTo String(10) M Departure date (YYYY-MM-DD format)
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/ArrivalTime String(19) O Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format)
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/NumberOfGuests Integer M Number of guests staying in the property
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs C, M Information about the property costs
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs/RUPrice Decimal (19,2) M The price returned by one of the RU methods for the property in the specified dates. The maximum accepted value is 214748.36
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs/ClientPrice Decimal (19,2) M Final price for the guest. The maximum accepted value is 214748.36
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid Decimal(19,2) M The amount already paid by the guest. The maximum accepted value is 214748.36
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs/ChannelCommission Decimal(19,2) O The amount charged by the sales channel. The maximum accepted value is 214748.36
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Comments String(500) O Additional comments about this stay
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo C, O A container for the cancellation policy description and a collection of cancellation policies
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/PolicyText String(1000) M The cancellation policy description
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies C, O A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy Decimal(19,2) O A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom Integer O The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo Integer O The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo C, M Information about the guest
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/Name String(20) M Guest's name
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/SurName String(30) M Guest's surname
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/Email String(100) M Guest's email address
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with country code
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/MobilePhone String(30) O Guest's mobile phone number with country code
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/SkypeID String(50) O Guest's Skype ID
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/Address String(50) O Guest's address
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/LanguageID Integer O Country's unique ID, See ListLanguages
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, See ListLocations (filterLocationTypeID=2)
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo C, O A container object for the reservation occupancy details
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation (acceptable values: 0-17)
Push_PutConfirmedReservationMulti_RQ/Reservation/Comments String(4000) O Additional comments
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard C, O Credit card information
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/CCNumber String(19) M Credit card number
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/CVC String(4) O Credit card security code
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/NameOnCard String(400) M Credit card holder name
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/Expiration String(7) M Credit card expiration date (MM/YYYY format)
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/BillingAddress String(400) O Billing address
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/CardType String(30) M Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/Comments String(400) O Additional comments for the credit card
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication C, O Object holding information about 3DS2 payments
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV String(48) O It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor.
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ECI String(2) O Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/XID String(40) O Encoded "transactionId"
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID UUID O Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion String(5) O A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD.
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType String(40) O Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt.
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo C, O A container object for the reservation price breakdown received from the sales channel
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices C, O A collection of objects containing price information for each day of the reservation
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo C, O A collection of rent items for specific DayPrices@Date of the reservation
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@IncludedInChannelTotal Boolean M Information if the rent value is included in ChannelTotal
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Amount Decimal(19,2) M The daily rent value
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Currency String(3) M Currency, see ListCurrencies
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Name String(55) M Rent description
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes C, O A collection of taxes for specific DayPrices@Date of the reservation
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@IncludedInChannelTotal Boolean M Information if the tax value is included in ChannelTotal
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Currency String(3) M Currency, see ListCurrencies
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Name String(55) M Tax description
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees C, O A collection of fees for specific DayPrices@Date of the reservation
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@IncludedInChannelTotal Boolean M Information if the fee value is included in ChannelTotal
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@Name String(55) M Fee description
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes C, O A container object for fees and taxes applied for the whole stay and the ones that are applied per day
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal Boolean M Information if the total tax/fee amount of one type is included in ChannelTotal
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency String(3) M Currency, see ListCurrencies
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name String(55) M Tax/fee description
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType String(3) M Information whether the item is a tax or a fee
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotal Decimal(19,2) M The total price paid by the guest for the whole stay as received from the sales channel
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelRent Decimal(19,2) M The rent value of the whole stay
Push_PutConfirmedReservationMulti_RQ/Reservation/ReferenceID String(50) O Sales Channel reservation ID
Push_PutConfirmedReservationMulti_RQ/QuoteModeId Integer O See List Quote Modes.

Response

Example (completed successfully)

<Push_PutConfirmedReservationMulti_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">Success</ResponseID>
    <ReservationID>124</ReservationID>
</Push_PutConfirmedReservationMulti_RS>

Example (error occurred)

<Push_PutConfirmedReservationMulti_RS>
  <Status ID="3">Property is not available in selected dates</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_PutConfirmedReservationMulti_RS>
XML Path Data Type Type Description
Push_PutConfirmedReservationMulti_RS C Root element
Push_PutConfirmedReservationMulti_RS/Status String(100) M See ListStatuses
Push_PutConfirmedReservationMulti_RS/Status@ID Integer M See ListStatuses
Push_PutConfirmedReservationMulti_RS/ResponseID String(32) M Unique response ID
Push_PutConfirmedReservationMulti_RS/ReservationID Integer O Unique reservation ID, this element is not present when an error occurs

Confirm request

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_ConfirmReservation_RQ request = new Push_ConfirmReservation_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ReservationID = 123456789
};

string xmlBody = XmlTools.SerializeObject<Push_ConfirmReservation_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_ConfirmReservation_RS response = XmlTools.DeserializeObject<Push_ConfirmReservation_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use Push_ConfirmReservation_RQ method to confirm a request. This will change the reservation status from Request to Confirmed. See reservation statuses in Pull_ListReservationStatuses_RS. However, for some channels (e.g. Booking.com) confirming a Request to Book does not change its status from Request to Confirmed yet. It is because an additional confirmation from the channel may be required. You need to wait till the confirmation is received, which may take up to 24 hours.

If you want to confirm the request and at the same time change some of the reservation details, you can use Push_PutConfirmedReservationMulti_RQ, but remember to provide the existing Reservation ID.

Request

<Push_ConfirmReservation_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ReservationID>123</ReservationID>
</Push_ConfirmReservation_RQ>
XML Path Data Type Type Description
Push_ConfirmReservation_RQ C Root element
Push_ConfirmReservation_RQ/Authentication C, M Authentication details
Push_ConfirmReservation_RQ/Authentication/UserName String(50) M Username
Push_ConfirmReservation_RQ/Authentication/Password String(50) M Password
Push_ConfirmReservation_RQ/ReservationID Integer M Unique reservation ID

Response

<Push_ConfirmReservation_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_ConfirmReservation_RS>
XML Path Data Type Type Description
Push_ConfirmReservation_RS C Root element
Push_ConfirmReservation_RS/Status String(100) M See ListStatuses
Push_ConfirmReservation_RS/Status@ID Integer M See ListStatuses
Push_ConfirmReservation_RS/ResponseID String(32) M Unique response ID
Push_ConfirmReservation_RS/ReservationID Integer O Unique reservation ID, this element is not present when an error occurs

Put requests

Use this method to create an unconfirmed reservation (request). You can book more than one property in a single request.

Request

Example

<Push_PutUnconfirmedReservation_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Reservation>
        <StayInfos>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
            <StayInfo>
                <PropertyID>4</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
        </StayInfos>
        <CancellationPolicyInfo>
            <PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
            <CancellationPolicies>
                <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
                <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
            </CancellationPolicies>
        </CancellationPolicyInfo>
        <CustomerInfo>
            <Name>Test</Name>
            <SurName>Test</SurName>
            <Email>test.test@test.com</Email>
            <Phone>+11 111 111 111</Phone>
            <SkypeID>test.test</SkypeID>
            <Address>Street 1/2</Address>
            <ZipCode>00-000</ZipCode>
            <LanguageID>1</LanguageID>
            <CountryID>42</CountryID>
        </CustomerInfo>
        <GuestDetailsInfo>
            <NumberOfAdults>2</NumberOfAdults>
            <NumberOfChildren>2</NumberOfChildren>
            <NumberOfInfants>3</NumberOfInfants>
            <ChildrenAges>
                <Age>12</Age>
                <Age>9</Age>
                <Age>2</Age>
                <Age>2</Age>
                <Age>1</Age>
            </ChildrenAges>
        </GuestDetailsInfo>
        <Comments>test</Comments>
    </Reservation>
</Push_PutUnconfirmedReservation_RQ>

Example (when the credit card and sales channel price breakdown information is provided)

<Push_PutUnconfirmedReservation_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Reservation>
        <StayInfos>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
            <StayInfo>
                <PropertyID>4</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                    <ChannelCommission>12.00</ChannelCommission>
                </Costs>
            </StayInfo>
        </StayInfos>
        <CustomerInfo>
            <Name>Test</Name>
            <SurName>Test</SurName>
            <Email>test.test@test.com</Email>
            <Phone>+11 111 111 111</Phone>
            <SkypeID>test.test</SkypeID>
            <Address>Street 1/2</Address>
            <ZipCode>00-000</ZipCode>
            <LanguageID>1</LanguageID>
            <CountryID>42</CountryID>
        </CustomerInfo>
        <Comments>test</Comments>
        <CreditCard>
            <CCNumber>00000000000</CCNumber>
            <CVC>321</CVC>
            <NameOnCard>Test</NameOnCard>
            <Expiration>12/2015</Expiration>
            <BillingAddress>testaddr</BillingAddress>
            <CardType>VISA</CardType>
            <Comments>comments</Comments>
            <SecureAuthentication>
                <CAVV>AAABADUwN4BCdmNkQDA3EFZht3Y=</CAVV>
                <ECI>02</ECI>
                <XID>YeHuimlTf1MTGaelHpisFSE4jVe=</XID>
                <DsTransID>3efde785-d918-40ba-a274-48e343ffb276</DsTransID>
                <ThreeDSVersion>2.1.0</ThreeDSVersion>
                <ExceptionType>MAIL_ORDER_TELEPHONE_ORDER</ExceptionType>
            </SecureAuthentication>
        </CreditCard>
        <ChannelBreakdownInfo>
            <DayPrices Date="2012-03-02">
                <RentInfo>
                    <Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
                </RentInfo>
                <Taxes>
                    <Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
                    <Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
                </Taxes>
                <Fees>
                    <Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
                </Fees>
                <Price>157.10</Price>
            </DayPrices>
            <ChannelTotalFeesTaxes>
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
            </ChannelTotalFeesTaxes>
            <ChannelTotal>282.07</ChannelTotal>
            <ChannelRent>206.37</ChannelRent>
        </ChannelBreakdownInfo>
    </Reservation>
</Push_PutUnconfirmedReservation_RQ>
XML Path Data Type Type Description
Push_PutUnconfirmedReservation_RQ C Root element
Push_PutUnconfirmedReservation_RQ/Authentication C, M Authentication details
Push_PutUnconfirmedReservation_RQ/Authentication/UserName String(50) M Username
Push_PutUnconfirmedReservation_RQ/Authentication/Password String(50) M Password
Push_PutUnconfirmedReservation_RQ/Reservation M Single reservation
Push_PutUnconfirmedReservation_RQ/Reservation/ReservationID Integer O Unique reservation ID, this element is optional, you should use it only as a follow up to Push_PutUnconfirmedReservation_RQ.
Push_PutUnconfirmedReservation_RQ/Reservation@Currency String(3) O Currency code of the reservation prices. Note that the reservation prices will be exchanged to the currency of the property, using the current exchange rates
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos C, M A collection of stay information
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo C, M Information about the stay
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Units Integer O Number of units booked
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/PropertyID Integer M Unique property ID
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/DateTo String(10) M Departure date (YYYY-MM-DD format)
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ArrivalTime String(19) O Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format)
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/NumberOfGuests Integer M Number of guests staying in the property
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs C, M Information about the property costs
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/RUPrice Decimal(19,2) M The price returned by one of the RU methods for the property in the specified dates. The maximum accepted value is 214748.36
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/ClientPrice Decimal(19,2) M Final price for the guest. The maximum accepted value is 214748.36
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid Decimal(19,2) M The amount already paid by the guest. The maximum accepted value is 214748.36
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/ChannelCommission Decimal(19,2) O The amount charged by the sales channel. The maximum accepted value is 214748.36
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Comments String(500) O Additional comments about this stay
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo C, O A container for the cancellation policy description and a collection of cancellation policies
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/PolicyText String(1000) M The cancellation policy description
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies C, O A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy Decimal(19,2) O A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom Integer O The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo Integer O The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo C, M Information about the guest
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/Name String(20) M Guest's name
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/SurName String(30) M Guest's surname
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/Email String(100) M Guest's email address
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with country code
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/MobilePhone String(30) O Guest's mobile phone number with country code
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/SkypeID String(50) O Guest's Skype ID
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/Address String(50) O Guest's address
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/LanguageID Integer O Country's unique ID, See ListLanguages
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, See ListLocations (filterLocationTypeID=2)
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo C, O A container object for the reservation occupancy details
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation (acceptable values: 0-17)
Push_PutUnconfirmedReservation_RQ/Reservation/Comments String(4000) O Additional comments
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard C, O Credit card information
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/CCNumber String(19) M Credit card number
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/CVC String(4) O Credit card security code
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/NameOnCard String(400) M Credit card holder name
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/Expiration String(7) M Credit card expiration date (MM/YYYY format)
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/BillingAddress String(400) O Billing address
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/CardType String(30) M Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/Comments String(400) O Additional comments for the credit card
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication C, O Object holding information about 3DS2 payments
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV String(48) O It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor.
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ECI String(2) O Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/XID String(40) O Encoded "transactionId"
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID UUID O Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion String(5) O A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD.
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType String(40) O Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt.
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo C, O A container object for the reservation price breakdown received from the sales channel
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices C, O A collection of objects containing price information for each day of the reservation
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo C, O A collection of rent items for specific DayPrices@Date of the reservation
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@IncludedInChannelTotal Boolean M Information if the rent value is included in ChannelTotal
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Amount Decimal(19,2) M The daily rent value
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Currency String(3) M Currency, see ListCurrencies
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Name String(55) M Rent description
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes C, O A collection of taxes for specific DayPrices@Date of the reservation
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@IncludedInChannelTotal Boolean M Information if the tax value is included in ChannelTotal
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Currency String(3) M Currency, see ListCurrencies
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Name String(55) M Tax description
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees C, O A collection of fees for specific DayPrices@Date of the reservation
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@IncludedInChannelTotal Boolean M Information if the fee value is included in ChannelTotal
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@Name String(55) M Fee description
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes C, O A container object for fees and taxes applied for the whole stay and the ones that are applied per day
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal Boolean M Information if the total tax/fee amount of one type is included in ChannelTotal
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency String(3) M Currency, see ListCurrencies
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name String(55) M Tax/fee description
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType String(3) M Information whether the item is a tax or a fee
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotal Decimal(19,2) M The total price paid by the guest for the whole stay as received from the sales channel
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelRent Decimal(19,2) M The rent value of the whole stay
Push_PutUnconfirmedReservation_RQ/Reservation/ReferenceID String(50) O Sales Channel reservation ID

Response

Example (completed successfully)

<Push_PutUnconfirmedReservation_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">Success</ResponseID>
    <ReservationID>124</ReservationID>
</Push_PutUnconfirmedReservation_RS>
XML Path Data Type Type Description
Push_PutUnconfirmedReservation_RS C Root element
Push_PutUnconfirmedReservation_RS/Status String(100) M See ListStatuses
Push_PutUnconfirmedReservation_RS/Status@ID Integer M See ListStatuses
Push_PutUnconfirmedReservation_RS/ResponseID String(32) M Unique response ID
Push_PutUnconfirmedReservation_RS/ReservationID Integer O Unique reservation ID, this element is not present when an error occurs

Cancel reservation

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_CancelReservation_RQ request = new Push_CancelReservation_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ReservationID = 123
};

string xmlBody = XmlTools.SerializeObject<Push_CancelReservation_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_CancelReservation_RS response = XmlTools.DeserializeObject<Push_CancelReservation_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to cancel previously created reservations. As soon as the reservation is cancelled, availability of a given property is increased.

You can optionally provide CancelTypeID which defines who cancelled the reservation (Property Provider or the Guest).

This method can be used also by Property Managers. List of sales channels supporting cancelling via Rentals United:

In case reservation comes from another sales channel reach out directly to their support or cancel reservation in sales channel's extranet/management console/platform.

Request

<Push_CancelReservation_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ReservationID>123</ReservationID>
    <CancelTypeID>1</CancelTypeID>
</Push_CancelReservation_RQ>
XML Path Data Type Type Description
Push_CancelReservation_RQ C Root element
Push_CancelReservation_RQ/Authentication C, M Authentication details
Push_CancelReservation_RQ/Authentication/UserName String(50) M Username
Push_CancelReservation_RQ/Authentication/Password String(50) M Password
Push_CancelReservation_RQ/ReservationID Integer M Unique reservation ID
Push_CancelReservation_RQ/CancelTypeID Integer O 1 - Property Provider cancellation, 2 - Guest cancellation

Response

<Push_CancelReservation_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_CancelReservation_RS>
XML Path Data Type Type Description
Push_CancelReservation_RS C Root element
Push_CancelReservation_RS/Status String(100) M See ListStatuses
Push_CancelReservation_RS/Status@ID Integer M See ListStatuses
Push_CancelReservation_RS/ResponseID String(32) M Unique response ID

Archive reservation

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_ArchiveReservation_RQ request = new Push_ArchiveReservation_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ReservationID = 123,
    Archive = true
};

string xmlBody = XmlTools.SerializeObject<Push_ArchiveReservation_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_ArchiveReservation_RS response = XmlTools.DeserializeObject<Push_ArchiveReservation_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to archive past reservations of any status.

Request

<Push_ArchiveReservation_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ReservationID>123</ReservationID>
    <Archive>true</Archive>
</Push_ArchiveReservation_RQ>
XML Path Data Type Type Description
Push_ArchiveReservation_RQ C Root element
Push_ArchiveReservation_RQ/Authentication C, M Authentication details
Push_ArchiveReservation_RQ/Authentication/UserName String(50) M Username
Push_ArchiveReservation_RQ/Authentication/Password String(50) M Password
Push_ArchiveReservation_RQ/ReservationID Integer M Unique reservation ID
Push_ArchiveReservation_RQ/Archive Boolean M Indicates whether to archive or unarchive reservation / request, true = archive false = unarchive

Response

<Push_ArchiveReservation_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_ArchiveReservation_RS>
XML Path Data Type Type Description
Push_ArchiveReservation_RS C Root element
Push_ArchiveReservation_RS/Status String(100) M See ListStatuses
Push_ArchiveReservation_RS/Status@ID Integer M See ListStatuses
Push_ArchiveReservation_RS/ResponseID String(32) M Unique response ID

Reject request

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_RejectRequest_RQ request = new Push_RejectRequest_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ReservationID = 123
};

string xmlBody = XmlTools.SerializeObject<Push_RejectRequest_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_RejectRequest_RS response = XmlTools.DeserializeObject<Push_RejectRequest_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to reject requests. This method also works for rejecting requests coming from sales channels, only if the sales channel supports the request flow and you are eligible to use it.

<Push_RejectRequest_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ReservationID>123</ReservationID>
</Push_RejectRequest_RQ>
XML Path Data Type Type Description
Push_RejectRequest_RQ C Root element
Push_RejectRequest_RQ/Authentication C, M Authentication details
Push_RejectRequest_RQ/Authentication/UserName String(50) M Username
Push_RejectRequest_RQ/Authentication/Password String(50) M Password
Push_RejectRequest_RQ/ReservationID Integer M Unique reservation ID
Push_RejectRequest_RQ/Reason String O Reason of rejecting request. It may be mandatory for some channels. Possible values can be found below.
Push_RejectRequest_RQ/MessageToGuest String O Message that will be sent to guest. It may be mandatory for some channels
Push_RejectRequest_RQ/MessageToChannel String O Message that will be sent to channel. It may be mandatory for some channels

Response

<Push_RejectRequest_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_RejectRequest_RS>
XML Path Data Type Type Description
Push_RejectRequest_RS C Root element
Push_RejectRequest_RS/Status String(100) M See ListStatuses
Push_RejectRequest_RS/Status@ID Integer M See ListStatuses
Push_RejectRequest_RS/ResponseID String(32) M Unique response ID

Mark request as expired

It changes the reservation status to Expired. See ListStatuses.

For example, use this method to change the status of the requests which are outdated or no longer valid. It can be useful if the channel request-to-book flow supports a fixed time frame (e.g. 24 hours) in which requests can be acted upon by the property manager (confirmed or rejected).

<Push_MarkRequestAsExpired_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ReservationID>123</ReservationID>
</Push_MarkRequestAsExpired_RQ>
XML Path Data Type Type Description
Push_MarkRequestAsExpired_RQ C Root element
Push_MarkRequestAsExpired_RQ/Authentication C, M Authentication details
Push_MarkRequestAsExpired_RQ/Authentication/UserName String(50) M Username
Push_MarkRequestAsExpired_RQ/Authentication/Password String(50) M Password
Push_MarkRequestAsExpired_RQ/ReservationID Integer M Unique reservation ID

Response

<Push_MarkRequestAsExpired_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_MarkRequestAsExpired_RS>
XML Path Data Type Type Description
Push_MarkRequestAsExpired_RS C Root element
Push_MarkRequestAsExpired_RS/Status String(100) M See ListStatuses
Push_MarkRequestAsExpired_RS/Status@ID Integer M See ListStatuses
Push_MarkRequestAsExpired_RS/ResponseID String(32) M Unique response ID

Push ModifyStay

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_ModifyStay_RQ request = new Push_ModifyStay_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ReservationID = 123456,
    Current = new Current()
    {
        PropertyID = 1,
        DateFrom = new DateTime(2015, 5, 20),
        DateTo = new DateTime(2015, 6, 30)
    },
    Modify = new Modify()
    {
        PropertyID = "2",
        DateFrom = "2015-06-01",
        DateTo = "2015-06-15",
        NumberOfGuests = "2",
        ClientPrice = "123.45",
        AlreadyPaid = "123.45",
        PMSReservationId = "7yd8"
    },
    AllowOverbooking = false
};

string xmlBody = XmlTools.SerializeObject<Push_ModifyStay_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_ModifyStay_RS response = XmlTools.DeserializeObject<Push_ModifyStay_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to modify an existing confirmed reservation.

You can modify Guest details, property, dates, number of people, price, etc.

Typical modification reasons are * Guest modifies a reservation on the Sales Channel * Property Provider wants to move a reservation to another identical property to optimise the availability

<Push_ModifyStay_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ReservationID>123456</ReservationID>
    <Current>
        <PropertyID>1</PropertyID>
        <DateFrom>2015-05-20</DateFrom>
        <DateTo>2015-06-30</DateTo>
    </Current>
    <Modify>
        <PropertyID>2</PropertyID>
        <DateFrom>2015-06-01</DateFrom>
        <DateTo>2015-06-15</DateTo>
        <NumberOfGuests>2</NumberOfGuests>
        <ClientPrice>123.45</ClientPrice>
        <AlreadyPaid>123.45</AlreadyPaid>
        <ChannelCommission>12.00</ChannelCommission>
        <PMSReservationId>7yd8</PMSReservationId>
        <CancellationPolicyInfo>
            <PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
            <CancellationPolicies>
                <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
                <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
            </CancellationPolicies>
        <CancellationPolicyInfo>
        <GuestDetailsInfo>
            <NumberOfAdults>2</NumberOfAdults>
            <NumberOfChildren>2</NumberOfChildren>
            <NumberOfInfants>3</NumberOfInfants>
            <ChildrenAges>
                <Age>12</Age>
                <Age>9</Age>
                <Age>2</Age>
                <Age>2</Age>
                <Age>1</Age>
            </ChildrenAges>
        </GuestDetailsInfo>
        <ChannelBreakdownInfo>
            <DayPrices Date="2015-06-02">
                <RentInfo>
                    <Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
                </RentInfo>
                <Taxes>
                    <Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
                    <Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
                </Taxes>
                <Fees>
                    <Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
                </Fees>
                <Price>157.10</Price>
            </DayPrices>
            <ChannelTotalFeesTaxes>
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
            </ChannelTotalFeesTaxes>
            <ChannelTotal>282.07</ChannelTotal>
            <ChannelRent>206.37</ChannelRent>
        </ChannelBreakdownInfo>
    </Modify>
    <AllowOverbooking>false</AllowOverbooking>
    <UseCurrentPrice>false</UseCurrentPrice>
</Push_ModifyStay_RQ>
XML Path Data Type Type Description
Push_ModifyStay_RQ C Root Element
Push_ModifyStay_RQ/Authentication C, M Authentication details
Push_ModifyStay_RQ/Authentication/UserName String(50) M Username
Push_ModifyStay_RQ/Authentication/Password String(50) M Password
Push_ModifyStay_RQ/ReservationID M Unique reservation ID
Push_ModifyStay_RQ/Current C, M Reservation details
Push_ModifyStay_RQ/Current/PropertyID Integer M ID of the originally booked property
Push_ModifyStay_RQ/Current/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Push_ModifyStay_RQ/Current/DateTo String(10) M Departure date (YYYY-MM-DD format)
Push_ModifyStay_RQ/Current/ResApaID String(50) O Unique apartment reservation identifier
Push_ModifyStay_RQ/Modify C, M Modification details
Push_ModifyStay_RQ/Modify/PropertyID Integer O New property's ID
Push_ModifyStay_RQ/Modify/DateFrom String(10) O New Arrival date (YYYY-MM-DD format)
Push_ModifyStay_RQ/Modify/DateTo String(10) O New Departure date (YYYY-MM-DD format)
Push_ModifyStay_RQ/Modify/ArrivalTime String(19) O New Arrival time (YYYY-MM-DD HH:MM:SS format)
Push_ModifyStay_RQ/Modify/NumberOfGuests Integer O New number of guests staying in the property
Push_ModifyStay_RQ/Modify/ClientPrice Decimal(19,2) O New price the client has to pay. The maximum accepted value is 214748.36
Push_ModifyStay_RQ/Modify/AlreadyPaid Decimal(19,2) O New price the client has already paid. The maximum accepted value is 214748.36
Push_ModifyStay_RQ/Modify/ChannelCommission Decimal(19,2) O New price the sales channel is charging. The maximum accepted value is 214748.36
Push_ModifyStay_RQ/Modify/PMSReservationId String(100) O New reservation ID from PMS
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo C, O A container for the cancellation policy description and a collection of cancellation policies
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/PolicyText String(1000) O The cancellation policy description
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies C, O A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy Decimal(19,2) O A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom Integer O The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo Integer O The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom
Push_ModifyStay_RQ/Modify/GuestDetailsInfo C, O A container object for the reservation occupancy details
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation (acceptable values: 0-17)
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo C, O A container object for the reservation price breakdown received from the sales channel
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices C, O A collection of objects containing price information for each day of the reservation
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo C, O A collection of rent items for specific DayPrices@Date of the reservation
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@IncludedInChannelTotal Boolean M Information if the rent value is included in ChannelTotal
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Amount Decimal(19,2) M The daily rent value
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Currency String(3) M Currency, see ListCurrencies
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Name String(55) M Rent description
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes C, O A collection of taxes for specific DayPrices@Date of the reservation
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes/Tax@IncludedInChannelTotal Boolean M Information if the tax value is included in ChannelTotal
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Currency String(3) M Currency, see ListCurrencies
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Name String(55) M Tax description
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Fees C, O A collection of fees for specific DayPrices@Date of the reservation
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Fees/Fee@IncludedInChannelTotal Boolean M Information if the fee value is included in ChannelTotal
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Fees/Fee@Name String(55) M Fee description
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes C, O A container object for fees and taxes applied for the whole stay and the ones that are applied per day
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal Boolean M Information if the total tax/fee amount of one type is included in ChannelTotal
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency String(3) M Currency, see ListCurrencies
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name String(55) M Tax/fee description
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType String(3) M Information whether the item is a tax or a fee
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotal Decimal(19,2) M The total price paid by the guest for the whole stay as received from the sales channel
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelRent Decimal(19,2) M The rent value of the whole stay
Push_ModifyStay_RQ/AllowOverbooking Boolean O If true, then allows for an overbooking. Default is false
Push_ModifyStay_RQ/UseCurrentPrice Boolean O If true, then the reservation price will not be recalculated. Default is false
Push_ModifyStay_RQ/QuoteModeId Integer O See List Quote Modes.

Response

<Push_ModifyStay_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_ModifyStay_RS>
XML Path Data Type Type Description
Push_ModifyStay_RS C Root Element
Push_ModifyStay_RS/Status String(100) M See ListStatuses
Push_ModifyStay_RS/Status/@ID Integer M See ListStatuses
Push_ModifyStay_RS/ResponseID String(32) M Unique response ID

Modify reservation creator

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_ModifyReservationCreator_RQ request = new Push_ModifyReservationCreator_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ReservationID = 123456,
    TargetCreatorID = 0
};

string xmlBody = XmlTools.SerializeObject<Push_ModifyReservationCreator_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_ModifyReservationCreator_RS response = XmlTools.DeserializeObject<Push_ModifyReservationCreator_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to modify the creator of an existing reservation. It works only for reservations created by you.

In order to change the reservation creator to a specific sales channel, please find any reservation created by you and use Push_ModifyReservationCreator_RQ method. If you do not have a manual reservation yet, you can create one by using Push_PutConfirmedReservationMulti_RQ and then use Push_ModifyReservationCreator_RQ method.

If you want to change the information about the creator for multiple reservations, you need to use this method for every single reservation that you want to change.

Request

<Push_ModifyReservationCreator_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <ReservationID>123456</ReservationID>
  <TargetCreatorID>0</TargetCreatorID>
</Push_ModifyReservationCreator_RQ>
XML Path Data Type Type Description
Push_ModifyReservationCreator_RQ C Root element
Push_ModifyReservationCreator_RQ/Authentication C, M Authentication details
Push_ModifyReservationCreator_RQ/Authentication/UserName String(50) M Username
Push_ModifyReservationCreator_RQ/Authentication/Password String(50) M Password
Push_ModifyReservationCreator_RQ/ReservationID Integer M Unique reservation ID
Push_ModifyReservationCreator_RQ/TargetCreatorID Integer M Unique ID of a sales channel that should be set as creator of reservation, see Pull_ListSalesChannels_RQ

Response

<Push_ModifyReservationCreator_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_ModifyReservationCreator_RS>
XML Path Data Type Type Description
Push_ModifyReservationCreator_RS C Root Element
Push_ModifyReservationCreator_RS String(100) M See ListStatuses
Push_ModifyReservationCreator_RS Integer M See ListStatuses
Push_ModifyReservationCreator_RS String(32) M Unique response ID

Resend RLNM Message

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Push_SendRLNMMessage_RQ request = new Push_SendRLNMMessage_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ReservationID = 123456
};

string xmlBody = XmlTools.SerializeObject<Push_SendRLNMMessage_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_SendRLNMMessage_RQ response = XmlTools.DeserializeObject<Push_SendRLNMMessage_RQ>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to resend an RLNM notification for a specified reservation. It may be useful as sometimes the RLNM happens not to reach its destination and with this method you can request sending this notification again.

Before you use this method, you need to turn on LNM notifications for you account. The detailed steps are described in LNM_PutHandlerUrl_RQ. Note that all notifications (also notifications from Push_SendRLNMMessage_RQ) will be sent to the handler you configured in LNM_PutHandlerUrl_RQ.

Note that this method will work only if you are the owner of the properties the reservation pertains to.

Request

<Push_SendRLNMMessage_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <ReservationID>123456</ReservationID>
</Push_SendRLNMMessage_RQ>
XML Path Data Type Type Description
Push_SendRLNMMessage_RQ C Root element
Push_SendRLNMMessage_RQ/Authentication C, M Authentication details
Push_SendRLNMMessage_RQ/Authentication/UserName String(50) M Username
Push_SendRLNMMessage_RQ/Authentication/Password String(50) M Password
Push_SendRLNMMessage_RQ/ReservationID Integer M Unique reservation ID

Response

<Push_SendRLNMMessage_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_SendRLNMMessage_RS>
XML Path Data Type Type Description
Push_SendRLNMMessage_RS C Root Element
Push_SendRLNMMessage_RS/Status String(100) M See ListStatuses
Push_SendRLNMMessage_RS/Status/@ID Integer M See ListStatuses
Push_SendRLNMMessage_RS/ResponseID String(32) M Unique response ID

List reservations

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_ListReservations_RQ request = new Pull_ListReservations_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    DateFrom = "2013-08-17 14:00:00",
    DateTo = "2013-08-17 14:20:00",
    LocationID = 0
};

string xmlBody = XmlTools.SerializeObject<Pull_ListReservations_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListReservations_RS response = XmlTools.DeserializeObject<Pull_ListReservations_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns a list of reservations (for your properties) sorted by last modification date.

Call this method periodically to obtain created, cancelled and modified reservations and transfer them to your system.

By default this method will return only reservations in the Confirmed and Cancelled statuses. In order to retrieve the reservations in other statuses, e.g. unconfirmed reservations (requests), make sure to provide the list of statuses in Pull_ListReservations_RQ/Statuses. See ListReservationStatuses.

This function will not return leads. See GetLeads.

We encourage you to call this API method at least every 20 minutes to quickly update your calendar.

Request

Example (returns a list of reservations modified between 2013-08-17 14:00:00 and 2013-08-17 14:19:59)

<Pull_ListReservations_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <DateFrom>2013-08-17 14:00:00</DateFrom>
    <DateTo>2013-08-17 14:20:00</DateTo>
    <LocationID>0</LocationID>
</Pull_ListReservations_RQ>
XML Path Data Type Type Description
Pull_ListReservations_RQ C Root element
Pull_ListReservations_RQ/Authentication C, M Authentication details
Pull_ListReservations_RQ/Authentication/UserName String(50) M Username
Pull_ListReservations_RQ/Authentication/Password String(50) M Password
Pull_ListReservations_RQ/DateFrom String(19) M Start of the range of modification(YYYY-MM-DD HH:MM:SS format)
Pull_ListReservations_RQ/DateTo String(19) M End of the range of modification(YYYY-MM-DD HH:MM:SS format)
Pull_ListReservations_RQ/LocationID Integer M Unique location ID. See ListLocations. To download all of your bookings without location filter please send "0".
Pull_ListReservations_RQ/Statuses C, O Collection of reservation status IDs. See ListReservationStatuses. By default, only reservations in the Confirmed and Cancelled statuses are retrieved. Retrieving reservations in the Modified status will always return an empty list.
Pull_ListReservations_RQ/Statuses/StatusID Integer M Reservation status ID

Response

<Pull_ListReservations_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Reservations>
        <Reservation>
            <ReservationID>123</ReservationID>
            <StatusID>1</StatusID>
            <CreatedDate>2022-03-01 10:10:02</CreatedDate>
            <LastMod>2022-03-01 10:10:02</LastMod>
            <StayInfos>
                <StayInfo>
                    <PropertyID>1</PropertyID>
                    <XmlApartmentID>Ext. ID. 1</XmlApartmentID>
                    <DateFrom>2022-05-29</DateFrom>
                    <DateTo>2022-05-31</DateTo>
                    <ArrivalTime>2022-05-29 11:42:10</ArrivalTime>
                    <NumberOfGuests>4</NumberOfGuests>
                    <Costs>
                        <RUPrice>1120.06</RUPrice>
                        <ClientPrice>1120.06</ClientPrice>
                        <AlreadyPaid>50.00</AlreadyPaid>
                    </Costs>
                    <ResApaID>1</ResApaID>
                    <Mapping>
                        <ReservationID>123</ReservationID>
                        <StayID>123</StayID>
                        <HotelID>123</HotelID>
                        <RoomID>123</RoomID>
                        <RateID>123</RateID>
                    </Mapping>
                    <ReservationBreakdown>
                        <RUBreakdown>
                            <DayPrices Date="2022-05-29">
                                <Rent>244.99</Rent>
                                <Taxes>
                                    <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                                </Taxes>
                                <Fees>
                                    <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                </Fees>
                                <Price>265.49</Price>
                            </DayPrices>
                            <DayPrices Date="2022-05-30">
                                <Rent>244.99</Rent>
                                <Taxes>
                                    <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                                </Taxes>
                                <Fees>
                                    <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                </Fees>
                                <Price>265.49</Price>
                            </DayPrices>
                            <DayPrices Date="2022-05-31">
                                <Rent>244.99</Rent>
                                <Taxes>
                                    <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                                </Taxes>
                                <Fees>
                                    <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                </Fees>
                                <Price>265.49</Price>
                            </DayPrices> 
                            <TotalFeesTaxes>
                                <TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
                                <TotalFeeTax AlreadyIncluded="false" Amount="140.0" Name="Pet fee" FeeTaxType="29"/>
                                <TotalFeeTax AlreadyIncluded="false" Amount="241.59" Name="VAT" FeeTaxType="2"/>
                            </TotalFeesTaxes>
                            <Total>1120.06</Total>
                            <Rent>734.97</Rent>
                        </RUBreakdown>
                        <ChannelBreakdown/>
                        <ChannelCommission>210.00</ChannelCommission>
                    </ReservationBreakdown>
                </StayInfo>
            </StayInfos>
            <CancellationPolicyInfo>
                <PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
                <CancellationPolicies>
                    <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
                    <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
                </CancellationPolicies>
            <CancellationPolicyInfo>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>42</CountryID>
                <LanguageID>2</LanguageID>
            </CustomerInfo>
            <GuestDetailsInfo>
                <NumberOfAdults>2</NumberOfAdults>
                <NumberOfChildren>2</NumberOfChildren>
                <NumberOfInfants>3</NumberOfInfants>
                <ChildrenAges>
                    <Age>12</Age>
                    <Age>9</Age>
                    <Age>2</Age>
                    <Age>2</Age>
                    <Age>1</Age>
                </ChildrenAges>
            </GuestDetailsInfo>
            <Creator>test@test.test</Creator>
        </Reservation>
        <Reservation>
            <ReservationID>124</ReservationID>
            <StatusID>2</StatusID>
            <CreatedDate>2022-02-25 09:43:22</CreatedDate>
            <LastMod>2022-03-01 20:10:02</LastMod>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <XmlApartmentID>Ext. ID. 2</XmlApartmentID>
                <DateFrom>2022-05-29</DateFrom>
                <DateTo>2022-05-30</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>249.09</RUPrice>
                    <ClientPrice>300</ClientPrice>
                    <AlreadyPaid>40</AlreadyPaid>
                </Costs>
                <ResApaID>2</ResApaID>
                <ReservationBreakdown>
                    <RUBreakdown>
                        <DayPrices Date="2022-05-29">
                            <Rent>100</Rent>
                            <Taxes>
                                <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                            </Taxes>
                            <Fees>
                                <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                            </Fees>
                            <Price>120.5</Price>
                        </DayPrices>
                        <DayPrices Date="2022-05-30">
                            <Rent>100</Rent>
                            <Taxes>
                                <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                            </Taxes>
                            <Fees>
                                <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                            </Fees>
                            <Price>120.5</Price>
                        </DayPrices>                 
                        <TotalFeesTaxes>
                            <TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
                            <TotalFeeTax AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                            <TotalFeeTax AlreadyIncluded="false" Amount="24.59" Name="VAT" FeeTaxType="2"/>
                        </TotalFeesTaxes>
                        <Total>248.09</Total>
                        <Rent>200</Rent>
                    </RUBreakdown>
                    <ChannelBreakdown>
                        <DayPrices Date="2022-05-29">
                            <RentInfo>
                                <Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
                            </RentInfo>
                            <Taxes>
                                <Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
                                <Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
                            </Taxes>
                            <Fees>
                                <Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
                            </Fees>
                            <Price>157.10</Price>
                        </DayPrices>
                        <DayPrices Date="2022-05-30">
                            <RentInfo>
                                <Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
                            </RentInfo>
                            <Taxes>
                                <Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
                            </Taxes>
                            <Price>101.11</Price>
                        </DayPrices>
                        <ChannelTotalFeesTaxes>
                            <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
                            <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
                            <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
                        </ChannelTotalFeesTaxes>
                        <ChannelTotal>282.07</ChannelTotal>
                        <ChannelRent>206.37</ChannelRent>
                    </ChannelBreakdown>
                </ReservationBreakdown>
            </StayInfo>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>33</CountryID>
            </CustomerInfo>
            <Creator>test@test.test</Creator>
            <Comments>test</Comments>
            <PMSReservationId>39huy</PMSReservationId>
            <CancelTypeID>1</CancelTypeID>
            <Archived>false</Archived>
        </Reservation>
    </Reservations>
</Pull_ListReservations_RS>
XML Path Data Type Type Description
Pull_ListReservations_RS C Root element
Pull_ListReservations_RS/Status String(100) M See ListStatuses
Pull_ListReservations_RS/Status@ID Integer M See ListStatuses
Pull_ListReservations_RS/Reservations C A list of reservations
Pull_ListReservations_RS/Reservations/Reservation C Single reservation
Pull_ListReservations_RS/Reservations/Reservation/ReservationID Integer M Unique reservation ID
Pull_ListReservations_RS/Reservations/Reservation/StatusID Integer M The code that identifies the reservation status, see ListReservationStatuses
Pull_ListReservations_RS/Reservations/Reservation/CreatedDate String M The creation date of the reservation (format YYYY-MM-DD HH-MM-SS)
Pull_ListReservations_RS/Reservations/Reservation/LastMod String M The last modification date (creation or cancellation) of the reservation (format YYYY-MM-DD HH-MM-SS)
Pull_ListReservations_RS/Reservations/Reservation/StayInfos C, M Information about the stay associated with the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo M Information about the stay
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/PropertyID Integer M Unique property ID
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/XmlApartmentID String M External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned)
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/DateTo String(10) M Departure date (YYYY-MM-DD format)
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ArrivalTime String(19) O Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format)
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/NumberOfGuests Integer M Number of guests in the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Costs C, M Information about reservation costs
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/RUPrice Decimal(19,2) M Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP)
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/ClientPrice Decimal(19,2) M Final price for the guest
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid Decimal(19,2) M The amount already paid by the guest
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ResApaID Integer M Unique apartment reservation identifier. ResApaID can change in case of booking modification when reservation was moved from one apartment to another.
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Comments String(500) O Additional comments about the stay
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping C, O Information about reservation mapping with external systems
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/ReservationID String(50) M External System’s Reservation ID
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/StayID String(50) O External System’s reservation identifier assigned to the property
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/HotelID String(50) O External System’s Apartment identifier
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RoomID String(50) O External System’s Room Identifier
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RateID String(50) O External System’s Rate identifier
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown C, M A container object for the reservation price breakdown details
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown C, M A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes set-up as it is in Rentals United
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices C, M A collection of objects containing price information for each day of the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent Decimal(19,2) M The value of the base rent for specific day
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes C, M A collection of taxes for specific DayPrices@Date of the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded Boolean M Information if the tax value is included in Rent
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees C, M A collection of fees for specific DayPrices@Date of the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded Boolean M Information if the fee value is included in Rent
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes C, M A container object for fees and taxes applied for the whole stay and the ones that are applied per day
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded Boolean M Information if the total tax/fee amount of one type is included in Rent
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name String(50) M Tax/fee description
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total Decimal(19,2) M The overall value of rent, fees and taxes of the whole stay
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent Decimal(19,2) M The value of rent for the whole stay
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown C, O A container object for the reservation price breakdown received from the sales channel
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices C, O A collection of objects containing price information for each day of the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo C, O A collection of rent items for specific DayPrices@Date of the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal Boolean M Information if the rent value is included in ChannelTotal
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount Decimal(19,2) M The daily rent value
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name String(50) M Rent description
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes C, O A collection of taxes for specific DayPrices@Date of the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal Boolean M Information if the tax value is included in ChannelTotal
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees C, O A collection of fees for specific DayPrices@Date of the reservation
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal Boolean M Information if the fee value is included in ChannelTotal
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes C, M A container object for fees and taxes applied for the whole stay and the ones that are applied per day
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal Boolean M Information if the total tax/fee amount of one type is included in ChannelTotal
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name String(50) M Tax/fee description
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType String(3) O Information whether the item is a tax or a fee
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal Decimal(19,2) M The total price paid by the guest for the whole stay as received from the sales channel
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent Decimal(19,2) M The rent value of the whole stay
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission Decimal(19,2) O The amount charged by the sales channel
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo C, O A container for the cancellation policy description and a collection of cancellation policies
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText String(1000) M The cancellation policy description
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies C, O A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy Decimal(19,2) O A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom Integer O The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo Integer O The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo C, M Information about the guest
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Name String(20) M Guest's name
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/SurName String(30) M Guest's surname
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Email String(100) M Guest's email address
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with the country code
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/SkypeID String(50) O Guest's Skype ID
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Address String(50) O Guest's address
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, see ListLocations (filter LocationTypeID=2)
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/LanguageID Integer O Code that identifies the guest's language, see ListLanguages
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Passport String(30) O Guest’s passport number
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo C, O A container object for the reservation occupancy details
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation
Pull_ListReservations_RS/Reservations/Reservation/Creator String(50) M Email address/Username of an entity that created a reservation, e.g. the channel or the user
Pull_ListReservations_RS/Reservations/Reservation/Comments String(4000) O Additional comments
Pull_ListReservations_RS/Reservations/Reservation/CreditCard C, O Credit card information
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/CCNumber String(19) M Credit card number
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/CVC String(4) O Credit card security code
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/NameOnCard String(400) M Credit card holder name
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/Expiration String(7) M Credit card expiration date (MM/YYYY format)
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/BillingAddress String(400) O Billing address
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/CardType String(30) M Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/Comments String(400) O Additional comments for this credit card
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication C, O Object holding information about 3DS2 payments
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV String(48) O It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor.
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ECI String(2) O Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/XID String(40) O Encoded "transactionId"
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID UUID O Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion String(5) O A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD.
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType String(40) O Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt.
Pull_ListReservations_RS/Reservations/PMSReservationId String(100) O PMS Reservation ID
Pull_ListReservations_RS/Reservations/Reservation/CancelTypeID Integer O Cancellation type. See List cancellation types
Pull_ListReservations_RS/Reservations/Reservation/IsArchived Boolean M Indicates whether reservation is archived

List own reservations

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_GetOwnReservations_RQ request = new Pull_GetOwnReservations_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    DateFrom = "2013-08-17 00:00:00",
    DateTo = "2013-08-28 00:00:00",
    LocationID = 0
};

string xmlBody = XmlTools.SerializeObject<Pull_GetOwnReservations_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetOwnReservations_RS response = XmlTools.DeserializeObject<Pull_GetOwnReservations_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method is designed for Sales Channels. It returns a list of reservations created in Rentals United during a specified time frame.

If you are a property provider utilising Rentals United API and have inserted reservations into Rentals United (either via API or UI) you can use this method to reconcile reservation list.

Important: By default this method will return only reservations in the Confirmed and Cancelled statuses. In order to retrieve the reservations in other statuses, e.g. unconfirmed reservations (requests), make sure to provide the list of statuses in Pull_ListReservations_RQ/Statuses. See ListReservationStatuses.

This function will not return leads. See GetLeads.

Request

Example (returns a list of reservations created/cancelled between 2013-08-17 00:00:00 and 2013-08-27 23:59:59)

<Pull_GetOwnReservations_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <DateFrom>2013-08-17 00:00:00</DateFrom>
    <DateTo>2013-08-28 00:00:00</DateTo>
    <LocationID>0</LocationID>
</Pull_GetOwnReservations_RQ>
XML Path Data Type Type Description
Pull_GetOwnReservations_RQ C Root element
Pull_GetOwnReservations_RQ/Authentication C, M Authentication details
Pull_GetOwnReservations_RQ/Authentication/UserName String(50) M Username
Pull_GetOwnReservations_RQ/Authentication/Password String(50) M Password
Pull_GetOwnReservations_RQ/DateFrom String(19) M Start of the range of modification(YYYY-MM-DD HH:MM:SS format)
Pull_GetOwnReservations_RQ/DateTo String(19) M End of the range of modification(YYYY-MM-DD HH:MM:SS format)
Pull_GetOwnReservations_RQ/LocationID Integer M Unique location ID. See ListLocations
Pull_GetOwnReservations_RQ/Statuses C, O Collection of reservation status IDs. See ListReservationStatuses. By default, only reservations in the Confirmed and Cancelled statuses are retrieved. Retrieving reservations in the Modified status will always return an empty list.
Pull_GetOwnReservations_RQ/Statuses/StatusID Integer M Reservation status ID

Response

<Pull_GetOwnReservations_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Reservations>
        <Reservation>
            <ReservationID>123</ReservationID>
            <StatusID>1</StatusID>
            <CreatedDate>2012-02-25 09:43:22</CreatedDate>
            <LastMod>2012-03-01 10:10:02</LastMod>
            <StayInfo>
                <PropertyID>1</PropertyID>
                <XmlApartmentID>Ext. ID. 1</XmlApartmentID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-10</DateTo>
                <ArrivalTime>2012-03-02 16:20:00</ArrivalTime>
                <NumberOfGuests>4</NumberOfGuests>
                <Costs>
                    <RUPrice>100.00</RUPrice>
                    <ClientPrice>110.00</ClientPrice>
                    <AlreadyPaid>10.00</AlreadyPaid>
                </Costs>
            </StayInfo>
            <CancellationPolicyInfo>
                <PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
                <CancellationPolicies>
                    <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
                    <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
                </CancellationPolicies>
            <CancellationPolicyInfo>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>100</CountryID>
            </CustomerInfo>
            <GuestDetailsInfo>
                <NumberOfAdults>2</NumberOfAdults>
                <NumberOfChildren>2</NumberOfChildren>
                <NumberOfInfants>3</NumberOfInfants>
                <ChildrenAges>
                    <Age>12</Age>
                    <Age>9</Age>
                    <Age>2</Age>
                    <Age>2</Age>
                    <Age>1</Age>
                </ChildrenAges>
            </GuestDetailsInfo>
            <Creator>test@test.test</Creator>
        </Reservation>
        <Reservation>
            <ReservationID>124</ReservationID>
            <StatusID>2</StatusID>
            <CreatedDate>2012-03-01 10:10:02</CreatedDate>
            <LastMod>2012-03-01 20:10:02</LastMod>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <XmlApartmentID>Ext. ID. 2</XmlApartmentID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                </Costs>
            </StayInfo>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>33</CountryID>
                <LanguageID>3</LanguageID>
            </CustomerInfo>
            <Creator>test@test.test</Creator>
            <Comments>test</Comments>
            <CancelTypeID>1</CancelTypeID>
            <Archived>false</Archived>
        </Reservation>
    </Reservations>
</Pull_GetOwnReservations_RS>
XML Path Data Type Type Description
Pull_GetOwnReservations_RS C Root element
Pull_GetOwnReservations_RS/Status String(100) M See ListStatuses
Pull_GetOwnReservations_RS/Status@ID Integer M See ListStatuses
Pull_GetOwnReservations_RS/ResponseID String(32) M Unique response ID
Pull_GetOwnReservations_RS/Reservations C A list of reservations
Pull_GetOwnReservations_RS/Reservations/Reservation C Single reservation
Pull_GetOwnReservations_RS/Reservations/Reservation/ReservationID Integer M Unique reservation ID
Pull_GetOwnReservations_RS/Reservations/Reservation/StatusID Integer M The code that identifies a reservation status, see ListReservationStatuses
Pull_GetOwnReservations_RS/Reservations/Reservation/CreatedDate String M The creation date of the reservation (format YYYY-MM-DD HH-MM-SS)
Pull_GetOwnReservations_RS/Reservations/Reservation/LastMod String M The last modification date (creation or cancellation) of the reservation (format YYYY-MM-DD HH-MM-SS)
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo C, M Information about the stay associated with the reservation
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/PropertyID Integer M Unique property ID
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/XmlApartmentID String M External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned)
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/DateTo String(10) M Departure date (YYYY-MM-DD format)
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/ArrivalTime String(19) O Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format)
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/NumberOfGuests Integer M Number of guests
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Costs C, M Information about reservation costs
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Costs/RUPrice Decimal(19,2) M Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP)
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Costs/ClientPrice Decimal(19,2) M Final price for the guest
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Costs/AlreadyPaid Decimal(19,2) M The amount already paid by the guest
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Comments String(500) O Additional comments about the stay
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo C, O A container for the cancellation policy description and a collection of cancellation policies
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText String(1000) M The cancellation policy description
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies C, O A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy Decimal(19,2) O A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom Integer O The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo Integer O The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo C, M Information about the guest
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Name String(20) M Guest's name
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/SurName String(30) M Guest's surname
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Email String(100) M Guest's email address
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with the country code
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/SkypeID String(50) O Guest's Skype ID
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Address String(50) O Guest's address
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, see ListLocations (filter LocationTypeID=2)
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/LanguageID Integer O Code that identifies the guest's language, see ListLanguages
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Passport String(30) O Guest's passport number
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo C, O A container object for the reservation occupancy details
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation
Pull_GetOwnReservations_RS/Reservations/Reservation/Creator String(50) M Email address/Username of an entity that created a reservation, e.g. the channel or the user
Pull_GetOwnReservations_RS/Reservations/Reservation/Comments String(4000) O Additional comments
Pull_GetOwnReservations_RS/Reservations/Reservation/CancelTypeID Integer O Cancellation type. See List cancellation types
Pull_GetOwnReservations_RS/Reservations/Reservation/IsArchived Boolean M Indicates whether reservation is archived

Get reservation by ID

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_GetReservationByID_RQ request = new Pull_GetReservationByID_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ReservationID = 14634678
};

string xmlBody = XmlTools.SerializeObject<Pull_GetReservationByID_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetReservationByID_RS response = XmlTools.DeserializeObject<Pull_GetReservationByID_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns details of an individual reservation.

Reservation price breakdown received from the sales channel is only returned if there is single StayInfo.

Request

Example

<Pull_GetReservationByID_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
  <ReservationID>14634678</ReservationID>
</Pull_GetReservationByID_RQ>
XML Path Data Type Type Description
Pull_GetReservationByID_RQ C Root element
Pull_GetReservationByID_RQ/Authentication C, M Authentication details
Pull_GetReservationByID_RQ/Authentication/UserName String(50) M Username
Pull_GetReservationByID_RQ/Authentication/Password String(50) M Password
Pull_GetReservationByID_RQ/ReservationID Integer M Unique reservation ID

Response

<Pull_GetReservationByID_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Reservation>
        <ReservationID>123</ReservationID>
        <StatusID>1</StatusID>
        <CreatedDate>2022-02-25 09:43:22</CreatedDate>
        <LastMod>2022-03-01 10:10:02</LastMod>
        <StayInfos>
            <StayInfo>
                <PropertyID>1</PropertyID>
                <XmlApartmentID>Ext. ID. 1</XmlApartmentID>
                <DateFrom>2022-05-29</DateFrom>
                <DateTo>2022-05-31</DateTo>
                <ArrivalTime>2022-05-29 09:12:00</ArrivalTime>
                <NumberOfGuests>4</NumberOfGuests>
                <Costs>
                    <RUPrice>1120.06</RUPrice>
                    <ClientPrice>1120.06</ClientPrice>
                    <AlreadyPaid>50.00</AlreadyPaid>
                </Costs>
                <ResApaID>1</ResApaID>
                <Mapping>
                    <ReservationID>123</ReservationID>
                    <StayID>123</StayID>
                    <HotelID>123</HotelID>
                    <RoomID>123</RoomID>
                    <RateID>123</RateID>
                </Mapping>
                <ReservationBreakdown>
                    <RUBreakdown>
                        <DayPrices Date="2022-05-29">
                            <Rent>244.99</Rent>
                            <Taxes>
                                <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                            </Taxes>
                            <Fees>
                                <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                            </Fees>
                            <Price>265.49</Price>
                        </DayPrices>
                        <DayPrices Date="2022-05-30">
                            <Rent>244.99</Rent>
                            <Taxes>
                                <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                            </Taxes>
                            <Fees>
                                <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                            </Fees>
                            <Price>265.49</Price>
                        </DayPrices>
                        <DayPrices Date="2022-05-31">
                            <Rent>244.99</Rent>
                            <Taxes>
                                <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                            </Taxes>
                            <Fees>
                                <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                            </Fees>
                            <Price>265.49</Price>
                        </DayPrices>
                        <TotalFeesTaxes>
                            <TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
                            <TotalFeeTax AlreadyIncluded="false" Amount="140.0" Name="Pet fee" FeeTaxType="29"/>
                            <TotalFeeTax AlreadyIncluded="false" Amount="241.59" Name="VAT" FeeTaxType="2"/>
                        </TotalFeesTaxes>
                        <Total>1120.06</Total>
                        <Rent>734.97</Rent>
                    </RUBreakdown>
                    <ChannelBreakdown>
                        <DayPrices Date="2022-05-29">
                            <RentInfo>
                                <Rent IncludedInChannelTotal="true" Amount="236.90" Currency="USD" Name="Room" />
                            </RentInfo>
                            <Taxes>
                                <Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
                                <Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
                            </Taxes>
                            <Fees>
                                <Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
                            </Fees>
                            <Price>277.10</Price>
                        </DayPrices>
                        <DayPrices Date="2022-05-30">
                            <RentInfo>
                                <Rent IncludedInChannelTotal="true" Amount="255.30" Currency="USD" Name="Room" />
                            </RentInfo>
                            <Taxes>
                                <Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
                            </Taxes>
                            <Price>266.94</Price>
                        </DayPrices>
                        <DayPrices Date="2022-05-31">
                            <RentInfo>
                                <Rent IncludedInChannelTotal="true" Amount="236.90" Currency="USD" Name="Room" />
                            </RentInfo>
                            <Taxes>
                                <Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
                            </Taxes>
                            <Price>248.54</Price>
                        </DayPrices>
                        <ChannelTotalFeesTaxes>
                            <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
                            <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
                            <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
                        </ChannelTotalFeesTaxes>
                        <ChannelTotal>804.08</ChannelTotal>
                        <ChannelRent>729.10</ChannelRent>
                    </ChannelBreakdown>
                    <ChannelCommission>210.00</ChannelCommission>
                </ReservationBreakdown>
            </StayInfo>
        </StayInfos>
        <CancellationPolicyInfo>
            <PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
            <CancellationPolicies>
                <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
                <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
            </CancellationPolicies>
        <CancellationPolicyInfo>
        <CustomerInfo>
            <Name>Test</Name>
            <SurName>Test</SurName>
            <Email>test.test@test.com</Email>
            <Phone>+11 111 111 111</Phone>
            <SkypeID>test.test</SkypeID>
            <Address>Street 1/2</Address>
            <ZipCode>00-000</ZipCode>
            <CountryID>42</CountryID>
            <LanguageID>2</LanguageID>
        </CustomerInfo>
        <GuestDetailsInfo>
            <NumberOfAdults>2</NumberOfAdults>
            <NumberOfChildren>2</NumberOfChildren>
            <NumberOfInfants>3</NumberOfInfants>
            <ChildrenAges>
                <Age>12</Age>
                <Age>9</Age>
                <Age>2</Age>
                <Age>2</Age>
                <Age>1</Age>
            </ChildrenAges>
        </GuestDetailsInfo>
        <Creator>test@test.test</Creator>
        <CancelTypeID>1</CancelTypeID>
        <Archived>false</Archived>
    </Reservation>
</Pull_GetReservationByID_RS>
XML Path Data Type Type Description
Pull_GetReservationByID_RS C Root element
Pull_GetReservationByID_RS/Status String(100) M See ListStatuses
Pull_GetReservationByID_RS/Status@ID Integer M See ListStatuses
Pull_GetReservationByID_RS/Reservations C A list of reservations
Pull_GetReservationByID_RS/Reservations/Reservation C Single reservation
Pull_GetReservationByID_RS/Reservations/Reservation/ReservationID Integer M Unique reservation ID
Pull_GetReservationByID_RS/Reservations/Reservation/StatusID Integer M The code that identifies a reservation status, see ListReservationStatuses
Pull_GetReservationByID_RS/Reservations/Reservation/CreatedDate String M The creation date of the reservation(format YYYY-MM-DD HH-MM-SS)
Pull_GetReservationByID_RS/Reservations/Reservation/LastMod String M The last modification date (creation or cancellation) of the reservation(format YYYY-MM-DD HH-MM-SS)
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos C, M Information about the stay associated with the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo M Information about the stay
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/PropertyID Integer M Unique property ID
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/XmlApartmentID String M External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned)
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/DateTo String(10) M Departure date (YYYY-MM-DD format)
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ArrivalTime String(19) O Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format)
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/NumberOfGuests Integer M Number of guests
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Costs C, M Information about reservation costs
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/RUPrice Decimal(19,2) M Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP)
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/ClientPrice Decimal(19,2) M Final price for the guest
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid Decimal(19,2) M The amount already paid by the guest
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ResApaID Integer M Unique apartment reservation identifier
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Comments String(500) O Additional comments about the stay
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping C, O Information about reservation mapping with external systems
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/ReservationID String(50) M External system’s Reservation ID
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/StayID String(50) O External system’s reservation identifier assigned to the property
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/HotelID String(50) O External system’s Apartment identifier
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RoomID String(50) O External system’s Room Identifier
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RateID String(50) O External system’s Rate identifier
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown C, M A container object for the reservation price breakdown details
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown C, M A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices C, M A collection of objects containing price information for each day of the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent Decimal(19,2) M The value of the base rent for specific day
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes C, M A collection of taxes for specific DayPrices@Date of the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded Boolean M Information if the tax value is included in Rent
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees C, M A collection of fees for specific DayPrices@Date of the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded Boolean M Information if the fee value is included in Rent
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded Boolean M Information if the total tax/fee amount of one type is included in Rent
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name String(50) M Tax/fee description
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total Decimal(19,2) M The overall value of rent, fees and taxes of the whole stay
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent Decimal(19,2) M The value of rent for the whole stay
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown C, O A container object for the reservation price breakdown received from the sales channel. Returned only if there is single StayInfo
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices C, O A collection of objects containing price information for each day of the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo C, O A collection of rent items for specific DayPrices@Date of the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal Boolean M Information if the rent value is included in ChannelTotal
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount Decimal(19,2) M The daily rent value
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency String(3) M Currency, see ListCurrencies
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name String(50) M Rent description
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes C, O A collection of taxes for specific DayPrices@Date of the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal Boolean M Information if the tax value is included in ChannelTotal
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency String(3) M Currency, see ListCurrencies
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees C, O A collection of fees for specific DayPrices@Date of the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal Boolean M Information if the fee value is included in ChannelTotal
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes C, M A container object for fees and taxes applied for the whole stay and the ones that are applied per day
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal Boolean M Information if the total tax/fee amount of one type is included in ChannelTotal
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency String(3) M Currency, see ListCurrencies
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name String(50) M Tax/fee description
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType String(3) M Information whether the item is a tax or a fee
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal Decimal(19,2) M The total price paid by the guest for the whole stay as received from the sales channel
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent Decimal(19,2) M The rent value of the whole stay
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission Decimal(19,2) O The amount charged by the sales channel
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo C, O A container for the cancellation policy description and a collection of cancellation policies
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText String(1000) M The cancellation policy description
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies C, O A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy Decimal(19,2) O A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom Integer O The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo Integer O The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo C, M Information about the guest
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Name String(20) M Guest's name
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/SurName String(30) M Guest's surname
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Email String(100) M Guest's email address
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with the country code
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/SkypeID String(50) O Guest's Skype ID
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Address String(50) O Guest's address
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, see ListLocations (filter LocationTypeID=2)
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/LanguageID Integer O Code that identifies the guest's language, see ListLanguages
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Passport String(30) O Guest's passport number
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo C, O A container object for the reservation occupancy details
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation
Pull_GetReservationByID_RS/Reservations/Reservation/Creator String(50) M Email address/Username of an entity that created a reservation, e.g. the channel or the user
Pull_GetReservationByID_RS/Reservations/Reservation/Comments String(4000) O Additional comments
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard C, O Credit card information
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/CCNumber String(19) M Credit card number
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/CVC String(4) O Credit card security code
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/NameOnCard String(400) M Credit card holder name
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/Expiration String(7) M Credit card expiration date (MM/YYYY format)
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/BillingAddress String(400) O Billing address
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/CardType String(30) M Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/Comments String(400) O Additional comments for this credit card
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication C, O Object holding information about 3DS2 payments
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV String(48) O It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor.
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ECI String(2) O Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/XID String(40) O Encoded "transactionId"
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID UUID O Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion String(5) O A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD.
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType String(40) O Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt.
Pull_GetReservationByID_RS/Reservations/PMSReservationId String(100) O PMS Reservation ID
Pull_GetReservationByID_RS/Reservations/Reservation/CancelTypeID Integer O Cancellation type. See List cancellation types
Pull_GetReservationByID_RS/Reservations/Reservation/IsArchived Boolean M Indicates whether reservation is archived

Get Leads

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Pull_GetLeads_RQ request = new Pull_GetLeads_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    DateFrom = "2013-08-17 13:25:00",
    DateTo = "2013-08-17 13:45:00",
    LocationID = 5309
};
string xmlBody = XmlTools.SerializeObject<Pull_GetLeads_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
    Pull_GetLeads_RS response = XmlTools.DeserializeObject<Pull_GetLeads_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns only leads. Leads indicate a conversation initiated by the guest in the channel. It is not a booking and it does not block the property's availability. It is not possible to confirm or reject it.

Request

<Pull_GetLeads_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <DateFrom>2013-08-17 13:25:00</DateFrom>
    <DateTo>2013-08-17 13:45:00</DateTo>
    <LocationID>5309</LocationID>
</Pull_GetLeads_RQ>
XML Path Data Type Type Description
Pull_GetLeads_RQ C Root element
Pull_GetLeads_RQ/Authentication C, M Authentication details
Pull_GetLeads_RQ/Authentication/UserName String(50) M Username
Pull_GetLeads_RQ/Authentication/Password String(50) M Password
Pull_GetLeads_RQ/DateFrom String(10) M Start of the range (YYYY-MM-DD format)
Pull_GetLeads_RQ/DateTo String(10) M End of the range (YYYY-MM-DD format)
Pull_GetLeads_RQ/LocationID Integer M See ListLocations

Response

<Pull_GetLeads_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Leads>
        <Lead>
            <ReservationID>123456</ReservationID>
            <ExternalReservationID>123_asd_213</ExternalReservationID>
            <PropertyID>1</PropertyID>
            <XmlApartmentID>1</XmlApartmentID>
            <DateFrom>2015-03-01</DateFrom>
            <DateTo>2015-03-10</DateTo>
            <ArrivalTime>2015-03-01 08:56:00</ArrivalTime>
            <NumberOfGuests>4</NumberOfGuests>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>100</CountryID>
                <LanguageID>1</LanguageID>
            </CustomerInfo>
            <GuestDetailsInfo>
                <NumberOfAdults>2</NumberOfAdults>
                <NumberOfChildren>2</NumberOfChildren>
                <NumberOfInfants>3</NumberOfInfants>
                <ChildrenAges>
                    <Age>12</Age>
                    <Age>9</Age>
                    <Age>2</Age>
                    <Age>2</Age>
                    <Age>1</Age>
                </ChildrenAges>
            </GuestDetailsInfo>
            <Comments>How much is it?</Comments>
            <Creator>test@test.test</Creator>
            <DateFrom>2015-02-01</DateFrom>
            <IsArchived>false</IsArchived>
        </Lead>
    </Leads>
</Pull_GetLeads_RS>
XML Path Data Type Type Description
Pull_GetLeads_RS C Root element
Pull_GetLeads_RS/Status String(100) M See ListStatuses
Pull_GetLeads_RS/Status@ID Integer M See ListStatuses
Pull_GetLeads_RS/ResponseID String(32) M Unique response ID
Pull_GetLeads_RS/Leads C, M List of leads
Pull_GetLeads_RS/Leads/Lead C, O Individual lead
Pull_GetLeads_RS/Leads/Lead/ReservationID Integer M Unique reservation ID
Pull_GetLeads_RS/Leads/Lead/ExternalReservationID Integer M Lead's unique identifier from the external system that created it
Pull_GetLeads_RS/Leads/Lead/PropertyID Integer M Unique property ID
Pull_GetLeads_RS/Leads/Lead/XmlApartmentID String M External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned)
Pull_GetLeads_RS/Leads/Lead/DateFrom String(10) M Arrival date in the lead (YYYY-MM-DD format)
Pull_GetLeads_RS/Leads/Lead/DateTo String(10) M Departure date in the lead (YYYY-MM-DD format)
Pull_GetLeads_RS/Leads/Lead/NumberOfGuests Integer M Number of guests in the lead
Pull_GetLeads_RS/Leads/Lead/Price Decimal(19,2) M The price returned by one of the RU methods for the property in the specified dates
Pull_GetLeads_RS/Leads/Lead/CustomerInfo C, M Information about the guest
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/Name String(20) M Guest's name
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/SurName String(30) M Guest's surname
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/Email String(100) M Guest's email address
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/Phone String(30) O Guest's phone number with the country code
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/SkypeID String(50) O Guest's Skype ID
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/Address String(50) O Guest's address
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/ZipCode String(15) O Guest's zip code
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/CountryID Integer O Country's unique ID, see ListLocations (filter LocationTypeID=2)
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/LanguageID Integer O Code that identifies the guest's language, see ListLanguages
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo C, O A container object for the reservation occupancy details
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation
Pull_GetLeads_RS/Leads/Lead/Comments String(4000) O Additional comments
Pull_GetLeads_RS/Leads/Lead/Creator String(50) M Email address/Username of an entity that created a lead, e.g. the channel or the user
Pull_GetLeads_RS/Leads/Lead/DateEntered String(19) M Information when the lead was created (YYYY-MM-DD HH:MM:SS format)
Pull_GetLeads_RS/Leads/Lead/IsArchived Boolean M Indicates whether this lead is archived or not

List Reservations Missing PMS Mapping

using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_ListReservationsMissingPMSMapping_RQ request = new Pull_ListReservationsMissingPMSMapping_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    DateFrom = new DateTime(2014, 10, 10)
};

string xmlBody = XmlTools.SerializeObject<Pull_ListReservationsMissingPMSMapping_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListReservationsMissingPMSMapping_RS response = XmlTools.DeserializeObject<Pull_ListReservationsMissingPMSMapping_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method has been designed for property providers to help them reconcile reservations in Rentals United and their systems.

It returns a list of reservations for which Rentals United does not have PMS Reservation ID stored. The XML response includes all unique identifiers needed to identify a reservation in your system.

Request

<Pull_ListReservationsMissingPMSMapping_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <DateFrom>2014-10-10</DateFrom>
</Pull_ListReservationsMissingPMSMapping_RQ>
XML Path Data Type Type Description
Pull_ListReservationsMissingPMSMapping_RQ C Root element
Pull_ListReservationsMissingPMSMapping_RQ/Authentication C, M Authentication details
Pull_ListReservationsMissingPMSMapping_RQ/Authentication/UserName String(50) M Username
Pull_ListReservationsMissingPMSMapping_RQ/Authentication/Password String(50) M Password
Pull_ListReservationsMissingPMSMapping_RQ/DateFrom String(10) M Date when the first reservation was entered (YYYY-MM-DD format)

Response

<Pull_ListReservationsMissingPMSMapping_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Reservations>
        <ReservationMissingPMSMapping>
            <RUReservationId>1</RUReservationId>
            <ExternalReservationId>Test2</ExternalReservationId>
            <RUPropertyId>3</RUPropertyId>
            <PMSPropertyId>Test4</PMSPropertyId>
            <DateFrom>2014-10-10</DateFrom>
            <DateTo>2014-10-20</DateTo>
        </ReservationMissingPMSMaping>
        <ReservationMissingPMSMapping>
            <RUReservationId>5</RUReservationId>
            <ExternalReservationId>Test6</ExternalReservationId>
            <RUPropertyId>7</RUPropertyId>
            <PMSPropertyId>Test8</PMSPropertyId>
            <DateFrom>2014-10-21</DateFrom>
            <DateTo>2014-10-24</DateTo>
        </ReservationMissingPMSMaping>
    </Reservations>
</Pull_ListReservationsMissingPMSMapping_RS>
XML Path Data Type Type Description
Pull_ListReservationsMissingPMSMapping_RS C Root element
Pull_ListReservationsMissingPMSMapping_RS/Status String(100) M See ListStatuses
Pull_ListReservationsMissingPMSMapping_RS/Status@ID Integer M See ListStatuses
Pull_ListReservationsMissingPMSMapping_RS/ResponseID String(32) M Unique response ID
Pull_ListReservationsMissingPMSMapping_RS/Reservations C, M List of reservations missing PMS mapping
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping C, O Reservation details
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/RUReservationId Integer O Rentals United reservation ID
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/ExternalReservationID String(50) O Sales Channel reservation ID
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/RUPropertyId Integer O Rentals United property ID
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/PMSPropertyId String(50) O Apartment ID in PMS
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/DateFrom String(10) Arrival date (YYYY-MM-DD format)
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/DateTo String(10) Departure date (YYYY-MM-DD format)

List reservations for owner

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_ListReservationsOwnerUser_RQ request = new Pull_ListReservationsOwnerUser_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    DateFrom = "2013-08-17 14:00:00",
    DateTo = "2013-08-17 14:20:00",
    LocationID = 0,
    Username = "test@test.com"
};

string xmlBody = XmlTools.SerializeObject<Pull_ListReservationsOwnerUser_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListReservationsOwnerUser_RS response = XmlTools.DeserializeObject<Pull_ListReservationsOwnerUser_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method is designed for Revenue Management Systems.

This method returns a list of reservations for a Rentals United account sorted by last modification date.

Call this method periodically to obtain created, cancelled and modified reservations and transfer them to your system.

We encourage you to call this API method at least every 20 minutes to quickly update your calendar.

Important: By default this method will return only reservations in the Confirmed and Cancelled statuses. In order to retrieve the reservations in other statuses, e.g. unconfirmed reservations (requests), make sure to provide the list of statuses in Pull_ListReservations_RQ/Statuses. See ListReservationStatuses.

Request

Example (returns a list of reservations modified between 2013-08-17 14:00:00 and 2013-08-17 14:19:59)

<Pull_ListReservationsOwnerUser_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <DateFrom>2013-08-17 14:00:00</DateFrom>
    <DateTo>2013-08-17 14:20:00</DateTo>
    <LocationID>0</LocationID>
    <Username>test@test.com</Username>
</Pull_ListReservationsOwnerUser_RQ>
XML Path Data Type Type Description
Pull_ListReservationsOwnerUser_RQ C Root element
Pull_ListReservationsOwnerUser_RQ/Authentication C, M Authentication details
Pull_ListReservationsOwnerUser_RQ/Authentication/UserName String(50) M Username
Pull_ListReservationsOwnerUser_RQ/Authentication/Password String(50) M Password
Pull_ListReservationsOwnerUser_RQ/DateFrom String(19) M Start of the range (YYYY-MM-DD HH:MM:SS format)
Pull_ListReservationsOwnerUser_RQ/DateTo String(19) M End of the range (YYYY-MM-DD HH:MM:SS format)
Pull_ListReservationsOwnerUser_RQ/LocationID Integer M Unique location ID, see ListLocations
Pull_ListReservationsOwnerUser_RQ/Username String (50) M Owner’s username
Pull_ListReservationsOwnerUser_RQ/Statuses C, O Collection of reservation status IDs. See ListReservationStatuses. By default, only reservations in the Confirmed and Cancelled statuses are retrieved. Retrieving reservations in the Modified status will always return an empty list.
Pull_ListReservationsOwnerUser_RQ/Statuses\StatusID Integer M Reservation status ID

Response

<Pull_ListReservationsOwnerUser_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Reservations>
        <Reservation>
            <ReservationID>123</ReservationID>
            <StatusID>1</StatusID>
            <CreatedDate>2012-02-25 09:43:22</CreatedDate>
            <LastMod>2012-03-01 10:10:02</LastMod>
            <StayInfos>
                <StayInfo>
                    <PropertyID>1</PropertyID>
                    <DateFrom>2012-03-02</DateFrom>
                    <DateTo>2012-03-10</DateTo>
                    <ArrivalTime>2012-03-02 08:31:00</ArrivalTime>
                    <NumberOfGuests>4</NumberOfGuests>
                    <Costs>
                        <RUPrice>100.00</RUPrice>
                        <ClientPrice>110.00</ClientPrice>
                        <AlreadyPaid>10.00</AlreadyPaid>
                    </Costs>
                    <ResApaID>1</ResApaID>
                    <Mapping>
                        <ReservationID>123</ReservationID>
                        <StayID>123</StayID>
                        <HotelID>123</HotelID>
                        <RoomID>123</RoomID>
                        <RateID>123</RateID>
                    </Mapping>
                    <ReservationBreakdown>
                        <RUBreakdown>
                            <DayPrices Date="2012-03-02">
                                <Rent>100</Rent>
                                <Taxes>
                                    <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                                </Taxes>
                                <Fees>
                                    <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                </Fees>
                                <Price>120.5</Price>
                            </DayPrices>
                            <DayPrices Date="2012-03-03">
                                <Rent>100</Rent>
                                <Taxes>
                                    <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                                </Taxes>
                                <Fees>
                                    <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                </Fees>
                                <Price>120.5</Price>
                            </DayPrices>                 
                            <TotalFeesTaxes>
                                <TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
                                <TotalFeeTax AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                <TotalFeeTax AlreadyIncluded="false" Amount="24.59" Name="VAT" FeeTaxType="2"/>
                            </TotalFeesTaxes>
                            <Total>248.09</Total>
                            <Rent>200</Rent>
                        </RUBreakdown>
                        <ChannelBreakdown>
                            <DayPrices Date="2012-03-02">
                                <RentInfo>
                                    <Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
                                </RentInfo>
                                <Taxes>
                                    <Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
                                    <Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
                                </Taxes>
                                <Fees>
                                    <Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
                                </Fees>
                                <Price>157.10</Price>
                            </DayPrices>
                            <DayPrices Date="2012-03-03">
                                <RentInfo>
                                    <Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
                                </RentInfo>
                                <Taxes>
                                    <Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
                                </Taxes>
                                <Price>101.11</Price>
                            </DayPrices>
                            <ChannelTotalFeesTaxes>
                                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
                                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
                                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
                            </ChannelTotalFeesTaxes>
                            <ChannelTotal>282.07</ChannelTotal>
                            <ChannelRent>206.37</ChannelRent>
                        </ChannelBreakdown>
                    </ReservationBreakdown>
                </StayInfo>
            </StayInfos>
            <CancellationPolicyInfo>
                <PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
                <CancellationPolicies>
                    <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
                    <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
                </CancellationPolicies>
            <CancellationPolicyInfo>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>42</CountryID>
                <LanguageID>2</LanguageID>
            </CustomerInfo>
            <GuestDetailsInfo>
                <NumberOfAdults>2</NumberOfAdults>
                <NumberOfChildren>2</NumberOfChildren>
                <NumberOfInfants>3</NumberOfInfants>
                <ChildrenAges>
                    <Age>12</Age>
                    <Age>9</Age>
                    <Age>2</Age>
                    <Age>2</Age>
                    <Age>1</Age>
                </ChildrenAges>
            </GuestDetailsInfo>
            <Creator>test@test.test</Creator>
        </Reservation>
        <Reservation>
            <ReservationID>124</ReservationID>
            <StatusID>2</StatusID>
            <CreatedDate>2012-03-01 20:10:02</CreatedDate>
            <LastMod>2012-03-01 20:10:02</LastMod>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                </Costs>
                <ResApaID>2</ResApaID>
            </StayInfo>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>33</CountryID>
            </CustomerInfo>
            <Creator>test@test.test</Creator>
            <Comments>test</Comments>
            <CancelTypeID>1</CancelTypeID>
            <Archived>false</Archived>
        </Reservation>
    </Reservations>
</Pull_ListReservationsOwnerUser_RS>
XML Path Data Type Type Description
Pull_ListReservationsOwnerUser_RS C Root element
Pull_ListReservationsOwnerUser_RS/Status String(100) M See ListStatuses
Pull_ListReservationsOwnerUser_RS/Status@ID Integer M See ListStatuses
Pull_ListReservationsOwnerUser_RS/ResponseID String(32) M Unique response ID
Pull_ListReservationsOwnerUser_RS/Reservations C A list of reservations
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation C Single reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/ReservationID Integer M Unique reservation ID
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StatusID Integer M The code that identifies a reservation status, see ListReservationStatuses
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreatedDate String M The creation date of the reservation (format YYYY-MM-DD HH:MM:SS)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/LastMod String M The last modification date (creation or cancellation) of the reservation (format YYYY-MM-DD HH:MM:SS)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos C, M Information about the stay associated with the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo M Information about the stay
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/PropertyID Integer M Unique property ID
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/XmlApartmentID String M External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/DateTo String(10) M Departure date (YYYY-MM-DD format)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ArrivalTime String(19) O Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/NumberOfGuests Integer M Number of guests
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Costs C, M Information about reservation costs
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/RUPrice Decimal(19,2) M Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/ClientPrice Decimal(19,2) M Final price for the guest
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid Decimal(19,2) M The amount already paid by the guest
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ResApaID Integer M Unique apartment reservation identifier
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Comments String(500) O Additional comments about the stay
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping C, O Information about reservation mapping with external systems
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/ReservationID String(50) M External System’s Reservation ID
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/StayID String(50) O External System’s reservation identifier assigned to the property
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/HotelID String(50) O External System’s Apartment identifier
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RoomID String(50) O External System’s Room Identifier
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RateID String(50) O External System’s Rate identifier
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown C, M A container object for the reservation price breakdown details
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown C, M A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices C, M A collection of objects containing price information for each day of the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent Decimal(19,2) M The value of the base rent for specific day
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes C, M A collection of taxes for specific DayPrices@Date of the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded Boolean M Information if the tax value is included in Rent
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees C, M A collection of fees for specific DayPrices@Date of the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded Boolean M Information if the fee value is included in Rent
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes C,M A container objects for fees and taxes applied for the whole stay
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded Boolean M Information if the total tax/fee amount of one type is included in Rent
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name String(50) M Tax/fee description
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total Decimal(19,2) M The overall value of rent, fees and taxes of the whole stay
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent Decimal(19,2) M The value of rent for the whole stay
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown C, O A container object for the reservation price breakdown received from the sales channel
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices C, O A collection of objects containing price information for each day of the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo C, O A collection of rent items for specific DayPrices@Date of the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal Boolean M Information if the rent value is included in ChannelTotal
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount Decimal(19,2) M The daily rent value
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name String(50) M Rent description
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes C, O A collection of taxes for specific DayPrices@Date of the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal Boolean M Information if the tax value is included in ChannelTotal
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees C, O A collection of fees for specific DayPrices@Date of the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal Boolean M Information if the fee value is included in ChannelTotal
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes C, M A container object for fees and taxes applied for the whole stay and the ones that are applied per day
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal Boolean M Information if the total tax/fee amount of one type is included in ChannelTotal
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name String(50) M Tax/fee description
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType String(3) O Information whether the item is a tax or a fee
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal Decimal(19,2) M The total price paid by the guest for the whole stay as received from the sales channel
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent Decimal(19,2) M The rent value of the whole stay
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission Decimal(19,2) O The amount charged by the sales channel
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo C, O A container for the cancellation policy description and a collection of cancellation policies
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText String(1000) M The cancellation policy description
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies C, O A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy Decimal(19,2) O A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom Integer O The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo Integer O The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo C, M Information about the guest
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Name String(20) M Guest's name
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/SurName String(30) M Guest's surname
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Email String(100) M Guest's email address
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with the country code
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/SkypeID String(50) O Guest's Skype ID
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Address String(50) O Guest's address
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, see ListStatuses (filter LocationTypeID=2)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/LanguageID Integer O Code that identifies the guest's language, see ListLanguages
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Passport String(30) O Guest's passport number
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo C, O A container object for the reservation occupancy details
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/Creator String(50) M Email address/Username of an entity that created a reservation, e.g. the channel or the user
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/Comments String(4000) O Additional comments
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard C, O Credit card information
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/CCNumber String(19) M Credit card number
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/CVC String(4) O Credit card security code
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/NameOnCard String(400) M Credit card holder name
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/Expiration String(7) M Credit card expiration date (MM/YYYY format)
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/BillingAddress String(400) O Billing address
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/CardType String(30) M Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/Comments String(400) O Additional comments for this credit card
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication C, O Object holding information about 3DS2 payments
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV String(48) O It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor.
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ECI String(2) O Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/XID String(40) O Encoded "transactionId"
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID UUID O Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion String(5) O A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD.
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType String(40) O Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt.
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancelTypeID Integer O Cancellation type. See List cancellation types
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/IsArchived Boolean M Indicates whether reservation is archived

List reservations by Subusers

This method is designed for the Vacation Rentals services that rely on the Subuser mechanism described here

<Pull_ListReservationsSubUsers_RQ>
 <Authentication>
 <UserName>[Username]</UserName>
 <Password>[Password]</Password>
 </Authentication>
 <DateFrom>2021-06-01 00:00:00</DateFrom>
 <DateTo>2021-06-08 00:00:00</DateTo>
 <LocationID>0</LocationID>
 <User>testParentUser@test.com</User>
</Pull_ListReservationsSubUsers_RQ>
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

Pull_ListReservationsSubUsers_RQ request = new Pull_ListReservationsSubUsers_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    DateFrom = "2021-08-17 14:00:00",
    DateTo = "2021-08-17 14:20:00",
    LocationID = 0,
    User = "testParentUser@test.com"
};

string xmlBody = XmlTools.SerializeObject<Pull_ListReservationsSubUsers_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListReservationsSubUsers_RS response = XmlTools.DeserializeObject<Pull_ListReservationsSubUsers_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Request

Logic of processing this request is exactly like Pull_ListReservations_RQ is has just a different scope of authorization that allows to pull ParentUser properties when your integration relies on the Subuser mechanism.

Important: By default this method will return only reservations in the Confirmed and Cancelled statuses. In order to retrieve the reservations in other statuses, e.g. unconfirmed reservations (requests), make sure to provide the list of statuses in Pull_ListReservations_RQ/Statuses. See ListReservationStatuses.

XML Path Data Type Type Description
Pull_ListReservationsSubUsers_RQ C Root element
Pull_ListReservationsSubUsers_RQ/Authentication C, M Authentication details
Pull_ListReservationsSubUsers_RQ/Authentication/UserName String(50) M Username
Pull_ListReservationsSubUsers_RQ/Authentication/Password String(50) M Password
Pull_ListReservationsSubUsers_RQ/DateFrom String(19) M Start of the range of modification (YYYY-MM-DD HH:MM:SS format)
Pull_ListReservationsSubUsers_RQ/DateTo String(19) M End of the range of modification( YYYY-MM-DD HH:MM:SS format)
Pull_ListReservationsSubUsers_RQ/LocationID Integer M Unique location ID. See ListLocations. To download all of your bookings without location filter please send "0".
Pull_ListReservationsSubUsers_RQ/User String(50) M Username of ParentUser you would like to pull reservations for
Pull_ListReservationsSubUsers_RQ/Statuses C, O Collection of reservation status IDs. See ListReservationStatuses. By default, only reservations in the Confirmed and Cancelled statuses are retrieved. Retrieving reservations in the Modified status will always return an empty list.
Pull_ListReservationsSubUsers_RQ/Statuses/StatusID Integer M Reservation status ID

Response

<Pull_ListReservationsSubUsers_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Reservations>
        <Reservation>
            <ReservationID>123</ReservationID>
            <StatusID>1</StatusID>
            <CreatedDate>2012-02-25 09:43:22</CreatedDate>
            <LastMod>2012-03-01 10:10:02</LastMod>
            <StayInfos>
                <StayInfo>
                    <PropertyID>1</PropertyID>
                    <XmlApartmentID>Ext. ID. 1</XmlApartmentID>
                    <DateFrom>2012-03-02</DateFrom>
                    <DateTo>2012-03-10</DateTo>
                    <ArrivalTime>2012-03-02 13:22:00</ArrivalTime>
                    <NumberOfGuests>4</NumberOfGuests>
                    <Costs>
                        <RUPrice>100.00</RUPrice>
                        <ClientPrice>110.00</ClientPrice>
                        <AlreadyPaid>10.00</AlreadyPaid>
                    </Costs>
                    <ResApaID>1</ResApaID>
                    <Mapping>
                        <ReservationID>123</ReservationID>
                        <StayID>123</StayID>
                        <HotelID>123</HotelID>
                        <RoomID>123</RoomID>
                        <RateID>123</RateID>
                    </Mapping>
                    <ReservationBreakdown>
                        <RUBreakdown>
                            <DayPrices Date="2012-03-02">
                                <Rent>100</Rent>
                                <Taxes>
                                    <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                                </Taxes>
                                <Fees>
                                    <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                </Fees>
                                <Price>120.5</Price>
                            </DayPrices>
                            <DayPrices Date="2012-03-03">
                                <Rent>100</Rent>
                                <Taxes>
                                    <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
                                </Taxes>
                                <Fees>
                                    <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                </Fees>
                                <Price>120.5</Price>
                            </DayPrices>                 
                            <TotalFeesTaxes>
                                <TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
                                <TotalFeeTax AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
                                <TotalFeeTax AlreadyIncluded="false" Amount="24.59" Name="VAT" FeeTaxType="2"/>
                            </TotalFeesTaxes>
                            <Total>248.09</Total>
                            <Rent>200</Rent>
                        </RUBreakdown>
                        <ChannelBreakdown>
                            <DayPrices Date="2012-03-02">
                                <RentInfo>
                                    <Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
                                </RentInfo>
                                <Taxes>
                                    <Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
                                    <Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
                                </Taxes>
                                <Fees>
                                    <Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
                                </Fees>
                                <Price>157.10</Price>
                            </DayPrices>
                            <DayPrices Date="2012-03-03">
                                <RentInfo>
                                    <Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
                                </RentInfo>
                                <Taxes>
                                    <Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
                                </Taxes>
                                <Price>101.11</Price>
                            </DayPrices>
                            <ChannelTotalFeesTaxes>
                                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
                                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
                                <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
                            </ChannelTotalFeesTaxes>
                            <ChannelTotal>282.07</ChannelTotal>
                            <ChannelRent>206.37</ChannelRent>
                        </ChannelBreakdown>
                    </ReservationBreakdown>
                </StayInfo>
            </StayInfos>
            <CancellationPolicyInfo>
                <PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
                <CancellationPolicies>
                    <CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
                    <CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
                </CancellationPolicies>
            <CancellationPolicyInfo>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>42</CountryID>
                <LanguageID>2</LanguageID>
            </CustomerInfo>
            <GuestDetailsInfo>
                <NumberOfAdults>2</NumberOfAdults>
                <NumberOfChildren>2</NumberOfChildren>
                <NumberOfInfants>3</NumberOfInfants>
                <ChildrenAges>
                    <Age>12</Age>
                    <Age>9</Age>
                    <Age>2</Age>
                    <Age>2</Age>
                    <Age>1</Age>
                </ChildrenAges>
            </GuestDetailsInfo>
            <Creator>test@test.test</Creator>
        </Reservation>
        <Reservation>
            <ReservationID>124</ReservationID>
            <StatusID>2</StatusID>
            <CreatedDate>2012-03-01 20:10:02</CreatedDate>
            <LastMod>2012-03-01 20:10:02</LastMod>
            <StayInfo>
                <PropertyID>2</PropertyID>
                <XmlApartmentID>Ext. ID. 2</XmlApartmentID>
                <DateFrom>2012-03-02</DateFrom>
                <DateTo>2012-03-14</DateTo>
                <NumberOfGuests>3</NumberOfGuests>
                <Costs>
                    <RUPrice>120.00</RUPrice>
                    <ClientPrice>140.00</ClientPrice>
                    <AlreadyPaid>0.00</AlreadyPaid>
                </Costs>
                <ResApaID>2</ResApaID>
            </StayInfo>
            <CustomerInfo>
                <Name>Test</Name>
                <SurName>Test</SurName>
                <Email>test.test@test.com</Email>
                <Phone>+11 111 111 111</Phone>
                <SkypeID>test.test</SkypeID>
                <Address>Street 1/2</Address>
                <ZipCode>00-000</ZipCode>
                <CountryID>33</CountryID>
            </CustomerInfo>
            <Creator>test@test.test</Creator>
            <Comments>test</Comments>
            <PMSReservationId>39huy</PMSReservationId>
            <CancelTypeID>1</CancelTypeID>
            <Archived>false</Archived>
        </Reservation>
    </Reservations>
</Pull_ListReservationsSubUsers_RS>
XML Path Data Type Type Description
Pull_ListReservationsSubUsers_RS C Root element
Pull_ListReservationsSubUsers_RS/Status String(100) M See ListStatuses
Pull_ListReservationsSubUsers_RS/Status@ID Integer M See ListStatuses
Pull_ListReservationsSubUsers_RS/Reservations C A list of reservations
Pull_ListReservationsSubUsers_RS/Reservations/Reservation C Single reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/ReservationID Integer M Unique reservation ID
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StatusID Integer M The code that identifies a reservation status, see ListReservationStatuses
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreatedDate String M The creation date of the reservation (format YYYY-MM-DD HH-MM-SS)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/LastMod String M The last modification date (creation or cancellation) of the reservation (format YYYY-MM-DD HH-MM-SS)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos C, M Information about the stay associated with the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo M Information about the stay
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/PropertyID Integer M Unique property ID
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/XmlApartmentID String M External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/DateTo String(10) M Departure date (YYYY-MM-DD format)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ArrivalTime String(19) O Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/NumberOfGuests Integer M Number of guests
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Costs C, M Information about reservation costs
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/RUPrice Decimal (19,2) M Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/ClientPrice Decimal (19,2) M Final price for the guest
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid Decimal(19,2) M The amount already paid by the guest
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ResApaID Integer M Unique apartment reservation identifier. ResApaID can change in case of booking modification when reservation was moved from one apartment to another.
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Comments String(500) O Additional comments about the stay
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping C, O Information about reservation mapping with external systems
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/ReservationID String(50) M External System’s Reservation ID
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/StayID String(50) O External System’s reservation identifier assigned to the property
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/HotelID String(50) O External System’s Apartment identifier
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RoomID String(50) O External System’s Room Identifier
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RateID String(50) O External System’s Rate identifier
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown C, M A container object for the reservation price breakdown details
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown C, M A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices C, M A collection of objects containing price information for each day of the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent Decimal(19,2) M The value of the base rent for specific day
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes C, M A collection of taxes for specific DayPrices@Date of the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded Boolean M Information if the tax value is included in Rent
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees C, M A collection of fees for specific DayPrices@Date of the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded Boolean M Information if the fee value is included in Rent
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes C,M A container objects for fees and taxes applied for the whole stay
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded Boolean M Information if the total tax/fee amount of one type is included in Rent
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name String(50) M Tax/fee description
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total Decimal(19,2) M The overall value of rent, fees and taxes of the whole stay
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent Decimal(19,2) M The value of rent for the whole stay
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown C, O A container object for the reservation price breakdown received from the sales channel
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices C, O A collection of objects containing price information for each day of the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo C, O A collection of rent items for specific DayPrices@Date of the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal Boolean M Information if the rent value is included in ChannelTotal
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount Decimal(19,2) M The daily rent value
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name String(50) M Rent description
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes C, O A collection of taxes for specific DayPrices@Date of the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal Boolean M Information if the tax value is included in ChannelTotal
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees C, O A collection of fees for specific DayPrices@Date of the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal Boolean M Information if the fee value is included in ChannelTotal
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes C, M A container object for fees and taxes applied for the whole stay and the ones that are applied per day
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal Boolean M Information if the total tax/fee amount of one type is included in ChannelTotal
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency String(3) M Currency, see ListCurrencies
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name String(50) M Tax/fee description
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType String(3) O Information whether the item is a tax or a fee
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal Decimal(19,2) M The total price paid by the guest for the whole stay as received from the sales channel
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent Decimal(19,2) M The rent value of the whole stay
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission Decimal(19,2) O The amount charged by the sales channel
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo C, O A container for the cancellation policy description and a collection of cancellation policies
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText String(1000) M The cancellation policy description
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies C, O A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy Decimal(19,2) O A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom Integer O The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo Integer O The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo C, M Information about the guest
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Name String(20) M Guest's name
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/SurName String(30) M Guest's surname
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Email String(100) M Guest's email address
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with the country code
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/SkypeID String(50) O Guest's Skype ID
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Address String(50) O Guest's address
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, see ListLocations (filter LocationTypeID=2)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/LanguageID Integer O Code that identifies the guest's language, see ListLanguages
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Passport String(30) O Guest's passport number
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo C, O A container object for the reservation occupancy details
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/Creator String(50) M Email address/Username of an entity that created a reservation, e.g. the channel or the user
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/Comments String(4000) O Additional comments
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard C, O Credit card information
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/CCNumber String(19) M Credit card number
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/CVC String(4) O Credit card security code
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/NameOnCard String(400) M Credit card holder name
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/Expiration String(7) M Credit card expiration date (MM/YYYY format)
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/BillingAddress String(400) O Billing address
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/CardType String(30) M Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/Comments String(400) O Additional comments for this credit card
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication C, O Object holding information about 3DS2 payments
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV String(48) O It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor.
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ECI String(2) O Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/XID String(40) O Encoded "transactionId"
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID UUID O Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion String(5) O A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD.
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType String(40) O Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt.
Pull_ListReservationsSubUsers_RS/Reservations/PMSReservationId String(100) O PMS Reservation ID
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancelTypeID Integer O Cancellation type. See List cancellation types
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/IsArchived Boolean M Indicates whether reservation is archived

User management

This method have been designed to manage Rentals United accounts.

List created users

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.UserAccount;

Pull_ListMyUsers_RQ request = new Pull_ListMyUsers_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListMyUsers_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListMyUsers_RS response = XmlTools.DeserializeObject<Pull_ListMyUsers_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method is designed for PMSes and property providers who maintain multiple Rentals United accounts.

This method returns a list of users created via Push_CreateUser_RQ.

Request

XML Request

<Pull_ListMyUsers_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListMyUsers_RQ>
XML Path Date Type Type Description
Pull_ListMyUsers_RQ C Root element
Pull_ListMyUsers_RQ/Authentication C, M Authentication details
Pull_ListMyUsers_RQ/Authentication/UserName String(50) M Username
Pull_ListMyUsers_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListMyUsers_RS>
 <Status ID="0">Success</Status>
 <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
 <Owners>
   <Owner OwnerID="1">
     <FirstName>John</FirstName>
     <SurName>Smith</SurName>
     <Email>john.smith@domain.com</Email>
     <Phone>+48 22 000 00 00</Phone>
     <Username>john.smith@domain.com</Username>
     <UserAccountID>123</UserAccountID>
     <ConfigurationString/>
   </Owner>
 </Owners>
</Pull_ListMyUsers_RS>
XML Path Data Type Type Description
Pull_ListMyUsers_RS C Root element
Pull_ListMyUsers_RS/Status String(100) M See ListStatuses
Pull_ListMyUsers_RS/Status@ID Integer M See ListStatuses
Pull_ListMyUsers_RS/ResponseID String(32) M Unique response ID
Pull_ListMyUsers_RS/Owners C, O Collection of owners
Pull_ListMyUsers_RS/Owners/Owner C, O The details of the owner
Pull_ListMyUsers_RS/Owners/Owner@OwnerID Integer M Unique property ID owner
Pull_ListMyUsers_RS/Owners/Owner/FirstName String(20) M Owner's first name
Pull_ListMyUsers_RS/Owners/Owner/SurName String(30) M Owner's surname
Pull_ListMyUsers_RS/Owners/Owner/Email String(100) M Owner's email address
Pull_ListMyUsers_RS/Owners/Owner/Phone String(20) M Owner's phone number (with the country code)
Pull_ListMyUsers_RS/Owners/Owner/UserAccountId Integer M Owner's PMS Account ID (0 will be returned if the user is not connected to any PMS), it should be used in Push_PutProperty_RQ
Pull_ListMyUsers_RS/Owners/Owner/ConfigurationString String(20) O Values used to parametrize API Calls to PMS

Create user

using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;

Push_CreateUser_RQ request = new Push_CreateUser_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    FirstName = "John",
    LastName = "Doe"
    Email = "john@nonexistent.com",
    Password = "testpass",
    Locations = new List<int>() { 1 }
};

string xmlBody = XmlTools.SerializeObject<Push_CreateUser_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_CreateUser_RS response = XmlTools.DeserializeObject<Push_CreateUser_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to create a new Rentals United user account. If using this method, also consider implementing the Filling company details method to make onboarding easier.

Request

<Push_CreateUser_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <FirstName>John</FirstName>
    <LastName>Doe</LastName>
    <Email>john@nonexistent.com</Email>
    <Password>testpass</Password>
    <Locations>
        <LocationId>1</LocationId>
    </Locations>
</Push_CreateUser_RQ>
XML Path Data Type Type Description
Push_CreateUser_RQ C Root Element
Push_CreateUser_RQ/Authentication C, M Authentication details
Push_CreateUser_RQ/Authentication/UserName String(50) M Username
Push_CreateUser_RQ/Authentication/Password String(50) M Password
Push_CreateUser_RQ/FirstName String(50) M User's first name
Push_CreateUser_RQ/LastName String(50) M User's last name
Push_CreateUser_RQ/Email String(50) M User's email
Push_CreateUser_RQ/Password String(50) M User's password
Push_CreateUser_RQ/PMSId Integer O Allows to associate User to PMS service Provided by RU
Push_CreateUser_RQ/ConfigurationString String(150) O Had to be consulted with RU support what should be provided in this field
Push_CreateUser_RQ/Locations C, M User's locations
Push_CreateUser_RQ/LocationId Integer M At least one the user's locations

Response

<Push_CreateUser_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_CreateUser_RS>
XML Path Data Type Type Description
Push_CreateUser_RS C Root Element
Push_CreateUser_RS/Status String(100) M See ListStatuses
Push_CreateUser_RS/Status/@ID Integer M See ListStatuses
Push_CreateUser_RS/ResponseID String(32) M Unique response ID

List Parent Users

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.User;

Pull_ListAllParentUsers_RQ request = new Pull_ListAllParentUsers_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListAllParentUsers_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListAllParentUsers_RS response = XmlTools.DeserializeObject<Pull_ListAllParentUsers_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method when you're a subuser and need to know a pool of users available to you.

Request

<Pull_ListAllParentUsers_RQ>
 <Authentication>
   <UserName>[Username]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListAllParentUsers_RQ>
XML Path Data Type Type Description
Pull_ListAllParentUsers_RQ C Root Element
Pull_ListAllParentUsers_RQ/Authentication C, M Authentication details
Pull_ListAllParentUsers_RQ/Authentication/UserName String(50) M Username
Pull_ListAllParentUsers_RQ/Authentication/Password String(50) M Password

Response

<Pull_ListAllParentUsers_RS>
    <Status ID="0">Success</Status>
    <ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
    <ParentUsers>
        <User>
            <UserId>55432</UserId>
            <Username>testuser1@rentalsunited.com</Username>
        </User>
        <User>
            <UserId>55591</UserId>
            <Username>testuser2@rentalsunited.com</Username>
        </User>        
    </ParentUsers>
</Pull_ListAllParentUsers_RS>
XML Path Data Type Type Description
Pull_ListAllParentUsers_RS C Root Element
Pull_ListAllParentUsers_RS/Status String(100) M
Pull_ListAllParentUsers_RS/Status/@ID Integer M See ListStatuses
Pull_ListAllParentUsers_RS/ResponseID String(32) M Unique response ID
Pull_ListAllParentUsers_RS/ParentUsers C Collection of ParentUsers
Pull_ListAllParentUsers_RS/ParentUsers/User/UserId Integer M UserId useful for pulling properties
Pull_ListAllParentUsers_RS/ParentUsers/User/Username String(50) M Username to use in Pull_ListOwnerProp_RQ

Fill Company Details

Provide the vital company information via API. Useful for creation of the Rentals United company profile via API, e.g. PMS partners. Information provided will be used to connect properties to sales channels, e.g. for contracting and contacting purposes. It is possible to modify these details in Rentals United UI. To do this go to the Company Profile tab from the User Profile menu.

Request

<Push_FillCompanyDetails_RQ>
  <Authentication>
    <UserName>fillcompanydetailstest@test.com</UserName>
    <Password>test_test</Password>
  </Authentication>
  <ContactInfo>
    <FirstName>Companydetails</FirstName>
    <LastName>Test</LastName>
    <Email>fillcompanydetailstest@test.com</Email>
    <Phone>+48000000000</Phone>
    <City>Warsaw</City>
    <CountryId>153</CountryId>                      
    <Address>Test address</Address>
    <ZipCode>12345</ZipCode>
    <BirthDate>2000-10-10</BirthDate>
    <LanguageId>1</LanguageId>
  </ContactInfo>
  <CompanyInfo>
    <CompanyName>Some company</CompanyName>
    <WebsiteAddress>www.somecompany.com</WebsiteAddress>
    <CompanyCity>Warsaw</CompanyCity>
    <Address>New address</Address>
    <CountryId>58838</CountryId>
    <PostCode>12345</PostCode>
    <TimeZone>UTC+10:00</TimeZone>
    <Region>Region</Region>
    <PhoneNumber>12345</PhoneNumber>
    <VATNumber>1234</VATNumber>
    <ManagerIdentificationNumber>1234</ManagerIdentificationNumber>
    <MerchantName>somecompany@domain.com</MerchantName>
    <Locations>
      <Location Id="6539" />
      <Location Id="2016" />
    </Locations>
    <NumberOfProperties>3</NumberOfProperties>
    <NumberOfEmployees>1</NumberOfEmployees>
    <YearsInBusiness>2</YearsInBusiness>
    <DescribeYourBusiness>Description</DescribeYourBusiness>
  </CompanyInfo>
  <LegalRepresentativeInfo>
    <FirstName>FirstName</FirstName>
    <LastName>LastName</LastName>
    <Email>test@test.com</Email>
    <City>Warsaw</City>
    <CountryOfResidenceId>58838</CountryOfResidenceId>                      
    <Address>Test address</Address>
    <PostCode>12345</PostCode>
    <Birthday>2000-10-10</Birthday>
    <NationalityId>58838</NationalityId>
    <Region>Region</Region>
  </LegalRepresentativeInfo>
</Push_FillCompanyDetails_RQ>
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;

Push_FillCompanyDetails_RQ request = new Push_FillCompanyDetails_RQ()
            {
                Authentication = new Authentication()
                {
                    UserName = "[UserName]",
                    Password = "[Password]"
                },
                ContactInfo = new ContactInfo
                {
                    FirstName = "Companydetails",
                    LastName = "Test",
                    Email = "fillcompanydetailstest@test.com",
                    Phone = "+48000000000",
                    City = "Warsaw",
                    CountryId = 153,
                    Address = "Test address",
                    ZipCode = "12345",
                    BirthDate = new DateTime(2020, 10, 10),
                    LanguageId = 1
                },
                CompanyInfo = new CompanyInfo
                {
                    CompanyName = "Some company",
                    WebsiteAddress = "www.somecompany.com",
                    CompanyCity = "Warsaw",
                    CountryId = 5,
                    PostCode = "00-000",
                    TimeZone = "UTC+10:00",
                    Region = "Region",
                    Address = "Company address",
                    PhoneNumber = "123456",
                    ManagerIdentificationNumber = "12345",
                    VATNumber = "12345",
                    MerchantName = "somecompany@domain.com",
                    CompanyLocations = new CompanyLocation[] {
                        new CompanyLocation{ Id = 2016 },
                        new CompanyLocation{ Id = 6539 }
                    },
                    NumberOfProperties = 7,
                    NumberOfEmployees = 3,
                    YearsInBusiness = 3,
                    CompanyDescription = "Description"
                },
                LegalRepresentativeInfo = new LegalRepresentativeInfo
                {
                    FirstName = "First name",
                    LastName = "Last name",
                    Address = "legal address",
                    Birthday = new DateTime(2000, 10, 10),
                    NationalityId = 5,
                    Email = "test@test.com",
                    CountryOfResidenceId = 8,
                    City = "Warsaw",
                    PostCode = "00-000",
                    Region = "Region"
                }
            };

string xmlBody = XmlTools.SerializeObject<Push_FillCompanyDetails_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_FillCompanyDetails_RS response = XmlTools.DeserializeObject<Push_FillCompanyDetails_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}
XML Path Data Type Type Description
Push_FillCompanyDetails_RQ C Root Element
Push_FillCompanyDetails_RQ/Authentication C, M Authentication details
Push_FillCompanyDetails_RQ/Authentication/UserName String(50) M Username
Push_FillCompanyDetails_RQ/Authentication/Password String(50) M Password
Push_FillCompanyDetails_RQ/ContactInfo C, M Information about the user
Push_FillCompanyDetails_RQ/ContactInfo/FirstName String(20) M User's first name
Push_FillCompanyDetails_RQ/ContactInfo/LastName String(30) M User's last name
Push_FillCompanyDetails_RQ/ContactInfo/Email String(100) M User's email address
Push_FillCompanyDetails_RQ/ContactInfo/Phone String(20) M User's phone number (with the country code)
Push_FillCompanyDetails_RQ/ContactInfo/City String(20) M User's city
Push_FillCompanyDetails_RQ/ContactInfo/CountryId Integer M User's country; see List Locations
Push_FillCompanyDetails_RQ/ContactInfo/Address String(100) M User's address
Push_FillCompanyDetails_RQ/ContactInfo/ZipCode String(20) M User's ZIP code
Push_FillCompanyDetails_RQ/ContactInfo/BirthDate String(10) M User's birthday date (YYYY-MM-DD)
Push_FillCompanyDetails_RQ/ContactInfo/LanguageId Integer M User's language; see ListLanguages
Push_FillCompanyDetails_RQ/CompanyInfo C, M Information about the user's company
Push_FillCompanyDetails_RQ/CompanyInfo/CompanyName String(100) M User's company name
Push_FillCompanyDetails_RQ/CompanyInfo/WebsiteAddress String(100) M User's company website address
Push_FillCompanyDetails_RQ/CompanyInfo/CompanyCity String(100) M User's company city
Push_FillCompanyDetails_RQ/CompanyInfo/CountryId Integer O User's company country; see List Locations
Push_FillCompanyDetails_RQ/CompanyInfo/PostCode String(20) O User's company post code
Push_FillCompanyDetails_RQ/CompanyInfo/Timezone String(20) O User's company timezone (UTC+HH:MM))
Push_FillCompanyDetails_RQ/CompanyInfo/Region String(20) O User's company region
Push_FillCompanyDetails_RQ/CompanyInfo/Address String(100) O User's company address
Push_FillCompanyDetails_RQ/CompanyInfo/PhoneNumber String(20) O User's company phone number (with the country code)
Push_FillCompanyDetails_RQ/CompanyInfo/ManagerIdentificationNumber String(50) O User's company identification number
Push_FillCompanyDetails_RQ/CompanyInfo/VATNumber String(50) O User's company VAT number
Push_FillCompanyDetails_RQ/CompanyInfo/MerchantName String(100) M Please provide the merchant name you have configured at your payment provider. This is required in case you publish your properties on Vrbo. If you are not sure how to proceed, please contact the payment processing company you work with. For more information on the merchant name, read Merchant Data Standards.
Push_FillCompanyDetails_RQ/CompanyInfo/NumberOfProperties Integer O Number of the user's properties; see List NumberOfProperties
Push_FillCompanyDetails_RQ/CompanyInfo/NumberOfEmployees Integer O Number of the user's employees; see List NumberOfEmployees
Push_FillCompanyDetails_RQ/CompanyInfo/YearsInBusiness Integer O User's years in business; see List YearsInBusiness
Push_FillCompanyDetails_RQ/CompanyInfo/DescribeYourBusiness String(1000) O User's company description
Push_FillCompanyDetails_RQ/CompanyInfo/Locations C, M Collection of the user's company locations
Push_FillCompanyDetails_RQ/CompanyInfo/Locations/Location M Information about the user's company location
Push_FillCompanyDetails_RQ/CompanyInfo/Locations/Location/@Id Integer M User's company location; see List Locations
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo C, O Legal representative information about the user's company
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/FirstName String(20) O User's company legal representative first name
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/LastName String(20) O User's company legal representative last name
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/Address String(100) O User's company legal representative address
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/Birthday String(10) O User's company legal representative birthday date (YYYY-MM-DD)
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/NationalityId Integer O User's company legal representative nationality; see List Locations
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/Email String(100) O User's company legal representative email address
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/CountryOfResidenceId Integer O User's company legal representative country of residence ; see List Locations
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/City String(20) O User's company legal representative city
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/PostCode String(20) O User's company legal representative post code
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/Region String(20) O User's company legal representative region

Response

<Push_FillCompanyDetails_RS>
    <Status ID="0">Success</Status>
    <ResponseID>b5771b39fa4c42ca8a56520394c7c573</ResponseID>
</Push_FillCompanyDetails_RS>
XML Path Data Type Type Description
Push_FillCompanyDetails_RS C Root Element
Push_FillCompanyDetails_RS/Status String(100) M See ListStatuses
Push_FillCompanyDetails_RS/Status/@ID Integer M See ListStatuses
Push_FillCompanyDetails_RS/ResponseID String(32) M Unique response ID

List company details NumberOfProperties types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.MyAndCompanyProfile;

Pull_ListCompanyDetailsNumberOfPropertiesType_RQ request = new Pull_ListCompanyDetailsNumberOfPropertiesType_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListCompanyDetailsNumberOfPropertiesType_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListCompanyDetailsNumberOfPropertiesType_RS response = XmlTools.DeserializeObject<Pull_ListCompanyDetailsNumberOfPropertiesType_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns possible values for the NumberOfProperties ranges.

Request

XML Request

<Pull_ListCompanyDetailsNumberOfPropertiesType_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListCompanyDetailsNumberOfPropertiesType_RQ>
XML Path Data Type Type Description
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ C Root element
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ/Authentication C, M Authentication details
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ/Authentication/UserName String(50) M Username
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListCompanyDetailsNumberOfPropertiesType_RS>
    <Status ID="0">Success</Status>
    <ResponseID>bcbcbbe182ff420d971245da1e5b3513</ResponseID>
    <Pull_ListCompanyDetailsNumberOfPropertiesType_RS>
    <Status ID="0">Success</Status>
    <ResponseID>65e4a361ee0a4ef39cb795e31483524b</ResponseID>
    <CompanyInfoNumberOfPropertiesTypes>
        <CompanyInfoNumberOfProperties ID="0">None</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="1">1 - 4</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="2">5 - 9</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="3">10 - 19</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="4">20 - 29</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="5">30 - 39</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="6">40 - 49</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="7">50 - 99</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="8">100 - 199</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="9">200 - 499</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="10">500 - 1000</CompanyInfoNumberOfProperties>
        <CompanyInfoNumberOfProperties ID="11">1000</CompanyInfoNumberOfProperties>
    </CompanyInfoNumberOfPropertiesTypes>
</Pull_ListCompanyDetailsNumberOfPropertiesType_RS>
XML Path Data Type Type Description
Pull_ListCompanyDetailsNumberOfPropertiesType_RS C Root element
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/Status String(100) M See ListStatuses
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/Status@ID Integer M See ListStatuses
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/ResponseID String(32) M Unique response ID
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/CompanyInfoNumberOfPropertiesTypes C, M A collection of all NumberOfProperties types
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/CompanyInfoNumberOfPropertiesTypes/CompanyInfoNumberOfProperties String(50) M A description of the NumberOfProperties type
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/CompanyInfoNumberOfPropertiesTypes/CompanyInfoNumberOfProperties@ID Integer M Unique NumberOfProperties type ID

List company details YearsInBusiness types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.MyAndCompanyProfile;

Pull_ListCompanyDetailsYearsInBusinessType_RQ request = new Pull_ListCompanyDetailsYearsInBusinessType_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListCompanyDetailsYearsInBusinessType_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListCompanyDetailsYearsInBusinessType_RS response = XmlTools.DeserializeObject<Pull_ListCompanyDetailsYearsInBusinessType_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns possible YearsInBusiness ranges.

Request

XML Request

<Pull_ListCompanyDetailsYearsInBusinessType_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListCompanyDetailsYearsInBusinessType_RQ>
XML Path Data Type Type Description
Pull_ListCompanyDetailsYearsInBusinessType_RQ C Root element
Pull_ListCompanyDetailsYearsInBusinessType_RQ/Authentication C, M Authentication details
Pull_ListCompanyDetailsYearsInBusinessType_RQ/Authentication/UserName String(50) M Username
Pull_ListCompanyDetailsYearsInBusinessType_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListCompanyDetailsYearsInBusinessType_RS>
    <Status ID="0">Success</Status>
    <ResponseID>040378268c7943159571bb2fdb9e7d37</ResponseID>
    <CompanyInfoYearsInBusinessTypes>
        <CompanyInfoYearsInBusiness ID="0">None</CompanyInfoYearsInBusiness>
        <CompanyInfoYearsInBusiness ID="1">1 - 2</CompanyInfoYearsInBusiness>
        <CompanyInfoYearsInBusiness ID="2">3 - 5</CompanyInfoYearsInBusiness>
        <CompanyInfoYearsInBusiness ID="3">6 - 10</CompanyInfoYearsInBusiness>
        <CompanyInfoYearsInBusiness ID="4">10</CompanyInfoYearsInBusiness>
    </CompanyInfoYearsInBusinessTypes>
</Pull_ListCompanyDetailsYearsInBusinessType_RS>
XML Path Data Type Type Description
Pull_ListCompanyDetailsYearsInBusinessType_RS C Root element
Pull_ListCompanyDetailsYearsInBusinessType_RS/Status String(100) M See ListStatuses
Pull_ListCompanyDetailsYearsInBusinessType_RS/Status@ID Integer M See ListStatuses
Pull_ListCompanyDetailsYearsInBusinessType_RS/ResponseID String(32) M Unique response ID
Pull_ListCompanyDetailsYearsInBusinessType_RS/CompanyInfoYearsInBusinessTypes C, M A collection of all YearsInBusiness types
Pull_ListCompanyDetailsYearsInBusinessType_RS/CompanyInfoYearsInBusinessTypes/CompanyInfoYearsInBusiness String(50) M A description of the YearsInBusiness type
Pull_ListCompanyDetailsYearsInBusinessType_RS/CompanyInfoYearsInBusinessTypes/CompanyInfoYearsInBusiness@ID Integer M Unique YearsInBusiness type ID

List company details NumberOfEmployees types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.MyAndCompanyProfile;

Pull_ListCompanyDetailsNumberOfEmployeesType_RQ request = new Pull_ListCompanyDetailsNumberOfEmployeesType_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListCompanyDetailsNumberOfEmployeesType_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListCompanyDetailsNumberOfEmployeesType_RS response = XmlTools.DeserializeObject<Pull_ListCompanyDetailsNumberOfEmployeesType_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns possible NumberOfEmployees ranges.

Request

XML Request

<Pull_ListCompanyDetailsNumberOfEmployeesType_RQ>
 <Authentication>
   <UserName>[UserName]</UserName>
   <Password>[Password]</Password>
 </Authentication>
</Pull_ListCompanyDetailsNumberOfEmployeesType_RQ>
XML Path Data Type Type Description
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ C Root element
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ/Authentication C, M Authentication details
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ/Authentication/UserName String(50) M Username
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ/Authentication/Password String(50) M Password

Response

XML Response

<Pull_ListCompanyDetailsNumberOfEmployeesType_RS>
    <Status ID="0">Success</Status>
    <ResponseID>f47e0eb181484f7689fae5bd0e5d5ea9</ResponseID>
    <CompanyInfoNumberOfEmployeesTypes>
        <CompanyInfoNumberOfEmployees ID="0">None</CompanyInfoNumberOfEmployees>
        <CompanyInfoNumberOfEmployees ID="1">1 - 5</CompanyInfoNumberOfEmployees>
        <CompanyInfoNumberOfEmployees ID="2">6 - 10</CompanyInfoNumberOfEmployees>
        <CompanyInfoNumberOfEmployees ID="3">11 - 20</CompanyInfoNumberOfEmployees>
        <CompanyInfoNumberOfEmployees ID="4">21 - 50</CompanyInfoNumberOfEmployees>
        <CompanyInfoNumberOfEmployees ID="5">51 - 100</CompanyInfoNumberOfEmployees>
        <CompanyInfoNumberOfEmployees ID="6">100</CompanyInfoNumberOfEmployees>
    </CompanyInfoNumberOfEmployeesTypes>
</Pull_ListCompanyDetailsNumberOfEmployeesType_RS>
XML Path Data Type Type Description
Pull_ListCompanyDetailsNumberOfEmployeesType_RS C Root element
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/Status String(100) M See ListStatuses
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/Status@ID Integer M See ListStatuses
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/ResponseID String(32) M Unique response ID
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/CompanyInfoNumberOfEmployeesTypes C, M A collection of all NumberOfEmployees types
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/CompanyInfoNumberOfEmployeesTypes/CompanyInfoNumberOfEmployees String(50) M A description of the NumberOfEmployees type
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/CompanyInfoNumberOfEmployeesTypes/CompanyInfoNumberOfEmployees@ID Integer M Unique NumberOfEmployees type ID

Close user account

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.User;

Push_ArchiveUser_RQ request = new Push_ArchiveUser_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Push_ArchiveUser_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_ArchiveUser_RS response = XmlTools.DeserializeObject<Push_ArchiveUser_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method is designed for PMS integration who would like to fully automate Property Manager account lifecycle. Starting with creation of account via Push_CreateUser_RQ and filling company details with Push_FillCompanyDetails_RQ. Ending up closing user account via Push_ArchiveUser_RQ.

Closing user account via this method will result with:

Request

<Push_ArchiveUser_RQ>
    <Authentication>
      <UserName>[Username]</UserName>
      <Password>[Password]</Password>
    </Authentication>
</Push_ArchiveUser_RQ>

XML Path Data Type Type Description
Push_ArchiveUser_RQ C Root Element
Push_ArchiveUser_RQ/Authentication C, M Authentication details
Push_ArchiveUser_RQ/Authentication/UserName String(50) M Username
Push_ArchiveUser_RQ/Authentication/Password String(50) M Password

Response

<Push_ArchiveUser_RS>
    <Status ID="0">Success</Status>
    <ResponseID>6c24d0e9717f438880962aebdb334537</ResponseID>
</Push_ArchiveUser_RS>
XML Path Data Type Type Description
Push_ArchiveUser_RS C Root Element
Push_ArchiveUser_RS/Status String(100) M See ListStatuses
Push_ArchiveUser_RS/Status/@ID Integer M See ListStatuses
Push_ArchiveUser_RS/ResponseID String(32) M Unique response ID

Live Notification Mechanism (LNM)

Overview

Live Notification Mechanism are webhooks which are triggered on a property data change events such as property rates change, property availability change, property static data change. When that event occurs, Rentals United system makes an HTTP request to your URL subscribed for the webhook.

The call is a HTTP GET request, along with a specific query string. Query string depends on the type of change. Use Pull_ListLiveNotificationMechanismChangeTypes_RQ to get all types of changes supported.

We expect your system to respond with HTTP 200 status in under 3 seconds. The HTTP 200 response content is not processed by Rentals United (can be empty). The LNM uses "at-least-once" notification delivery reliability. Your URL will be called at least once. After getting HTTP 200 response, usually you will never be called again with this particular notification (each distinct notification has the ChangeId – a GUID for tracking purposes). However, in some cases webhook may be triggered again, even if your system's HTTP 200 response is received within 3 seconds.

Failed notifications (those for which Rentals United does not get HTTP 200 response within 3 seconds) are scheduled for delivery later. The LNM will try do deliver the notification around three times. First time immediately, then around 2 minutes later. If failed, around 8 minutes later. If failed, around 18 minutes later.

In order to activate webhook you need to call Push_PutLiveNotificationMechanismSubscriptions_RQ method.

To review your current active webhooks subscriptions, use Pull_ListLiveNotificationMechanismSubscriptions_RQ method.

List Change Types

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.LiveNotifMechanism;

Pull_ListLiveNotificationMechanismChangeTypes_RQ request = new Pull_ListLiveNotificationMechanismChangeTypes_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListLiveNotificationMechanismChangeTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListLiveNotificationMechanismChangeTypes_RS response = XmlTools.DeserializeObject<Pull_ListLiveNotificationMechanismChangeTypes_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to get a list of supported Live Notification Mechanism notification types.

Request

<Pull_ListLiveNotificationMechanismChangeTypes_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
</Pull_ListLiveNotificationMechanismChangeTypes_RQ>
XML Path Data Type Type Description
Pull_ListLiveNotificationMechanismChangeTypes_RQ C Root Element
Pull_ListLiveNotificationMechanismChangeTypes_RQ/Authentication C, M Authentication details
Pull_ListLiveNotificationMechanismChangeTypes_RQ/Authentication/UserName String (50) M Username
Pull_ListLiveNotificationMechanismChangeTypes_RQ/Authentication/Password String(50) M Password
<Pull_ListLiveNotificationMechanismChangeTypes_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">Success</ResponseID>
    <ChangeTypes>
        <ChangeType ID="PropertyStaticDetails">
            <Description>This notification will be triggered each time property static details are changed. Publisher is the ID of the property owner.</Description>
            <ExampleUrl>http://test.com/something?ChangeId=f892a4eb-f070-43ee-881eb3737f1bd462&amp;PropertyId=123456&amp;Publisher=234567&amp;Type=PropertyStaticDetails</ExampleUrl>
        </ChangeType>
        <ChangeType ID="PropertyChangeover">
            <Description>This notification will be triggered each time modification of the property changeover is made. Publisher is the ID of the property owner.</Description>
            <ExampleUrl>http://test.com/something?ChangeId=3a2882f2-6421-47e8-97e4-10003fc363f9&amp;DateFrom=2015-06-11T00-00-00Z&amp;DateTo=2015-06-18T00-00-00Z&amp;PropertyId=123456&amp;Publisher=234567&amp;Type=PropertyChangeover</ExampleUrl>
        </ChangeType>
        <ChangeType ID="PropertyMinStay">
            <Description>This notification will be triggered each time modification of the property min stay is made. Publisher is the ID of the property owner.</Description>
            <ExampleUrl>http://test.com/something?ChangeId=7ed67358-3f25-4c3a-aba6-faef66a30fb9&amp;DateFrom=2015-06-11T00-00-00Z&amp;DateTo=2015-06-18T00-00-00Z&amp;PropertyId=123456&amp;Publisher=234567&amp;Type=PropertyMinStay</ExampleUrl>
        </ChangeType>
        <ChangeType ID="PropertyAvailability">
            <Description>This notification will be triggered each time property availability is changed. Publisher is the ID of the property owner.</Description>
            <ExampleUrl>http://test.com/something?ChangeId=bda563b1-93e1-428b-a6bf729f9f5d7d8b&amp;DateFrom=2015-06-11T00-00-00Z&amp;DateTo=2015-06-18T00-00-00Z&amp;PropertyId=123456&amp;Publisher=234567&amp;Type=PropertyAvailability</ExampleUrl>
        </ChangeType>
        <ChangeType ID="PropertyPrice">
            <Description>This notification will be triggered each time property price is changed. Publisher is the ID of the property owner.</Description>
            <ExampleUrl>http://test.com/something?ChangeId=7e3026f5-cb6e-4519-897a8f6b0c15f7a2&amp;DateFrom=2015-06-11T00-00-00Z&amp;DateTo=2015-06-18T00-00-00Z&amp;PropertyId=123456&amp;Publisher=234567&amp;Type=PropertyPrice</ExampleUrl>
        </ChangeType>
        <ChangeType ID="PropertyMCQEligibilityCheck">
            <Description>This notification will be triggered every time the MCQ(Minimum Content Quality) check is completed for a property and channel. Use it in pair with CM_LNM_OrderMinimumContentQualityCheck_RQ. Publisher is the ID of the property owner</Description>
            <ExampleUrl>http://test.com/something?ChangeId=8107ef19-9960-4a95-bc5d-62174166260f&amp;ChannelId=12345&amp;PropertyId=12345&amp;Publisher=54321&amp;Result=W3siVmFsaWRhdGlvbkVycm9yQ29kZSI6IkFkZHJlc3NJc0VtcHR5IiwiVmFsaWRhdGlvbkVycm9yRXh0cmFEYXRhIjpudWxsfSx7IlZhbGlkYXRpb25FcnJvckNvZGUiOiJOYW1lSGFzWE9yTW9yZUNvbnNlY3V0aXZlRGlnaXRzIiwiVmFsaWRhdGlvbkVycm9yRXh0cmFEYXRhIjo1fV0%3d&amp;Success=False&amp;Type=PropertyMCQEligibilityCheck</ExampleUrl>
        </ChangeType>
    </ChangeTypes>
</Pull_ListLiveNotificationMechanismChangeTypes_RS>

Response

XML Path Data Type Type Description
Pull_ListLiveNotificationMechanismChangeTypes_RS C Root Element
Pull_ListLiveNotificationMechanismChangeTypes_RS/Status String(100) M See ListStatuses
Pull_ListLiveNotificationMechanismChangeTypes_RS/Status/@ID Integer M See ListStatuses
Pull_ListLiveNotificationMechanismChangeTypes_RS/ResponseID String(32) M Unique response ID
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes C, M A collection of change types
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes/ChangeType C, M Change type
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes/ChangeType/@ID String(50) M Change type ID
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes/ChangeType/Description String(2000) M Description of change type
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes/ChangeType/ExampleUrl String(2000) M Example url with defined query string

Subscribe for notifications request

using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.LiveNotifMechanism;

Push_PutLiveNotificationMechanismSubscriptions_RQ request = new Push_PutLiveNotificationMechanismSubscriptions_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ChangeTypes = new List<LiveNotificationMechanismChangeTypeInfo>()
    {
        new LiveNotificationMechanismChangeTypeInfo()
        {
            Value = "PropertyStaticDetails"
        },
        new LiveNotificationMechanismChangeTypeInfo()
        {
            Value = "PropertyMinStay"
        },
        new LiveNotificationMechanismChangeTypeInfo()
        {
            Value = "PropertyPrice"
        }
    },
    ObservedOwners = new List<LiveNotificationMechanismObservedOwnerInfo>()
    {
        new LiveNotificationMechanismObservedOwnerInfo()
        {
            Value = 123456
        },
        new LiveNotificationMechanismObservedOwnerInfo()
        {
            Value = 987654
        }
    },
    UrlBase = "http://mywebsite.com/api/lnm"
};

string xmlBody = XmlTools.SerializeObject<Push_PutLiveNotificationMechanismSubscriptions_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutLiveNotificationMechanismSubscriptions_RS response = XmlTools.DeserializeObject<Push_PutLiveNotificationMechanismSubscriptions_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to subscribe for Live Notifications. This method replaces your subscriptions with the new values from the XML Request.

In order to unsubscribe, send Push_PutLiveNotificationMechanismSubscriptions_RQ including Authentication element only.

Request

<Push_PutLiveNotificationMechanismSubscriptions_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ChangeTypes>
        <Type>PropertyStaticDetails</Type>
        <Type>PropertyMinStay</Type>
        <Type>PropertyPrice</Type>
    </ChangeTypes>
    <ObservedOwners>
        <Owner>123456</Owner>
        <Owner>987654</Owner>
    </ObservedOwners>
    <UrlBase>http://mywebsite.com/api/lnm</UrlBase>
</Push_PutLiveNotificationMechanismSubscriptions_RQ>
XML Path Data Type Type Description
Push_PutLiveNotificationMechanismSubscriptions_RQ C Root Element
Push_PutLiveNotificationMechanismSubscriptions_RQ/Authentication C, M Authentication details
Push_PutLiveNotificationMechanismSubscriptions_RQ/Authentication/UserName String(50) M Username
Push_PutLiveNotificationMechanismSubscriptions_RQ/Authentication/Password String(50) M Password
Push_PutLiveNotificationMechanismSubscriptions_RQ/ChangeTypes C, M List of types of notifications to subscribe for
Push_PutLiveNotificationMechanismSubscriptions_RQ/ChangeTypes/Type String(50) M Notification type ID
Push_PutLiveNotificationMechanismSubscriptions_RQ/ObservedOwners C, M List of observed owners to subscribe for
Push_PutLiveNotificationMechanismSubscriptions_RQ/ObservedOwners/Owner Integer M Observed owner ID
Push_PutLiveNotificationMechanismSubscriptions_RQ/UrlBase String(200) M The URL base to which query string will be added. It is the "http://test.com/something" part in the examples in Pull_ListLiveNotificationMe chanismChangeTypes_RS.

Response

<Push_PutLiveNotificationMechanismSubscriptions_RS>
  <Status ID="0">Success</Status>
  <ResponseID ID="1">Success</ResponseID>
</Push_PutLiveNotificationMechanismSubscriptions_RS>
XML Path Data Type Type Description
Push_PutLiveNotificationMechanismSubscriptions_RS C Root Element
Push_PutLiveNotificationMechanismSubscriptions_RS/Status String(100) M See ListStatuses
Push_PutLiveNotificationMechanismSubscriptions_RS/Status/@ID Integer M See ListStatuses
Push_PutLiveNotificationMechanismSubscriptions_RS/ResponseID String(32) M Unique response ID

List subscriptions

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.LiveNotifMechanism;

Pull_ListLiveNotificationMechanismSubscriptions_RQ request = new Pull_ListLiveNotificationMechanismSubscriptions_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_ListLiveNotificationMechanismSubscriptions_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListLiveNotificationMechanismSubscriptions_RS response = XmlTools.DeserializeObject<Pull_ListLiveNotificationMechanismSubscriptions_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Use this method to retrieve a list of all your Live Notification subscriptions.

Request

<Pull_ListLiveNotificationMechanismSubscriptions_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
</Pull_ListLiveNotificationMechanismSubscriptions_RQ>
XML Path Data Type Type Description
Pull_ListLiveNotificationMechanismSubscriptions_RQ C Root Element
Pull_ListLiveNotificationMechanismSubscriptions_RQ/Authentication C, M Authentication details
Pull_ListLiveNotificationMechanismSubscriptions_RQ/Authentication/UserName String(50) M Username
Pull_ListLiveNotificationMechanismSubscriptions_RQ/Authentication/Password String(50) M Password

Response

<Pull_ListLiveNotificationMechanismSubscriptions_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">Success</ResponseID>
    <ChangeTypes>
        <Type>PropertyMinStay</Type>
        <Type>PropertyPrice</Type>
        <Type>PropertyStaticDetails</Type>
    </ChangeTypes>
    <ObservedOwners>
        <Owner>123456</Owner>
        <Owner>987654</Owner>
    </ObservedOwners>
    <UrlBase>http://mywebsite.com/api/lnm</UrlBase>
</Pull_ListLiveNotificationMechanismSubscriptions_RS>
XML Path Data Type Type Description
Pull_ListLiveNotificationMechanismSubscriptions_RS C Root Element
Pull_ListLiveNotificationMechanismSubscriptions_RS/Status String(100) M See ListStatuses
Pull_ListLiveNotificationMechanismSubscriptions_RS/Status/@ID Integer M See ListStatuses
Pull_ListLiveNotificationMechanismSubscriptions_RS/ResponseID String(32) M Unique response ID
Pull_ListLiveNotificationMechanismSubscriptions_RS/ChangeTypes C, O List of types of subscribed notifications
Pull_ListLiveNotificationMechanismSubscriptions_RS/ChangeTypes/Type String(50) M Notification type ID
Pull_ListLiveNotificationMechanismSubscriptions_RS/ObservedOwners C, O List of observed owners
Pull_ListLiveNotificationMechanismSubscriptions_RS/ObservedOwners/Owner Integer M Observed owner ID
Pull_ListLiveNotificationMechanismSubscriptions_RS/UrlBase String (200) O The URL base to which query string will be added. It is the "http://test.com/something" part in the examples in Pull_ListLiveNotificationMe chanismChangeTypes_RS.

Reservation Live Notification Mechanism (RLNM)

RLNM is a specific type of LNM notification. Receive RLNM notifications including full reservation data real time directly to your endpoint.

Rentals United calls your system to transfer information about a new reservation (confirmed or request) or a cancellation.

To use this feature, you should create a HTTPS handler. Rentals United will post to your handler (with a specific XML content) every time a confirmed reservation/request or cancellation is made in Rentals United. Rentals United posts RLNM notifications to your handler and does not expect a response. There are 4 types of RLNM notifications that can be posted to your handler:

Rentals United will send all types of RLNM notifications to the same handler (make sure that your handler accepts all 4 types of RLNM notifications). To help distinguish between the RLNM types, there is a header called ru-rlnm-method in the notification. The value will be one of the possible RLNM types (for example, LNM_PutConfirmedReservation_RQ).

Enabling RLNM

Use this method to subscribe to RLNM notifications.

LNM_PutHandlerUrl_RS/Hash needs to be saved in your system and used to validate received RLNM notifications come from Rentals United (LNM_PutConfirmedReservation_RQ/Authentication/Password)

Warning: RLNM notifications are sent to HTTPS endpoints only!

In order to unsubscribe, send LNM_PutHandlerUrl_RQ including Authentication element only.

Request

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;

LNM_PutHandlerUrl_RQ request = new LNM_PutHandlerUrl_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    HandlerUrl = "https://example.com/handler/rentals-united"
};

string xmlBody = XmlTools.SerializeObject<LNM_PutHandlerUrl_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    LNM_PutHandlerUrl_RS response = XmlTools.DeserializeObject<LNM_PutHandlerUrl_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}
<LNM_PutHandlerUrl_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <HandlerUrl>https://example.com/handler/rentals-united</HandlerUrl>
</LNM_PutHandlerUrl_RQ>
XML Path Data Type Type Description
LNM_PutHandlerUrl_RQ C Root element
LNM_PutHandlerUrl_RQ/Authentication C, M Authentication details
LNM_PutHandlerUrl_RQ/Authentication/UserName String(50) M Username
LNM_PutHandlerUrl_RQ/Authentication/Password String(50) M Password
LNM_PutHandlerUrl_RQ/HandlerUrl String O Request handler URL

Response

<LNM_PutHandlerUrl_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">Success</ResponseID>
    <Hash>1X7J9SALRDJ283FMY8PFO8BIGBTEZ5J68WGNEGZW</Hash>
</LNM_PutHandlerUrl_RS>
XML Path Data Type Type Description
LNM_PutHandlerUrl_RS C Root element
LNM_PutHandlerUrl_RS/Status String(100) M See ListStatuses
LNM_PutHandlerUrl_RS/Status@ID Integer M See ListStatuses
LNM_PutHandlerUrl_RS/ResponseID String(32) M Unique response ID
LNM_PutHandlerUrl_RS/Hash String(40) O Password hash

Confirmed reservation

void HandleRequest(string xmlRequest)
{
    try
    {
        LNM_PutConfirmedReservation_RQ request = XmlTools.DeserializeObject<LNM_PutConfirmedReservation_RQ>(xmlRequest);
        //process request object
    }
    catch
    {
        // process error
    }
}

This is the XML Request structure of a RLNM notification sent (POST) to your handler by Rentals United for a new confirmed reservation or reservation modification.

<LNM_PutConfirmedReservation_RQ>
  <Authentication>
    <UserName>[UserName]</UserName>
    <Password>[Password]</Password>
  </Authentication>
  <Reservation>
    <ReservationID>124</ReservationID>
    <CreatedDate>2021-08-12 14:10:00</CreatedDate>
    <LastMod>2021-08-12 14:10:00</LastMod>
    <StayInfos>
      <StayInfo>
        <PropertyID>2</PropertyID>
        <DateFrom>2022-05-29</DateFrom>
        <DateTo>2022-05-31</DateTo>
        <ArrivalTime>2022-05-29 13:22:00</ArrivalTime>
        <NumberOfGuests>3</NumberOfGuests>
        <Costs>
          <RUPrice>1120.06</RUPrice>
          <ClientPrice>1120.06</ClientPrice>
          <AlreadyPaid>50</AlreadyPaid>
          <PriceScale>0%</PriceScale>
        </Costs>
        <ResApaID>123455</ResApaID>
        <Mapping>
          <ReservationID>123</ReservationID>
          <StayID>123</StayID>
          <HotelID>123</HotelID>
          <RoomID>123</RoomID>
          <RateID>123</RateID>
        </Mapping>
        <ReservationBreakdown>
          <RUBreakdown>
            <DayPrices Date="2022-05-29">
              <Rent>244.99</Rent>
              <Taxes>
                  <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
              </Taxes>
              <Fees>
                  <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
              </Fees>
              <Price>265.49</Price>
            </DayPrices>
            <DayPrices Date="2022-05-30">
              <Rent>244.99</Rent>
              <Taxes>
                  <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
              </Taxes>
              <Fees>
                  <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
              </Fees>
              <Price>265.49</Price>
            </DayPrices>
            <DayPrices Date="2022-05-31">
              <Rent>244.99</Rent>
              <Taxes>
                  <Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
              </Taxes>
              <Fees>
                  <Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
              </Fees>
              <Price>265.49</Price>
            </DayPrices> 
            <TotalFeesTaxes>
              <TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
              <TotalFeeTax AlreadyIncluded="false" Amount="140.0" Name="Pet fee" FeeTaxType="29"/>
              <TotalFeeTax AlreadyIncluded="false" Amount="241.59" Name="VAT" FeeTaxType="2"/>
            </TotalFeesTaxes>
            <Total>1120.06</Total>
            <Rent>734.97</Rent>
          </RUBreakdown>
          <ChannelBreakdown>
            <DayPrices Date="2022-05-29">
              <RentInfo>
                <Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
              </RentInfo>
              <Taxes>
                <Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
                <Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
              </Taxes>
              <Fees>
                <Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
              </Fees>
              <Price>157.10</Price>
            </DayPrices>
            <DayPrices Date="2022-05-30">
              <RentInfo>
                <Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
              </RentInfo>
              <Taxes>
                <Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
              </Taxes>
              <Price>101.11</Price>
            </DayPrices>
            <DayPrices Date="2022-05-31">
              <RentInfo>
                <Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
              </RentInfo>
              <Taxes>
                <Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
              </Taxes>
              <Price>101.11</Price>
            </DayPrices>
            <ChannelTotalFeesTaxes>
              <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="38.48" Currency="USD" Name="Room" ItemType="Tax" />
              <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
              <ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
            </ChannelTotalFeesTaxes>
            <ChannelTotal>359.32</ChannelTotal>
            <ChannelRent>295.84</ChannelRent>
          </ChannelBreakdown>
          <ChannelCommission>210.00</ChannelCommission>
        </ReservationBreakdown>
      </StayInfo>
    </StayInfos>
    <CustomerInfo>
      <Name>Test</Name>
      <SurName>Test</SurName>
      <Email>test.test@test.com</Email>
      <Phone>+11 111 111 111</Phone>
      <SkypeID>test.test</SkypeID>
      <Address>Street 1/2</Address>
      <ZipCode>00-000</ZipCode>
      <CountryID>100</CountryID>
      <LanguageID>1</LanguageID>
    </CustomerInfo>
    <GuestDetailsInfo>
      <NumberOfAdults>2</NumberOfAdults>
      <NumberOfChildren>2</NumberOfChildren>
      <NumberOfInfants>3</NumberOfInfants>
      <ChildrenAges>
        <Age>12</Age>
        <Age>9</Age>
        <Age>2</Age>
        <Age>2</Age>
        <Age>1</Age>
      </ChildrenAges>
    </GuestDetailsInfo>
    <Creator>test@test.test</Creator>
    <Comments>test</Comments>
  </Reservation>
</LNM_PutConfirmedReservation_RQ>
XML Path Data Type Type Description
LNM_PutConfirmedReservation_RQ C Root element
LNM_PutConfirmedReservation_RQ/Authentication C, M Authentication details
LNM_PutConfirmedReservation_RQ/Authentication/UserName String(50) M Rentals United Username
LNM_PutConfirmedReservation_RQ/Authentication/Password String(50) M Password hash. See PutHandlerUrl
LNM_PutConfirmedReservation_RQ/Reservation O Single reservation
LNM_PutConfirmedReservation_RQ/Reservation/ReservationID Integer M Unique reservation ID in Rentals United system
LNM_PutConfirmedReservation_RQ/Reservation/CreatedDate String M The date of creation of the reservation (YYYY-MM-DD HH:MM:SS format)
LNM_PutConfirmedReservation_RQ/Reservation/LastMod String M The last modification date (creation or cancellation) of the reservation(format YYYY-MM-DD HH:MM:SS)
LNM_PutConfirmedReservation_RQ/Reservation/ReservationStatusID Integer M See ListReservationStatuses
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos C, M A collection of stay information
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo C, M Information about the stay
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/PropertyID Integer M Unique property ID
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/DateFrom String(10) M Arrival date (YYYY-MM-DD format)
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/DateTo String(10) M Departure date (YYYY-MM-DD format)
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ArrivalTime String(19) O Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format)
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/NumberOfGuests Integer M Number of guests that will be staying in the property
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs C, M Information about the stay costs
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/RUPrice Decimal (19,2) M The price returned by one of the RU methods for the property in the specified dates
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/ClientPrice Decimal (19,2) M Final price for the guest
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid Decimal(19,2) M The amount already paid by the guest
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/PriceScale String M Information about what price scale was used
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Comments String(500) O Additional comments about this stay
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ResApaID Integer M Apartment reservation ID
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/ReservationID String(50) M External System’s Reservation ID
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/StayID String(50) O External System’s reservation identifier assigned to the property
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/HotelID String(50) O External System’s property ID
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/RoomID String(50) O External System’s room ID
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/RateID String(50) O External System’s rate ID
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown C, M A container object for the reservation price breakdown details
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown C, M A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices C, M A collection of objects containing price information for each day of the reservation
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent Decimal(19,2) M The value of the base rent for specific day
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes C, M A collection of taxes for specific DayPrices@Date of the reservation
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded Boolean M Information if the tax value is included in Rent
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees C, M A collection of fees for specific DayPrices@Date of the reservation
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded Boolean M Information if the fee value is included in Rent
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes C,M A container objects for fees and taxes applied for the whole stay
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded Boolean M Information if the total tax/fee amount of one type is included in Rent
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name String(50) M Tax/fee description
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType Integer O Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total Decimal(19,2) M The overall value of rent, fees and taxes of the whole stay
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent Decimal(19,2) M The value of rent for the whole stay
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown C, O A container object for the reservation price breakdown received from the sales channel
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices C, O A collection of objects containing price information for each day of the reservation
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date String(10) M Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo C, O A collection of rent items for specific DayPrices@Date of the reservation
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal Boolean M Information if the rent value is included in ChannelTotal
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount Decimal(19,2) M The daily rent value
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency String(3) M Currency, see ListCurrencies
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name String(50) M Rent description
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes C, O A collection of taxes for specific DayPrices@Date of the reservation
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal Boolean M Information if the tax value is included in ChannelTotal
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount Decimal(19,2) M The amount of tax for the particular stay date
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency String(3) M Currency, see ListCurrencies
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name String(50) M Tax description
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees C, O A collection of fees for specific DayPrices@Date of the reservation
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal Boolean M Information if the fee value is included in ChannelTotal
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount Decimal(19,2) M The amount of fee for the particular stay date
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name String(50) M Fee description
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price Decimal(19,2) M The sum of all items of a given DayPrice
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes C, M A container object for fees and taxes applied for the whole stay and the ones that are applied per day
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal Boolean M Information if the total tax/fee amount of one type is included in ChannelTotal
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount Decimal(19,2) M The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay.
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency String(3) M Currency, see ListCurrencies
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name String(50) M Tax/fee description
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType String(3) O Information whether the item is a tax or a fee
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal Decimal(19,2) M The total price paid by the guest for the whole stay as received from the sales channel
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent Decimal(19,2) M The rent value of the whole stay
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission Decimal(19,2) O The amount charged by the sales channel
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo C, M Information about the guest
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/Name String(20) M Guest's name
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/SurName String(30) M Guest's surname
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/Email String(100) M Guest's email address
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with the country code
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/SkypeID String(50) O Guest's Skype ID
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/Address String(50) O Guest's address
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, see ListLocations (filter LocationTypeID=2)
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/LanguageID Integer O Code that identifies the guest's language, see ListLanguages
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo C, O A container object for the reservation occupancy details
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfAdults Integer O Number of adults in the reservation
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfChildren Integer O Number of children in the reservation
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfInfants Integer O Number of infants in the reservation
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/ChildrenAges C, O A container object that lists all children’s and infants' ages
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/ChildrenAges/Age Integer M Age of a child or an infant in the reservation (acceptable values: 0-17)
LNM_PutConfirmedReservation_RQ/Reservation/Creator String(50) M Email address/Username of an entity that created a reservation, e.g. the channel or the user
LNM_PutConfirmedReservation_RQ/Reservation/Comments String(4000) O Additional comments
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard C, O Credit card information
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/CCNumber String(19) M Credit card number
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/CVC String(4) O Credit card security code
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/NameOnCard String(400) M Credit card holder name
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/Expiration String(7) M Credit card expiration date (MM/YYYY format)
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/BillingAddress String(400) O Billing address
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/CardType String(30) M Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/Comments String(400) O Additional comments for the credit card
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication C, O Object holding information about 3DS2 payments
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/CAVV String(48) O It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, token's validity will have to be confirmed with the card processor.
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/ECI String(2) O Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/XID String(40) O Encoded transactionId
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/DsTransID UUID O Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion String(5) O A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD.
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/ExceptionType String(40) O Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt.

Cancellation of the reservation

void HandleRequest(string xmlRequest)
{
    try
    {
        LNM_CancelReservation_RQ request = XmlTools.DeserializeObject<LNM_CancelReservation_RQ>(xmlRequest);
        //process request object
    }
    catch
    {
        // process error
    }
}

This is the XML Request structure of a RLNM notification sent (POST) to your handler by Rentals United for a reservation cancellation.

<LNM_CancelReservation_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ReservationID>123</ReservationID>
</LNM_CancelReservation_RQ>
XML Path Data Type Type Description
LNM_CancelReservation_RQ C Root element
LNM_CancelReservation_RQ/Authentication C, M Authentication details
LNM_CancelReservation_RQ/Authentication/UserName String(50) M Rentals United Username
LNM_CancelReservation_RQ/Authentication/Password String(50) M Password hash provided by Rentals United
LNM_CancelReservation_RQ/ReservationID Integer M Unique reservation ID

New Lead

void HandleRequest(string xmlRequest)
{
    try
    {
        LNM_PutLeadReservation_RQ request = XmlTools.DeserializeObject<LNM_PutLeadReservation_RQ>(xmlRequest);
        //process request object
    }
    catch
    {
        // process error
    }
}

This is the XML Request structure of a RLNM notification sent (POST) to your handler by Rentals United for a new lead (e.g. Guest Communication thread).

<LNM_PutLeadReservation_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Reservation>
        <ReservationID>123</ReservationID>
        <ExternalReservationID>123asd123</ExternalReservationID>
        <PropertyID>1</PropertyID>
        <DateFrom>2014-06-01</DateFrom>
        <DateTo>2014-06-08</DateTo>
        <NumberOfGuests>2</NumberOfGuests>
        <ResApaID>12345</ResApaID>
        <CustomerInfo>
            <Name>test</Name>
            <SurName>test</SurName>
            <Email>test2@test.test</Email>
            <Phone>0000000</Phone>
            <CountryID>66</CountryID>
            <LanguageID>2</LanguageID>
        </CustomerInfo>
        <Comments>How much is it?</Comments>
        <Creator>test@test.test</Creator>
        <DateEntered>2014-05-26 09:17:00</DateEntered>
    </Reservation>
</LNM_PutLeadReservation_RQ>
XML Path Data Type Type Description
LNM_PutLeadReservation_RQ C Root element
LNM_PutLeadReservation_RQ/Authentication C, M Authentication details
LNM_PutLeadReservation_RQ/Authentication/UserName String(50) M Rentals United Username
LNM_PutLeadReservation_RQ/Authentication/Password String(50) M Password hash provided by Rentals United
LNM_PutLeadReservation_RQ/Reservation O Single reservation request
LNM_PutLeadReservation_RQ/Reservation/ReservationID Integer M Unique reservation ID
LNM_PutLeadReservation_RQ/Reservation/ExternalReservationID String O Lead's unique identifier from the external system that created it
LNM_PutLeadReservation_RQ/Reservation/PropertyID Integer O Unique property ID
LNM_PutLeadReservation_RQ/Reservation/DateFrom String(10) O Start of the lead(YYYY-MM-DD format)
LNM_PutLeadReservation_RQ/Reservation/DateTo String(10) O End of the lead(YYYY-MM-DD format)
LNM_PutLeadReservation_RQ/Reservation/NumberOfGuests Integer O Number of guests
LNM_PutLeadReservation_RQ/Reservation/ResApaID Integer M Apartment Reservation ID
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo C, M Information about the guest
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/Name String(20) O Guest's name
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/SurName String(30) O Guest's surname
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/Email String(100) O Guest's email address
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/Phone String(30) O Guest's phone number with the country code
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/SkypeId String(50) O Guest's Skype ID
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/Address String(50) O Guest's address
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/ZipCode String(15) O Guest's zip code
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/CountryID Integer O Country's unique ID, see ListLocations (filter LocationTypeID=2)
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/LanguageID Integer O Code that identifies the guest's language, see ListLanguages
LNM_PutLeadReservation_RQ/Reservation/Comments String(4000) M Additional information
LNM_PutLeadReservation_RQ/Reservation/Creator String(50) M Email address/Username of an entity that created a lead, e.g. the channel or the user
LNM_PutLeadReservation_RQ/Reservation/DateEntered String(19) M Information when the lead was created (YYYY-MM-DD HH:MM:SS format)

Channel Management API

List properties status in channel

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChannelManagement;

CM_Pull_PropertiesStatus_RQ request = new CM_Pull_PropertiesStatus_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ChannelId = 1
};

string xmlBody = XmlTools.SerializeObject<CM_Pull_PropertiesStatus_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    CM_Pull_PropertiesStatus_RS response = XmlTools.DeserializeObject<CM_Pull_PropertiesStatus_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method lets you list properties of a single channel. Thanks to this info you will be able to make a decision of activating/deactivating property or updating the markup for selected rates.

Request

<CM_Pull_PropertiesStatus_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ChannelId>421327</ChannelId>
</CM_Pull_PropertiesStatus_RQ>
XML Path Data Type Type Description
CM_Pull_PropertiesStatus_RQ C Root element
CM_Pull_PropertiesStatus_RQ/Authentication C, M Authentication details
CM_Pull_PropertiesStatus_RQ/Authentication/UserName String(50) M Username
CM_Pull_PropertiesStatus_RQ/Authentication/Password String(50) M Password
CM_Pull_PropertiesStatus_RQ/ChannelId Integer M ChannelId that can be found in Pull_GetAgents_RQ as an AgentId

Response

HRS example

This is an example of HRS properties (e.g. Booking.com). In this case, the user has two hotels (Clusters).

One hotel (Cluster) with ID 1908965 and only one unit (Unit) within. The Cluster is inactive because none of its Units are active. Moreover, the Unit is inactive because the Rates within are inactive, too. Notice that the Rates collection has two Rate objects inside. The ARIStatus is inactive, which means Rentals United is not synchronizing the availability and pricing for this unit. Since the unit is inactive, there is a possibility that this unit's calendar is outdated in the OTA, hence a reservation may be created for this unit in case it has some open dates. If this happens, the reservation will be synchronized into Rentals United.

The second hotel (Cluster) with ID 1534809 is active because at least one of its Units is active.

<CM_Pull_PropertiesStatus_RS>
    <Status ID="0">Success</Status>
    <ResponseID>c4de77df9b524494a09d48d03e2f936f</ResponseID>
    <Channels>
        <Channel>
            <Id>421327</Id>
            <Clusters>
                <Cluster ClusterId="1908965">
                    <Active>false</Active>
                    <Units>
                        <Unit ExternalUnitId="190896501" UnitId="56150" Active="false">
                            <Properties>
                                <Property Id="2543542" PUID="33728900" />
                            </Properties>
                            <Rates>
                                <Rate Active="false" Id="71917" Markup="115" Name="Standard Rate" NrOfPeople="7" />
                                <Rate Active="false" Id="116024" Markup="105" Name="Non refundable rate" NrOfPeople="7" />
                            </Rates>
                            <Status>
                                <ContentStatus>Ok</ContentStatus>
                                <ARIStatus>Inactive</ARIStatus>
                            </Status>
                        </Unit>
                    </Units>
                </Cluster>
                <Cluster ClusterId="1534809">
                    <Active>true</Active>
                    <Units>
                        <Unit ExternalUnitId="153480902" UnitId="17951" Active="true">
                            <Properties>
                                <Property Id="177056" PUID="54222;56730" />
                            </Properties>
                            <Rates>
                                <Rate Active="true" Id="22699" Markup="115" Name="Standard Rate" NrOfPeople="2" />
                            </Rates>
                            <Status>
                                <ContentStatus>Ok</ContentStatus>
                                <ARIStatus>Error</ARIStatus>
                            </Status>
                        </Unit>
                        <Unit ExternalUnitId="153480904" UnitId="351449" Active="true">
                            <Properties>
                                <Property Id="177058" PUID="54220;56728" />
                            </Properties>
                            <Rates>
                                <Rate Active="false" Id="374239" Markup="115" Name="Standard Rate" NrOfPeople="2" />
                            </Rates>
                            <Status>
                                <ContentStatus>Ok</ContentStatus>
                                <ARIStatus>Ok</ARIStatus>
                            </Status>
                        </Unit>
                        <Unit ExternalUnitId="153480903" UnitId="17952" Active="false">
                            <Properties>
                                <Property Id="180072" PUID="54223;56732" />
                            </Properties>
                            <Rates />
                        </Unit>
                    </Units>
                </Cluster>                            
            </Clusters>
        </Channel>
    </Channels>
</CM_Pull_PropertiesStatus_RS>

HRW example

This is an example of HRW properties (e.g. Airbnb). In this case, the user has two accounts (Clusters) synchronized. Please notice that in this case there is always one apartment (Unit) and one Rate inside a Unit.

Not every HRW system supports distinction between ARIStatus and ContentStatus. Some of them provide information only about ContentStatus.

<CM_Pull_PropertiesStatus_RS>
    <Status ID="0">Success</Status>
    <ResponseID>6a4011cae8a44bba9cf1e248d75a902b</ResponseID>
    <Channels>
        <Channel>
            <Id>426592</Id>
            <Clusters>
                <Cluster ClusterId="140042636">
                    <Active>true</Active>
                    <Unit Active="true" ExternalUnitId="23317850" UnitId="91888">
                        <Properties>
                            <Property Id="1199017" PUID="104667;104682"/>
                        </Properties>
                        <Rates>
                            <Rate Active="true" Id="113068" Markup="105" Name="Standard" NrOfPeople="1"/>
                        </Rates>
                        <Status>
                            <ContentStatus>Ok</ContentStatus>
                            <ARIStatus>Ok</ARIStatus>
                        </Status>
                    </Unit>
                    <Unit Active="false" ExternalUnitId="19647041" UnitId="153719">
                        <Properties>
                            <Property Id="1198036" PUID="104439;104474"/>
                        </Properties>
                        <Rates>
                            <Rate Active="false" Id="142853" Markup="110" Name="Standard" NrOfPeople="1"/>
                        </Rates>
                        <Status>
                            <ContentStatus>Ok</ContentStatus>
                            <ARIStatus>Inactive</ARIStatus>
                        </Status>
                    </Unit>
                </Cluster>
                <Cluster ClusterId="137811792">
                    <Active>false</Active>
                    <Unit Active="false" ExternalUnitId="13892870" UnitId="50643">
                        <Properties>
                            <Property Id="246467" PUID="61770;62323"/>
                        </Properties>
                        <Rates>
                            <Rate Active="false" Id="64636" Markup="105" Name="Standard" NrOfPeople="1"/>
                        </Rates>
                        <Status>
                            <ContentStatus>Error</ContentStatus>
                            <ARIStatus>Error</ARIStatus>
                        </Status>
                    </Unit>
                </Cluster>
            </Clusters>
        </Channel>
    </Channels>
</CM_Pull_PropertiesStatus_RS>
XML Path Data Type Type Description
CM_Pull_PropertiesStatus_RS C Root element
CM_Pull_PropertiesStatus_RS/Channels C Collection with models containg channel connections breakdown
CM_Pull_PropertiesStatus_RS/Channel C
CM_Pull_PropertiesStatus_RS/Channel/Id Integer M ChannelId that can be found in Pull_GetAgents_RQ as AgentId
CM_Pull_PropertiesStatus_RS/Channel/Clusters C collection of Clusters
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster C Cluster model
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Active Boolean M Indicator if this cluster has at least one active Unit
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Id String M Unique identifier within one Channel scope -
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units C collection of Units
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit C Unit model carries info about apartment/s inside
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Id Integer M You may refer to this ID when activating/deactivating
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Active Boolean M Indicator if this Unit has at least one active Rate
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/ExternalUnitId String M ID of unit used in the OTA
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Properties C collection of apartments inside Unit, only for HRS system there will be more than one apartment
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Properties/Property C Simple model of apartment with Ids
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Properties/Property/Id Integer M PropertyId in Rentals United
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Properties/Property/PUID Integer M PropertyId in case property is from external system(PMS)
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates C collection of Rate that carries information about pricing
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate C simple Rate model
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/Id Integer C Rate ID generated in Rentals United - needed when calling modify actions in Channel Management API
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/Active M Boolean indicator if this Rate is being actively sold in Sales Channel
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/Markup M Integer Value 107 means that additional 7% is added when presenting price to Sales Channel
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/NrOfPeople M Integer NrOfPeople included when prices are calculated for this rate, if the value is 0 default price will be calculated according to StandardGuests set in Put_PushProperty_RQ
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/Name M String Name of rate
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Status C Info about Unit status being presented in Sales Channel
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Status/ContentStatus M String Status of static data like photos, description, additional fees being synchronized
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Status/ARIStatus O String Status of availability and pricing synchronization
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Status/URLtoProperty O String URL to property in Sales Channel, available only if Sales Channel provides it

Update markup on selected rate

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChannelManagement;

CM_Push_RateMarkup_RQ request = new CM_Push_RateMarkup_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ChannelId = 1,
    RateId = 1,
    Markup = 110
};

string xmlBody = XmlTools.SerializeObject<CM_Push_RateMarkup_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    CM_Push_RateMarkup_RS response = XmlTools.DeserializeObject<CM_Push_RateMarkup_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

By using this method you are able to modify markup on prices selected in Sales Channel. Every change of markup will result with notifing appropriate system about pricing change. Please make sure that you're updating a markup on active rate, otherwise Rentals United won't propagate new prices to the Sales Channel

Request

<CM_Push_RateMarkup_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ChannelId>553082</ChannelId>
    <RateId>3123</RateId>
    <Markup>107.00</Markup>
</CM_Push_RateMarkup_RQ>
XML Path Data Type Type Description
CM_Push_RateMarkup_RQ C Root element
CM_Push_RateMarkup_RQ/Authentication C, M Authentication details
CM_Push_RateMarkup_RQ/Authentication/UserName String(50) M Username
CM_Push_RateMarkup_RQ/Authentication/Password String(50) M Password
CM_Push_RateMarkup_RQ/ChannelId Integer M ChannelId that can be found in Pull_GetAgents_RQ as AgentId
CM_Push_RateMarkup_RQ/RateId Integer M RateId to be found when listing properties connected to a given Sales Channel
CM_Push_RateMarkup_RQ/Markup Decimal M It refers to an additional markup value added or subtracted from the base price and sent to the Sales Channel. For example, a value "107" increases the price presented to the Sales Channel by 7%. Setting the value lower than "100" results in a discount.

Response

<CM_Push_RateMarkup_RS>
  <Status ID="0">Success</Status>
  <ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
</CM_Push_RateMarkup_RS>
XML Path Data Type Type Description
CM_Push_RateMarkup_RS C Root Element
CM_Push_RateMarkup_RS/Status String(100) M See ListStatuses
CM_Push_RateMarkup_RS/Status/@ID Integer M See ListStatuses
CM_Push_RateMarkup_RS/ResponseID String(32) M Unique response ID

Stop or resume property listing

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChannelManagement;

CM_Push_UnitActiveStatus_RQ request = new CM_Push_UnitActiveStatus_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Action = "DEACTIVATE",
    ChannelId = 1,
    UnitId = 1,
    RateId = 1,
    CloseCalendar = true
};

string xmlBody = XmlTools.SerializeObject<CM_Push_UnitActiveStatus_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    CM_Push_UnitActiveStatus_RS response = XmlTools.DeserializeObject<CM_Push_UnitActiveStatus_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method lets you resume (activate) or stop (deactivate) listing of a single property in a single Sales Channel. Rentals United assumes that the cluster is active as long as it has at least one active rate. Deactivating the unit results in the deactivation of all its rates.

Consequences of activating the rate/unit:

Consequences of deactivating the rate/unit:

Request

In the first step you need to supply Rentals United platform with a command to execute. There are two types of Actions its ACTIVATE or DEACTIVATE. In case of deactivation you can supply additional parameter that will cause closing availability calendar in Sales Channel

<CM_Push_UnitActiveStatus_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Action>ACTIVATE</Action>
    <ChannelId>421327</ChannelId>
    <RateId>3123</RateId>
</CM_Push_UnitActiveStatus_RQ>
<CM_Push_UnitActiveStatus_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Action>DEACTIVATE</Action>
    <ChannelId>553082</ChannelId>
    <UnitId>123</UnitId>
    <CloseCalendar>true</CloseCalendar>
</CM_Push_UnitActiveStatus_RQ>
XML Path Data Type Type Description
CM_Push_UnitActiveStatus_RQ C Root Element
CM_Push_UnitActiveStatus_RQ/Authentication C, M Authentication details
CM_Push_UnitActiveStatus_RQ/Authentication/UserName String(50) M Username
CM_Push_UnitActiveStatus_RQ/Authentication/Password String(50) M Password
CM_Push_UnitActiveStatus_RQ/Action String M Determines the action to be taken. The value should be set to ACTIVATE or DEACTIVATE
CM_Push_UnitActiveStatus_RQ/ChannelId Integer M ChannelId to be found when listing properties connected to a given Sales Channel
CM_Push_UnitActiveStatus_RQ/UnitId Integer O UnitId to be found when listing properties connected to a given Sales Channel
CM_Push_UnitActiveStatus_RQ/RateId Integer O RateId to be found when listing properties connected to a given Sales Channel
CM_Push_UnitActiveStatus_RQ/CloseCalendar Boolean O When the unit or the last active rate within the unit is deactivated, the Rentals United may be requested to close the calendar in the OTA before the synchronization is stopped

Response

Below you can see example response of activation action.

<CM_Push_UnitActiveStatus_RS>
    <Status ID="0">Success</Status>
  <ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
</CM_Push_UnitActiveStatus_RS>
XML Path Data Type Type Description
CM_Push_UnitActiveStatus_RS C Root Element
CM_Push_UnitActiveStatus_RS/Status String(100) M See ListStatuses
CM_Push_UnitActiveStatus_RS/Status/@ID Integer M See ListStatuses
CM_Push_UnitActiveStatus_RS/ResponseID String(32) M Unique response ID

Order Minimum Content Quality check

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChannelManagement;

CM_LNM_OrderMinimumContentQualityCheck_RQ request = new CM_LNM_OrderMinimumContentQualityCheck_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    ChannelID = 1,
    PropertyID = 1
};

string xmlBody = XmlTools.SerializeObject<CM_LNM_OrderMinimumContentQualityCheck_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    CM_LNM_OrderMinimumContentQualityCheck_RS response = XmlTools.DeserializeObject<CM_LNM_OrderMinimumContentQualityCheck_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method allows you to enqueue a Minimum Content Quality check for given property and given channel.

In case you are not connected to the channel, a proper error response will be returned. You will also need to subscribe to PropertyMCQEligibilityCheck LNM

Request

<CM_LNM_OrderMinimumContentQualityCheck_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <ChannelID>421327</ChannelID>
    <PropertyID>3123</PropertyID>
</CM_LNM_OrderMinimumContentQualityCheck_RQ>
XML Path Data Type Type Description
CM_LNM_OrderMinimumContentQualityCheck_RQ C Root Element
CM_LNM_OrderMinimumContentQualityCheck_RQ/Authentication C, M Authentication details
CM_LNM_OrderMinimumContentQualityCheck_RQ/Authentication/UserName String(50) M Username
CM_LNM_OrderMinimumContentQualityCheck_RQ/Authentication/Password String(50) M Password
CM_LNM_OrderMinimumContentQualityCheck_RQ/ChannelID Integer M ChannelId to be found when listing sales channels
CM_LNM_OrderMinimumContentQualityCheck_RQ/PropertyID Integer M Your property ID

Response

<CM_LNM_OrderMinimumContentQualityCheck_RS>
    <Status ID="0">Success</Status>
  <ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
</CM_LNM_OrderMinimumContentQualityCheck_RS>
XML Path Data Type Type Description
CM_LNM_OrderMinimumContentQualityCheck_RS C Root Element
CM_LNM_OrderMinimumContentQualityCheck_RS/Status String(100) M See ListStatuses
CM_LNM_OrderMinimumContentQualityCheck_RS/Status/@ID Integer M See ListStatuses
CM_LNM_OrderMinimumContentQualityCheck_RS/ResponseID String(32) M Unique response ID

Redirect traffic to your website

Rentals United has possibility to drive traffic from listing sites to the website with your domain and your booking form. The main use case for this method is configuring a redirect from Google Vacation Rental Search (in such a case please use PageType "details"). In order to set up this redirect properly, your website should support HTTPS connection and URL parameters as follows:

After setting up the redirect by using this method, Rentals United generates a link similar to http://g.rentalsunited.com/gate.aspx?uid=56586&url=1&pid=263736. After entering the link, Rentals United API redirects the traffic to the URL that was supplied in the request.

Setting up redirect

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Gateway;

Push_PutPropertiesURLs_RQ request = new Push_PutPropertiesURLs_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyURL = new PropertyURL() 
    {
        PropertyID = 1,
        PageType = "details",
        URL = "https://example.url",
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutPropertiesURLs_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutPropertiesURLs_RS response = XmlTools.DeserializeObject<Push_PutPropertiesURLs_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

Adding, removing and updating redirects:

Request

Example: Insert request


<Push_PutPropertiesURLs_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyURL PropertyID="2637359">
        <PageType>details</PageType>
        <URL>http://yourwebsite.com/properties/nice-apartment/</URL>
        <URLWithParams value="http://yourwebsite.com/properties/nice-apartment/?df=$dfv$&amp;dt=$dtv$&amp;noa=$noav$&amp;nok=$nokv$&amp;sc=554691">
            <Param base="df" format="DD/MM/YYYY" placeholder="$dfv$">Date From</Param>
            <Param base="dt" format="DD/MM/YYYY" placeholder="$dtv$">Date To</Param>
            <Param base="noa" placeholder="$noav$">Number of adults</Param>
            <Param base="nok" placeholder="$nokv$">Number of children</Param>
        </URLWithParams>
    </PropertyURL>
    <PropertyURL PropertyID="2637359">
        <PageType>booking</PageType>
        <URL>http://yourwebsite.com/properties/pretty-studio/</URL>
        <URLWithParams value="http://yourwebsite.com/book/pretty-studio/?df=$dfv$&amp;dt=$dtv$&amp;nop=$nopv$&amp;sc=554691">
            <Param base="df" format="DD/MM/YYYY" placeholder="$dfv$">Date From</Param>
            <Param base="dt" format="DD/MM/YYYY" placeholder="$dtv$">Date To</Param>
            <Param base="nop" placeholder="$nopv$">Number of people</Param>
        </URLWithParams>
    </PropertyURL>
    <PropertyURL PropertyID="2637364">
        <PageType>enquiry</PageType>
        <URL>http://yourwebsite.com/properties/abc234/</URL>
        <URLWithParams value="http://yourwebsite.com/properties/abc234/?df=$dfv$&amp;dt=$dtv$&amp;nok=$nokv$&amp;sc=554691">
            <Param base="df" format="DD/MM/YYYY" placeholder="$dfv$">Date From</Param>
            <Param base="dt" format="DD/MM/YYYY" placeholder="$dtv$">Date To</Param>
            <Param base="nok" placeholder="$nokv$">Number of children</Param>
        </URLWithParams>
    </PropertyURL>
</Push_PutPropertiesURLs_RQ>

Example: Delete request


<Push_PutPropertiesURLs_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyURL PropertyID="2637359">
        <PageType>details</PageType>
        </URLWithParams>
    </PropertyURL>
    <PropertyURL PropertyID="2637359">
        <PageType>booking</PageType>
    </PropertyURL>
    <PropertyURL PropertyID="2637364">
        <PageType>enquiry</PageType>
    </PropertyURL>
</Push_PutPropertiesURLs_RQ>

XML Path Data Type Type Description
Push_PutPropertiesURLs_RQ C Root Element
Push_PutPropertiesURLs_RQ/Authentication C, M Authentication details
Push_PutPropertiesURLs_RQ/Authentication/UserName String(50) M Username
Push_PutPropertiesURLs_RQ/Authentication/Password String(50) M Password
Push_PutPropertiesURLs_RQ/PropertyURL@PropertyID Integer M Unique ID that identifies a property
Push_PutPropertiesURLs_RQ/PropertyURL/PageType String(20) M It defines the page type, possible values: details, booking, enquiry
Push_PutPropertiesURLs_RQ/PropertyURL/URL String(1000) M A property’s page URL that does not require any additional parameters
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams String(1000) C, O A property’s website URL that contains variables (placeholders). The variable values will be transferred from the Gateway
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams@value String(1000) M An URL that contains placeholder for values to be filled when a redirect is executed
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param String(50) M Descriptive name of a parameter
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@base String(20) M Gateway parameter name. The value of this parameter will be used in Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams@value. Accepted parameters: df (Date From), dt (Date To), noa (Number of adults), nok (Number of children), nop (Number of people)
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@format String(50) O A parameter for ToString method, Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@base value will be formatted before replacing of Microsoft .Net Framework ToString method described here. It is recommended to use the DD/MM/YYYY format
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@placeholder String(50) M This pattern will be replaced with Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@base value in Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams@value
Push_PutPropertiesURLs_RQ/PropertyURL/Description String(200) O A description of an URL

Response

Example response

<Push_PutPropertiesURLs_RS>
    <Status ID="0">Success</Status>
  <ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
</Push_PutPropertiesURLs_RS>
XML Path Data Type Type Description
Push_PutPropertiesURLs_RS C Root Element
Push_PutPropertiesURLs_RS/Status String(100) M See ListStatuses
Push_PutPropertiesURLs_RS/Status/@ID Integer M See ListStatuses
Push_PutPropertiesURLs_RS/ResponseID String(32) M Unique response ID.
Push_PutPropertiesURLs_RS/Notifs C, O A collection of informations about the upload errors, the ranges updated successfully are not included in this collection
Push_PutPropertiesURLs_RS/Notif Integer C, M A detailed information about the problematic ranges
Push_PutPropertiesURLs_RS/Notif@StatusID Integer M See ListStatuses
Push_PutPropertiesURLs_RS/Notif@PropertyID Integer M The ID of a property for which error was reported

View redirect setup

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Gateway;

Pull_GetPropertiesURLs_RQ request = new Pull_GetPropertiesURLs_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Properties = new List<int>() 
    {
      1,
      2
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_GetPropertiesURLs_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_GetPropertiesURLs_RS response = XmlTools.DeserializeObject<Pull_GetPropertiesURLs_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns properties' URLs to which the traffic from the listing sites should be redirected. The traffic is logged by the Rentals United platform and redirected to the property provider website URL automatically.

Request


<Pull_GetPropertiesURLs_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <Properties>
        <Property>2637359</Property>
        <Property>2637364</Property>
    </Properties>
</Pull_GetPropertiesURLs_RQ>

XML Path Data Type Type Description
Pull_GetPropertiesURLs_RQ/Authentication C, M Authentication details
Pull_GetPropertiesURLs_RQ/Authentication/UserName String(50) M Username
Pull_GetPropertiesURLs_RQ/Authentication/Password String(50) M Password
Pull_GetPropertiesURLs_RQ/Properties C, M Properties' list root
Pull_GetPropertiesURLs_RQ/Properties/Property Integer M Property ID
Pull_GetPropertiesURLs_RQ/PageType String O Filters result by page type. Accepted values: details, booking, enquiry. Returns all types if not specified.

Response


<Pull_GetPropertiesURLs_RS>
    <Status ID="0">Success</Status>
    <ResponseID>cb983a0e150b4700aba3c9ff74e19643</ResponseID>
    <Properties>
        <Property PropertyID="2637359">
            <PropertyURL>
                <GatewayPropertyURL>
                    <PageType>details</PageType>
                    <URL>http://g.rentalsunited.com/gate.aspx?uid=56586&amp;url=1&amp;pid=263736</URL>
                    <Params>
                        <Param format="DD/MM/YYYY">df</Param>
                        <Param format="DD/MM/YYYY">dt</Param>
                        <Param>noa</Param>
                        <Param>nok</Param>
                    </Params>
                </GatewayPropertyURL>
                <GatewayPropertyURL>
                    <PageType>booking</PageType>
                    <URL>http://g.rentalsunited.com/gate.aspx?uid=56586&amp;url=2&amp;pid=263736</URL>
                    <Params>
                        <Param format="DD/MM/YYYY">df</Param>
                        <Param format="DD/MM/YYYY">dt</Param>
                        <Param>nop</Param>
                    </Params>
                </GatewayPropertyURL>  
            </PropertyURL>
        </Property>
        <Property PropertyID="2637364">
            <PropertyURL>
                <GatewayPropertyURL>
                    <PageType>enquiry</PageType>
                    <URL>http://g.rentalsunited.com/gate.aspx?uid=56586&amp;url=3&amp;pid=263736</URL>
                    <Params>
                        <Param format="DD/MM/YYYY">df</Param>
                        <Param format="DD/MM/YYYY">dt</Param>
                        <Param>nok</Param>
                    </Params>
                </GatewayPropertyURL>           
            </PropertyURL>
        </Property>
    </Properties>
</Pull_GetPropertiesURLs_RS>

XML Path Data Type Type Description
Pull_GetPropertiesURLs_RS C Root Element
Pull_GetPropertiesURLs_RS/Status String(100) M See ListStatuses
Pull_GetPropertiesURLs_RS/Status/@ID Integer M See ListStatuses
Pull_GetPropertiesURLs_RS/ResponseID String(32) M Unique response ID
Pull_GetPropertiesURLs_RS/Properties C, M A collection of properties
Pull_GetPropertiesURLs_RS/Properties/Property C, M Single property
Pull_GetPropertiesURLs_RS/Properties/Property@PropertyID Integer M Property ID
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL C Container for property URL information
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL C Container for URL information for single page type
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL/PageType String M Page type. Returned values are: details, booking, enquiry
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL/URL String M A property’s page URL that does not require any additional parameters
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL/Params C, M A Collection of parameters
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL/Params/Param O Parameter that must be appended to the URL
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURLParams/Param@format String O Defines format of a date, in which the parameter must be entered

Property Reviews

This section describes the methods that allow you to retrieve information about the property reviews.

List reviews for property

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyReview;

Pull_ListPropertyReviews_RQ request = new Pull_ListPropertyReviews_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    PropertyID = 1
};

string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyReviews_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_ListPropertyReviews_RS response = XmlTools.DeserializeObject<Pull_ListPropertyReviews_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method returns all reviews for a selected property.

Request

XML Request

<Pull_ListPropertyReviews_RQ> 
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <PropertyID>123</PropertyID>
</Pull_ListPropertyReviews_RQ>
XML Path Data Type Type Description
Pull_ListPropertyReviews_RQ C Root element
Pull_ListPropertyReviews_RQ/Authentication C, M Authentication details
Pull_ListPropertyReviews_RQ/Authentication/UserName String(50) M Username
Pull_ListPropertyReviews_RQ/Authentication/Password String(50) M Password
Pull_ListPropertyReviews_RQ/PropertyID Integer M The code that uniquely identifies a property

Response

XML Rsponse

<Pull_ListPropertyReviews_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID> 
    <Reviews PropertyID="123">
        <Review ID="10001"> 
            <FirstName>John</FirstName> 
            <LastName>Smith</LastName> 
            <DisplayName>John S</DisplayName>
            <Rating>5</Rating> 
            <ArrivalDate>2015-04-02</ArrivalDate> 
            <Submitted>2015-05-01</Submitted>
            <Texts>
                <Text LanguageID="1">Very nice flat</Text>
                <Text LanguageID="3">Bardzo ładne mieszkanie</Text>
            </Texts> 
        </Review> 
    </Reviews>
</Pull_ListPropertyReviews_RS>
XML Path Data Type Type Description
Pull_ListPropertyReviews_RS C Root element
Pull_ListPropertyReviews_RS/Status String M See ListStatuses
Pull_ListPropertyReviews_RS/Status@ID Integer M See ListStatuses
Pull_ListPropertyReviews_RS/Reviews C, M A collection of reviews
Pull_ListPropertyReviews_RS/Reviews@PropertyID Integer M The code that uniquely identifies a property
Pull_ListPropertyReviews_RS/Reviews/Review C, M Information about review
Pull_ListPropertyReviews_RS/Reviews/Review@ID Integer M The code that uniquely identifies a review
Pull_ListPropertyReviews_RS/Reviews/Review/FirstName String(100) M First name of the user that made the review
Pull_ListPropertyReviews_RS/Reviews/Review/LastName String(100) M Last name of the user that made the review
Pull_ListPropertyReviews_RS/Reviews/Review/DisplayName String(100) M Display name of the user that made the review
Pull_ListPropertyReviews_RS/Reviews/Review/Email String(100) M Email of the user that made the review
Pull_ListPropertyReviews_RS/Reviews/Review/Rating Integer M Rating of the apartment made by the user. Values may range between 0 and 5
Pull_ListPropertyReviews_RS/Reviews/Review/ArrivalDate String(10) M Date on which the user arrived (YYYY-MM-DD format)
Pull_ListPropertyReviews_RS/Reviews/Review/Submitted String(10) M Date on which the review was submitted (YYYY-MM-DD format)
Pull_ListPropertyReviews_RS/Reviews/Review/Texts C, M Collection of review translations
Pull_ListPropertyReviews_RS/Reviews/Review/Texts/Text String M Review text
Pull_ListPropertyReviews_RS/Reviews/Review/Texts/Text@LanguageID Integer M Code that identifies the language of review, see ListLanguages

Put property review

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyReview;

Push_PutPropertyReviews_RQ request = new Push_PutPropertyReviews_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    Reviews = new List<Review>() 
    {
        new Review() 
        {
            FirstName = "John",
            LastName = "Smith",
            DisplayName = "John S",
            Email = "JohnS@domain.com",
            Rating = 5,
            ArrivalDate = "2015-04-02",
            Submitted = "2015-05-01",
            Texts = new List<Text>()
            {
                new Text() 
                {
                    LanguageID = 1
                    Text = "Very nice flat"
                }
            }
        }
    }
};

string xmlBody = XmlTools.SerializeObject<Push_PutPropertyReviews_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_PutPropertyReviews_RS response = XmlTools.DeserializeObject<Push_PutPropertyReviews_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method allows you to insert user-made reviews for an apartment. Only apartment owners can insert reviews. Only one review can be uploaded per request.

Request

XML Request

<Push_PutPropertyReviews_RQ> 
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password> 
    </Authentication>
    <Reviews PropertyID="123">
        <Review> 
            <FirstName>John</FirstName> 
            <LastName>Smith</LastName> 
            <DisplayName>John S</DisplayName> 
            <Email>JohnS@domain.com</Email> 
            <Rating>5</Rating> 
            <ArrivalDate>2015-04-02</ArrivalDate> 
            <Submitted>2015-05-01</Submitted> 
            <Texts>
                <Text LanguageID="1">Very nice flat</Text>
                <Text LanguageID="3">Bardzo ładne mieszkanie</Text> 
            </Texts>
        </Review> 
    </Reviews>
</Push_PutPropertyReviews_RQ>
XML Path Data Type Type Description
Push_PutPropertyReviews_RQ C Root element
Push_PutPropertyReviews_RQ/Authentication C, M Authentication details
Push_PutPropertyReviews_RQ/Authentication/UserName String(50) M Username
Push_PutPropertyReviews_RQ/Authentication/Password String(50) M Password
Push_PutPropertyReviews_RQ/Reviews C Collection of reviews
Push_PutPropertyReviews_RQ/Reviews@PropertyID Integer M The code that uniquely identifies a property in the RU system
Push_PutPropertyReviews_RQ/Reviews/Review C, M Information about a review
Push_PutPropertyReviews_RQ/Reviews/Review/FirstName String(100) M First name of the user that made the review
Push_PutPropertyReviews_RQ/Reviews/Review/LastName String(100) M Last name of the user that made the review
Push_PutPropertyReviews_RQ/Reviews/Review/DisplayName String(100) M Display name of the user that made the review
Push_PutPropertyReviews_RQ/Reviews/Review/Email String(100) M Email of the user who created the review
Push_PutPropertyReviews_RQ/Reviews/Review/Rating Integer M Rating value for the review. Values may range between 0 and 5
Push_PutPropertyReviews_RQ/Reviews/Review/ArrivalDate String(10) M Date on which user arrived (YYYY-MM-DD format)
Push_PutPropertyReviews_RQ/Reviews/Review/Submitted String(10) M Date on which the review was created. It must be later than ArrivalDate (YYYY-MM-DD format)
Push_PutPropertyReviews_RQ/Reviews/Review/Texts C, M Collection of translated texts
Push_PutPropertyReviews_RQ/Reviews/Review/Texts/Text String M Review text
Push_PutPropertyReviews_RQ/Reviews/Review/Texts/Text@LanguageID Integer M Code that identify the language of description, see ListLanguages

Response

XML Response

<Push_PutPropertyReviews_RS>
    <Status ID="0">Success</Status>
    <ResponseID ID="1">Success</ResponseID>
    <ReviewID>123</ReviewID>
</Push_PutPropertyReviews_RS>
XML Path Data Type Type Description
Push_PutPropertyReviews_RS C Root element
Push_PutPropertyReviews_RS/Status String(100) M See ListStatuses
Push_PutPropertyReviews_RS/Status@ID Integer M See ListStatuses
Push_PutPropertyReviews_RS/ReviewID Integer M Unique identifier of the review

ruEX Promotions

This section describes the methods that allow you to manage ruEX Promotions.

List licenses

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;

Pull_RuEXPromotions_ListLicenses_RQ request = new Pull_RuEXPromotions_ListLicenses_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    }
};

string xmlBody = XmlTools.SerializeObject<Pull_RuEXPromotions_ListLicenses_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_RuEXPromotions_ListLicenses_RS response = XmlTools.DeserializeObject<Pull_RuEXPromotions_ListLicenses_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

The method returns a list of licensed users.

Request

XML Request

<Pull_RuEXPromotions_ListLicenses_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
</Pull_RuEXPromotions_ListLicenses_RQ>
XML Path Data Type Type Description
Pull_RuEXPromotions_ListLicenses_RQ C Root element
Pull_RuEXPromotions_ListLicenses_RQ/Authentication C, M Authentication details
Pull_RuEXPromotions_ListLicenses_RQ/Authentication/UserName String(50) M Username
Pull_RuEXPromotions_ListLicenses_RQ/Authentication/Password String(50) M Password

Response

XML Rsponse

<Pull_RuEXPromotions_ListLicenses_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <UserNames>
        <UserName>username@xyz.com</UserName>
        <UserName>username1@xyz.com</UserName>
        <UserName>username@uvw.com</UserName>
    </UserNames>
</Pull_RuEXPromotions_ListLicenses_RS>
XML Path Data Type Type Description
Pull_RuEXPromotions_ListLicenses_RS C Root element
Pull_RuEXPromotions_ListLicenses_RS/Status String M See ListStatuses
Pull_RuEXPromotions_ListLicenses_RS/Status@ID Integer M See ListStatuses
Pull_RuEXPromotions_ListLicenses_RS/ResponseID String(32) M Unique response ID
Pull_RuEXPromotions_ListLicenses_RS/UserNames C, M A collection of licensed user’s usernames
Pull_RuEXPromotions_ListLicenses_RS/UserNames/UserName String(50) M Licensed user’s username

Put license

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;

Push_RuEXPromotions_PutLicense_RQ request = new Push_RuEXPromotions_PutLicense_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    UserName = "user"
};

string xmlBody = XmlTools.SerializeObject<Push_RuEXPromotions_PutLicense_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_RuEXPromotions_PutLicense_RS response = XmlTools.DeserializeObject<Push_RuEXPromotions_PutLicense_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method adds a licensed user.

Request

XML Request

<Push_RuEXPromotions_PutLicense_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <UserName>username@xyz.com</UserName>
</Push_RuEXPromotions_PutLicense_RQ>
XML Path Data Type Type Description
Push_RuEXPromotions_PutLicense_RQ C Root element
Push_RuEXPromotions_PutLicense_RQ/Authentication C, M Authentication details
Push_RuEXPromotions_PutLicense_RQ/Authentication/UserName String(50) M Username
Push_RuEXPromotions_PutLicense_RQ/Authentication/Password String(50) M Password
Push_RuEXPromotions_PutLicense_RQ/UserName String(50) M Licensed username

Response

XML Rsponse

<Push_RuEXPromotions_PutLicense_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_RuEXPromotions_PutLicense_RS>
XML Path Data Type Type Description
Push_RuEXPromotions_PutLicense_RS C Root element
Push_RuEXPromotions_PutLicense_RS/Status String M See ListStatuses
Push_RuEXPromotions_PutLicense_RS/Status@ID Integer M See ListStatuses
Push_RuEXPromotions_PutLicense_RS/ResponseID String(32) M Unique response ID

Remove license

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;

Push_RuEXPromotions_RemoveLicense_RQ request = new Push_RuEXPromotions_RemoveLicense_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    UserName = "user"
};

string xmlBody = XmlTools.SerializeObject<Push_RuEXPromotions_RemoveLicense_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_RuEXPromotions_RemoveLicense_RS response = XmlTools.DeserializeObject<Push_RuEXPromotions_RemoveLicense_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method removes a licensed user.

Request

XML Request

<Push_RuEXPromotions_RemoveLicense_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <UserName>username@xyz.com</UserName>
</Push_RuEXPromotions_RemoveLicense_RQ>
XML Path Data Type Type Description
Push_RuEXPromotions_RemoveLicense_RQ C Root element
Push_RuEXPromotions_RemoveLicense_RQ/Authentication C, M Authentication details
Push_RuEXPromotions_RemoveLicense_RQ/Authentication/UserName String(50) M Username
Push_RuEXPromotions_RemoveLicense_RQ/Authentication/Password String(50) M Password
Push_RuEXPromotions_RemoveLicense_RQ/UserName String(50) M Licensed username

Response

XML Rsponse

<Push_RuEXPromotions_RemoveLicense_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_RuEXPromotions_RemoveLicense_RS>
XML Path Data Type Type Description
Push_RuEXPromotions_RemoveLicense_RS C Root element
Push_RuEXPromotions_RemoveLicense_RS/Status String M See ListStatuses
Push_RuEXPromotions_RemoveLicense_RS/Status@ID Integer M See ListStatuses
Push_RuEXPromotions_RemoveLicense_RS/ResponseID String(32) M Unique response ID

List properties

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;

Pull_RuEXPromotions_ListProperties_RQ request = new Pull_RuEXPromotions_ListProperties_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    UserName = "user"
};

string xmlBody = XmlTools.SerializeObject<Pull_RuEXPromotions_ListProperties_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Pull_RuEXPromotions_ListProperties_RS response = XmlTools.DeserializeObject<Pull_RuEXPromotions_ListProperties_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method lists properties of a licensed user.

Request

XML Request

<Pull_RuEXPromotions_ListProperties_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <UserName>username@xyz.com</UserName>
</Pull_RuEXPromotions_ListProperties_RQ>
XML Path Data Type Type Description
Pull_RuEXPromotions_ListProperties_RQ C Root element
Pull_RuEXPromotions_ListProperties_RQ/Authentication C, M Authentication details
Pull_RuEXPromotions_ListProperties_RQ/Authentication/UserName String(50) M Username
Pull_RuEXPromotions_ListProperties_RQ/Authentication/Password String(50) M Password
Pull_RuEXPromotions_ListProperties_RQ/UserName String(50) M Licensed username

Response

XML Rsponse

<Pull_RuEXPromotions_ListProperties_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <PropertyIDs>
        <PropertyID>123</PropertyID>
        <PropertyID>1234</PropertyID>
        <PropertyID>3456</PropertyID>
    </PropertyIDs>
</Pull_RuEXPromotions_ListProperties_RS>
XML Path Data Type Type Description
Pull_RuEXPromotions_ListProperties_RS C Root element
Pull_RuEXPromotions_ListProperties_RS/Status String M See ListStatuses
Pull_RuEXPromotions_ListProperties_RS/Status@ID Integer M See ListStatuses
Pull_RuEXPromotions_ListProperties_RS/ResponseID String(32) M Unique response ID
Pull_RuEXPromotions_ListProperties_RS/PropertyIDs C, M A collection of external property IDs of the licensed user
Pull_RuEXPromotions_ListProperties_RS/PropertyIDs/PropertyID Integer M External property ID

Put properties

using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;

Push_RuEXPromotions_PutProperties_RQ request = new Push_RuEXPromotions_PutProperties_RQ()
{
    Authentication = new Authentication()
    {
        UserName = "[UserName]",
        Password = "[Password]"
    },
    UserName = "user",
    PropertyIDs = new List<int>()
    {
        1, 
        2
    }
};

string xmlBody = XmlTools.SerializeObject<Push_RuEXPromotions_PutProperties_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;

try
{
    Push_RuEXPromotions_PutProperties_RS response = XmlTools.DeserializeObject<Push_RuEXPromotions_PutProperties_RS>(xmlResponse);
    // process response object
}
catch
{
    ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
    // process error response object
}

This method puts properties of a licensed user. Selected properties will be eligible to use the ruEX promotions.

Note that whenever you provide a list of IDs, the new IDs will replace the currently stored ones. If you do not provide any IDs, all properties will be removed from the child account.

Request

XML Request

<Push_RuEXPromotions_PutProperties_RQ>
    <Authentication>
        <UserName>[UserName]</UserName>
        <Password>[Password]</Password>
    </Authentication>
    <UserName>username@xyz.com</UserName>
    <PropertyIDs>
        <PropertyID>123</PropertyID>
        <PropertyID>1234</PropertyID>
        <PropertyID>3456</PropertyID>
    </PropertyIDs>
</Push_RuEXPromotions_PutProperties_RQ>
XML Path Data Type Type Description
Push_RuEXPromotions_PutProperties_RQ C Root element
Push_RuEXPromotions_PutProperties_RQ/Authentication C, M Authentication details
Push_RuEXPromotions_PutProperties_RQ/Authentication/UserName String(50) M Username
Push_RuEXPromotions_PutProperties_RQ/Authentication/Password String(50) M Password
Push_RuEXPromotions_PutProperties_RQ/UserName String(50) M Licensed username
Push_RuEXPromotions_PutProperties_RQ/PropertyIDs C, M A collection of external property IDs of the licensed user
Push_RuEXPromotions_PutProperties_RQ/PropertyIDs/PropertyID Integer M External property ID

Response

XML Rsponse

<Push_RuEXPromotions_PutProperties_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_RuEXPromotions_PutProperties_RS>
XML Path Data Type Type Description
Push_RuEXPromotions_PutProperties_RS C Root element
Push_RuEXPromotions_PutProperties_RS/Status String M See ListStatuses
Push_RuEXPromotions_PutProperties_RS/Status@ID Integer M See ListStatuses
Push_RuEXPromotions_PutProperties_RS/ResponseID String(32) M Unique response ID

Certification

This section describes the integration certification process. Download a Certification Form below, fill it with information and send it over to apisupport@rentalsunited.com. We will review the form and schedule a certification session with you.

If your integration extends your PMS with Channel Management functionality, download the Certification Form here.

If your integration pulls Vacation Rentals product, download the Certification Form here.

If integration of your VR services enchances property manager workflow, download the Certification Form here.

Changelog

2024-04-12

Documentation update

We have added possible values for Spanish fields.

We have updated possible values for following fields:

We have added new field for USA licence requirements

Affected methods:

2024-04-10

Added new licence type and exemption reason

Added new licence type TouristicAccommodation. Added new exemption reason CyprusTouristicAccommodation.

Affected methods:

2024-04-09

Vrbo Guest Reviews available via API

Rentals United announces the release of Guest Reviews for Vrbo. With this solution, you can start receiving the reviews and write ratings directly via API.

The new methods for our clients who implemented the Guest Communication API are the following:

Detailed documentation on how Guest Reviews for Vrbo work in Rentals United REST API can be found here.

2024-04-05

Documentation update

We have changed the required format of the data for the LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerCitizenship field from integer to string.

Affected methods:

2024-03-22

Licence information updates

New licence fields have been added for Los Angeles.

New licence types have been added. New values are available for the LicenceInfo/LicenceType field:

Affected methods:

2024-03-19

Licence information updates

New licence field added. Now you can provide LicenceInfo/UKLicenceInfo/EnergyRating.

We have deprecated the LicenceInfo/ScottishLicenceInfo/ScotlandEnergyRating field. We have replaced the /LicenceInfo/ScottishLicenceInfo/ScotlandEnergyRating with the LicenceInfo/UKLicenceInfo/EnergyRating. ScotlandEnergyRating field will be removed in the future. For now, the changes are backward compatible, however it is recommended to start using EnergyRating to stay up-to-date with the integration. Information about removal will be communicated in a separate announcement.

The above changes have been introduced in the following methods:

2024-03-11

Licence information updates

New exemption reasons have been added. New values are available for the LicenceInfo/ExemptionReason field:

New identification type field has been added. A new value is now available for the LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationType container:

New licence fields added. Now you can provide the following licence types

We have deprecated the LicenceInfo/OwnerInfos/OwnerLicenceInfo/NonSpanishIdentificationNumber field. We have replaced the LicenceInfo/OwnerInfos/OwnerLicenceInfo/NonSpanishIdentificationNumber with the LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationNumber. NonSpanishIdentificationNumber field will be removed in the future. For now, the changes are backward compatible, however it is recommended to start using IdentificationNumber to stay up-to-date with the integration. Information about removal will be communicated in a separate announcement

The above changes have been introduced to the following methods:

2024-03-07

Added new licence types

Added new licence types Bed and breakfast and Hotel.

Affected methods:

2024-03-05

Added new licence types

Added new licence types for Canada - Principal residence establishment, Youth tourist accommodation establishment and General tourist accommodation establishment.

Affected methods:

2024-02-20

Added two new pieces of information to Push_PutPrices_RQ method:

2024-02-13

New Method - Mark request as expired

We have created a new method - Push_MarkRequestAsExpired_RQ.

This method allows the sales channels to expire requests.

2024-01-25

New methods to retrieve and submit reviews in Guest Communication API

We refreshed our Guest Reviews flow for Airbnb and Booking.com, making it more intuitive and transparent as well as added new methods to retrieve and submit reviews and replies. You will find them in a newly added Reviews section of our Guest Communciation API.

The new methods for our clients who implemented the Guest Communication API are the following:

We also added new methods to send and receive reviews and replies by the partners (services) on behalf of the users connected to these services. The new methods for these services are the following:

The above methods are recommended to use for all new clients and services implementing the Guest Review flow. Clients can check the recommended flow here - Use & Manage via API.

If you implemented the Guest Review flow before 2024-01-25, note that you are using an outdated flow, which will be deprecated by 2024-04-30.

2024-01-25

New guest review rating tags for Airbnb available in Guest Communication API - host reviews

Airbnb provides a possibility for the guest and host to select new ratings when reviewing the stay. These new ratings are provided to us by Airbnb.

We extended the support for review rating tags for Airbnb. Now you can also push these additional ratings while providing the host review via the Guest Communication API methods. You can provide the new ratings in the "CategoryRatingsExtended" collection in the guest review message type (you can differentiate it by "Mode":"Review" parameter).

Affected methods:

Additionally, you can obtain all tags that are in use by using the GET Review category tags method.

2024-01-15

New guest review rating tags for Airbnb available in Guest Communication API

Airbnb provides a possibility for the guest and host to select new ratings when reviewing the stay. These new ratings are provided to us by Airbnb.

Now you can have access to these additional ratings provided by the guest and read them while obtaining the review via the Guest Communication API methods. You can find the new ratings in the "CategoryRatingsExtended" collection in the guest review message type (you can differentiate it by "Mode":"Review" parameter).

Affected methods:

Soon it will be possible to provide these ratings by hosts when reviewing the stay. Stay tuned.

2024-01-11

Documentation update

C# snippets were added to methods missing them.

Invalid response XML paths were updated for CM_Pull_PropertiesStatus_RQ.

Affected methods:

2024-01-03

Documentation update

Description of CancellationPolicies element was expanded to better explain how it works.

Changed from "A collection of cancellation policies" to "A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable".

Example:

<CancellationPolicies>
    <CancellationPolicy ID="0" ValidFrom="1" ValidTo="14">50.00</CancellationPolicy>
</CancellationPolicies>

Explanation: Ranges that are not specified by any cancellation policy are fully refundable. It means if the guest cancels out of the specified range (e.g. 15 or 0 days before the arrival), then the reservation price will be fully refunded.

We recommend to specify all the ranges, including “0” days before arrival:

<CancellationPolicies>
    <CancellationPolicy ID="0" ValidFrom="0" ValidTo="1">100.00</CancellationPolicy>
    <CancellationPolicy ID="0" ValidFrom="2" ValidTo="14">50.00</CancellationPolicy>
</CancellationPolicies>

Explanation: It means if the guest cancels on the arrival day, the cancellation fee is 100%.

Affected methods:

2023-11-20

Deprecating the Push_PutLead_RQ method

We are deprecating the Push_PutLead_RQ method and removing it from the Rentals United API documentation.

The new partners and clients will no longer be accepted to use it. Those who want to operate on requests should implement the request-to-book flow. For more information on the request-to-book flow, check our documentation:

Existing clients can continue using the Push_PutLead_RQ method as before, however it will now work just like Push_PutUnconfirmedReservation_RQ

At the same time, the Pull_GetLeads_RQ can be still used to retrieve existing leads, for example Guest Communication threads.

We are also refreshing the definition of a lead.

A lead is an indication of a conversation initiated by the guest in the channel. It is not a booking and it does not block the property's availability. It cannot be acted upon (confirmed or rejected). A lead must not be used interchangeably with a request to book. For more definitions, see here

2023-10-04

Documentation update

Full Stay Pricing FAQ incorrectly stated that the maximum stay length for FSP was 30. This information was corrected to 35.

2023-10-03

Description for CancellationPolicy element have been clarified.

List of affected descriptions:

2023-09-29

New property types

Two new property types have been added - All suite and All-Inclusive resort.

IDs of these types can now be used in <ObjectTypeID> elements.

You can check all available property types with method Pull_ListOTAPropTypes_RQ

2023-09-22

Action required: Last call on CleaningPrice deprecation

The CleaningPrice field deprecation will be postponed. The CleaningPrice field will be ultimately deprecated on October 31, 2023. Follow the step-by-step instructions available here.

Note that this change is not backward compatible. If you do not take the necessary steps and ignore it, it may result in price discrepancies.

2023-09-12

Booking.com requests

Added information of accepted rejection reasons for Booking.com

2023-09-04

Documentation update

Recommendations on the number and frequency of the API requests were provided in the API documentation. Additionally, we provided a list of errors that can be fixed by retrying to submit the same request. Details can be found in the API limits section.

2023-08-23

New header - RLNM notifications

We have added a new header ru-rlnm-method to Reservation Live Notification Mechanism

This header helps differentiate between RLNM methods. For now, the possible values are four RLNM names:

The header will be added to all RLNM notifications.

Documentation update

The documentation was updated with the information that the maximum accepted value in all price fields is 214748.36, regardless of the currency you are using. If you try to put a higher value in any currency, it will not be accepted by Rentals United.

If you experience this, you can:

2023-08-16

New method - Resend RLNM Message

We have created a new method - Push_SendRLNMMessage_RQ.

This method allows the user to resend an RLNM notification to the webhook address endpoint configured for their account.

The notification will be sent to the webhook address endpoint configured for your account in LNM_PutHandlerUrl_RQ.

2023-07-25

Updates to request-to-book processing

We are introducing important updates to the Rentals United API in order to better support the request-to-book flow.

We are adding a new optional field <Statuses> for the following methods:

A new reservation status - Request (ReservationStatusID = 4) is now returned in Pull_ListReservationStatuses_RS.

We are adding a new method Push_ConfirmReservation_RQ allowing you to confirm requests (unconfirmed reservations).

We are adding a new method Push_RejectRequest_RQ allowing you to reject requests from sales channels.

The Pull_GetReservationByID_RQ method will also return confirmable requests (ReservationStatusID = 4).

A new behaviour of the Push_CancelReservation_RQ method. For requests and leads, Push_CancelReservation_RQ will work like Push_RejectRequest_RQ in order to maintain backwards compatibility. However, we recommend that you use:

We are adding a new notification type: LNM_PutUnconfirmedReservation_RQ in Reservation Live Notification Mechanism.

Sales channels may now create booking requests via dedicated Push_PutUnconfirmedReservation_RQ method. For ease of development, its syntax is very similar to the Push_PutConfirmedReservationMulti_RQ method.

Hosts will be able to action the requests by accepting or rejecting them. Sales channels may then use the Pull_GetOwnReservations_RQ method to retrieve reservation modifications.

2023-07-24

New LNMs added for VRS

We have created two new LNM types - ReservationCreated and ReservationModified. Both LNMs have the same structure and data as LNM_PutConfirmedReservation_RQ.

For the ReservationCreated LNM - the credit card details will be available only if the receiver of this LNM is PCI compliant.

For the ReservationModified LNM - the credit card details will not be yet displayed. This will be available soon.

You can subscribe to the ReservationCreated and ReservationModified LNMs only if you are a VRS. Use the Pull_ListLiveNotificationMechanismChangeTypes_RQ method to view the list of the LNMs available for you.

You can subscribe to a particular type of LNM using the Push_PutLiveNotificationMechanismSubscriptions_RQ method.

2023-06-28

Documentation update

Additional information about ChargeProfile and AdditionalFee usage have been added to Push_PutProperty_RQ and Pull_ListSpecProp_RS. Use just one collection when creating a property - either ChargeProfile or AdditionalFees. Whenever you use ChargeProfile, our system will automatically calculate AdditionalFees for your property and the other way round.

CleaningPrice important update

We are starting the process of CleaningPrice field deprecation. On 28-06-2023, CleaningPrice was hidden from Push_PutProperty_RQ and crossed out from Pull_ListSpecProp_RS. You can still use CleaningPrice during the transition period.

As the next step, CleaningPrice will be completely removed from Rentals United API on 31-10-2023. This means you will not be able to read from or write in this field. This change will not be backward compatible, so make sure to follow the instruction below to avoid synchronisation errors.

Steps for partners creating and updating properties in Rentals United:

a) Use one of the following methods to provide proper cleaning cost information:

FeeTaxType 41 <AdditionalFeeTypeInfo ID="41">Cleaning fee</AdditionalFeeTypeInfo>

<Property>
(...)
<CleaningPrice>0</CleaningPrice>
<AdditionalFees>
<AdditionalFee FeeTaxType="41" DiscriminatorID="1" Order="1" Kind="2">
<Value>20</Value>
</AdditionalFee>
(...)
</AdditionalFees>
</Property>

<Property>
(...)
<CleaningPrice>0</CleaningPrice>
<ChargeProfiles>
<ChargeProfile ID="0">
<ApplicableAdditionalFee DiscriminatorID="1" Name="Cleaning Fee" Optional="false" Refundable="false" FeeTaxType="41" CollectTime="1">
<Value>25.0000</Value>
<ApplicableTo>
<FeeNames />
<Rent>false</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
(...)
</ChargeProfile>
</ChargeProfiles>
</Property>

b) Remove the CleaningPrice information from your property. Use the Push_PutProperty_RQ method and set CleaningPrice to 0. This way you will prevent double cleaning fee issues.

c) On October 31, 2023, Push_PutProperty_RQ/Property/CleaningPrice will be fully deprecated and you will receive an error response when using it.

Steps for partners retrieving property details from Rentals United:

a) Use one of the following methods to retrieve cleaning cost information:

FeeTaxType 41 <AdditionalFeeTypeInfo ID="41">Cleaning fee</AdditionalFeeTypeInfo>

<Property>
(...)
<CleaningPrice>0</CleaningPrice>
<AdditionalFees>
<AdditionalFee FeeTaxType="41" DiscriminatorID="1" Order="1" Kind="2">
<Value>20</Value>
</AdditionalFee>
(...)
</AdditionalFees>
</Property>

<Property>
(...)
<CleaningPrice>0</CleaningPrice>
<ChargeProfiles>
<ChargeProfile ID="0">
<ApplicableAdditionalFee DiscriminatorID="1" Name="Cleaning Fee" Optional="false" Refundable="false" FeeTaxType="41" CollectTime="1">
<Value>25.0000</Value>
<ApplicableTo>
<FeeNames />
<Rent>false</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
(...)
</ChargeProfile>
</ChargeProfiles>
</Property>

b) The Pull_ListSpecProp_RS/Property/CleaningPrice has been deprecated and should not be used to read the cost of the cleaning. It will remain available for reading only until October 31, 2023.

c) On October 31, 2023, the Pull_ListSpecProp_RS/Property/CleaningPrice will be completely removed from the Rentals United API.

2023-06-23

Include channel price breakdown node in RLNM for channels inserting bookings into Rentals United

The ChannelBreakdown node is available in the confirmed reservation RLNM. As long as the channel shares the detailed reservation price breakdown with us, we will include it in the live notification message triggered immediately after the booking is created.

For now, channels which provide the reservation price breakdown include: Agoda, Airbnb, Booking.com, Expedia, Hostelworld, Homes & Villas by Marriott International, Ostrovok, TripAdvisor and VRBO.

2023-06-01

API-connected partners can now have more visibility over the cancellation policy of the booked stay. The cancellation policy description as well as all applicable cancellation policies are available now for each reservation.

New fields' descriptions with examples have been added to the following methods:

2023-05-25

Documentation update

Missing paths added in the following methods:

Response example updated in the following method:

2023-05-23

Characters limit used in Description/Headline changed

The number of characters for Description/Headline has been changed to 80. See the affected methods:

2023-05-18

New methods have been added to retrieve all possible values for the company information (NumberOfEmployees, NumberOfProperties, YearsInBusiness).

Additional company information available via API

Additional fields have been added to the CompanyInfo container in the method Push_FillCompanyDetails_RQ. Use these fields to provide more accurate information about your company. New fields are:

A new container LegalRepresentativeInfo has been added to the method Push_FillCompanyDetails_RQ and includes the following fields:

2023-05-16

Booking.com Messaging API

Rentals United released direct messaging integration with Booking.com. Property managers have access to all the guest messages in the Rentals United Guest Communication API without any additional set-up.

For API clients, the method POST /api/messaging/threads/{id}/messages and GET /api/messaging/threads/{id}/messages (as well as some other methods) now includes "CommunicationChannel": "BookingCom". Use this communication channel to send messages to your guests and retrieve messages from your guests via Booking.com. Read more here.

2023-04-06

Licence information for Hungary, Scotland, Greece, USA.

New licence info fields added. New Exemption reasons added. SanFranciscoOver30NightsOnly exemption reason renamed to LongTermBookingsOnly. The following methods were updated:

2023-03-14

Guest Communication supports attachments

Guest Communication upgraded with the possibility to send and receive attachments. Attachments should help property managers to grow the relationship with guests by giving the ability to send guests information needed for their stay like instructions, documents to sign or images of items guests accidentally left behind at the property. Read more about the implementation here and check the updated methods in our Guest Communication API.

2023-03-06

Licence information for Airbnb Occupancy Taxes

New fields added. Now you can provide licence information for Airbnb occupancy taxes. The following methods were updated:

2023-02-17

Documentation update for the UserAccountId field

The descriptions were updated for all methods that use the UserAccountId field.

Affected methods:

2023-02-08

Documentation update for get reservation by ID

Information about ChannelBreakdown in response was updated in the Pull_GetReservationByID_RQ method.

2022-12-20

Documentation update for fees and taxes

Information about fees and taxes names was updated in the Push_PutProperty_RQ method.

2022-12-13

"List reservations by Subusers" and "List reservations for owner" methods

Added missing Reservation Breakdown node from List reservations of Owner and List observations by Subusers responses

2022-12-08

New method added to change the reservation creator

New method Push_ModifyReservationCreator_RQ was added to allow to modify the creator of an existing reservation.

2022-12-07

New method to retrieve owner’s citizenship was added

New method Pull_ListCitizenships_RQ allowing to retrieve collection of citizenships with values that are assigned to them was added.

Licence information for properties located in Spain

New fields added. Now you can provide licence information for properties located in Spain. The following methods were updated:

2022-11-24

ruEX Promotions API

Changed data type from String(50) to Integer for List properties methods Pull_RuEXPromotions_ListProperties_RS/PropertyIDs/PropertyID and Push_RuEXPromotions_PutProperties_RQ/PropertyIDs/PropertyID

2022-11-23

Documentation update

An example showing how to confirm an exisiting lead has been added to Push_PutConfirmedReservationMulti_RQ.

2022-11-18

New exemption reason for Sicily added

Pull_ListSpecProp_RS and Push_PutProperty_RQ have been updated. A new ExemptionReason value is now available - SicilyInProgress. It should be chosen for properties in Sicily, when the process of obtaining Codice Identificativo Regionale (licence number) is still in progress.

2022-11-02

ruEX Promotions API

Rentals United introduced a new product - ruEX Promotions API.

New ruEX Promotions methods are published at ruEX Promotions. These methods include:

Complete ruEX Promotions documentation can be found at RU Docs. You will find there:

Rentals United accepts guest details from PULL sales channels

Now PULL sales channels can insert information on the guests details (number and age). The following methods were updated to accept this information:

Rentals United accepts reservation price breakdown from PULL sales channels

Now PULL sales channels can insert information on the reservation price breakdown. The following methods were updated to accept this information:

2022-10-26

New LNM added

A new type of LNM, PropertyCreated, has been introduced. The new notification will be sent to all subscribers every time a new property is created. The message will contain the ID of the publisher, the ID of a newly created property and the ID of the owner of the property.

You can check all the LNM types by using Pull_ListLiveNotificationMechanismChangeTypes_RQ and subscribe to the changes by using Push_PutLiveNotificationMechanismSubscriptions_RQ.

2022-10-14

New exemption reasons added for Spain

Pull_ListSpecProp_RS and Push_PutProperty_RQ have been updated. Now, it is possible to choose a new ExemptionReason - SpainLongTermRentalAttestation.

2022-10-10

Terms & Conditions file can be edited via API

Push_PutProperty_RQ has been updated. Now, it is possible to change Terms & Conditions of the property.

Pull_ListSpecProp_RS has been extended with Terms & Conditions.

2022-10-04

ArrivalTime of an existing reservation is editable

Push_ModifyStay_RQ has been updated. Now, it is possible to change ArrivalTime of an existing reservation.

2022-09-07

New licence information options added for the UK, the USA, Denmark and Canada

Updates to property license info

United Kingdom Licence info in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls.

USA Licence info in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls.

Denmark licence info in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls.

Renamed Canada exemption reasons (CanadaVancouverLicensedHotelOrBb to CanadaHotelOrMotel, CanadaVancouverEventSpace to CanadaEventSpace, CanadaVancouverLocationExempt to CanadaLocationExempt) in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls.

Property readiness to connect to channels

You can now check if the property you have created is eligible to connect to a sales channel of your choice

Pull_ListLiveNotificationMechanismSubscriptions_RQ now accepts new change: 'PropertyMCQEligibilityCheck'

New method Pull_ListMCQStatuses_RQ allowing to retrieve collection of validation error codes with their descriptions.

New Method Pull_ListSalesChannels_RQ allowing to retrieve collection of sales channels with their ID, username, Name and connection status

New Method CM_LNM_OrderMinimumContentQualityCheck_RQ allowing to queue Minimum Content Quality check for given property and channel. Requires subscribing to PropertyMCQEligibilityCheck LNM

2022-08-23

New licence information options added for Canada, the Netherlands and the USA

Canada exemption reason (CanadaHotelOrMotel) licence info in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls. Netherlands exemption reasons (NetherlandsCampgroung, NetherlandsHotelOrMotel, NetherlandsNonResidentialApartment) licence info in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls. USA exemption reasons (USABedAndBreakfast, USAHotelOrMotel) licence info in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls.

2022-08-08

Guest information and arrival time added to reservation details

Guest details info has been introduced. It's a set of information that specifies how many adults, children and infants are going to arrive for a given reservation and includes information about the age of the children and infants (if provided by the channel).

Also, arrival time has been added. It specifies at what time the guests have arrived.

The following methods have been updated to include GuestDetailsInfo and ArrivalTime:

2022-07-21

Channel breakdown structure updated

A slight change to ChannelBreakdown has been introduced. Because there can be multiple Rent items specified for each day of the stay, a new container RentInfo was created to house all those items.

The change pertains to the following methods:

2022-07-15

Channel breakdown structure feature

Detailed reservation price breakdown as received from the sales channels is now available in the ChannelBreakdown node.

The following methods have been updated to include ChannelBreakdown:

2022-06-21

Guest information details feature

Extended Push_PutLead_RQ and Push_PutConfirmedReservationMulti_RQ with guest information details. It allows to insert detailed information about number of adults, children and infants. Additionally it allows to specify age of children.

2022-05-11

Channel-specific property descriptions available

Additional fields for creating and retrieving property information were created.

The fields were added to the Property/Descriptions/Description container, these fields are:

Changes pertain to the following methods:

2022-03-28

Documentation update

In order to improve integrations with the PMS and SC partners implementing our API, we have prepared an article featuring important update and data synchronization methods as well as suggested frequency with which they should be called. These methods include managing:

For more details, please see here.

2022-03-16

How to create multiple redirects example added

Instructions on how to create multiple redirects for the same property in a single Push_PutPropertiesURLs_RQ request were updated with a detailed explanation and a relevant example. Additionally, instructions were extended with information on how to update and remove redirects.

Additionally, explanation was provided on how redirects show up in a response when calling the Pull_GetPropertiesURLs_RQ request and an example was updated.

2022-03-15

Guest Reviews added to Rentals United Developer Portal

With Guest Reviews introduced on 2022-01-26, you can start writing and receiving the reviews directly via API and in the Rentals United platform as well as receive email notifications about them.

Now you can find detailed descriptions of endpoints as well as usage examples directly in Rentals United Developer Portal. Please, click here to read more. Additionally, if you want to learn more about the methods, check out Rentals United REST API.

2022-03-09

New licence information options added for the USA

San Francisco exemption reason (SanFranciscoOver30NightsOnly) licence info in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls.

2022-03-07

Airbnb pre-approvals via API

Rentals United integrated an Airbnb-exclusive pre-approval feature, which serves the purpose of direct inviting your potential guests to book your property. You can find it especially useful if you want to increase the number of bookings and boost the guest relations.

For the feature documentation, please see: * Rentals United Documentation Portal * Airbnb Feature Overview

The methods to be implemented in order to operate on pre-approvals are described in Rentals United REST API.

2022-02-24

CreateDate added

A new element CreatedDate has been added to several request responses:

2022-01-26

Airbnb Guest Reviews available via API

Rentals United announces the release of Guest Reviews for Airbnb. With this solution, you can start writing and receiving the reviews directly via API and in the Rentals United platform as well as receive email notifications about them. Detailed documentation on how Guest Reviews for Airbnb work in Rentals United REST API can be found here.

2022-01-24

New licence information options added for Hawaii

Hawaii licence info in Push_PutProperty_RQ and Pull_ListSpecProp_RS calls.

2022-01-19

Property status IsActive and IsArchived made optional

Push_SetPropertiesStatus_RQ - the elements IsActive and IsArchived were made optional. This means that, when the user tries to change one of these elements, the other one will be kept in its current state.

2022-01-17

SecureAuthentication errors fixed

Fixed errors stating that elements of container 'SecureAuthentication' are mandatory. Changes pertain to:

2022-01-11

Amenities object name error fixed

Fixed error stating that for calls Push_PutProperty_RQ and Pull_ListSpecProp_RS container 'Amenities' was housing elements with name 'AmenityID' instead of 'Amenity'.

2021-11-17

Method Pull_GetPropertyAvbPrice_RQ now returns additional information, reservation breakdown was added alongside PropertyPrice element.

2021-11-10

Fee/tax type information returned in the breakdown

With this update Rentals United starts to include the fee/tax type information for all line items defined for a property. This means that in the reservation price breakdown you will find information not only on the fee/tax name and value, but also on the ID of the given fee/tax. Please, see Pull_ListReservations_RQ for an exemplary breakdown. Note that the following methods have been updated:

2021-11-09

Added

Method Pull_GetPropertyAvbPrice_RQ now returns additional information, reservation breakdown was added to every PropertyPrice element.

On 2021-11-12 reservation breakdown was removed. Pull_GetPropertyAvbPrice_RQ was reverted to its previous structure

2021-10-27

Charge Profile

Rentals United introduces a new way to set up charges and apply them freely to other line items (for example rent or other charges). With the use of Charge Profile, Rentals United allows for setting up additional charges in a variety of ways, which makes it possible to create advanced, multi-layered business scenarios. In this approach, taxes and fees can be applied freely. With the Charge Profile, following methods were updated :

Pull_ListSpecProp_RS

Push_PutProperty_RQ

Additionally, you may find it useful to see the exemplary fee/tax calculation at Charge profile example

2021-10-20

Multiple currencies per location

<Pull_ListCurrenciesWithCities_RS>
    <Status ID="0">Success</Status>
    <ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
    <Currencies>
        <Currency CurrencyCode="RUC">
            <Locations>
                <LocationID>8694</LocationID>
                <LocationID>8718</LocationID>
            </Locations>    
        </Currency> 
    </Currencies>   
</Pull_ListCurrenciesWithCities_RS>

Starting at the end of October, we will introduce support for multiple currencies per location. This is a development aimed at improving price consistency between the PMS, Rentals United and the Sales Channels. Currently, the currency a property has in Rentals United is a global setting set by us for all our clients. Moving forward, we will allow a single location to have properties in multiple currencies, but one Rentals United user will only have one currency per location.

Today, you use Pull_ListCurrenciesWithCities_RQ and Pull_GetLocationsListByName_RQ to establish the currency set in Rentals United for a particular location.

Starting the week of October 18th, 2021 sales channels, revenue management services (RMS) and other vacation rental services may notice these methods responding with currencyCode=RUC for some locations. Check example response on the right.

Retrieving information about a property

<Property Currency="EUR">

When you receive currencyCode=RUC for a location, simply retrieve the currency code for a particular property by checking the Currency field in response to the Pull_ListSpecProp_RQ.

Actions required:

Review your current Rentals United integration and

2021-10-19

Added

Dynamic currency-to-city mapping has been introduced along with internal/artificial Rentals United Currency (RUC). The dynamic currency-to-city mapping allows the clients to operate on a currency of their choice and no longer binds them to the currency of the city. Newly joining clients may choose any currency that will be applied for all your properties in the same city.

This solution changed the behaviour of a few methods and it is possible now to see the RUC value assigned for location or city currency:

You can use Pull_ListSpecProp_RQ method to check the currency for the city your apartments are in. If you do not use custom settings, the default currency for this city will be returned. The currency will be displayed in Pull_ListSpecProp_RS/Property element as an attribute, eg. .

2021-10-13

Added

Response of Pull_GetLeads_RQ now contains a new element - Price. It is calculated based on number of days, number of guests and includes all applying fees and taxes. It does not include ChannelCommission.

2021-08-30

Changed

Partners creating and updating properties in Rentals United:

We are deprecating the Push_PutProperty_RQ/Property/CleaningPrice element as of 2021-08-30. We recommend that you use Push_PutProperty_RQ/Property/AdditionalFees collection to communicate the cost of cleaning. To ensure backwards compatibility during the transition period, we will not return error when your Push_PutProperty_RQ call includes the CleaningPrice node.

When switching to AdditionalFees collection, we highly recommend to add Push_PutProperty_RQ/Property/CleaningPrice element with value equal to 0 to the first request. This way you will delete older cost of cleaning and prevent doubled cleaning fee issue.

Partners retrieving property details from Rentals United:

The CleaningPrice node in the Pull_ListSpecProp_RS call has been changed to Optional.

2021-08-19

Added

Documentation of Pull_GetPropertyAvbPrice_RQ was missing few additional options available.

Parameters added to the method's documentation:

2021-08-10

Added

Some channels had issues when modifying existing reservations, in some instances they wanted the reservation price not to be recalculated upon modification. To Push_ModifyStay_RQ a new parameter 'UseCurrentPrice' was added. When sending data with this parameter set to True, the reservation price will remain untouched.

Methods affected by this change:

2021-08-05

Added

In some instances, when showing the customer information associated with given reservation, the information about their language was not shown. Now, LanguageID will be shown always along the rest of customer's information when it's available.

API responses affected by this change:

LNMs affected by this change:

2021-08-04

Added

It is now possible to retrieve the commission amount charged by the sales channel via the following methods:

It is now possible to enter the commission charged by the channel when creating the reservation using Push_PutConfirmedReservationMulti_RQ.

It is also possible to modify the channel commission amount using Push_ModifyStay_RQ.

The channel commission amount does not take part in any price breakdown calculation and is presented as supplementary reservation information.

Currently, channel commission is available for bookings made on August 4, 2021 and later for the following channels:

2021-07-01

Added

For some channels creating a new booking was taking too long. With that in mind, a new QuoteMode was devised. Using it ignores PMS availability and pricing and Rentals United pricing, only Rentals United availabilitiy is checked.

Methods affected by this change:

2021-04-12

Changed

Rentals United becomes an ultimate source of truth regarding property's price and availability. Currently, the default quote and booking process does not include a validation call to a PMS in case a property is connected to one.

From now on you should not include:

2021-04-09

Added

New methods Push_PutPropertiesURLs_RQ and Pull_GetPropertiesURLs_RQ allowing you to redirect traffic from listing sites to your Book Direct website. Currently the main use case for this tool will be driving traffic from Google Vacation Rentals Search to your website.

2021-03-23

Added

New method Push_ArchiveUser_RQ allowing PMS systems to close account of a particular property manager. Consequences of closing an account via API are the following:

2021-03-10

Added

Reservation Price Breakdown available in Reservation via:

Reservation Price Breakdown makes it easy to understand how each element of the the total price is calculated. It can be used as a data source for revenue reporting or it can be used to review if fees and taxes are properly setup in property. The breakdown presented is based on current fee&tax setup for a given property, that means if you change fee&tax setup after reservation is confirmed then the Reservation Price Breakdown will change.

2021-03-08

Added

Property quote - Pull_GetPropertyAvbPrice_RS has a new parameter GetChannelPrice. It allows property manager to see what price will be presented to the guest on booking attempt in specific channel. Price presented includes markup configured for this specific property and sales channel.

2021-02-16

Changed

2021-01-28

Added

New method in Channel Management API for resuming (activate) or stopping (deactivate) listing of a single property in a single Sales Channel.

2020-12-23

Added

Added SecureAuthentication node responsible for enabling 3DS v2 authentication process. From now on Rentals United will be able to receive 3DS v2 authentication token and pass it along to API integrated Property Managers or PMS systems. Details on required data payload are described in below API methods.

For reading methods:

For insert method:

2020-12-15

Initial release of Channel Management API. From this point Rentals United will let you manage your connections to OTAs via API. Full guide is available here

Added

2020-12-14

Changed

2020-12-02

Added

New method Push_FillCompanyDetails_RQ that allows to provide the vital company information via API. Useful for creation of the Rentals United company profile via API, e.g. PMS partners. Information provided will be used to connect properties to sales channels, e.g. for contracting and contacting purposes.

Added

2020-11-27

Changed

2020-08-18

Changed

2020-08-12

Changed
Added

2020-08-05

Added

2020-05-22

Thanks to many requests regarding problems when pulling properties by OwnerId. We expanded scope that Pull_ListOwnerProp_RQ works.

Changed

2020-05-15

When a client wants to place an apartment, he needs to choose it's location. For that, he would use the Pull_GetLocationByName_RQ method. Unfortunately this method returns only a single result, which in case of multiple locations with the same name could prove not very useful. A new method Pull_GetLocationsListByName_RQ was developed to return all locations with the same name within a specified(optionally) country.

Added
Changed

2020-04-06

Added

2020-04-01

Added
Changed

2020-03-10

With surfacing FSP to API, the documentation was updated mostly with those changes.

Added
Changed
Fixed

2019-12-31

Launch of developer portal. Previous version of documentation in PDF can be found here. Please be aware that PDF documentation is deprecated and not kept up to date.