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, See GetOwnerDetails |
Pull_ListProp_RS/Properties/Property/DetailedLocationID | Integer | M | The most detailed location. See GetLocationDetails |
Pull_ListProp_RS/Properties/Property/DetailedLocationID@TypeID | Integer | M | Location type ID, see ListLocationTypes |
Pull_ListProp_RS/Properties/Property/LastMod | String | M | Last modification date of property static details (format YYYY-MM-DD HHMM-SS) |
Pull_ListProp_RS/Properties/Property/LastMod@NLA | Boolean | M | True/1 means that the property is no longer available, NLA properties are automatically removed from the XML feed 1 week after they have been deactivated by the property provider |
Pull_ListProp_RS/Properties/Property/DateCreated | String(10) | M | Property create date (YYYY-MM-DD format) |
List owner's properties
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;
Pull_ListOwnerProp_RQ request = new Pull_ListOwnerProp_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Username = "username@xyz.com",
IncludeNLA = false
};
string xmlBody = XmlTools.SerializeObject<Pull_ListOwnerProp_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListOwnerProp_RS response = XmlTools.DeserializeObject<Pull_ListOwnerProp_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns a list of properties that belong to a specified owner when you use OwnerId parameter. However, if you supply Username parameter instead, response will contain properties of all owners underlying this very Username. Using Username parameter can help you to reduce the number of calls performed. Use IncludeNLA to identify archived (no longer available) properties. It's also worth mentioning that not active properties available to you are still listed in response.
Request
XML Request
<Pull_ListOwnerProp_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Username>username@xyz.com</Username>
<IncludeNLA>false</IncludeNLA>
</Pull_ListOwnerProp_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListOwnerProp_RQ | C | Root element | |
Pull_ListOwnerProp_RQ/Authentication | C, M | Authentication details | |
Pull_ListOwnerProp_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListOwnerProp_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListOwnerProp_RQ/OwnerID | Integer | O | See ListAllOwners |
Pull_ListOwnerProp_RQ/Username | String(50) | O | It's possible to find one common username for ownerIds in ListAllOwners . It happens when user distributes properties between owners. |
Pull_ListOwnerProp_RQ/IncludeNLA | Boolean | O | If False/0, no longer available properties will be filtered out from the XML Response. Default is True/1 |
Response
XML Response
<Pull_ListOwnerProp_RS>
<Status ID="0">Success</Status>
<ResponseID>1713ee87464547f8aa9a120af0f02d5d</ResponseID>
<Properties>
<Property>
<PUID BuildingID="-1">273641</PUID>
<ID BuildingID="-1">2209989</ID>
<Name>One Bedroom Apartment</Name>
<OwnerID>111111</OwnerID>
<DetailedLocationID TypeID="4">25591</DetailedLocationID>
<LastMod NLA="false" Active="true">2019-04-26 06:53:45</LastMod>
<DateCreated>2019-03-05</DateCreated>
</Property>
</Properties>
</Pull_ListOwnerProp_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListOwnerProp_RS | C | Root element | |
Pull_ListOwnerProp_RS/Status | String(100) | M | See ListStatuses |
Pull_ListOwnerProp_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListOwnerProp_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListOwnerProp_RS/Properties | C, M | A collection of owner's properties | |
Pull_ListOwnerProp_RS/Properties/Property | C | Single property | |
Pull_ListOwnerProp_RS/Properties/Property/PUID | String(50) | M | Unique property ID in the property provider's system |
Pull_ListOwnerProp_RS/Properties/Property/PUID@BuildingID | Integer | M | Unique building ID in the property provider's system |
Pull_ListOwnerProp_RS/Properties/Property/ID | Integer | M | Unique property ID |
Pull_ListOwnerProp_RS/Properties/Property/ID@BuildingID | Integer | O | Unique building ID |
Pull_ListOwnerProp_RS/Properties/Property/ID@BuildingName | String(50) | O | Building name |
Pull_ListOwnerProp_RS/Properties/Property/Name | String(150) | M | Property name |
Pull_ListOwnerProp_RS/Properties/Property/OwnerID | Integer | M | Owner ID, See GetOwnerDetails |
Pull_ListOwnerProp_RS/Properties/Property/DetailedLocationID | Integer | M | The most detailed location ID. See GetLocationDetails |
Pull_ListOwnerProp_RS/Properties/Property/DetailedLocationID@TypeID | Integer | M | Location type ID, See ListLocationTypes |
Pull_ListOwnerProp_RS/Properties/Property/LastMod | String | M | Last modification date of property static details (format YYYY-MM-DD HHMM-SS) |
Pull_ListOwnerProp_RS/Properties/Property/LastMod@NLA | Boolean | M | True/1 means that the property is no longer available, NLA properties are automatically removed from the XML feed 1 week after they have been deactivated by the property provider |
Pull_ListOwnerProp_RS/Properties/Property/LastMod@Active | Boolean | M | True/1 means that the property is active |
Pull_ListOwnerProp_RS/Properties/Property/DateCreated | String(10) | M | Property create date (YYYY-MM-DD format) |
List properties by creation date
using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;
Pull_ListPropByCreationDate_RQ request = new Pull_ListPropByCreationDate_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
CreationFrom = new DateTime(2013, 08, 17),
CreationTo = new DateTime(2013, 08, 27),
IncludeNLA = false
};
string xmlBody = XmlTools.SerializeObject<Pull_ListPropByCreationDate_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListPropByCreationDate_RS response = XmlTools.DeserializeObject<Pull_ListPropByCreationDate_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns a list of properties that have been created in Rentals United in a given date range.
Use IncludeNLA to identify archived (no longer available) properties.
Request
XML Request
<Pull_ListPropByCreationDate_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<CreationFrom>2019-03-01</CreationFrom>
<CreationTo>2021-01-01</CreationTo>
<IncludeNLA>false</IncludeNLA>
</Pull_ListPropByCreationDate_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropByCreationDate_RQ | C | Root element | |
Pull_ListPropByCreationDate_RQ/Authentication | C, M | Authentication details | |
Pull_ListPropByCreationDate_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListPropByCreationDate_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListPropByCreationDate_RQ/CreationFrom | String(10) | M | Property creation date from (YYYY-MM-DD format) |
Pull_ListPropByCreationDate_RQ/CreationTo | String(10) | M | Property creation date to (YYYY-MM-DD format) |
Pull_ListPropByCreationDate_RQ/IncludeNLA | Boolean | O | If False/0, no longer available properties will be filtered out from XML Response. Default is True/1 |
Response
XML Response
<Pull_ListPropByCreationDate_RS>
<Status ID="0">Success</Status>
<ResponseID>2900670d93404b0ea93664e18e5675ca</ResponseID>
<Properties>
<Property>
<ID BuildingID="-1">2209989</ID>
<Name>One Bedroom Apartment</Name>
<OwnerID>553968</OwnerID>
<DetailedLocationID TypeID="-1">25591</DetailedLocationID>
<LastMod NLA="false">2019-04-26 06:53:45</LastMod>
<DateCreated>2019-03-05 08:38:42</DateCreated>
</Property>
</Properties>
</Pull_ListPropByCreationDate_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropByCreationDate_RS | C | Root element | |
Pull_ListPropByCreationDate_RS/Status | String(100) | M | See ListStatuses |
Pull_ListPropByCreationDate_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListPropByCreationDate_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListPropByCreationDate_RS/Properties | C, M | A collection of properties created in the specified date range | |
Pull_ListPropByCreationDate_RS/Properties/Property | C | Single property | |
Pull_ListPropByCreationDate_RS/Properties/Property/PUID | String(50) | M | Unique property ID in the property provider's system |
Pull_ListPropByCreationDate_RS/Properties/Property/PUID@BuildingID | Integer | M | Unique building ID in the property provider's system |
Pull_ListPropByCreationDate_RS/Properties/Property/ID | Integer | Unique property ID | |
Pull_ListPropByCreationDate_RS/Properties/Property/ID@BuildingID | Integer | O | Unique building ID |
Pull_ListPropByCreationDate_RS/Properties/Property/ID@BuildingName | String(50) | O | Building name |
Pull_ListPropByCreationDate_RS/Properties/Property/Name | String(150) | M | Property name |
Pull_ListPropByCreationDate_RS/Properties/Property/OwnerID | Integer | M | Owner ID. See GetOwnerDetails |
Pull_ListPropByCreationDate_RS/Properties/Property/DetailedLocationID | Integer | M | The most detailed location. See GetLocationDetails |
Pull_ListPropByCreationDate_RS/Properties/Property/DetailedLocationID@TypeID | Integer | M | Location type ID, See ListLocationTypes |
Pull_ListPropByCreationDate_RS/Properties/Property/LastMod | String | M | Last modification date of property static details (format YYYY-MM-DD HHMM-SS) |
Pull_ListPropByCreationDate_RS/Properties/Property/LastMod@NLA | Boolean | M | True/1 means that the property is no longer available, NLA properties are automatically removed from the XML feed 1 week after they have been deactivated by the property provider |
Pull_ListPropByCreationDate_RS/Properties/Property/DateCreated | String(10) | M | Property create date (YYYY-MM-DD format) |
List specific property
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;
Pull_ListSpecProp_RQ request = new Pull_ListSpecProp_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
PropertyID = 1
};
string xmlBody = XmlTools.SerializeObject<Pull_ListSpecProp_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListSpecProp_RS response = XmlTools.DeserializeObject<Pull_ListSpecProp_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns a property's static details.
If you are a Sales Channel you will retrieve full property information and create a listing in your system.
Request
XML Request
<Pull_ListSpecProp_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<PropertyID>2209989</PropertyID>
</Pull_ListSpecProp_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListSpecProp_RQ | C | Root element | |
Pull_ListSpecProp_RQ/Authentication | C, M | Authentication details | |
Pull_ListSpecProp_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListSpecProp_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListSpecProp_RQ/PropertyID | Integer | C | Property ID |
Response
XML Response (amenities not assigned to a specific room)
<Pull_ListSpecProp_RS>
<Status ID="0">Success</Status>
<ResponseID>a61501281f7d4b63999b65ba3dcb2b96</ResponseID>
<Property Currency="EUR">
<PUID BuildingID="-1">273641</PUID>
<ID BuildingID="-1" BuildingName="">2209989</ID>
<Name>One Bedroom Apartment</Name>
<OwnerID>553968</OwnerID>
<DetailedLocationID TypeID="4">25591</DetailedLocationID>
<LastMod NLA="false">2019-04-26 06:53:45</LastMod>
<DateCreated>2019-03-05</DateCreated>
<UserID>553968</UserID>
<Space>47</Space>
<StandardGuests>4</StandardGuests>
<CanSleepMax>4</CanSleepMax>
<PropertyTypeID>2</PropertyTypeID>
<ObjectTypeID>3</ObjectTypeID>
<NoOfUnits>1</NoOfUnits>
<Floor>0</Floor>
<NumberOfFloors>10</NumberOfFloors>
<Street>Palmowa 15</Street>
<ZipCode>05</ZipCode>
<LicenseNumber />
<LicenceInfo>
<FrenchLicenceInfo />
</LicenceInfo>
<Coordinates>
<Latitude>52.217453</Latitude>
<Longitude>21.139456</Longitude>
</Coordinates>
<ArrivalInstructions>
<Landlord>John Smith</Landlord>
<Email>john@example.com</Email>
<Phone>+1 111 111 111</Phone>
<DaysBeforeArrival>0</DaysBeforeArrival>
<PickupService />
<HowToArrive />
</ArrivalInstructions>
<CheckInOut>
<CheckInFrom>13:00</CheckInFrom>
<CheckInTo>18:00</CheckInTo>
<CheckOutUntil>12:00</CheckOutUntil>
<Place>at_the_apartment</Place>
<LateArrivalFees />
<EarlyDepartureFees />
</CheckInOut>
<Deposit DepositTypeID="1">0.00</Deposit>
<SecurityDeposit DepositTypeID="5">200.00</SecurityDeposit>
<IsActive>true</IsActive>
<IsArchived>false</IsArchived>
<Distances />
<CompositionRooms>
<CompositionRoomID Count="1">257</CompositionRoomID>
<CompositionRoomID Count="1">249</CompositionRoomID>
</CompositionRooms>
<Amenities>
<Amenity Count="1">595</Amenity>
<Amenity Count="1">702</Amenity>
<Amenity Count="1">802</Amenity>
<Amenity Count="1">930</Amenity>
<Amenity Count="1">101</Amenity>
<Amenity Count="1">187</Amenity>
</Amenities>
<Images>
<Image ImageTypeID="1" ImageReferenceID="1">https://a0.muscache.com/im/pictures/2762835/690c16be_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="2">https://a0.muscache.com/im/pictures/2762748/fe106e44_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="3">https://a0.muscache.com/im/pictures/2762913/330bc8fc_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="4">https://a0.muscache.com/im/pictures/2762824/efde5102_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="5">https://a0.muscache.com/im/pictures/2762742/8db449ba_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="6">https://a0.muscache.com/im/pictures/2762709/d5475c1f_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="7">https://a0.muscache.com/im/pictures/2762927/dbcef7be_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="8">https://a0.muscache.com/im/pictures/2762876/924c76ce_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="9">https://a0.muscache.com/im/pictures/2762732/11549cb5_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="10">https://a0.muscache.com/im/pictures/2762859/47299148_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="11">https://a0.muscache.com/im/pictures/2762790/1ed28e01_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="12">https://a0.muscache.com/im/pictures/2762903/876416ab_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="13">https://a0.muscache.com/im/pictures/2762768/dc034096_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="14">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580441799567.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="15">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580519143138.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="16">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580532424324.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="17">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580535861847.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="18">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580539611850.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="19">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580554299473.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="20">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580559455559.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="21">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580563830468.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="22">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580568830701.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="23">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580575549208.jpg</Image>
<Image ImageTypeID="3" ImageReferenceID="24">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580582111732.jpg</Image>
</Images>
<ImageCaptions>
<ImageCaption LanguageID="1" ImageReferenceID="1">
This is the main image
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="2">
This is image showcasing X
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="3">
This is image showcasing Y
</ImageCaption>
</ImageCaptions>
<ImageSecondaryTypes>
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="2" />
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="3" />
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="4" />
<ImageSecondaryType ImageReferenceID="2" ImageSecondaryTypeID ="16" />
<ImageSecondaryType ImageReferenceID="3" ImageSecondaryTypeID ="32" />
<ImageSecondaryType ImageReferenceID="4" ImageSecondaryTypeID ="64" />
</ImageSecondaryTypes>
<PaymentMethods>
<PaymentMethod PaymentMethodID="3">
<![CDATA[]]>
</PaymentMethod>
</PaymentMethods>
<TermsAndConditionsLinks>
<TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
<TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
</TermsAndConditionsLinks>
<CancellationPolicies>
<CancellationPolicy ID="0" ValidFrom="0" ValidTo="6">100.00</CancellationPolicy>
<CancellationPolicy ID="0" ValidFrom="7" ValidTo="999">50.00</CancellationPolicy>
</CancellationPolicies>
<Descriptions>
<Description LanguageID="1">
<Text>
<![CDATA[One bedroom apartment for rent in green area of Warsaw - Wawer district for Euro 2012.
The apartment is located in newly built block of flats on the ground level with 40 sqm private garden.
The apartment is 46 sqm, 23 sqm living room with kitchenette, 13 sqm bedroom with big closet and a bedroom with toilet.
The estate is fenced with private parking place in the price. In the neighborhood there is a lot of green area, bus stop, grocery. All the amenities in the apartment are new, the apartment is newly renovated with all the comforts.
This is a great place to stay for Euro 2012 championship. The apartment is on the right side of the river, 8km from the football stadium. It is easy to get to the city center and the stadium by either car or bus (bust station 100m from the building).
You can also watch football matches with your friends on the barbecue party in the garden.
]]>
</Text>
</Description>
</Descriptions>
<AdditionalFees />
</Property>
</Pull_ListSpecProp_RS>
XML Response (amenities assigned to a specific room)
<Pull_ListSpecProp_RS>
<Status ID="0">Success</Status>
<ResponseID>a61501281f7d4b63999b65ba3dcb2b96</ResponseID>
<Property Currency="EUR">
<PUID BuildingID="-1">273641</PUID>
<ID BuildingID="-1" BuildingName="">2209989</ID>
<Name>One Bedroom Apartment</Name>
<OwnerID>553968</OwnerID>
<DetailedLocationID TypeID="4">25591</DetailedLocationID>
<LastMod NLA="false">2019-04-26 06:53:45</LastMod>
<DateCreated>2019-03-05</DateCreated>
<UserID>553968</UserID>
<Space>47</Space>
<StandardGuests>4</StandardGuests>
<CanSleepMax>4</CanSleepMax>
<PropertyTypeID>2</PropertyTypeID>
<ObjectTypeID>3</ObjectTypeID>
<NoOfUnits>1</NoOfUnits>
<Floor>0</Floor>
<NumberOfFloors>10</NumberOfFloors>
<Street>Palmowa 15</Street>
<ZipCode>05</ZipCode>
<LicenseNumber />
<LicenceInfo>
<FrenchLicenceInfo />
</LicenceInfo>
<Coordinates>
<Latitude>52.217453</Latitude>
<Longitude>21.139456</Longitude>
</Coordinates>
<ArrivalInstructions>
<Landlord>John Smith</Landlord>
<Email>john@example.com</Email>
<Phone>+1 111 111 111</Phone>
<DaysBeforeArrival>0</DaysBeforeArrival>
<PickupService />
<HowToArrive />
</ArrivalInstructions>
<CheckInOut>
<CheckInFrom>13:00</CheckInFrom>
<CheckInTo>18:00</CheckInTo>
<CheckOutUntil>12:00</CheckOutUntil>
<Place>at_the_apartment</Place>
<LateArrivalFees />
<EarlyDepartureFees />
</CheckInOut>
<Deposit DepositTypeID="1">0.00</Deposit>
<SecurityDeposit DepositTypeID="5">200.00</SecurityDeposit>
<IsActive>true</IsActive>
<IsArchived>false</IsArchived>
<Distances />
<CompositionRoomsAmenities>
<CompositionRoomAmenities CompositionRoomID="257">
<Amenities>
<Amenity Count="1">61</Amenity>
</Amenities>
</CompositionRoomAmenities>
<CompositionRoomAmenities CompositionRoomID="249">
<Amenities>
<Amenity Count="1">200</Amenity>
</Amenities>
</CompositionRoomAmenities>
</CompositionRoomsAmenities>
<Amenities>
<Amenity Count="1">595</Amenity>
<Amenity Count="1">702</Amenity>
<Amenity Count="1">802</Amenity>
<Amenity Count="1">930</Amenity>
<Amenity Count="1">101</Amenity>
<Amenity Count="1">187</Amenity>
</Amenities>
<Images>
<Image ImageTypeID="1" ImageReferenceID="1">https://a0.muscache.com/im/pictures/2762835/690c16be_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="2">https://a0.muscache.com/im/pictures/2762748/fe106e44_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="3">https://a0.muscache.com/im/pictures/2762913/330bc8fc_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762824/efde5102_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762742/8db449ba_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762709/d5475c1f_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762927/dbcef7be_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762876/924c76ce_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762732/11549cb5_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762859/47299148_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762790/1ed28e01_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762903/876416ab_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762768/dc034096_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580441799567.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580519143138.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580532424324.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580535861847.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580539611850.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580554299473.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580559455559.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580563830468.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580568830701.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580575549208.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580582111732.jpg</Image>
</Images>
<ImageCaptions>
<ImageCaption LanguageID="1" ImageReferenceID="1">
This is the main image
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="2">
This is image showcasing X
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="3">
This is image showcasing Y
</ImageCaption>
</ImageCaptions>
<PaymentMethods>
<PaymentMethod PaymentMethodID="3">
<![CDATA[]]>
</PaymentMethod>
</PaymentMethods>
<TermsAndConditionsLinks>
<TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
<TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
</TermsAndConditionsLinks>
<CancellationPolicies>
<CancellationPolicy ID="0" ValidFrom="0" ValidTo="6">100.00</CancellationPolicy>
<CancellationPolicy ID="0" ValidFrom="7" ValidTo="999">50.00</CancellationPolicy>
</CancellationPolicies>
<Descriptions>
<Description LanguageID="1">
<Text>
<![CDATA[One bedroom apartment for rent in green area of Warsaw - Wawer district for Euro 2012.
The apartment is located in newly built block of flats on the ground level with 40 sqm private garden.
The apartment is 46 sqm, 23 sqm living room with kitchenette, 13 sqm bedroom with big closet and a bedroom with toilet.
The estate is fenced with private parking place in the price. In the neighborhood there is a lot of green area, bus stop, grocery. All the amenities in the apartment are new, the apartment is newly renovated with all the comforts.
This is a great place to stay for Euro 2012 championship. The apartment is on the right side of the river, 8km from the football stadium. It is easy to get to the city center and the stadium by either car or bus (bust station 100m from the building).
You can also watch football matches with your friends on the barbecue party in the garden.
]]>
</Text>
</Description>
</Descriptions>
<AdditionalFees />
</Property>
</Pull_ListSpecProp_RS>
XML Response with AdditionalFees and ChargeProfile
<Pull_ListSpecProp_RS>
<Status ID="0">Success</Status>
<ResponseID>a61501281f7d4b63999b65ba3dcb2b96</ResponseID>
<Property Currency="EUR">
<PUID BuildingID="-1">273641</PUID>
<ID BuildingID="-1" BuildingName="">2209989</ID>
<Name>One Bedroom Apartment</Name>
<OwnerID>553968</OwnerID>
<DetailedLocationID TypeID="4">25591</DetailedLocationID>
<LastMod NLA="false">2019-04-26 06:53:45</LastMod>
<DateCreated>2019-03-05</DateCreated>
<UserID>553968</UserID>
<Space>47</Space>
<StandardGuests>4</StandardGuests>
<CanSleepMax>4</CanSleepMax>
<PropertyTypeID>2</PropertyTypeID>
<ObjectTypeID>3</ObjectTypeID>
<NoOfUnits>1</NoOfUnits>
<Floor>0</Floor>
<NumberOfFloors>10</NumberOfFloors>
<Street>Palmowa 15</Street>
<ZipCode>05</ZipCode>
<LicenseNumber />
<LicenceInfo>
<FrenchLicenceInfo />
</LicenceInfo>
<Coordinates>
<Latitude>52.217453</Latitude>
<Longitude>21.139456</Longitude>
</Coordinates>
<ArrivalInstructions>
<Landlord>John Smith</Landlord>
<Email>john@example.com</Email>
<Phone>+1 111 111 111</Phone>
<DaysBeforeArrival>0</DaysBeforeArrival>
<PickupService />
<HowToArrive />
</ArrivalInstructions>
<CheckInOut>
<CheckInFrom>13:00</CheckInFrom>
<CheckInTo>18:00</CheckInTo>
<CheckOutUntil>12:00</CheckOutUntil>
<Place>at_the_apartment</Place>
<LateArrivalFees />
<EarlyDepartureFees />
</CheckInOut>
<Deposit DepositTypeID="1">0.00</Deposit>
<SecurityDeposit DepositTypeID="5">200.00</SecurityDeposit>
<IsActive>true</IsActive>
<IsArchived>false</IsArchived>
<Distances />
<CompositionRooms>
<CompositionRoomID Count="1">257</CompositionRoomID>
<CompositionRoomID Count="1">249</CompositionRoomID>
</CompositionRooms>
<Amenities>
<Amenity Count="1">595</Amenity>
<Amenity Count="1">702</Amenity>
<Amenity Count="1">802</Amenity>
<Amenity Count="1">930</Amenity>
<Amenity Count="1">101</Amenity>
<Amenity Count="1">187</Amenity>
</Amenities>
<Images>
<Image ImageTypeID="1" ImageReferenceID="1">https://a0.muscache.com/im/pictures/2762835/690c16be_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="2">https://a0.muscache.com/im/pictures/2762748/fe106e44_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3" ImageReferenceID="3">https://a0.muscache.com/im/pictures/2762913/330bc8fc_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762824/efde5102_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762742/8db449ba_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762709/d5475c1f_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762927/dbcef7be_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762876/924c76ce_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762732/11549cb5_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762859/47299148_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762790/1ed28e01_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762903/876416ab_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://a0.muscache.com/im/pictures/2762768/dc034096_original.jpg?aki_policy=x_large</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580441799567.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580519143138.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580532424324.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580535861847.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580539611850.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580554299473.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580559455559.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580563830468.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580568830701.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580575549208.jpg</Image>
<Image ImageTypeID="3">https://dwe6atvmvow8k.cloudfront.net/ru/553968/2209989/636918580582111732.jpg</Image>
</Images>
<ImageCaptions>
<ImageCaption LanguageID="1" ImageReferenceID="1">
This is the main image
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="2">
This is image showcasing X
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="3">
This is image showcasing Y
</ImageCaption>
</ImageCaptions>
<PaymentMethods>
<PaymentMethod PaymentMethodID="3">
<![CDATA[]]>
</PaymentMethod>
</PaymentMethods>
<TermsAndConditionsLinks>
<TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
<TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
</TermsAndConditionsLinks>
<CancellationPolicies>
<CancellationPolicy ID="0" ValidFrom="0" ValidTo="6">100.00</CancellationPolicy>
<CancellationPolicy ID="0" ValidFrom="7" ValidTo="999">50.00</CancellationPolicy>
</CancellationPolicies>
<Descriptions>
<Description LanguageID="1">
<Text>
<![CDATA[One bedroom apartment for rent in green area of Warsaw - Wawer district for Euro 2012.
The apartment is located in newly built block of flats on the ground level with 40 sqm private garden.
The apartment is 46 sqm, 23 sqm living room with kitchenette, 13 sqm bedroom with big closet and a bedroom with toilet.
The estate is fenced with private parking place in the price. In the neighborhood there is a lot of green area, bus stop, grocery. All the amenities in the apartment are new, the apartment is newly renovated with all the comforts.
This is a great place to stay for Euro 2012 championship. The apartment is on the right side of the river, 8km from the football stadium. It is easy to get to the city center and the stadium by either car or bus (bust station 100m from the building).
You can also watch football matches with your friends on the barbecue party in the garden.
]]>
</Text>
</Description>
</Descriptions>
<AdditionalFees>
<AdditionalFee Order="1" DiscriminatorID="1" KindID="2" Name="Cleaning Fee" Optional="false" Refundable="true" FeeTaxType="41" CollectTime="1">
<Value>100.0000</Value>
</AdditionalFee>
<AdditionalFee Order="2" DiscriminatorID="3" KindID="1" Name="State Tax" Optional="false" Refundable="true" FeeTaxType="4" CollectTime="1">
<Value>0.1000</Value>
</AdditionalFee>
<AdditionalFee Order="3" DiscriminatorID="1" KindID="2" Name="Towel Fee" Optional="false" Refundable="true" FeeTaxType="16" CollectTime="1">
<Value>100.0000</Value>
</AdditionalFee>
</AdditionalFees>
<ChargeProfiles>
<ChargeProfile ID="0">
<ApplicableAdditionalFee DiscriminatorID="1" Name="Towel Fee" Optional="false" Refundable="true" FeeTaxType="16" CollectTime="1">
<Value>100.0000</Value>
<ApplicableTo>
<FeeNames />
<Rent>false</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
<ApplicableAdditionalFee DiscriminatorID="1" Name="Cleaning Fee" Optional="false" Refundable="true" FeeTaxType="41" CollectTime="1">
<Value>100.0000</Value>
<ApplicableTo>
<FeeNames />
<Rent>false</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
<ApplicableAdditionalFee DiscriminatorID="3" Name="State Tax" Optional="false" Refundable="true" FeeTaxType="4" CollectTime="1">
<Value>0.1000</Value>
<ApplicableTo>
<FeeNames>
<FeeName>Cleaning Fee</FeeName>
</FeeNames>
<Rent>true</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
</ChargeProfile>
</ChargeProfiles>
</Property>
</Pull_ListSpecProp_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListSpecProp_RS | C | Root element | |
Pull_ListSpecProp_RS/Status | String(100) | M | See ListStatuses |
Pull_ListSpecProp_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListSpecProp_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListSpecProp_RS/Property | C, M | Single property | |
Pull_ListSpecProp_RS/Property@Currency | String(3) | C, M | Property rates currency |
Pull_ListSpecProp_RS/Properties/Property/PUID | String(50) | M | Unique property ID in the property provider's system |
Pull_ListSpecProp_RS/Properties/Property/PUID@BuildingID | Integer | M | Unique building ID in the property provider's system |
Pull_ListSpecProp_RS/Property/ID | Integer | M | Unique property ID |
Pull_ListSpecProp_RS/Property/ID@BuildingID | Integer | O | Unique building ID |
Pull_ListSpecProp_RS/Property/ID@BuildingName | String(50) | O | Building name |
Pull_ListSpecProp_RS/Property/Name | String(150) | M | Property name |
Pull_ListSpecProp_RS/Property/OwnerID | Integer | M | Owner ID. See GetOwnerDetails |
Pull_ListSpecProp_RS/Property/Property/DetailedLocationID | Integer | M | The most detailed location. See GetLocationDetails |
Pull_ListSpecProp_RS/Property/Property/DetailedLocationID@TypeID | Integer | M | Location type ID, See ListLocationTypes |
Pull_ListSpecProp_RS/Property/Property/LastMod | String | M | Last modification date of property static details (format YYYY-MM-DD HHMM-SS) |
Pull_ListSpecProp_RS/Property/LastMod@NLA | Boolean | M | True/1 means that the property is no longer available, NLA properties are automatically removed from the XML feed 1 week after they have been deactivated by the property provider |
Pull_ListSpecProp_RS/Property/DateCreated | String | M | Property create date (YYYY-MM-DD format) |
Pull_ListSpecProp_RS/Property/IsActive | Boolean | M | Indicates whether the property is active, See Property status |
Pull_ListSpecProp_RS/Property/IsArchived | Boolean | M | Indicates whether the property is archived, See Property status |
Pull_ListSpecProp_RS/Property/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 | Unique owner ID |
Pull_ListAllOwners_RS/Owners/Owner/FirstName | String(20) | M | Owner's first name |
Pull_ListAllOwners_RS/Owners/Owner/SurName | String(30) | M | Owner's surname |
Pull_ListAllOwners_RS/Owners/Owner/Email | String(100) | M | Owner's email address |
Pull_ListAllOwners_RS/Owners/Owner/Phone | String (20) | M | Owner's phone number (with the country code) |
Pull_ListAllOwners_RS/Owners/Owner/User | C, O | User details | |
Pull_ListAllOwners_RS/Owners/Owner/User/UserName | String(100) | M | Owner's Rentals United username |
Pull_ListAllOwners_RS/Owners/Owner/UserAccountId | Integer | M | Owner's PMS Account ID (0 will be returned if the user is not connected to any PMS), it should be used in Push_PutProperty_RQ |
Get owner details
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;
Pull_GetOwnerDetails_RQ request = new Pull_GetOwnerDetails_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
OwnerID = 1
};
string xmlBody = XmlTools.SerializeObject<Pull_GetOwnerDetails_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_GetOwnerDetails_RS response = XmlTools.DeserializeObject<Pull_GetOwnerDetails_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns detailed contact information of a specific property owner.
Request
XML Request
<Pull_GetOwnerDetails_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<OwnerID>553968</OwnerID>
</Pull_GetOwnerDetails_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetOwnerDetails_RQ | C | Root element | |
Pull_GetOwnerDetails_RQ/Authentication | C, M | Authentication details | |
Pull_GetOwnerDetails_RQ/Authentication/UserName | String(50) | M | Username |
Pull_GetOwnerDetails_RQ/Authentication/Password | String(50) | M | Password |
Pull_GetOwnerDetails_RQ/OwnerID | Integer | M | Unique owner ID |
Response
XML Response
<Pull_GetOwnerDetails_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Owner OwnerID="553968">
<FirstName>John</FirstName>
<SurName>Smith</SurName>
<ScreenName>John S.</ScreenName>
<Email>john.smith@domain.com</Email>
<Phone>+48 22 000 00 00</Phone>
<User>
<UserName>john.smith@domain.com</UserName>
</User>
<UserAccountId>2012</UserAccountId>
</Owner>
</Pull_GetOwnerDetails_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetOwnerDetails_RS | C | Root element | |
Pull_GetOwnerDetails_RS/Status | String(100) | M | See ListStatuses |
Pull_GetOwnerDetails_RS/Status@ID | Integer | M | See ListStatuses |
Pull_GetOwnerDetails_RS/ResponseID | String(32) | M | Unique response ID |
Pull_GetOwnerDetails_RS/Owner | C, O | The details of the owner | |
Pull_GetOwnerDetails_RS/Owner@OwnerID | Integer | M | Unique owner ID |
Pull_GetOwnerDetails_RS/Owner/FirstName | String(20) | M | Owner's first name |
Pull_GetOwnerDetails_RS/Owner/SurName | String(30) | M | Owner's surname |
Pull_GetOwnerDetails_RS/Owner/CompanyName | String (100) | M | Owner's company name. |
Pull_GetOwnerDetails_RS/Owner/ScreenName | String (100) | O | Owner's screen name |
Pull_GetOwnerDetails_RS/Owner/Email | String(100) | M | Owner's email address |
Pull_GetOwnerDetails_RS/Owner/Phone | String (20) | M | Owner's phone number (with the country code) |
Pull_GetOwnerDetails_RS/Owner/User | C, O | User details | |
Pull_GetOwnerDetails_RS/Owner/UserName | String(100) | M | Owner's Rentals United username |
Pull_GetOwnerDetails_RS/Owner/UserAccountID | Integer | M | Owner's PMS Account ID (0 will be returned if the user is not connected to any PMS), it should be used in Push_PutProperty_RQ |
List owner agents
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;
Pull_GetAgents_RQ request = new Pull_GetAgents_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_GetAgents_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_GetAgents_RS response = XmlTools.DeserializeObject<Pull_GetAgents_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns a list of all available Sales Channels.
If you are a PMS, use this method to identify a reservation creator within reservations retrieval API methods.
Request
XML Request
<Pull_GetAgents_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_GetAgents_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetAgents_RQ | C | Root element | |
Pull_GetAgents_RQ/Authentication | C, M | Authentication details | |
Pull_GetAgents_RQ/Authentication/UserName | String(50) | M | Username |
Pull_GetAgents_RQ/Authentication/Password | String(50) | M | Password |
Response
XML Response
<Pull_GetAgents_RS>
<Status ID="0">Success</Status>
<ResponseID>5304842c268f4f318528c9f97bc2c264</ResponseID>
<Owner OwnerID="553968">
<FirstName>John</FirstName>
<SurName>Smith</SurName>
<Email> john.smith@domain.com </Email>
<Phone>+48 22 000 00 00</Phone>
<User>
<UserName>john.smith@domain.com</UserName>
</User>
<UserAccountId>2012</UserAccountId>
</Owner>
<Agents>
<Agent>
<AgentID>420853</AgentID>
<UserName>ha@ha.ha</UserName>
<CompanyName>HomeAway</CompanyName>
<FirstName>HomeAway</FirstName>
<SurName>HomeAway</SurName>
<Emial>ha@ha.ha</Emial>
<Email>ha@ha.ha</Email>
<Telephone>+</Telephone>
</Agent>
<Agent>
<AgentID>421327</AgentID>
<UserName>bookingcom@rentalsunited.com</UserName>
<CompanyName>Booking.com</CompanyName>
<FirstName>Booking.com</FirstName>
<SurName />
<Emial>customer.service@booking.com</Emial>
<Email>customer.service@booking.com</Email>
<Telephone />
</Agent>
<Agent>
<AgentID>421402</AgentID>
<UserName>expedia@rentalsunited.com</UserName>
<CompanyName>Expedia, Inc. </CompanyName>
<FirstName>Expedia</FirstName>
<SurName />
<Emial />
<Email />
<Telephone />
</Agent>
<Agent>
<AgentID>421423</AgentID>
<UserName>agoda@rentalsunited.com</UserName>
<CompanyName>Agoda Company Pte. Ltd</CompanyName>
<FirstName>Agoda</FirstName>
<SurName />
<Emial />
<Email />
<Telephone />
</Agent>
<Agent>
<AgentID>423608</AgentID>
<UserName>jason@travelstaytion.com</UserName>
<CompanyName>Staytion LTD</CompanyName>
<FirstName>TravelStaytion</FirstName>
<SurName>.com</SurName>
<Emial>partners@travelstaytion.com</Emial>
<Email>partners@travelstaytion.com</Email>
<Telephone>+</Telephone>
</Agent>
<Agent>
<AgentID>423784</AgentID>
<UserName>hello@misterbnb.com</UserName>
<CompanyName>misterb&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 | Unique owner ID |
Pull_GetAgents_RS/Owner/FirstName | String(20) | M | Owner's first name |
Pull_GetAgents_RS/Owner/SurName | String(30) | M | Owner's surname |
Pull_GetAgents_RS/Owner/CompanyName | String (100) | M | Owner's company name. |
Pull_GetAgents_RS/Owner/ScreenName | String (100) | O | Owner's screen name |
Pull_GetAgents_RS/Owner/Email | String(100) | M | Owner's email address |
Pull_GetAgents_RS/Owner/Phone | String (20) | M | Owner's phone number (with the country code) |
Pull_GetAgents_RS/Owner/User | C, O | User details | |
Pull_GetAgents_RS/Owner/UserName | String(100) | M | Owner's Rentals United username |
Pull_GetAgents_RS/Owner/UserAccountID | Integer | M | Owner's PMS Account ID (0 will be returned if the user is not connected to any PMS), it should be used in Push_PutProperty_RQ |
Pull_GetAgents_RS/Agents | C, O | Collection of agents | |
Pull_GetAgents_RS/Agents/Agent | C, O | The details of the agent | |
Pull_GetAgents_RS/Agents/Agent/AgentID | Integer | M | Agent's unique ID |
Pull_GetAgents_RS/Agents/Agent/UserName | String(50) | M | The agent's Rentals United username |
Pull_GetAgents_RS/Agents/Agent/CompanyName | String(100) | M | Name of the agent's company. |
Pull_GetAgents_RS/Agents/Agent/FirstName | String(20) | M | The agent's contact person name. |
Pull_GetAgents_RS/Agents/Agent/SurName | String(30) | M | The agent's contact person surname. |
Pull_GetAgents_RS/Agents/Agent/Email | String(100) | M | The agent's email address |
Pull_GetAgents_RS/Agents/Agent/Telephone | String(20) | M | The agent's phone number |
List property external listing
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyExternalListing;
Pull_GetPropertyExternalListing_RQ request = new Pull_GetPropertyExternalListing_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Properties = new List<int>() {
0,
1
}
};
string xmlBody = XmlTools.SerializeObject<Pull_GetPropertyExternalListing_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_GetPropertyExternalListing_RS response = XmlTools.DeserializeObject<Pull_GetPropertyExternalListing_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns a list of properties and their status on the connected Sales Channels.
Request
XML Request
<Pull_GetPropertyExternalListing_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Properties>
<PropertyID>0</PropertyID>
<PropertyID>1</PropertyID>
</Properties>
</Pull_GetPropertyExternalListing_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetPropertyExternalListing_RQ | C | Root element | |
Pull_GetPropertyExternalListing_RQ/Authentication | C, M | Authentication details | |
Pull_GetPropertyExternalListing_RQ/Authentication/UserName | String(50) | M | Username |
Pull_GetPropertyExternalListing_RQ/Authentication/Password | String(50) | M | Password |
Pull_GetPropertyExternalListing_RQ/Properties | C | A collection of properties | |
Pull_GetPropertyExternalListing_RQ/Properties/PropertyID | Integer | M | Unique property ID |
Response
XML Response
<Pull_GetPropertyExternalListing_RS>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Properties>
<Property ID="0">
<ExternalListing>
<Url>http://someAgency.com/apartment0</Url>
<Status>2</Status>
<Description>Property cannot be listed, living space is missing</Description>
</ExternalListing>
<ExternalListing>
<Url>http://someAgency.com/apartment1</Url>
<Status>1</Status>
<Description>We need more photos</Description>
</ExternalListing>
</Property>
<Property ID="1">
<ExternalListing>
<Url>http://someAgency.com/apartment2</Url>
<Status>1</Status>
<Description>Some description</Description>
</ExternalListing>
</Property>
</Properties>
<Notifs />
</Pull_GetPropertyExternalListing_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetPropertyExternalListing_RS | C | Root element | |
Pull_GetPropertyExternalListing_RS/Status | String(100) | M | See ListStatuses |
Pull_GetPropertyExternalListing_RS/Status@ID | Integer | M | See ListStatuses |
Pull_GetLocationDetails_RS/ResponseID | String(32) | M | Unique response ID |
Pull_GetLocationDetails_RS/Properties | C | A collection of properties | |
Pull_GetPropertyExternalListing_RS/Properties/Property | O | A single property | |
Pull_GetPropertyExternalListing_RS/Properties/Property@ID | Integer | M | Unique property ID |
Pull_GetPropertyExternalListing_RS/Properties/Property/ExternalListing | C | A collection of property listings | |
Pull_GetPropertyExternalListing_RS/Properties/Property/ExternalListing/Url | String(300) | M | Url to an external service |
Pull_GetPropertyExternalListing_RS/Properties/Property/ExternalListing/Status | Integer | M | External listing status, See ListPropertyExternalStatuses |
Pull_GetPropertyExternalListing_RS/Properties/Property/ExternalListing/Description | String(500) | M | Additional information from the Sales Channel/Agent |
Pull_GetPropertyExternalListing_RS/Notifs | C, O | A collection of notifications | |
Pull_GetPropertyExternalListing_RS/Notif | String(100) | M | A detailed information about the problem |
Pull methods - Availability and prices
This section describes API methods that allow you to pull dynamic property data like availability calendar, minimum stays, rates, discounts
List properties blocks
using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyBlock;
Pull_ListPropertiesBlocks_RQ request = new Pull_ListPropertiesBlocks_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
LocationID = 500,
DateFrom = new DateTime(2014, 1, 4),
DateTo = new DateTime(2014, 1, 9),
IncludeNLA = false
};
string xmlBody = XmlTools.SerializeObject<Pull_ListPropertiesBlocks_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListPropertiesBlocks_RS response = XmlTools.DeserializeObject<Pull_ListPropertiesBlocks_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns blocked (unavailable) periods in properties' availability calendars. For multiunit type properties, availability is blocked when 0 units are available.
Request
<Pull_ListPropertiesBlocks_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<LocationID>500</LocationID>
<DateFrom>2014-01-04</DateFrom>
<DateTo>2014-01-09</DateTo>
<IncludeNLA>false</IncludeNLA>
</Pull_ListPropertiesBlocks_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertiesBlocks_RQ | C | Root element | |
Pull_ListPropertiesBlocks_RQ/Authentication | C, M | Authentication details | |
Pull_ListPropertiesBlocks_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListPropertiesBlocks_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListPropertiesBlocks_RQ/LocationID | Integer | M | Location ID of LocationTypeID="4". See ListLocations |
Pull_ListPropertiesBlocks_RQ/DateFrom | String(10) | M | Start of the range(YYYY-MM-DD format) |
Pull_ListPropertiesBlocks_RQ/DateTo | String(10) | M | End of the range (blocks starting on this date will not be returned)(YYYY-MM-DD format) |
Pull_ListPropertiesBlocks_RQ/IncludeNLA | Boolean | O | False/0 will filter out no longer available properties from the XML Response. Default is True/1. |
Response
<Pull_ListPropertiesBlocks_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Properties>
<PropertyBlock PropertyID="1">
<Block>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-09</DateTo>
</Block>
<Block>
<DateFrom>2012-03-20</DateFrom>
<DateTo>2012-03-30</DateTo>
</Block>
</PropertyBlock>
<PropertyBlock PropertyID="2">
<Block>
<DateFrom>2012-03-05</DateFrom>
<DateTo>2012-03-08</DateTo>
</Block>
<Block>
<DateFrom>2012-03-12</DateFrom>
<DateTo>2012-03-18</DateTo>
</Block>
</PropertyBlock>
</Properties>
</Pull_ListPropertiesBlocks_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertiesBlocks_RS | C | Root element | |
Pull_ListPropertiesBlocks_RS/Status | String(100) | M | See ListStatuses |
Pull_ListPropertiesBlocks_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListPropertiesBlocks_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListPropertiesBlocks_RS/Properties | C | A collection of properties | |
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock | C, O | Single property | |
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock@PropertyID | Integer | M | Unique property ID |
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock/Block | C, M | Single block | |
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock/Block/DateFrom | String(10) | M | Start of the block(YYYY-MM-DD format) |
Pull_ListPropertiesBlocks_RS/Properties/PropertyBlock/Block/DateTo | String(10) | M | End of the block(YYYY-MM-DD format) |
List property availability calendar
using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyAvailabilityCalendar;
Pull_ListPropertyAvailabilityCalendar_RQ request = new Pull_ListPropertyAvailabilityCalendar_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
PropertyID = 1,
DateFrom = new DateTime(2014, 1, 4),
DateTo = new DateTime(2014, 1, 9)
};
string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyAvailabilityCalendar_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListPropertyAvailabilityCalendar_RS response = XmlTools.DeserializeObject<Pull_ListPropertyAvailabilityCalendar_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns night-by-night calendar including number of available units, minimum stay, maximum stay and changeover day settings.
Request
<Pull_ListPropertyAvailabilityCalendar_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<PropertyID>1</PropertyID>
<DateFrom>2014-01-04</DateFrom>
<DateTo>2014-01-09</DateTo>
</Pull_ListPropertyAvailabilityCalendar_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertyAvailabilityCalendar_RQ | C | Root element | |
Pull_ListPropertyAvailabilityCalendar_RQ/Authentication | C, M | Authentication details | |
Pull_ListPropertyAvailabilityCalendar_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListPropertyAvailabilityCalendar_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListPropertyAvailabilityCalendar_RQ/PropertyID | Integer | M | Unique property ID |
Pull_ListPropertyAvailabilityCalendar_RQ/DateFrom | String(10) | M | Start of the range(YYYY-MM-DD format) |
Pull_ListPropertyAvailabilityCalendar_RQ/DateTo | String(10) | M | End of the range (the last date to be included in the response)(YYYY-MM-DD format) |
Response
<Pull_ListPropertyAvailabilityCalendar_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<PropertyCalendar PropertyID="1">
<CalDay Date="2012-03-01" Units="0" Reservations="1" MSMXTypeID="2">
<IsBlocked>true</IsBlocked>
<MinStay>2</MinStay>
<Changeover>1</Changeover>
</CalDay>
<CalDay Date="2012-03-02" Units="1" Reservations="0" MSMXTypeID="2">
<IsBlocked>false</IsBlocked>
<MinStay>3</MinStay>
<Changeover>1</Changeover>
</CalDay>
<CalDay Date="2012-03-03" Units="1" Reservations="0" MSMXTypeID="1">
<IsBlocked>false</IsBlocked>
<MinStay>3</MinStay>
<MaxStay>9</MaxStay>
<Changeover>1</Changeover>
</CalDay>
<CalDay Date="2012-03-04" Units="1" Reservations="0">
<IsBlocked>false</IsBlocked>
<Changeover>4</Changeover>
</CalDay>
<CalDay Date="2012-03-05" Units="1" Reservations="0">
<IsBlocked>false</IsBlocked>
<Changeover>4</Changeover>
</CalDay>
</PropertyCalendar>
</Pull_ListPropertyAvailabilityCalendar_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertyAvailabilityCalendar_RS | C | Root element | |
Pull_ListPropertyAvailabilityCalendar_RS/Status | String(100) | M | See ListStatuses |
Pull_ListPropertyAvailabilityCalendar_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListPropertyAvailabilityCalendar_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar | C, O | Single property | |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar@PropertyID | Integer | M | Unique property ID |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay | C | Represents a single day | |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay@Date | String(10) | M | Date(YYYY-MM-DD format) |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay@Units | Integer | M | Number of units available |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay@Reservations | Integer | M | Number of confirmed reservations |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay@MSMXTypeID | Integer | O | MinStay and MaxStay restriction type. Stay-through minimum stay (1) indicates that the restriction applies to every day of the stay. Arrival-only (2) indicates the restriction applies only to the arrival date. MinStay and MaxStay will use the same restriction type. |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay/IsBlocked | Boolean | M | Returns whether the property is unavailable for that day. If True/1, the property is not available. |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay/MinStay | Integer | O | Minimum length of stay for that day |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay/MaxStay | Integer | O | Maximum length of stay for that day |
Pull_ListPropertyAvailabilityCalendar_RS/PropertyCalendar/CalDay/Changeover | Integer | M | Changeover for that day. See ChangeoverTypes |
List property min stay
using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyMinStay;
Pull_ListPropertyMinStay_RQ request = new Pull_ListPropertyMinStay_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
PropertyID = 1,
DateFrom = new DateTime(2014, 1, 4),
DateTo = new DateTime(2014, 1, 9)
};
string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyMinStay_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListPropertyMinStay_RS response = XmlTools.DeserializeObject<Pull_ListPropertyMinStay_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns properties' minimum stay settings in a date periods manner.
Request
<Pull_ListPropertyMinStay_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<PropertyID>1</PropertyID>
<DateFrom>2014-01-04</DateFrom>
<DateTo>2014-01-09</DateTo>
</Pull_ListPropertyMinStay_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertyMinStay_RQ | C | Root element | |
Pull_ListPropertyMinStay_RQ/Authentication | C, M | Authentication details | |
Pull_ListPropertyMinStay_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListPropertyMinStay_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListPropertyMinStay_RQ/PropertyID | Integer | M | Unique property ID |
Pull_ListPropertyMinStay_RQ/DateFrom | String(10) | M | Start of the range(YYYY-MM-DD format) |
Pull_ListPropertyMinStay_RQ/DateTo | String(10) | M | End of the range(YYYY-MM-DD format) |
Response
<Pull_ListPropertyMinStay_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<PropertyMinStay PropertyID="1">
<MinStay DateFrom="2012-03-04" DateTo="2012-03-20">2</MinStay>
<MinStay DateFrom="2012-03-22" DateTo="2012-03-28">3</MinStay>
</PropertyMinStay>
</Pull_ListPropertyMinStay_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertyMinStay_RS | C | Root element | |
Pull_ListPropertyMinStay_RS/Status | String(100) | M | See ListStatuses |
Pull_ListPropertyMinStay_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListPropertyMinStay_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListPropertyMinStay_RS/PropertyMinStay | C, O | Single property | |
Pull_ListPropertyMinStay_RS/PropertyMinStay@PropertyID | Integer | M | Unique property ID |
Pull_ListPropertyMinStay_RS/PropertyMinStay/MinStay | Integer | O | Any stay between the selected dates has to be at least X nights long |
Pull_ListPropertyMinStay_RS/PropertyMinStay/MinStay@DateFrom | String(10) | M | Start of the date range(YYYY-MM-DD format) |
Pull_ListPropertyMinStay_RS/PropertyMinStay/MinStay@DateTo | String(10) | M | End of the date range(YYYY-MM-DD format) |
List property prices
using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyPrice;
Pull_ListPropertyPrices_RQ request = new Pull_ListPropertyPrices_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
PropertyID = 1,
DateFrom = new DateTime(2014, 1, 4),
DateTo = new DateTime(2014, 1, 9),
// new field!
PricingModelMode = 1 // 0 - standard pricing (daily/los), 1 - full stay pricing, 2 - LOS or FSP
// default value - 0
};
string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyPrices_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListPropertyPrices_RS response = XmlTools.DeserializeObject<Pull_ListPropertyPrices_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns seasonal rates configuration for a property. Additional fees and discounts are covered separately and are not included in this API method.
Request
<Pull_ListPropertyPrices_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<PropertyID>1</PropertyID>
<DateFrom>2014-01-04</DateFrom>
<DateTo>2014-01-09</DateTo>
<!-- new field! -->
<PricingModelMode>1</PricingModelMode> <!-- 0 - standard pricing (daily/los), 1 - full stay pricing, 2 - LOS or FSP -->
<!-- default value - 0 -->
</Pull_ListPropertyPrices_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertyPrices_RQ | C | Root element | |
Pull_ListPropertyPrices_RQ/Authentication | C, M | Authentication details | |
Pull_ListPropertyPrices_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListPropertyPrices_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListPropertyPrices_RQ/PropertyID | Integer | M | Unique property ID. All prices for the property will be returned for the specified date ranges |
Pull_ListPropertyPrices_RQ/DateFrom | String(10) | M | Start of the date range(YYYY-MM-DD format) |
Pull_ListPropertyPrices_RQ/DateTo | String(10) | M | End of the date range(YYYY-MM-DD format) |
Pull_ListPropertyPrices_RQ/PricingModelMode | Integer | O | Specifies in what pricing model prices will be returned in response. Possible values: 0 - Standard pricing (daily/los pricing), 1 - Full Stay Pricing, 2 - Pricing model set by PutPrices request |
Responses
Depending on the PricingModelMode chosen, one of the following responses will be sent:
Example 1 (standard pricing)
<Pull_ListPropertyPrices_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Prices PropertyID="1">
<Season DateFrom="2012-03-01" DateTo="2012-03-08">
<Price>100.00</Price>
<Extra>10.00</Extra>
</Season>
<Season DateFrom="2012-03-09" DateTo="2012-04-01">
<Price>120.00</Price>
<Extra>10.00</Extra>
<LOSS>
<LOS Nights="5">
<Price>100.00</Price>
</LOS>
<LOS Nights="10">
<Price>80.00</Price>
<LOSPS>
<LOSP NrOfGuests="5">
<Price>150.00</Price>
</LOSP>
<LOSP NrOfGuests="6">
<Price>175.00</Price>
</LOSP>
</LOSPS>
</LOS>
</LOSS>
<EGPS>
<EGP ExtraGuests="1">
<Price>25.00</Price>
</EGP>
<EGP ExtraGuests="2">
<Price>50.00</Price>
</EGP>
</EGPS>
</Season>
</Prices>
</Pull_ListPropertyPrices_RS>
- 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 | ID of the owner. This is only required when updating the owner's information. Can only be changed by the Agent who created the owner. |
Push_PutOwner_RQ/Owner/FirstName | String(20) | M | Owner's first name |
Push_PutOwner_RQ/Owner/SurName | String(30) | M | Owner's surname |
Push_PutOwner_RQ/Owner/Email | String(100) | M | Owner's email address |
Push_PutOwner_RQ/Owner/Phone | String(20) | M | Owner's phone number with the country code |
Response
<Push_PutOwner_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<OwnerID>1 </OwnerID>
</Push_PutOwner_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutOwner_RS | C | Root element | |
Push_PutOwner_RS/Status | String(100) | M | See ListStatuses |
Push_PutOwner_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutOwner_RS/ResponseID | String(32) | M | Unique response ID |
Push_PutOwner_RS/OwnerID | Integer | M | Unique property ID owner |
Put property
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;
using WS.XMLLayer.WebMethods.AdditionalFees;
using System.Collections.Generic;
Push_PutProperty_RQ request = new Push_PutProperty_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Property = new PropertyDetailedInfo()
{
Name = "Apartment 1",
OwnerID = 1,
// DetailedLocationID
IsActive = true,
IsArchived = false,
Space = 45,
StandardGuests = 3,
CanSleepMax = 5,
PropertyTypeID = 1,
NoOfUnits = 1,
NumberOfFloors = 10,
Floor = 1,
Street = "Street 1",
ZipCode = "00-001",
Coordinates = new CoordinatesInfo()
{
Longitude = "40.21334234",
Latitude = "42.123123"
},
Distances = new DistanceInfo[]
{
new DistanceInfo()
{
DestinationID = 1,
DistanceUnitID = 1,
DistanceValue = 10
}
},
Amenities = new AmenityInfo[]
{
new AmenityInfo() { AmenityID = 1, Count = 2 },
new AmenityInfo() { AmenityID = 2 }
},
Images = new ImageInfo[]
{
new ImageInfo() { ImageTypeID = 1, Image = "http://www.domain.com/1.jpg" }
},
ArrivalInstructions = new ArrivalInstructionsInfo()
{
Landlord = "John Smith",
Email = "john.smith@domain.com",
Phone = "+48 22 000 00 00",
DaysBeforeArrival = 2,
HowToArrive = new List<ArriveDescriptionInfo>()
{
new ArriveDescriptionInfo()
{
LanguageID = 1,
Description = "Information about how to arrive in English"
},
new ArriveDescriptionInfo()
{
LanguageID = 2,
Description = "Information about how to arrive in German"
}
},
PickupService = new List<ArriveDescriptionInfo>()
{
new ArriveDescriptionInfo()
{
LanguageID = 1,
Description = "Information about pickup service in English"
}
},
},
CheckInOut = new CheckInOutInfo()
{
CheckInFrom = "10:00",
CheckInTo = "13:00",
CheckOutUntil = "09:00",
Place = "apartment",
LateArrivalFees = new List<LateArrivalFeeInfo>()
{
new LateArrivalFeeInfo()
{
From = "13:00",
To = "20:00",
Fee = 10.00M
},
new LateArrivalFeeInfo()
{
From = "20:00",
To = "01:00",
Fee = 30.00M
}
},
EarlyDepartureFees = new List<EarlyDepartureFeeInfo>()
{
new EarlyDepartureFeeInfo()
{
From = "03:00",
To = "05:00",
Fee = 30.00M
},
new EarlyDepartureFeeInfo()
{
From = "05:00",
To = "13:00",
Fee = 25.00M
}
}
},
PaymentMethods = new PaymentMethodInfo[]
{
new PaymentMethodInfo() { PaymentMethodID = 1, PaymentMethod = "Account number: 000000000000000" },
new PaymentMethodInfo() { PaymentMethodID = 2, PaymentMethod = "VISA, MASTERCARD, AMERICAN EXPRESS" }
},
Deposit = new DepositInfo() { DepositTypeID = 3, Deposit = 15.00M },
CancellationPolicies = new CancellationPolicyInfo[]
{
new CancellationPolicyInfo()
{
ValidFrom = 0,
ValidTo = 3,
CancellationPolicy = 100M
},
new CancellationPolicyInfo()
{
ValidFrom = 4,
ValidTo = 10,
CancellationPolicy = 50M
}
},
Descriptions = new DescriptionInfo[]
{
new DescriptionInfo()
{
LanguageID = 1,
Text = "Description in English."
},
new DescriptionInfo()
{
LanguageID = 2,
Image = "http://YourServer/GermanDescription.jpg"
},
new DescriptionInfo()
{
LanguageID = 3,
Image = "http://YourServer/PolishDescription.jpg"
}
},
SecurityDeposit = new DepositInfo() { DepositTypeID = 5, Deposit = 85.00M },
AdditionalFees = new AdditionalFeeInfo[]
{
new AdditionalFeeInfo()
{
FeeTaxType = 1,
DiscriminatorID = 1,
Order = 0,
Value = 50.05M
},
new AdditionalFeeInfo()
{
FeeTaxType = 6,
DiscriminatorID = 3,
Order = 1,
Value = 0.1255M
}
},
LicenceInfo = new LicenceInfo() { LicenceNumber = "Licence_Number" }
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutProperty_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutProperty_RS response = XmlTools.DeserializeObject<Push_PutProperty_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method has been designed to create and update a property in Rentals United. Update mode is triggered when Push_PutProperty_RQ/Property/ID is provided in the XML request.
Elements marked with M are mandatory for property creation. They may be skipped in update XML requests if they are marked with X. Elements marked with O are optional for property creation and update. If they are not sent, no changes will be made in Rentals United. If they are sent as empty nodes, data will be erased from Rentals United.
Request
Example 1: Put a new property, without detailed amenities data
<Push_PutProperty_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Property>
<PUID BuildingID="-1">1</PUID>
<Name>Apartment 1</Name>
<OwnerID>1</OwnerID>
<DetailedLocationID TypeID="4">1</DetailedLocationID>
<IsActive>true</IsActive>
<IsArchived>false</IsArchived>
<Space>45</Space>
<StandardGuests>3</StandardGuests>
<CanSleepMax>5</CanSleepMax>
<PropertyTypeID>1</PropertyTypeID>
<NoOfUnits>1</NoOfUnits>
<Floor>1</Floor>
<NumberOfFloors>10</NumberOfFloors>
<Street>Street 1</Street>
<ZipCode>00-001</ZipCode>
<Coordinates>
<Longitude>40.21334234</Longitude>
<Latitude>42.123123</Latitude>
</Coordinates>
<Distances>
<Distance>
<DestinationID>1</DestinationID>
<DistanceUnitID>1</DistanceUnitID>
<DistanceValue>10</DistanceValue>
</Distance>
</Distances>
<Amenities>
<Amenity Count="2">1</Amenity>
<Amenity Count="1">2</Amenity>
</Amenities>
<Images>
<Image ImageTypeID="1" ImageReferenceID="1">http://www.domain.com/1.jpg</Image>
<Image ImageTypeID="15" ImageReferenceID="2">http://www.domain.com/2.jpg</Image>
<Image ImageTypeID="31" ImageReferenceID="3">http://www.domain.com/3.jpg</Image>
</Images>
<ImageCaptions>
<ImageCaption LanguageID="1" ImageReferenceID="1">
This is the main image
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="2">
This is image showcasing X
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="3">
This is image showcasing Y
</ImageCaption>
</ImageCaptions>
<ImageSecondaryTypes>
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="2" />
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="3" />
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="4" />
<ImageSecondaryType ImageReferenceID="2" ImageSecondaryTypeID ="16" />
<ImageSecondaryType ImageReferenceID="3" ImageSecondaryTypeID ="32" />
</ImageSecondaryTypes>
<ArrivalInstructions>
<Landlord>John Smith</Landlord>
<Email>john.smith@domain.com</Email>
<Phone>+48 22 000 00 00</Phone>
<DaysBeforeArrival>2</DaysBeforeArrival>
<HowToArrive>
<Text LanguageID="1">Information about how to arrive in English</Text>
<Text LanguageID="2">Information about how to arrive in German</Text>
</HowToArrive>
<PickupService>
<Text LanguageID="1">Information about pickup service in English</Text>
</PickupService>
</ArrivalInstructions>
<CheckInOut>
<CheckInFrom>10:00</CheckInFrom>
<CheckInTo>13:00</CheckInTo>
<CheckOutUntil>09:00</CheckOutUntil>
<Place>apartment</Place>
<LateArrivalFees>
<LateArrivalFee From="13:00" To="20:00">10.00</LateArrivalFee>
<LateArrivalFee From="20:00" To="01:00">30.00</LateArrivalFee>
</LateArrivalFees>
<EarlyDepartureFees>
<EarlyDepartureFee From="03:00" To="05:00">30.00</EarlyDepartureFee>
<EarlyDepartureFee From="05:00" To="13:00">25.00</EarlyDepartureFee>
</EarlyDepartureFees>
</CheckInOut>
<PaymentMethods>
<PaymentMethod PaymentMethodID="1">Account number: 000000000000000</PaymentMethod>
<PaymentMethod PaymentMethodID="2" >VISA, MASTERCARD, AMERICAN EXPRESS</PaymentMethod>
</PaymentMethods>
<TermsAndConditionsLinks>
<TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
<TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
</TermsAndConditionsLinks>
<Deposit DepositTypeID="3">15.00</Deposit>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
<Descriptions>
<Description LanguageID="1">
<Text>Description in English.</Text>
</Description>
<Description LanguageID="3">
<Text>Description in Polish</Text>
</Description>
</Descriptions>
<SecurityDeposit DepositTypeID="5">85.00</SecurityDeposit>
<AdditionalFees>
<AdditionalFee FeeTaxType="1" DiscriminatorID="1" Order="0">
<Value>50.05</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="4" Order="1">
<Value>0.1255</Value>
<!-- This will represent a value of 12.55% -->
</AdditionalFee>
</AdditionalFees>
<LicenceInfo>
<LicenceNumber>Licence_Number</LicenceNumber>
</LicenceInfo>
</Property>
</Push_PutProperty_RQ>
Example 2: Update a previously uploaded property, with detailed amenity data
<Push_PutProperty_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Property>
<ID>1</ID>
<PUID BuildingID="1">apt1</PUID>
<Name>Apartment 1</Name>
<OwnerID>1</OwnerID>
<DetailedLocationID TypeID="1">1</DetailedLocationID>
<IsActive>true</IsActive>
<IsArchived>false</IsArchived>
<Space>45</Space>
<StandardGuests>3</StandardGuests>
<CanSleepMax>5</CanSleepMax>
<PropertyTypeID>1</PropertyTypeID>
<Floor>1</Floor>
<NumberOfFloors>10</NumberOfFloors>
<Street>Street 1</Street>
<ZipCode>00-001</ZipCode>
<Coordinates>
<Longitude>40.21334234</Longitude>
<Latitude>42.123123</Latitude>
</Coordinates>
<Distances>
<Distance>
<DestinationID>1</DestinationID>
<DistanceUnitID>1</DistanceUnitID>
<DistanceValue>10</DistanceValue>
</Distance>
</Distances>
<CompositionRoomsAmenities>
<CompositionRoomAmenities CompositionRoomID="1">
<Amenities>
<Amenity Count="1">1</Amenity>
</Amenities>
</CompositionRoomAmenities>
<CompositionRoomAmenities CompositionRoomID="2">
<Amenities>
<Amenity Count="1">1</Amenity>
</Amenities>
</CompositionRoomAmenities>
</CompositionRoomsAmenities>
<Amenities>
<Amenity Count="1">2</Amenity>
</Amenities>
<Images>
<Image ImageTypeID="1" ImageReferenceID="1">http://www.domain.com/1.jpg</Image>
<Image ImageTypeID="15" ImageReferenceID="2">http://www.domain.com/2.jpg</Image>
<Image ImageTypeID="31" ImageReferenceID="3">http://www.domain.com/3.jpg</Image>
</Images>
<ImageCaptions>
<ImageCaption LanguageID="1" ImageReferenceID="1">
This is the main image
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="2">
This is image showcasing X
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="3">
This is image showcasing Y
</ImageCaption>
</ImageCaptions>
<ImageSecondaryTypes>
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="2" />
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="3" />
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="4" />
<ImageSecondaryType ImageReferenceID="2" ImageSecondaryTypeID ="16" />
<ImageSecondaryType ImageReferenceID="3" ImageSecondaryTypeID ="32" />
</ImageSecondaryTypes>
<ArrivalInstructions>
<Landlord>John Smith</Landlord>
<Email>john.smith@domain.com</Email>
<Phone>+48 22 000 00 00</Phone>
<DaysBeforeArrival>2</DaysBeforeArrival>
<HowToArrive>
<Text LanguageID="1">Information about how to arrive in English</Text>
<Text LanguageID="2">Information about how to arrive in German</Text>
</HowToArrive>
<PickupService>
<Text LanguageID="1">Information about pickup service in English</Text>
</PickupService>
</ArrivalInstructions>
<CheckInOut>
<CheckInFrom>10:00</CheckInFrom>
<CheckInTo>13:00</CheckInTo>
<CheckOutUntil>09:00</CheckOutUntil>
<Place>apartment</Place>
<LateArrivalFees>
<LateArrivalFee From="13:00" To="20:00">10.00</LateArrivalFee>
<LateArrivalFee From="20:00" To="01:00">30.00</LateArrivalFee>
</LateArrivalFees>
</CheckInOut>
<PaymentMethods>
<PaymentMethod PaymentMethodID="1">Account number: 000000000000000</PaymentMethod>
<PaymentMethod PaymentMethodID="2" >VISA, MASTERCARD, AMERICAN EXPRESS</PaymentMethod>
</PaymentMethods>
<TermsAndConditionsLinks>
<TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
<TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
</TermsAndConditionsLinks>
<Deposit DepositTypeID="3">15.00</Deposit>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
<Descriptions>
<Description LanguageID="1">
<Text>Description in English.</Text>
</Description>
<Description LanguageID="3">
<Text>Description in Polish</Text>
</Description>
</Descriptions>
<SecurityDeposit DepositTypeID="5">85.00</SecurityDeposit>
<AdditionalFees>
<AdditionalFee FeeTaxType="1" DiscriminatorID="1" Order="0">
<Value>50.05</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="3" DiscriminatorID="4" Order="1">
<Value>0.1255</Value>
<!-- This will represent a value of 12.55% -->
</AdditionalFee>
</AdditionalFees>
<LicenceInfo>
<LicenceNumber>Licence_Number</LicenceNumber>
</LicenceInfo>
</Property>
</Push_PutProperty_RQ>
Example 3: Put a new property, without detailed amenities data and charge profile
<Push_PutProperty_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Property>
<PUID BuildingID="1">apt1</PUID>
<Name>Apartment 1</Name>
<OwnerID>1</OwnerID>
<DetailedLocationID TypeID="1">1</DetailedLocationID>
<IsActive>true</IsActive>
<IsArchived>false</IsArchived>
<Space>45</Space>
<StandardGuests>3</StandardGuests>
<CanSleepMax>5</CanSleepMax>
<PropertyTypeID>1</PropertyTypeID>
<Floor>1</Floor>
<NumberOfFloors>10</NumberOfFloors>
<Street>Street 1</Street>
<ZipCode>00-001</ZipCode>
<Coordinates>
<Longitude>40.21334234</Longitude>
<Latitude>42.123123</Latitude>
</Coordinates>
<Distances>
<Distance>
<DestinationID>1</DestinationID>
<DistanceUnitID>1</DistanceUnitID>
<DistanceValue>10</DistanceValue>
</Distance>
</Distances>
<CompositionRoomsAmenities>
<CompositionRoomAmenities CompositionRoomID="1">
<Amenities>
<Amenity Count="1">1</Amenity>
</Amenities>
</CompositionRoomAmenities>
<CompositionRoomAmenities CompositionRoomID="2">
<Amenities>
<Amenity Count="1">1</Amenity>
</Amenities>
</CompositionRoomAmenities>
</CompositionRoomsAmenities>
<Amenities>
<Amenity Count="1">2</Amenity>
</Amenities>
<Images>
<Image ImageTypeID="1" ImageReferenceID="1">http://www.domain.com/1.jpg</Image>
<Image ImageTypeID="15" ImageReferenceID="2">http://www.domain.com/2.jpg</Image>
<Image ImageTypeID="31" ImageReferenceID="3">http://www.domain.com/3.jpg</Image>
</Images>
<ImageCaptions>
<ImageCaption LanguageID="1" ImageReferenceID="1">
This is the main image
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="2">
This is image showcasing X
</ImageCaption>
<ImageCaption LanguageID="1" ImageReferenceID="3">
This is image showcasing Y
</ImageCaption>
</ImageCaptions>
<ImageSecondaryTypes>
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="2" />
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="3" />
<ImageSecondaryType ImageReferenceID="1" ImageSecondaryTypeID ="4" />
<ImageSecondaryType ImageReferenceID="2" ImageSecondaryTypeID ="16" />
<ImageSecondaryType ImageReferenceID="3" ImageSecondaryTypeID ="32" />
</ImageSecondaryTypes>
<ArrivalInstructions>
<Landlord>John Smith</Landlord>
<Email>john.smith@domain.com</Email>
<Phone>+48 22 000 00 00</Phone>
<DaysBeforeArrival>2</DaysBeforeArrival>
<HowToArrive>
<Text LanguageID="1">Information about how to arrive in English</Text>
<Text LanguageID="2">Information about how to arrive in German</Text>
</HowToArrive>
<PickupService>
<Text LanguageID="1">Information about pickup service in English</Text>
</PickupService>
</ArrivalInstructions>
<CheckInOut>
<CheckInFrom>10:00</CheckInFrom>
<CheckInTo>13:00</CheckInTo>
<CheckOutUntil>09:00</CheckOutUntil>
<Place>apartment</Place>
<LateArrivalFees>
<LateArrivalFee From="13:00" To="20:00">10.00</LateArrivalFee>
<LateArrivalFee From="20:00" To="01:00">30.00</LateArrivalFee>
</LateArrivalFees>
</CheckInOut>
<PaymentMethods>
<PaymentMethod PaymentMethodID="1">Account number: 000000000000000</PaymentMethod>
<PaymentMethod PaymentMethodID="2" >VISA, MASTERCARD, AMERICAN EXPRESS</PaymentMethod>
</PaymentMethods>
<TermsAndConditionsLinks>
<TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
<TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
</TermsAndConditionsLinks>
<Deposit DepositTypeID="3">15.00</Deposit>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
<Descriptions>
<Description LanguageID="1">
<Text>Description in English.</Text>
</Description>
<Description LanguageID="3">
<Text>Description in Polish</Text>
</Description>
</Descriptions>
<SecurityDeposit DepositTypeID="5">85.00</SecurityDeposit>
<ChargeProfiles>
<ChargeProfile id="0">
<ApplicableAdditionalFee FeeTaxType="41" DiscriminatorID="1" Name="cleaning">
<Value>50.05</Value>
</ApplicableAdditionalFee>
<ApplicableAdditionalFee FeeTaxType="1" DiscriminatorID="3" Name="state tax">
<Value>50.05</Value>
<ApplicableTo>
<FeeNames>
<FeeName>cleaning</FeeName>
</FeeNames>
<Rent>true</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
</ChargeProfile>
</ChargeProfiles>
<LicenceInfo>
<LicenceNumber>Licence_Number</LicenceNumber>
</LicenceInfo>
</Property>
</Push_PutProperty_RQ>
Example 4: Put a new property, with optional Description fields filled
<Push_PutProperty_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Property>
<PUID BuildingID="1">apt1</PUID>
<Name>Apartment 1</Name>
<OwnerID>1</OwnerID>
<DetailedLocationID TypeID="1">1</DetailedLocationID>
<IsActive>true</IsActive>
<IsArchived>false</IsArchived>
<Space>45</Space>
<StandardGuests>3</StandardGuests>
<CanSleepMax>5</CanSleepMax>
<PropertyTypeID>1</PropertyTypeID>
<Floor>1</Floor>
<NumberOfFloors>10</NumberOfFloors>
<Street>Street 1</Street>
<ZipCode>00-001</ZipCode>
<Coordinates>
<Longitude>40.21334234</Longitude>
<Latitude>42.123123</Latitude>
</Coordinates>
<ArrivalInstructions>
<Landlord>John Smith</Landlord>
<Email>john.smith@domain.com</Email>
<Phone>+48 22 000 00 00</Phone>
<DaysBeforeArrival>2</DaysBeforeArrival>
<HowToArrive>
<Text LanguageID="1">Information about how to arrive in English</Text>
<Text LanguageID="2">Information about how to arrive in German</Text>
</HowToArrive>
<PickupService>
<Text LanguageID="1">Information about pickup service in English</Text>
</PickupService>
</ArrivalInstructions>
<CheckInOut>
<CheckInFrom>10:00</CheckInFrom>
<CheckInTo>13:00</CheckInTo>
<CheckOutUntil>09:00</CheckOutUntil>
<Place>apartment</Place>
</CheckInOut>
<PaymentMethods>
<PaymentMethod PaymentMethodID="1">Account number: 000000000000000</PaymentMethod>
<PaymentMethod PaymentMethodID="2" >VISA, MASTERCARD, AMERICAN EXPRESS</PaymentMethod>
</PaymentMethods>
<TermsAndConditionsLinks>
<TermsAndConditionsLink LanguageID="1">http://file.pdf</TermsAndConditionsLink>
<TermsAndConditionsLink LanguageID="2">ftp://file.txt</TermsAndConditionsLink>
</TermsAndConditionsLinks>
<Deposit DepositTypeID="3">15.00</Deposit>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
<Descriptions>
<Description LanguageID="1">
<Text>
Space description. Access description. Interaction description.
Neighbourhood description. Notes description. HouseRules description.
Headline description. WhyPurchased description. OwnerListingStory description.
WiFiName description. AdditionalInfo description. LocationDesc description.
</Text>
<Space>Space description.</Space>
<Access>Access description.</Access>
<Interaction>Interaction description.</Interaction>
<Neighborhood>Neighbourhood description.</Neighborhood>
<Notes>Notes description.</Notes>
<HouseRules>HouseRules description.</HouseRules>
<Headline>Headline description.</Headline>
<WhyPurchased>WhyPurchased description.</WhyPurchased>
<OwnerListingStory>OwnerListingStory description.</OwnerListingStory>
<WiFiName>WiFiName description.</WiFiName>
<AdditionalInfo>AdditionalInfo description.</AdditionalInfo>
<LocationDesc>LocationDesc description.</LocationDesc>
</Description>
</Descriptions>
<SecurityDeposit DepositTypeID="5">85.00</SecurityDeposit>
<LicenceInfo>
<LicenceNumber>Licence_Number</LicenceNumber>
</LicenceInfo>
</Property>
</Push_PutProperty_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutProperty_RQ | Integer | C | Root element |
Push_PutProperty_RQ/Authentication | C, M | Authentication details | |
Push_PutProperty_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutProperty_RQ/Authentication/Password | String(50) | M | Password |
Push_PutProperty_RQ/UserAccountId | Integer | O | Property owner's PMS Account ID |
Push_PutProperty_RQ/Property | C | Single property | |
Push_PutProperty_RQ/Property/ID | Integer | O | Unique property ID, use this element if you want to update an already uploaded property |
Push_PutProperty_RQ/Property/PUID | String(200) | O | Unique property ID in the uploader system |
Push_PutProperty_RQ/Property/PUID@BuildingID | Integer | O | Unique building ID that houses the property, define -1 when you do not need to assign the property to a building |
Push_PutProperty_RQ/Property/Name | String(150) | M, X | Property name. Use CDATA if the name contains special characters |
Push_PutProperty_RQ/Property/OwnerID | Integer | M | The property owner's ID. See PutOwner |
Push_PutProperty_RQ/Properties/Property/DetailedLocationID | Integer | M, X | The most detailed location. See ListLocations . DetailedLocationID should be provided with at least city precision |
Push_PutProperty_RQ/Property/IsActive | Boolean | M | Use this element if you want to activate (True/1) or deactivate (False/0) the property in the RU system. IsActive and IsArchived cannot be simultaneously set to true |
Push_PutProperty_RQ/Property/IsArchived | Boolean | M | Use this element if you want to archive (True/1) or restore (False/0) the property in RU system. IsActive and IsArchived cannot be simultaneously set to true |
Push_PutProperty_RQ/Property/Space | Integer | M, X | Living space in square meters |
Push_PutProperty_RQ/Property/StandardGuests | Integer | M, X | Number of guest included in the base price |
Push_PutProperty_RQ/Property/CanSleepMax | Integer | M, X | Maximum number of guests |
Push_PutProperty_RQ/Property/PropertyTypeID | Integer | M, X | See ListPropertyTypes method |
Push_PutProperty_RQ/Property/ObjectTypeID | Integer | M, X | See ListOTAPropertyTypes method |
Push_PutProperty_RQ/Property/NoOfUnits | Integer | O, X | Number of units in the multi unit property. Number of units can be increased, but cannot be decreased in future updates |
Push_PutProperty_RQ/Property/Floor | Integer | O, X | Apartment floor. If you skip this field while creating a property, we will assign the "0" value by default. Sending the empty node will result in an "invalid XML format error" response. |
Push_PutProperty_RQ/Property/NumberOfFloors | Integer | O, X | Total number of floors in the building. To delete the currently stored value, use -1. Sending the empty node will result in an "invalid XML format error" response. |
Push_PutProperty_RQ/Property/Street | String(300) | M, X | Property's street details (street name, building/flat number) |
Push_PutProperty_RQ/Property/ZipCode | String(30) | M, X | Property's zip code |
Push_PutProperty_RQ/Property/Coordinates | C, X | Property's geographical coordinates | |
Push_PutProperty_RQ/Property/Coordinates/Latitude | String(50) | M | Geographic latitude |
Push_PutProperty_RQ/Property/Coordinates/Longitude | String(50) | M | Geographic longitude |
Push_PutProperty_RQ/Property/Distances | C, O, X | A collection of distances to main city attractions/points of interest | |
Push_PutProperty_RQ/Property/Distances/Distance | C | Distance details | |
Push_PutProperty_RQ/Property/Distances/Distance/DestinationID | Integer | M | See ListDestinations |
Push_PutProperty_RQ/Property/Distances/Distance/DistanceUnitID | Integer | M | See ListDistanceUnits |
Push_PutProperty_RQ/Property/Distances/Distance/DistanceValue | Decimal (5,2) | M | Value of distance in distance units |
Push_PutProperty_RQ/Property/CompositionRoomsAmenities | C, O, X | A collection of rooms with amenities, the amenities will be assigned to the specified room. Any general amenities (e.g. parking or wireless internet connection) should be defined in Push_PutProperty_RQ/Property/Amenities element | |
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities | C, M | A single room | |
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities@CompositionRoomID | Integer | M | See ListCompositionRooms |
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities | C, O | A collection of amenities available in the specified room | |
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities/Amenity | Integer | M | See ListAmenitiesAvailableForRooms |
Push_PutProperty_RQ/Property/CompositionRoomsAmenities/CompositionRoomAmenities/Amenities/Amenity@Count | Integer | M | Number of each amenity |
Push_PutProperty_RQ/Property/Amenities | C, O, X | A collection of apartment amenities | |
Push_PutProperty_RQ/Property/Amenities/Amenity | Integer | M | See ListAmenities |
Push_PutProperty_RQ/Property/Amenities/Amenity@Count | Integer | M | Amount of each amenity |
Push_PutProperty_RQ/Property/Images | C, O, X | A collection of property images, with a maximum limit of 100 images per submission. If more than 100 images are provided, only the first 100 will be saved. | |
Push_PutProperty_RQ/Property/Images/Image | String(300) | M | Image URL |
Push_PutProperty_RQ/Property/Images/Image@ImageTypeID | Integer | M | Primary image type ID. You can provide only one primary image type per photo. For the list of image types, see ListImageTypes |
Push_PutProperty_RQ/Property/Images/Image@ImageReferenceID | String | O | Reference ID. Provide a custom ID in order to match the image to its caption or secondary image type while creating or editing the property. It can be any made-up unique number. It will not be saved in Rentals United and can change while pulling the same property’s data. |
Push_PutProperty_RQ/Property/ImageCaptions | O | A collection of image captions. You can provide multiple image captions, but only one image caption per language. It must not be sent standalone, it has to be sent along with the Images collection. | |
Push_PutProperty_RQ/Property/ImageCaptions/ImageCaption | String(255) | O | Image caption description |
Push_PutProperty_RQ/Property/ImageCaptions/ImageCaption@LanguageID | Integer | M | Language of the description. You can provide multiple. For supported languages, see ListLanguages |
Push_PutProperty_RQ/Property/ImageCaptions/ImageCaption@ImageReferenceID | String | M | ID referencing the property image to the caption. Make sure the ID is the same as in Property/Images/Image@ImageReferenceID. |
Push_PutProperty_RQ/Property/ImageSecondaryTypes | O | A collection of secondary image types | |
Push_PutProperty_RQ/Property/ImageSecondaryTypes/ImageSecondaryType | O | Secondary image type. You can provide multiple secondary image types per photo. For the list of image types, see ListImageTypes |
|
Push_PutProperty_RQ/Property/ImageSecondaryTypes/ImageSecondaryType@ImageReferenceID | String | M | ID referencing the property image to the image secondary type. Make sure the ID is the same as in Property/Images/Image@ImageReferenceID. |
Push_PutProperty_RQ/Property/ImageSecondaryTypes/ImageSecondaryType@ImageSecondaryTypeID | Integer | M | Secondary image type ID. You can provide multiple secondary image types per photo. For the list of image types, seeListImageTypes |
Push_PutProperty_RQ/Property/ArrivalInstructions | C, M, X | Property arrival instructions | |
Push_PutProperty_RQ/Property/ArrivalInstructions/Landlord | String(100) | M, X | Name of the property's landlord |
Push_PutProperty_RQ/Property/ArrivalInstructions/Email | String(100) | M, X | Landlord's email address |
Push_PutProperty_RQ/Property/ArrivalInstructions/Phone | String(100) | M, X | Landlord's phone number (with the country code) |
Push_PutProperty_RQ/Property/ArrivalInstructions/DaysBeforeArrival | Integer | M, X | The amount of days before arriving in which the guest should contact the landlord |
Push_PutProperty_RQ/Property/ArrivalInstructions/HowToArrive | C, M, X | Instructions how to arrive | |
Push_PutProperty_RQ/Property/ArrivalInstructions/HowToArrive/Text | String(40000) | O | Text that describe how to arrive to the property. Use CDATA if text contains special characters. |
Push_PutProperty_RQ/Property/ArrivalInstructions/HowToArrive/Text@LanguageID | Integer | M | Code that identifies the language of the description |
Push_PutProperty_RQ/Property/ArrivalInstructions/PickupService | C, M, X | ||
Push_PutProperty_RQ/Property/ArrivalInstructions/PickupService/Text | String(40000) | O | Text that describes the pickup service. Value returned as CDATA |
Push_PutProperty_RQ/Property/ArrivalInstructions/PickupService/Text@LanguageID | Integer | M | Code that identifies the language of the description |
Push_PutProperty_RQ/Property/CheckInOut | C, M, X | Check in, check out details | |
Push_PutProperty_RQ/Property/CheckInOut/CheckInFrom | String(5) | M, X | Accepted check in time – from (HH:MM format, 24h format) |
Push_PutProperty_RQ/Property/CheckInOut/CheckInTo | String(5) | M, X | Accepted check in time – to (HH:MM format, 24h format) |
Push_PutProperty_RQ/Property/CheckInOut/CheckOutUntil | String(5) | M, X | The latest check out time (HH:MM format, 24h format) |
Push_PutProperty_RQ/Property/CheckInOut/Place | String(100) | M, X | The location where the Place check in takes place |
Push_PutProperty_RQ/Property/CheckInOut/LateArrivalFees | C, O, X | A collection of fees for late arrivals by arrival time (separable ranges) | |
Push_PutProperty_RQ/Property/CheckInOut/LateArrivalFees/Fee | Decimal (19,2) | M | Fee for a late arrival. The maximum accepted value is 214748.36 |
Push_PutProperty_RQ/Property/CheckInOut/LateArrivalFees/Fee@From | String(5) | M | Start hour of a range (HH:MM format, 24h format) |
Push_PutProperty_RQ/Property/CheckInOut/LateArrivalFees/Fee@To | String(5) | M | End hour of a range (HH:MM format, 24h format) |
Push_PutProperty_RQ/Property/CheckInOut/EarlyDepartureFees | C, O, X | A collection of fees for early departures by arrival times (separable ranges) | |
Push_PutProperty_RQ/Property/CheckInOut/EarlyDepartureFees/Fee | Decimal (19,2) | M | Fee for an early departure. The maximum accepted value is 214748.36 |
Push_PutProperty_RQ/Property/CheckInOut/EarlyDepartureFees/Fee@From | String(5) | M | Start hour of a range (HH:MM format, 24h format) |
Push_PutProperty_RQ/Property/CheckInOut/EarlyDepartureFees/Fee@To | String(5) | M | End hour of a range (HH:MM format, 24h format) |
Push_PutProperty_RQ/Property/PaymentMethods | C, O, X | A collection of acceptable payment methods. If you want to delete all the values, send an empty collection. | |
Push_PutProperty_RQ/Property/PaymentMethods/PaymentMethod | String(500) | O | Payment method details, i.e. Bank account. Use CDATA if the text contains special characters. |
Push_PutProperty_RQ/Property/PaymentMethods/PaymentMethod@PaymentMethodID | Integer | O | Payment method. See ListPaymentMethods |
Push_PutProperty_RQ/Property/TermsAndConditionsLinks | C, O, X | A collection of terms and conditions | |
Push_PutProperty_RQ/Property/TermsAndConditionsLinks/TermsAndConditionsLink | C, M | Property terms and conditions | |
Push_PutProperty_RQ/Property/TermsAndConditionsLinks/TermsAndConditionsLink@LanguageID | Integer | M | Language ID, See ListLanguages |
Push_PutProperty_RQ/Property/TermsAndConditionsLinks/TermsAndConditionsLink/Text | String(200) | M | URL link of Terms and conditions in the selected language. Accepted http,https,ftp URL |
Push_PutProperty_RQ/Property/Deposit | Decimal (19,2) | M | Deposit amount depending on the deposit type. In case deposit is of 16%, then the value supplied should be be 16.00 along with DepositTypeID(2 or 3) suitable for percentage values. |
Push_PutProperty_RQ/Property/Deposit@DepositTypeID | Integer | M | Deposit type. See ListDepositTypes |
Push_PutProperty_RQ/Property/CancellationPolicies | C, M, X | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Push_PutProperty_RQ/Property/CancellationPolicies/CancellationPolicy | Decimal (19,2) | M | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Push_PutProperty_RQ/Property/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | M | Start of the range when the policy is valid |
Push_PutProperty_RQ/Property/CancellationPolicies/CancellationPolicy@ValidTo | Integer | M | End of the range when the policy is valid |
Push_PutProperty_RQ/Property/CancellationPoliciesText | C, O, X | A collection of cancellation policies as text | |
Push_PutProperty_RQ/Property/CancellationPoliciesText/CancellationPolicyText | C, M | Property cancellationPolicyText | |
Push_PutProperty_RQ/Property/CancellationPoliciesText/CancellationPolicyText@LanguageID | Integer | M | Code that identifies the language of the cancellation policy text |
Push_PutProperty_RQ/Property/CancellationPoliciesText/CancellationPolicyText/Text | String(40000) | M | Text that describes the cancellation policy |
Push_PutProperty_RQ/Property/CancellationPoliciesText/CancellationPolicyText/Image | String(600) | O | Image that descibes the cancellation policy |
Push_PutProperty_RQ/Property/Descriptions | C, O, X | A collection of descriptions | |
Push_PutProperty_RQ/Property/Descriptions/Description | C, M | Property description | |
Push_PutProperty_RQ/Property/Descriptions/Description@LanguageID | Integer | M | Code that identifies the language of the description |
Push_PutProperty_RQ/Property/Descriptions/Description/Text | String(40000) | M | Text that describes the property. Use CDATA if the text contains special characters. Do not decode special characters inside CDATA. Most of the Sales Channels do not accept HTML in property description. |
Push_PutProperty_RQ/Property/Descriptions/Description/Space | String(40000) | O | Additional information about the property space - what makes it unique and how many people it comfortably fits |
Push_PutProperty_RQ/Property/Descriptions/Description/Access | String(40000) | O | Additional information about the access to the property - what parts of the space the guests will be able to access |
Push_PutProperty_RQ/Property/Descriptions/Description/Interaction | String(40000) | O | Additional information about the interaction with the host - how much the host will interact with the guests and if the host will be present during the guest stay |
Push_PutProperty_RQ/Property/Descriptions/Description/Neighborhood | String(40000) | O | Additional information about the property neighborhood - what can be found in the neighbourhood and the surrounding region as well as suggestions about places to visit and unique experiences |
Push_PutProperty_RQ/Property/Descriptions/Description/Notes | String(40000) | O | Additional notes |
Push_PutProperty_RQ/Property/Descriptions/Description/HouseRules | String(40000) | O | Additional information about the house rules - instructions for guests on how to behave at the property. It should also include information whether pets are allowed and if there are rules about smoking |
Push_PutProperty_RQ/Property/Descriptions/Description/Headline | String(80) | O | Additional information about the property headline |
Push_PutProperty_RQ/Property/Descriptions/Description/WhyPurchased | String(40000) | O | Additional information about why the property was purchased |
Push_PutProperty_RQ/Property/Descriptions/Description/OwnerListingStory | String(40000) | O | Additional information about the property story, for example how the owner came to own the property and what makes it so special to the owner |
Push_PutProperty_RQ/Property/Descriptions/Description/WiFiName | String(40000) | O | Additional information about the WiFi |
Push_PutProperty_RQ/Property/Descriptions/Description/AdditionalInfo | String(40000) | O | Additional information |
Push_PutProperty_RQ/Property/Descriptions/Description/LocationDesc | String(40000) | O | Additional description about the property location |
Push_PutProperty_RQ/Property/SecurityDeposit | Decimal (8,2) | O, X | Refundable security deposit amount depending on the deposit type. In case deposit is of 16%, then the value supplied should be be 16.00 along with DepositTypeID(2 or 3) suitable for percentage values. |
Push_PutProperty_RQ/Property/SecurityDeposit@DepositTypeID | Integer | M | Deposit type. See ListDepositTypes |
Push_PutProperty_RQ/Property/AdditionalFees | C, O, X | Collection of additional fees/taxes. It cannot be sent together with Push_PutProperty_RQ/Property/ChargeProfiles. | |
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee/Value | Decimal (10,4) | M | The value of an additional fee/tax. If the discriminator of a percentage type is used, the value must be divided by 100. Hence, a 15% discriminator should be passed as 0.15. |
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@KindID | Integer | M | Additional fee/tax kind. See ListAdditionalFeeKinds . DEPRECATED and left only for backwards compatibility, you can omit it if you provide @FeeTaxType. |
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@FeeTaxType | Integer | M | Type of the fee/tax. See ListAdditionalFeeTypes . |
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@DiscriminatorID | Integer | M | It specifies how the fee/tax should be calculated (per night, per person, etc.). See ListAdditionalFeeDiscriminators . |
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@CollectTime | Integer | O | When the fee/tax should be collected (1 - upon booking, 2 - upon arrival). If not specified, the default value is set to: 1 - upon booking. Collect time is currently supported by Expedia and Trip.com only. All other sales channels treat all fees/taxes as to be paid upon booking. |
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@Optional | Boolean | O | It specifies if the fee/tax is optional or obligatory. The default value is @Obligatory. Note that taxes usually are obligatory while fees may be optional. |
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@Name | String (200) | O | A custom fee/tax name for the presentation purposes only. Do not put important details about fee calculation here. The name must be unique. |
Push_PutProperty_RQ/Property/AdditionalFees/AdditionalFee@Order | Integer | M | Additional fees/taxes order. The order is important in case the discriminator is set to cumulative. |
Push_PutProperty_RQ/Property/ChargeProfiles | C, O, X | Collection of charge profiles. It cannot be sent together with. Push_PutProperty_RQ/Property/AdditionalFees. | |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile | M, X | Collection of ApplicableAdditionalFee. Currently only one charge profile is allowed. | |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/@ID | Integer | O | ID of the charge profile. The default value is 0. Currently, only the 0 value is allowed. |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/Value | Decimal (10,4) | O | The default value is 0. |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@FeeTaxType | Integer | M | Type of the fee/tax. You are allowed to use only values specified in ListAdditionalFeeTypes except the Unknown value. |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@DiscriminatorID | Integer | M | It specifies how the fee/tax should be calculated (per night, per person, etc.). See ListAdditionalFeeDiscriminators . |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@CollectTime | Integer | O | When the fee/tax should be collected (1 - upon booking, 2 - upon arrival). If not specified, the default value is set to 1 - upon booking. Collect time is currently supported by Expedia and Trip.com only. All other sales channels treat all fees as to be paid upon booking. |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@Optional | Boolean | O | It specifies if the fee is optional or obligatory. The default value is @Obligatory. Note that taxes usually are obligatory while fees may be optional. |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee@Name | String (200) | M | Fee/tax name used to identify fees in Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/FeeNames. The name must be unique. |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo | C, M | Container of line items to which applicable additional fee/tax applies. It is mandatory for the percentage charges and can be omitted for the flat ones. | |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/FeeNames | C, M | Container of Fee Names to which applicable additional fee/tax applies. Optional if the additional charge applies to rent, otherwise at least one item needs to be provided. | |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFee/ApplicableTo/FeeName | String (200) | M | Fee name to which applicable additional fee/tax applies. |
Push_PutProperty_RQ/Property/ChargeProfiles/ChargeProfile/ApplicableAdditionalFees/ApplicableAdditionalFee/ApplicableTo/Rent | Boolean | O | It defines if applicable additional fee/tax applies to rent. The default value is false. |
Push_PutProperty_RQ/Property/LicenceInfo | O | Information about various legislation issues, registration and tourist licence; might be required for some sales channels. | |
Push_PutProperty_RQ/Property/LicenceInfo/IsExempt | Boolean | O | Should be delivered as “true” if local law does not require licence number |
Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber | String (200) | O | Licence number issued by appropriate local authorities |
Push_PutProperty_RQ/Property/LicenceInfo/IssueDate | Date | O | Date the licence was issued |
Push_PutProperty_RQ/Property/LicenceInfo/ExpirationDate | Date | O | Date the licence is valid to |
Push_PutProperty_RQ/Property/LicenceInfo/IsVATRegistered | Boolean | O | Is the property not obliged to have any licence under the local law. Pass “true” to let us know you did not skip LicenceNumber field, but you really don’t have it. |
Push_PutProperty_RQ/Property/LicenceInfo/ExemptionReason | String | O | Reason the property does not need the license. Use if it’s any of the reasons below: AustraliaNewSouthWalesHotelMotel, AustraliaNewSouthWalesServicedApartment, AustraliaNewSouthWalesBackpackerAccomodation, AustraliaNewSouthWalesCampingGround, AustraliaNewSouthWalesEcotouristFacility, AustraliaNewSouthWalesMoveableDwelling, AustraliaNewSouthWalesOtherExemptAccommodation, AustraliaTasmaniaHomeSharing, AustraliaTasmaniaLandUse, AustraliaTasmaniaTraditionalHospitality, CanadaHotelOrMotel, CanadaEventSpace, CanadaLocationExempt, FranceBedBreakfast, FranceDependentRoom, FranceMobilityLease, GreeceBoat, GreeceLeasing, GreeceMtAthos, GreecePublicStateProperty, GreeceRightHabitation, GreeceTrailerMobileHome, HawaiiHonoluluHotelOrMotel, JapanHotelsAndInnsAct, JapanEconomicZoningAct, JapanEventMinpakuStay, NetherlandsCampgroung, NetherlandsHotelOrMotel, NetherlandsNonResidentialApartment, PortugalListingIsNotAFullBuilding, PortugalListingHasARegisteredUrbanLeaseContract, PendingApplication, SpainAndalusiaListingTypeNotIncluded, SpainAndalusiaNotATouristAccomodation, SpainCataloniaListingNotFullBuilding, SpainCataloniaListingIsSharedRoom, SpainCataloniaOtherExemptionReason, SpainLongTermRentalAttestation, USABedAndBreakfast, USAHotelOrMotel, USABostonHotelMotel, USABostonBedBreakfastLodging, USABostonInstitutionalBusiness, USABostonHospitals, USASantaMonicaLicensedHotelOrBb, SicilyInProgress, LongTermBookingsOnly, TransientOccupancy, OutsideBoundaries, USANewYorkClassB, USASanFranciscoCorporateProperty, HotelOrMotel, BedAndBreakfast, CyprusTouristicAccommodation, NetherlandsRecreationProperty, NetherlandsPermitUnderMunicipalRule, NetherlandsNotMainResidence, NetherlandsGeneralExemption, NetherlandsRentingPartialProperty |
Push_PutProperty_RQ/Property/LicenceInfo/IsManagedByOwner | Boolean | O | Is the rental managed by its owner – information required by Catalonian and Portugese law. |
Push_PutProperty_RQ/Property/LicenceInfo/IsManagedByPrivatePerson | Boolean | O | Is the rental managed by a private person or a company. For now needed for French properties pushed to booking.com. |
Push_PutProperty_RQ/Property/LicenceInfo/LicenceType | String | O | For countries that require specific declaration of licence type. Use one of the following values GreeceShortTermLeaseRegister, GreeceEOT, GreeceMAG, Pending, CanadaPrincipalResidenceEstablishment, CanadaYouthTouristAccommodationEstablishment, CanadaGeneralTouristAccommodationEstablishment, BedAndBreakfast, Hotel, HomeSharing, TransientOccupancyResidentialStructure, TouristicAccommodation, TurkeyLicenseNumber, TurkeyTourismLicense, TurkeySimpleAccommodationLicense, TurkeyApplicationNumber, InglewoodHostedShortTermRental, InglewoodUnhostedShortTermRental, InglewoodVacationRental, DubaiHolidayHomePermitNumber, DubaiHotelEstablishmentLicenceNumber |
Push_PutProperty_RQ/Property/LicenceInfo/BrazilianLicenceInfo | C, O | The registration information required by Brazilian authorities | |
Push_PutProperty_RQ/Property/LicenceInfo/BrazilianLicenceInfo/CityHallInfoId | String | O | The 8-digit ID for the city hall which issued the CNPJ or CPF number. |
Push_PutProperty_RQ/Property/LicenceInfo/DenmarkLicenceInfo | O | Data required because of the new law in Denmark. Skip it for properties located outside Denmark. | |
Push_PutProperty_RQ/Property/LicenceInfo/DenmarkLicenceInfo/TypeOfProperty | String | O | Type of property according do Danish law. Possible values: primary_residence, houseboat, tent, tree_house, hotel_or_hostel, serviced_apartment, trailer, mobile_home, summer_house. |
Push_PutProperty_RQ/Property/LicenceInfo/JapaneseLicenceInfo | C, O | Licencing data required by Japanese law. Please contact us for details | |
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo | O | Data required because of the new law in France effective from January 2019. Skip it for properties located outside France. | |
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/IsRegisteredAtTradeCommercialRegister | Boolean | O | Is registered as a professional at the trade commercial register (Registre du Commerce et des Sociétés) |
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/PropertyTypeForTaxPurposes | String | O | Type of property in terms of French law to determine proper City Tax Category. Needed in some regions of France. Possible values: FurnishedTourism, TouristHotel, OutdoorAccommodations, HolidayVillage, TouristResidence, Bnb, CarsiteParkingLot, Marinas, Palaces |
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/DeclaresRevenuesAsProfessionalForDirectTaxPurposes | Boolean | O | Does the owner declare revenues as professional for direct tax purposes (see article 155 IV du CGI) |
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/TypeOfResidence | Integer | O | Type of residence according to the French law. Possible values: 1-3 1 – Primary 2 – Secondary 3 - Other |
Push_PutProperty_RQ/Property/LicenceInfo/FrenchLicenceInfo/CityTaxCategory | Integer | O | You only need to specify it if all three out of DeclaresRevenuesAsProfessionalForDirectTaxPurposes, IsRegisteredAtTradeComme rcialRegister and IsVATRegistered are "false". Possible values: 11-19 11 - palaces 12 - 5 star tourist hotels, 5 star tourist residences, 5 star furnished tourism 13 - 4 star tourist hotels, 4 star tourist residences, 4 star furnished tourist accommodation 14 - 3 star tourist hotels, 3 star tourist residences, 3 star furnished tourist accommodation 15 - 2-star tourist hotels, 2- star tourist residences, 2- star furnished holiday homes, 4 and 5-star holiday villages 16 - 1-star tourist hotels, 1- star tourist residences, 1- star furnished holiday homes, 1,2 and 3-star holiday villages, bed and breakfasts, RV parks and tourist parking lots for each 24 hours 17 - Campgrounds and caravan parks classified in 3,4 and 5 stars 18 - Campsites and caravan parks classified in 1 and 2 stars, marinas 19 - Accommodations awaiting classification or without classification |
Push_PutProperty_RQ/Property/LicenceInfo/HungarianLicenceInfo | String | C, O | Licencing data required by Hungarian law. |
Push_PutProperty_RQ/Property/LicenceInfo/HungarianLicenceInfo/PropertyType | String | O | Allowed values are: hotel, pension, campsite, holiday_cottage_resort, community_accommodation, private_accommodation, private_accommodation_rural, other_accommodation, other_accommodation_rural |
Push_PutProperty_RQ/Property/LicenceInfo/TasmanianLicenceInfo | C, O | Data required because of the law in Tasmania. Skip it for properties located outside Tasmania. | |
Push_PutProperty_RQ/Property/LicenceInfo/TasmanianLicenceInfo/TypeOfResidence | String(50) | O | "Primary" or "NonPrimary" |
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo | C, O | Data required because of the law in Hawaii. Skip it for properties located outside Hawaii. | |
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo/LandParcelIdentificationNumber | String | O | Parcel Number (Tax Map Key) |
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo/GeneralExciseTaxID | String | O | General Excise Tax ID |
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo/TransientAccomodationsTaxNumber | String | O | Transient Accommodations Tax license number |
Push_PutProperty_RQ/Property/LicenceInfo/HawaiiLicenceInfo/PropertyUnitNumber | String | O | Property’s Unit Number. You are required to add the unit number for the property field if- (1) your property is located in an apartment building, multifamily dwelling, cooperative, or other development with more than one dwelling unit per zoning lot(multi-unit development) and (2) the last four digits of the property’s TMK number does not correspond to the property’s unit number. |
Push_PutProperty_RQ/Property/LicenceInfo/ItalyLicenceInfo | C, O | Data required because of the law in Italy. Skip it for properties located outside Italy | |
Push_PutProperty_RQ/Property/LicenceInfo/ItalyLicenceInfo/NationalIdentificationNumber | String | O | National identification number (CIN) |
Push_PutProperty_RQ/Property/LicenceInfo/CanadaLicenceInfo | C, O | Data required because of the law in Canada. Skip it for properties located outside Canada | |
Push_PutProperty_RQ/Property/LicenceInfo/CanadaLicenceInfo/IsConsent | Boolean | O | Consent to share licence information with the city of Toronto |
Push_PutProperty_RQ/Property/LicenceInfo/UKLicenceInfo | O | Data required because of the new law in United Kingdom. Skip it for properties located outside United Kingdom. | |
Push_PutProperty_RQ/Property/LicenceInfo/UKLicenceInfo/IsLondonCityNightCapConsented | Boolean | O | Specifies if there is a consent to the Airbnb's attestation about a cap on the number of nights in London City. |
Push_PutProperty_RQ/Property/LicenceInfo/UKLicenceInfo/EnergyRating | String | O | Accepted values: A,B,C,D,E,F,G |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo | O | Data required because of the law in USA. Skip it for properties located outside of the USA. | |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/PropertyIsLicencedHotel | Boolean | O | Is property a licenced hotel. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/BusinessLicenceNumber | String(50) | O | Business licence number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/OperatorPermitNumber | String(50) | O | Operator permit number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/OperatorPermitNumberExpirationDate | Date | O | Expiration date of the operator permit number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/TDTNumber | String(50) | O | Tourist Development Tax number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber | String(50) | O | There are two types of licences possible to provide in Washington DC. Depending on its type, you should provide different information. -If you have an Unhosted (VR) licence only, provide it in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber -If you have a Hosted (STR) licence only: 1. Provide Hosted (STR) licence number in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber 2. Provide the same Hosted (STR) licence number again in Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber. -If you have both Unhosted (VR) and Hosted (STR) licences: 1. Provide Unhosted (VR) licence number in the Push_PutProperty_RQ/Property/LicenceInfo/LicenceNumber 2. Provide Hosted (STR) licence number in Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/STRHostedRegistrationNumber. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/TLTLicenceNumber | String(50) | O | Transient lodging tax licence number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/PortlandApplicationType | String(50) | O | Portland application type. Possible values: TypeA - You’ll need a Type A permit if you host 1-2 bedrooms in your space. It costs $65-$105 and can take up to 120 days to obtain from the city, TypeB - You’ll need a Type B permit if you host 3-5 bedrooms in your space. It costs $5,800 and can take up to a year to obtain from the city. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/MassachusettsTaxCollectionType | String | O | Tax collection type in Massachusetts. Possible values: Type1 - Your listing is one of multiple that you host in the same city, and it’s not located in a single, two, or three-family dwelling that includes your primary residence, Type2 - Your listing is located in a two or three-family dwelling that includes your primary residence. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/BostonShortTermRentalLicenceNumber | String(50) | O | Boston STR licence number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LosAngelesExtendHomeSharingApproval | Boolean | O | Has property extended sharing approval. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAFirstName | String | O | First name. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LALastName | String | O | Last name. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAUnitNumber | String | O | Unit number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAStreetNumber | String | O | Street number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAStreetName | String | O | Street name. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/LAZipCode | String | O | Zip code. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/MiamiBeachBusinessTaxReceipt | String | O | The Business Tax Receipt number. |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYBorough | String | O | New York Borough used in Booking.com. Possible values: Queens, Manhattan, TheBronx, StatenIsland, Brooklyn |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderName | String | O | Licence holder name used in License_holder_details licensing information |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderLastName | String | O | Licence holder last name name used in License_holder_details licensing information |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderStreetNumber | String | O | Licence holder street number used in License_holder_details licensing information |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYLicenceHolderStreetName | String | O | Licence holder street name used in License_holder_details licensing information |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYClassBAddressNumber | String | O | Address number used in Class B licensing information |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYClassBStreetName | String | O | Street name used in Class B licensing information |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/NYClassBZipCode | String | O | Zip Code used in Class B licensing information |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/SanDiegoBTRNumber | String | O | San Diego BTR Number |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/SanDiegoTier | Integer | O | San Diego licence tier number (1-4) |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/WashingtonClassification | String | O | Washington DC license classification. Possible values: ShortTermRental, ShortTermRentalVacationRental, LodgingBusinessLicense |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/CertificateOfUse | String | O | Certificate of use number |
Push_PutProperty_RQ/Property/LicenceInfo/USALicenceInfo/PropertyType | String | O | Possible values: primary, secondary |
C, O | DEPRECATED. Data required because of the law in Scotland. Skip it for properties located outside of Scotland. | ||
String | O | DEPRECATED. Use Property/LicenceInfo/UKLicenceInfo/EnergyRating | |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo | O | Data required because of the law in Spain. Skip it for properties located outside of Spain. | |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/IsApplicableTaxDegree | Boolean | O | Information if tax degree is applicable or not. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Block | String(50) | O | Block information. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/ComplementaryInfo | String(50) | O | Complementary information. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Door | String(50) | O | Door information. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Floor | String(50) | O | Floor information. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Gate | String(50) | O | Gate information. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/HouseNumber | String(50) | O | House number. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/MunicipalCode | String(50) | O | Municipal code. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/NumberType | String | O | Type of number. Possible values: Number, Kilometer, WithoutNumber, Other. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/NumberQualifier | String(50) | O | Number qualifier. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/Staircase | String(50) | O | Staircase information. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/StreetName | String(50) | O | Street name. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/StreetType | String(50) | O | Type of street. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/ProvinceCode | String | O | Province code. Possible value: ArabaAlava, Albacete, AlicanteAlacant, Almeria, Avila, Badajoz, IllesBalears, Barcelona, Burgos, Caceres, Cadiz, CastellonCastello, CiudadReal, Cordoba, Coruna, Cuenca, Girona, Granada, Guadalajara, GuipuzcoaGuipuzkoa, Huelva, Huesca, Jaen, Leon, Lleida, Rioja, Lugo, Madrid, Malaga, Murcia, Navarra, Ourense, Asturias, Palencia, Palmas, Pontevedra, Salamanca, Sctenerife, Cantabria, Segovia, Sevilla, Soria, Tarragona, Teruel, Toledo, Valencia, Valladolid, VizcayaBizkaia, Zamora, Zaragoza |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/CadastralNumber | String(50) | O | Cadastral number. |
Push_PutProperty_RQ/Property/LicenceInfo/SpainLicenceInfo/CadastralType | String(50) | O | Type of cadastral. Possible values: Spain, PaisVasco, Navarra, NoCadastralReference. |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos | C, O | List of Owners' licence Infos. | |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo | C, O | Owner's licence info. | |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerEmail | String(50) | O | Owner's email adress. |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerMailingAddress | String(50) | O | Owner's mailing address. |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerName | String(50) | O | Owner's name. |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerPhone | String(50) | O | Owner's phone number. |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerCitizenship | String(2000) | O | Owner's citizenship. See Pull_ListCitizenships_RQ . |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/DoesOwnerHasSpanishIdentificationNumber | Boolean | O | Does owner have Spanish identification number? |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerSpanishIdentificationNumber | String(50) | O | Owner's Spanish identification number. Provided if owner has Spanish identification number. |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationType | String | O | Owner's identification type. Provided if owner doesn't have Spanish identification number. Possible values: IdVat, Passport, IdCard, ResidenceCertificate, AnotherProbatoryDocument, NotRegistered, PersonalPublicServiceNumber. |
String(50) | O | DEPRECATED. Use IdentificationNumber. | |
Push_PutProperty_RQ/Property/LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationNumber | String(50) | O | Owner's identification number. |
Push_PutProperty_RQ/Property/LicenceInfo/BusinessTaxLicenceInfo | C, O | Business Tax licence info. | |
Push_PutProperty_RQ/Property/LicenceInfo/BusinessTaxLicenceInfo/BusinessTaxID | String(50) | O | Business Tax ID. |
Push_PutProperty_RQ/Property/LicenceInfo/BusinessTaxLicenceInfo/BusinessTaxIDNotSpecified | Boolean | O | Information if Business Tax ID is provided or not. |
Push_PutProperty_RQ/Property/LicenceInfo/TOTRegistrationLicenceInfo | C, O | Transient Occupancy Tax Registration licence info. | |
Push_PutProperty_RQ/Property/LicenceInfo/TOTRegistrationLicenceInfo/TOTRegistrationID | String(50) | O | Transient Occupancy Tax Registration ID. |
Push_PutProperty_RQ/Property/LicenceInfo/TOTRegistrationLicenceInfo/TOTRegistrationIDNotSpecified | Boolean | O | Information if Transient Occupancy Tax Registration ID is provided or not. |
Integer | O | DEPRECATED. Use PreparationTimeBeforeArrivalInHours. | |
Push_PutProperty_RQ/Property/PreparationTimeBeforeArrivalInHours | Integer | O | Sets Preparation Time Before Arrival in hours for this property. To remove PTBA from apartment negative value must be sent. |
Push_PutProperty_RQ/Property/NumberOfStars | Integer | O | Star rating of the property (1-5) |
Response
<!-- The first push completed succesfully-->
<Push_PutProperty_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
<ID>1234567</ID>
</Push_PutProperty_RS>
<!-- Completed succesfully-->
<Push_PutProperty_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_PutProperty_RS>
<!-- Error occurred-->
<Push_PutProperty_RS>
<Status ID="4">Wrong authentication data</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_PutProperty_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutProperty_RS | C | Root element | |
Push_PutProperty_RS/Status | String(100) | M | See ListStatuses |
Push_PutProperty_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutProperty_RS/ResponseID | String(32) | M | Unique response ID |
Push_PutProperty_RS/Notifs | C | Root element. Indicates that some data could not be processed. | |
Push_PutProperty_RS/Notifs/@StatusID | Integer | M | See ListStatuses |
Push_PutProperty_RS/Notifs/Notif | String | M | See [ListStatuses ](#list-statuses |
Set properties status
This method allows you to set status for multiple properties in Rentals United.
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;
using System.Collections.Generic;
Push_SetPropertiesStatus_RQ request = new Push_SetPropertiesStatus_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
IsActive = false,
IsArchived = false,
PropertyIDs = new List<int>() { 1, 4, 13 }
};
string xmlBody = XmlTools.SerializeObject<Push_SetPropertiesStatus_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_SetPropertiesStatus_RS response = XmlTools.DeserializeObject<Push_SetPropertiesStatus_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Request
<Push_SetPropertiesStatus_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<IsActive>0</IsActive>
<IsArchived>0</IsArchived>
<PropertyIDs>
<PropertyID>1</PropertyID>
<PropertyID>4</PropertyID>
<PropertyID>13</PropertyID>
</PropertyIDs>
</Push_SetPropertiesStatus_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_SetPropertiesStatus_RQ | C | Root element | |
Push_SetPropertiesStatus_RQ/Authentication | C, M | Authentication details | |
Push_SetPropertiesStatus_RQ/Authentication/UserName | String(50) | M | Username |
Push_SetPropertiesStatus_RQ/Authentication/Password | String(50) | M | Password |
Push_SetPropertiesStatus_RQ/IsActive | Boolean | O | Activate (True/1) or deactivate (False/0) properties for the specified IDs. If not provided, the value will not be changed for the specified properties. |
Push_SetPropertiesStatus_RQ/IsArchived | Boolean | O | Archive (True/1) or restore (False/0) properties for the specified IDs. If not provided, the value will not be changed for the specified properties. |
Push_SetPropertiesStatus_RQ/PropertyIDs | C, M | A collection of property IDs | |
Push_SetPropertiesStatus_RQ/PropertyIDs/PropertyID | Integer | M | Single property ID |
Response
<!-- Completed successfully -->
<Push_SetPropertiesStatus_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_SetPropertiesStatus_RS>
<!-- Error occurred -->
<Push_SetPropertiesStatus_RS>
<Status ID="17">Unexpected error, contact IT or try again</Status>
</Push_SetPropertiesStatus_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_SetPropertiesStatus_RS | C | Root element | |
Push_SetPropertiesStatus_RS/Status | String(100) | M | See ListStatuses |
Push_SetPropertiesStatus_RS/Status@ID | Integer | M | See ListStatuses |
Push_SetPropertiesStatus_RS/ResponseID | String(32) | M | Unique response ID |
Push_SetPropertiesStatus_RS/Warnings | C, O | Collection of warnings. Warnings do not block the whole process | |
Push_SetPropertiesStatus_RS/Warnings/Warning | String(100) | M | Warning for the specific property from the specified IDs. |
Push_SetPropertiesStatus_RS/Warnings/Warning@StatusID | Integer | M | ID of the status message. SeeListStatuses for details. |
Push_SetPropertiesStatus_RS/Warnings/Warning@ID | Integer | M | Property's ID |
Put property external listing
This method is designed for Sales Channels to provide information about listing status in the Sales Channel. Use this method to insert current status of a given property in your Sales Channel.
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyExternalListing;
using System.Collections.Generic;
Push_PutPropertyExternalListing_RQ request = new Push_PutPropertyExternalListing_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Properties = new List<PropertyPutInfo>()
{
new PropertyPutInfo()
{
PropertyID = 0,
Url = "http://someAgency.com/apartment0",
Status = 1,
Description = "Online but the property plan will be nice"
},
new PropertyPutInfo()
{
PropertyID = 1,
Url = "http://someAgency.com/apartment1",
Status = 1,
Description = "everything ok"
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutPropertyExternalListing_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutPropertyExternalListing_RS response = XmlTools.DeserializeObject<Push_PutPropertyExternalListing_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Request
<Push_PutPropertyExternalListing_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Properties>
<Property ID="0">
<Url>http://someAgency.com/apartment0</Url>
<Status>1</Status>
<Description>Online but the property plan will be nice</Description>
</Property>
<Property ID="1">
<Url>http://someAgency.com/apartment1</Url>
<Status>1</Status>
<Description>everything ok</Description>
</Property>
</Properties>
</Push_PutPropertyExternalListing_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPropertyExternalListing_RQ | C | Root element | |
Push_PutPropertyExternalListing_RQ/Authentication | C, M | Authentication details | |
Push_PutPropertyExternalListing_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutPropertyExternalListing_RQ/Authentication/Password | String(50) | M | Password |
Push_PutPropertyExternalListing_RQ/Properties | C | A collection of properties | |
Push_PutPropertyExternalListing_RQ/Properties/Property | C | Single property | |
Push_PutPropertyExternalListing_RQ/Properties/Property@ID | Integer | M | Unique property ID |
Push_PutPropertyExternalListing_RQ/Properties/Property/Url | String(300) | M | Url to external service |
Push_PutPropertyExternalListing_RQ/Properties/Property/Status | Integer | M | ID of the status to be set (see ListPropertyExternalStatuses ). Passing "Requested publishing" or "Requested removal" statuses is not allowed here |
Push_PutPropertyExternalListing_RQ/Properties/Property/Description | String(500) | M | Additional information for the owner, e.g. "property is online, but the property plan is missing, we need this", "property is not online, amenities are missing" |
Response
<Push_PutPropertyExternalListing_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_PutPropertyExternalListing_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPropertyExternalListing_RS | C | Root element | |
Push_PutPropertyExternalListing_RS/Status | String(100) | M | See ListStatuses |
Push_PutPropertyExternalListing_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutPropertyExternalListing_RS/ResponseID | String(32) | M | Unique response ID |
Push standard number of guests
This method has been designed to update number of people included in the seasonal price for a given property. It can be used by property providers and Revenue Management Systems.
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Property;
Push_StandardNumberOfGuests_RQ request = new Push_StandardNumberOfGuests_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Property = new PropertyStandardOfGuestInfoOnly()
{
ID = new IDIfo() { ID = 1 },
StandardGuests = 2
}
};
string xmlBody = XmlTools.SerializeObject<Push_StandardNumberOfGuests_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_StandardNumberOfGuests_RS response = XmlTools.DeserializeObject<Push_StandardNumberOfGuests_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Request
<Push_StandardNumberOfGuests_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Property>
<ID>1</ID>
<StandardGuests>2</StandardGuests>
</Property>
</Push_StandardNumberOfGuests_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_StandardNumberOfGuests_RQ | Integer | C | Root element |
Push_StandardNumberOfGuests_RQ/Authentication | C, M | Authentication details | |
Push_StandardNumberOfGuests_RQ/Authentication/UserName | String(50) | M | Username |
Push_StandardNumberOfGuests_RQ/Authentication/Password | String(50) | M | Password |
Push_StandardNumberOfGuests_RQ/Property | C | Single property | |
Push_StandardNumberOfGuests_RQ/Property/ID | Integer | O | Unique property ID, use this element if you want to update an already uploaded property |
Push_StandardNumberOfGuests_RQ/Property/StandardGuests | Integer | M | Number of guest included in the base price |
Response
Example (completed successfully)
<Push_StandardNumberOfGuests_RS>
<Status ID="0">Success</Status>
<ResponseId>85f7f6d1c13348b7a426600c17cffaf3</ResponseId>
</Push_StandardNumberOfGuests_RS>
Example (error occurred)
<Push_PutProperty_RS>
<Status ID="97">Standard number of guests must be a positive value </Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_PutProperty_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_StandardNumberOfGuests_RS | C | Root element | |
Push_StandardNumberOfGuests_RS/Status | String(100) | M | See ListStatuses |
Push_StandardNumberOfGuests_RS/Status@ID | Integer | M | See ListStatuses |
Push_StandardNumberOfGuests_RS/ResponseID | String(32) | M | Unique response ID |
Push change currency
This method has been designed to customise currency for a location for a particular user account. Currency is set as a user-location setting.
In order to set up a custom currency in selected location, you should follow the procedure below:
- Create properties using
Push_PutProperty_RQ
method. Do not upload pricing, fees or taxes yet. - Run
Push_ChangeCurrency_RQ
method to set the custom currency in the selected location. - Upload pricing, taxes and fees in the new currency.
Once you set the custom currency, you will be able to check if your setting was successful by using the Pull_ListSpecProp_RQ
method for particular properties.
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Currency;
Push_ChangeCurrency_RQ request = new Push_ChangeCurrency_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Location = 123,
Currency = "EUR"
};
string xmlBody = XmlTools.SerializeObject<Push_ChangeCurrency_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_ChangeCurrency_RS response = XmlTools.DeserializeObject<Push_ChangeCurrency_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Request
<Push_ChangeCurrency_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Location>123</Location>
<Currency>EUR</Currency>
</Push_ChangeCurrency_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ChangeCurrency_RQ | Integer | C | Root element |
Push_ChangeCurrency_RQ/Authentication | C, M | Authentication details | |
Push_ChangeCurrency_RQ/Authentication/UserName | String(50) | M | Username |
Push_ChangeCurrency_RQ/Authentication/Password | String(50) | M | Password |
Push_ChangeCurrency_RQ/Location | Integer | M | Location ID. You can provide only one location per request. See ListLocations |
Push_ChangeCurrency_RQ/Currency | String(3) | M | Currency code to set in this location. Currency code should be in line with the ISO 4217 |
Response
Example (completed successfully)
<Push_ChangeCurrency_RS>
<Status ID="0">Success</Status>
<ResponseID>03e62db972e247ed9e18cacf3d649705</ResponseID>
</Push_ChangeCurrency_RS>
Example (error occurred)
<Push_ChangeCurrency_RS>
<Status ID="339">Location already has the requested currency set.</Status>
<ResponseID>0bec91627e9145569ffaa6c9f27b6711</ResponseID>
</Push_ChangeCurrency_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ChangeCurrency_RS | C | Root element | |
Push_ChangeCurrency_RS/Status | String(100) | M | See ListStatuses |
Push_ChangeCurrency_RS/Status@ID | Integer | M | See ListStatuses |
Push_ChangeCurrency_RS/ResponseID | String(32) | M | Unique response ID |
Push methods - Availability and prices
These methods have been designed to insert non static data (ARI) into Rentals United. You can push availability (including multiunit), rates, minimum stay (minimum length of stay), maximum stay (maximum length of stay), changeover days and discounts.
Upload available units
using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyAvailabilityCalendarMultiUnit;
Push_PutAvbUnits_RQ request = new Push_PutAvbUnits_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
MuCalendar = new MUCalendar()
{
PropertyId = 1,
Availability = new MUAvailability[]
{
new MUAvailability()
{
From = new DateTime(2012, 3, 1),
To = new DateTime(2012, 3, 4),
NoOfAvailableUnits = 2,
MinStay = 4,
MaxStay = 8,
Changeover = 1
},
new MUAvailability()
{
From = new DateTime(2012, 3, 5),
To = new DateTime(2012, 3, 8),
NoOfAvailableUnits = 0,
MinStay = 7,
MaxStay = 14,
Changeover = 2
}
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutAvbUnits_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutAvbUnits_RS response = XmlTools.DeserializeObject<Push_PutAvbUnits_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to upload availability, minimum stay, maximum stay and changeover for a property and specified date ranges.
If your property is multiunit, you can set number of available units.
In order to remove minimum stay restriction for a given date range, push minimum stay value of 1.
In order to remove maximum stay restriction for a given date range, push maximum stay value of 0.
If you want to remove changeover day restriction, sent value of 4.
Initial calendar push should include availability for all future dates up to 2 years ahead (we will not save dates further than 3 years in advance). Subsequent updates should only include date ranges for which availability, minimum stay, maximum stay or changeover settings have changed in your system (delta update). Rentals United overwrites only dates you specify in the XML request and leaves other dates intact.
Request
<Push_PutAvbUnits_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<MuCalendar PropertyID="1">
<Date From="2012-03-01" To="2012-03-04" MSMXTypeID="1">
<U>2</U>
<MS>4</MS>
<MX>8</MX>
<C>1</C>
</Date>
<Date From="2012-03-05" To="2012-03-08" MSMXTypeID="2">
<U>1</U>
<MS>7</MS>
<MX>14</MX>
<C>4</C>
</Date>
<Date From="2012-03-09" To="2012-03-14">
<U>0</U>
<MS>7</MS>
<C>2</C>
</Date>
</MuCalendar>
</Push_PutAvbUnits_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutAvbUnits_RQ | C | Root element | |
Push_PutAvbUnits_RQ/Authentication | C, M | Authentication details | |
Push_PutAvbUnits_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutAvbUnits_RQ/Authentication/Password | String(50) | M | Password |
Push_PutAvbUnits_RQ/MUCalendar | C, M | Information about the property's availability calendar | |
Push_PutAvbUnits_RQ/MUCalendar@PropertyID | Integer | M | Unique property ID |
Push_PutAvbUnits_RQ/MUCalendar/Date | M | Information about the property availability in the given date range | |
Push_PutAvbUnits_RQ/MUCalendar/Date@From | String(10) | M | Start of the range when the availability information is valid (YYYY-MM-DD format) |
Push_PutAvbUnits_RQ/MUCalendar/Date@To | String(10) | M | End of the range when the availability information is valid (YYYY-MM-DD format) |
Push_PutAvbUnits_RQ/MUCalendar/Date@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. |
Push_PutAvbUnits_RQ/MUCalendar/U | Integer | M | Number of available units |
Push_PutAvbUnits_RQ/MUCalendar/MS | Integer | M | Minimum length of stay |
Push_PutAvbUnits_RQ/MUCalendar/MX | Integer | O | Maximum length of stay. Maximum stay (MX) must be greater than or equal to Minimum stay (MS). |
Push_PutAvbUnits_RQ/MUCalendar/C | Integer | M | Changeover for that day. See ChangeoverTypes |
Response
Example (completed successfully)
<Push_PutAvbUnits_RS>
<Status ID="0">Success</Status>
<ResponseID>03e62db972e247ed9e18cacf3d649705</ResponseID>
</Push_PutAvbUnits_RS>
Example (error occurred)
<Push_PutAvbUnits_RS>
<Status ID="5">An error occurred for some of the ranges</Status>
</Push_PutAvbUnits_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutAvbUnits_RS | C | Root element | |
Push_PutAvbUnits_RS/Status | String(100) | M | See ListStatuses |
Push_PutAvbUnits_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutAvbUnits_RS/ResponseID | String(32) | M | Unique response ID |
Put prices
Example 1 (standard pricing)
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyPrice;
Push_PutPrices_RQ request = new Push_PutPrices_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Prices = new PricesInfo()
{
PropertyID = 1,
Seasons = new List<SeasonInfo>()
{
new SeasonInfo
{
DateFrom = new DateTime(2012, 3, 1),
DateTo = new DateTime(2012, 3, 4),
Price = 100M,
Extra = 10M
},
new SeasonInfo
{
DateFrom = new DateTime(2012, 4, 5),
DateTo = new DateTime(2012, 3, 2),
Price = 120M,
Extra = 10M,
EGPS = new List<EGPInfo>
{
new EGPInfo { ExtraGuests = 1, Price = 25M },
new EGPInfo { ExtraGuests = 2, Price = 50M }
}
},
new SeasonInfo
{
DateFrom = new DateTime(2012, 4, 3),
DateTo = new DateTime(2012, 9, 8),
Price = 120M,
Extra = 10M,
LOSS = new List<LOSInfo>
{
new LOSInfo
{
Nights = 5,
Price = 100M,
LOSPS = new List<LOSPInfo>
{
new LOSPInfo { NrOfGuests = 5, Price = 150M },
new LOSPInfo { NrOfGuests = 6, Price = 175M }
}
},
new LOSInfo { Nights = 10, Price = 80M }
}
},
new SeasonInfo
{
DateFrom = new DateTime(2012, 9, 9),
DateTo = new DateTime(2013, 3, 2),
Price = 190M,
Extra = 20M,
LOSS = new List<LOSInfo>
{
new LOSInfo { Nights = 5, Price = 160M },
new LOSInfo { Nights = 10, Price = 140M }
},
EGPS = new List<EGPInfo>
{
new EGPInfo { ExtraGuests = 1, Price = 25M },
new EGPInfo { ExtraGuests = 2, Price = 50M }
}
},
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutPrices_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutPrices_RS response = XmlTools.DeserializeObject<Push_PutPrices_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this mehod to upload rates for specified date ranges.
Initial push should include rates for all future dates. Subsequent updates should only include date ranges for which rates have changed in your system (delta update). Rentals United overwrites only dates you specify in the XML request and leaves other dates intact.
It is not possible to remove rates; it is only possible to overwrite them with new values.
Dates with no prices set are deemed as not available.
Requests
Depending on what pricing model you want to insert, you will need to send one of the following requests:
Example 1 (standard pricing)
<Push_PutPrices_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Prices PropertyID="1">
<Season DateFrom="2012-03-01" DateTo="2012-03-04">
<Price>100.00</Price>
<Extra>10.00</Extra>
</Season>
<Season DateFrom="2012-04-05" DateTo="2012-03-02">
<Price>120.00</Price>
<Extra>10.00</Extra>
<EGPS>
<EGP ExtraGuests="1">
<Price>25.00</Price>
</EGP>
<EGP ExtraGuests="2">
<Price>50.00</Price>
</EGP>
</EGPS>
</Season>
<Season DateFrom="2012-04-03" DateTo="2012-09-08">
<Price>120.00</Price>
<Extra>10.00</Extra>
<LOSS>
<LOS Nights="5">
<Price>100.00</Price>
<LOSPS>
<LOSP NrOfGuests="5">
<Price>150.00</Price>
</LOSP>
<LOSP NrOfGuests="6">
<Price>175.00</Price>
</LOSP>
</LOSPS>
</LOS>
<LOS Nights="10">
<Price>80.00</Price>
</LOS>
</LOSS>
</Season>
<Season DateFrom="2012-09-09" DateTo="2013-03-02">
<Price>190.00</Price>
<Extra>20.00</Extra>
<LOSS>
<LOS Nights="5">
<Price>160.00</Price>
</LOS>
<LOS Nights="10">
<Price>140.00</Price>
</LOS>
</LOSS>
<EGPS>
<EGP ExtraGuests="1">
<Price>25.00</Price>
</EGP>
<EGP ExtraGuests="2">
<Price>50.00</Price>
</EGP>
</EGPS>
</Season>
</Prices>
</Push_PutPrices_RQ>
- Standard pricing (Daily/LOS pricing) request
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPrices_RQ | Integer | C | Root element |
Push_PutPrices_RQ/Authentication | C, M | Authentication details | |
Push_PutPrices_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutPrices_RQ/Authentication/Password | String(50) | M | Password |
Push_PutPrices_RQ/Prices | C | Information about the property's prices | |
Push_PutPrices_RQ/Prices@PropertyID | Integer | M | Unique property ID |
Push_PutPrices_RQ/Prices/Season | C, M | Information about the property price for the specified dates and number of guests | |
Push_PutPrices_RQ/Prices/Season@DateFrom | String(10) | M | Start of the range when a price is valid (YYYY-MM-DD format) |
Push_PutPrices_RQ/Prices/Season@DateTo | String(10) | M | End of the range when a price value is valid (YYYY-MM-DD format) |
Push_PutPrices_RQ/Prices/Season/Price | Decimal (19,2) | M | Price for the standard number of guests defined for that property. The maximum accepted value is 214748.36 |
Push_PutPrices_RQ/Prices/Season/Extra | Decimal (19,2) | O | Extra fee for each guest above the standard number of guests. The maximum accepted value is 214748.36 |
Push_PutPrices_RQ/Prices/Season/LOSS | C, O | A collection of nightly price settings depending on the length of stay | |
Push_PutPrices_RQ/Prices/Season/LOSS/LOS | C, O | Single nightly price | |
Push_PutPrices_RQ/Prices/Season/LOSS/LOS@Night | Integer | M | Number of nights for which the price applies |
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/Price | Decimal(19,2) | M | Nightly price value for the specified length of stay. The maximum accepted value is 214748.36 |
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/LOSPS | C, O | A collection of nightly price settings depending on the number of guests | |
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/LOSPS/LOSP | C, M | Single nightly price depending on the number of guests | |
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/LOSPS/LOSP@NrOfGuests | Integer | M | Number of guests |
Push_PutPrices_RQ/Prices/Season/LOSS/LOS/LOSPS/LOSP/Price | Decimal(19,2) | M | Nightly price. The maximum accepted value is 214748.36 |
Push_PutPrices_RQ/Prices/Season/EGPS | C, O | A collection of extra person price settings depending on the number of extra guests | |
Push_PutPrices_RQ/Prices/Season/EGPS/EGP | C, O | Single extra guest price | |
Push_PutPrices_RQ/Prices/Season/EGPS/EGP@ExtraGuests | Integer | M | Number of extra guests for which the price applies |
Push_PutPrices_RQ/Prices/Season/EGPS/EGP/Price | Decimal (19,2) | M | Single extra guest price value for the specified number of extra guests. The maximum accepted value is 214748.36 |
Example 2 (Full Stay Pricing)
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyPrice;
Push_PutPrices_RQ request = new Push_PutPrices_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Prices = new PricesInfo() { PropertyID = 1 },
FSPSeasons = new List<FSPSeason>()
{
new FSPSeason()
{
Date = new DateTime(2020, 1, 1),
DefaultPrice = 100M,
FSPRows = new List<FSPRow>()
{
new FSPRow()
{
NrOfGuests = 2,
Prices = new List<Price>()
{
new Price() { NrOfNights = 1, Price = 123 },
new Price() { NrOfNights = 2, Price = 200 }
}
},
new FSPRow()
{
NrOfGuests = 3,
Prices = new List<Price>()
{
new Price() { NrOfNights = 1, Price = 123 },
new Price() { NrOfNights = 2, Price = 200 }
}
}
}
},
new FSPSeason()
{
Date = new DateTime(2020, 1, 2),
DefaultPrice = 300M,
FSPRows = new List<FSPRow>()
{
new FSPRow()
{
NrOfGuests = 3,
Prices = new List<Price>()
{
new Price() { NrOfNights = 1, Price = 123 },
new Price() { NrOfNights = 2, Price = 200 }
}
},
}
}
}
}
string xmlBody = XmlTools.SerializeObject<Push_PutPrices_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutPrices_RS response = XmlTools.DeserializeObject<Push_PutPrices_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Example 2 (Full Stay Pricing)
<Push_PutPrices_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Prices PropertyID="1">
<FSPSeasons>
<FSPSeason Date="2020-01-01" DefaultPrice="200">
<FSPRows>
<FSPRow NrOfGuests="2">
<Prices>
<Price NrOfNights="1">123</Price>
<Price NrOfNights="2">200</Price>
</Prices>
</FSPRow>
<FSPRow NrOfGuests="3">
<Prices>
<Price NrOfNights="1">123</Price>
<Price NrOfNights="2">200</Price>
</Prices>
</FSPRow>
</FSPRows>
</FSPSeason>
<FSPSeason Date="2020-01-02" DefaultPrice="300">
<FSPRows>
<FSPRow NrOfGuests="3">
<Prices>
<Price NrOfNights="1">123</Price>
<Price NrOfNights="2">200</Price>
</Prices>
</FSPRow>
</FSPRows>
</FSPSeason>
</FSPSeasons>
</Prices>
</Push_PutPrices_RQ>
- Full Stay Pricing request
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPrices_RQ | C | Root element | |
Push_PutPrices_RQ/Authentication | C, M | Authentication details | |
Push_PutPrices_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutPrices_RQ/Authentication/Password | String(50) | M | Password |
Push_PutPrices_RQ/Prices | C, M | A collection of the prices for the property | |
Push_PutPrices_RQ/Prices@PropertyID | Integer | M | Unique property ID |
Push_PutPrices_RQ/FSPSeasons | C, O | A collection of one-day seasons | |
Push_PutPrices_RQ/FSPSeasons/FSPSeason | C | Information about prices for specified date with default price | |
Push_PutPrices_RQ/FSPSeasons/FSPSeason@Date | String(10) | M | Date in format YYYY-MM-DD for which season prices are applied |
Push_PutPrices_RQ/FSPSeasons/FSPSeason@DefaultPrice | Decimal(19, 2) | M | Default daily price (for Sales Channels that do not support FSP prices) - inserted with PutPrices request or generated by Rentals United. The maximum accepted value is 214748.36 |
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows | C, M | A collection of nightly price settings | |
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow | C, M | Container for nightly prices | |
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow@NrOfGuests | Integer | M | Number of guests for which collection of prices applies |
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices | C, M | Collection of nightly prices depending on the number of guests | |
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices/Price | Decimal(19, 2) | M | Single nightly price for specified on the number of nights and guests. The maximum accepted value is 214748.36 |
Push_PutPrices_RQ/FSPSeasons/FSPSeason/FSPRows/FSPRow/Prices/Price@NrOfNights | Integer | M | Number of nights for which the price applies |
Response
Regardless of the type of request you sent (Length Of Stay pricing or Full Stay Pricing), you will receive the same type of response:
<Push_PutPrices_RS>
<Status ID="5">An error occurred for some of the ranges</Status>
<ResponseID ID="1">Success</ResponseID>
<Notifs>
<Notif StatusID="5" DateFrom="2012-03-01" DateTo="2012-03-04">Internal error, please try again</Notif>
<Notif StatusID="6" DateFrom="2012-04-05" DateTo="2012-03-02">Dates mishmash</Notif>
</Notifs>
</Push_PutPrices_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPrices_RS | Integer | C | Root element |
Push_PutPrices_RS/Status | String(100) | M | See ListStatuses |
Push_PutPrices_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutPrices_RS/ResponseID | String(32) | M | Unique response ID |
Push_PutPrices_RS/Notifs | C, O | A collection of information with uploading process errors. Successfully updated ranges are not included in this collection | |
Push_PutPrices_RS/Notif | Integer | C, M | Detailed information about the erronous ranges |
Push_PutPrices_RS/Notif@StatusID | Integer | M | See ListStatuses |
Push_PutPrices_RS/Notif@DateFrom | String(10) | M | Start of a single erronous range (YYYY-MM-DD format) |
Push_PutPrices_RS/Notif@DateTo | String(10) | M | End of a single erronous range (YYYY-MM-DD format) |
Put long stay discounts
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;
Push_PutLongStayDiscounts_RQ request = new Push_PutLongStayDiscounts_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
LongStays = new LongStaysInfo()
{
LongStays = new List<LongStayInfo>
{
new LongStayInfo
{
DateFrom = new DateTime(2012, 3, 1),
DateTo = new DateTime(2012, 9, 10),
Bigger = 2,
Smaller = 20,
LongStay = 10
},
new LongStayInfo
{
DateFrom = new DateTime(2012, 9, 11),
DateTo = new DateTime(2012, 12, 1),
Bigger = 2,
Smaller = 20,
LongStay = 20
},
new LongStayInfo
{
DateFrom = new DateTime(2012, 12, 2),
DateTo = new DateTime(2012, 12, 11),
Bigger = 2,
Smaller = 20,
LongStay = 5
},
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutLongStayDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutLongStayDiscounts_RS response = XmlTools.DeserializeObject<Push_PutLongStayDiscounts_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to upload length of stay discounts for specified date ranges.
Length of stay discounts are defined by setting % discount eligible for stays longer than Bigger parameter and shorter than Smaller parameter. Bigger and Smaller parameters can contain the same value, if you want to add the discount for a specific length of stay.
Smaller value can be maximum 180 days.
Length of stay discounts updates should only include date ranges for which length of stay discounts have changed in your system (delta update). Rentals United overwrites only dates you specify in the XML request and leaves other dates intact.
In order to remove discounts, push 0 or empty value for a given date range.
Request
<Push_PutLongStayDiscounts_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<LongStays PropertyID="1">
<LongStay DateFrom="2012-03-01" DateTo="2012-09-10" Bigger="2" Smaller="20">
10
</LongStay>
<LongStay DateFrom="2012-09-11" DateTo="2012-12-01" Bigger="2" Smaller="20">
20
</LongStay>
<LongStay DateFrom="2012-12-02" DateTo="2012-12-11" Bigger="2" Smaller="20">
5
</LongStay>
</LongStays>
</Push_PutLongStayDiscounts_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutLongStayDiscounts_RQ | C | Root element | |
Push_PutLongStayDiscounts_RQ/Authentication | C, M | Authentication details | |
Push_PutLongStayDiscounts_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutLongStayDiscounts_RQ/Authentication/Password | String(50) | M | Password |
Push_PutLongStayDiscounts_RQ/LongStays | C, M | A collection of long stay discounts | |
Push_PutLongStayDiscounts_RQ/LongStays/LongStay | C, O | Long stay discount | |
Push_PutLongStayDiscounts_RQ/LongStays@PropertyID | Integer | C, M | Unique property ID |
Push_PutLongStayDiscounts_RQ/LongStays/LongStay | Integer | M | Long stay discounts value, percentage of the final price |
Push_PutLongStayDiscounts_RQ/LongStays/LongStay@DateFrom | String(10) | M | Start of the range (YYYY-MM-DD format) |
Push_PutLongStayDiscounts_RQ/LongStays/LongStay@DateTo | String(10) | M | End of the range (YYYY-MM-DD format) |
Push_PutLongStayDiscounts_RQ/LongStays/LongStay@Bigger | Integer | M | Minimum length of stay required in order to get the discount |
Push_PutDiscounts_RQ/LongStays/LongStay@Smaller | Integer | M | Maximum length of stay required in order to get the discount (max value is 180) |
Response
<Push_PutLongStayDiscounts_RS>
<Status ID="5">An error occurred for some of the ranges</Status>
<ResponseID ID="1">Success</ResponseID>
<Notifs>
<Notif StatusID="5" DateFrom="2012-12-02" DateTo="2012-12-11">Internal error, please try again</Notif>
</Notifs>
</Push_PutLongStayDiscounts_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutLongStayDiscounts_RS | C | Root element | |
Push_PutLongStayDiscounts_RS/Status | String(100) | M | See ListStatuses |
Push_PutLongStayDiscounts_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutLongStayDiscounts_RS/ResponseID | String(32) | M | Unique response ID |
Push_PutLongStayDiscounts_RS/Notifs | C, O | A collection of information with uploading process errors. Successfully updated ranges are not included in this collection | |
Push_PutLongStayDiscounts_RS/Notif | Integer | C, M | Detailed information about the erronous ranges |
Push_PutLongStayDiscounts_RS/Notif@StatusID | Integer | M | See ListStatuses |
Push_PutLongStayDiscounts_RS/Notif@DateFrom | String(10) | M | Start of a single erronous range (YYYY-MM-DD format) |
Push_PutLongStayDiscounts_RS/Notif@DateTo | String(10) | M | End of a single erronous range (YYYY-MM-DD format) |
Put last-minute discounts
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;
Push_PutLastMinuteDiscounts_RQ request = new Push_PutLastMinuteDiscounts_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
LastMinutes = new LastMinutesInfo()
{
LastMinutes = new List<LastMinuteInfo>
{
new LastMinuteInfo
{
DateFrom = new DateTime(2012, 9, 9),
DateTo = new DateTime(2012, 9, 10),
DaysToArrivalFrom = 2,
DaysToArrivalTo = 5,
LastMinute = 10
},
new LastMinuteInfo
{
DateFrom = new DateTime(2012, 9, 11),
DateTo = new DateTime(2012, 12, 1),
DaysToArrivalFrom = 1,
DaysToArrivalTo = 4,
LastMinute = 20
},
new LastMinuteInfo
{
DateFrom = new DateTime(2012, 12, 2),
DateTo = new DateTime(2012, 12, 11),
DaysToArrivalFrom = 2,
DaysToArrivalTo = 3,
LastMinute = 5
}
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutLastMinuteDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutLastMinuteDiscounts_RS response = XmlTools.DeserializeObject<Push_PutLastMinuteDiscounts_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to set last-minute discounts. Adapting last-minute discounts allows you to provide Early Bird/First Minute discounts to your guests.
Last-minute discounts can be set by providing:
- percentage discount value
- period when the discount will be offered
- period when the booking must be made to be qualified as last minute
The discount requirements are checked for each day of the reservation and not only for the day when the reservation started. It means that each day in the reservation is checked:
- if it fits the DateFrom - DateTo range
- if it fits the DaysToArrivalFrom - DaysToArrivalTo range
This ensures that the guest is offered the last-minute discount, but the discount does not dramatically decrease the price in the case of longer stays.
Example: You offer last-minute discounts in February for bookings made 0 to 7 days before arrival.
In the case when your guest makes a reservation on 1st February for 5th - 10th February, the last minute discount will be applied to the following days:
- 05.02 - discount applied
- 06.02 - discount applied
- 07.02 - discount applied
- 08.02 - the discount will not be applied because the reservation was made 8 days ago (DaysToArrivalTo=”7”)
- 09.02 - the discount will not be applied because the reservation was made 9 days ago (DaysToArrivalTo=”7”)
Last-minute discount updates should only include date ranges for which last-minute discounts have changed in your system (delta update). Rentals United overwrites only the dates you specify in the XML request and leaves other dates intact.
In order to remove discounts, push <LastMinute>0</LastMinute> or leave the value empty for a given date range.
Request
<Push_PutLastMinuteDiscounts_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<LastMinutes PropertyID="1">
<LastMinute DateFrom="2012-09-09" DateTo="2012-09-10" DaysToArrivalFrom="2" DaysToArrivalTo="5">
10
</LastMinute>
<LastMinute DateFrom="2012-09-11" DateTo="2012-12-01" DaysToArrivalFrom="1" DaysToArrivalTo="4">
20
</LastMinute>
<LastMinute DateFrom="2012-12-02" DateTo="2012-12-11" DaysToArrivalFrom="2" DaysToArrivalTo="3">
5
</LastMinute>
</LastMinutes>
</Push_PutLastMinuteDiscounts_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutLastMinuteDiscounts_RQ | C | Root element | |
Push_PutLastMinuteDiscounts_RQ/Authentication | C, M | Authentication details | |
Push_PutLastMinuteDiscounts_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutLastMinuteDiscounts_RQ/Authentication/Password | String(50) | M | Password |
Push_PutLastMinuteDiscounts_RQ/LastMinutes | C, M | Last-minute discounts | |
Push_PutLastMinuteDiscounts_RQ/LastMinutes@PropertyID | Integer | M | Unique property ID |
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute | Integer | O | Value to be discounted from the final price |
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute@DateFrom | String(10) | M | Start of the period when the discount is offered (YYYY-MM-DD format). Only bookings made in this period will be checked against the discount requirements |
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute@DateTo | String(10) | M | End of the period when discount is offered (YYYY-MM-DD format). Only bookings made in this period will be checked against the discount requirements |
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute@DaysToArrivalFrom | Integer | M | Minimum number of days between each day of the reservation and the day when the booking is made in order to apply the discount. The discount will be applied only to those days in the reservation that fit this range. The maximum value is 180 days |
Push_PutLastMinuteDiscounts_RQ/LastMinutes/LastMinute@DaysToArrivalTo | Integer | M | Maximum number of days between each day of the reservation and the day when the booking is made. The discount will be applied only to those days in the reservation that fit this range |
Response
<Push_PutLastMinuteDiscounts_RS>
<Status ID="5">An error occurred for some of the ranges</Status>
<ResponseID ID="1">Success</ResponseID>
<Notifs>
<Notif StatusID="5" DateFrom="2012-12-02" DateTo="2012-12-11">Internal error, please try again</Notif>
</Notifs>
</Push_PutLastMinuteDiscounts_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutLastMinuteDiscounts_RS | C | Root element | |
Push_PutLastMinuteDiscounts_RS/Status | String(100) | M | See ListStatuses |
Push_PutLastMinuteDiscounts_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutLastMinuteDiscounts_RS/ResponseID | String(32) | M | Unique response ID |
Push_PutLastMinuteDiscounts_RS/Notifs | C, O | A collection of information with uploading process errors. Successfully updated ranges are not included in this collection | |
Push_PutLastMinuteDiscounts_RS/Notif | Integer | C, M | Detailed information about the erronous ranges |
Push_PutLastMinuteDiscounts_RS/Notif@StatusID | Integer | M | See ListStatuses |
Push_PutLastMinuteDiscounts_RS/Notif@DateFrom | String(10) | M | End of a single erronous range (YYYY-MM-DD format) |
Push_PutLastMinuteDiscounts_RS/Notif@DateTo | String(10) | M | End of a single erronous range (YYYY-MM-DD format) |
VR price calculation logic
The price consists of different elements. However, the price for a night is calculated based on the seasonal price, any extra guests fees and discounts.
SeasonalPrice + (NumberOfGuestsInReservation - StandardGuests) * ExtraGuestsFee - LastMinuteDiscount - LongStayDiscount = PriceFor1Night
where LastMinuteDiscount = SeasonalPrice * DiscountValue
where LongStayDiscount = SeasonalPrice * DiscountValue
The below examples will use the scenario to walk you step by step and explain how the price is calculated.
Property prices
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyPrice;
Push_PutPrices_RQ request = new Push_PutPrices_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Prices = new PricesInfo()
{
PropertyID = 1,
Seasons = new List<SeasonInfo>()
{
new SeasonInfo
{
DateFrom = new DateTime(2012, 3, 1),
DateTo = new DateTime(2012, 3, 4),
Price = 100M,
Extra = 10M,
LOSS = new List<LOSInfo>
{
new LOSInfo
{
Nights = 2,
Price = 90M,
LOSPS = new List<LOSPInfo>
{
new LOSPInfo
{
NrOfGuests = 5,
Price = 160M
}
}
},
}
},
new SeasonInfo
{
DateFrom = new DateTime(2012, 3, 5),
DateTo = new DateTime(2012, 4, 2),
Price = 120M,
Extra = 10M,
EGPS = new List<EGPInfo>
{
new EGPInfo
{
ExtraGuests = 1,
Price = 20M
},
new EGPInfo
{
ExtraGuests = 2,
Price = 20M
}
}
},
new SeasonInfo
{
DateFrom = new DateTime(2012, 4, 3),
DateTo = new DateTime(2012, 9, 8),
Price = 120M,
Extra = 10M
},
new SeasonInfo
{
DateFrom = new DateTime(2012, 9, 9),
DateTo = new DateTime(2013, 3, 2),
Price = 190M,
Extra = 20M
},
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutPrices_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutPrices_RS response = XmlTools.DeserializeObject<Push_PutPrices_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
<Push_PutPrices_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Prices PropertyID="1">
<Season DateFrom="2012-03-01" DateTo="2012-03-04">
<Price>100.00</Price>
<Extra>10.00</Extra>
<LOSS>
<LOS Nights="2">
<Price>90.00</Price>
<LOSPS>
<LOSP NrOfGuests="5">
<Price>160.00</Price>
</LOSP>
</LOSPS>
</LOS>
</LOSS>
</Season>
<Season DateFrom="2012-03-05" DateTo="2012-04-02">
<Price>120.00</Price>
<Extra>10.00</Extra>
<EGPS>
<EGP ExtraGuests="1">
<Price>20.00</Price>
</EGP>
<EGP ExtraGuests="2">
<Price>20.00</Price>
</EGP>
</EGPS>
</Season>
<Season DateFrom="2012-04-03" DateTo="2012-09-08">
<Price>120.00</Price>
<Extra>10.00</Extra>
</Season>
<Season DateFrom="2012-09-09" DateTo="2013-03-02">
<Price>190.00</Price>
<Extra>20.00</Extra>
</Season>
</Prices>
</Push_PutPrices_RQ>
Property discounts
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;
Push_PutLongStayDiscounts_RQ request = new Push_PutLongStayDiscounts_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
LongStays = new LongStaysInfo()
{
LongStays = new List<LongStayInfo>
{
new LongStayInfo
{
DateFrom = new DateTime(2012, 3, 1),
DateTo = new DateTime(2012, 9, 10),
Bigger = 2,
Smaller = 20,
LongStay = 10
},
new LongStayInfo
{
DateFrom = new DateTime(2012, 9, 11),
DateTo = new DateTime(2012, 12, 1),
Bigger = 2,
Smaller = 20,
LongStay = 20
},
new LongStayInfo
{
DateFrom = new DateTime(2012, 12, 2),
DateTo = new DateTime(2012, 12, 11),
Bigger = 2,
Smaller = 20,
LongStay = 5
},
new LongStayInfo
{
DateFrom = new DateTime(2014, 1, 2),
DateTo = new DateTime(2014, 12, 11),
Bigger = 2,
Smaller = 20,
LongStay = 10
}
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutLongStayDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutLongStayDiscounts_RS response = XmlTools.DeserializeObject<Push_PutLongStayDiscounts_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyDiscount;
Push_PutLastMinuteDiscounts_RQ request = new Push_PutLastMinuteDiscounts_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
LastMinutes = new LastMinutesInfo()
{
LastMinutes = new List<LastMinuteInfo>
{
new LastMinuteInfo
{
DateFrom = new DateTime(2012, 9, 9),
DateTo = new DateTime(2012, 9, 10),
DaysToArrivalFrom = 1,
DaysToArrivalTo = 5,
LastMinute = 10
},
new LastMinuteInfo
{
DateFrom = new DateTime(2012, 9, 11),
DateTo = new DateTime(2012, 12, 1),
DaysToArrivalFrom = 1,
DaysToArrivalTo = 4,
LastMinute = 20
},
new LastMinuteInfo
{
DateFrom = new DateTime(2012, 12, 2),
DateTo = new DateTime(2012, 12, 11),
DaysToArrivalFrom = 2,
DaysToArrivalTo = 3,
LastMinute = 5
}
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutLastMinuteDiscounts_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutLastMinuteDiscounts_RS response = XmlTools.DeserializeObject<Push_PutLastMinuteDiscounts_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
<Push_PutLongStayDiscounts_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<LongStays PropertyID="1">
<LongStay DateFrom="2012-03-01" DateTo="2012-09-10" Bigger="2" Smaller="20">
10
</LongStay>
<LongStay DateFrom="2012-09-11" DateTo="2012-12-01" Bigger="2" Smaller="20">
20
</LongStay>
<LongStay DateFrom="2012-12-02" DateTo="2012-12-11" Bigger="2" Smaller="20">
5
</LongStay>
<LongStay DateFrom="2014-01-02" DateTo="2014-12-11" Bigger="2" Smaller="20">
10
</LongStay>
</LongStays>
</Push_PutLongStayDiscounts_RQ>
<Push_PutLastMinuteDiscounts_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<LastMinutes PropertyID="1">
<LastMinute DateFrom="2012-09-09" DateTo="2012-09-10" DaysToArrivalFrom="1" DaysToArrivalTo="5">
10
</LastMinute>
<LastMinute DateFrom="2012-09-11" DateTo="2012-12-01" DaysToArrivalFrom="1" DaysToArrivalTo="4">
20
</LastMinute>
< LastMinute DateFrom="2012-12-02" DateTo="2012-12-11" DaysToArrivalFrom="2" DaysToArrivalTo="3">
5
</LastMinute>
</LastMinutes>
</Push_PutLastMinuteDiscounts_RQ>
Property details
The property owner can define various details for the property which affect the final price.
For example:
Standard number of guests – 3
Can sleep max – 5
Cleaning fee - 10,00
These details mean that the property price for 1, 2 or 3 guests is the same, but there is an extra fee for the 4th and 5th guest.
Example stay 1
In this example, today's date is 2012-01-01.
Stay details:
arrival – 2012-03-04
departure – 2012-03-06
number of guests: 4
It is a 2-nights stay and the number of guests exceeds the standard number of guests (3), hence a fee for an extra guest will be applied. Since the property has a LOS policy defined, a discount will be applied.
The seasonal price for 2012-03-04 is 90, and the seasonal price for 2012-03-05 is 120.
Price calculation
Price calculation for each day:
2012-03-04 – 90+(4-3)*10 = 100
– there is a LOS element with Nights = 2 (equal to the length of stay), in this case the price from the LOS element (90) will be applied.
2012-03-05 – 120+(4-3)*20 = 140
– there is an EGP element with ExtraGuests=1 (equal to the number of extra guests), in this case the extra guest price from the EGP element (20) will be applied.
Seasonal prices total before discounts – 100+140 = 240
Discounts:
Last minute:
2012-03-04: none
2012-03-05: none
Long stay:
2012-03-04: 10% of 90 = 9
2012-03-05: 10% of 120 = 12
Final calculation:
Seasonal price – discounts
2012-03-04: 100-0-9 = 91
2012-03-05: 140-0-12 = 128
Final price:
Daily prices + cleaning fee
91+128+10 = 229
Example stay 2
In this example today's date is 2012-09-07.
Stay details:
arrival – 2012-09-08
departure – 2012-09-12
number of guests: 5
It is a 4-nights stay and the number of guests exceeds the standard number of guests (3), hence a fee for an extra guests will be applied. The stay was booked last-minute, so a discount will be applied, too.
Price calculation
Price calculation for each day:
2012-09-08 – 120+(5-3)*10 = 140
2012-09-09 – 190+(5-3)*20 = 230
2012-09-10 – 190+(5-3)*20 = 230
2012-09-11 – 190+(5-3)*20 = 230
Seasonal prices total before discounts – 140+230+230+230 = 830
Discounts:
Last minute:
2012-09-08: none
2012-09-09: 10% of 190 = 19
2012-09-10: 10% of 190 = 19
2012-09-11: 20% of 190 = 38
Long stay:
2012-09-08: 10% of 120 = 12
2012-09-09: 10% of 190 = 19
2012-09-10: 10% of 190 = 19
2012-09-11: 20% of 190 = 28
Final calculation:
Seasonal price – discounts
2012-09-08: 140-0-12 = 128
2012-09-09: 230-19-19 = 192
2012-09-10: 230-19-19 = 192
2012-09-11: 230-38-38 = 154
Final price:
Daily prices + cleaning fee
128+192+192+154+10,00 = 676,00
Example stay 3
In this example today's date is 2012-09-07.
Stay details:
arrival – 2014-09-08
departure – 2014-09-12
number of guests: 5
It is a 4-nights stay and the number of guests exceeds the standard number of guests (3), hence a fee for an extra guests will be applied. There is no seasonal price defined for this period, so the regular base price will be applied. The booking meets the requirements of a long stay, so the LOS discount will be applied.
Price calculation
Price calculation for each day:
2014-09-08 – 100+(5-3)*10 = 120
2014-09-09 – 100+(5-3)*10 = 120
2014-09-10 – 120+(5-3)*15 = 150
2014-09-11 – 120+(5-3)*20 = 160
Base prices total before discounts – 120+120+150+160 = 550
Discounts:
Last minute:
2014-09-08: none
2014-09-09: none
2014-09-10: none
2014-09-11: none
Long stay:
2014-09-08: 10% of 100 = 10
2014-09-09: 10% of 100 = 10
2014-09-10: 10% of 120 = 12
2014-09-11: 10% of 120 = 12
Final calculation
Base price – discounts
2014-09-08: 120-0-10 = 110
2014-09-09: 120-0-10 = 110
2014-09-10: 150-0-12 = 138
2014-09-11: 160-0-12 = 148
Final price:
Daily prices + cleaning fee
110+110+138+148+10,00 = 516,00
Example stay 4
In this example today's date is 2012-01-01.
Stay details:
arrival – 2012-03-04
departure – 2012-03-06
number of guests: 5
It is a 2-nights stay and the number of guests exceeds the standard number of guests (3), hence a fee for an extra guests will be applied. There is a LOS element for this period. There is also a nightly price (LOSP) element defined for bookings including 5 guests.
Price calculation
Price calculation for each day:
2012-03-04 – 160+(5-3)*10 = 180
– there is LOS element with Nights = 2 (equal to the length of stay) and LOSP element with NrOfGuests=5 (equal to the number of guests), in this case the price from LOS element (90) is ignored and LOSP element price (160) will be applied.
2012-03-05 – 120+(5-3)*20 = 160
– there is EGP element with ExtraGuests=2 (equal to the number of extra guests), in this case the extra guest price from EGP element (20) will be applied.
Seasonal price – 180+160 = 340
Discounts:
Last minute:
2012-03-04: none
2012-03-05: none
Long stay:
2012-03-04: 10% of 160 = 16
2012-03-05: 10% of 120 = 12
Final calculation:
Seasonal price – discounts
2012-03-04: 180-0-16 = 164
2012-03-05: 160-0-12 = 148
Final price:
Daily prices + cleaning fee
164+148+10 = 322
Extra fees and taxes
Additional fees represent different kinds of additional fees which can be applied to the rental price. This does not concern explicitly specified fees on the property, for example cleaning fees, security deposit, extra guest price etc.
Additional fees are applied onto the final price (for example, after adding the cleaning fee). Each fee is applied according to it's order: fees with small order number are applied first. Each fee is applied on the result from the previous fee calculation, unless otherwise specified.
Additional fee item consists of: Order, FeeTaxType, DiscriminatorID and Value.
Fees & Taxes example 1
Example 1
<AdditionalFees>
<AdditionalFee FeeTaxType="1" DiscriminatorID="1" Order="0">
<Value>10</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="3" Order="1">
<Value>0.1</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="4" Order="2">
<Value>0.15</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="2" Order="5">
<Value>2</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="3" Order="66">
<Value>0.23</Value>
</AdditionalFee>
</AdditionalFees>
Taking input price: 33.12, reservation for 2 days and following additional fees collection.
The calculations is as follows:
DiscriminatorID="1" is a "FlatPerStay" fee, therefore to 33.12 we add 10. Current price: 43.12.
DiscriminatorID="3" is a "IndependentPercentage" fee, therefore the current price doesn't change (stays 43.12), but at the end we have to remember to add 4.31 for the taxes fees.
DiscriminatorID="4" is a "CumulativePercentage" fee, therefore to 43.12 we add (43.12 * 0.15)=6.47. Current price: 43.12 + 6.47 = 49.59.
DiscriminatorID="2" is a "FixedPerDay" fee, therefore to the current price we add 2 (the length of the reservation) * 2 (the value of the fee)=4. Current price: 53.59.
DiscriminatorID="3" is a "IndependentPercentage" fee, therefore the current price doesn't change (stays 53.59), but at the end we have to remember to add 53.59 * 0.23 = 12.33 for the taxes fees.
End of calculations. The final price is: 53.59 (the price from the last step) + 4.31 + 12.33 (the independent fees) = 70.23. All of the fees were taxes, so taxes added in this example = 37.11.
Fees & Taxes example 2
Example 2
<AdditionalFees>
<AdditionalFee FeeTaxType="1" DiscriminatorID="1" Order="2">
<Value>10</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="3" Order="1">
<Value>0.1</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="4" Order="0">
<Value>0.15</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="2" Order="5">
<Value>2</Value>
</AdditionalFee>
<AdditionalFee FeeTaxType="1" DiscriminatorID="3" Order="66">
<Value>0.23</Value>
</AdditionalFee>
</AdditionalFees>
Taking input price: 100, reservation for 2 days and following additional fees collection:
The calculations is as follows:
DiscriminatorID= 4 (note the order value) is a "CumulativePercentage" fee, therefore to 100 we add (0.15 * 100). Current price: 115.
DiscriminatorID="3" is a "IndependentPercentage" fee, therefore the current price doesn't change (stays 115), but at the end we have to remember to add 115 * 0.1 = 11.5 for the taxes fees.
DiscriminatorID="1" is a "FlatPerStay" fee, therefore to 115 we add 10. Current price: 125.
DiscriminatorID="2" is a "FixedPerDay" fee, therefore to the current price we add 2 (the length of the reservation) * 2 (the value of the fee) = 4. Current price: 129.
DiscriminatorID="3" is a "IndependentPercentage" fee, therefore the current price doesn't change (stays 129), but at the end we have to remember to add 129 * 0.23 = 29.67 for the taxes fees.
End of calculations. The final price is: 129 (the price from the last step) + 11.5 + 29.67 (the independent fees) = 170.17. All of the fees were taxes, so taxes added in this example = 70.17.
Charge Profile Example 1
Charge Profile Example 1
<ChargeProfile>
<ApplicableAdditionalFee FeeTaxType="41" DiscriminatorID="1" Name="cleaning">
<Value>50</Value>
</ApplicableAdditionalFee>
<ApplicableAdditionalFee FeeTaxType="1" DiscriminatorID="3" Name="state tax">
<Value>10</Value>
<ApplicableTo>
<FeeNames>
<FeeName>cleaning</FeeName>
</FeeNames>
<Rent>true</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
</ChargeProfile>
Taking input price: 100 and following charge profile:
The calculations is as follows:
The rent is 100
The cleaning fee (FeeTaxType="41") is a flat charge (DiscriminatorID="1") and its amount is 50
The state tax (FeeTaxType="1" = LocalTax, DiscriminatorID="3" = IndeplendentPercentage) applies to the cleaning giving in result: 50 * 10% = 5
The tax applies on rent giving in result: 100 * 10% = 10
The final price is 100 + 50 + 5 + 10 = 165
FSP calculation logic
In the Full Stay Pricing model the prices are calculated differently than in Base and Length of Stay pricing. The examples below should help to clear all doubts regarding price calculation with this pricing model and the model itself.
In Standard Pricing model, stay prices in Rentals United are calculated on a nightly basis. The system calculates the price for each night separately and then summarizes them to get the final price for a stay. All is fine as long as the PMS partner provides us with nightly pricing. If they share prices of possible stays, it gets more complicated (especially in the case of overlapping stays) and discrepancies can occur.
With the introduction of the FSP model it became possible to save a total price for a given arrival and number of nights in Rentals United - a full price for a stay. Seasons are one-night long and prices within seasons are applicable for up to the given number of guests (see Example Stay 3
).
Example stay 1
<Prices PropertyID="1">
<FSPSeasons>
<FSPSeason Date="2020-02-01" DefaultPrice="150">
<FSPRows>
<FSPRow NrOfGuests="3">
<Prices>
<Price NrOfNights="1">200</Price>
<Price NrOfNights="2">300</Price>
<Price NrOfNights="3">425</Price>
<Price NrOfNights="4">575</Price>
<Price NrOfNights="5">700</Price>
</Prices>
</FSPRow>
</FSPRows>
</FSPSeason>
<FSPSeason Date="2020-02-02" DefaultPrice="150">
<FSPRows>
<FSPRow NrOfGuests="2">
<Prices>
<Price NrOfNights="1">123</Price>
<Price NrOfNights="2">234</Price>
<Price NrOfNights="3">345</Price>
<Price NrOfNights="4">456</Price>
<Price NrOfNights="5">567</Price>
</Prices>
</FSPRow>
<FSPRow NrOfGuests="3">
<Prices>
<Price NrOfNights="1">150</Price>
<Price NrOfNights="2">250</Price>
<Price NrOfNights="3">350</Price>
<Price NrOfNights="4">450</Price>
<Price NrOfNights="5">550</Price>
</Prices>
</FSPRow>
</FSPRows>
</FSPSeason>
<FSPSeason Date="2020-02-03" DefaultPrice="100">
<FSPRows>
<FSPRow NrOfGuests="1">
<Prices>
<Price NrOfNights="1">100</Price>
<Price NrOfNights="2">150</Price>
<Price NrOfNights="3">200</Price>
<Price NrOfNights="4">350</Price>
<Price NrOfNights="5">500</Price>
</Prices>
</FSPRow>
<FSPRow NrOfGuests="2">
<Prices>
<Price NrOfNights="1">110</Price>
<Price NrOfNights="2">160</Price>
<Price NrOfNights="3">200</Price>
<Price NrOfNights="4">350</Price>
<Price NrOfNights="5">500</Price>
</Prices>
</FSPRow>
<FSPRow NrOfGuests="3">
<Prices>
<Price NrOfNights="1">120</Price>
<Price NrOfNights="2">170</Price>
<Price NrOfNights="3">200</Price>
<Price NrOfNights="4">350</Price>
<Price NrOfNights="5">500</Price>
</Prices>
</FSPRow>
</FSPRows>
</FSPSeason>
</FSPSeasons>
</Prices>
Let's say that we want to determine the cost of a 3 nights’ stay for 3 guests from 2020-02-03.
In the pricing model on right, we need to look for an FSPSeason section with the Date attribute set to 2020-02-03 and an FSPRow with the NrOfGuests attribute set to 3.
Now all we need to do is find the Price in the chosen FSPRow that has the NrOfNights attribute set to 3. The Price exists, so the final price of this reservation is 200.
We can also determine the cost by multiplying DefaultPrice of chosen FSPSeason by length of this stay. In this example final price of this reservation would be 100 (default price) * 3 (length of this stay) = 300
. That price would be used only in Sales Channels that didn't implement Full Stay Pricing model. This is why it's very important to remember about setting DefaultPrice value.
Example stay 2
Let's say that we want to determine the cost of a 4 nights’ stay for 2 guests from 2020-02-02.
Similarly as in the previous example, we need to find an FSPSeason with its Date attribute set to 2020-02-02 and an FSPRow with its NrOfGuests attribute set to 2.
There is a Price with its NrOfNights attribute set to 4, so the final price of this reservation is 456.
Example stay 3
Let's say, we want to determine the cost of another stay, this time for 5 nights and for one guest, starting on 2020-02-01.
Similarly to previous examples, we need to find an FSPSeason with its Date attribute set to 2020-02-01 and an FSPRow with its NrOfGuests attribute set to 1. While the first is easily done, there is no FSPRow the season, with its NrOfGuests attribute equal to 1. In such a case we need to look for an FSPRow with its NrOfGuests attribute set to the next closest value. In this case, the next closest value is 3, so the FSPRow with NrOfGuest attribute set to 3 applies.
Now we need to locate a Price element with its NrOfNights attribute set to 5. The final price for this stay is 700.
Example stay 4
Let's say that we want to determine the cost of a 6 nights’ stay for 2 guests from 2020-02-02.
Information about such stay is not included in FSProw, then it's not possible to make such reservation.
Full Stay Pricing FAQ
- Why should I use FSP?
Using FSP reduces workload on mirroring price calculation logic in your code. You have a simple collection of predefined stays with fixed parameters such as startdate, length of stay, number of guests. Furthermore, you eliminate possiblity of price discrepancies and customer complaints. - Do FSP affect minimum stay?
Full Stay Pricing does not affect Minimum Stay. Minimum stay has to be respected when making booking aswell. - Do FSP affect changeover days?
Full Stay Pricing does not affect changeover day restrictions. Changeover day restrictions have to be respected when making booking aswell. - Do FSP affect discounts?
Yes. No discounts are possible for a property when using the FSP pricing model. - Do FSP affect extra guest price?
Yes - Full Stay Pricing and extra guests prices cannot work together. - Do FSP affect occupancy pricing?
Yes - Full Stay Pricing and occupancy pricing cannot work together. - If PMS only provides stay prices for up to, say, 30 days, how to calculate 40-night stay?
40-night stay is not possible. Maximum stay length calculated from FSP in Rentals United is 35. Therefore it is not possible to receive 40-night stay’s cost from FSP. - How is FSP sent to channels?
For channels that support LOS pricing, FSP will be sent without any changes. For channels synchronizing data with Rentals United API that were integrated before FSP release, FSP will be translated into LOS pricing in order to maintain backwards compatibility. - My properties' prices were put in Standard Pricing model, but I would like to change them to FSP. What should I do? What would happen to old prices?
You just need to insert FSP prices the same way they were inserted inPutPrices
request. The moment you insert FSP prices, old ones will be replaced by the FSP prices. How Rentals United pricing logic works and how FSP differs from LOS?
VR price calculation logic
andFSP price calculation logic
sections cover all pricing logic in Rentals United. Reading them through will grant you full knowledge about calculating prices in our system.
The biggest difference between Full Stay Pricing and Length Of Stay pricing is that FSPs are more accurate than LOSes. In LOSes you can define general price per night if stay lasts X nights, while in FSP you can set a price for a stay with starting on specific day and lasting specific number of nights.
Consider the following example:
We would like to have Full Stay Pricing for our property with such defined prices in euros:- 2021-01-01: 100, 180, 240
- 2021-01-02: 90, 160, 210
- 2021-01-01: 100, 90, 80
- 2021-01-02: 90, 80, 70
From FSP values, we will get 180€, while from LOS values we will get 170€ (90€ + 80€).
This kind of discrepancies might show up when we would like to have more complex pricing tables. Using Full Stay Pricing model makes inserting such pricings significatly easier.How does it translate to the sales channels pricing?
Full Stay Prices will be sent to Sales Channels in the following way:
SC implements FSP | SC doesn't implement FSP | |
---|---|---|
Push SC | The same way as they were inserted | Convertion to LOSes will be made |
Pull SC | The same way as they were inserted | Will use DefaultPrice or convert FSPs to LOSes (by setting PriceModelMode in List property prices to 0) |
- How FSP works with fees and taxes?
Fees and taxes need to be added to price that will be taken from Full Stay Pricing model. It is described in detail in VR price calculation logic'sExtra fees and taxes
section.
Reservations, Requests & Leads
These methods have been designed to manage reservations through their entire lifecycle (across multiple reservation statuses).
Put confirmed reservations
Example
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_PutConfirmedReservationMulti_RQ request = new Push_PutConfirmedReservationMulti_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Reservation = new ReservationInfo()
{
StayInfos = new List<StayInfo2>()
{
new StayInfo2()
{
PropertyID = 2,
DateFrom = new DateTime(2012, 3, 2),
DateTo = new DateTime(2012, 3, 14),
NumberOfGuests = 3,
Costs = new CostsInfo()
{
RUPrice = 120.00M,
ClientPrice = 140.00M,
AlreadyPaid = 0.00M
}
},
new StayInfo2()
{
PropertyID = 4,
DateFrom = new DateTime(2012, 3, 2),
DateTo = new DateTime(2012, 3, 14),
NumberOfGuests = 3,
Costs = new CostsInfo()
{
RUPrice = 120.00M,
ClientPrice = 140.00M,
AlreadyPaid = 0.00M
}
}
},
CustomerInfo = new CustomerInfo()
{
Name = "Test",
SurName = "Test",
Email = "test.test@test.com",
Phone = "+11 111 111 111",
SkypeID = "test.test",
Address = "Street 1/2",
ZipCode = "00-000",
LanguageID = 1,
CountryID = new CountryIDInfo()
{
CountryID = 42
}
},
Comments = "test"
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutConfirmedReservationMulti_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutConfirmedReservationMulti_RS response = XmlTools.DeserializeObject<Push_PutConfirmedReservationMulti_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Example (when the credit card information is provided)
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_PutConfirmedReservationMulti_RQ request = new Push_PutConfirmedReservationMulti_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Reservation = new ReservationInfo()
{
StayInfos = new List<StayInfo2>()
{
new StayInfo2()
{
PropertyID = 2,
DateFrom = new DateTime(2012, 3, 2),
DateTo = new DateTime(2012, 3, 14),
NumberOfGuests = 3,
Costs = new CostsInfo()
{
RUPrice = 120.00M,
ClientPrice = 140.00M,
AlreadyPaid = 0.00M
}
},
new StayInfo2()
{
PropertyID = 4,
DateFrom = new DateTime(2012, 3, 2),
DateTo = new DateTime(2012, 3, 14),
NumberOfGuests = 3,
Costs = new CostsInfo()
{
RUPrice = 120.00M,
ClientPrice = 140.00M,
AlreadyPaid = 0.00M
}
}
},
CustomerInfo = new CustomerInfo()
{
Name = "Test",
SurName = "Test",
Email = "test.test@test.com",
Phone = "+11 111 111 111",
SkypeID = "test.test",
Address = "Street 1/2",
ZipCode = "00-000",
LanguageID = 1,
CountryID = new CountryIDInfo()
{
CountryID = 42
}
},
Comments = "test",
CreditCard = new CreditCardInfo()
{
CCNumber = "00000000000",
CVC = "321",
NameOnCard = "Test",
Expiration = "12/2015",
BillingAddress = "testaddr",
CardType = CreditCardType.VISA,
Comments = "comments"
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutConfirmedReservationMulti_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutConfirmedReservationMulti_RS response = XmlTools.DeserializeObject<Push_PutConfirmedReservationMulti_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Example (when you want to ignore PMS and RU quote)
using System;
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_PutConfirmedReservationMulti_RQ request = new Push_PutConfirmedReservationMulti_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Reservation = new ReservationInfo()
{
StayInfos = new List<StayInfo2>()
{
new StayInfo2()
{
PropertyID = 2,
DateFrom = new DateTime(2012, 3, 2),
DateTo = new DateTime(2012, 3, 14),
NumberOfGuests = 3,
Costs = new CostsInfo()
{
RUPrice = 120.00M,
ClientPrice = 140.00M,
AlreadyPaid = 0.00M
}
},
new StayInfo2()
{
PropertyID = 4,
DateFrom = new DateTime(2012, 3, 2),
DateTo = new DateTime(2012, 3, 14),
NumberOfGuests = 3,
Costs = new CostsInfo()
{
RUPrice = 120.00M,
ClientPrice = 140.00M,
AlreadyPaid = 0.00M
}
}
},
CustomerInfo = new CustomerInfo()
{
Name = "Test",
SurName = "Test",
Email = "test.test@test.com",
Phone = "+11 111 111 111",
SkypeID = "test.test",
Address = "Street 1/2",
ZipCode = "00-000",
LanguageID = 1,
CountryID = new CountryIDInfo()
{
CountryID = 42
}
},
Comments = "test"
},
QuoteModeId = 2
};
string xmlBody = XmlTools.SerializeObject<Push_PutConfirmedReservationMulti_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutConfirmedReservationMulti_RS response = XmlTools.DeserializeObject<Push_PutConfirmedReservationMulti_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to create a confirmed reservation. You can book more than one property in a single reservation.
Request
Example
<Push_PutConfirmedReservationMulti_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reservation>
<StayInfos>
<StayInfo>
<PropertyID>2</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
<StayInfo>
<PropertyID>4</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
</StayInfos>
<CancellationPolicyInfo>
<PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
</CancellationPolicyInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<LanguageID>1</LanguageID>
<CountryID>42</CountryID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Comments>test</Comments>
</Reservation>
</Push_PutConfirmedReservationMulti_RQ>
Example (when the credit card and sales channel price breakdown information is provided)
<Push_PutConfirmedReservationMulti_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reservation>
<StayInfos>
<StayInfo>
<PropertyID>2</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
<StayInfo>
<PropertyID>4</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
</StayInfos>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<LanguageID>1</LanguageID>
<CountryID>42</CountryID>
</CustomerInfo>
<Comments>test</Comments>
<CreditCard>
<CCNumber>00000000000</CCNumber>
<CVC>321</CVC>
<NameOnCard>Test</NameOnCard>
<Expiration>12/2015</Expiration>
<BillingAddress>testaddr</BillingAddress>
<CardType>VISA</CardType>
<Comments>comments</Comments>
<SecureAuthentication>
<CAVV>AAABADUwN4BCdmNkQDA3EFZht3Y=</CAVV>
<ECI>02</ECI>
<XID>YeHuimlTf1MTGaelHpisFSE4jVe=</XID>
<DsTransID>3efde785-d918-40ba-a274-48e343ffb276</DsTransID>
<ThreeDSVersion>2.1.0</ThreeDSVersion>
<ExceptionType>MAIL_ORDER_TELEPHONE_ORDER</ExceptionType>
</SecureAuthentication>
</CreditCard>
<ChannelBreakdownInfo>
<DayPrices Date="2012-03-02">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
<Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
</Taxes>
<Fees>
<Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
</Fees>
<Price>157.10</Price>
</DayPrices>
<ChannelTotalFeesTaxes>
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
</ChannelTotalFeesTaxes>
<ChannelTotal>282.07</ChannelTotal>
<ChannelRent>206.37</ChannelRent>
</ChannelBreakdownInfo>
</Reservation>
</Push_PutConfirmedReservationMulti_RQ>
Example (when you want to ignore PMS and RU quote)
<Push_PutConfirmedReservationMulti_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reservation>
<StayInfos>
<StayInfo>
<PropertyID>2</PropertyID>
<DateFrom>2019-03-02</DateFrom>
<DateTo>2019-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
<StayInfo>
<PropertyID>4</PropertyID>
<DateFrom>2019-03-02</DateFrom>
<DateTo>2019-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
</StayInfos>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<LanguageID>1</LanguageID>
<CountryID>42</CountryID>
</CustomerInfo>
<Comments>test</Comments>
</Reservation>
<QuoteModeId>2</QuoteModeId>
</Push_PutConfirmedReservationMulti_RQ>
Example (when you want to confirm an existing request)
<Push_PutConfirmedReservationMulti_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reservation>
<ReservationID>123456789</ReservationID>
<StayInfos>
<StayInfo>
<PropertyID>2</PropertyID>
<DateFrom>2019-03-02</DateFrom>
<DateTo>2019-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>0.00</ChannelCommission>
</Costs>
</StayInfo>
</StayInfos>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
</CustomerInfo>
<Comments>test</Comments>
</Reservation>
</Push_PutConfirmedReservationMulti_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutConfirmedReservationMulti_RQ | C | Root element | |
Push_PutConfirmedReservationMulti_RQ/Authentication | C, M | Authentication details | |
Push_PutConfirmedReservationMulti_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutConfirmedReservationMulti_RQ/Authentication/Password | String(50) | M | Password |
Push_PutConfirmedReservationMulti_RQ/Reservation | M | Single reservation | |
Push_PutConfirmedReservationMulti_RQ/Reservation/ReservationID | Integer | O | Unique reservation ID, this element is optional, you should use it only as a follow up to Push_PutUnconfirmedReservation_RQ . |
Push_PutConfirmedReservationMulti_RQ/Reservation@Currency | String(3) | O | Currency code of the reservation prices. Note that the reservation prices will be exchanged to the currency of the property, using the current exchange rates |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos | C, M | A collection of stay information | |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo | C, M | Information about the stay | |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Units | Integer | O | Number of units booked |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/PropertyID | Integer | M | Unique property ID |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/ArrivalTime | String(19) | O | Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format) |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/NumberOfGuests | Integer | M | Number of guests staying in the property |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs | C, M | Information about the property costs | |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs/RUPrice | Decimal (19,2) | M | The price returned by one of the RU methods for the property in the specified dates. The maximum accepted value is 214748.36 |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs/ClientPrice | Decimal (19,2) | M | Final price for the guest. The maximum accepted value is 214748.36 |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid | Decimal(19,2) | M | The amount already paid by the guest. The maximum accepted value is 214748.36 |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Costs/ChannelCommission | Decimal(19,2) | O | The amount charged by the sales channel. The maximum accepted value is 214748.36 |
Push_PutConfirmedReservationMulti_RQ/Reservation/StayInfos/StayInfo/Comments | String(500) | O | Additional comments about this stay |
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo | C, O | A container for the cancellation policy description and a collection of cancellation policies | |
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/PolicyText | String(1000) | M | The cancellation policy description |
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies | C, O | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy | Decimal(19,2) | O | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | O | The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo |
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo | Integer | O | The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo | C, M | Information about the guest | |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/Name | String(20) | M | Guest's name |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/SurName | String(30) | M | Guest's surname |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/Email | String(100) | M | Guest's email address |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with country code |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/MobilePhone | String(30) | O | Guest's mobile phone number with country code |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/LanguageID | Integer | O | Country's unique ID, See ListLanguages |
Push_PutConfirmedReservationMulti_RQ/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, See ListLocations (filterLocationTypeID=2) |
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/ChildrenAges/Age | Integer | O | Age of a child or an infant in the reservation (acceptable values: 0-17) |
Push_PutConfirmedReservationMulti_RQ/Reservation/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
Push_PutConfirmedReservationMulti_RQ/Reservation/Comments | String(4000) | O | Additional comments |
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard | C, O | Credit card information | |
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/CCNumber | String(19) | M | Credit card number |
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/CVC | String(4) | O | Credit card security code |
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/NameOnCard | String(400) | M | Credit card holder name |
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/Expiration | String(7) | M | Credit card expiration date (MM/YYYY format) |
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/BillingAddress | String(400) | O | Billing address |
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/CardType | String(30) | M | Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO |
Push_PutConfirmedReservationMulti_RQ/Reservation/CreditCard/Comments | String(400) | O | Additional comments for the credit card |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication | C, O | Object holding information about 3DS2 payments | |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV | String(48) | O | It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor. |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ECI | String(2) | O | Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/XID | String(40) | O | Encoded "transactionId" |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID | UUID | O | Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion | String(5) | O | A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD. |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType | String(40) | O | Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt. |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo | C, O | A container object for the reservation price breakdown received from the sales channel | |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices | C, O | A collection of objects containing price information for each day of the reservation | |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo | C, O | A collection of rent items for specific DayPrices@Date of the reservation | |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@IncludedInChannelTotal | Boolean | M | Information if the rent value is included in ChannelTotal |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Amount | Decimal(19,2) | M | The daily rent value |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Currency | String(3) | M | Currency, see ListCurrencies |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Name | String(55) | M | Rent description |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes | C, O | A collection of taxes for specific DayPrices@Date of the reservation | |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@IncludedInChannelTotal | Boolean | M | Information if the tax value is included in ChannelTotal |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Currency | String(3) | M | Currency, see ListCurrencies |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Name | String(55) | M | Tax description |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees | C, O | A collection of fees for specific DayPrices@Date of the reservation | |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@IncludedInChannelTotal | Boolean | M | Information if the fee value is included in ChannelTotal |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@Name | String(55) | M | Fee description |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes | C, O | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal | Boolean | M | Information if the total tax/fee amount of one type is included in ChannelTotal |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency | String(3) | M | Currency, see ListCurrencies |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name | String(55) | M | Tax/fee description |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType | String(3) | M | Information whether the item is a tax or a fee |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotal | Decimal(19,2) | M | The total price paid by the guest for the whole stay as received from the sales channel |
Push_PutConfirmedReservationMulti_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelRent | Decimal(19,2) | M | The rent value of the whole stay |
Push_PutConfirmedReservationMulti_RQ/Reservation/ReferenceID | String(50) | O | Sales Channel reservation ID |
Push_PutConfirmedReservationMulti_RQ/QuoteModeId | Integer | O | See List Quote Modes . |
Response
Example (completed successfully)
<Push_PutConfirmedReservationMulti_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
<ReservationID>124</ReservationID>
</Push_PutConfirmedReservationMulti_RS>
Example (error occurred)
<Push_PutConfirmedReservationMulti_RS>
<Status ID="3">Property is not available in selected dates</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_PutConfirmedReservationMulti_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutConfirmedReservationMulti_RS | C | Root element | |
Push_PutConfirmedReservationMulti_RS/Status | String(100) | M | See ListStatuses |
Push_PutConfirmedReservationMulti_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutConfirmedReservationMulti_RS/ResponseID | String(32) | M | Unique response ID |
Push_PutConfirmedReservationMulti_RS/ReservationID | Integer | O | Unique reservation ID, this element is not present when an error occurs |
Confirm request
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_ConfirmReservation_RQ request = new Push_ConfirmReservation_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ReservationID = 123456789
};
string xmlBody = XmlTools.SerializeObject<Push_ConfirmReservation_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_ConfirmReservation_RS response = XmlTools.DeserializeObject<Push_ConfirmReservation_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use Push_ConfirmReservation_RQ
method to confirm a request. This will change the reservation status from Request to Confirmed. See reservation statuses in Pull_ListReservationStatuses_RS
.
However, for some channels (e.g. Booking.com) confirming a Request to Book does not change its status from Request to Confirmed yet. It is because an additional confirmation from the channel may be required. You need to wait till the confirmation is received, which may take up to 24 hours.
If you want to confirm the request and at the same time change some of the reservation details, you can use Push_PutConfirmedReservationMulti_RQ
, but remember to provide the existing Reservation ID.
Request
<Push_ConfirmReservation_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123</ReservationID>
</Push_ConfirmReservation_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ConfirmReservation_RQ | C | Root element | |
Push_ConfirmReservation_RQ/Authentication | C, M | Authentication details | |
Push_ConfirmReservation_RQ/Authentication/UserName | String(50) | M | Username |
Push_ConfirmReservation_RQ/Authentication/Password | String(50) | M | Password |
Push_ConfirmReservation_RQ/ReservationID | Integer | M | Unique reservation ID |
Response
<Push_ConfirmReservation_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_ConfirmReservation_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ConfirmReservation_RS | C | Root element | |
Push_ConfirmReservation_RS/Status | String(100) | M | See ListStatuses |
Push_ConfirmReservation_RS/Status@ID | Integer | M | See ListStatuses |
Push_ConfirmReservation_RS/ResponseID | String(32) | M | Unique response ID |
Push_ConfirmReservation_RS/ReservationID | Integer | O | Unique reservation ID, this element is not present when an error occurs |
Put requests
Use this method to create an unconfirmed reservation (request). You can book more than one property in a single request.
Request
Example
<Push_PutUnconfirmedReservation_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reservation>
<StayInfos>
<StayInfo>
<PropertyID>2</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
<StayInfo>
<PropertyID>4</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
</StayInfos>
<CancellationPolicyInfo>
<PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
</CancellationPolicyInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<LanguageID>1</LanguageID>
<CountryID>42</CountryID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Comments>test</Comments>
</Reservation>
</Push_PutUnconfirmedReservation_RQ>
Example (when the credit card and sales channel price breakdown information is provided)
<Push_PutUnconfirmedReservation_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reservation>
<StayInfos>
<StayInfo>
<PropertyID>2</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
<StayInfo>
<PropertyID>4</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
</Costs>
</StayInfo>
</StayInfos>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<LanguageID>1</LanguageID>
<CountryID>42</CountryID>
</CustomerInfo>
<Comments>test</Comments>
<CreditCard>
<CCNumber>00000000000</CCNumber>
<CVC>321</CVC>
<NameOnCard>Test</NameOnCard>
<Expiration>12/2015</Expiration>
<BillingAddress>testaddr</BillingAddress>
<CardType>VISA</CardType>
<Comments>comments</Comments>
<SecureAuthentication>
<CAVV>AAABADUwN4BCdmNkQDA3EFZht3Y=</CAVV>
<ECI>02</ECI>
<XID>YeHuimlTf1MTGaelHpisFSE4jVe=</XID>
<DsTransID>3efde785-d918-40ba-a274-48e343ffb276</DsTransID>
<ThreeDSVersion>2.1.0</ThreeDSVersion>
<ExceptionType>MAIL_ORDER_TELEPHONE_ORDER</ExceptionType>
</SecureAuthentication>
</CreditCard>
<ChannelBreakdownInfo>
<DayPrices Date="2012-03-02">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
<Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
</Taxes>
<Fees>
<Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
</Fees>
<Price>157.10</Price>
</DayPrices>
<ChannelTotalFeesTaxes>
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
</ChannelTotalFeesTaxes>
<ChannelTotal>282.07</ChannelTotal>
<ChannelRent>206.37</ChannelRent>
</ChannelBreakdownInfo>
</Reservation>
</Push_PutUnconfirmedReservation_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutUnconfirmedReservation_RQ | C | Root element | |
Push_PutUnconfirmedReservation_RQ/Authentication | C, M | Authentication details | |
Push_PutUnconfirmedReservation_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutUnconfirmedReservation_RQ/Authentication/Password | String(50) | M | Password |
Push_PutUnconfirmedReservation_RQ/Reservation | M | Single reservation | |
Push_PutUnconfirmedReservation_RQ/Reservation/ReservationID | Integer | O | Unique reservation ID, this element is optional, you should use it only as a follow up to Push_PutUnconfirmedReservation_RQ . |
Push_PutUnconfirmedReservation_RQ/Reservation@Currency | String(3) | O | Currency code of the reservation prices. Note that the reservation prices will be exchanged to the currency of the property, using the current exchange rates |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos | C, M | A collection of stay information | |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo | C, M | Information about the stay | |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Units | Integer | O | Number of units booked |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/PropertyID | Integer | M | Unique property ID |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ArrivalTime | String(19) | O | Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format) |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/NumberOfGuests | Integer | M | Number of guests staying in the property |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs | C, M | Information about the property costs | |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/RUPrice | Decimal(19,2) | M | The price returned by one of the RU methods for the property in the specified dates. The maximum accepted value is 214748.36 |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/ClientPrice | Decimal(19,2) | M | Final price for the guest. The maximum accepted value is 214748.36 |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid | Decimal(19,2) | M | The amount already paid by the guest. The maximum accepted value is 214748.36 |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/ChannelCommission | Decimal(19,2) | O | The amount charged by the sales channel. The maximum accepted value is 214748.36 |
Push_PutUnconfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Comments | String(500) | O | Additional comments about this stay |
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo | C, O | A container for the cancellation policy description and a collection of cancellation policies | |
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/PolicyText | String(1000) | M | The cancellation policy description |
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies | C, O | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy | Decimal(19,2) | O | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | O | The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo |
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo | Integer | O | The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo | C, M | Information about the guest | |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/Name | String(20) | M | Guest's name |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/SurName | String(30) | M | Guest's surname |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/Email | String(100) | M | Guest's email address |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with country code |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/MobilePhone | String(30) | O | Guest's mobile phone number with country code |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/LanguageID | Integer | O | Country's unique ID, See ListLanguages |
Push_PutUnconfirmedReservation_RQ/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, See ListLocations (filterLocationTypeID=2) |
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation (acceptable values: 0-17) |
Push_PutUnconfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
Push_PutUnconfirmedReservation_RQ/Reservation/Comments | String(4000) | O | Additional comments |
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard | C, O | Credit card information | |
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/CCNumber | String(19) | M | Credit card number |
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/CVC | String(4) | O | Credit card security code |
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/NameOnCard | String(400) | M | Credit card holder name |
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/Expiration | String(7) | M | Credit card expiration date (MM/YYYY format) |
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/BillingAddress | String(400) | O | Billing address |
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/CardType | String(30) | M | Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO |
Push_PutUnconfirmedReservation_RQ/Reservation/CreditCard/Comments | String(400) | O | Additional comments for the credit card |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication | C, O | Object holding information about 3DS2 payments | |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV | String(48) | O | It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor. |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ECI | String(2) | O | Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/XID | String(40) | O | Encoded "transactionId" |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID | UUID | O | Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion | String(5) | O | A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD. |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType | String(40) | O | Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt. |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo | C, O | A container object for the reservation price breakdown received from the sales channel | |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices | C, O | A collection of objects containing price information for each day of the reservation | |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo | C, O | A collection of rent items for specific DayPrices@Date of the reservation | |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@IncludedInChannelTotal | Boolean | M | Information if the rent value is included in ChannelTotal |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Amount | Decimal(19,2) | M | The daily rent value |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Currency | String(3) | M | Currency, see ListCurrencies |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Name | String(55) | M | Rent description |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes | C, O | A collection of taxes for specific DayPrices@Date of the reservation | |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@IncludedInChannelTotal | Boolean | M | Information if the tax value is included in ChannelTotal |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Currency | String(3) | M | Currency, see ListCurrencies |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Name | String(55) | M | Tax description |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees | C, O | A collection of fees for specific DayPrices@Date of the reservation | |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@IncludedInChannelTotal | Boolean | M | Information if the fee value is included in ChannelTotal |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Fees/Fee@Name | String(55) | M | Fee description |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes | C, O | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal | Boolean | M | Information if the total tax/fee amount of one type is included in ChannelTotal |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency | String(3) | M | Currency, see ListCurrencies |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name | String(55) | M | Tax/fee description |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType | String(3) | M | Information whether the item is a tax or a fee |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelTotal | Decimal(19,2) | M | The total price paid by the guest for the whole stay as received from the sales channel |
Push_PutUnconfirmedReservation_RQ/Reservations/Reservation/ChannelBreakdownInfo/ChannelRent | Decimal(19,2) | M | The rent value of the whole stay |
Push_PutUnconfirmedReservation_RQ/Reservation/ReferenceID | String(50) | O | Sales Channel reservation ID |
Response
Example (completed successfully)
<Push_PutUnconfirmedReservation_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
<ReservationID>124</ReservationID>
</Push_PutUnconfirmedReservation_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutUnconfirmedReservation_RS | C | Root element | |
Push_PutUnconfirmedReservation_RS/Status | String(100) | M | See ListStatuses |
Push_PutUnconfirmedReservation_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutUnconfirmedReservation_RS/ResponseID | String(32) | M | Unique response ID |
Push_PutUnconfirmedReservation_RS/ReservationID | Integer | O | Unique reservation ID, this element is not present when an error occurs |
Cancel reservation
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_CancelReservation_RQ request = new Push_CancelReservation_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ReservationID = 123
};
string xmlBody = XmlTools.SerializeObject<Push_CancelReservation_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_CancelReservation_RS response = XmlTools.DeserializeObject<Push_CancelReservation_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to cancel previously created reservations. As soon as the reservation is cancelled, availability of a given property is increased.
You can optionally provide CancelTypeID which defines who cancelled the reservation (Property Provider or the Guest).
This method can be used also by Property Managers. List of sales channels supporting cancelling via Rentals United:
- Atraveo
- Edomizil
- Florida Rentals
- Holidu
- HomeAway
- HomeToGo
- Kayak
In case reservation comes from another sales channel reach out directly to their support or cancel reservation in sales channel's extranet/management console/platform.
Request
<Push_CancelReservation_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123</ReservationID>
<CancelTypeID>1</CancelTypeID>
</Push_CancelReservation_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_CancelReservation_RQ | C | Root element | |
Push_CancelReservation_RQ/Authentication | C, M | Authentication details | |
Push_CancelReservation_RQ/Authentication/UserName | String(50) | M | Username |
Push_CancelReservation_RQ/Authentication/Password | String(50) | M | Password |
Push_CancelReservation_RQ/ReservationID | Integer | M | Unique reservation ID |
Push_CancelReservation_RQ/CancelTypeID | Integer | O | 1 - Property Provider cancellation, 2 - Guest cancellation |
Response
<Push_CancelReservation_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_CancelReservation_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_CancelReservation_RS | C | Root element | |
Push_CancelReservation_RS/Status | String(100) | M | See ListStatuses |
Push_CancelReservation_RS/Status@ID | Integer | M | See ListStatuses |
Push_CancelReservation_RS/ResponseID | String(32) | M | Unique response ID |
Archive reservation
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_ArchiveReservation_RQ request = new Push_ArchiveReservation_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ReservationID = 123,
Archive = true
};
string xmlBody = XmlTools.SerializeObject<Push_ArchiveReservation_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_ArchiveReservation_RS response = XmlTools.DeserializeObject<Push_ArchiveReservation_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to archive past reservations of any status.
Request
<Push_ArchiveReservation_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123</ReservationID>
<Archive>true</Archive>
</Push_ArchiveReservation_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ArchiveReservation_RQ | C | Root element | |
Push_ArchiveReservation_RQ/Authentication | C, M | Authentication details | |
Push_ArchiveReservation_RQ/Authentication/UserName | String(50) | M | Username |
Push_ArchiveReservation_RQ/Authentication/Password | String(50) | M | Password |
Push_ArchiveReservation_RQ/ReservationID | Integer | M | Unique reservation ID |
Push_ArchiveReservation_RQ/Archive | Boolean | M | Indicates whether to archive or unarchive reservation / request, true = archive false = unarchive |
Response
<Push_ArchiveReservation_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_ArchiveReservation_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ArchiveReservation_RS | C | Root element | |
Push_ArchiveReservation_RS/Status | String(100) | M | See ListStatuses |
Push_ArchiveReservation_RS/Status@ID | Integer | M | See ListStatuses |
Push_ArchiveReservation_RS/ResponseID | String(32) | M | Unique response ID |
Reject request
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_RejectRequest_RQ request = new Push_RejectRequest_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ReservationID = 123
};
string xmlBody = XmlTools.SerializeObject<Push_RejectRequest_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_RejectRequest_RS response = XmlTools.DeserializeObject<Push_RejectRequest_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to reject requests. This method also works for rejecting requests coming from sales channels, only if the sales channel supports the request flow and you are eligible to use it.
<Push_RejectRequest_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123</ReservationID>
</Push_RejectRequest_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_RejectRequest_RQ | C | Root element | |
Push_RejectRequest_RQ/Authentication | C, M | Authentication details | |
Push_RejectRequest_RQ/Authentication/UserName | String(50) | M | Username |
Push_RejectRequest_RQ/Authentication/Password | String(50) | M | Password |
Push_RejectRequest_RQ/ReservationID | Integer | M | Unique reservation ID |
Push_RejectRequest_RQ/Reason | String | O | Reason of rejecting request. It may be mandatory for some channels. Possible values can be found below. |
Push_RejectRequest_RQ/MessageToGuest | String | O | Message that will be sent to guest. It may be mandatory for some channels |
Push_RejectRequest_RQ/MessageToChannel | String | O | Message that will be sent to channel. It may be mandatory for some channels |
Response
<Push_RejectRequest_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_RejectRequest_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_RejectRequest_RS | C | Root element | |
Push_RejectRequest_RS/Status | String(100) | M | See ListStatuses |
Push_RejectRequest_RS/Status@ID | Integer | M | See ListStatuses |
Push_RejectRequest_RS/ResponseID | String(32) | M | Unique response ID |
Mark request as expired
It changes the reservation status to Expired. See ListStatuses
.
For example, use this method to change the status of the requests which are outdated or no longer valid. It can be useful if the channel request-to-book flow supports a fixed time frame (e.g. 24 hours) in which requests can be acted upon by the property manager (confirmed or rejected).
<Push_MarkRequestAsExpired_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123</ReservationID>
</Push_MarkRequestAsExpired_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_MarkRequestAsExpired_RQ | C | Root element | |
Push_MarkRequestAsExpired_RQ/Authentication | C, M | Authentication details | |
Push_MarkRequestAsExpired_RQ/Authentication/UserName | String(50) | M | Username |
Push_MarkRequestAsExpired_RQ/Authentication/Password | String(50) | M | Password |
Push_MarkRequestAsExpired_RQ/ReservationID | Integer | M | Unique reservation ID |
Response
<Push_MarkRequestAsExpired_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_MarkRequestAsExpired_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_MarkRequestAsExpired_RS | C | Root element | |
Push_MarkRequestAsExpired_RS/Status | String(100) | M | See ListStatuses |
Push_MarkRequestAsExpired_RS/Status@ID | Integer | M | See ListStatuses |
Push_MarkRequestAsExpired_RS/ResponseID | String(32) | M | Unique response ID |
Push ModifyStay
using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_ModifyStay_RQ request = new Push_ModifyStay_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ReservationID = 123456,
Current = new Current()
{
PropertyID = 1,
DateFrom = new DateTime(2015, 5, 20),
DateTo = new DateTime(2015, 6, 30)
},
Modify = new Modify()
{
PropertyID = "2",
DateFrom = "2015-06-01",
DateTo = "2015-06-15",
NumberOfGuests = "2",
ClientPrice = "123.45",
AlreadyPaid = "123.45",
PMSReservationId = "7yd8"
},
AllowOverbooking = false
};
string xmlBody = XmlTools.SerializeObject<Push_ModifyStay_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_ModifyStay_RS response = XmlTools.DeserializeObject<Push_ModifyStay_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to modify an existing confirmed reservation.
You can modify Guest details, property, dates, number of people, price, etc.
Typical modification reasons are * Guest modifies a reservation on the Sales Channel * Property Provider wants to move a reservation to another identical property to optimise the availability
<Push_ModifyStay_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123456</ReservationID>
<Current>
<PropertyID>1</PropertyID>
<DateFrom>2015-05-20</DateFrom>
<DateTo>2015-06-30</DateTo>
</Current>
<Modify>
<PropertyID>2</PropertyID>
<DateFrom>2015-06-01</DateFrom>
<DateTo>2015-06-15</DateTo>
<NumberOfGuests>2</NumberOfGuests>
<ClientPrice>123.45</ClientPrice>
<AlreadyPaid>123.45</AlreadyPaid>
<ChannelCommission>12.00</ChannelCommission>
<PMSReservationId>7yd8</PMSReservationId>
<CancellationPolicyInfo>
<PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
</CancellationPolicyInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<ChannelBreakdownInfo>
<DayPrices Date="2015-06-02">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
<Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
</Taxes>
<Fees>
<Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
</Fees>
<Price>157.10</Price>
</DayPrices>
<ChannelTotalFeesTaxes>
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
</ChannelTotalFeesTaxes>
<ChannelTotal>282.07</ChannelTotal>
<ChannelRent>206.37</ChannelRent>
</ChannelBreakdownInfo>
</Modify>
<AllowOverbooking>false</AllowOverbooking>
<UseCurrentPrice>false</UseCurrentPrice>
</Push_ModifyStay_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ModifyStay_RQ | C | Root Element | |
Push_ModifyStay_RQ/Authentication | C, M | Authentication details | |
Push_ModifyStay_RQ/Authentication/UserName | String(50) | M | Username |
Push_ModifyStay_RQ/Authentication/Password | String(50) | M | Password |
Push_ModifyStay_RQ/ReservationID | M | Unique reservation ID | |
Push_ModifyStay_RQ/Current | C, M | Reservation details | |
Push_ModifyStay_RQ/Current/PropertyID | Integer | M | ID of the originally booked property |
Push_ModifyStay_RQ/Current/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
Push_ModifyStay_RQ/Current/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
Push_ModifyStay_RQ/Current/ResApaID | String(50) | O | Unique apartment reservation identifier. This element is mandatory if the reservation has multiple apartments assigned |
Push_ModifyStay_RQ/Modify | C, M | Modification details | |
Push_ModifyStay_RQ/Modify/PropertyID | Integer | O | New property's ID |
Push_ModifyStay_RQ/Modify/DateFrom | String(10) | O | New Arrival date (YYYY-MM-DD format) |
Push_ModifyStay_RQ/Modify/DateTo | String(10) | O | New Departure date (YYYY-MM-DD format) |
Push_ModifyStay_RQ/Modify/ArrivalTime | String(19) | O | New Arrival time (YYYY-MM-DD HH:MM:SS format) |
Push_ModifyStay_RQ/Modify/NumberOfGuests | Integer | O | New number of guests staying in the property |
Push_ModifyStay_RQ/Modify/ClientPrice | Decimal(19,2) | O | New price the client has to pay. The maximum accepted value is 214748.36 |
Push_ModifyStay_RQ/Modify/AlreadyPaid | Decimal(19,2) | O | New price the client has already paid. The maximum accepted value is 214748.36 |
Push_ModifyStay_RQ/Modify/ChannelCommission | Decimal(19,2) | O | New price the sales channel is charging. The maximum accepted value is 214748.36 |
Push_ModifyStay_RQ/Modify/PMSReservationId | String(100) | O | New reservation ID from PMS |
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo | C, O | A container for the cancellation policy description and a collection of cancellation policies | |
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/PolicyText | String(1000) | O | The cancellation policy description |
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies | C, O | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy | Decimal(19,2) | O | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | O | The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo |
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo | Integer | O | The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom |
Push_ModifyStay_RQ/Modify/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/NumberOfAdults | Integer | M | Number of adults in the reservation |
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/NumberOfChildren | Integer | M | Number of children in the reservation |
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/NumberOfInfants | Integer | M | Number of infants in the reservation |
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/ChildrenAges | C, M | A container object that lists all children’s and infants' ages | |
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation (acceptable values: 0-17) |
Push_ModifyStay_RQ/Modify/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation. To remove pets from reservation set to 0 |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo | C, O | A container object for the reservation price breakdown received from the sales channel | |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices | C, O | A collection of objects containing price information for each day of the reservation | |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo | C, O | A collection of rent items for specific DayPrices@Date of the reservation | |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@IncludedInChannelTotal | Boolean | M | Information if the rent value is included in ChannelTotal |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Amount | Decimal(19,2) | M | The daily rent value |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Currency | String(3) | M | Currency, see ListCurrencies |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/RentInfo/Rent@Name | String(55) | M | Rent description |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes | C, O | A collection of taxes for specific DayPrices@Date of the reservation | |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes/Tax@IncludedInChannelTotal | Boolean | M | Information if the tax value is included in ChannelTotal |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Currency | String(3) | M | Currency, see ListCurrencies |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Taxes/Tax@Name | String(55) | M | Tax description |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Fees | C, O | A collection of fees for specific DayPrices@Date of the reservation | |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Fees/Fee@IncludedInChannelTotal | Boolean | M | Information if the fee value is included in ChannelTotal |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Fees/Fee@Name | String(55) | M | Fee description |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes | C, O | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal | Boolean | M | Information if the total tax/fee amount of one type is included in ChannelTotal |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency | String(3) | M | Currency, see ListCurrencies |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name | String(55) | M | Tax/fee description |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType | String(3) | M | Information whether the item is a tax or a fee |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelTotal | Decimal(19,2) | M | The total price paid by the guest for the whole stay as received from the sales channel |
Push_ModifyStay_RQ/Modify/ChannelBreakdownInfo/ChannelRent | Decimal(19,2) | M | The rent value of the whole stay |
Push_ModifyStay_RQ/AllowOverbooking | Boolean | O | If true, then allows for an overbooking. Default is false |
Push_ModifyStay_RQ/UseCurrentPrice | Boolean | O | If true, then the reservation price will not be recalculated. Default is false |
Push_ModifyStay_RQ/QuoteModeId | Integer | O | See List Quote Modes . |
Response
<Push_ModifyStay_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_ModifyStay_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ModifyStay_RS | C | Root Element | |
Push_ModifyStay_RS/Status | String(100) | M | See ListStatuses |
Push_ModifyStay_RS/Status/@ID | Integer | M | See ListStatuses |
Push_ModifyStay_RS/ResponseID | String(32) | M | Unique response ID |
Modify reservation creator
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_ModifyReservationCreator_RQ request = new Push_ModifyReservationCreator_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ReservationID = 123456,
TargetCreatorID = 0
};
string xmlBody = XmlTools.SerializeObject<Push_ModifyReservationCreator_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_ModifyReservationCreator_RS response = XmlTools.DeserializeObject<Push_ModifyReservationCreator_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to modify the creator of an existing reservation. It works only for reservations created by you.
In order to change the reservation creator to a specific sales channel, please find any reservation created by you and use Push_ModifyReservationCreator_RQ
method. If you do not have a manual reservation yet, you can create one by using Push_PutConfirmedReservationMulti_RQ
and then use Push_ModifyReservationCreator_RQ
method.
If you want to change the information about the creator for multiple reservations, you need to use this method for every single reservation that you want to change.
Request
<Push_ModifyReservationCreator_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123456</ReservationID>
<TargetCreatorID>0</TargetCreatorID>
</Push_ModifyReservationCreator_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ModifyReservationCreator_RQ | C | Root element | |
Push_ModifyReservationCreator_RQ/Authentication | C, M | Authentication details | |
Push_ModifyReservationCreator_RQ/Authentication/UserName | String(50) | M | Username |
Push_ModifyReservationCreator_RQ/Authentication/Password | String(50) | M | Password |
Push_ModifyReservationCreator_RQ/ReservationID | Integer | M | Unique reservation ID |
Push_ModifyReservationCreator_RQ/TargetCreatorID | Integer | M | Unique ID of a sales channel that should be set as creator of reservation, see Pull_ListSalesChannels_RQ |
Response
<Push_ModifyReservationCreator_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_ModifyReservationCreator_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ModifyReservationCreator_RS | C | Root Element | |
Push_ModifyReservationCreator_RS | String(100) | M | See ListStatuses |
Push_ModifyReservationCreator_RS | Integer | M | See ListStatuses |
Push_ModifyReservationCreator_RS | String(32) | M | Unique response ID |
Resend RLNM Message
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Push_SendRLNMMessage_RQ request = new Push_SendRLNMMessage_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ReservationID = 123456
};
string xmlBody = XmlTools.SerializeObject<Push_SendRLNMMessage_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_SendRLNMMessage_RQ response = XmlTools.DeserializeObject<Push_SendRLNMMessage_RQ>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to resend an RLNM notification for a specified reservation. It may be useful as sometimes the RLNM happens not to reach its destination and with this method you can request sending this notification again.
Before you use this method, you need to turn on LNM notifications for you account. The detailed steps are described in LNM_PutHandlerUrl_RQ
. Note that all notifications (also notifications from Push_SendRLNMMessage_RQ) will be sent to the handler you configured in LNM_PutHandlerUrl_RQ
.
Note that this method will work only if you are the owner of the properties the reservation pertains to.
Request
<Push_SendRLNMMessage_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123456</ReservationID>
</Push_SendRLNMMessage_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_SendRLNMMessage_RQ | C | Root element | |
Push_SendRLNMMessage_RQ/Authentication | C, M | Authentication details | |
Push_SendRLNMMessage_RQ/Authentication/UserName | String(50) | M | Username |
Push_SendRLNMMessage_RQ/Authentication/Password | String(50) | M | Password |
Push_SendRLNMMessage_RQ/ReservationID | Integer | M | Unique reservation ID |
Response
<Push_SendRLNMMessage_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_SendRLNMMessage_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_SendRLNMMessage_RS | C | Root Element | |
Push_SendRLNMMessage_RS/Status | String(100) | M | See ListStatuses |
Push_SendRLNMMessage_RS/Status/@ID | Integer | M | See ListStatuses |
Push_SendRLNMMessage_RS/ResponseID | String(32) | M | Unique response ID |
List reservations
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Pull_ListReservations_RQ request = new Pull_ListReservations_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
DateFrom = "2013-08-17 14:00:00",
DateTo = "2013-08-17 14:20:00",
LocationID = 0
};
string xmlBody = XmlTools.SerializeObject<Pull_ListReservations_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListReservations_RS response = XmlTools.DeserializeObject<Pull_ListReservations_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns a list of reservations (for your properties) sorted by last modification date. This method will always return reservations that were created or modified up to 7 days in the past from the day this method was used. Providing a longer date range will not have any effect on the returned result.
Call this method periodically to obtain created, cancelled and modified reservations and transfer them to your system.
By default this method will return only reservations in the Confirmed and Cancelled statuses. In order to retrieve the reservations in other statuses, e.g. unconfirmed reservations (requests), make sure to provide the list of statuses in Pull_ListReservations_RQ/Statuses. See ListReservationStatuses
.
This function will not return leads. See GetLeads
.
We encourage you to call this API method at least every 20 minutes to quickly update your calendar.
Request
Example (returns a list of reservations modified between 2013-08-17 14:00:00 and 2013-08-17 14:19:59)
<Pull_ListReservations_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<DateFrom>2013-08-17 14:00:00</DateFrom>
<DateTo>2013-08-17 14:20:00</DateTo>
<LocationID>0</LocationID>
</Pull_ListReservations_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListReservations_RQ | C | Root element | |
Pull_ListReservations_RQ/Authentication | C, M | Authentication details | |
Pull_ListReservations_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListReservations_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListReservations_RQ/DateFrom | String(19) | M | Start of the range of modification(YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservations_RQ/DateTo | String(19) | M | End of the range of modification(YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservations_RQ/LocationID | Integer | M | Unique location ID. See ListLocations . To download all of your bookings without location filter please send "0". |
Pull_ListReservations_RQ/Statuses | C, O | Collection of reservation status IDs. See ListReservationStatuses . By default, only reservations in the Confirmed and Cancelled statuses are retrieved. Retrieving reservations in the Modified status will always return an empty list. |
|
Pull_ListReservations_RQ/Statuses/StatusID | Integer | M | Reservation status ID |
Response
<Pull_ListReservations_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Reservations>
<Reservation>
<ReservationID>123</ReservationID>
<StatusID>1</StatusID>
<CreatedDate>2022-03-01 10:10:02</CreatedDate>
<LastMod>2022-03-01 10:10:02</LastMod>
<StayInfos>
<StayInfo>
<PropertyID>1</PropertyID>
<XmlApartmentID>Ext. ID. 1</XmlApartmentID>
<DateFrom>2022-05-29</DateFrom>
<DateTo>2022-05-31</DateTo>
<ArrivalTime>2022-05-29 11:42:10</ArrivalTime>
<NumberOfGuests>4</NumberOfGuests>
<Costs>
<RUPrice>1120.06</RUPrice>
<ClientPrice>1120.06</ClientPrice>
<AlreadyPaid>50.00</AlreadyPaid>
</Costs>
<ResApaID>1</ResApaID>
<Mapping>
<ReservationID>123</ReservationID>
<StayID>123</StayID>
<HotelID>123</HotelID>
<RoomID>123</RoomID>
<RateID>123</RateID>
</Mapping>
<ReservationBreakdown>
<RUBreakdown>
<DayPrices Date="2022-05-29">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<DayPrices Date="2022-05-30">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<DayPrices Date="2022-05-31">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<TotalFeesTaxes>
<TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
<TotalFeeTax AlreadyIncluded="false" Amount="140.0" Name="Pet fee" FeeTaxType="29"/>
<TotalFeeTax AlreadyIncluded="false" Amount="241.59" Name="VAT" FeeTaxType="2"/>
</TotalFeesTaxes>
<Total>1120.06</Total>
<Rent>734.97</Rent>
</RUBreakdown>
<ChannelBreakdown/>
<ChannelCommission>210.00</ChannelCommission>
</ReservationBreakdown>
</StayInfo>
</StayInfos>
<CancellationPolicyInfo>
<PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
</CancellationPolicyInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>42</CountryID>
<LanguageID>2</LanguageID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Creator>test@test.test</Creator>
</Reservation>
<Reservation>
<ReservationID>124</ReservationID>
<StatusID>2</StatusID>
<CreatedDate>2022-02-25 09:43:22</CreatedDate>
<LastMod>2022-03-01 20:10:02</LastMod>
<StayInfo>
<PropertyID>2</PropertyID>
<XmlApartmentID>Ext. ID. 2</XmlApartmentID>
<DateFrom>2022-05-29</DateFrom>
<DateTo>2022-05-30</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>249.09</RUPrice>
<ClientPrice>300</ClientPrice>
<AlreadyPaid>40</AlreadyPaid>
</Costs>
<ResApaID>2</ResApaID>
<ReservationBreakdown>
<RUBreakdown>
<DayPrices Date="2022-05-29">
<Rent>100</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>120.5</Price>
</DayPrices>
<DayPrices Date="2022-05-30">
<Rent>100</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>120.5</Price>
</DayPrices>
<TotalFeesTaxes>
<TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
<TotalFeeTax AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
<TotalFeeTax AlreadyIncluded="false" Amount="24.59" Name="VAT" FeeTaxType="2"/>
</TotalFeesTaxes>
<Total>248.09</Total>
<Rent>200</Rent>
</RUBreakdown>
<ChannelBreakdown>
<DayPrices Date="2022-05-29">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
<Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
</Taxes>
<Fees>
<Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
</Fees>
<Price>157.10</Price>
</DayPrices>
<DayPrices Date="2022-05-30">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
</Taxes>
<Price>101.11</Price>
</DayPrices>
<ChannelTotalFeesTaxes>
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
</ChannelTotalFeesTaxes>
<ChannelTotal>282.07</ChannelTotal>
<ChannelRent>206.37</ChannelRent>
</ChannelBreakdown>
</ReservationBreakdown>
</StayInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>33</CountryID>
</CustomerInfo>
<Creator>test@test.test</Creator>
<Comments>test</Comments>
<PMSReservationId>39huy</PMSReservationId>
<CancelTypeID>1</CancelTypeID>
<Archived>false</Archived>
</Reservation>
</Reservations>
</Pull_ListReservations_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListReservations_RS | C | Root element | |
Pull_ListReservations_RS/Status | String(100) | M | See ListStatuses |
Pull_ListReservations_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListReservations_RS/Reservations | C | A list of reservations | |
Pull_ListReservations_RS/Reservations/Reservation | C | Single reservation | |
Pull_ListReservations_RS/Reservations/Reservation/ReservationID | Integer | M | Unique reservation ID |
Pull_ListReservations_RS/Reservations/Reservation/StatusID | Integer | M | The code that identifies the reservation status, see ListReservationStatuses |
Pull_ListReservations_RS/Reservations/Reservation/CreatedDate | String | M | The creation date of the reservation (format YYYY-MM-DD HH-MM-SS) |
Pull_ListReservations_RS/Reservations/Reservation/LastMod | String | M | The last modification date (creation or cancellation) of the reservation (format YYYY-MM-DD HH-MM-SS) |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos | C, M | Information about the stay associated with the reservation | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo | M | Information about the stay | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/PropertyID | Integer | M | Unique property ID |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/XmlApartmentID | String | M | External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned) |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ArrivalTime | String(19) | O | Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/NumberOfGuests | Integer | M | Number of guests in the reservation |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Costs | C, M | Information about reservation costs | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/RUPrice | Decimal(19,2) | M | Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP) |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/ClientPrice | Decimal(19,2) | M | Final price for the guest |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid | Decimal(19,2) | M | The amount already paid by the guest |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ResApaID | Integer | M | Unique apartment reservation identifier. ResApaID can change in case of booking modification when reservation was moved from one apartment to another. |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Comments | String(500) | O | Additional comments about the stay |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping | C, O | Information about reservation mapping with external systems | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/ReservationID | String(50) | M | External System’s Reservation ID |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/StayID | String(50) | O | External System’s reservation identifier assigned to the property |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/HotelID | String(50) | O | External System’s Apartment identifier |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RoomID | String(50) | O | External System’s Room Identifier |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RateID | String(50) | O | External System’s Rate identifier |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown | C, M | A container object for the reservation price breakdown details | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown | C, M | A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes set-up as it is in Rentals United | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices | C, M | A collection of objects containing price information for each day of the reservation | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent | Decimal(19,2) | M | The value of the base rent for specific day |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes | C, M | A collection of taxes for specific DayPrices@Date of the reservation | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded | Boolean | M | Information if the tax value is included in Rent |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees | C, M | A collection of fees for specific DayPrices@Date of the reservation | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded | Boolean | M | Information if the fee value is included in Rent |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes | C, M | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded | Boolean | M | Information if the total tax/fee amount of one type is included in Rent |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name | String(50) | M | Tax/fee description |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total | Decimal(19,2) | M | The overall value of rent, fees and taxes of the whole stay |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent | Decimal(19,2) | M | The value of rent for the whole stay |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown | C, O | A container object for the reservation price breakdown received from the sales channel | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices | C, O | A collection of objects containing price information for each day of the reservation | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo | C, O | A collection of rent items for specific DayPrices@Date of the reservation | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal | Boolean | M | Information if the rent value is included in ChannelTotal |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount | Decimal(19,2) | M | The daily rent value |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name | String(50) | M | Rent description |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes | C, O | A collection of taxes for specific DayPrices@Date of the reservation | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal | Boolean | M | Information if the tax value is included in ChannelTotal |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees | C, O | A collection of fees for specific DayPrices@Date of the reservation | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal | Boolean | M | Information if the fee value is included in ChannelTotal |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes | C, M | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal | Boolean | M | Information if the total tax/fee amount of one type is included in ChannelTotal |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name | String(50) | M | Tax/fee description |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType | String(3) | O | Information whether the item is a tax or a fee |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal | Decimal(19,2) | M | The total price paid by the guest for the whole stay as received from the sales channel |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent | Decimal(19,2) | M | The rent value of the whole stay |
Pull_ListReservations_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission | Decimal(19,2) | O | The amount charged by the sales channel |
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo | C, O | A container for the cancellation policy description and a collection of cancellation policies | |
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText | String(1000) | M | The cancellation policy description |
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies | C, O | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy | Decimal(19,2) | O | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | O | The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo |
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo | Integer | O | The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo | C, M | Information about the guest | |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Name | String(20) | M | Guest's name |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/SurName | String(30) | M | Guest's surname |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Email | String(100) | M | Guest's email address |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with the country code |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, see ListLocations (filter LocationTypeID=2) |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/LanguageID | Integer | O | Code that identifies the guest's language, see ListLanguages |
Pull_ListReservations_RS/Reservations/Reservation/CustomerInfo/Passport | String(30) | O | Guest’s passport number |
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation |
Pull_ListReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
Pull_ListReservations_RS/Reservations/Reservation/Creator | String(50) | M | Email address/Username of an entity that created a reservation, e.g. the channel or the user |
Pull_ListReservations_RS/Reservations/Reservation/Comments | String(4000) | O | Additional comments |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard | C, O | Credit card information. This container will not be shown for accounts connected to Stripe. | |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/CCNumber | String(19) | M | Credit card number |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/CVC | String(4) | O | Credit card security code. It can be viewed only once across the platform. |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/NameOnCard | String(400) | M | Credit card holder name |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/Expiration | String(7) | M | Credit card expiration date (MM/YYYY format) |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/BillingAddress | String(400) | O | Billing address |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/CardType | String(30) | M | Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/Comments | String(400) | O | Additional comments for this credit card |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication | C, O | Object holding information about 3DS2 payments | |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV | String(48) | O | It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor. |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ECI | String(2) | O | Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/XID | String(40) | O | Encoded "transactionId" |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID | UUID | O | Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion | String(5) | O | A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD. |
Pull_ListReservations_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType | String(40) | O | Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt. |
Pull_ListReservations_RS/Reservations/PMSReservationId | String(100) | O | PMS Reservation ID |
Pull_ListReservations_RS/Reservations/Reservation/CancelTypeID | Integer | O | Cancellation type. See List cancellation types |
Pull_ListReservations_RS/Reservations/Reservation/IsArchived | Boolean | M | Indicates whether reservation is archived |
List own reservations
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Pull_GetOwnReservations_RQ request = new Pull_GetOwnReservations_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
DateFrom = "2013-08-17 00:00:00",
DateTo = "2013-08-28 00:00:00",
LocationID = 0
};
string xmlBody = XmlTools.SerializeObject<Pull_GetOwnReservations_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_GetOwnReservations_RS response = XmlTools.DeserializeObject<Pull_GetOwnReservations_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method is designed for Sales Channels. It returns a list of reservations created in Rentals United during a specified time frame.
If you are a property provider utilising Rentals United API and have inserted reservations into Rentals United (either via API or UI) you can use this method to reconcile reservation list.
Important: By default this method will return only reservations in the Confirmed and Cancelled statuses. In order to retrieve the reservations in other statuses, e.g. unconfirmed reservations (requests), make sure to provide the list of statuses in Pull_ListReservations_RQ/Statuses. See ListReservationStatuses
.
This function will not return leads. See GetLeads
.
Request
Example (returns a list of reservations created/cancelled between 2013-08-17 00:00:00 and 2013-08-27 23:59:59)
<Pull_GetOwnReservations_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<DateFrom>2013-08-17 00:00:00</DateFrom>
<DateTo>2013-08-28 00:00:00</DateTo>
<LocationID>0</LocationID>
</Pull_GetOwnReservations_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetOwnReservations_RQ | C | Root element | |
Pull_GetOwnReservations_RQ/Authentication | C, M | Authentication details | |
Pull_GetOwnReservations_RQ/Authentication/UserName | String(50) | M | Username |
Pull_GetOwnReservations_RQ/Authentication/Password | String(50) | M | Password |
Pull_GetOwnReservations_RQ/DateFrom | String(19) | M | Start of the range of modification(YYYY-MM-DD HH:MM:SS format) |
Pull_GetOwnReservations_RQ/DateTo | String(19) | M | End of the range of modification(YYYY-MM-DD HH:MM:SS format) |
Pull_GetOwnReservations_RQ/LocationID | Integer | M | Unique location ID. See ListLocations |
Pull_GetOwnReservations_RQ/Statuses | C, O | Collection of reservation status IDs. See ListReservationStatuses . By default, only reservations in the Confirmed and Cancelled statuses are retrieved. Retrieving reservations in the Modified status will always return an empty list. |
|
Pull_GetOwnReservations_RQ/Statuses/StatusID | Integer | M | Reservation status ID |
Response
<Pull_GetOwnReservations_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Reservations>
<Reservation>
<ReservationID>123</ReservationID>
<StatusID>1</StatusID>
<CreatedDate>2012-02-25 09:43:22</CreatedDate>
<LastMod>2012-03-01 10:10:02</LastMod>
<StayInfo>
<PropertyID>1</PropertyID>
<XmlApartmentID>Ext. ID. 1</XmlApartmentID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-10</DateTo>
<ArrivalTime>2012-03-02 16:20:00</ArrivalTime>
<NumberOfGuests>4</NumberOfGuests>
<Costs>
<RUPrice>100.00</RUPrice>
<ClientPrice>110.00</ClientPrice>
<AlreadyPaid>10.00</AlreadyPaid>
</Costs>
</StayInfo>
<CancellationPolicyInfo>
<PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
</CancellationPolicyInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>100</CountryID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Creator>test@test.test</Creator>
</Reservation>
<Reservation>
<ReservationID>124</ReservationID>
<StatusID>2</StatusID>
<CreatedDate>2012-03-01 10:10:02</CreatedDate>
<LastMod>2012-03-01 20:10:02</LastMod>
<StayInfo>
<PropertyID>2</PropertyID>
<XmlApartmentID>Ext. ID. 2</XmlApartmentID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
</Costs>
</StayInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>33</CountryID>
<LanguageID>3</LanguageID>
</CustomerInfo>
<Creator>test@test.test</Creator>
<Comments>test</Comments>
<CancelTypeID>1</CancelTypeID>
<Archived>false</Archived>
</Reservation>
</Reservations>
</Pull_GetOwnReservations_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetOwnReservations_RS | C | Root element | |
Pull_GetOwnReservations_RS/Status | String(100) | M | See ListStatuses |
Pull_GetOwnReservations_RS/Status@ID | Integer | M | See ListStatuses |
Pull_GetOwnReservations_RS/ResponseID | String(32) | M | Unique response ID |
Pull_GetOwnReservations_RS/Reservations | C | A list of reservations | |
Pull_GetOwnReservations_RS/Reservations/Reservation | C | Single reservation | |
Pull_GetOwnReservations_RS/Reservations/Reservation/ReservationID | Integer | M | Unique reservation ID |
Pull_GetOwnReservations_RS/Reservations/Reservation/StatusID | Integer | M | The code that identifies a reservation status, see ListReservationStatuses |
Pull_GetOwnReservations_RS/Reservations/Reservation/CreatedDate | String | M | The creation date of the reservation (format YYYY-MM-DD HH-MM-SS) |
Pull_GetOwnReservations_RS/Reservations/Reservation/LastMod | String | M | The last modification date (creation or cancellation) of the reservation (format YYYY-MM-DD HH-MM-SS) |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo | C, M | Information about the stay associated with the reservation | |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/PropertyID | Integer | M | Unique property ID |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/XmlApartmentID | String | M | External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned) |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/ArrivalTime | String(19) | O | Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format) |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/NumberOfGuests | Integer | M | Number of guests |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Costs | C, M | Information about reservation costs | |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Costs/RUPrice | Decimal(19,2) | M | Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP) |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Costs/ClientPrice | Decimal(19,2) | M | Final price for the guest |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Costs/AlreadyPaid | Decimal(19,2) | M | The amount already paid by the guest |
Pull_GetOwnReservations_RS/Reservations/Reservation/StayInfo/Comments | String(500) | O | Additional comments about the stay |
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo | C, O | A container for the cancellation policy description and a collection of cancellation policies | |
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText | String(1000) | M | The cancellation policy description |
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies | C, O | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy | Decimal(19,2) | O | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | O | The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo |
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo | Integer | O | The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo | C, M | Information about the guest | |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Name | String(20) | M | Guest's name |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/SurName | String(30) | M | Guest's surname |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Email | String(100) | M | Guest's email address |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with the country code |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, see ListLocations (filter LocationTypeID=2) |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/LanguageID | Integer | O | Code that identifies the guest's language, see ListLanguages |
Pull_GetOwnReservations_RS/Reservations/Reservation/CustomerInfo/Passport | String(30) | O | Guest's passport number |
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation |
Pull_GetOwnReservations_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
Pull_GetOwnReservations_RS/Reservations/Reservation/Creator | String(50) | M | Email address/Username of an entity that created a reservation, e.g. the channel or the user |
Pull_GetOwnReservations_RS/Reservations/Reservation/Comments | String(4000) | O | Additional comments |
Pull_GetOwnReservations_RS/Reservations/Reservation/CancelTypeID | Integer | O | Cancellation type. See List cancellation types |
Pull_GetOwnReservations_RS/Reservations/Reservation/IsArchived | Boolean | M | Indicates whether reservation is archived |
Get reservation by ID
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Pull_GetReservationByID_RQ request = new Pull_GetReservationByID_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ReservationID = 14634678
};
string xmlBody = XmlTools.SerializeObject<Pull_GetReservationByID_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_GetReservationByID_RS response = XmlTools.DeserializeObject<Pull_GetReservationByID_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns details of an individual reservation.
Request
Example
<Pull_GetReservationByID_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>14634678</ReservationID>
</Pull_GetReservationByID_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetReservationByID_RQ | C | Root element | |
Pull_GetReservationByID_RQ/Authentication | C, M | Authentication details | |
Pull_GetReservationByID_RQ/Authentication/UserName | String(50) | M | Username |
Pull_GetReservationByID_RQ/Authentication/Password | String(50) | M | Password |
Pull_GetReservationByID_RQ/ReservationID | Integer | M | Unique reservation ID |
Response
<Pull_GetReservationByID_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Reservation>
<ReservationID>123</ReservationID>
<StatusID>1</StatusID>
<CreatedDate>2022-02-25 09:43:22</CreatedDate>
<LastMod>2022-03-01 10:10:02</LastMod>
<StayInfos>
<StayInfo>
<PropertyID>1</PropertyID>
<XmlApartmentID>Ext. ID. 1</XmlApartmentID>
<DateFrom>2022-05-29</DateFrom>
<DateTo>2022-05-31</DateTo>
<ArrivalTime>2022-05-29 09:12:00</ArrivalTime>
<NumberOfGuests>4</NumberOfGuests>
<Costs>
<RUPrice>1120.06</RUPrice>
<ClientPrice>1120.06</ClientPrice>
<AlreadyPaid>50.00</AlreadyPaid>
</Costs>
<ResApaID>1</ResApaID>
<Mapping>
<ReservationID>123</ReservationID>
<StayID>123</StayID>
<HotelID>123</HotelID>
<RoomID>123</RoomID>
<RateID>123</RateID>
</Mapping>
<ReservationBreakdown>
<RUBreakdown>
<DayPrices Date="2022-05-29">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<DayPrices Date="2022-05-30">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<DayPrices Date="2022-05-31">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<TotalFeesTaxes>
<TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
<TotalFeeTax AlreadyIncluded="false" Amount="140.0" Name="Pet fee" FeeTaxType="29"/>
<TotalFeeTax AlreadyIncluded="false" Amount="241.59" Name="VAT" FeeTaxType="2"/>
</TotalFeesTaxes>
<Total>1120.06</Total>
<Rent>734.97</Rent>
</RUBreakdown>
<ChannelBreakdown>
<DayPrices Date="2022-05-29">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="236.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
<Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
</Taxes>
<Fees>
<Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
</Fees>
<Price>277.10</Price>
</DayPrices>
<DayPrices Date="2022-05-30">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="255.30" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
</Taxes>
<Price>266.94</Price>
</DayPrices>
<DayPrices Date="2022-05-31">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="236.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
</Taxes>
<Price>248.54</Price>
</DayPrices>
<ChannelTotalFeesTaxes>
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
</ChannelTotalFeesTaxes>
<ChannelTotal>804.08</ChannelTotal>
<ChannelRent>729.10</ChannelRent>
</ChannelBreakdown>
<ChannelCommission>210.00</ChannelCommission>
</ReservationBreakdown>
</StayInfo>
</StayInfos>
<CancellationPolicyInfo>
<PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
</CancellationPolicyInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>42</CountryID>
<LanguageID>2</LanguageID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Creator>test@test.test</Creator>
<CancelTypeID>1</CancelTypeID>
<Archived>false</Archived>
</Reservation>
</Pull_GetReservationByID_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetReservationByID_RS | C | Root element | |
Pull_GetReservationByID_RS/Status | String(100) | M | See ListStatuses |
Pull_GetReservationByID_RS/Status@ID | Integer | M | See ListStatuses |
Pull_GetReservationByID_RS/Reservations | C | A list of reservations | |
Pull_GetReservationByID_RS/Reservations/Reservation | C | Single reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/ReservationID | Integer | M | Unique reservation ID |
Pull_GetReservationByID_RS/Reservations/Reservation/StatusID | Integer | M | The code that identifies a reservation status, see ListReservationStatuses |
Pull_GetReservationByID_RS/Reservations/Reservation/CreatedDate | String | M | The creation date of the reservation(format YYYY-MM-DD HH-MM-SS) |
Pull_GetReservationByID_RS/Reservations/Reservation/LastMod | String | M | The last modification date (creation or cancellation) of the reservation(format YYYY-MM-DD HH-MM-SS) |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos | C, M | Information about the stay associated with the reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo | M | Information about the stay | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/PropertyID | Integer | M | Unique property ID |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/XmlApartmentID | String | M | External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned) |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ArrivalTime | String(19) | O | Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format) |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/NumberOfGuests | Integer | M | Number of guests |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Costs | C, M | Information about reservation costs | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/RUPrice | Decimal(19,2) | M | Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP) |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/ClientPrice | Decimal(19,2) | M | Final price for the guest |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid | Decimal(19,2) | M | The amount already paid by the guest |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ResApaID | Integer | M | Unique apartment reservation identifier |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Comments | String(500) | O | Additional comments about the stay |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping | C, O | Information about reservation mapping with external systems | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/ReservationID | String(50) | M | External system’s Reservation ID |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/StayID | String(50) | O | External system’s reservation identifier assigned to the property |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/HotelID | String(50) | O | External system’s Apartment identifier |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RoomID | String(50) | O | External system’s Room Identifier |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RateID | String(50) | O | External system’s Rate identifier |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown | C, M | A container object for the reservation price breakdown details | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown | C, M | A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices | C, M | A collection of objects containing price information for each day of the reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent | Decimal(19,2) | M | The value of the base rent for specific day |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes | C, M | A collection of taxes for specific DayPrices@Date of the reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded | Boolean | M | Information if the tax value is included in Rent |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees | C, M | A collection of fees for specific DayPrices@Date of the reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded | Boolean | M | Information if the fee value is included in Rent |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded | Boolean | M | Information if the total tax/fee amount of one type is included in Rent |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name | String(50) | M | Tax/fee description |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total | Decimal(19,2) | M | The overall value of rent, fees and taxes of the whole stay |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent | Decimal(19,2) | M | The value of rent for the whole stay |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown | C, O | A container object for the reservation price breakdown received from the sales channel. Returned only if there is single StayInfo | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices | C, O | A collection of objects containing price information for each day of the reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo | C, O | A collection of rent items for specific DayPrices@Date of the reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal | Boolean | M | Information if the rent value is included in ChannelTotal |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount | Decimal(19,2) | M | The daily rent value |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name | String(50) | M | Rent description |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes | C, O | A collection of taxes for specific DayPrices@Date of the reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal | Boolean | M | Information if the tax value is included in ChannelTotal |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees | C, O | A collection of fees for specific DayPrices@Date of the reservation | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal | Boolean | M | Information if the fee value is included in ChannelTotal |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes | C, M | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal | Boolean | M | Information if the total tax/fee amount of one type is included in ChannelTotal |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name | String(50) | M | Tax/fee description |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType | String(3) | M | Information whether the item is a tax or a fee |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal | Decimal(19,2) | M | The total price paid by the guest for the whole stay as received from the sales channel |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent | Decimal(19,2) | M | The rent value of the whole stay |
Pull_GetReservationByID_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission | Decimal(19,2) | O | The amount charged by the sales channel |
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo | C, O | A container for the cancellation policy description and a collection of cancellation policies | |
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText | String(1000) | M | The cancellation policy description |
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies | C, O | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy | Decimal(19,2) | O | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | O | The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo |
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo | Integer | O | The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo | C, M | Information about the guest | |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Name | String(20) | M | Guest's name |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/SurName | String(30) | M | Guest's surname |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Email | String(100) | M | Guest's email address |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with the country code |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, see ListLocations (filter LocationTypeID=2) |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/LanguageID | Integer | O | Code that identifies the guest's language, see ListLanguages |
Pull_GetReservationByID_RS/Reservations/Reservation/CustomerInfo/Passport | String(30) | O | Guest's passport number |
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation |
Pull_GetReservationByID_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
Pull_GetReservationByID_RS/Reservations/Reservation/Creator | String(50) | M | Email address/Username of an entity that created a reservation, e.g. the channel or the user |
Pull_GetReservationByID_RS/Reservations/Reservation/Comments | String(4000) | O | Additional comments |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard | C, O | Credit card information. This container will not be shown for accounts connected to Stripe. | |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/CCNumber | String(19) | M | Credit card number |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/CVC | String(4) | O | Credit card security code. It can be viewed only once across the platform. |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/NameOnCard | String(400) | M | Credit card holder name |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/Expiration | String(7) | M | Credit card expiration date (MM/YYYY format) |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/BillingAddress | String(400) | O | Billing address |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/CardType | String(30) | M | Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/Comments | String(400) | O | Additional comments for this credit card |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication | C, O | Object holding information about 3DS2 payments | |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV | String(48) | O | It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor. |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ECI | String(2) | O | Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/XID | String(40) | O | Encoded "transactionId" |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID | UUID | O | Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion | String(5) | O | A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD. |
Pull_GetReservationByID_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType | String(40) | O | Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt. |
Pull_GetReservationByID_RS/Reservations/PMSReservationId | String(100) | O | PMS Reservation ID |
Pull_GetReservationByID_RS/Reservations/Reservation/CancelTypeID | Integer | O | Cancellation type. See List cancellation types |
Pull_GetReservationByID_RS/Reservations/Reservation/IsArchived | Boolean | M | Indicates whether reservation is archived |
Get Leads
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Pull_GetLeads_RQ request = new Pull_GetLeads_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
DateFrom = "2013-08-17 13:25:00",
DateTo = "2013-08-17 13:45:00",
LocationID = 5309
};
string xmlBody = XmlTools.SerializeObject<Pull_GetLeads_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_GetLeads_RS response = XmlTools.DeserializeObject<Pull_GetLeads_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns only leads. Leads indicate a conversation initiated by the guest in the channel. It is not a booking and it does not block the property's availability. It is not possible to confirm or reject it.
This method will always return leads that were created or canceled up to 7 days in the past from the day this method was used. Providing a longer date range will not have any effect on the returned result.
For example:
- if today is 2024-06-10 and you use this method in the following date range, then the results will include all Leads created from 2024-06-03 (inclusive) to 2024-06-10 (inclusive) because the range is not longer than 7 days.
<DateFrom>2024-06-03</DateFrom>
<DateTo>2024-06-10</DateTo>
- if today is 2024-06-10 and you use this method in the following date range, then the results will include all Leads created from 2024-06-03 (inclusive) to 2024-06-10 (inclusive) anyway.
<DateFrom>2024-06-01</DateFrom>
<DateTo>2024-06-10</DateTo>
- if today is 2024-06-10 and you use this method in the following date range, then the results will not include anything.
<DateFrom>2024-06-01<DateFrom>
<DateTo>2024-06-02</DateTo>
Request
<Pull_GetLeads_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<DateFrom>2013-08-17 13:25:00</DateFrom>
<DateTo>2013-08-17 13:45:00</DateTo>
<LocationID>5309</LocationID>
</Pull_GetLeads_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetLeads_RQ | C | Root element | |
Pull_GetLeads_RQ/Authentication | C, M | Authentication details | |
Pull_GetLeads_RQ/Authentication/UserName | String(50) | M | Username |
Pull_GetLeads_RQ/Authentication/Password | String(50) | M | Password |
Pull_GetLeads_RQ/DateFrom | String(10) | M | Start of the range (YYYY-MM-DD format) |
Pull_GetLeads_RQ/DateTo | String(10) | M | End of the range (YYYY-MM-DD format) |
Pull_GetLeads_RQ/LocationID | Integer | M | See ListLocations |
Response
<Pull_GetLeads_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Leads>
<Lead>
<ReservationID>123456</ReservationID>
<ExternalReservationID>123_asd_213</ExternalReservationID>
<PropertyID>1</PropertyID>
<XmlApartmentID>1</XmlApartmentID>
<DateFrom>2015-03-01</DateFrom>
<DateTo>2015-03-10</DateTo>
<ArrivalTime>2015-03-01 08:56:00</ArrivalTime>
<NumberOfGuests>4</NumberOfGuests>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>100</CountryID>
<LanguageID>1</LanguageID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Comments>How much is it?</Comments>
<Creator>test@test.test</Creator>
<DateFrom>2015-02-01</DateFrom>
<IsArchived>false</IsArchived>
</Lead>
</Leads>
</Pull_GetLeads_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetLeads_RS | C | Root element | |
Pull_GetLeads_RS/Status | String(100) | M | See ListStatuses |
Pull_GetLeads_RS/Status@ID | Integer | M | See ListStatuses |
Pull_GetLeads_RS/ResponseID | String(32) | M | Unique response ID |
Pull_GetLeads_RS/Leads | C, M | List of leads | |
Pull_GetLeads_RS/Leads/Lead | C, O | Individual lead | |
Pull_GetLeads_RS/Leads/Lead/ReservationID | Integer | M | Unique reservation ID |
Pull_GetLeads_RS/Leads/Lead/ExternalReservationID | Integer | M | Lead's unique identifier from the external system that created it |
Pull_GetLeads_RS/Leads/Lead/PropertyID | Integer | M | Unique property ID |
Pull_GetLeads_RS/Leads/Lead/XmlApartmentID | String | M | External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned) |
Pull_GetLeads_RS/Leads/Lead/DateFrom | String(10) | M | Arrival date in the lead (YYYY-MM-DD format) |
Pull_GetLeads_RS/Leads/Lead/DateTo | String(10) | M | Departure date in the lead (YYYY-MM-DD format) |
Pull_GetLeads_RS/Leads/Lead/NumberOfGuests | Integer | M | Number of guests in the lead |
Pull_GetLeads_RS/Leads/Lead/Price | Decimal(19,2) | M | The price returned by one of the RU methods for the property in the specified dates |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo | C, M | Information about the guest | |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/Name | String(20) | M | Guest's name |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/SurName | String(30) | M | Guest's surname |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/Email | String(100) | M | Guest's email address |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/Phone | String(30) | O | Guest's phone number with the country code |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/Address | String(50) | O | Guest's address |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/CountryID | Integer | O | Country's unique ID, see ListLocations (filter LocationTypeID=2) |
Pull_GetLeads_RS/Leads/Lead/CustomerInfo/LanguageID | Integer | O | Code that identifies the guest's language, see ListLanguages |
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation |
Pull_GetLeads_RS/Leads/Lead/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
Pull_GetLeads_RS/Leads/Lead/Comments | String(4000) | O | Additional comments |
Pull_GetLeads_RS/Leads/Lead/Creator | String(50) | M | Email address/Username of an entity that created a lead, e.g. the channel or the user |
Pull_GetLeads_RS/Leads/Lead/DateEntered | String(19) | M | Information when the lead was created (YYYY-MM-DD HH:MM:SS format) |
Pull_GetLeads_RS/Leads/Lead/IsArchived | Boolean | M | Indicates whether this lead is archived or not |
List Reservations Missing PMS Mapping
using System;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Pull_ListReservationsMissingPMSMapping_RQ request = new Pull_ListReservationsMissingPMSMapping_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
DateFrom = new DateTime(2014, 10, 10)
};
string xmlBody = XmlTools.SerializeObject<Pull_ListReservationsMissingPMSMapping_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListReservationsMissingPMSMapping_RS response = XmlTools.DeserializeObject<Pull_ListReservationsMissingPMSMapping_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method has been designed for property providers to help them reconcile reservations in Rentals United and their systems.
It returns a list of reservations for which Rentals United does not have PMS Reservation ID stored. The XML response includes all unique identifiers needed to identify a reservation in your system.
Request
<Pull_ListReservationsMissingPMSMapping_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<DateFrom>2014-10-10</DateFrom>
</Pull_ListReservationsMissingPMSMapping_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListReservationsMissingPMSMapping_RQ | C | Root element | |
Pull_ListReservationsMissingPMSMapping_RQ/Authentication | C, M | Authentication details | |
Pull_ListReservationsMissingPMSMapping_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListReservationsMissingPMSMapping_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListReservationsMissingPMSMapping_RQ/DateFrom | String(10) | M | Date when the first reservation was entered (YYYY-MM-DD format) |
Response
<Pull_ListReservationsMissingPMSMapping_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Reservations>
<ReservationMissingPMSMapping>
<RUReservationId>1</RUReservationId>
<ExternalReservationId>Test2</ExternalReservationId>
<RUPropertyId>3</RUPropertyId>
<PMSPropertyId>Test4</PMSPropertyId>
<DateFrom>2014-10-10</DateFrom>
<DateTo>2014-10-20</DateTo>
</ReservationMissingPMSMaping>
<ReservationMissingPMSMapping>
<RUReservationId>5</RUReservationId>
<ExternalReservationId>Test6</ExternalReservationId>
<RUPropertyId>7</RUPropertyId>
<PMSPropertyId>Test8</PMSPropertyId>
<DateFrom>2014-10-21</DateFrom>
<DateTo>2014-10-24</DateTo>
</ReservationMissingPMSMaping>
</Reservations>
</Pull_ListReservationsMissingPMSMapping_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListReservationsMissingPMSMapping_RS | C | Root element | |
Pull_ListReservationsMissingPMSMapping_RS/Status | String(100) | M | See ListStatuses |
Pull_ListReservationsMissingPMSMapping_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListReservationsMissingPMSMapping_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListReservationsMissingPMSMapping_RS/Reservations | C, M | List of reservations missing PMS mapping | |
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping | C, O | Reservation details | |
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/RUReservationId | Integer | O | Rentals United reservation ID |
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/ExternalReservationID | String(50) | O | Sales Channel reservation ID |
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/RUPropertyId | Integer | O | Rentals United property ID |
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/PMSPropertyId | String(50) | O | Apartment ID in PMS |
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/DateFrom | String(10) | Arrival date (YYYY-MM-DD format) | |
Pull_ListReservationsMissingPMSMapping_RS/Reservations/ReservationMissingPMSMapping/DateTo | String(10) | Departure date (YYYY-MM-DD format) |
List reservations for owner
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Pull_ListReservationsOwnerUser_RQ request = new Pull_ListReservationsOwnerUser_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
DateFrom = "2013-08-17 14:00:00",
DateTo = "2013-08-17 14:20:00",
LocationID = 0,
Username = "test@test.com"
};
string xmlBody = XmlTools.SerializeObject<Pull_ListReservationsOwnerUser_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListReservationsOwnerUser_RS response = XmlTools.DeserializeObject<Pull_ListReservationsOwnerUser_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method is designed for Revenue Management Systems.
This method returns a list of reservations for a Rentals United account sorted by last modification date.
Call this method periodically to obtain created, cancelled and modified reservations and transfer them to your system.
We encourage you to call this API method at least every 20 minutes to quickly update your calendar.
Important: By default this method will return only reservations in the Confirmed and Cancelled statuses. In order to retrieve the reservations in other statuses, e.g. unconfirmed reservations (requests), make sure to provide the list of statuses in Pull_ListReservations_RQ/Statuses. See ListReservationStatuses
.
Request
Example (returns a list of reservations modified between 2013-08-17 14:00:00 and 2013-08-17 14:19:59)
<Pull_ListReservationsOwnerUser_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<DateFrom>2013-08-17 14:00:00</DateFrom>
<DateTo>2013-08-17 14:20:00</DateTo>
<LocationID>0</LocationID>
<Username>test@test.com</Username>
</Pull_ListReservationsOwnerUser_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListReservationsOwnerUser_RQ | C | Root element | |
Pull_ListReservationsOwnerUser_RQ/Authentication | C, M | Authentication details | |
Pull_ListReservationsOwnerUser_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListReservationsOwnerUser_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListReservationsOwnerUser_RQ/DateFrom | String(19) | M | Start of the range (YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservationsOwnerUser_RQ/DateTo | String(19) | M | End of the range (YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservationsOwnerUser_RQ/LocationID | Integer | M | Unique location ID, see ListLocations |
Pull_ListReservationsOwnerUser_RQ/Username | String (50) | M | Owner’s username |
Pull_ListReservationsOwnerUser_RQ/Statuses | C, O | Collection of reservation status IDs. See ListReservationStatuses . By default, only reservations in the Confirmed and Cancelled statuses are retrieved. Retrieving reservations in the Modified status will always return an empty list. |
|
Pull_ListReservationsOwnerUser_RQ/Statuses\StatusID | Integer | M | Reservation status ID |
Response
<Pull_ListReservationsOwnerUser_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Reservations>
<Reservation>
<ReservationID>123</ReservationID>
<StatusID>1</StatusID>
<CreatedDate>2012-02-25 09:43:22</CreatedDate>
<LastMod>2012-03-01 10:10:02</LastMod>
<StayInfos>
<StayInfo>
<PropertyID>1</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-10</DateTo>
<ArrivalTime>2012-03-02 08:31:00</ArrivalTime>
<NumberOfGuests>4</NumberOfGuests>
<Costs>
<RUPrice>100.00</RUPrice>
<ClientPrice>110.00</ClientPrice>
<AlreadyPaid>10.00</AlreadyPaid>
</Costs>
<ResApaID>1</ResApaID>
<Mapping>
<ReservationID>123</ReservationID>
<StayID>123</StayID>
<HotelID>123</HotelID>
<RoomID>123</RoomID>
<RateID>123</RateID>
</Mapping>
<ReservationBreakdown>
<RUBreakdown>
<DayPrices Date="2012-03-02">
<Rent>100</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>120.5</Price>
</DayPrices>
<DayPrices Date="2012-03-03">
<Rent>100</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>120.5</Price>
</DayPrices>
<TotalFeesTaxes>
<TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
<TotalFeeTax AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
<TotalFeeTax AlreadyIncluded="false" Amount="24.59" Name="VAT" FeeTaxType="2"/>
</TotalFeesTaxes>
<Total>248.09</Total>
<Rent>200</Rent>
</RUBreakdown>
<ChannelBreakdown>
<DayPrices Date="2012-03-02">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
<Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
</Taxes>
<Fees>
<Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
</Fees>
<Price>157.10</Price>
</DayPrices>
<DayPrices Date="2012-03-03">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
</Taxes>
<Price>101.11</Price>
</DayPrices>
<ChannelTotalFeesTaxes>
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
</ChannelTotalFeesTaxes>
<ChannelTotal>282.07</ChannelTotal>
<ChannelRent>206.37</ChannelRent>
</ChannelBreakdown>
</ReservationBreakdown>
</StayInfo>
</StayInfos>
<CancellationPolicyInfo>
<PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
</CancellationPolicyInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>42</CountryID>
<LanguageID>2</LanguageID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Creator>test@test.test</Creator>
</Reservation>
<Reservation>
<ReservationID>124</ReservationID>
<StatusID>2</StatusID>
<CreatedDate>2012-03-01 20:10:02</CreatedDate>
<LastMod>2012-03-01 20:10:02</LastMod>
<StayInfo>
<PropertyID>2</PropertyID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
</Costs>
<ResApaID>2</ResApaID>
</StayInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>33</CountryID>
</CustomerInfo>
<Creator>test@test.test</Creator>
<Comments>test</Comments>
<CancelTypeID>1</CancelTypeID>
<Archived>false</Archived>
</Reservation>
</Reservations>
</Pull_ListReservationsOwnerUser_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListReservationsOwnerUser_RS | C | Root element | |
Pull_ListReservationsOwnerUser_RS/Status | String(100) | M | See ListStatuses |
Pull_ListReservationsOwnerUser_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListReservationsOwnerUser_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListReservationsOwnerUser_RS/Reservations | C | A list of reservations | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation | C | Single reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/ReservationID | Integer | M | Unique reservation ID |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StatusID | Integer | M | The code that identifies a reservation status, see ListReservationStatuses |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreatedDate | String | M | The creation date of the reservation (format YYYY-MM-DD HH:MM:SS) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/LastMod | String | M | The last modification date (creation or cancellation) of the reservation (format YYYY-MM-DD HH:MM:SS) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos | C, M | Information about the stay associated with the reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo | M | Information about the stay | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/PropertyID | Integer | M | Unique property ID |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/XmlApartmentID | String | M | External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ArrivalTime | String(19) | O | Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/NumberOfGuests | Integer | M | Number of guests |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Costs | C, M | Information about reservation costs | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/RUPrice | Decimal(19,2) | M | Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/ClientPrice | Decimal(19,2) | M | Final price for the guest |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid | Decimal(19,2) | M | The amount already paid by the guest |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ResApaID | Integer | M | Unique apartment reservation identifier |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Comments | String(500) | O | Additional comments about the stay |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping | C, O | Information about reservation mapping with external systems | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/ReservationID | String(50) | M | External System’s Reservation ID |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/StayID | String(50) | O | External System’s reservation identifier assigned to the property |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/HotelID | String(50) | O | External System’s Apartment identifier |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RoomID | String(50) | O | External System’s Room Identifier |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RateID | String(50) | O | External System’s Rate identifier |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown | C, M | A container object for the reservation price breakdown details | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown | C, M | A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices | C, M | A collection of objects containing price information for each day of the reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent | Decimal(19,2) | M | The value of the base rent for specific day |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes | C, M | A collection of taxes for specific DayPrices@Date of the reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded | Boolean | M | Information if the tax value is included in Rent |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees | C, M | A collection of fees for specific DayPrices@Date of the reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded | Boolean | M | Information if the fee value is included in Rent |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes | C,M | A container objects for fees and taxes applied for the whole stay | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded | Boolean | M | Information if the total tax/fee amount of one type is included in Rent |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name | String(50) | M | Tax/fee description |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total | Decimal(19,2) | M | The overall value of rent, fees and taxes of the whole stay |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent | Decimal(19,2) | M | The value of rent for the whole stay |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown | C, O | A container object for the reservation price breakdown received from the sales channel | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices | C, O | A collection of objects containing price information for each day of the reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo | C, O | A collection of rent items for specific DayPrices@Date of the reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal | Boolean | M | Information if the rent value is included in ChannelTotal |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount | Decimal(19,2) | M | The daily rent value |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name | String(50) | M | Rent description |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes | C, O | A collection of taxes for specific DayPrices@Date of the reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal | Boolean | M | Information if the tax value is included in ChannelTotal |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees | C, O | A collection of fees for specific DayPrices@Date of the reservation | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal | Boolean | M | Information if the fee value is included in ChannelTotal |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes | C, M | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal | Boolean | M | Information if the total tax/fee amount of one type is included in ChannelTotal |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name | String(50) | M | Tax/fee description |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType | String(3) | O | Information whether the item is a tax or a fee |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal | Decimal(19,2) | M | The total price paid by the guest for the whole stay as received from the sales channel |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent | Decimal(19,2) | M | The rent value of the whole stay |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission | Decimal(19,2) | O | The amount charged by the sales channel |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo | C, O | A container for the cancellation policy description and a collection of cancellation policies | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText | String(1000) | M | The cancellation policy description |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies | C, O | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy | Decimal(19,2) | O | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | O | The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo | Integer | O | The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo | C, M | Information about the guest | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Name | String(20) | M | Guest's name |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/SurName | String(30) | M | Guest's surname |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Email | String(100) | M | Guest's email address |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with the country code |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, see ListStatuses (filter LocationTypeID=2) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/LanguageID | Integer | O | Code that identifies the guest's language, see ListLanguages |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CustomerInfo/Passport | String(30) | O | Guest's passport number |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/Creator | String(50) | M | Email address/Username of an entity that created a reservation, e.g. the channel or the user |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/Comments | String(4000) | O | Additional comments |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard | C, O | Credit card information. This container will not be shown for accounts connected to Stripe. | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/CCNumber | String(19) | M | Credit card number |
String(4) | O | ||
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/NameOnCard | String(400) | M | Credit card holder name |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/Expiration | String(7) | M | Credit card expiration date (MM/YYYY format) |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/BillingAddress | String(400) | O | Billing address |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/CardType | String(30) | M | Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/Comments | String(400) | O | Additional comments for this credit card |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication | C, O | Object holding information about 3DS2 payments | |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV | String(48) | O | It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor. |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ECI | String(2) | O | Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/XID | String(40) | O | Encoded "transactionId" |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID | UUID | O | Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion | String(5) | O | A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD. |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType | String(40) | O | Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt. |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancelTypeID | Integer | O | Cancellation type. See List cancellation types |
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/IsArchived | Boolean | M | Indicates whether reservation is archived |
List reservations by Subusers
This method is designed for the Vacation Rentals services that rely on the Subuser mechanism described here
<Pull_ListReservationsSubUsers_RQ>
<Authentication>
<UserName>[Username]</UserName>
<Password>[Password]</Password>
</Authentication>
<DateFrom>2021-06-01 00:00:00</DateFrom>
<DateTo>2021-06-08 00:00:00</DateTo>
<LocationID>0</LocationID>
<User>testParentUser@test.com</User>
</Pull_ListReservationsSubUsers_RQ>
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
Pull_ListReservationsSubUsers_RQ request = new Pull_ListReservationsSubUsers_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
DateFrom = "2021-08-17 14:00:00",
DateTo = "2021-08-17 14:20:00",
LocationID = 0,
User = "testParentUser@test.com"
};
string xmlBody = XmlTools.SerializeObject<Pull_ListReservationsSubUsers_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListReservationsSubUsers_RS response = XmlTools.DeserializeObject<Pull_ListReservationsSubUsers_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Request
Logic of processing this request is exactly like Pull_ListReservations_RQ
is has just a different scope of authorization that allows to pull ParentUser properties when your integration relies on the Subuser mechanism.
Important: By default this method will return only reservations in the Confirmed and Cancelled statuses. In order to retrieve the reservations in other statuses, e.g. unconfirmed reservations (requests), make sure to provide the list of statuses in Pull_ListReservations_RQ/Statuses. See ListReservationStatuses
.
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListReservationsSubUsers_RQ | C | Root element | |
Pull_ListReservationsSubUsers_RQ/Authentication | C, M | Authentication details | |
Pull_ListReservationsSubUsers_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListReservationsSubUsers_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListReservationsSubUsers_RQ/DateFrom | String(19) | M | Start of the range of modification (YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservationsSubUsers_RQ/DateTo | String(19) | M | End of the range of modification( YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservationsSubUsers_RQ/LocationID | Integer | M | Unique location ID. See ListLocations . To download all of your bookings without location filter please send "0". |
Pull_ListReservationsSubUsers_RQ/User | String(50) | M | Username of ParentUser you would like to pull reservations for |
Pull_ListReservationsSubUsers_RQ/Statuses | C, O | Collection of reservation status IDs. See ListReservationStatuses . By default, only reservations in the Confirmed and Cancelled statuses are retrieved. Retrieving reservations in the Modified status will always return an empty list. |
|
Pull_ListReservationsSubUsers_RQ/Statuses/StatusID | Integer | M | Reservation status ID |
Response
<Pull_ListReservationsSubUsers_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Reservations>
<Reservation>
<ReservationID>123</ReservationID>
<StatusID>1</StatusID>
<CreatedDate>2012-02-25 09:43:22</CreatedDate>
<LastMod>2012-03-01 10:10:02</LastMod>
<StayInfos>
<StayInfo>
<PropertyID>1</PropertyID>
<XmlApartmentID>Ext. ID. 1</XmlApartmentID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-10</DateTo>
<ArrivalTime>2012-03-02 13:22:00</ArrivalTime>
<NumberOfGuests>4</NumberOfGuests>
<Costs>
<RUPrice>100.00</RUPrice>
<ClientPrice>110.00</ClientPrice>
<AlreadyPaid>10.00</AlreadyPaid>
</Costs>
<ResApaID>1</ResApaID>
<Mapping>
<ReservationID>123</ReservationID>
<StayID>123</StayID>
<HotelID>123</HotelID>
<RoomID>123</RoomID>
<RateID>123</RateID>
</Mapping>
<ReservationBreakdown>
<RUBreakdown>
<DayPrices Date="2012-03-02">
<Rent>100</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>120.5</Price>
</DayPrices>
<DayPrices Date="2012-03-03">
<Rent>100</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>120.5</Price>
</DayPrices>
<TotalFeesTaxes>
<TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
<TotalFeeTax AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
<TotalFeeTax AlreadyIncluded="false" Amount="24.59" Name="VAT" FeeTaxType="2"/>
</TotalFeesTaxes>
<Total>248.09</Total>
<Rent>200</Rent>
</RUBreakdown>
<ChannelBreakdown>
<DayPrices Date="2012-03-02">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
<Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
</Taxes>
<Fees>
<Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
</Fees>
<Price>157.10</Price>
</DayPrices>
<DayPrices Date="2012-03-03">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
</Taxes>
<Price>101.11</Price>
</DayPrices>
<ChannelTotalFeesTaxes>
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="50.70" Currency="USD" Name="Room" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
</ChannelTotalFeesTaxes>
<ChannelTotal>282.07</ChannelTotal>
<ChannelRent>206.37</ChannelRent>
</ChannelBreakdown>
</ReservationBreakdown>
</StayInfo>
</StayInfos>
<CancellationPolicyInfo>
<PolicyText>Full refund until 11 days before arrival. 50% charge from 4 to 10 days before arrival. 100% charge from 0 to 3 days before arrival.</PolicyText>
<CancellationPolicies>
<CancellationPolicy ValidFrom="0" ValidTo="3">100</CancellationPolicy>
<CancellationPolicy ValidFrom="4" ValidTo="10">50</CancellationPolicy>
</CancellationPolicies>
</CancellationPolicyInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>42</CountryID>
<LanguageID>2</LanguageID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Creator>test@test.test</Creator>
</Reservation>
<Reservation>
<ReservationID>124</ReservationID>
<StatusID>2</StatusID>
<CreatedDate>2012-03-01 20:10:02</CreatedDate>
<LastMod>2012-03-01 20:10:02</LastMod>
<StayInfo>
<PropertyID>2</PropertyID>
<XmlApartmentID>Ext. ID. 2</XmlApartmentID>
<DateFrom>2012-03-02</DateFrom>
<DateTo>2012-03-14</DateTo>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>120.00</RUPrice>
<ClientPrice>140.00</ClientPrice>
<AlreadyPaid>0.00</AlreadyPaid>
</Costs>
<ResApaID>2</ResApaID>
</StayInfo>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>33</CountryID>
</CustomerInfo>
<Creator>test@test.test</Creator>
<Comments>test</Comments>
<PMSReservationId>39huy</PMSReservationId>
<CancelTypeID>1</CancelTypeID>
<Archived>false</Archived>
</Reservation>
</Reservations>
</Pull_ListReservationsSubUsers_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListReservationsSubUsers_RS | C | Root element | |
Pull_ListReservationsSubUsers_RS/Status | String(100) | M | See ListStatuses |
Pull_ListReservationsSubUsers_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListReservationsSubUsers_RS/Reservations | C | A list of reservations | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation | C | Single reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/ReservationID | Integer | M | Unique reservation ID |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StatusID | Integer | M | The code that identifies a reservation status, see ListReservationStatuses |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreatedDate | String | M | The creation date of the reservation (format YYYY-MM-DD HH-MM-SS) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/LastMod | String | M | The last modification date (creation or cancellation) of the reservation (format YYYY-MM-DD HH-MM-SS) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos | C, M | Information about the stay associated with the reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo | M | Information about the stay | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/PropertyID | Integer | M | Unique property ID |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/XmlApartmentID | String | M | External System’s Property ID e.g. property ID in your PMS (if not provided, a value of "-1" will be returned) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ArrivalTime | String(19) | O | Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/NumberOfGuests | Integer | M | Number of guests |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Costs | C, M | Information about reservation costs | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/RUPrice | Decimal (19,2) | M | Rent price of the whole stay calculated on the basis of your price model in Rentals United (daily, LOS, FSP) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/ClientPrice | Decimal (19,2) | M | Final price for the guest |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid | Decimal(19,2) | M | The amount already paid by the guest |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ResApaID | Integer | M | Unique apartment reservation identifier. ResApaID can change in case of booking modification when reservation was moved from one apartment to another. |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Comments | String(500) | O | Additional comments about the stay |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping | C, O | Information about reservation mapping with external systems | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/ReservationID | String(50) | M | External System’s Reservation ID |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/StayID | String(50) | O | External System’s reservation identifier assigned to the property |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/HotelID | String(50) | O | External System’s Apartment identifier |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RoomID | String(50) | O | External System’s Room Identifier |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/Mapping/RateID | String(50) | O | External System’s Rate identifier |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown | C, M | A container object for the reservation price breakdown details | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown | C, M | A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices | C, M | A collection of objects containing price information for each day of the reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent | Decimal(19,2) | M | The value of the base rent for specific day |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes | C, M | A collection of taxes for specific DayPrices@Date of the reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded | Boolean | M | Information if the tax value is included in Rent |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees | C, M | A collection of fees for specific DayPrices@Date of the reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded | Boolean | M | Information if the fee value is included in Rent |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes | C,M | A container objects for fees and taxes applied for the whole stay | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded | Boolean | M | Information if the total tax/fee amount of one type is included in Rent |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name | String(50) | M | Tax/fee description |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total | Decimal(19,2) | M | The overall value of rent, fees and taxes of the whole stay |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent | Decimal(19,2) | M | The value of rent for the whole stay |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown | C, O | A container object for the reservation price breakdown received from the sales channel | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices | C, O | A collection of objects containing price information for each day of the reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo | C, O | A collection of rent items for specific DayPrices@Date of the reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal | Boolean | M | Information if the rent value is included in ChannelTotal |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount | Decimal(19,2) | M | The daily rent value |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name | String(50) | M | Rent description |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes | C, O | A collection of taxes for specific DayPrices@Date of the reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal | Boolean | M | Information if the tax value is included in ChannelTotal |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees | C, O | A collection of fees for specific DayPrices@Date of the reservation | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal | Boolean | M | Information if the fee value is included in ChannelTotal |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes | C, M | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal | Boolean | M | Information if the total tax/fee amount of one type is included in ChannelTotal |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency | String(3) | M | Currency, see ListCurrencies |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name | String(50) | M | Tax/fee description |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType | String(3) | O | Information whether the item is a tax or a fee |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal | Decimal(19,2) | M | The total price paid by the guest for the whole stay as received from the sales channel |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent | Decimal(19,2) | M | The rent value of the whole stay |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission | Decimal(19,2) | O | The amount charged by the sales channel |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo | C, O | A container for the cancellation policy description and a collection of cancellation policies | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/PolicyText | String(1000) | M | The cancellation policy description |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies | C, O | A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy | Decimal(19,2) | O | A percentage of the total price which the guest would be charged. The attributes ValidFrom and ValidTo represent the number of days before the arrival when the policy is valid |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidFrom | Integer | O | The number of days before the arrival when the cancellation policy starts to apply. This value must be smaller than ValidTo |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy@ValidTo | Integer | O | The number of days before the arrival when the cancellation policy stops to apply. This value must be greater than ValidFrom |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo | C, M | Information about the guest | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Name | String(20) | M | Guest's name |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/SurName | String(30) | M | Guest's surname |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Email | String(100) | M | Guest's email address |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with the country code |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, see ListLocations (filter LocationTypeID=2) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/LanguageID | Integer | O | Code that identifies the guest's language, see ListLanguages |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CustomerInfo/Passport | String(30) | O | Guest's passport number |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/Creator | String(50) | M | Email address/Username of an entity that created a reservation, e.g. the channel or the user |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/Comments | String(4000) | O | Additional comments |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard | C, O | Credit card information. This container will not be shown for accounts connected to Stripe. | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/CCNumber | String(19) | M | Credit card number |
String(4) | O | ||
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/NameOnCard | String(400) | M | Credit card holder name |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/Expiration | String(7) | M | Credit card expiration date (MM/YYYY format) |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/BillingAddress | String(400) | O | Billing address |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/CardType | String(30) | M | Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/Comments | String(400) | O | Additional comments for this credit card |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication | C, O | Object holding information about 3DS2 payments | |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/CAVV | String(48) | O | It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, the token's validity will have to be confirmed with the card processor. |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ECI | String(2) | O | Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/XID | String(40) | O | Encoded "transactionId" |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/DsTransID | UUID | O | Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion | String(5) | O | A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD. |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CreditCard/SecureAuthentication/ExceptionType | String(40) | O | Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt. |
Pull_ListReservationsSubUsers_RS/Reservations/PMSReservationId | String(100) | O | PMS Reservation ID |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancelTypeID | Integer | O | Cancellation type. See List cancellation types |
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/IsArchived | Boolean | M | Indicates whether reservation is archived |
User management
This method have been designed to manage Rentals United accounts.
List created users
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.UserAccount;
Pull_ListMyUsers_RQ request = new Pull_ListMyUsers_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_ListMyUsers_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListMyUsers_RS response = XmlTools.DeserializeObject<Pull_ListMyUsers_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method is designed for PMSes and property providers who maintain multiple Rentals United accounts.
This method returns a list of users created via Push_CreateUser_RQ
.
Request
XML Request
<Pull_ListMyUsers_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_ListMyUsers_RQ>
XML Path | Date Type | Type | Description |
---|---|---|---|
Pull_ListMyUsers_RQ | C | Root element | |
Pull_ListMyUsers_RQ/Authentication | C, M | Authentication details | |
Pull_ListMyUsers_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListMyUsers_RQ/Authentication/Password | String(50) | M | Password |
Response
XML Response
<Pull_ListMyUsers_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Owners>
<Owner OwnerID="1">
<FirstName>John</FirstName>
<SurName>Smith</SurName>
<Email>john.smith@domain.com</Email>
<Phone>+48 22 000 00 00</Phone>
<Username>john.smith@domain.com</Username>
<UserAccountID>123</UserAccountID>
<ConfigurationString/>
</Owner>
</Owners>
</Pull_ListMyUsers_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListMyUsers_RS | C | Root element | |
Pull_ListMyUsers_RS/Status | String(100) | M | See ListStatuses |
Pull_ListMyUsers_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListMyUsers_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListMyUsers_RS/Owners | C, O | Collection of owners | |
Pull_ListMyUsers_RS/Owners/Owner | C, O | The details of the owner | |
Pull_ListMyUsers_RS/Owners/Owner@OwnerID | Integer | M | Unique property ID owner |
Pull_ListMyUsers_RS/Owners/Owner/FirstName | String(20) | M | Owner's first name |
Pull_ListMyUsers_RS/Owners/Owner/SurName | String(30) | M | Owner's surname |
Pull_ListMyUsers_RS/Owners/Owner/Email | String(100) | M | Owner's email address |
Pull_ListMyUsers_RS/Owners/Owner/Phone | String(20) | M | Owner's phone number (with the country code) |
Pull_ListMyUsers_RS/Owners/Owner/UserAccountId | Integer | M | Owner's PMS Account ID (0 will be returned if the user is not connected to any PMS), it should be used in Push_PutProperty_RQ |
Pull_ListMyUsers_RS/Owners/Owner/ConfigurationString | String(20) | O | Values used to parametrize API Calls to PMS |
Create user
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;
Push_CreateUser_RQ request = new Push_CreateUser_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
FirstName = "John",
LastName = "Doe"
Email = "john@nonexistent.com",
Password = "testpass",
Locations = new List<int>() { 1 }
};
string xmlBody = XmlTools.SerializeObject<Push_CreateUser_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_CreateUser_RS response = XmlTools.DeserializeObject<Push_CreateUser_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to create a new Rentals United user account. If using this method, also consider implementing the Filling company details
method to make onboarding easier.
Request
<Push_CreateUser_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
<Email>john@nonexistent.com</Email>
<Password>testpass</Password>
<Locations>
<LocationId>1</LocationId>
</Locations>
</Push_CreateUser_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_CreateUser_RQ | C | Root Element | |
Push_CreateUser_RQ/Authentication | C, M | Authentication details | |
Push_CreateUser_RQ/Authentication/UserName | String(50) | M | Username |
Push_CreateUser_RQ/Authentication/Password | String(50) | M | Password |
Push_CreateUser_RQ/FirstName | String(50) | M | User's first name |
Push_CreateUser_RQ/LastName | String(50) | M | User's last name |
Push_CreateUser_RQ/Email | String(50) | M | User's email |
Push_CreateUser_RQ/Password | String(50) | M | User's password. Password needs to be at least 12 characters long, have at least one lowercase letter, have at least one uppercase letter, have at least one number, have at least one special character and it cannot contain user's email address. |
Push_CreateUser_RQ/PMSId | Integer | O | Allows to associate User to PMS service Provided by RU |
Push_CreateUser_RQ/ConfigurationString | String(150) | O | Had to be consulted with RU support what should be provided in this field |
Push_CreateUser_RQ/Locations | C, M | User's locations | |
Push_CreateUser_RQ/LocationId | Integer | M | At least one the user's locations |
Response
<Push_CreateUser_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_CreateUser_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_CreateUser_RS | C | Root Element | |
Push_CreateUser_RS/Status | String(100) | M | See ListStatuses |
Push_CreateUser_RS/Status/@ID | Integer | M | See ListStatuses |
Push_CreateUser_RS/ResponseID | String(32) | M | Unique response ID |
List Parent Users
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.User;
Pull_ListAllParentUsers_RQ request = new Pull_ListAllParentUsers_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_ListAllParentUsers_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListAllParentUsers_RS response = XmlTools.DeserializeObject<Pull_ListAllParentUsers_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method when you're a subuser and need to know a pool of users available to you.
Request
<Pull_ListAllParentUsers_RQ>
<Authentication>
<UserName>[Username]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_ListAllParentUsers_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListAllParentUsers_RQ | C | Root Element | |
Pull_ListAllParentUsers_RQ/Authentication | C, M | Authentication details | |
Pull_ListAllParentUsers_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListAllParentUsers_RQ/Authentication/Password | String(50) | M | Password |
Response
<Pull_ListAllParentUsers_RS>
<Status ID="0">Success</Status>
<ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
<ParentUsers>
<User>
<UserId>55432</UserId>
<Username>testuser1@rentalsunited.com</Username>
</User>
<User>
<UserId>55591</UserId>
<Username>testuser2@rentalsunited.com</Username>
</User>
</ParentUsers>
</Pull_ListAllParentUsers_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListAllParentUsers_RS | C | Root Element | |
Pull_ListAllParentUsers_RS/Status | String(100) | M | |
Pull_ListAllParentUsers_RS/Status/@ID | Integer | M | See ListStatuses |
Pull_ListAllParentUsers_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListAllParentUsers_RS/ParentUsers | C | Collection of ParentUsers | |
Pull_ListAllParentUsers_RS/ParentUsers/User/UserId | Integer | M | UserId useful for pulling properties |
Pull_ListAllParentUsers_RS/ParentUsers/User/Username | String(50) | M | Username to use in Pull_ListOwnerProp_RQ |
Fill Company Details
Provide the vital company information via API. Useful for creation of the Rentals United company profile via API, e.g. PMS partners. Information provided will be used to connect properties to sales channels, e.g. for contracting and contacting purposes. It is possible to modify these details in Rentals United UI. To do this go to the Company Profile tab from the User Profile menu.
Request
<Push_FillCompanyDetails_RQ>
<Authentication>
<UserName>fillcompanydetailstest@test.com</UserName>
<Password>test_test</Password>
</Authentication>
<ContactInfo>
<FirstName>Companydetails</FirstName>
<LastName>Test</LastName>
<Email>fillcompanydetailstest@test.com</Email>
<Phone>+48000000000</Phone>
<City>Warsaw</City>
<CountryId>153</CountryId>
<Address>Test address</Address>
<ZipCode>12345</ZipCode>
<BirthDate>2000-10-10</BirthDate>
<LanguageId>1</LanguageId>
</ContactInfo>
<CompanyInfo>
<CompanyName>Some company</CompanyName>
<WebsiteAddress>www.somecompany.com</WebsiteAddress>
<CompanyCity>Warsaw</CompanyCity>
<Address>New address</Address>
<CountryId>58838</CountryId>
<PostCode>12345</PostCode>
<TimeZone>UTC+10:00</TimeZone>
<Region>Region</Region>
<PhoneNumber>12345</PhoneNumber>
<VATNumber>1234</VATNumber>
<ManagerIdentificationNumber>1234</ManagerIdentificationNumber>
<MerchantName>somecompany@domain.com</MerchantName>
<Locations>
<Location Id="6539" />
<Location Id="2016" />
</Locations>
<NumberOfProperties>3</NumberOfProperties>
<NumberOfEmployees>1</NumberOfEmployees>
<YearsInBusiness>2</YearsInBusiness>
<DescribeYourBusiness>Description</DescribeYourBusiness>
</CompanyInfo>
<LegalRepresentativeInfo>
<FirstName>FirstName</FirstName>
<LastName>LastName</LastName>
<Email>test@test.com</Email>
<City>Warsaw</City>
<CountryOfResidenceId>58838</CountryOfResidenceId>
<Address>Test address</Address>
<PostCode>12345</PostCode>
<Birthday>2000-10-10</Birthday>
<NationalityId>58838</NationalityId>
<Region>Region</Region>
</LegalRepresentativeInfo>
</Push_FillCompanyDetails_RQ>
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Owner;
Push_FillCompanyDetails_RQ request = new Push_FillCompanyDetails_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ContactInfo = new ContactInfo
{
FirstName = "Companydetails",
LastName = "Test",
Email = "fillcompanydetailstest@test.com",
Phone = "+48000000000",
City = "Warsaw",
CountryId = 153,
Address = "Test address",
ZipCode = "12345",
BirthDate = new DateTime(2020, 10, 10),
LanguageId = 1
},
CompanyInfo = new CompanyInfo
{
CompanyName = "Some company",
WebsiteAddress = "www.somecompany.com",
CompanyCity = "Warsaw",
CountryId = 5,
PostCode = "00-000",
TimeZone = "UTC+10:00",
Region = "Region",
Address = "Company address",
PhoneNumber = "123456",
ManagerIdentificationNumber = "12345",
VATNumber = "12345",
MerchantName = "somecompany@domain.com",
CompanyLocations = new CompanyLocation[] {
new CompanyLocation{ Id = 2016 },
new CompanyLocation{ Id = 6539 }
},
NumberOfProperties = 7,
NumberOfEmployees = 3,
YearsInBusiness = 3,
CompanyDescription = "Description"
},
LegalRepresentativeInfo = new LegalRepresentativeInfo
{
FirstName = "First name",
LastName = "Last name",
Address = "legal address",
Birthday = new DateTime(2000, 10, 10),
NationalityId = 5,
Email = "test@test.com",
CountryOfResidenceId = 8,
City = "Warsaw",
PostCode = "00-000",
Region = "Region"
}
};
string xmlBody = XmlTools.SerializeObject<Push_FillCompanyDetails_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_FillCompanyDetails_RS response = XmlTools.DeserializeObject<Push_FillCompanyDetails_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_FillCompanyDetails_RQ | C | Root Element | |
Push_FillCompanyDetails_RQ/Authentication | C, M | Authentication details | |
Push_FillCompanyDetails_RQ/Authentication/UserName | String(50) | M | Username |
Push_FillCompanyDetails_RQ/Authentication/Password | String(50) | M | Password |
Push_FillCompanyDetails_RQ/ContactInfo | C, M | Information about the user | |
Push_FillCompanyDetails_RQ/ContactInfo/FirstName | String(20) | M | User's first name |
Push_FillCompanyDetails_RQ/ContactInfo/LastName | String(30) | M | User's last name |
Push_FillCompanyDetails_RQ/ContactInfo/Email | String(100) | M | User's email address |
Push_FillCompanyDetails_RQ/ContactInfo/Phone | String(20) | M | User's phone number (with the country code) |
Push_FillCompanyDetails_RQ/ContactInfo/City | String(20) | M | User's city |
Push_FillCompanyDetails_RQ/ContactInfo/CountryId | Integer | M | User's country; see List Locations |
Push_FillCompanyDetails_RQ/ContactInfo/Address | String(100) | M | User's address |
Push_FillCompanyDetails_RQ/ContactInfo/ZipCode | String(20) | M | User's ZIP code |
Push_FillCompanyDetails_RQ/ContactInfo/BirthDate | String(10) | M | User's birthday date (YYYY-MM-DD) |
Push_FillCompanyDetails_RQ/ContactInfo/LanguageId | Integer | M | User's language; see ListLanguages |
Push_FillCompanyDetails_RQ/CompanyInfo | C, M | Information about the user's company | |
Push_FillCompanyDetails_RQ/CompanyInfo/CompanyName | String(100) | M | User's company name |
Push_FillCompanyDetails_RQ/CompanyInfo/WebsiteAddress | String(100) | M | User's company website address |
Push_FillCompanyDetails_RQ/CompanyInfo/CompanyCity | String(100) | M | User's company city |
Push_FillCompanyDetails_RQ/CompanyInfo/CountryId | Integer | O | User's company country; see List Locations |
Push_FillCompanyDetails_RQ/CompanyInfo/PostCode | String(20) | O | User's company post code |
Push_FillCompanyDetails_RQ/CompanyInfo/Timezone | String(20) | O | User's company timezone (UTC+HH:MM)) |
Push_FillCompanyDetails_RQ/CompanyInfo/Region | String(20) | O | User's company region |
Push_FillCompanyDetails_RQ/CompanyInfo/Address | String(100) | O | User's company address |
Push_FillCompanyDetails_RQ/CompanyInfo/PhoneNumber | String(20) | O | User's company phone number (with the country code) |
Push_FillCompanyDetails_RQ/CompanyInfo/ManagerIdentificationNumber | String(50) | O | User's company identification number |
Push_FillCompanyDetails_RQ/CompanyInfo/VATNumber | String(50) | O | User's company VAT number |
Push_FillCompanyDetails_RQ/CompanyInfo/MerchantName | String(100) | M | Please provide the merchant name you have configured at your payment provider. This is required in case you publish your properties on Vrbo. If you are not sure how to proceed, please contact the payment processing company you work with. For more information on the merchant name, read Merchant Data Standards. |
Push_FillCompanyDetails_RQ/CompanyInfo/NumberOfProperties | Integer | O | Number of the user's properties; see List NumberOfProperties |
Push_FillCompanyDetails_RQ/CompanyInfo/NumberOfEmployees | Integer | O | Number of the user's employees; see List NumberOfEmployees |
Push_FillCompanyDetails_RQ/CompanyInfo/YearsInBusiness | Integer | O | User's years in business; see List YearsInBusiness |
Push_FillCompanyDetails_RQ/CompanyInfo/DescribeYourBusiness | String(1000) | O | User's company description |
Push_FillCompanyDetails_RQ/CompanyInfo/Locations | C, M | Collection of the user's company locations | |
Push_FillCompanyDetails_RQ/CompanyInfo/Locations/Location | M | Information about the user's company location | |
Push_FillCompanyDetails_RQ/CompanyInfo/Locations/Location/@Id | Integer | M | User's company location; see List Locations |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo | C, O | Legal representative information about the user's company | |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/FirstName | String(20) | O | User's company legal representative first name |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/LastName | String(20) | O | User's company legal representative last name |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/Address | String(100) | O | User's company legal representative address |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/Birthday | String(10) | O | User's company legal representative birthday date (YYYY-MM-DD) |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/NationalityId | Integer | O | User's company legal representative nationality; see List Locations |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/Email | String(100) | O | User's company legal representative email address |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/CountryOfResidenceId | Integer | O | User's company legal representative country of residence ; see List Locations |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/City | String(20) | O | User's company legal representative city |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/PostCode | String(20) | O | User's company legal representative post code |
Push_FillCompanyDetails_RQ/LegalRepresentativeInfo/Region | String(20) | O | User's company legal representative region |
Response
<Push_FillCompanyDetails_RS>
<Status ID="0">Success</Status>
<ResponseID>b5771b39fa4c42ca8a56520394c7c573</ResponseID>
</Push_FillCompanyDetails_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_FillCompanyDetails_RS | C | Root Element | |
Push_FillCompanyDetails_RS/Status | String(100) | M | See ListStatuses |
Push_FillCompanyDetails_RS/Status/@ID | Integer | M | See ListStatuses |
Push_FillCompanyDetails_RS/ResponseID | String(32) | M | Unique response ID |
List company details NumberOfProperties types
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.MyAndCompanyProfile;
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ request = new Pull_ListCompanyDetailsNumberOfPropertiesType_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_ListCompanyDetailsNumberOfPropertiesType_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListCompanyDetailsNumberOfPropertiesType_RS response = XmlTools.DeserializeObject<Pull_ListCompanyDetailsNumberOfPropertiesType_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns possible values for the NumberOfProperties ranges.
Request
XML Request
<Pull_ListCompanyDetailsNumberOfPropertiesType_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_ListCompanyDetailsNumberOfPropertiesType_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ | C | Root element | |
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ/Authentication | C, M | Authentication details | |
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ/Authentication/Password | String(50) | M | Password |
Response
XML Response
<Pull_ListCompanyDetailsNumberOfPropertiesType_RS>
<Status ID="0">Success</Status>
<ResponseID>bcbcbbe182ff420d971245da1e5b3513</ResponseID>
<Pull_ListCompanyDetailsNumberOfPropertiesType_RS>
<Status ID="0">Success</Status>
<ResponseID>65e4a361ee0a4ef39cb795e31483524b</ResponseID>
<CompanyInfoNumberOfPropertiesTypes>
<CompanyInfoNumberOfProperties ID="0">None</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="1">1 - 4</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="2">5 - 9</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="3">10 - 19</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="4">20 - 29</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="5">30 - 39</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="6">40 - 49</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="7">50 - 99</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="8">100 - 199</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="9">200 - 499</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="10">500 - 1000</CompanyInfoNumberOfProperties>
<CompanyInfoNumberOfProperties ID="11">1000</CompanyInfoNumberOfProperties>
</CompanyInfoNumberOfPropertiesTypes>
</Pull_ListCompanyDetailsNumberOfPropertiesType_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListCompanyDetailsNumberOfPropertiesType_RS | C | Root element | |
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/Status | String(100) | M | See ListStatuses |
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/CompanyInfoNumberOfPropertiesTypes | C, M | A collection of all NumberOfProperties types | |
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/CompanyInfoNumberOfPropertiesTypes/CompanyInfoNumberOfProperties | String(50) | M | A description of the NumberOfProperties type |
Pull_ListCompanyDetailsNumberOfPropertiesType_RS/CompanyInfoNumberOfPropertiesTypes/CompanyInfoNumberOfProperties@ID | Integer | M | Unique NumberOfProperties type ID |
List company details YearsInBusiness types
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.MyAndCompanyProfile;
Pull_ListCompanyDetailsYearsInBusinessType_RQ request = new Pull_ListCompanyDetailsYearsInBusinessType_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_ListCompanyDetailsYearsInBusinessType_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListCompanyDetailsYearsInBusinessType_RS response = XmlTools.DeserializeObject<Pull_ListCompanyDetailsYearsInBusinessType_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns possible YearsInBusiness ranges.
Request
XML Request
<Pull_ListCompanyDetailsYearsInBusinessType_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_ListCompanyDetailsYearsInBusinessType_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListCompanyDetailsYearsInBusinessType_RQ | C | Root element | |
Pull_ListCompanyDetailsYearsInBusinessType_RQ/Authentication | C, M | Authentication details | |
Pull_ListCompanyDetailsYearsInBusinessType_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListCompanyDetailsYearsInBusinessType_RQ/Authentication/Password | String(50) | M | Password |
Response
XML Response
<Pull_ListCompanyDetailsYearsInBusinessType_RS>
<Status ID="0">Success</Status>
<ResponseID>040378268c7943159571bb2fdb9e7d37</ResponseID>
<CompanyInfoYearsInBusinessTypes>
<CompanyInfoYearsInBusiness ID="0">None</CompanyInfoYearsInBusiness>
<CompanyInfoYearsInBusiness ID="1">1 - 2</CompanyInfoYearsInBusiness>
<CompanyInfoYearsInBusiness ID="2">3 - 5</CompanyInfoYearsInBusiness>
<CompanyInfoYearsInBusiness ID="3">6 - 10</CompanyInfoYearsInBusiness>
<CompanyInfoYearsInBusiness ID="4">10</CompanyInfoYearsInBusiness>
</CompanyInfoYearsInBusinessTypes>
</Pull_ListCompanyDetailsYearsInBusinessType_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListCompanyDetailsYearsInBusinessType_RS | C | Root element | |
Pull_ListCompanyDetailsYearsInBusinessType_RS/Status | String(100) | M | See ListStatuses |
Pull_ListCompanyDetailsYearsInBusinessType_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListCompanyDetailsYearsInBusinessType_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListCompanyDetailsYearsInBusinessType_RS/CompanyInfoYearsInBusinessTypes | C, M | A collection of all YearsInBusiness types | |
Pull_ListCompanyDetailsYearsInBusinessType_RS/CompanyInfoYearsInBusinessTypes/CompanyInfoYearsInBusiness | String(50) | M | A description of the YearsInBusiness type |
Pull_ListCompanyDetailsYearsInBusinessType_RS/CompanyInfoYearsInBusinessTypes/CompanyInfoYearsInBusiness@ID | Integer | M | Unique YearsInBusiness type ID |
List company details NumberOfEmployees types
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.MyAndCompanyProfile;
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ request = new Pull_ListCompanyDetailsNumberOfEmployeesType_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_ListCompanyDetailsNumberOfEmployeesType_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListCompanyDetailsNumberOfEmployeesType_RS response = XmlTools.DeserializeObject<Pull_ListCompanyDetailsNumberOfEmployeesType_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns possible NumberOfEmployees ranges.
Request
XML Request
<Pull_ListCompanyDetailsNumberOfEmployeesType_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_ListCompanyDetailsNumberOfEmployeesType_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ | C | Root element | |
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ/Authentication | C, M | Authentication details | |
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ/Authentication/Password | String(50) | M | Password |
Response
XML Response
<Pull_ListCompanyDetailsNumberOfEmployeesType_RS>
<Status ID="0">Success</Status>
<ResponseID>f47e0eb181484f7689fae5bd0e5d5ea9</ResponseID>
<CompanyInfoNumberOfEmployeesTypes>
<CompanyInfoNumberOfEmployees ID="0">None</CompanyInfoNumberOfEmployees>
<CompanyInfoNumberOfEmployees ID="1">1 - 5</CompanyInfoNumberOfEmployees>
<CompanyInfoNumberOfEmployees ID="2">6 - 10</CompanyInfoNumberOfEmployees>
<CompanyInfoNumberOfEmployees ID="3">11 - 20</CompanyInfoNumberOfEmployees>
<CompanyInfoNumberOfEmployees ID="4">21 - 50</CompanyInfoNumberOfEmployees>
<CompanyInfoNumberOfEmployees ID="5">51 - 100</CompanyInfoNumberOfEmployees>
<CompanyInfoNumberOfEmployees ID="6">100</CompanyInfoNumberOfEmployees>
</CompanyInfoNumberOfEmployeesTypes>
</Pull_ListCompanyDetailsNumberOfEmployeesType_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListCompanyDetailsNumberOfEmployeesType_RS | C | Root element | |
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/Status | String(100) | M | See ListStatuses |
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/CompanyInfoNumberOfEmployeesTypes | C, M | A collection of all NumberOfEmployees types | |
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/CompanyInfoNumberOfEmployeesTypes/CompanyInfoNumberOfEmployees | String(50) | M | A description of the NumberOfEmployees type |
Pull_ListCompanyDetailsNumberOfEmployeesType_RS/CompanyInfoNumberOfEmployeesTypes/CompanyInfoNumberOfEmployees@ID | Integer | M | Unique NumberOfEmployees type ID |
Close user account
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.User;
Push_ArchiveUser_RQ request = new Push_ArchiveUser_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Push_ArchiveUser_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_ArchiveUser_RS response = XmlTools.DeserializeObject<Push_ArchiveUser_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method is designed for PMS integration who would like to fully automate Property Manager account lifecycle. Starting with creation of account via Push_CreateUser_RQ
and filling company details with Push_FillCompanyDetails_RQ
. Ending up closing user account via Push_ArchiveUser_RQ
.
Closing user account via this method will result with:
- this user losing access to RU dashboard
- removal of all connections to Sales Channels
- all properties archivization
Request
<Push_ArchiveUser_RQ>
<Authentication>
<UserName>[Username]</UserName>
<Password>[Password]</Password>
</Authentication>
</Push_ArchiveUser_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ArchiveUser_RQ | C | Root Element | |
Push_ArchiveUser_RQ/Authentication | C, M | Authentication details | |
Push_ArchiveUser_RQ/Authentication/UserName | String(50) | M | Username |
Push_ArchiveUser_RQ/Authentication/Password | String(50) | M | Password |
Response
<Push_ArchiveUser_RS>
<Status ID="0">Success</Status>
<ResponseID>6c24d0e9717f438880962aebdb334537</ResponseID>
</Push_ArchiveUser_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_ArchiveUser_RS | C | Root Element | |
Push_ArchiveUser_RS/Status | String(100) | M | See ListStatuses |
Push_ArchiveUser_RS/Status/@ID | Integer | M | See ListStatuses |
Push_ArchiveUser_RS/ResponseID | String(32) | M | Unique response ID |
Live Notification Mechanism (LNM)
Overview
Live Notification Mechanism are webhooks which are triggered on a property data change events such as property rates change, property availability change, property static data change. When that event occurs, Rentals United system makes an HTTP request to your URL subscribed for the webhook.
The call is a HTTP GET request, along with a specific query string. Query string depends on the type of change. Use Pull_ListLiveNotificationMechanismChangeTypes_RQ to get all types of changes supported.
We expect your system to respond with HTTP 200 status in under 3 seconds. The HTTP 200 response content is not processed by Rentals United (can be empty). The LNM uses "at-least-once" notification delivery reliability. Your URL will be called at least once. After getting HTTP 200 response, usually you will never be called again with this particular notification (each distinct notification has the ChangeId – a GUID for tracking purposes). However, in some cases webhook may be triggered again, even if your system's HTTP 200 response is received within 3 seconds.
Failed notifications (those for which Rentals United does not get HTTP 200 response within 3 seconds) are scheduled for delivery later. The LNM will try do deliver the notification around three times. First time immediately, then around 2 minutes later. If failed, around 8 minutes later. If failed, around 18 minutes later.
In order to activate webhook you need to call Push_PutLiveNotificationMechanismSubscriptions_RQ
method.
To review your current active webhooks subscriptions, use Pull_ListLiveNotificationMechanismSubscriptions_RQ
method.
List Change Types
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.LiveNotifMechanism;
Pull_ListLiveNotificationMechanismChangeTypes_RQ request = new Pull_ListLiveNotificationMechanismChangeTypes_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_ListLiveNotificationMechanismChangeTypes_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListLiveNotificationMechanismChangeTypes_RS response = XmlTools.DeserializeObject<Pull_ListLiveNotificationMechanismChangeTypes_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to get a list of supported Live Notification Mechanism notification types.
Request
<Pull_ListLiveNotificationMechanismChangeTypes_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_ListLiveNotificationMechanismChangeTypes_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListLiveNotificationMechanismChangeTypes_RQ | C | Root Element | |
Pull_ListLiveNotificationMechanismChangeTypes_RQ/Authentication | C, M | Authentication details | |
Pull_ListLiveNotificationMechanismChangeTypes_RQ/Authentication/UserName | String (50) | M | Username |
Pull_ListLiveNotificationMechanismChangeTypes_RQ/Authentication/Password | String(50) | M | Password |
<Pull_ListLiveNotificationMechanismChangeTypes_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
<ChangeTypes>
<ChangeType ID="PropertyStaticDetails">
<Description>This notification will be triggered each time property static details are changed. Publisher is the ID of the property owner.</Description>
<ExampleUrl>http://test.com/something?ChangeId=f892a4eb-f070-43ee-881eb3737f1bd462&PropertyId=123456&Publisher=234567&Type=PropertyStaticDetails</ExampleUrl>
</ChangeType>
<ChangeType ID="PropertyChangeover">
<Description>This notification will be triggered each time modification of the property changeover is made. Publisher is the ID of the property owner.</Description>
<ExampleUrl>http://test.com/something?ChangeId=3a2882f2-6421-47e8-97e4-10003fc363f9&DateFrom=2015-06-11T00-00-00Z&DateTo=2015-06-18T00-00-00Z&PropertyId=123456&Publisher=234567&Type=PropertyChangeover</ExampleUrl>
</ChangeType>
<ChangeType ID="PropertyMinStay">
<Description>This notification will be triggered each time modification of the property min stay is made. Publisher is the ID of the property owner.</Description>
<ExampleUrl>http://test.com/something?ChangeId=7ed67358-3f25-4c3a-aba6-faef66a30fb9&DateFrom=2015-06-11T00-00-00Z&DateTo=2015-06-18T00-00-00Z&PropertyId=123456&Publisher=234567&Type=PropertyMinStay</ExampleUrl>
</ChangeType>
<ChangeType ID="PropertyAvailability">
<Description>This notification will be triggered each time property availability is changed. Publisher is the ID of the property owner.</Description>
<ExampleUrl>http://test.com/something?ChangeId=bda563b1-93e1-428b-a6bf729f9f5d7d8b&DateFrom=2015-06-11T00-00-00Z&DateTo=2015-06-18T00-00-00Z&PropertyId=123456&Publisher=234567&Type=PropertyAvailability</ExampleUrl>
</ChangeType>
<ChangeType ID="PropertyPrice">
<Description>This notification will be triggered each time property price is changed. Publisher is the ID of the property owner.</Description>
<ExampleUrl>http://test.com/something?ChangeId=7e3026f5-cb6e-4519-897a8f6b0c15f7a2&DateFrom=2015-06-11T00-00-00Z&DateTo=2015-06-18T00-00-00Z&PropertyId=123456&Publisher=234567&Type=PropertyPrice</ExampleUrl>
</ChangeType>
<ChangeType ID="PropertyMCQEligibilityCheck">
<Description>This notification will be triggered every time the MCQ(Minimum Content Quality) check is completed for a property and channel. Use it in pair with CM_LNM_OrderMinimumContentQualityCheck_RQ. Publisher is the ID of the property owner</Description>
<ExampleUrl>http://test.com/something?ChangeId=8107ef19-9960-4a95-bc5d-62174166260f&ChannelId=12345&PropertyId=12345&Publisher=54321&Result=W3siVmFsaWRhdGlvbkVycm9yQ29kZSI6IkFkZHJlc3NJc0VtcHR5IiwiVmFsaWRhdGlvbkVycm9yRXh0cmFEYXRhIjpudWxsfSx7IlZhbGlkYXRpb25FcnJvckNvZGUiOiJOYW1lSGFzWE9yTW9yZUNvbnNlY3V0aXZlRGlnaXRzIiwiVmFsaWRhdGlvbkVycm9yRXh0cmFEYXRhIjo1fV0%3d&Success=False&Type=PropertyMCQEligibilityCheck</ExampleUrl>
</ChangeType>
</ChangeTypes>
</Pull_ListLiveNotificationMechanismChangeTypes_RS>
Response
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListLiveNotificationMechanismChangeTypes_RS | C | Root Element | |
Pull_ListLiveNotificationMechanismChangeTypes_RS/Status | String(100) | M | See ListStatuses |
Pull_ListLiveNotificationMechanismChangeTypes_RS/Status/@ID | Integer | M | See ListStatuses |
Pull_ListLiveNotificationMechanismChangeTypes_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes | C, M | A collection of change types | |
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes/ChangeType | C, M | Change type | |
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes/ChangeType/@ID | String(50) | M | Change type ID |
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes/ChangeType/Description | String(2000) | M | Description of change type |
Pull_ListLiveNotificationMechanismChangeTypes_RS/ChangeTypes/ChangeType/ExampleUrl | String(2000) | M | Example url with defined query string |
Subscribe for notifications request
using System.Collections.Generic;
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.LiveNotifMechanism;
Push_PutLiveNotificationMechanismSubscriptions_RQ request = new Push_PutLiveNotificationMechanismSubscriptions_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ChangeTypes = new List<LiveNotificationMechanismChangeTypeInfo>()
{
new LiveNotificationMechanismChangeTypeInfo()
{
Value = "PropertyStaticDetails"
},
new LiveNotificationMechanismChangeTypeInfo()
{
Value = "PropertyMinStay"
},
new LiveNotificationMechanismChangeTypeInfo()
{
Value = "PropertyPrice"
}
},
ObservedOwners = new List<LiveNotificationMechanismObservedOwnerInfo>()
{
new LiveNotificationMechanismObservedOwnerInfo()
{
Value = 123456
},
new LiveNotificationMechanismObservedOwnerInfo()
{
Value = 987654
}
},
UrlBase = "http://mywebsite.com/api/lnm"
};
string xmlBody = XmlTools.SerializeObject<Push_PutLiveNotificationMechanismSubscriptions_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutLiveNotificationMechanismSubscriptions_RS response = XmlTools.DeserializeObject<Push_PutLiveNotificationMechanismSubscriptions_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to subscribe for Live Notifications. This method replaces your subscriptions with the new values from the XML Request.
In order to unsubscribe, send Push_PutLiveNotificationMechanismSubscriptions_RQ
including Authentication element only.
Request
<Push_PutLiveNotificationMechanismSubscriptions_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ChangeTypes>
<Type>PropertyStaticDetails</Type>
<Type>PropertyMinStay</Type>
<Type>PropertyPrice</Type>
</ChangeTypes>
<ObservedOwners>
<Owner>123456</Owner>
<Owner>987654</Owner>
</ObservedOwners>
<UrlBase>http://mywebsite.com/api/lnm</UrlBase>
</Push_PutLiveNotificationMechanismSubscriptions_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutLiveNotificationMechanismSubscriptions_RQ | C | Root Element | |
Push_PutLiveNotificationMechanismSubscriptions_RQ/Authentication | C, M | Authentication details | |
Push_PutLiveNotificationMechanismSubscriptions_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutLiveNotificationMechanismSubscriptions_RQ/Authentication/Password | String(50) | M | Password |
Push_PutLiveNotificationMechanismSubscriptions_RQ/ChangeTypes | C, M | List of types of notifications to subscribe for | |
Push_PutLiveNotificationMechanismSubscriptions_RQ/ChangeTypes/Type | String(50) | M | Notification type ID |
Push_PutLiveNotificationMechanismSubscriptions_RQ/ObservedOwners | C, M | List of observed owners to subscribe for | |
Push_PutLiveNotificationMechanismSubscriptions_RQ/ObservedOwners/Owner | Integer | M | Observed owner ID |
Push_PutLiveNotificationMechanismSubscriptions_RQ/UrlBase | String(200) | M | The URL base to which query string will be added. It is the "http://test.com/something" part in the examples in Pull_ListLiveNotificationMe chanismChangeTypes_RS. |
Response
<Push_PutLiveNotificationMechanismSubscriptions_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
</Push_PutLiveNotificationMechanismSubscriptions_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutLiveNotificationMechanismSubscriptions_RS | C | Root Element | |
Push_PutLiveNotificationMechanismSubscriptions_RS/Status | String(100) | M | See ListStatuses |
Push_PutLiveNotificationMechanismSubscriptions_RS/Status/@ID | Integer | M | See ListStatuses |
Push_PutLiveNotificationMechanismSubscriptions_RS/ResponseID | String(32) | M | Unique response ID |
List subscriptions
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.LiveNotifMechanism;
Pull_ListLiveNotificationMechanismSubscriptions_RQ request = new Pull_ListLiveNotificationMechanismSubscriptions_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_ListLiveNotificationMechanismSubscriptions_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListLiveNotificationMechanismSubscriptions_RS response = XmlTools.DeserializeObject<Pull_ListLiveNotificationMechanismSubscriptions_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Use this method to retrieve a list of all your Live Notification subscriptions.
Request
<Pull_ListLiveNotificationMechanismSubscriptions_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_ListLiveNotificationMechanismSubscriptions_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListLiveNotificationMechanismSubscriptions_RQ | C | Root Element | |
Pull_ListLiveNotificationMechanismSubscriptions_RQ/Authentication | C, M | Authentication details | |
Pull_ListLiveNotificationMechanismSubscriptions_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListLiveNotificationMechanismSubscriptions_RQ/Authentication/Password | String(50) | M | Password |
Response
<Pull_ListLiveNotificationMechanismSubscriptions_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
<ChangeTypes>
<Type>PropertyMinStay</Type>
<Type>PropertyPrice</Type>
<Type>PropertyStaticDetails</Type>
</ChangeTypes>
<ObservedOwners>
<Owner>123456</Owner>
<Owner>987654</Owner>
</ObservedOwners>
<UrlBase>http://mywebsite.com/api/lnm</UrlBase>
</Pull_ListLiveNotificationMechanismSubscriptions_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListLiveNotificationMechanismSubscriptions_RS | C | Root Element | |
Pull_ListLiveNotificationMechanismSubscriptions_RS/Status | String(100) | M | See ListStatuses |
Pull_ListLiveNotificationMechanismSubscriptions_RS/Status/@ID | Integer | M | See ListStatuses |
Pull_ListLiveNotificationMechanismSubscriptions_RS/ResponseID | String(32) | M | Unique response ID |
Pull_ListLiveNotificationMechanismSubscriptions_RS/ChangeTypes | C, O | List of types of subscribed notifications | |
Pull_ListLiveNotificationMechanismSubscriptions_RS/ChangeTypes/Type | String(50) | M | Notification type ID |
Pull_ListLiveNotificationMechanismSubscriptions_RS/ObservedOwners | C, O | List of observed owners | |
Pull_ListLiveNotificationMechanismSubscriptions_RS/ObservedOwners/Owner | Integer | M | Observed owner ID |
Pull_ListLiveNotificationMechanismSubscriptions_RS/UrlBase | String (200) | O | The URL base to which query string will be added. It is the "http://test.com/something" part in the examples in Pull_ListLiveNotificationMe chanismChangeTypes_RS. |
Reservation Live Notification Mechanism (RLNM)
RLNM is a specific type of LNM notification. Receive RLNM notifications including full reservation data real time directly to your endpoint.
Rentals United calls your system to transfer information about a new reservation (confirmed or request) or a cancellation.
To use this feature, you should create a HTTPS handler. Rentals United will post to your handler (with a specific XML content) every time a confirmed reservation/request or cancellation is made in Rentals United. Rentals United posts RLNM notifications to your handler and does not expect a response. There are 4 types of RLNM notifications that can be posted to your handler:
- LNM_PutLeadReservation_RQ – leads
- LNM_PutConfirmedReservation_RQ – confirmed reservations, reservation modifications
- LNM_CancelReservation_RQ – cancellations of confirmed reservations
- LNM_PutUnconfirmedReservation_RQ - unconfirmed reservations (requests). It has the same structure as LNM_PutConfirmedReservation_RQ
Rentals United will send all types of RLNM notifications to the same handler (make sure that your handler accepts all 4 types of RLNM notifications). To help distinguish between the RLNM types, there is a header called ru-rlnm-method
in the notification. The value will be one of the possible RLNM types (for example, LNM_PutConfirmedReservation_RQ
).
Enabling RLNM
Use this method to subscribe to RLNM notifications.
LNM_PutHandlerUrl_RS/Hash
needs to be saved in your system and used to validate received RLNM notifications come from Rentals United (LNM_PutConfirmedReservation_RQ/Authentication/Password
)
Warning: RLNM notifications are sent to HTTPS endpoints only!
In order to unsubscribe, send LNM_PutHandlerUrl_RQ including Authentication element only.
Request
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Reservation;
LNM_PutHandlerUrl_RQ request = new LNM_PutHandlerUrl_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
HandlerUrl = "https://example.com/handler/rentals-united"
};
string xmlBody = XmlTools.SerializeObject<LNM_PutHandlerUrl_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
LNM_PutHandlerUrl_RS response = XmlTools.DeserializeObject<LNM_PutHandlerUrl_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
<LNM_PutHandlerUrl_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<HandlerUrl>https://example.com/handler/rentals-united</HandlerUrl>
</LNM_PutHandlerUrl_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
LNM_PutHandlerUrl_RQ | C | Root element | |
LNM_PutHandlerUrl_RQ/Authentication | C, M | Authentication details | |
LNM_PutHandlerUrl_RQ/Authentication/UserName | String(50) | M | Username |
LNM_PutHandlerUrl_RQ/Authentication/Password | String(50) | M | Password |
LNM_PutHandlerUrl_RQ/HandlerUrl | String | O | Request handler URL |
Response
<LNM_PutHandlerUrl_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
<Hash>1X7J9SALRDJ283FMY8PFO8BIGBTEZ5J68WGNEGZW</Hash>
</LNM_PutHandlerUrl_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
LNM_PutHandlerUrl_RS | C | Root element | |
LNM_PutHandlerUrl_RS/Status | String(100) | M | See ListStatuses |
LNM_PutHandlerUrl_RS/Status@ID | Integer | M | See ListStatuses |
LNM_PutHandlerUrl_RS/ResponseID | String(32) | M | Unique response ID |
LNM_PutHandlerUrl_RS/Hash | String(40) | O | Password hash |
Confirmed reservation
void HandleRequest(string xmlRequest)
{
try
{
LNM_PutConfirmedReservation_RQ request = XmlTools.DeserializeObject<LNM_PutConfirmedReservation_RQ>(xmlRequest);
//process request object
}
catch
{
// process error
}
}
This is the XML Request structure of a RLNM notification sent (POST) to your handler by Rentals United for a new confirmed reservation or reservation modification.
<LNM_PutConfirmedReservation_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reservation>
<ReservationID>124</ReservationID>
<CreatedDate>2021-08-12 14:10:00</CreatedDate>
<LastMod>2021-08-12 14:10:00</LastMod>
<StayInfos>
<StayInfo>
<PropertyID>2</PropertyID>
<DateFrom>2022-05-29</DateFrom>
<DateTo>2022-05-31</DateTo>
<ArrivalTime>2022-05-29 13:22:00</ArrivalTime>
<NumberOfGuests>3</NumberOfGuests>
<Costs>
<RUPrice>1120.06</RUPrice>
<ClientPrice>1120.06</ClientPrice>
<AlreadyPaid>50</AlreadyPaid>
<PriceScale>0%</PriceScale>
</Costs>
<ResApaID>123455</ResApaID>
<Mapping>
<ReservationID>123</ReservationID>
<StayID>123</StayID>
<HotelID>123</HotelID>
<RoomID>123</RoomID>
<RateID>123</RateID>
</Mapping>
<ReservationBreakdown>
<RUBreakdown>
<DayPrices Date="2022-05-29">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<DayPrices Date="2022-05-30">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<DayPrices Date="2022-05-31">
<Rent>244.99</Rent>
<Taxes>
<Tax AlreadyIncluded="false" Amount="0.5" Name="City tax" FeeTaxType="5"/>
</Taxes>
<Fees>
<Fee AlreadyIncluded="false" Amount="20.0" Name="Pet fee" FeeTaxType="29"/>
</Fees>
<Price>265.49</Price>
</DayPrices>
<TotalFeesTaxes>
<TotalFeeTax AlreadyIncluded="false" Amount="3.5" Name="City tax" FeeTaxType="5"/>
<TotalFeeTax AlreadyIncluded="false" Amount="140.0" Name="Pet fee" FeeTaxType="29"/>
<TotalFeeTax AlreadyIncluded="false" Amount="241.59" Name="VAT" FeeTaxType="2"/>
</TotalFeesTaxes>
<Total>1120.06</Total>
<Rent>734.97</Rent>
</RUBreakdown>
<ChannelBreakdown>
<DayPrices Date="2022-05-29">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="116.90" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="15.20" Currency="USD" Name="Room" />
<Tax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" />
</Taxes>
<Fees>
<Fee IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" />
</Fees>
<Price>157.10</Price>
</DayPrices>
<DayPrices Date="2022-05-30">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
</Taxes>
<Price>101.11</Price>
</DayPrices>
<DayPrices Date="2022-05-31">
<RentInfo>
<Rent IncludedInChannelTotal="true" Amount="89.47" Currency="USD" Name="Room" />
</RentInfo>
<Taxes>
<Tax IncludedInChannelTotal="true" Amount="11.64" Currency="USD" Name="Room" />
</Taxes>
<Price>101.11</Price>
</DayPrices>
<ChannelTotalFeesTaxes>
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="38.48" Currency="USD" Name="Room" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.08" Currency="USD" Name="Surcharge" ItemType="Tax" />
<ChannelTotalFeeTax IncludedInChannelTotal="true" Amount="12.92" Currency="USD" Name="Surcharge" ItemType="Fee" />
</ChannelTotalFeesTaxes>
<ChannelTotal>359.32</ChannelTotal>
<ChannelRent>295.84</ChannelRent>
</ChannelBreakdown>
<ChannelCommission>210.00</ChannelCommission>
</ReservationBreakdown>
</StayInfo>
</StayInfos>
<CustomerInfo>
<Name>Test</Name>
<SurName>Test</SurName>
<Email>test.test@test.com</Email>
<Phone>+11 111 111 111</Phone>
<SkypeID>test.test</SkypeID>
<Address>Street 1/2</Address>
<ZipCode>00-000</ZipCode>
<CountryID>100</CountryID>
<LanguageID>1</LanguageID>
</CustomerInfo>
<GuestDetailsInfo>
<NumberOfAdults>2</NumberOfAdults>
<NumberOfChildren>2</NumberOfChildren>
<NumberOfInfants>3</NumberOfInfants>
<ChildrenAges>
<Age>12</Age>
<Age>9</Age>
<Age>2</Age>
<Age>2</Age>
<Age>1</Age>
</ChildrenAges>
<NumberOfPets>1</NumberOfPets>
</GuestDetailsInfo>
<Creator>test@test.test</Creator>
<Comments>test</Comments>
</Reservation>
</LNM_PutConfirmedReservation_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
LNM_PutConfirmedReservation_RQ | C | Root element | |
LNM_PutConfirmedReservation_RQ/Authentication | C, M | Authentication details | |
LNM_PutConfirmedReservation_RQ/Authentication/UserName | String(50) | M | Rentals United Username |
LNM_PutConfirmedReservation_RQ/Authentication/Password | String(50) | M | Password hash. See PutHandlerUrl |
LNM_PutConfirmedReservation_RQ/Reservation | O | Single reservation | |
LNM_PutConfirmedReservation_RQ/Reservation/ReservationID | Integer | M | Unique reservation ID in Rentals United system |
LNM_PutConfirmedReservation_RQ/Reservation/CreatedDate | String | M | The date of creation of the reservation (YYYY-MM-DD HH:MM:SS format) |
LNM_PutConfirmedReservation_RQ/Reservation/LastMod | String | M | The last modification date (creation or cancellation) of the reservation(format YYYY-MM-DD HH:MM:SS) |
LNM_PutConfirmedReservation_RQ/Reservation/ReservationStatusID | Integer | M | See ListReservationStatuses |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos | C, M | A collection of stay information | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo | C, M | Information about the stay | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/PropertyID | Integer | M | Unique property ID |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/DateFrom | String(10) | M | Arrival date (YYYY-MM-DD format) |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/DateTo | String(10) | M | Departure date (YYYY-MM-DD format) |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ArrivalTime | String(19) | O | Date and time at which the guest has actually arrived (YYYY-MM-DD HH:MM:SS format) |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/NumberOfGuests | Integer | M | Number of guests that will be staying in the property |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs | C, M | Information about the stay costs | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/RUPrice | Decimal (19,2) | M | The price returned by one of the RU methods for the property in the specified dates |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/ClientPrice | Decimal (19,2) | M | Final price for the guest |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/AlreadyPaid | Decimal(19,2) | M | The amount already paid by the guest |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Costs/PriceScale | String | M | Information about what price scale was used |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Comments | String(500) | O | Additional comments about this stay |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ResApaID | Integer | M | Apartment reservation ID |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/ReservationID | String(50) | M | External System’s Reservation ID |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/StayID | String(50) | O | External System’s reservation identifier assigned to the property |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/HotelID | String(50) | O | External System’s property ID |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/RoomID | String(50) | O | External System’s room ID |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/Mapping/RateID | String(50) | O | External System’s rate ID |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown | C, M | A container object for the reservation price breakdown details | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown | C, M | A container object for the reservation price breakdown details calculated on the basis of the property fees and taxes setup as it is in Rentals United | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices | C, M | A collection of objects containing price information for each day of the reservation | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Rent | Decimal(19,2) | M | The value of the base rent for specific day |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes | C, M | A collection of taxes for specific DayPrices@Date of the reservation | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@AlreadyIncluded | Boolean | M | Information if the tax value is included in Rent |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Taxes/Tax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees | C, M | A collection of fees for specific DayPrices@Date of the reservation | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@AlreadyIncluded | Boolean | M | Information if the fee value is included in Rent |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/DayPrices/Fees/Fee@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes | C,M | A container objects for fees and taxes applied for the whole stay | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@AlreadyIncluded | Boolean | M | Information if the total tax/fee amount of one type is included in Rent |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@Name | String(50) | M | Tax/fee description |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/TotalFeesTaxes/TotalFeeTax@FeeTaxType | Integer | O | Type of the tax/fee. Filled for reservations entered after 2021-11-10. See ListAdditionalFeeTypes |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Total | Decimal(19,2) | M | The overall value of rent, fees and taxes of the whole stay |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/RUBreakdown/Rent | Decimal(19,2) | M | The value of rent for the whole stay |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown | C, O | A container object for the reservation price breakdown received from the sales channel | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices | C, O | A collection of objects containing price information for each day of the reservation | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices@Date | String(10) | M | Daily date (in the YYYY-MM-DD format) for which the price breakdown is displayed |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo | C, O | A collection of rent items for specific DayPrices@Date of the reservation | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@IncludedInChannelTotal | Boolean | M | Information if the rent value is included in ChannelTotal |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Amount | Decimal(19,2) | M | The daily rent value |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Currency | String(3) | M | Currency, see ListCurrencies |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/RentInfo/Rent@Name | String(50) | M | Rent description |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes | C, O | A collection of taxes for specific DayPrices@Date of the reservation | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@IncludedInChannelTotal | Boolean | M | Information if the tax value is included in ChannelTotal |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Amount | Decimal(19,2) | M | The amount of tax for the particular stay date |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Currency | String(3) | M | Currency, see ListCurrencies |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Taxes/Tax@Name | String(50) | M | Tax description |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees | C, O | A collection of fees for specific DayPrices@Date of the reservation | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@IncludedInChannelTotal | Boolean | M | Information if the fee value is included in ChannelTotal |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Amount | Decimal(19,2) | M | The amount of fee for the particular stay date |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Fees/Fee@Name | String(50) | M | Fee description |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/DayPrices/Price | Decimal(19,2) | M | The sum of all items of a given DayPrice |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes | C, M | A container object for fees and taxes applied for the whole stay and the ones that are applied per day | |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@IncludedInChannelTotal | Boolean | M | Information if the total tax/fee amount of one type is included in ChannelTotal |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Amount | Decimal(19,2) | M | The overall value of taxes and fees of the whole stay. The value of a given fee/tax may be grater than the sum of all items with that name in DayPrices, as there can exist a fee/tax with the same name that isn't broken down into days but applies to the whole stay. |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Currency | String(3) | M | Currency, see ListCurrencies |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@Name | String(50) | M | Tax/fee description |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotalFeesTaxes/ChannelTotalFeeTax@ItemType | String(3) | O | Information whether the item is a tax or a fee |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelTotal | Decimal(19,2) | M | The total price paid by the guest for the whole stay as received from the sales channel |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelBreakdown/ChannelRent | Decimal(19,2) | M | The rent value of the whole stay |
LNM_PutConfirmedReservation_RQ/Reservation/StayInfos/StayInfo/ReservationBreakdown/ChannelCommission | Decimal(19,2) | O | The amount charged by the sales channel |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo | C, M | Information about the guest | |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/Name | String(20) | M | Guest's name |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/SurName | String(30) | M | Guest's surname |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/Email | String(100) | O | Guest's email address |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with the country code |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/SkypeID | String(50) | O | Guest's Skype ID |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, see ListLocations (filter LocationTypeID=2) |
LNM_PutConfirmedReservation_RQ/Reservation/CustomerInfo/LanguageID | Integer | O | Code that identifies the guest's language, see ListLanguages |
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo | C, O | A container object for the reservation occupancy details | |
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfAdults | Integer | O | Number of adults in the reservation |
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfChildren | Integer | O | Number of children in the reservation |
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfInfants | Integer | O | Number of infants in the reservation |
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/ChildrenAges | C, O | A container object that lists all children’s and infants' ages | |
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/ChildrenAges/Age | Integer | M | Age of a child or an infant in the reservation (acceptable values: 0-17) |
LNM_PutConfirmedReservation_RQ/Reservation/GuestDetailsInfo/NumberOfPets | Integer | O | Number of pets in the reservation |
LNM_PutConfirmedReservation_RQ/Reservation/Creator | String(50) | M | Email address/Username of an entity that created a reservation, e.g. the channel or the user |
LNM_PutConfirmedReservation_RQ/Reservation/Comments | String(4000) | O | Additional comments |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard | C, O | Credit card information. This container will not be shown for accounts connected to Stripe. | |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/CCNumber | String(19) | M | Credit card number |
String(4) | O | ||
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/NameOnCard | String(400) | M | Credit card holder name |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/Expiration | String(7) | M | Credit card expiration date (MM/YYYY format) |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/BillingAddress | String(400) | O | Billing address |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/CardType | String(30) | M | Credit card provider. Possible values: VISA, MASTERCARD, AMEX, DISCOVER, DINERS, CARTE_BLANCHE, JCB, ENROUTE, JAL, MAESTRO_UK, DELTA, SOLO, VISA_ELECTRON, DANKORT, LASER, CARTE_BLEU, CARTA_SI, MAESTRO_INTERNATIO |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/Comments | String(400) | O | Additional comments for the credit card |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication | C, O | Object holding information about 3DS2 payments | |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/CAVV | String(48) | O | It is a 3DS2-encoded authorization token. Tokens expire after specified time: 90 days using VISA, 30 days for MASTERCARD and 45 days for AMERICAN EXPRESS. If a payment is charged after checkout and outside the initial expiration timeframe, token's validity will have to be confirmed with the card processor. |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/ECI | String(2) | O | Indicator stating whether the transaction was processed electronically. Possible codes: 02 or 05 - Fully authenticated transaction, 01 or 06 - Attempted authentication transaction, 00 or 07 - Non-3DS transaction |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/XID | String(40) | O | Encoded transactionId |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/DsTransID | UUID | O | Unique transaction ID assigned by the DS (Directory Server) - required for MASTERCARD |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/ThreeDSVersion | String(5) | O | A 3DS version used while processing the transaction. Possible values are: 1.0.2, 2.1.0, and 2.2.0. - required for MASTERCARD. |
LNM_PutConfirmedReservation_RQ/Reservation/CreditCard/SecureAuthentication/ExceptionType | String(40) | O | Explains the reason why 3DS2 authentication was by-passed. This element is optional. However, if it is included, please pass this information to the payment processor in order to explain that authentication was exempt. |
Cancellation of the reservation
void HandleRequest(string xmlRequest)
{
try
{
LNM_CancelReservation_RQ request = XmlTools.DeserializeObject<LNM_CancelReservation_RQ>(xmlRequest);
//process request object
}
catch
{
// process error
}
}
This is the XML Request structure of a RLNM notification sent (POST) to your handler by Rentals United for a reservation cancellation.
<LNM_CancelReservation_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ReservationID>123</ReservationID>
</LNM_CancelReservation_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
LNM_CancelReservation_RQ | C | Root element | |
LNM_CancelReservation_RQ/Authentication | C, M | Authentication details | |
LNM_CancelReservation_RQ/Authentication/UserName | String(50) | M | Rentals United Username |
LNM_CancelReservation_RQ/Authentication/Password | String(50) | M | Password hash provided by Rentals United |
LNM_CancelReservation_RQ/ReservationID | Integer | M | Unique reservation ID |
New Lead
void HandleRequest(string xmlRequest)
{
try
{
LNM_PutLeadReservation_RQ request = XmlTools.DeserializeObject<LNM_PutLeadReservation_RQ>(xmlRequest);
//process request object
}
catch
{
// process error
}
}
This is the XML Request structure of a RLNM notification sent (POST) to your handler by Rentals United for a new lead (e.g. Guest Communication thread).
<LNM_PutLeadReservation_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reservation>
<ReservationID>123</ReservationID>
<ExternalReservationID>123asd123</ExternalReservationID>
<PropertyID>1</PropertyID>
<DateFrom>2014-06-01</DateFrom>
<DateTo>2014-06-08</DateTo>
<NumberOfGuests>2</NumberOfGuests>
<ResApaID>12345</ResApaID>
<CustomerInfo>
<Name>test</Name>
<SurName>test</SurName>
<Email>test2@test.test</Email>
<Phone>0000000</Phone>
<CountryID>66</CountryID>
<LanguageID>2</LanguageID>
</CustomerInfo>
<Comments>How much is it?</Comments>
<Creator>test@test.test</Creator>
<DateEntered>2014-05-26 09:17:00</DateEntered>
</Reservation>
</LNM_PutLeadReservation_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
LNM_PutLeadReservation_RQ | C | Root element | |
LNM_PutLeadReservation_RQ/Authentication | C, M | Authentication details | |
LNM_PutLeadReservation_RQ/Authentication/UserName | String(50) | M | Rentals United Username |
LNM_PutLeadReservation_RQ/Authentication/Password | String(50) | M | Password hash provided by Rentals United |
LNM_PutLeadReservation_RQ/Reservation | O | Single reservation request | |
LNM_PutLeadReservation_RQ/Reservation/ReservationID | Integer | M | Unique reservation ID |
LNM_PutLeadReservation_RQ/Reservation/ExternalReservationID | String | O | Lead's unique identifier from the external system that created it |
LNM_PutLeadReservation_RQ/Reservation/PropertyID | Integer | O | Unique property ID |
LNM_PutLeadReservation_RQ/Reservation/DateFrom | String(10) | O | Start of the lead(YYYY-MM-DD format) |
LNM_PutLeadReservation_RQ/Reservation/DateTo | String(10) | O | End of the lead(YYYY-MM-DD format) |
LNM_PutLeadReservation_RQ/Reservation/NumberOfGuests | Integer | O | Number of guests |
LNM_PutLeadReservation_RQ/Reservation/ResApaID | Integer | M | Apartment Reservation ID |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo | C, M | Information about the guest | |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/Name | String(20) | O | Guest's name |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/SurName | String(30) | O | Guest's surname |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/Email | String(100) | O | Guest's email address |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/Phone | String(30) | O | Guest's phone number with the country code |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/SkypeId | String(50) | O | Guest's Skype ID |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/Address | String(50) | O | Guest's address |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/ZipCode | String(15) | O | Guest's zip code |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/CountryID | Integer | O | Country's unique ID, see ListLocations (filter LocationTypeID=2) |
LNM_PutLeadReservation_RQ/Reservation/CustomerInfo/LanguageID | Integer | O | Code that identifies the guest's language, see ListLanguages |
LNM_PutLeadReservation_RQ/Reservation/Comments | String(4000) | M | Additional information |
LNM_PutLeadReservation_RQ/Reservation/Creator | String(50) | M | Email address/Username of an entity that created a lead, e.g. the channel or the user |
LNM_PutLeadReservation_RQ/Reservation/DateEntered | String(19) | M | Information when the lead was created (YYYY-MM-DD HH:MM:SS format) |
Channel Management API
List properties status in channel
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChannelManagement;
CM_Pull_PropertiesStatus_RQ request = new CM_Pull_PropertiesStatus_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ChannelId = 1
};
string xmlBody = XmlTools.SerializeObject<CM_Pull_PropertiesStatus_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
CM_Pull_PropertiesStatus_RS response = XmlTools.DeserializeObject<CM_Pull_PropertiesStatus_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method lets you list properties of a single channel. Thanks to this info you will be able to make a decision of activating/deactivating property or updating the markup for selected rates.
Request
<CM_Pull_PropertiesStatus_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ChannelId>421327</ChannelId>
</CM_Pull_PropertiesStatus_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
CM_Pull_PropertiesStatus_RQ | C | Root element | |
CM_Pull_PropertiesStatus_RQ/Authentication | C, M | Authentication details | |
CM_Pull_PropertiesStatus_RQ/Authentication/UserName | String(50) | M | Username |
CM_Pull_PropertiesStatus_RQ/Authentication/Password | String(50) | M | Password |
CM_Pull_PropertiesStatus_RQ/ChannelId | Integer | M | ChannelId that can be found in Pull_GetAgents_RQ as an AgentId |
Response
HRS example
This is an example of HRS properties (e.g. Booking.com). In this case, the user has two hotels (Clusters).
One hotel (Cluster) with ID 1908965 and only one unit (Unit) within. The Cluster is inactive because none of its Units are active. Moreover, the Unit is inactive because the Rates within are inactive, too. Notice that the Rates collection has two Rate objects inside. The ARIStatus is inactive, which means Rentals United is not synchronizing the availability and pricing for this unit. Since the unit is inactive, there is a possibility that this unit's calendar is outdated in the OTA, hence a reservation may be created for this unit in case it has some open dates. If this happens, the reservation will be synchronized into Rentals United.
The second hotel (Cluster) with ID 1534809 is active because at least one of its Units is active.
- The first room (Unit) is active, however, the ARIStatus displays Error. In such a case, go to the Rentals United UI in order to find a cause and fix it. Rentals United aims to upgrade the Channel Management API, so that it is also possible to fix errors directly in API.
- The second room (Unit) with ID 351449 is active and its synchronization works flawlessly.
- The third room (Unit) with ID 17952 is inactive and it lacks Rates. In this case, go to the Rentals United UI and complete the configuration for this Unit.
<CM_Pull_PropertiesStatus_RS>
<Status ID="0">Success</Status>
<ResponseID>c4de77df9b524494a09d48d03e2f936f</ResponseID>
<Channels>
<Channel>
<Id>421327</Id>
<Clusters>
<Cluster ClusterId="1908965">
<Active>false</Active>
<Units>
<Unit ExternalUnitId="190896501" UnitId="56150" Active="false">
<Properties>
<Property Id="2543542" PUID="33728900" />
</Properties>
<Rates>
<Rate Active="false" Id="71917" Markup="115" Name="Standard Rate" NrOfPeople="7" />
<Rate Active="false" Id="116024" Markup="105" Name="Non refundable rate" NrOfPeople="7" />
</Rates>
<Status>
<ContentStatus>Ok</ContentStatus>
<ARIStatus>Inactive</ARIStatus>
</Status>
</Unit>
</Units>
</Cluster>
<Cluster ClusterId="1534809" StatusInChannel="Open / bookable">
<Active>true</Active>
<Units>
<Unit ExternalUnitId="153480902" UnitId="17951" Active="true">
<Properties>
<Property Id="177056" PUID="54222;56730" />
</Properties>
<Rates>
<Rate Active="true" Id="22699" Markup="115" Name="Standard Rate" NrOfPeople="2" />
</Rates>
<Status>
<ContentStatus>Ok</ContentStatus>
<ARIStatus>Error</ARIStatus>
</Status>
</Unit>
<Unit ExternalUnitId="153480904" UnitId="351449" Active="true">
<Properties>
<Property Id="177058" PUID="54220;56728" />
</Properties>
<Rates>
<Rate Active="false" Id="374239" Markup="115" Name="Standard Rate" NrOfPeople="2" />
</Rates>
<Status>
<ContentStatus>Ok</ContentStatus>
<ARIStatus>Ok</ARIStatus>
</Status>
</Unit>
<Unit ExternalUnitId="153480903" UnitId="17952" Active="false">
<Properties>
<Property Id="180072" PUID="54223;56732" />
</Properties>
<Rates />
</Unit>
</Units>
</Cluster>
</Clusters>
</Channel>
</Channels>
</CM_Pull_PropertiesStatus_RS>
HRW example
This is an example of HRW properties (e.g. Airbnb). In this case, the user has two accounts (Clusters) synchronized. Please notice that in this case there is always one apartment (Unit) and one Rate inside a Unit.
- The first Unit with ID 91888 is active as long as its Rate is active. ContentStatus displays Ok, which means that Rentals United sucessfully is sending the static data. The ARIStatus displays Ok, too, hence the prices and availabiltiy are flawlessly synchronized.
- The second Unit with ID 153719 is not active as long as its rate is not active, either. The ARIStatus displays Inactive, which means Rentals United is not sending updates with regard to availability and prices. To resume synchronization, perform
activate the rate
. - The third Unit with ID 50643 is not active and its ContentStatus displays Error. In such a case, go to the Rentals United UI in order to find a cause and fix it. Rentals United aims to upgrade the Channel Management API, so that it is also possible to fix errors directly in API.
Not every HRW system supports distinction between ARIStatus and ContentStatus. Some of them provide information only about ContentStatus.
<CM_Pull_PropertiesStatus_RS>
<Status ID="0">Success</Status>
<ResponseID>6a4011cae8a44bba9cf1e248d75a902b</ResponseID>
<Channels>
<Channel>
<Id>426592</Id>
<Clusters>
<Cluster ClusterId="140042636">
<Active>true</Active>
<Unit Active="true" ExternalUnitId="23317850" UnitId="91888">
<Properties>
<Property Id="1199017" PUID="104667;104682"/>
</Properties>
<Rates>
<Rate Active="true" Id="113068" Markup="105" Name="Standard" NrOfPeople="1"/>
</Rates>
<Status>
<ContentStatus>Ok</ContentStatus>
<ARIStatus>Ok</ARIStatus>
</Status>
</Unit>
<Unit Active="false" ExternalUnitId="19647041" UnitId="153719">
<Properties>
<Property Id="1198036" PUID="104439;104474"/>
</Properties>
<Rates>
<Rate Active="false" Id="142853" Markup="110" Name="Standard" NrOfPeople="1"/>
</Rates>
<Status>
<ContentStatus>Ok</ContentStatus>
<ARIStatus>Inactive</ARIStatus>
</Status>
</Unit>
</Cluster>
<Cluster ClusterId="137811792">
<Active>false</Active>
<Unit Active="false" ExternalUnitId="13892870" UnitId="50643">
<Properties>
<Property Id="246467" PUID="61770;62323"/>
</Properties>
<Rates>
<Rate Active="false" Id="64636" Markup="105" Name="Standard" NrOfPeople="1"/>
</Rates>
<Status>
<ContentStatus>Error</ContentStatus>
<ARIStatus>Error</ARIStatus>
</Status>
</Unit>
</Cluster>
</Clusters>
</Channel>
</Channels>
</CM_Pull_PropertiesStatus_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
CM_Pull_PropertiesStatus_RS | C | Root element | |
CM_Pull_PropertiesStatus_RS/Channels | C | Collection with models containg channel connections breakdown | |
CM_Pull_PropertiesStatus_RS/Channel | C | A specific channel connection breakdown | |
CM_Pull_PropertiesStatus_RS/Channel/Id | Integer | M | ChannelId that can be found in Pull_GetAgents_RQ as AgentId |
CM_Pull_PropertiesStatus_RS/Channel/Clusters | C | Collection of Clusters | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster | C | Cluster model | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Active | Boolean | M | It indicates whether the Cluster is active. If the value is set to true, it means at least one Unit within this Cluster is active |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Id | String | M | Cluster unique identifier. The Cluster ID is unique per channel (multiple Clusters in one channel cannot have the same ID) |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/StatusInChannel | String | M | This field is available only in case of Booking.com and Expedia and it indicates the status of the hotel in the channel. Other sales channels will not have this information provided. Even when the hotel status is bookable, some individual Units (rooms) may still not be bookable. Please note that the value of this field is dependent on the channel and may vary between channels |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units | C | Collection of Units | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit | C | Contains some details about the Unit (e.g. name), info which RU properties are mapped to a given Unit and what the connection settings are | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Id | Integer | M | Unit ID. You may use this ID when activating/deactivating Units |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Active | Boolean | M | Indicator if this Unit has at least one active Rate |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/ExternalUnitId | String | M | ID of Unit used in the OTA |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Properties | C | Collection of apartments inside Unit, only for HRS system there will be more than one apartment | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Properties/Property | C | Simple model of apartment with Ids | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Properties/Property/Id | Integer | M | PropertyId in Rentals United |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Properties/Property/PUID | Integer | M | PropertyId in case property is from external system(PMS) |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates | C | Collection of Rate that carries information about pricing | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate | C | simple Rate model | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/Id | Integer | C | Rate ID generated in Rentals United - needed when calling modify actions in Channel Management API |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/Active | M | Boolean | Indicator if this Rate is active |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/Markup | M | Integer | Mark-up value. It indicates if the price has been marked up for a specific channel. For example, a 107 value indicates that the price available in Rentals United is increased by 7% before passing it to the sales channel |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/NrOfPeople | M | Integer | Number of guests included in the price. If the value is 0, the price will be calculated according to StandardGuests set in Put_PushProperty_RQ |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Rates/Rate/Name | M | String | Rate’s name |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Status | C | Info about Unit's connection status | |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Status/ContentStatus | M | String | Static data (name, photos, descriptions, fees etc.) synchronisation status |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Status/ARIStatus | O | String | ARI data (availability, prices, etc.) synchronisation status |
CM_Pull_PropertiesStatus_RS/Channel/Clusters/Cluster/Units/Unit/Status/URLtoProperty | O | String | URL of the property in the sales channel (available only if the sales channel provides it) |
Update markup on selected rate
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChannelManagement;
CM_Push_RateMarkup_RQ request = new CM_Push_RateMarkup_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ChannelId = 1,
RateId = 1,
Markup = 110
};
string xmlBody = XmlTools.SerializeObject<CM_Push_RateMarkup_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
CM_Push_RateMarkup_RS response = XmlTools.DeserializeObject<CM_Push_RateMarkup_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
By using this method you are able to modify markup on prices selected in Sales Channel. Every change of markup will result with notifing appropriate system about pricing change. Please make sure that you're updating a markup on active rate, otherwise Rentals United won't propagate new prices to the Sales Channel
Request
<CM_Push_RateMarkup_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ChannelId>553082</ChannelId>
<RateId>3123</RateId>
<Markup>107.00</Markup>
</CM_Push_RateMarkup_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
CM_Push_RateMarkup_RQ | C | Root element | |
CM_Push_RateMarkup_RQ/Authentication | C, M | Authentication details | |
CM_Push_RateMarkup_RQ/Authentication/UserName | String(50) | M | Username |
CM_Push_RateMarkup_RQ/Authentication/Password | String(50) | M | Password |
CM_Push_RateMarkup_RQ/ChannelId | Integer | M | ChannelId that can be found in Pull_GetAgents_RQ as AgentId |
CM_Push_RateMarkup_RQ/RateId | Integer | M | RateId to be found when listing properties connected to a given Sales Channel |
CM_Push_RateMarkup_RQ/Markup | Decimal | M | It refers to an additional markup value added or subtracted from the base price and sent to the Sales Channel. For example, a value "107" increases the price presented to the Sales Channel by 7%. Setting the value lower than "100" results in a discount. |
Response
<CM_Push_RateMarkup_RS>
<Status ID="0">Success</Status>
<ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
</CM_Push_RateMarkup_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
CM_Push_RateMarkup_RS | C | Root Element | |
CM_Push_RateMarkup_RS/Status | String(100) | M | See ListStatuses |
CM_Push_RateMarkup_RS/Status/@ID | Integer | M | See ListStatuses |
CM_Push_RateMarkup_RS/ResponseID | String(32) | M | Unique response ID |
Stop or resume property listing
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChannelManagement;
CM_Push_UnitActiveStatus_RQ request = new CM_Push_UnitActiveStatus_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Action = "DEACTIVATE",
ChannelId = 1,
UnitId = 1,
RateId = 1,
CloseCalendar = true
};
string xmlBody = XmlTools.SerializeObject<CM_Push_UnitActiveStatus_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
CM_Push_UnitActiveStatus_RS response = XmlTools.DeserializeObject<CM_Push_UnitActiveStatus_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method lets you resume (activate) or stop (deactivate) listing of a single property in a single Sales Channel. Rentals United assumes that the cluster is active as long as it has at least one active rate. Deactivating the unit results in the deactivation of all its rates.
Consequences of activating the rate/unit:
- the channel gets access to the property availability calendar and prices,
- Rentals United keeps in sync availability calendar and prices,
- the property should get listed in OTA; it cannot be guaranteed to happen immediately, yet each integration relies on this assumption.
Consequences of deactivating the rate/unit:
- the channel loses access to the property availability calendar and prices,
- Rentals United stops syncing availability calendar and prices,
- the property should get unlisted in OTA; it cannot be guaranteed to happen immediately, yet each integration relies on this assumption.
Request
In the first step you need to supply Rentals United platform with a command to execute. There are two types of Actions its ACTIVATE or DEACTIVATE. In case of deactivation you can supply additional parameter that will cause closing availability calendar in Sales Channel
<CM_Push_UnitActiveStatus_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Action>ACTIVATE</Action>
<ChannelId>421327</ChannelId>
<RateId>3123</RateId>
</CM_Push_UnitActiveStatus_RQ>
<CM_Push_UnitActiveStatus_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Action>DEACTIVATE</Action>
<ChannelId>553082</ChannelId>
<UnitId>123</UnitId>
<CloseCalendar>true</CloseCalendar>
</CM_Push_UnitActiveStatus_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
CM_Push_UnitActiveStatus_RQ | C | Root Element | |
CM_Push_UnitActiveStatus_RQ/Authentication | C, M | Authentication details | |
CM_Push_UnitActiveStatus_RQ/Authentication/UserName | String(50) | M | Username |
CM_Push_UnitActiveStatus_RQ/Authentication/Password | String(50) | M | Password |
CM_Push_UnitActiveStatus_RQ/Action | String | M | Determines the action to be taken. The value should be set to ACTIVATE or DEACTIVATE |
CM_Push_UnitActiveStatus_RQ/ChannelId | Integer | M | ChannelId to be found when listing properties connected to a given Sales Channel |
CM_Push_UnitActiveStatus_RQ/UnitId | Integer | O | UnitId to be found when listing properties connected to a given Sales Channel |
CM_Push_UnitActiveStatus_RQ/RateId | Integer | O | RateId to be found when listing properties connected to a given Sales Channel |
CM_Push_UnitActiveStatus_RQ/CloseCalendar | Boolean | O | When the unit or the last active rate within the unit is deactivated, the Rentals United may be requested to close the calendar in the OTA before the synchronization is stopped |
Response
Below you can see example response of activation action.
<CM_Push_UnitActiveStatus_RS>
<Status ID="0">Success</Status>
<ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
</CM_Push_UnitActiveStatus_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
CM_Push_UnitActiveStatus_RS | C | Root Element | |
CM_Push_UnitActiveStatus_RS/Status | String(100) | M | See ListStatuses |
CM_Push_UnitActiveStatus_RS/Status/@ID | Integer | M | See ListStatuses |
CM_Push_UnitActiveStatus_RS/ResponseID | String(32) | M | Unique response ID |
Order Minimum Content Quality check
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.ChannelManagement;
CM_LNM_OrderMinimumContentQualityCheck_RQ request = new CM_LNM_OrderMinimumContentQualityCheck_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
ChannelID = 1,
PropertyID = 1
};
string xmlBody = XmlTools.SerializeObject<CM_LNM_OrderMinimumContentQualityCheck_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
CM_LNM_OrderMinimumContentQualityCheck_RS response = XmlTools.DeserializeObject<CM_LNM_OrderMinimumContentQualityCheck_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method allows you to enqueue a Minimum Content Quality check for given property and given channel.
In case you are not connected to the channel, a proper error response will be returned. You will also need to subscribe to PropertyMCQEligibilityCheck LNM
Request
<CM_LNM_OrderMinimumContentQualityCheck_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<ChannelID>421327</ChannelID>
<PropertyID>3123</PropertyID>
</CM_LNM_OrderMinimumContentQualityCheck_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
CM_LNM_OrderMinimumContentQualityCheck_RQ | C | Root Element | |
CM_LNM_OrderMinimumContentQualityCheck_RQ/Authentication | C, M | Authentication details | |
CM_LNM_OrderMinimumContentQualityCheck_RQ/Authentication/UserName | String(50) | M | Username |
CM_LNM_OrderMinimumContentQualityCheck_RQ/Authentication/Password | String(50) | M | Password |
CM_LNM_OrderMinimumContentQualityCheck_RQ/ChannelID | Integer | M | ChannelId to be found when listing sales channels |
CM_LNM_OrderMinimumContentQualityCheck_RQ/PropertyID | Integer | M | Your property ID |
Response
<CM_LNM_OrderMinimumContentQualityCheck_RS>
<Status ID="0">Success</Status>
<ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
</CM_LNM_OrderMinimumContentQualityCheck_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
CM_LNM_OrderMinimumContentQualityCheck_RS | C | Root Element | |
CM_LNM_OrderMinimumContentQualityCheck_RS/Status | String(100) | M | See ListStatuses |
CM_LNM_OrderMinimumContentQualityCheck_RS/Status/@ID | Integer | M | See ListStatuses |
CM_LNM_OrderMinimumContentQualityCheck_RS/ResponseID | String(32) | M | Unique response ID |
Redirect traffic to your website
Rentals United has possibility to drive traffic from listing sites to the website with your domain and your booking form. The main use case for this method is configuring a redirect from Google Vacation Rental Search (in such a case please use PageType "details"). In order to set up this redirect properly, your website should support HTTPS connection and URL parameters as follows:
- PropertyId,
- Date from (arrival),
- Date to (departure),
- Number of guests.
After setting up the redirect by using this method, Rentals United generates a link similar to http://g.rentalsunited.com/gate.aspx?uid=56586&url=1&pid=263736. After entering the link, Rentals United API redirects the traffic to the URL that was supplied in the request.
Setting up redirect
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Gateway;
Push_PutPropertiesURLs_RQ request = new Push_PutPropertiesURLs_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
PropertyURL = new PropertyURL()
{
PropertyID = 1,
PageType = "details",
URL = "https://example.url",
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutPropertiesURLs_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutPropertiesURLs_RS response = XmlTools.DeserializeObject<Push_PutPropertiesURLs_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
Adding, removing and updating redirects:
- In order to insert multiple URL types in the same request, please pass each URL info in a separate
element (see Example: Insert request on the right). - In order to update an existing redirect, send a new request with the same PropertyID and PageType you sent before and new values for the remaining parameters.
- In order to remove an existing redirect, send a new request only with the PropertyID and PageType you sent before, but do not provide any other parameters (see Example: Delete request on the right).
Request
Example: Insert request
<Push_PutPropertiesURLs_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<PropertyURL PropertyID="2637359">
<PageType>details</PageType>
<URL>http://yourwebsite.com/properties/nice-apartment/</URL>
<URLWithParams value="http://yourwebsite.com/properties/nice-apartment/?df=$dfv$&dt=$dtv$&noa=$noav$&nok=$nokv$&sc=554691">
<Param base="df" format="DD/MM/YYYY" placeholder="$dfv$">Date From</Param>
<Param base="dt" format="DD/MM/YYYY" placeholder="$dtv$">Date To</Param>
<Param base="noa" placeholder="$noav$">Number of adults</Param>
<Param base="nok" placeholder="$nokv$">Number of children</Param>
</URLWithParams>
</PropertyURL>
<PropertyURL PropertyID="2637359">
<PageType>booking</PageType>
<URL>http://yourwebsite.com/properties/pretty-studio/</URL>
<URLWithParams value="http://yourwebsite.com/book/pretty-studio/?df=$dfv$&dt=$dtv$&nop=$nopv$&sc=554691">
<Param base="df" format="DD/MM/YYYY" placeholder="$dfv$">Date From</Param>
<Param base="dt" format="DD/MM/YYYY" placeholder="$dtv$">Date To</Param>
<Param base="nop" placeholder="$nopv$">Number of people</Param>
</URLWithParams>
</PropertyURL>
<PropertyURL PropertyID="2637364">
<PageType>enquiry</PageType>
<URL>http://yourwebsite.com/properties/abc234/</URL>
<URLWithParams value="http://yourwebsite.com/properties/abc234/?df=$dfv$&dt=$dtv$&nok=$nokv$&sc=554691">
<Param base="df" format="DD/MM/YYYY" placeholder="$dfv$">Date From</Param>
<Param base="dt" format="DD/MM/YYYY" placeholder="$dtv$">Date To</Param>
<Param base="nok" placeholder="$nokv$">Number of children</Param>
</URLWithParams>
</PropertyURL>
</Push_PutPropertiesURLs_RQ>
Example: Delete request
<Push_PutPropertiesURLs_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<PropertyURL PropertyID="2637359">
<PageType>details</PageType>
</URLWithParams>
</PropertyURL>
<PropertyURL PropertyID="2637359">
<PageType>booking</PageType>
</PropertyURL>
<PropertyURL PropertyID="2637364">
<PageType>enquiry</PageType>
</PropertyURL>
</Push_PutPropertiesURLs_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPropertiesURLs_RQ | C | Root Element | |
Push_PutPropertiesURLs_RQ/Authentication | C, M | Authentication details | |
Push_PutPropertiesURLs_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutPropertiesURLs_RQ/Authentication/Password | String(50) | M | Password |
Push_PutPropertiesURLs_RQ/PropertyURL@PropertyID | Integer | M | Unique ID that identifies a property |
Push_PutPropertiesURLs_RQ/PropertyURL/PageType | String(20) | M | It defines the page type, possible values: details, booking, enquiry |
Push_PutPropertiesURLs_RQ/PropertyURL/URL | String(1000) | M | A property’s page URL that does not require any additional parameters |
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams | String(1000) | C, O | A property’s website URL that contains variables (placeholders). The variable values will be transferred from the Gateway |
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams@value | String(1000) | M | An URL that contains placeholder for values to be filled when a redirect is executed |
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param | String(50) | M | Descriptive name of a parameter |
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@base | String(20) | M | Gateway parameter name. The value of this parameter will be used in Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams@value. Accepted parameters: df (Date From), dt (Date To), noa (Number of adults), nok (Number of children), nop (Number of people) |
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@format | String(50) | O | A parameter for ToString method, Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@base value will be formatted before replacing of Microsoft .Net Framework ToString method described here. It is recommended to use the DD/MM/YYYY format |
Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@placeholder | String(50) | M | This pattern will be replaced with Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams/Param@base value in Push_PutPropertiesURLs_RQ/PropertyURL/URLWithparams@value |
Push_PutPropertiesURLs_RQ/PropertyURL/Description | String(200) | O | A description of an URL |
Response
Example response
<Push_PutPropertiesURLs_RS>
<Status ID="0">Success</Status>
<ResponseID>48437eb7492448feb1eb2842e9a1bd70</ResponseID>
</Push_PutPropertiesURLs_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPropertiesURLs_RS | C | Root Element | |
Push_PutPropertiesURLs_RS/Status | String(100) | M | See ListStatuses |
Push_PutPropertiesURLs_RS/Status/@ID | Integer | M | See ListStatuses |
Push_PutPropertiesURLs_RS/ResponseID | String(32) | M | Unique response ID. |
Push_PutPropertiesURLs_RS/Notifs | C, O | A collection of informations about the upload errors, the ranges updated successfully are not included in this collection | |
Push_PutPropertiesURLs_RS/Notif | Integer | C, M | A detailed information about the problematic ranges |
Push_PutPropertiesURLs_RS/Notif@StatusID | Integer | M | See ListStatuses |
Push_PutPropertiesURLs_RS/Notif@PropertyID | Integer | M | The ID of a property for which error was reported |
View redirect setup
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.Gateway;
Pull_GetPropertiesURLs_RQ request = new Pull_GetPropertiesURLs_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Properties = new List<int>()
{
1,
2
}
};
string xmlBody = XmlTools.SerializeObject<Pull_GetPropertiesURLs_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_GetPropertiesURLs_RS response = XmlTools.DeserializeObject<Pull_GetPropertiesURLs_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns properties' URLs to which the traffic from the listing sites should be redirected. The traffic is logged by the Rentals United platform and redirected to the property provider website URL automatically.
Request
<Pull_GetPropertiesURLs_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Properties>
<Property>2637359</Property>
<Property>2637364</Property>
</Properties>
</Pull_GetPropertiesURLs_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetPropertiesURLs_RQ/Authentication | C, M | Authentication details | |
Pull_GetPropertiesURLs_RQ/Authentication/UserName | String(50) | M | Username |
Pull_GetPropertiesURLs_RQ/Authentication/Password | String(50) | M | Password |
Pull_GetPropertiesURLs_RQ/Properties | C, M | Properties' list root | |
Pull_GetPropertiesURLs_RQ/Properties/Property | Integer | M | Property ID |
Pull_GetPropertiesURLs_RQ/PageType | String | O | Filters result by page type. Accepted values: details, booking, enquiry. Returns all types if not specified. |
Response
<Pull_GetPropertiesURLs_RS>
<Status ID="0">Success</Status>
<ResponseID>cb983a0e150b4700aba3c9ff74e19643</ResponseID>
<Properties>
<Property PropertyID="2637359">
<PropertyURL>
<GatewayPropertyURL>
<PageType>details</PageType>
<URL>http://g.rentalsunited.com/gate.aspx?uid=56586&url=1&pid=263736</URL>
<Params>
<Param format="DD/MM/YYYY">df</Param>
<Param format="DD/MM/YYYY">dt</Param>
<Param>noa</Param>
<Param>nok</Param>
</Params>
</GatewayPropertyURL>
<GatewayPropertyURL>
<PageType>booking</PageType>
<URL>http://g.rentalsunited.com/gate.aspx?uid=56586&url=2&pid=263736</URL>
<Params>
<Param format="DD/MM/YYYY">df</Param>
<Param format="DD/MM/YYYY">dt</Param>
<Param>nop</Param>
</Params>
</GatewayPropertyURL>
</PropertyURL>
</Property>
<Property PropertyID="2637364">
<PropertyURL>
<GatewayPropertyURL>
<PageType>enquiry</PageType>
<URL>http://g.rentalsunited.com/gate.aspx?uid=56586&url=3&pid=263736</URL>
<Params>
<Param format="DD/MM/YYYY">df</Param>
<Param format="DD/MM/YYYY">dt</Param>
<Param>nok</Param>
</Params>
</GatewayPropertyURL>
</PropertyURL>
</Property>
</Properties>
</Pull_GetPropertiesURLs_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_GetPropertiesURLs_RS | C | Root Element | |
Pull_GetPropertiesURLs_RS/Status | String(100) | M | See ListStatuses |
Pull_GetPropertiesURLs_RS/Status/@ID | Integer | M | See ListStatuses |
Pull_GetPropertiesURLs_RS/ResponseID | String(32) | M | Unique response ID |
Pull_GetPropertiesURLs_RS/Properties | C, M | A collection of properties | |
Pull_GetPropertiesURLs_RS/Properties/Property | C, M | Single property | |
Pull_GetPropertiesURLs_RS/Properties/Property@PropertyID | Integer | M | Property ID |
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL | C | Container for property URL information | |
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL | C | Container for URL information for single page type | |
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL/PageType | String | M | Page type. Returned values are: details, booking, enquiry |
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL/URL | String | M | A property’s page URL that does not require any additional parameters |
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL/Params | C, M | A Collection of parameters | |
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURL/Params/Param | O | Parameter that must be appended to the URL | |
Pull_GetPropertiesURLs_RS/Properties/Property/PropertyURL/GatewayPropertyURLParams/Param@format | String | O | Defines format of a date, in which the parameter must be entered |
Property Reviews
This section describes the methods that allow you to retrieve information about the property reviews.
List reviews for property
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyReview;
Pull_ListPropertyReviews_RQ request = new Pull_ListPropertyReviews_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
PropertyID = 1
};
string xmlBody = XmlTools.SerializeObject<Pull_ListPropertyReviews_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_ListPropertyReviews_RS response = XmlTools.DeserializeObject<Pull_ListPropertyReviews_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method returns all reviews for a selected property.
Request
XML Request
<Pull_ListPropertyReviews_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<PropertyID>123</PropertyID>
</Pull_ListPropertyReviews_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertyReviews_RQ | C | Root element | |
Pull_ListPropertyReviews_RQ/Authentication | C, M | Authentication details | |
Pull_ListPropertyReviews_RQ/Authentication/UserName | String(50) | M | Username |
Pull_ListPropertyReviews_RQ/Authentication/Password | String(50) | M | Password |
Pull_ListPropertyReviews_RQ/PropertyID | Integer | M | The code that uniquely identifies a property |
Response
XML Rsponse
<Pull_ListPropertyReviews_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Reviews PropertyID="123">
<Review ID="10001">
<FirstName>John</FirstName>
<LastName>Smith</LastName>
<DisplayName>John S</DisplayName>
<Rating>5</Rating>
<ArrivalDate>2015-04-02</ArrivalDate>
<Submitted>2015-05-01</Submitted>
<Texts>
<Text LanguageID="1">Very nice flat</Text>
<Text LanguageID="3">Bardzo ładne mieszkanie</Text>
</Texts>
</Review>
</Reviews>
</Pull_ListPropertyReviews_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_ListPropertyReviews_RS | C | Root element | |
Pull_ListPropertyReviews_RS/Status | String | M | See ListStatuses |
Pull_ListPropertyReviews_RS/Status@ID | Integer | M | See ListStatuses |
Pull_ListPropertyReviews_RS/Reviews | C, M | A collection of reviews | |
Pull_ListPropertyReviews_RS/Reviews@PropertyID | Integer | M | The code that uniquely identifies a property |
Pull_ListPropertyReviews_RS/Reviews/Review | C, M | Information about review | |
Pull_ListPropertyReviews_RS/Reviews/Review@ID | Integer | M | The code that uniquely identifies a review |
Pull_ListPropertyReviews_RS/Reviews/Review/FirstName | String(100) | M | First name of the user that made the review |
Pull_ListPropertyReviews_RS/Reviews/Review/LastName | String(100) | M | Last name of the user that made the review |
Pull_ListPropertyReviews_RS/Reviews/Review/DisplayName | String(100) | M | Display name of the user that made the review |
Pull_ListPropertyReviews_RS/Reviews/Review/Email | String(100) | M | Email of the user that made the review |
Pull_ListPropertyReviews_RS/Reviews/Review/Rating | Integer | M | Rating of the apartment made by the user. Values may range between 0 and 5 |
Pull_ListPropertyReviews_RS/Reviews/Review/ArrivalDate | String(10) | M | Date on which the user arrived (YYYY-MM-DD format) |
Pull_ListPropertyReviews_RS/Reviews/Review/Submitted | String(10) | M | Date on which the review was submitted (YYYY-MM-DD format) |
Pull_ListPropertyReviews_RS/Reviews/Review/Texts | C, M | Collection of review translations | |
Pull_ListPropertyReviews_RS/Reviews/Review/Texts/Text | String | M | Review text |
Pull_ListPropertyReviews_RS/Reviews/Review/Texts/Text@LanguageID | Integer | M | Code that identifies the language of review, see ListLanguages |
Put property review
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.PropertyReview;
Push_PutPropertyReviews_RQ request = new Push_PutPropertyReviews_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
Reviews = new List<Review>()
{
new Review()
{
FirstName = "John",
LastName = "Smith",
DisplayName = "John S",
Email = "JohnS@domain.com",
Rating = 5,
ArrivalDate = "2015-04-02",
Submitted = "2015-05-01",
Texts = new List<Text>()
{
new Text()
{
LanguageID = 1
Text = "Very nice flat"
}
}
}
}
};
string xmlBody = XmlTools.SerializeObject<Push_PutPropertyReviews_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_PutPropertyReviews_RS response = XmlTools.DeserializeObject<Push_PutPropertyReviews_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method allows you to insert user-made reviews for an apartment. Only apartment owners can insert reviews. Only one review can be uploaded per request.
Request
XML Request
<Push_PutPropertyReviews_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<Reviews PropertyID="123">
<Review>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
<DisplayName>John S</DisplayName>
<Email>JohnS@domain.com</Email>
<Rating>5</Rating>
<ArrivalDate>2015-04-02</ArrivalDate>
<Submitted>2015-05-01</Submitted>
<Texts>
<Text LanguageID="1">Very nice flat</Text>
<Text LanguageID="3">Bardzo ładne mieszkanie</Text>
</Texts>
</Review>
</Reviews>
</Push_PutPropertyReviews_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPropertyReviews_RQ | C | Root element | |
Push_PutPropertyReviews_RQ/Authentication | C, M | Authentication details | |
Push_PutPropertyReviews_RQ/Authentication/UserName | String(50) | M | Username |
Push_PutPropertyReviews_RQ/Authentication/Password | String(50) | M | Password |
Push_PutPropertyReviews_RQ/Reviews | C | Collection of reviews | |
Push_PutPropertyReviews_RQ/Reviews@PropertyID | Integer | M | The code that uniquely identifies a property in the RU system |
Push_PutPropertyReviews_RQ/Reviews/Review | C, M | Information about a review | |
Push_PutPropertyReviews_RQ/Reviews/Review/FirstName | String(100) | M | First name of the user that made the review |
Push_PutPropertyReviews_RQ/Reviews/Review/LastName | String(100) | M | Last name of the user that made the review |
Push_PutPropertyReviews_RQ/Reviews/Review/DisplayName | String(100) | M | Display name of the user that made the review |
Push_PutPropertyReviews_RQ/Reviews/Review/Email | String(100) | M | Email of the user who created the review |
Push_PutPropertyReviews_RQ/Reviews/Review/Rating | Integer | M | Rating value for the review. Values may range between 0 and 5 |
Push_PutPropertyReviews_RQ/Reviews/Review/ArrivalDate | String(10) | M | Date on which user arrived (YYYY-MM-DD format) |
Push_PutPropertyReviews_RQ/Reviews/Review/Submitted | String(10) | M | Date on which the review was created. It must be later than ArrivalDate (YYYY-MM-DD format) |
Push_PutPropertyReviews_RQ/Reviews/Review/Texts | C, M | Collection of translated texts | |
Push_PutPropertyReviews_RQ/Reviews/Review/Texts/Text | String | M | Review text |
Push_PutPropertyReviews_RQ/Reviews/Review/Texts/Text@LanguageID | Integer | M | Code that identify the language of description, see ListLanguages |
Response
XML Response
<Push_PutPropertyReviews_RS>
<Status ID="0">Success</Status>
<ResponseID ID="1">Success</ResponseID>
<ReviewID>123</ReviewID>
</Push_PutPropertyReviews_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_PutPropertyReviews_RS | C | Root element | |
Push_PutPropertyReviews_RS/Status | String(100) | M | See ListStatuses |
Push_PutPropertyReviews_RS/Status@ID | Integer | M | See ListStatuses |
Push_PutPropertyReviews_RS/ReviewID | Integer | M | Unique identifier of the review |
ruEX Promotions
This section describes the methods that allow you to manage ruEX Promotions.
List licenses
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;
Pull_RuEXPromotions_ListLicenses_RQ request = new Pull_RuEXPromotions_ListLicenses_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
}
};
string xmlBody = XmlTools.SerializeObject<Pull_RuEXPromotions_ListLicenses_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_RuEXPromotions_ListLicenses_RS response = XmlTools.DeserializeObject<Pull_RuEXPromotions_ListLicenses_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
The method returns a list of licensed users.
Request
XML Request
<Pull_RuEXPromotions_ListLicenses_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
</Pull_RuEXPromotions_ListLicenses_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_RuEXPromotions_ListLicenses_RQ | C | Root element | |
Pull_RuEXPromotions_ListLicenses_RQ/Authentication | C, M | Authentication details | |
Pull_RuEXPromotions_ListLicenses_RQ/Authentication/UserName | String(50) | M | Username |
Pull_RuEXPromotions_ListLicenses_RQ/Authentication/Password | String(50) | M | Password |
Response
XML Rsponse
<Pull_RuEXPromotions_ListLicenses_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<UserNames>
<UserName>username@xyz.com</UserName>
<UserName>username1@xyz.com</UserName>
<UserName>username@uvw.com</UserName>
</UserNames>
</Pull_RuEXPromotions_ListLicenses_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_RuEXPromotions_ListLicenses_RS | C | Root element | |
Pull_RuEXPromotions_ListLicenses_RS/Status | String | M | See ListStatuses |
Pull_RuEXPromotions_ListLicenses_RS/Status@ID | Integer | M | See ListStatuses |
Pull_RuEXPromotions_ListLicenses_RS/ResponseID | String(32) | M | Unique response ID |
Pull_RuEXPromotions_ListLicenses_RS/UserNames | C, M | A collection of licensed user’s usernames | |
Pull_RuEXPromotions_ListLicenses_RS/UserNames/UserName | String(50) | M | Licensed user’s username |
Put license
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;
Push_RuEXPromotions_PutLicense_RQ request = new Push_RuEXPromotions_PutLicense_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
UserName = "user"
};
string xmlBody = XmlTools.SerializeObject<Push_RuEXPromotions_PutLicense_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_RuEXPromotions_PutLicense_RS response = XmlTools.DeserializeObject<Push_RuEXPromotions_PutLicense_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method adds a licensed user.
Request
XML Request
<Push_RuEXPromotions_PutLicense_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<UserName>username@xyz.com</UserName>
</Push_RuEXPromotions_PutLicense_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_RuEXPromotions_PutLicense_RQ | C | Root element | |
Push_RuEXPromotions_PutLicense_RQ/Authentication | C, M | Authentication details | |
Push_RuEXPromotions_PutLicense_RQ/Authentication/UserName | String(50) | M | Username |
Push_RuEXPromotions_PutLicense_RQ/Authentication/Password | String(50) | M | Password |
Push_RuEXPromotions_PutLicense_RQ/UserName | String(50) | M | Licensed username |
Response
XML Rsponse
<Push_RuEXPromotions_PutLicense_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_RuEXPromotions_PutLicense_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_RuEXPromotions_PutLicense_RS | C | Root element | |
Push_RuEXPromotions_PutLicense_RS/Status | String | M | See ListStatuses |
Push_RuEXPromotions_PutLicense_RS/Status@ID | Integer | M | See ListStatuses |
Push_RuEXPromotions_PutLicense_RS/ResponseID | String(32) | M | Unique response ID |
Remove license
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;
Push_RuEXPromotions_RemoveLicense_RQ request = new Push_RuEXPromotions_RemoveLicense_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
UserName = "user"
};
string xmlBody = XmlTools.SerializeObject<Push_RuEXPromotions_RemoveLicense_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_RuEXPromotions_RemoveLicense_RS response = XmlTools.DeserializeObject<Push_RuEXPromotions_RemoveLicense_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method removes a licensed user.
Request
XML Request
<Push_RuEXPromotions_RemoveLicense_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<UserName>username@xyz.com</UserName>
</Push_RuEXPromotions_RemoveLicense_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_RuEXPromotions_RemoveLicense_RQ | C | Root element | |
Push_RuEXPromotions_RemoveLicense_RQ/Authentication | C, M | Authentication details | |
Push_RuEXPromotions_RemoveLicense_RQ/Authentication/UserName | String(50) | M | Username |
Push_RuEXPromotions_RemoveLicense_RQ/Authentication/Password | String(50) | M | Password |
Push_RuEXPromotions_RemoveLicense_RQ/UserName | String(50) | M | Licensed username |
Response
XML Rsponse
<Push_RuEXPromotions_RemoveLicense_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_RuEXPromotions_RemoveLicense_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_RuEXPromotions_RemoveLicense_RS | C | Root element | |
Push_RuEXPromotions_RemoveLicense_RS/Status | String | M | See ListStatuses |
Push_RuEXPromotions_RemoveLicense_RS/Status@ID | Integer | M | See ListStatuses |
Push_RuEXPromotions_RemoveLicense_RS/ResponseID | String(32) | M | Unique response ID |
List properties
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;
Pull_RuEXPromotions_ListProperties_RQ request = new Pull_RuEXPromotions_ListProperties_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
UserName = "user"
};
string xmlBody = XmlTools.SerializeObject<Pull_RuEXPromotions_ListProperties_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Pull_RuEXPromotions_ListProperties_RS response = XmlTools.DeserializeObject<Pull_RuEXPromotions_ListProperties_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method lists properties of a licensed user.
Request
XML Request
<Pull_RuEXPromotions_ListProperties_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<UserName>username@xyz.com</UserName>
</Pull_RuEXPromotions_ListProperties_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_RuEXPromotions_ListProperties_RQ | C | Root element | |
Pull_RuEXPromotions_ListProperties_RQ/Authentication | C, M | Authentication details | |
Pull_RuEXPromotions_ListProperties_RQ/Authentication/UserName | String(50) | M | Username |
Pull_RuEXPromotions_ListProperties_RQ/Authentication/Password | String(50) | M | Password |
Pull_RuEXPromotions_ListProperties_RQ/UserName | String(50) | M | Licensed username |
Response
XML Rsponse
<Pull_RuEXPromotions_ListProperties_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<PropertyIDs>
<PropertyID>123</PropertyID>
<PropertyID>1234</PropertyID>
<PropertyID>3456</PropertyID>
</PropertyIDs>
</Pull_RuEXPromotions_ListProperties_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Pull_RuEXPromotions_ListProperties_RS | C | Root element | |
Pull_RuEXPromotions_ListProperties_RS/Status | String | M | See ListStatuses |
Pull_RuEXPromotions_ListProperties_RS/Status@ID | Integer | M | See ListStatuses |
Pull_RuEXPromotions_ListProperties_RS/ResponseID | String(32) | M | Unique response ID |
Pull_RuEXPromotions_ListProperties_RS/PropertyIDs | C, M | A collection of external property IDs of the licensed user | |
Pull_RuEXPromotions_ListProperties_RS/PropertyIDs/PropertyID | Integer | M | External property ID |
Put properties
using WS.XMLLayer;
using WS.XMLLayer.WebMethods;
using WS.XMLLayer.WebMethods.RuExPromotions;
Push_RuEXPromotions_PutProperties_RQ request = new Push_RuEXPromotions_PutProperties_RQ()
{
Authentication = new Authentication()
{
UserName = "[UserName]",
Password = "[Password]"
},
UserName = "user",
PropertyIDs = new List<int>()
{
1,
2
}
};
string xmlBody = XmlTools.SerializeObject<Push_RuEXPromotions_PutProperties_RQ>(request);
string xmlResponse = HttpTools.MakeHttpPostAsync(xmlBody).Result;
try
{
Push_RuEXPromotions_PutProperties_RS response = XmlTools.DeserializeObject<Push_RuEXPromotions_PutProperties_RS>(xmlResponse);
// process response object
}
catch
{
ErrorResponse errorResponse = XmlTools.DeserializeObject<ErrorResponse>(xmlResponse);
// process error response object
}
This method puts properties of a licensed user. Selected properties will be eligible to use the ruEX promotions.
Note that whenever you provide a list of IDs, the new IDs will replace the currently stored ones. If you do not provide any IDs, all properties will be removed from the child account.
Request
XML Request
<Push_RuEXPromotions_PutProperties_RQ>
<Authentication>
<UserName>[UserName]</UserName>
<Password>[Password]</Password>
</Authentication>
<UserName>username@xyz.com</UserName>
<PropertyIDs>
<PropertyID>123</PropertyID>
<PropertyID>1234</PropertyID>
<PropertyID>3456</PropertyID>
</PropertyIDs>
</Push_RuEXPromotions_PutProperties_RQ>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_RuEXPromotions_PutProperties_RQ | C | Root element | |
Push_RuEXPromotions_PutProperties_RQ/Authentication | C, M | Authentication details | |
Push_RuEXPromotions_PutProperties_RQ/Authentication/UserName | String(50) | M | Username |
Push_RuEXPromotions_PutProperties_RQ/Authentication/Password | String(50) | M | Password |
Push_RuEXPromotions_PutProperties_RQ/UserName | String(50) | M | Licensed username |
Push_RuEXPromotions_PutProperties_RQ/PropertyIDs | C, M | A collection of external property IDs of the licensed user | |
Push_RuEXPromotions_PutProperties_RQ/PropertyIDs/PropertyID | Integer | M | External property ID |
Response
XML Rsponse
<Push_RuEXPromotions_PutProperties_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
</Push_RuEXPromotions_PutProperties_RS>
XML Path | Data Type | Type | Description |
---|---|---|---|
Push_RuEXPromotions_PutProperties_RS | C | Root element | |
Push_RuEXPromotions_PutProperties_RS/Status | String | M | See ListStatuses |
Push_RuEXPromotions_PutProperties_RS/Status@ID | Integer | M | See ListStatuses |
Push_RuEXPromotions_PutProperties_RS/ResponseID | String(32) | M | Unique response ID |
Certification
This section describes the integration certification process. Download a Certification Form below, fill it with information and send it over to apisupport@rentalsunited.com. We will review the form and schedule a certification session with you.
If your integration extends your PMS with Channel Management functionality, download the Certification Form here.
If your integration pulls Vacation Rentals product, download the Certification Form here.
If integration of your VR services enchances property manager workflow, download the Certification Form here.
Changelog
2024-11-20
Coming soon! - CVV/CVC handling PCI DSS 4.0 policy
The security and compliance standards we adhere to (PCI DSS 4.0) require us not to store the CVV codes in the Rentals United database after the first authorisation.
While Rentals United does not authorise the credit card data related to reservation, but only acts as an intermediary and passes it to the client, we assume that once credit card data was received by the client, the first authorisation happened and therefore we cannot store the CVV number any longer and in any form.
It means that the CVV codes can be shared with the client only once - regardless of the method (an API method to pull reservation details or the reveal credit card details function in the platform) and will be removed afterwards from the Rentals United system. Note that this process pertains to the CVV codes only (not other credit card details e.g. a credit card number).
CVV details will not be shared anymore via the Reservation Life Notification Mechanism
. Please note that this applies only to the CVV numbers. The Credit Card details will be shared with you as they are and remain encrypted in Rentals United afterwards.
None of the API methods will return any Credit Card information for accounts connected to Stripe.
Affected methods:
Pull_ListReservations_RS
- CVV/CVC will be removed after viewingPull_GetReservationByID_RS
- CVV/CVC will be removed after viewingPull_ListReservationsOwnerUser_RS
- CVV/CVC will not be shownPull_ListReservationsSubUsers_RS
- CVV/CVC will not be shownLNM_PutConfirmedReservation_RQ
- CVV/CVC will not be shown
2024-11-13
Documentation update
Additional warning has been provided for Push_ChangeCurrency_RQ
method:
Currency cannot be changed in a location where properties connected to Sales Channels exist. Before setting a custom currency for that location, all properties must be disconnected from their Sales Channels.
2024-11-07
Added new licence types
Added new licence types for Dubai.
Affected methods:
2024-10-30
Guest Communication thread deletion after 2 years
To ensure the highest level of security and to protect your sensitive information, all the messaging and guest reviews threads older than 2 years will be deleted from Rentals United Guest Communication on November 12th.
Furthermore, we are implementing a policy that involves an automatic deletion of messages and reviews older than 2 years from our platform.
What it means for you:
- Starting November 12th we are initiating the process of auto deleting all Guest Communication threads (messages, reviews, pre-approvals, attachments) that are older than 2 years.
- This action is being taken as part of our ongoing commitment to safeguard your data and prevent unauthorized access to sensitive information.
- We encourage you to download if needed all the messages in your system before this policy takes effect. Here you can find all relevant API methods which allow you to pull all the threads.
2024-10-24
Security improvements - password policy
Password policy has been added to password when creating new user. Password needs to be:
- at least 12 characters long,
- have at least one lowercase letter,
- have at least one uppercase letter,
- have at least one number,
- have at least one special character,
- cannot contain user's email address.
Affected methods:
2024-10-23
Extending Licence Information for Canada
New licence field has been added for Canada:
- LicenceInfo/CanadaLicenceInfo/IsConsent
Affected methods:
2024-10-21
Documentation update: Images limit upon property push
Documentation has been updated to include information regarding the limit on the number of images that can be pushed to Rentals United. The maximum number of images allowed per request is 100.
Affected methods:
2024-10-10
Guest Communication API: New parameter - "SenderType"
We have introduced a new parameter "SenderType". With this parameter, you can easily check who the sender of the message is. The "SenderType" parameter can have the following values:
- "Host"
- "Guest"
- "Cohost" - available only for Airbnb threads
- "Undefined" - present if the sender cannot be identified, eg. the new recipient in an email thread
You can check the current values of the "SenderType" parameter here: GET /api/messaging/messages/sender-types.
Affected methods:
- GET /api/messaging/messages
- GET /api/messaging/messages/{id}
- GET /api/messaging/threads/{id}/messages
- GET /api/reviews/thread/{id}/messages
2024-10-09
Extending Italy License Numbers: CIN
New licence field has been added for Italy:
- LicenceInfo/ItalyLicenceInfo/NationalIdentificationNumber
Affected methods:
2024-10-08
Added new attribute: StatusInChannel
This field is available only in case of Booking.com and Expedia and it indicates the status of the hotel in the channel. Other sales channels will not have this information provided. Even when the hotel status is bookable, some individual units (rooms) may still not be bookable. Please note that the value of this field is dependent on the channel and may vary between channels
Methods affected by this change:
2024-10-07
Documentation update
New licence exemption reasons added for the Netherlands:
- NetherlandsRecreationProperty
- NetherlandsPermitUnderMunicipalRule
- NetherlandsNotMainResidence
- NetherlandsGeneralExemption
- NetherlandsRentingPartialProperty
Affected methods:
2024-09-13
Added new field: Maximum stay for property availability
Maximum stay (MX) is a new restriction that can be applied to property availability. This ensures that a reservation for a given date cannot exceed a particular number of nights. By default, the maximum length-of-stay restriction has a stay-through character, i.e. it indicates that the restriction applies to every day of the stay.
Note that the maximum stay (MX) may not yet be supported by all the sales channels.
Methods affected by this change:
Added new attribute: MSXTypeID (length of stay restriction type)
The MSMXTypeID allows you to define whether minimum and maximum length of stay in each season should be treated as arrival-based or stay-through.
- Stay-through minimum and maximum stay restrictions - the booking must not be shorter than the minimum stay set for each day of the booking AND the booking must not be longer than the maximum stay set for each day of the booking.
- Arrival-based minimum and maximum stay restrictions - the booking must not be shorter than the minimum stay set on the arrival date AND the booking must not be longer than the maximum stay set on the arrival date.
For backward compatibility, the default value for minimum and maximum length of stay restrictions is stay-through.
Note that these new minimum max stay method types may not yet be supported by all the sales channels.
Dictionary:
- MSXTypeID: 1 - stay-through, 2 - arrival-based
- MS - Minimum Stay
- MX - Maximum Stay
Methods affected by this change:
2024-09-02
Added new payment method types
Added new payment method types. Specific credit cards can now be defined in addition to generic credit card payment method.
PaymentMethodID="6" - Visa
PaymentMethodID="7" - Mastercard
PaymentMethodID="8" - American Express
PaymentMethodID="9" - Diners Club International
PaymentMethodID="10" - Discover
PaymentMethodID="11" - JCB
PaymentMethodID="12" - JAL
To list all the payment method types, use Pull_ListPaymentMethods_RQ
].
Note that these new payment method types may not yet be supported by the sales channels. While using any of the new payment methods, we also recommend adding an extra PaymentMethodID="3" to cover the sales channels that have not implemented the new ones yet.
Methods affected by this change:
2024-08-29
Added new field: Total number of floors in the building
Added new field to property details: <NumberOfFloors>
. The field is optional and can be used to include the total number of floors that are in the building.
Methods affected by this change:
2024-08-27
Secondary image types for property images
<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>
It is now possible to assign more than one image type to an image by using a newly created container - Property/ImageSecondaryTypes.
You can see the full list of image types here ImageTypeID
Methods affected by the change:
2024-08-13
Documentation update
Additional clarification was provided for Push_ModifyStay_RQ
method when modifying a reservation with multiple apartments assigned to it.
When modifying a reservation with multiple apartments, it is not possible to change the information for all the apartments at once. The user must make one call per apartment and specify the Push_ModifyStay_RQ/Current/ResApaID element.
2024-07-19
Guest review overall rating for Airbnb available in Guest Communication API
When receiving a guest review, Airbnb shares the property overall score received from the guest. Now you can access this score by using the Get Message methods.
Affected methods:
- GET Messages in threads (full payload available here)
- GET Messages
- GET Messages by service for user
- Get Message by ID
- Get Message by ID by service for user
- Get Reviews by Thread ID
- Get Reviews by Thread ID by service for user
2024-07-15
Vacation Rental Services and Operational Services are now allowed to subscribe to ID="Messaging" type notification for Live Notifications for their connected users.
This notification will be sent every time a new conversation (thread) is created and a new message within this conversation is created.
You can configure new subscription using Push_PutLiveNotificationMechanismSubscriptions_RQ
. Remember that all previous subscriptions will be replaced with this new configuration.
You can list the LNMs that you are currently subscribed to using Pull_ListLiveNotificationMechanismSubscriptions_RQ
.
If you want to check the full list of LNMs that you can subscribe to, use Pull_ListLiveNotificationMechanismChangeTypes_RQ
.
For the general overview of how the LNM mechanism works, see here
.
2024-07-12
Updated information for methods exposing ChannelBreakdown.
In this update we inform the users that ChannelBreakdown will not be present in the responses for reservations with more than one StayInfo container.
Affected methods:
Pull_GetReservationByID_RS
Pull_ListReservations_RS
Pull_ListReservationsOwnerUser_RS
Pull_ListReservationsSubUsers_RS
LNM_PutConfirmedReservation_RQ
2024-07-10
New field added to GuestDetailsInfo - NumberOfPets
We have added new optional field - NumberOfPets - to GuestDetailsInfo.
Affected methods:
Push_PutConfirmedReservationMulti_RQ
Push_PutUnconfirmedReservation_RQ
Push_ModifyStay_RQ
Pull_ListReservations_RQ
Pull_GetOwnReservations_RQ
Pull_GetReservationByID_RQ
Pull_GetLeads_RQ
Pull_ListReservationsOwnerUser_RQ
Pull_ListReservationsSubUsers_RQ
LNM_PutConfirmedReservation_RQ
2024-06-26
New method - change currency
We have created a new method - Push_ChangeCurrency_RQ
.
This method allows customising currency for a location for a particular user account.
2024-06-22
Added new licence types
Added new licence types for US California Inglewood.
Affected methods:
2024-06-17
Documentation Update
We have added new Licence types for Turkey
2024-04-12
Documentation update
We have added possible values for Spanish fields.
- LicenceInfo/SpainLicenceInfo/ProvinceCode
- LicenceInfo/SpainLicenceInfo/CadastralType
- LicenceInfo/SpainLicenceInfo/NumberType
We have updated possible values for following fields:
- LicenceInfo/DenmarkLicenceInfo/TypeOfProperty
- LicenceInfo/USALicenceInfo/PortlandApplicationType
- LicenceInfo/USALicenceInfo/MassachusettsTaxCollectionType
- LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationType
We have added new field for USA licence requirements
- LicenceInfo/USALicenceInfo/PropertyType
Affected methods:
2024-04-10
Added new licence type and exemption reason
Added new licence type TouristicAccommodation. Added new exemption reason CyprusTouristicAccommodation.
Affected methods:
2024-04-09
Vrbo Guest Reviews available via API
Rentals United announces the release of Guest Reviews for Vrbo. With this solution, you can start receiving the reviews and write ratings directly via API.
The new methods for our clients who implemented the Guest Communication API are the following:
- POST /api/reviews/vrbo/rate-guest: A separate method to submit a star rating to Vrbo
- POST /api/reviews/vrbo/review-reply: A separate method to submit a review's reply to Vrbo
Detailed documentation on how Guest Reviews for Vrbo work in Rentals United REST API can be found here.
2024-04-05
Documentation update
We have changed the required format of the data for the LicenceInfo/OwnerInfos/OwnerLicenceInfo/OwnerCitizenship field from integer to string.
Affected methods:
2024-03-22
Licence information updates
New licence fields have been added for Los Angeles.
- LicenceInfo/USALicenceInfo/LAFirstName
- LicenceInfo/USALicenceInfo/LALastName
- LicenceInfo/USALicenceInfo/LAUnitNumber
- LicenceInfo/USALicenceInfo/LAStreetNumber
- LicenceInfo/USALicenceInfo/LAStreetName
- LicenceInfo/USALicenceInfo/LAZipCode
New licence types have been added. New values are available for the LicenceInfo/LicenceType field:
- HomeSharing,
- TransientOccupancyResidentialStructure
Affected methods:
2024-03-19
Licence information updates
New licence field added. Now you can provide LicenceInfo/UKLicenceInfo/EnergyRating.
We have deprecated the LicenceInfo/ScottishLicenceInfo/ScotlandEnergyRating field. We have replaced the /LicenceInfo/ScottishLicenceInfo/ScotlandEnergyRating with the LicenceInfo/UKLicenceInfo/EnergyRating. ScotlandEnergyRating field will be removed in the future. For now, the changes are backward compatible, however it is recommended to start using EnergyRating to stay up-to-date with the integration. Information about removal will be communicated in a separate announcement.
The above changes have been introduced in the following methods:
2024-03-11
Licence information updates
New exemption reasons have been added. New values are available for the LicenceInfo/ExemptionReason field:
- HotelOrMotel
- BedAndBreakfast
New identification type field has been added. A new value is now available for the LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationType container:
- 7: Personal Public Service Number
New licence fields added. Now you can provide the following licence types
- LicenceInfo/HawaiiLicenceInfo/LandParcelIdentificationNumber
- LicenceInfo/HawaiiLicenceInfo/GeneralExciseTaxID
- LicenceInfo/USALicenceInfo/CertificateOfUse
- LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationNumber
We have deprecated the LicenceInfo/OwnerInfos/OwnerLicenceInfo/NonSpanishIdentificationNumber field. We have replaced the LicenceInfo/OwnerInfos/OwnerLicenceInfo/NonSpanishIdentificationNumber with the LicenceInfo/OwnerInfos/OwnerLicenceInfo/IdentificationNumber. NonSpanishIdentificationNumber field will be removed in the future. For now, the changes are backward compatible, however it is recommended to start using IdentificationNumber to stay up-to-date with the integration. Information about removal will be communicated in a separate announcement
The above changes have been introduced to the following methods:
2024-03-07
Added new licence types
Added new licence types Bed and breakfast and Hotel.
Affected methods:
2024-03-05
Added new licence types
Added new licence types for Canada - Principal residence establishment, Youth tourist accommodation establishment and General tourist accommodation establishment.
Affected methods:
2024-02-20
Added two new pieces of information to Push_PutPrices_RQ
method:
- The response success rate may be decreased for requests over 90 seasons.
- In case you use LOS, LOSP or FSP pricing model we recommend sending updates quarter by quarter, i.e. one request should cover one quarter. Dividing updates into quarters will ensure faster API response and more efficient data synchronisation.
2024-02-13
New Method - Mark request as expired
We have created a new method - Push_MarkRequestAsExpired_RQ
.
This method allows the sales channels to expire requests.
2024-01-25
New methods to retrieve and submit reviews in Guest Communication API
We refreshed our Guest Reviews flow for Airbnb and Booking.com, making it more intuitive and transparent as well as added new methods to retrieve and submit reviews and replies. You will find them in a newly added Reviews section of our Guest Communciation API.
The new methods for our clients who implemented the Guest Communication API are the following:
- GET /api/reviews/thread/{reservationId}: A new method to retrieve a review thread ID
- GET /api/reviews/thread/{id}/messages: A new method to retrieve all messages (reviews/replies) in a given review thread
- POST /api/reviews/airbnb/review: A separate method to submit a review for Airbnb
- POST /api/reviews/airbnb/review-reply: A separate method to submit a review's reply to Airbnb
- POST /api/reviews/bcom/review-reply: A separate method to submit a review/reply for Booking.com
We also added new methods to send and receive reviews and replies by the partners (services) on behalf of the users connected to these services. The new methods for these services are the following:
- GET /api/reviews/thread/{reservationId}/by-service-for-user
- GET /api/reviews/thread/{id}/messages/by-service-for-user
- POST /api/reviews/airbnb/review/by-service-for-user
- POST /api/reviews/airbnb/review-reply/by-service-for-user
- POST /api/reviews/bcom/review-reply/by-service-for-user
The above methods are recommended to use for all new clients and services implementing the Guest Review flow. Clients can check the recommended flow here - Use & Manage via API.
If you implemented the Guest Review flow before 2024-01-25, note that you are using an outdated flow, which will be deprecated by 2024-04-30.
2024-01-25
New guest review rating tags for Airbnb available in Guest Communication API - host reviews
Airbnb provides a possibility for the guest and host to select new ratings when reviewing the stay. These new ratings are provided to us by Airbnb.
We extended the support for review rating tags for Airbnb. Now you can also push these additional ratings while providing the host review via the Guest Communication API methods. You can provide the new ratings in the "CategoryRatingsExtended" collection in the guest review message type (you can differentiate it by "Mode":"Review" parameter).
Affected methods:
- GET Messages in threads (full payload available here)
- POST Message in thread
- POST Message in thread by service for user
- GET Messages
- GET Messages by service for user
- Get Message by ID
- Get Message by ID by service for user
Additionally, you can obtain all tags that are in use by using the GET Review category tags method.
2024-01-15
New guest review rating tags for Airbnb available in Guest Communication API
Airbnb provides a possibility for the guest and host to select new ratings when reviewing the stay. These new ratings are provided to us by Airbnb.
Now you can have access to these additional ratings provided by the guest and read them while obtaining the review via the Guest Communication API methods. You can find the new ratings in the "CategoryRatingsExtended" collection in the guest review message type (you can differentiate it by "Mode":"Review" parameter).
Affected methods:
- GET Messages in threads (full payload available here)
- GET Messages
- GET Messages by service for user
- Get Message by ID
- Get Message by ID by service for user
Soon it will be possible to provide these ratings by hosts when reviewing the stay. Stay tuned.
2024-01-11
Documentation update
C# snippets were added to methods missing them.
Invalid response XML paths were updated for CM_Pull_PropertiesStatus_RQ
.
Affected methods:
Push_ConfirmReservation_RQ
Push_RejectRequest_RQ
Pull_ListAllParentUsers_RQ
Push_ArchiveUser_RQ
CM_Pull_PropertiesStatus_RQ
CM_Push_RateMarkup_RQ
CM_Push_UnitActiveStatus_RQ
CM_LNM_OrderMinimumContentQualityCheck_RQ
Push_PutPropertiesURLs_RQ
Pull_GetPropertiesURLs_RQ
Pull_ListPropertyReviews_RQ
Push_PutPropertyReviews_RQ
Pull_RuEXPromotions_ListLicenses_RQ
Push_RuEXPromotions_PutLicense_RQ
Push_RuEXPromotions_RemoveLicense_RQ
Pull_RuEXPromotions_ListProperties_RQ
Push_RuEXPromotions_PutProperties_RQ
2024-01-03
Documentation update
Description of CancellationPolicies element was expanded to better explain how it works.
Changed from "A collection of cancellation policies" to "A collection of cancellation policies. Ranges that are not specified by any cancellation policy are fully refundable".
Example:
<CancellationPolicies>
<CancellationPolicy ID="0" ValidFrom="1" ValidTo="14">50.00</CancellationPolicy>
</CancellationPolicies>
Explanation: Ranges that are not specified by any cancellation policy are fully refundable. It means if the guest cancels out of the specified range (e.g. 15 or 0 days before the arrival), then the reservation price will be fully refunded.
We recommend to specify all the ranges, including “0” days before arrival:
<CancellationPolicies>
<CancellationPolicy ID="0" ValidFrom="0" ValidTo="1">100.00</CancellationPolicy>
<CancellationPolicy ID="0" ValidFrom="2" ValidTo="14">50.00</CancellationPolicy>
</CancellationPolicies>
Explanation: It means if the guest cancels on the arrival day, the cancellation fee is 100%.
Affected methods:
Push_PutProperty_RQ
Push_PutConfirmedReservationMulti_RQ
Push_PutUnconfirmedReservation_RQ
Push_ModifyStay_RQ
Pull_ListSpecProp_RS
Pull_ListReservations_RS
Pull_GetOwnReservations_RS
Pull_GetReservationByID_RS
Pull_ListReservationsOwnerUser_RS
Pull_ListReservationsSubUsers_RS
2023-11-20
Deprecating the Push_PutLead_RQ method
We are deprecating the Push_PutLead_RQ method and removing it from the Rentals United API documentation.
The new partners and clients will no longer be accepted to use it. Those who want to operate on requests should implement the request-to-book flow. For more information on the request-to-book flow, check our documentation:
Reservations, Requests & Leads
in APIReservations, Requests & Leads
in RU DocsReservation Live Notification Mechanism
Existing clients can continue using the Push_PutLead_RQ method as before, however it will now work just like Push_PutUnconfirmedReservation_RQ
At the same time, the Pull_GetLeads_RQ
can be still used to retrieve existing leads, for example Guest Communication threads.
We are also refreshing the definition of a lead.
A lead is an indication of a conversation initiated by the guest in the channel. It is not a booking and it does not block the property's availability. It cannot be acted upon (confirmed or rejected). A lead must not be used interchangeably with a request to book. For more definitions, see here
2023-10-04
Documentation update
Full Stay Pricing FAQ
incorrectly stated that the maximum stay length for FSP was 30. This information was corrected to 35.
2023-10-03
Description for CancellationPolicy element have been clarified.
List of affected descriptions:
Push_PutProperty_RQ/Property/CancellationPolicies/CancellationPolicy
Push_PutConfirmedReservationMulti_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy
Push_PutUnconfirmedReservation_RQ/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy
Push_ModifyStay_RQ/Modify/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy
Pull_ListSpecProp_RS/Property/CancellationPolicies/CancellationPolicy
Pull_ListReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy
Pull_GetOwnReservations_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy
Pull_GetReservationByID_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy
Pull_ListReservationsOwnerUser_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy
Pull_ListReservationsSubUsers_RS/Reservations/Reservation/CancellationPolicyInfo/CancellationPolicies/CancellationPolicy
2023-09-29
New property types
Two new property types have been added - All suite and All-Inclusive resort.
IDs of these types can now be used in <ObjectTypeID> elements.
You can check all available property types with method Pull_ListOTAPropTypes_RQ
2023-09-22
Action required: Last call on CleaningPrice deprecation
The CleaningPrice field deprecation will be postponed. The CleaningPrice field will be ultimately deprecated on October 31, 2023. Follow the step-by-step instructions available here
.
Note that this change is not backward compatible. If you do not take the necessary steps and ignore it, it may result in price discrepancies.
2023-09-12
Booking.com requests
Added information of accepted rejection reasons for Booking.com
2023-09-04
Documentation update
Recommendations on the number and frequency of the API requests were provided in the API documentation. Additionally, we provided a list of errors that can be fixed by retrying to submit the same request. Details can be found in the API limits
section.
2023-08-23
New header - RLNM notifications
We have added a new header ru-rlnm-method
to Reservation Live Notification Mechanism
This header helps differentiate between RLNM methods. For now, the possible values are four RLNM names:
The header will be added to all RLNM notifications.
Documentation update
The documentation was updated with the information that the maximum accepted value in all price fields is 214748.36, regardless of the currency you are using. If you try to put a higher value in any currency, it will not be accepted by Rentals United.
If you experience this, you can:
Change the currency, for example from ZAR to EUR. The process and conditions are described
here
Optimise your pricing
2023-08-16
New method - Resend RLNM Message
We have created a new method - Push_SendRLNMMessage_RQ
.
This method allows the user to resend an RLNM notification to the webhook address endpoint configured for their account.
The notification will be sent to the webhook address endpoint configured for your account in LNM_PutHandlerUrl_RQ
.
2023-07-25
Updates to request-to-book processing
We are introducing important updates to the Rentals United API in order to better support the request-to-book flow.
We are adding a new optional field <Statuses>
for the following methods:
A new reservation status - Request (ReservationStatusID = 4) is now returned in Pull_ListReservationStatuses_RS
.
We are adding a new method Push_ConfirmReservation_RQ
allowing you to confirm requests (unconfirmed reservations).
We are adding a new method Push_RejectRequest_RQ
allowing you to reject requests from sales channels.
The Pull_GetReservationByID_RQ
method will also return confirmable requests (ReservationStatusID = 4).
A new behaviour of the Push_CancelReservation_RQ
method. For requests and leads, Push_CancelReservation_RQ
will work like Push_RejectRequest_RQ
in order to maintain backwards compatibility. However, we recommend that you use:
Push_RejectRequest_RQ
to reject requests and leads,Push_CancelReservation_RQ
to cancel confirmed reservations.
We are adding a new notification type: LNM_PutUnconfirmedReservation_RQ in Reservation Live Notification Mechanism
.
Sales channels may now create booking requests via dedicated Push_PutUnconfirmedReservation_RQ
method. For ease of development, its syntax is very similar to the Push_PutConfirmedReservationMulti_RQ
method.
Hosts will be able to action the requests by accepting or rejecting them. Sales channels may then use the Pull_GetOwnReservations_RQ
method to retrieve reservation modifications.
2023-07-24
New LNMs added for VRS
We have created two new LNM types - ReservationCreated and ReservationModified. Both LNMs have the same structure and data as LNM_PutConfirmedReservation_RQ
.
For the ReservationCreated LNM - the credit card details will be available only if the receiver of this LNM is PCI compliant.
For the ReservationModified LNM - the credit card details will not be yet displayed. This will be available soon.
You can subscribe to the ReservationCreated and ReservationModified LNMs only if you are a VRS. Use the Pull_ListLiveNotificationMechanismChangeTypes_RQ
method to view the list of the LNMs available for you.
You can subscribe to a particular type of LNM using the Push_PutLiveNotificationMechanismSubscriptions_RQ
method.
2023-06-28
Documentation update
Additional information about ChargeProfile and AdditionalFee usage have been added to Push_PutProperty_RQ
and Pull_ListSpecProp_RS
. Use just one collection when creating a property - either ChargeProfile or AdditionalFees. Whenever you use ChargeProfile, our system will automatically calculate AdditionalFees for your property and the other way round.
CleaningPrice important update
We are starting the process of CleaningPrice field deprecation. On 28-06-2023, CleaningPrice was hidden from Push_PutProperty_RQ
and crossed out from Pull_ListSpecProp_RS
. You can still use CleaningPrice during the transition period.
As the next step, CleaningPrice will be completely removed from Rentals United API on 31-10-2023. This means you will not be able to read from or write in this field. This change will not be backward compatible, so make sure to follow the instruction below to avoid synchronisation errors.
Steps for partners creating and updating properties in Rentals United:
a) Use one of the following methods to provide proper cleaning cost information:
- Push_PutProperty_RQ/Property/AdditionalFees.
FeeTaxType 41 <AdditionalFeeTypeInfo ID="41">Cleaning fee</AdditionalFeeTypeInfo>
<Property>
(...)
<CleaningPrice>0</CleaningPrice>
<AdditionalFees>
<AdditionalFee FeeTaxType="41" DiscriminatorID="1" Order="1" Kind="2">
<Value>20</Value>
</AdditionalFee>
(...)
</AdditionalFees>
</Property>
- Push_PutProperty_RQ/Property/ChargeProfiles
<Property>
(...)
<CleaningPrice>0</CleaningPrice>
<ChargeProfiles>
<ChargeProfile ID="0">
<ApplicableAdditionalFee DiscriminatorID="1" Name="Cleaning Fee" Optional="false" Refundable="false" FeeTaxType="41" CollectTime="1">
<Value>25.0000</Value>
<ApplicableTo>
<FeeNames />
<Rent>false</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
(...)
</ChargeProfile>
</ChargeProfiles>
</Property>
b) Remove the CleaningPrice information from your property. Use the Push_PutProperty_RQ
method and set CleaningPrice to 0. This way you will prevent double cleaning fee issues.
c) On October 31, 2023, Push_PutProperty_RQ/Property/CleaningPrice will be fully deprecated and you will receive an error response when using it.
Steps for partners retrieving property details from Rentals United:
a) Use one of the following methods to retrieve cleaning cost information:
- Pull_ListSpecProp_RS/Property/AdditionalFees
FeeTaxType 41 <AdditionalFeeTypeInfo ID="41">Cleaning fee</AdditionalFeeTypeInfo>
<Property>
(...)
<CleaningPrice>0</CleaningPrice>
<AdditionalFees>
<AdditionalFee FeeTaxType="41" DiscriminatorID="1" Order="1" Kind="2">
<Value>20</Value>
</AdditionalFee>
(...)
</AdditionalFees>
</Property>
- Pull_ListSpecProp_RS/Property/ChargeProfiles
<Property>
(...)
<CleaningPrice>0</CleaningPrice>
<ChargeProfiles>
<ChargeProfile ID="0">
<ApplicableAdditionalFee DiscriminatorID="1" Name="Cleaning Fee" Optional="false" Refundable="false" FeeTaxType="41" CollectTime="1">
<Value>25.0000</Value>
<ApplicableTo>
<FeeNames />
<Rent>false</Rent>
</ApplicableTo>
</ApplicableAdditionalFee>
(...)
</ChargeProfile>
</ChargeProfiles>
</Property>
b) The Pull_ListSpecProp_RS/Property/CleaningPrice has been deprecated and should not be used to read the cost of the cleaning. It will remain available for reading only until October 31, 2023.
c) On October 31, 2023, the Pull_ListSpecProp_RS/Property/CleaningPrice will be completely removed from the Rentals United API.
2023-06-23
Include channel price breakdown node in RLNM for channels inserting bookings into Rentals United
The ChannelBreakdown node is available in the confirmed reservation RLNM. As long as the channel shares the detailed reservation price breakdown with us, we will include it in the live notification message triggered immediately after the booking is created.
For now, channels which provide the reservation price breakdown include: Agoda, Airbnb, Booking.com, Expedia, Hostelworld, Homes & Villas by Marriott International, Ostrovok, TripAdvisor and VRBO.
2023-06-01
API-connected partners can now have more visibility over the cancellation policy of the booked stay. The cancellation policy description as well as all applicable cancellation policies are available now for each reservation.
New fields' descriptions with examples have been added to the following methods:
Push_PutConfirmedReservationMulti_RQ
Push_ModifyStay_RQ
Pull_ListReservations_RQ
Pull_GetReservationByID_RQ
Pull_ListReservationsOwnerUser_RQ
Pull_ListReservationsSubUsers_RQ
2023-05-25
Documentation update
Missing paths added in the following methods:
Response example updated in the following method:
2023-05-23
Characters limit used in Description/Headline changed
The number of characters for Description/Headline has been changed to 80. See the affected methods:
2023-05-18
New methods have been added to retrieve all possible values for the company information (NumberOfEmployees, NumberOfProperties, YearsInBusiness).
New method
Pull_ListCompanyDetailsNumberOfEmployeesType_RQ
allowing to retrieve a collection of the NumberOfEmployees with values that are used for the company details information.New method
Pull_ListCompanyDetailsNumberOfPropertiesType_RQ
allowing to retrieve a collection of the NumberOfProperties with values that are used for the company details information.New method
Pull_ListCompanyDetailsYearsInBusinessType_RQ
allowing to retrieve a collection of YearsInBusiness with values that are used for the company details information.
Additional company information available via API
Additional fields have been added to the CompanyInfo container in the method Push_FillCompanyDetails_RQ
. Use these fields to provide more accurate information about your company. New fields are:
- Address
- CountryId
- PostCode
- TimeZone
- Region
- PhoneNumber
- VATNumber
- ManagerIdentificationNumber
- NumberOfEmployees
- YearsInBusiness
- DescribeYourBusiness
A new container LegalRepresentativeInfo has been added to the method Push_FillCompanyDetails_RQ
and includes the following fields:
- FirstName
- LastName
- City
- CountryOfResidenceId
- Address
- PostCode
- Birthday
- Region
- NationalityId
2023-05-16
Booking.com Messaging API
Rentals United released direct messaging integration with Booking.com. Property managers have access to all the guest messages in the Rentals United Guest Communication API without any additional set-up.
For API clients, the method POST /api/messaging/threads/{id}/messages and GET /api/messaging/threads/{id}/messages (as well as some other methods) now includes "CommunicationChannel": "BookingCom". Use this communication channel to send messages to your guests and retrieve messages from your guests via Booking.com. Read more here.
2023-04-06
Licence information for Hungary, Scotland, Greece, USA.
New licence info fields added. New Exemption reasons added. SanFranciscoOver30NightsOnly exemption reason renamed to LongTermBookingsOnly. The following methods were updated:
2023-03-14
Guest Communication supports attachments
Guest Communication upgraded with the possibility to send and receive attachments. Attachments should help property managers to grow the relationship with guests by giving the ability to send guests information needed for their stay like instructions, documents to sign or images of items guests accidentally left behind at the property. Read more about the implementation here and check the updated methods in our Guest Communication API.
2023-03-06
Licence information for Airbnb Occupancy Taxes
New fields added. Now you can provide licence information for Airbnb occupancy taxes. The following methods were updated:
2023-02-17
Documentation update for the UserAccountId field
The descriptions were updated for all methods that use the UserAccountId field.
Affected methods:
2023-02-08
Documentation update for get reservation by ID
Information about ChannelBreakdown in response was updated in the Pull_GetReservationByID_RQ
method.
2022-12-20
Documentation update for fees and taxes
Information about fees and taxes names was updated in the Push_PutProperty_RQ
method.
2022-12-13
"List reservations by Subusers" and "List reservations for owner" methods
Added missing Reservation Breakdown node from List reservations of Owner
and List observations by Subusers
responses
2022-12-08
New method added to change the reservation creator
New method Push_ModifyReservationCreator_RQ
was added to allow to modify the creator of an existing reservation.
2022-12-07
New method to retrieve owner’s citizenship was added
New method Pull_ListCitizenships_RQ
allowing to retrieve collection of citizenships with values that are assigned to them was added.
Licence information for properties located in Spain
New fields added. Now you can provide licence information for properties located in Spain. The following methods were updated:
2022-11-24
ruEX Promotions API
Changed data type from String(50) to Integer for List properties
methods Pull_RuEXPromotions_ListProperties_RS/PropertyIDs/PropertyID and Push_RuEXPromotions_PutProperties_RQ/PropertyIDs/PropertyID
2022-11-23
Documentation update
An example showing how to confirm an exisiting lead has been added to Push_PutConfirmedReservationMulti_RQ
.
2022-11-18
New exemption reason for Sicily added
Pull_ListSpecProp_RS
and Push_PutProperty_RQ
have been updated.
A new ExemptionReason value is now available - SicilyInProgress. It should be chosen for properties in Sicily, when the process of obtaining Codice Identificativo Regionale (licence number) is still in progress.
2022-11-02
ruEX Promotions API
Rentals United introduced a new product - ruEX Promotions API
.
New ruEX Promotions methods are published at ruEX Promotions
. These methods include:
Complete ruEX Promotions documentation can be found at RU Docs. You will find there:
- product overview and key use cases
- high-overview process
- prerequisites
- installation and configuration
- usage manuals
Rentals United accepts guest details from PULL sales channels
Now PULL sales channels can insert information on the guests details (number and age). The following methods were updated to accept this information:
LNM_PutConfirmedReservation_RQ
Push_PutConfirmedReservationMulti_RQ
Push_PutLead_RQ
Push_ModifyStay_RQ
Rentals United accepts reservation price breakdown from PULL sales channels
Now PULL sales channels can insert information on the reservation price breakdown. The following methods were updated to accept this information:
2022-10-26
New LNM added
A new type of LNM, PropertyCreated, has been introduced. The new notification will be sent to all subscribers every time a new property is created. The message will contain the ID of the publisher, the ID of a newly created property and the ID of the owner of the property.
You can check all the LNM types by using Pull_ListLiveNotificationMechanismChangeTypes_RQ
and subscribe to the changes by using Push_PutLiveNotificationMechanismSubscriptions_RQ
.
2022-10-14
New exemption reasons added for Spain
Pull_ListSpecProp_RS
and Push_PutProperty_RQ
have been updated. Now, it is possible to choose a new ExemptionReason - SpainLongTermRentalAttestation.
2022-10-10
Terms & Conditions file can be edited via API
Push_PutProperty_RQ
has been updated. Now, it is possible to change Terms & Conditions of the property.
Pull_ListSpecProp_RS
has been extended with Terms & Conditions.
2022-10-04
ArrivalTime of an existing reservation is editable
Push_ModifyStay_RQ
has been updated. Now, it is possible to change ArrivalTime of an existing reservation.
2022-09-07
New licence information options added for the UK, the USA, Denmark and Canada
Updates to property license info
United Kingdom Licence info in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
USA Licence info in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
Denmark licence info in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
Renamed Canada exemption reasons (CanadaVancouverLicensedHotelOrBb to CanadaHotelOrMotel, CanadaVancouverEventSpace to CanadaEventSpace, CanadaVancouverLocationExempt to CanadaLocationExempt) in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
Property readiness to connect to channels
You can now check if the property you have created is eligible to connect to a sales channel of your choice
Pull_ListLiveNotificationMechanismSubscriptions_RQ
now accepts new change: 'PropertyMCQEligibilityCheck'
New method Pull_ListMCQStatuses_RQ
allowing to retrieve collection of validation error codes with their descriptions.
New Method Pull_ListSalesChannels_RQ
allowing to retrieve collection of sales channels with their ID, username, Name and connection status
New Method CM_LNM_OrderMinimumContentQualityCheck_RQ
allowing to queue Minimum Content Quality check for given property and channel. Requires subscribing to PropertyMCQEligibilityCheck LNM
2022-08-23
New licence information options added for Canada, the Netherlands and the USA
Canada exemption reason (CanadaHotelOrMotel) licence info in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
Netherlands exemption reasons (NetherlandsCampgroung, NetherlandsHotelOrMotel, NetherlandsNonResidentialApartment) licence info in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
USA exemption reasons (USABedAndBreakfast, USAHotelOrMotel) licence info in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
2022-08-08
Guest information and arrival time added to reservation details
Guest details info has been introduced. It's a set of information that specifies how many adults, children and infants are going to arrive for a given reservation and includes information about the age of the children and infants (if provided by the channel).
Also, arrival time has been added. It specifies at what time the guests have arrived.
The following methods have been updated to include GuestDetailsInfo and ArrivalTime:
Pull_GetReservationByID_RQ
Pull_ListReservations_RQ
Pull_GetOwnReservations_RQ
Pull_ListReservationsOwnerUser_RQ
Pull_ListReservationsSubUsers_RQ
Pull_GetLeads_RQ
LNM_PutConfirmedReservation_RQ
2022-07-21
Channel breakdown structure updated
A slight change to ChannelBreakdown has been introduced. Because there can be multiple Rent items specified for each day of the stay, a new container RentInfo was created to house all those items.
The change pertains to the following methods:
2022-07-15
Channel breakdown structure feature
Detailed reservation price breakdown as received from the sales channels is now available in the ChannelBreakdown node.
The following methods have been updated to include ChannelBreakdown:
2022-06-21
Guest information details feature
Extended Push_PutLead_RQ and Push_PutConfirmedReservationMulti_RQ with guest information details. It allows to insert detailed information about number of adults, children and infants. Additionally it allows to specify age of children.
2022-05-11
Channel-specific property descriptions available
Additional fields for creating and retrieving property information were created.
The fields were added to the Property/Descriptions/Description container, these fields are:
- Space
- Access
- Interaction
- Neighborhood
- Notes
- HouseRules
- Headline
- WhyPurchased
- OwnerListingStory
- WiFiName
- AdditionalInfo
- LocationDesc
Changes pertain to the following methods:
2022-03-28
Documentation update
In order to improve integrations with the PMS and SC partners implementing our API, we have prepared an article featuring important update and data synchronization methods as well as suggested frequency with which they should be called. These methods include managing:
- bookings
- properties
- availability
- prices
- discounts
- notification system
For more details, please see here.
2022-03-16
How to create multiple redirects example added
Instructions on how to create multiple redirects for the same property in a single Push_PutPropertiesURLs_RQ
request were updated with a detailed explanation and a relevant example. Additionally, instructions were extended with information on how to update and remove redirects.
Additionally, explanation was provided on how redirects show up in a response when calling the Pull_GetPropertiesURLs_RQ
request and an example was updated.
2022-03-15
Guest Reviews added to Rentals United Developer Portal
With Guest Reviews introduced on 2022-01-26, you can start writing and receiving the reviews directly via API and in the Rentals United platform as well as receive email notifications about them.
Now you can find detailed descriptions of endpoints as well as usage examples directly in Rentals United Developer Portal. Please, click here to read more. Additionally, if you want to learn more about the methods, check out Rentals United REST API.
2022-03-09
New licence information options added for the USA
San Francisco exemption reason (SanFranciscoOver30NightsOnly) licence info in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
2022-03-07
Airbnb pre-approvals via API
Rentals United integrated an Airbnb-exclusive pre-approval feature, which serves the purpose of direct inviting your potential guests to book your property. You can find it especially useful if you want to increase the number of bookings and boost the guest relations.
For the feature documentation, please see: * Rentals United Documentation Portal * Airbnb Feature Overview
The methods to be implemented in order to operate on pre-approvals are described in Rentals United REST API.
2022-02-24
CreateDate added
A new element CreatedDate has been added to several request responses:
Pull_ListReservations_RS
Pull_GetOwnReservations_RS
Pull_ListReservationsOwnerUser_RS
Pull_ListReservationsSubUsers_RS
Pull_GetReservationByID_RS
LNM_PutConfirmedReservation_RS
2022-01-26
Airbnb Guest Reviews available via API
Rentals United announces the release of Guest Reviews for Airbnb. With this solution, you can start writing and receiving the reviews directly via API and in the Rentals United platform as well as receive email notifications about them. Detailed documentation on how Guest Reviews for Airbnb work in Rentals United REST API can be found here.
2022-01-24
New licence information options added for Hawaii
Hawaii licence info in Push_PutProperty_RQ
and Pull_ListSpecProp_RS
calls.
2022-01-19
Property status IsActive and IsArchived made optional
Push_SetPropertiesStatus_RQ
- the elements IsActive and IsArchived were made optional. This means that, when the user tries to change one of these elements, the other one will be kept in its current state.
2022-01-17
SecureAuthentication errors fixed
Fixed errors stating that elements of container 'SecureAuthentication' are mandatory. Changes pertain to:
Push_PutConfirmedReservationMulti_RQ
Pull_ListReservations_RS
Pull_GetReservationByID_RS
Pull_ListReservationsOwnerUser_RS
Pull_ListReservationsSubUsers_RQ
LNM_PutConfirmedReservation_RQ
2022-01-11
Amenities object name error fixed
Fixed error stating that for calls Push_PutProperty_RQ
and Pull_ListSpecProp_RS
container 'Amenities' was housing elements with name 'AmenityID' instead of 'Amenity'.
2021-11-17
Method Pull_GetPropertyAvbPrice_RQ
now returns additional information, reservation breakdown was added alongside PropertyPrice element.
2021-11-10
Fee/tax type information returned in the breakdown
With this update Rentals United starts to include the fee/tax type information for all line items defined for a property. This means that in the reservation price breakdown you will find information not only on the fee/tax name and value, but also on the ID of the given fee/tax. Please, see Pull_ListReservations_RQ
for an exemplary breakdown.
Note that the following methods have been updated:
LNM_PutConfirmedReservation_RQ
Pull_ListReservations_RQ
Pull_GetReservationByID_RQ
Pull_GetPropertyAvbPrice_RQ
2021-11-09
Added
Method Pull_GetPropertyAvbPrice_RQ
now returns additional information, reservation breakdown was added to every PropertyPrice element.
On 2021-11-12 reservation breakdown was removed. Pull_GetPropertyAvbPrice_RQ
was reverted to its previous structure
2021-10-27
Charge Profile
Rentals United introduces a new way to set up charges and apply them freely to other line items (for example rent or other charges). With the use of Charge Profile, Rentals United allows for setting up additional charges in a variety of ways, which makes it possible to create advanced, multi-layered business scenarios. In this approach, taxes and fees can be applied freely. With the Charge Profile, following methods were updated :
Additionally, you may find it useful to see the exemplary fee/tax calculation at Charge profile example
2021-10-20
Multiple currencies per location
<Pull_ListCurrenciesWithCities_RS>
<Status ID="0">Success</Status>
<ResponseID>0123456789ABCDEF0123456789ABCDEF</ResponseID>
<Currencies>
<Currency CurrencyCode="RUC">
<Locations>
<LocationID>8694</LocationID>
<LocationID>8718</LocationID>
</Locations>
</Currency>
</Currencies>
</Pull_ListCurrenciesWithCities_RS>
Starting at the end of October, we will introduce support for multiple currencies per location. This is a development aimed at improving price consistency between the PMS, Rentals United and the Sales Channels. Currently, the currency a property has in Rentals United is a global setting set by us for all our clients. Moving forward, we will allow a single location to have properties in multiple currencies, but one Rentals United user will only have one currency per location.
Today, you use Pull_ListCurrenciesWithCities_RQ
and Pull_GetLocationsListByName_RQ
to establish the currency set in Rentals United for a particular location.
Starting the week of October 18th, 2021 sales channels, revenue management services (RMS) and other vacation rental services may notice these methods responding with currencyCode=RUC for some locations. Check example response on the right.
Retrieving information about a property
<Property Currency="EUR">
When you receive currencyCode=RUC for a location, simply retrieve the currency code for a particular property by checking the Currency field in response to the Pull_ListSpecProp_RQ
.
Actions required:
Review your current Rentals United integration and
- In case you already retrieve property currency via the
Pull_ListSpecProp_RQ
call, no further action is required. - In case you retrieve the property currency
Pull_ListCurrenciesWithCities_RQ
andPull_GetLocationsListByName_RQ
, please update your integration to avoid pricing issues.
2021-10-19
Added
Dynamic currency-to-city mapping has been introduced along with internal/artificial Rentals United Currency (RUC). The dynamic currency-to-city mapping allows the clients to operate on a currency of their choice and no longer binds them to the currency of the city. Newly joining clients may choose any currency that will be applied for all your properties in the same city.
This solution changed the behaviour of a few methods and it is possible now to see the RUC value assigned for location or city currency:
You can use Pull_ListSpecProp_RQ
method to check the currency for the city your apartments are in. If you do not use custom settings, the default currency for this city will be returned.
The currency will be displayed in Pull_ListSpecProp_RS/Property element as an attribute, eg.
2021-10-13
Added
Response of Pull_GetLeads_RQ
now contains a new element - Price. It is calculated based on number of days, number of guests and includes all applying fees and taxes.
It does not include ChannelCommission.
2021-08-30
Changed
Partners creating and updating properties in Rentals United:
We are deprecating the Push_PutProperty_RQ/Property/CleaningPrice element as of 2021-08-30. We recommend that you use Push_PutProperty_RQ/Property/AdditionalFees collection to communicate the cost of cleaning. To ensure backwards compatibility during the transition period, we will not return error when your Push_PutProperty_RQ call includes the CleaningPrice node.
When switching to AdditionalFees collection, we highly recommend to add Push_PutProperty_RQ/Property/CleaningPrice element with value equal to 0 to the first request. This way you will delete older cost of cleaning and prevent doubled cleaning fee issue.
Partners retrieving property details from Rentals United:
The CleaningPrice node in the Pull_ListSpecProp_RS call has been changed to Optional.
2021-08-19
Added
Documentation of Pull_GetPropertyAvbPrice_RQ
was missing few additional options available.
Parameters added to the method's documentation:
- Pull_GetPropertyAvbPrice_RQ/Currency
- Pull_GetPropertyAvbPrice_RQ/QuotePMS
- Pull_GetPropertyAvbPrice_RQ/AllowLongstays
2021-08-10
Added
Some channels had issues when modifying existing reservations, in some instances they wanted the reservation price not to be recalculated upon modification. To Push_ModifyStay_RQ a new parameter 'UseCurrentPrice' was added. When sending data with this parameter set to True, the reservation price will remain untouched.
Methods affected by this change:
Push_ModifyStay_RQ
- can pass a new parameter 'UseCurrentPrice'
2021-08-05
Added
In some instances, when showing the customer information associated with given reservation, the information about their language was not shown. Now, LanguageID will be shown always along the rest of customer's information when it's available.
API responses affected by this change:
Pull_ListReservations_RS
Pull_GetOwnReservations_RS
Pull_GetReservationByID_RS
Pull_GetLeads_RS
Pull_ListReservationsOwnerUser_RS
Pull_ListReservationsSubUsers_RS
LNMs affected by this change:
2021-08-04
Added
It is now possible to retrieve the commission amount charged by the sales channel via the following methods:
LNM_PutConfirmedReservation_RQ
Pull_ListReservations_RQ
Pull_GetReservationByID_RQ
Pull_ListReservationsSubUsers_RQ
Pull_ListReservationsOwnerUser_RQ
It is now possible to enter the commission charged by the channel when creating the reservation using Push_PutConfirmedReservationMulti_RQ
.
It is also possible to modify the channel commission amount using Push_ModifyStay_RQ
.
The channel commission amount does not take part in any price breakdown calculation and is presented as supplementary reservation information.
Currently, channel commission is available for bookings made on August 4, 2021 and later for the following channels:
- Airbnb
- Booking.com
- TripAdvisor
- Hostelworld
2021-07-01
Added
For some channels creating a new booking was taking too long. With that in mind, a new QuoteMode was devised. Using it ignores PMS availability and pricing and Rentals United pricing, only Rentals United availabilitiy is checked.
Methods affected by this change:
Push_PutConfirmedReservationMulti_RQ
- can pass 4 as a QuoteMode parameterPush_ModifyStay_RQ
- can pass 4 as a QuoteMode parameterPull_QuoteModes_RQ
- returns new QuoteMode in addition to the 4 already existing previously
2021-04-12
Changed
Rentals United becomes an ultimate source of truth regarding property's price and availability. Currently, the default quote and booking process does not include a validation call to a PMS in case a property is connected to one.
From now on you should not include:
- QuoteModeId parameter in your
Push_PutConfirmedReservationMulti_RQ
- QuotePMS parameter in
Pull_GetPropertyAvbPrice_RQ
2021-04-09
Added
New methods Push_PutPropertiesURLs_RQ
and Pull_GetPropertiesURLs_RQ
allowing you to redirect traffic from listing sites to your Book Direct website. Currently the main use case for this tool will be driving traffic from Google Vacation Rentals Search to your website.
2021-03-23
Added
New method Push_ArchiveUser_RQ
allowing PMS systems to close account of a particular property manager. Consequences of closing an account via API are the following:
- this user losing access to RU dashboard
- removal of all connections to Sales Channels
- all properties archivization
2021-03-10
Added
Reservation Price Breakdown available in Reservation via:
Reservation Price Breakdown makes it easy to understand how each element of the the total price is calculated. It can be used as a data source for revenue reporting or it can be used to review if fees and taxes are properly setup in property. The breakdown presented is based on current fee&tax setup for a given property, that means if you change fee&tax setup after reservation is confirmed then the Reservation Price Breakdown will change.
2021-03-08
Added
Property quote - Pull_GetPropertyAvbPrice_RS
has a new parameter GetChannelPrice. It allows property manager to see what price will be presented to the guest on booking attempt in specific channel. Price presented includes markup configured for this specific property and sales channel.
2021-02-16
Changed
- Disctinctions between Taxes and Fees added in
Pull_GetPropertyAvbPrice_RS
. - AdditionalFees atribute deprecated in
Pull_GetPropertyAvbPrice_RS
, as it contains a sum of Taxes and Fees attributes.
2021-01-28
Added
New method in Channel Management API for resuming (activate) or stopping (deactivate) listing of a single property in a single Sales Channel.
2020-12-23
Added
Added SecureAuthentication node responsible for enabling 3DS v2 authentication process. From now on Rentals United will be able to receive 3DS v2 authentication token and pass it along to API integrated Property Managers or PMS systems. Details on required data payload are described in below API methods.
For reading methods:
Pull_GetReservationByID_RS
Pull_ListReservationsOwnerUser_RS
Pull_ListReservationsSubUsers_RQ
LNM_PutConfirmedReservation_RQ
Pull_ListReservations_RS
For insert method:
2020-12-15
Initial release of Channel Management API. From this point Rentals United will let you manage your connections to OTAs via API. Full guide is available here
Added
- New method for retrieving properties connected to OTA
CM_Pull_PropertiesStatus_RQ
- New method for updating markup
CM_Push_RateMarkup_RQ
.
2020-12-14
Changed
- Description of CollectTime in
Push_PutProperty_RQ
2020-12-02
Added
New method Push_FillCompanyDetails_RQ
that allows to provide the vital company information via API. Useful for creation of the Rentals United company profile via API, e.g. PMS partners. Information provided will be used to connect properties to sales channels, e.g. for contracting and contacting purposes.
Added
- A new method for retrieving properties connected to OTA
CM_Pull_PropertiesStatus_RQ
. - A new method for updating mark-up
CM_Push_RateMarkup_RQ
.
2020-11-27
Changed
- Up to now only reservations from Sales Channels and Rentals United Book Direct triggered
LNM_PutConfirmedReservation_RQ
webhook. From now on it will be triggered for every action made to the reservation both via API and in Rentals United UI
2020-08-18
Changed
Push_PutAvbUnits_RQ
accepts availability up to 3 years aheadPush_PutPrices_RQ
accepts stays no longer than 35 nights for LOS and FSP pricing and also any pricing can be supplied up to 3 years aheadPush_PutLastMinuteDiscounts_RQ
accepts discounts up to 180 days before reservation is registered for dates up to 3 years aheadPush_PutLongStayDiscounts_RQ
accepts discounts for stays up to 180 days long for dates up to 3 years ahead
2020-08-12
Changed
- PreparationTimeBeforeArrival in
Push_PutProperty_RQ
was marked as deprecated
Added
- Added Timezone field to
Pull_ListLocations_RS
- Added Timezone field to
Pull_GetLocationDetails_RS
- Added Timezone field to
Pull_GetLocationsListByName_RS
- Added Timezone field to
Pull_GetLocationByCoordinates_RS
- Added PreparationTimeBeforeArrivalInHours in
Push_PutProperty_RQ
andPull_ListSpecProp_RS
2020-08-05
Added
- New section dedicated to Vacation Rental Services was added to make their integration experience smoother
- Added
Pull_ListAllParentUsers_RQ
2020-05-22
Thanks to many requests regarding problems when pulling properties by OwnerId. We expanded scope that Pull_ListOwnerProp_RQ
works.
Changed
- Method
Pull_ListOwnerProp_RQ
has a new parameter Username allowing to pull all underlying owners' properties with one call.
2020-05-15
When a client wants to place an apartment, he needs to choose it's location. For that, he would use the Pull_GetLocationByName_RQ
method. Unfortunately this method returns only a single result, which in case of multiple locations with the same name could prove not very useful.
A new method Pull_GetLocationsListByName_RQ
was developed to return all locations with the same name within a specified(optionally) country.
Added
- Added new method:
Pull_GetLocationsListByName_RQ
Changed
- Method
Pull_GetLocationByName_RQ
, was marked as deprecated
2020-04-06
Added
- Amenities list extended with new ones, those with ID over 957 are new. Please see
Pull_ListAmenities_RQ
2020-04-01
Added
- Image Captions
- New Image Types
Changed
- Update
Push_PutProperty_RQ
request with new ImageCaptions field - Update
Pull_ListSpecProp_RS
response with new ImageCaptions field - Update
Pull_ListImageTypes_RQ
response with new ImageTypes
2020-03-10
With surfacing FSP to API, the documentation was updated mostly with those changes.
Added
- Add changelog
- Add
FSP calculation logic
section
Changed
- Update
List property prices
request with new PricingModelMode field - Update
List property prices
response with Full Stay Pricing response - Update
Put prices
with Full Stay Pricing request - Delete a typo in description of
Upload available units'
request (Push_PutAvbUnits_RQ/Authentication/Password:PPassword -> Password
)
Fixed
- No more randoming sections on page refresh on Firefox
2019-12-31
Launch of developer portal. Previous version of documentation in PDF can be found here. Please be aware that PDF documentation is deprecated and not kept up to date.