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
- extend property providers systems with channel management functionality
- access property providers and their Vacation Rental inventory.
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:
- Start from the Guides & User Cases section
- Review Integration Certification process to understand our expectations of connection quality and scope
- Review API methods required for your use case in the API Reference section
- Get familiar with additional resources we provide: Screenshots of Rentals United User Interface, XML Requests and Responses, C# code examples
- Plan the integration architecture for your system
- Describe your action plan and contact Rentals United API Support Team via apisupport@rentalsunited.com
- Jump on a kick-off call with our engineers
- Code, test and self-certify using the Certification Section
- Get Certified by Rentals United API Support Team
- 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
RU – Rentals United
PMS - Property Management Software. See a list of all PMS partners we work with here
Property Provider – all parties who provide a property for rent. These can be individual owners or property managers
Channel / Sales Channel – partners who distribute Rentals United clients' properties and bring bookings. See a list of Sales Channels we work with here
VR Services - Vacation Rentals Services providers like Revenue Management Systems, Guest experience Apps, Payment Gateways etc. See a list of all VR Service providers we work with here
Guest - a person who books a specific property via a Sales Channel
Inventory – a list of all of the provider's properties.
Static details – all information about the property that is rarely subject to change, like its size or location.
Dynamic/Calendar data - dynamic property data like availability, pricing, minimum stay, changeover
Push – a request that sends information to the RU XML API.
Pull – a request that gets information from the RU XML API.
Reservation/Booking - a booking which is immediately confirmed at the moment when a guest makes a reservation in the sales channel. It blocks the property's availability.
Request - a booking-to-be which requires an additional action from the host (you need to accept or decline it). It does not block the property's availability.
Lead - an indication of a conversation initiated by the guest in the channel. It is not a booking and it does not block the property's availability.
There are three basic integration models
Property Providers integrate with RU API and offer channel management services to their clients or themselves.
Sales Channels integrate with RU API, distribute properties on the market.
VR Service Providers integrate with RU API and offer their service to Property Providers using Rentals United.
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>
- Success - status means that your XML request passed correctly and there are no errors.
- Error - status means your XML request was not processed in our system properly.
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
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:
- First attempt should not be made earlier than 1 min after the initial request
- Second - not earlier than 5 minutes after the first retry attempt
- Third - not earlier than 10 minutes after the second retry attempt
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:
- ID="-6"
- ID="-5"
- ID="17"
- ID="26"
- ID="31"
- ID="86"
- ID="99"
- ID="122"
- ID="123"
- ID="124"
- ID="135"
- ID="153"
- ID="238"
- ID="240"
- ID="241"
API Limits
There are limits of number of requests you can make to Rentals United API. There are two major limit types:
- Rate limit - limits the number of Requests you can make during a defined sliding time frame
- Concurrency limit - limits the number of Requests you can make simultaneously
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].
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:
- Full data sync required when you initially create a property, performed periodically (weekly or monthly) and emergency synchronization performed or upon Rentals United request.
- 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.
- isActive
- isArchived
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:
- Guest contact details - expect: real Guest contact details, masked Guest contact details, lack of certain contact details depending on the Sales Channel.
- payment details - expect: Guest's credit card details, Sales Channel's virtual credit card details, lack of credit card details depending on the Sales Channel.
- price breakdown - expect: unstructured price breakdown in Pull_ListReservations_RS/Reservations/Reservation/Comments, lack of price breakdown
- reservation price - expect: RU price to be always the price set in Rentals United, Client price to be the provided by the Sales Channel as price paid by the Guest (may or may not include the Sales Channel mark-up depending on the Sales Channel), Already paid to be always the amount already paid by the Guest (regardless of the payment status to the Property Provider)
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:
- moving a Guest to a different property
- optimizing a property calendar
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:
- Full data sync required when you initially retrieve a property, performed periodically (weekly or monthly) and emergency synchronization performed or upon Rentals United request.
- 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
- property static data
- availability
- pricing
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();
}
}
}
- In order to create a new confirmed reservation, use
Push_PutConfirmedReservationMulti_RQ
. - In order to cancel a confirmed reservation created by you, use
Push_CancelReservation_RQ
. - In order to create a request (unconfirmed reservation), use
Push_PutUnconfirmedReservation_RQ
. - In order to confirm a request (unconfirmed reservation), use
Push_ConfirmReservation_RQ
. This will ignore the price check in Rentals United and PMS. Alternatively you can confirm a request usingPush_PutConfirmedReservationMulti_RQ
as if you were to create reservation, but ReservationID field must be filled. By default this will validate pricing, unless special QuoteMode field is set. - In order to reject a request (unconfirmed reservation), use
Push_RejectRequest_RQ
. - You can modify already existing reservation using
Push_ModifyStay_RQ
- In order to retrieve a lead, use Pull_GetLeads_RQ
Pull_GetLeads_RQ
.
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:
- Sales Channels to push messages from the Guest to a Property Manager
- Property Management Systems to retrieve and reply to messages
Rentals United Guest communication currently supports:
- All types of Airbnb messages via Airbnb API integration
- Contact the host before a booking is made
- Request to book flow
- Messages for already existing bookings
- Post-stay messages
- Messages exchanged via email
- Rentals United acts as an email proxy and fetches all messages sent by Guests to Property Providers
- Messages are attached to Guests’ reservations and are available via Rentals United Guest Communication API as well as Rentals United User Interface
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:
- Starting a new thread for newly created reservation or lead
- Posting a new message in already existing thread
- Subscribing to webhook notifications about new messages
- Pulling new messages
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:
- Fetching threads attached to already existing reservations or leads
- Fetching messages for the threads
- Subscribing to webhook notifications about new messages
- Pulling new messages
- Posting a new message in already existing thread
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.
- HRS - Hotel Reservation System; it is based specifically on the hotel structure. Only in the HRS, one unit can have multiple rates. This system includes Booking.com, Expedia, Agoda, Ostrovok, Ctrip (Trip.com), HostelWorld.
- HRW - Holiday Rental Website; it is based on the single property structure. In the HRW, one unit can have exactly one rate. This system includes Airbnb, TripAdvisor, Plum Guide, Traum-FerienWohnungen, HomeToGo, Holidu.
Cluster
It is an entity that aggregates units.
- In HRS - the cluster is a hotel.
- In HRW - the cluster is an account. In this system, multiple Sales Channel accounts (each managing different properties) are all connected to RU. Hence, a single RU client can have multiple Airbnb accounts or Vrbo AdvertisersIds listed in the RU user account. In case HRW does not support multiple accounts concept, the cluster is just Rentals United user account.
Unit
It is an entity that represents a unit being rented in a Sales Channel.
- In HRS - the unit is a room. In this system, a room may represent several physical apartments.
- In HRW - the unit is always a single apartment.
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).
In HRS - the system supports multi-rate plans, where one unit can have multiple rates. When a hotel is imported from the HRS system, it is possible to have multiple rates immediately in Rentals United. When the hotel is created in Rentals United, it will have only one rate. Yet, to configure the rates in detail (or to add more rates) the hotel can be added to the HRS extranet and imported back to the Rentals United.
In HRW - the system supports one rate per unit configuration only.
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:
- retrieve a
list of connected properties to a given Sales Channel
update markup on selected rates
stop or resume property listing
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
- Increase your own value proposition by adding a new layer of product to your software
- Offer your client a brand new feature without the need to develop the entire solution
- Customise the look and feel of the ruEX promotions section to seamlessly fit your PMS style guide
- Keep the ruEX integration up to date without budgeting the time of the PMS development teams
- Keep the focus on the key PMS functionalities and innovations
- Maintain own Booking.com integration to increase identity and autonomy
Property Managers
- An entirely new amazing feature within the software that they use on a daily basis
- No need to switch between dashboards - all actions are performed within a tab in your software
- View the promotions configured in Booking.com right in the PMS dashboard
- Create, modify or deactivate promotions for any kind of properties, room types and rate plans.
- Service all variants of Booking.com promotions - Basic Deal, Last Minute, Early Booker, Country Rate, Mobile Rate.
- Increase your rating in the Booking.com ranking and get more bookings!
- See performance statistics of each promotion including booked nights, TTV and cancellations.
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:
unique response identifier (ResponseID). You will use it to troubleshoot when communication with Rentals United API Support. Make sure that you log it
response StatusInfo providing you with feedback on the performed transaction
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 -> Edit Property -> 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 -> Edit Property -> 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 ->Edit Property -> 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 -> Edit Property -> 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 ->Edit Property -> 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 -> Edit Property -> 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 & Kitchen Utensils</Amenity>
<Amenity AmenityID="3">Crockery & Cutlery</Amenity>
<Amenity AmenityID="4">Iron & Ironing Board</Amenity>
<Amenity AmenityID="5">Drying Rack</Amenity>
<Amenity AmenityID="6">Hair Dryer</Amenity>
<Amenity AmenityID="7">Bed Linen & 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 & 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.
- Confirmed - confirmed reservation, block availability
- Cancelled - cancelled reservations, does not block availability
- Modified - confirmed reservation that has been changed, blocks availability.
- Request - request to book, needs to be confirmed or rejected, does not block availability
- Lead - conversation indication /
Guest Communication thread
, cannot be confirmed or rejected, does not block availability - Approved - approved request, does not block availability
- Rejected - rejected request, does not block availability
- Expired - expired request, does not block 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:
- Prepayment - Push_PutProperty_RQ/Property/Deposit
- Security deposit - Push_PutProperty_RQ/Property/SecurityDeposit
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:
- online – property is online/live/bookable on the Sales Channel
- offline – property is not online/not live/not bookable on the Sales Channel
- missing data – property does not meet a Minimum Content Quality of a Sales Channel
- requested publishing – property provider has activated a property connection to a Sales Channel
- requested removal – property provider has deactivated a property connection to a Sales Channel
- disconnected – the property has been disconnected from a Sales Channel
- requested update – property provider has requested a property update on a Sales Channel
- requested deactivation – property provider has requested a property to be disconnected from a Sales Channel
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.
- DoNotIgnore (ID=0) Rentals United will quote a PMS to validate the price calculation and availability of property. It is a DEPRECATED mode and we do not recommend using it, as with the update on 13-04-2021 Rentals United became an ultimate source of truth regarding property's pricing and availability.
- IgnorePMS (ID=1) Rentals United quotes a PMS only to check if the property is available in this PMS. However, the price validation is based on the Rentals United pricing only. This mode applies only to properties from PMS partners which support quote feature. It is a DEPRECATED mode and we do not recommend using it, as with the update on 13-04-2021 Rentals United became an ultimate source of truth regarding property's pricing and availability.
- IgnorePMSAndRU (ID=2) No price calculation validation is performed. Reservations with any prices can be created in Rentals United.
- IgnorePMSAvbPrice (ID=3) It is the default mode. Before accepting a new reservation, Rentals United validates the price calculation and property availability based on the Rentals United pricing and availability calendar.
- IgnorePMSAvbPriceRUPrice (ID=4) No price calculation validation is performed. Availability is checked only in Rentals United, PMS availability is ignored.
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. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. 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 | Owner ID. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. See GetOwnerDetails |
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. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. 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. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. 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. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. 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/UserID | Integer | M | User ID. It represents the user who owns a property. The UserID is the creator of the property but not necessarily the one managing it. By default, UserID is the same as OwnerID |
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/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). |
String(50) | O | ||
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, DubaiHolidayHomePermitNumber, DubaiHotelEstablishmentLicenceNumber |
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 |
C, O | DEPRECATED. Data required because of the law in Scotland. Skip it for properties located outside of Scotland. | ||
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. |
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 | Owner ID. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. See [GetOwnerDetails ] |
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 | Owner ID. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. See GetOwnerDetails |
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 | Owner ID. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. See [GetOwnerDetails ] |
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&b</CompanyName>
<FirstName>mister</FirstName>
<SurName>b&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 | Owner ID. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. See [GetOwnerDetails ] |
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>
- Standard pricing (Daily/LOS pricing) response
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>
- Full Stay Pricing response
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@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:
- Static property data
- Pricing
- Availability
- Images
- Description
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 | Owner ID. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. Can only be changed by the Agent who created the owner. See [GetOwnerDetails ] |
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 | Owner ID. It represents the person responsible for managing or overseeing a property. It is possible to add additional owners. By default, OwnerID is the same as UserID. See GetOwnerDetails |
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 | Uniq |