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
M, X The element is mandatory, but it can be removed in the update mode. If the element is removed during the update, the previously set value will not be deleted. To remove data, define the element with an empty value or refer to the instructions for the specific method / element.
O, X The element is optional. However, if it is included when the property is created or updated, and then removed in a subsequent update, the previously set value will not be deleted. To remove data, define the element with an empty value or refer to the instructions for the specific method/element.

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 the guest to use at the 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>
        <PaymentMethod PaymentMethodID="6">Visa</PaymentMethod>
        <PaymentMethod PaymentMethodID="7">Mastercard</PaymentMethod>
        <PaymentMethod PaymentMethodID="8">American Express</PaymentMethod>
        <PaymentMethod PaymentMethodID="9">Diners Club International</PaymentMethod>
        <PaymentMethod PaymentMethodID="10">Discover</PaymentMethod>
        <PaymentMethod PaymentMethodID="11">JCB</PaymentMethod>
        <PaymentMethod PaymentMethodID="12">JAL</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>
        <NumberOfFloors>10</NumberOfFloors>
        <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" ImageReferenceID="4">https://a0.muscache.com/im/pictures/2762824/efde5102_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="5">https://a0.muscache.com/im/pictures/2762742/8db449ba_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="6">https://a0.muscache.com/im/pictures/2762709/d5475c1f_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="7">https://a0.muscache.com/im/pictures/2762927/dbcef7be_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="8">https://a0.muscache.com/im/pictures/2762876/924c76ce_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="9">https://a0.muscache.com/im/pictures/2762732/11549cb5_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="10">https://a0.muscache.com/im/pictures/2762859/47299148_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="11">https://a0.muscache.com/im/pictures/2762790/1ed28e01_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="12">https://a0.muscache.com/im/pictures/2762903/876416ab_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="13">https://a0.muscache.com/im/pictures/2762768/dc034096_original.jpg?aki_policy=x_large</Image>
            <Image ImageTypeID="3" ImageReferenceID="14">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580441799567.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="15">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580519143138.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="16">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580532424324.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="17">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580535861847.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="18">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580539611850.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="19">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580554299473.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="20">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580559455559.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="21">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580563830468.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="22">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580568830701.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="23">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580575549208.jpg</Image>
            <Image ImageTypeID="3" ImageReferenceID="24">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>
        <ImageSecondaryTypes>
            <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="2" />
            <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="3" />
            <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="4" />
            <ImageSecondaryType ImageReferenceID="2" ImageSecondaryTypeID ="16" />
            <ImageSecondaryType ImageReferenceID="3" ImageSecondaryTypeID ="32" />
            <ImageSecondaryType ImageReferenceID="4" ImageSecondaryTypeID ="64" />
        </ImageSecondaryTypes>
        <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>
        <NumberOfFloors>10</NumberOfFloors>
        <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>
        <NumberOfFloors>10</NumberOfFloors>
        <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/NumberOfFloors Integer O Total number of floors in the building
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 Primary image type ID. For the list of image types, see ListImageTypes.
Pull_ListSpecProp_RS/Property/Images/Image@ImageReferenceID String O Reference ID. It is a random unique ID that is used to indicate how the image is matched to its caption or secondary image type. Note that while pulling the property data, this ID may be different from the ID that you have pushed. It is because these IDs are not saved in Rentals United.
Pull_ListSpecProp_RS/Property/ImageCaptions O A collection of image captions.
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. For supported languages, see ListLanguages.
Pull_ListSpecProp_RS/Property/ImageCaptions/ImageCaption@ImageReferenceID String M ID referencing the property image to the caption.
Pull_ListSpecProp_RS/Property/ImageSecondaryTypes O A collection of secondary image types
Pull_ListSpecProp_RS/Property/ImageSecondaryTypes/ImageSecondaryType O Secondary image type. For the list of image types, see ListImageTypes.
Pull_ListSpecProp_RS/Property/ImageSecondaryTypes/ImageSecondaryType@ImageReferenceID String M ID referencing the property image to the image secondary type.
Pull_ListSpecProp_RS/Property/ImageSecondaryTypes/ImageSecondaryType@ImageSecondaryTypeID Integer M Secondary image type ID. For the list of image types, seeListImageTypes.
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) O Payment method details, i.e. Bank account. Value returned as CDATA
Pull_ListSpecProp_RS/Property/PaymentMethods/PaymentMethod@PaymentMethodID Integer O 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, NetherlandsRecreationProperty, NetherlandsPermitUnderMunicipalRule, NetherlandsNotMainResidence, NetherlandsGeneralExemption, NetherlandsRentingPartialProperty
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, TurkeyLicenseNumber, TurkeyTourismLicense, TurkeySimpleAccommodationLicense, TurkeyApplicationNumber, InglewoodHostedShortTermRental, InglewoodUnhostedShortTermRental, InglewoodVacationRental
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/ItalyLicenceInfo C, O Data required because of the law in Italy. Skip it for properties located outside Italy
Pull_ListSpecProp_RS/Property/LicenceInfo/ItalyLicenceInfo/NationalIdentificationNumber String O National identification number (CIN)
Pull_ListSpecProp_RS/Property/LicenceInfo/CanadaLicenceInfo C, O Data required because of the law in Canada. Skip it for properties located outside Canada
Pull_ListSpecProp_RS/Property/LicenceInfo/CanadaLicenceInfo/IsConsent Boolean O Consent to share licence information with the city of Toronto
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 licensing information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderLastName String O Licence holder last name name used in License_holder_details licensing information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderStreetNumber String O Licence holder street number used in License_holder_details licensing information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderStreetName String O Licence holder street name used in License_holder_details licensing information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYClassBAddressNumber String O Address number used in Class B licensing information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYClassBStreetName String O Street name used in Class B licensing information
Pull_ListSpecProp_RS/Property/LicenceInfo/USALicenceInfo/NYClassBZipCode String O Zip Code used in Class B licensing 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, maximum 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" Units="0" Reservations="1"  MSMXTypeID="2">
            <IsBlocked>true</IsBlocked>
            <MinStay>2</MinStay>
            <Changeover>1</Changeover>
        </CalDay>
        <CalDay Date="2012-03-02" Units="1" Reservations="0"  MSMXTypeID="2">
            <IsBlocked>false</IsBlocked>
            <MinStay>3</MinStay>
            <Changeover>1</Changeover>
        </CalDay>
        <CalDay Date="2012-03-03" Units="1" Reservations="0"  MSMXTypeID="1">
            <IsBlocked>false</IsBlocked>
            <MinStay>3</MinStay>
            <MaxStay>9</MaxStay>
            <Changeover>1</Changeover>
        </CalDay>
        <CalDay Date="2012-03-04" Units="1" Reservations="0">
            <IsBlocked>false</IsBlocked>
            <Changeover>4</Changeover>
        </CalDay>
        <CalDay Date="2012-03-05" Units="1" Reservations="0">
            <IsBlocked>false</IsBlocked>
            <Changeover>4</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@MSMXTypeID Integer O MinStay and MaxStay restriction type. Stay-through minimum stay (1) indicates that the restriction applies to every day of the stay. Arrival-only (2) indicates the restriction applies only to the arrival date. MinStay and MaxStay will use the same restriction type.
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/MaxStay Integer O Maximum length of stay for that day
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay/Changeover Integer M Changeover for that day. See ChangeoverTypes

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,
        NumberOfFloors = 10,
        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>
   <NumberOfFloors>10</NumberOfFloors>
   <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" ImageReferenceID="1">http://www.domain.com/1.jpg</Image>
     <Image ImageTypeID="15" ImageReferenceID="2">http://www.domain.com/2.jpg</Image>
     <Image ImageTypeID="31" ImageReferenceID="3">http://www.domain.com/3.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>
   <ImageSecondaryTypes>
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="2" />
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="3" />
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="4" />
     <ImageSecondaryType ImageReferenceID="2" ImageSecondaryTypeID ="16" />
     <ImageSecondaryType ImageReferenceID="3" ImageSecondaryTypeID ="32" />
   </ImageSecondaryTypes>
   <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>
   <NumberOfFloors>10</NumberOfFloors>
   <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" ImageReferenceID="1">http://www.domain.com/1.jpg</Image>
     <Image ImageTypeID="15" ImageReferenceID="2">http://www.domain.com/2.jpg</Image>
     <Image ImageTypeID="31" ImageReferenceID="3">http://www.domain.com/3.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>
   <ImageSecondaryTypes>
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="2" />
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="3" />
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="4" />
     <ImageSecondaryType ImageReferenceID="2" ImageSecondaryTypeID ="16" />
     <ImageSecondaryType ImageReferenceID="3" ImageSecondaryTypeID ="32" />
   </ImageSecondaryTypes>
   <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>
   <NumberOfFloors>10</NumberOfFloors>
   <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" ImageReferenceID="1">http://www.domain.com/1.jpg</Image>
     <Image ImageTypeID="15" ImageReferenceID="2">http://www.domain.com/2.jpg</Image>
     <Image ImageTypeID="31" ImageReferenceID="3">http://www.domain.com/3.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>
   <ImageSecondaryTypes>
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="2" />
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="3" />
     <ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="4" />
     <ImageSecondaryType ImageReferenceID="2" ImageSecondaryTypeID ="16" />
     <ImageSecondaryType ImageReferenceID="3" ImageSecondaryTypeID ="32" />
   </ImageSecondaryTypes>
   <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>
   <NumberOfFloors>10</NumberOfFloors>
   <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(150) 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 O, X Apartment floor. If you skip this field while creating a property, we will assign the "0" value by default. Sending the empty node will result in an "invalid XML format error" response.
Push_PutProperty_RQ/Property/NumberOfFloors Integer O, X Total number of floors in the building. To delete the currently stored value, use -1. Sending the empty node will result in an "invalid XML format error" response.
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