0% found this document useful (0 votes)
39 views

MVL Ota Api - v2

This document provides a summary of the Marketing Villas Ltd. (MVL) Partners API, which allows online travel agents (OTAs) to integrate with MVL's system to retrieve villa data and make reservations. The API uses REST over HTTP and can return responses in XML or JSON. It includes methods for security, retrieving villa lists, rates, availability, and making bookings.

Uploaded by

bowok tampan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

MVL Ota Api - v2

This document provides a summary of the Marketing Villas Ltd. (MVL) Partners API, which allows online travel agents (OTAs) to integrate with MVL's system to retrieve villa data and make reservations. The API uses REST over HTTP and can return responses in XML or JSON. It includes methods for security, retrieving villa lists, rates, availability, and making bookings.

Uploaded by

bowok tampan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Marketing Villas Ltd.

MVL Partners API


Online Services for Partners

Version 2.02
September 16, 2019
Table of Contents
INTRODUCTION ................................................................................................................................................................... 2
1.0 Overview ............................................................................................................................................................. 2
2.0 Communication Protocol .................................................................................................................................... 2
3.0 Integration Requirement .................................................................................................................................... 2
WEB METHODS ................................................................................................................................................................... 3
Common Response ......................................................................................................................................................... 3
1.0 Security................................................................................................................................................................ 4
1.1 GetTimeToken ................................................................................................................................................. 4
1.2 GetMD5Hash ................................................................................................................................................... 5
2.0 Ota ....................................................................................................................................................................... 6
2.1 GetVillaList ...................................................................................................................................................... 6
2.2 GetVillaInfo ..................................................................................................................................................... 8
2.3 GetRates ........................................................................................................................................................ 18
2.4. GetComputedRates ....................................................................................................................................... 23
2.5 GetAvailability ............................................................................................................................................... 29
2.6 InsertBooking ................................................................................................................................................ 31
APPENDIX .......................................................................................................................................................................... 33
JSON Params ................................................................................................................................................................. 33
1.0 Common Parameters .................................................................................................................................... 33
2.0 GetAvailability Parameters ........................................................................................................................... 33
3.0 InsertBooking Parameters............................................................................................................................. 33
VERSION HISTORY ............................................................................................................................................................. 34
Version 2.0 .................................................................................................................................................................... 34
Version 2.01 .................................................................................................................................................................. 34
Version 2.02 .................................................................................................................................................................. 34

Marketing Villas Ltd. | INTRODUCTION 1


INTRODUCTION

1.0 Overview

This document provides the Online Travel Agent (OTA) partners of Marketing Villas Ltd. (MVL) the ability to pull data of
villas marketed by MVL using the MVL Partners API. Depending on the deal between the OTA and MVL, the agent can
also send reservation request via the API.

2.0 Communication Protocol

This web service utilizes the Representational State Transfer (REST) architecture over HTTP protocol wherein the web
methods can return response in either XML (default) or JSON format depending on the requested “Accept” header
value. GET and POST are the only supported HTTP operations.

3.0 Integration Requirement

A good working knowledge on the use of the REST architecture is needed to have a successful integration with the MVL
Partners API.

An agent will be given a userid, password, and travelagent id that they will use to generate the token to be submitted to
a web method, if required.

Marketing Villas Ltd. | INTRODUCTION 2


WEB METHODS

All the web methods in this document accept the following request header parameter:

Name Value Remarks


Accept application/xml, text/xml Default. This returns an XML response type.
application/json, text/json This returns a JSON response type.

Common Response
The web methods also have common response format as follows:

XML
Return value definitions:
Path Multiple Remarks
ApiResponse/@Status N Value can either be “Ok” or “Error”.
ApiResponse/Errors/Error Y This node will be returned if @Status = “Error”.
../../Error/@Code N
../../Error/@Status N
../../Error/@ShortText N

Sample:
<ApiResponse Status="Ok">

</ApiResponse>
-----------------------------------------------------------------------------------------------------------------------
<ApiResponse Status="Error">
<Errors>
<Error Code="500" Status="sample string 2" ShortText="sample string 3" />
<Error Code="500.1" Status="sample string 2" ShortText="sample string 3" />
</Errors>

</ApiResponse>

JSON
Return value definitions:
Field Array Remarks
Status N See XML Remarks
Errors[] Y This will not be null if Status = “Error”.
Errors[i].Code N
Errors[i].Status N
Errors[i].ShortText N

Sample:
{
"Errors": null,
"Status": "Ok"
}
-----------------------------------------------------------------------------------------------------------------------
{
"Errors": [
{
"Code": "500",
"Status": "sample string 2",
"ShortText": "sample string 3"
},
{
"Code": "500.1",
"Status": "sample string 2",
"ShortText": "sample string 3"
}
],
"Status": "Error"
}

Marketing Villas Ltd. | WEB METHODS 3


1.0 Security
This group contains methods that generate tokens to authenticate a web method call.

The token must be constructed by doing the following steps:

a. Construct the original form (un-hashed) of the token in the format userid|password|time token.

Example: uid|pwd|7e829135b93c61cc54abaeece9de085b.

The userid should always be in lowercase. The time token can be retrieved by calling the
GetTimeToken method.
b. Get the MD5 hashed key of the constructed original form of the token by passing it to the
GetMD5Hash method. The generated hash key will serve as the token value that is passed to
the api method that requires it.

1.1 GetTimeToken
Retrieve an MD5 hashed timestamp.

POST GET Security/GetTimeToken

Request Information

BODY/URI PARAMETERS
None.

Response Information

XML
Return value definitions:

Path Multiple Remarks


ApiResponse/Value N Contains the MD5 hash key of the current
timestamp.

Sample:

<ApiResponse Status="Ok">
<Value>d5588b0143d8305a7dba0a6fa69d7248</Value>
</ApiResponse>

JSON
Return value definitions:

Field Array Remarks


Value N See XML Remarks

Sample:

{
"Value": "d5588b0143d8305a7dba0a6fa69d7248",
"Status": "Ok"
}

Marketing Villas Ltd. | WEB METHODS 4


1.2 GetMD5Hash
Get the MD5 Hash key of a string.

POST GET Security/GetMD5Hash

Request Information

BODY/URI PARAMETERS
Parameter Type Remarks
p_ToHash String Required.

Response Information

XML
Return value definitions:

Path Multiple Remarks


ApiResponse/Value N Contains the hashed key of the passed string.

Sample:

<ApiResponse Status="Ok">
<Value>d5588b0143d8305a7dba0a6fa69d7248</Value>
</ApiResponse>

JSON
Return value definitions:

Field Array Remarks


Value N See XML Remarks

Sample:

{
"Value": "d5588b0143d8305a7dba0a6fa69d7248",
"Status": "Ok"
}

Marketing Villas Ltd. | WEB METHODS 5


2.0 Ota
This group contains the web methods that travel agents can use to retrieve villa data or pass booking information to
MVL.

2.1 GetVillaList
Get a list of all the villas under MVL.

POST GET Ota/GetVillaList

Request Information

BODY/URI PARAMETERS
Parameter Type Remarks Example
p_Token String Required. Refer to Security
resource guide in generating the
token.
p_UserID String Required.
p_Params String Optional. An empty JSON string. {}

Response Information

XML
Return value definitions:

Path Multiple Remarks


ApiResponse/Villas/Villa Y A parent node. Represent a villa record.
../../../VillaId N The MVL unique villa identifier. This is also referred to as
PropertyID on web methods that requires it.
../../../VillaName N
../../../Country N A parent node. Contains the villa country details.
../../../../CountryId N The ISO Alpha-2 country code of the villa.
../../../../CountryName N
../../../../Location N A parent node. Contains the villa location details within a
country.
../../../../../LocationId N The MVL defined location identifier.
../../../../../LocationName N
../../../../../SubLocation N A parent node. Contains the villa sub-location details
within a location.
../../../../../../SubLocationId N The MVL defined sub-location identifier.
../../../../../../SubLocationName N

Sample:
<ApiResponse Status="Ok">
<Villas>
<Villa>
<VillaId>P0001</VillaId>
<VillaName>Elite Villa 1</VillaName>
<Country>
<CountryId>ID</CountryId>
<CountryName>Indonesia</CountryName>
<Location>
<LocationId>Bali</LocationId>
<LocationName>Bali</LocationName>
<SubLocation>
<SubLocationId>Seminyak</SubLocationId>
<SubLocationName>Seminyak</SubLocationName>
</SubLocation>
</Location>
</Country>
</Villa>
<Villa>
<VillaId>P0002</VillaId>
<VillaName>Luxury Villa TH</VillaName>
<Country>
Marketing Villas Ltd. | WEB METHODS 6
<CountryId>TH</CountryId>
<CountryName>Thailand</CountryName>
<Location>
<LocationId>Phuket</LocationId>
<LocationName>Phuket</LocationName>
<SubLocation>
<SubLocationId>AoPo</SubLocationId>
<SubLocationName>Ao Po</SubLocationName>
</SubLocation>
</Location>
</Country>
</Villa>
</Villas>
</ApiResponse>

JSON
Return value definitions:

Field Array Remarks


Villas[i] Y See XML Remarks
Villas[i].VillaId N See XML Remarks
Villas[i].VillaName N
Villas[i].Country.CountryId N See XML Remarks
Villas[i].Country.CountryName N
Villas[i].Country.Location.LocationId N See XML Remarks
Villas[i].Country.Location.LocationName N
Villas[i].Country.Location.SubLocation.SubLocationId N See XML Remarks
Villas[i].Country.Location.SubLocation.SubLocationName N

Sample:
{
"Status": "Ok",
"Villas": [
{
"VillaId": "P0001",
"VillaName": "Elite Villa 1",
"Country": {
"CountryId": "ID",
"CountryName": "Indonesia",
"Location": {
"LocationId": "Bali",
"LocationName": "Bali",
"SubLocation": {
"SubLocationId": "Seminyak",
"SubLocationName": "Seminyak"
}
}
}
},
{
"VillaId": "P0002",
"VillaName": "Luxury Villa TH",
"Country": {
"CountryId": "TH",
"CountryName": "Thailand",
"Location": {
"LocationId": "Phuket",
"LocationName": "Phuket",
"SubLocation": {
"SubLocationId": "AoPo",
"SubLocationName": "Ao Po"
}
}
}
}
]
}

Marketing Villas Ltd. | WEB METHODS 7


2.2 GetVillaInfo
Get the general villa information. Rates and availability are on a separate method

POST GET Ota/GetVillaInfo

Request Information

BODY/URI PARAMETERS
Parameter Type Remarks Example
p_Token String Required. Refer to Security
resource guide in generating the
token.
p_UserID String Required.
p_Params String Required. A JSON string format {"PropertyID":"P0001"}
parameter. Refer to Apendix 1.0
for the accepted JSON keys.

Response Information

XML
Return value definitions:

Path Multiple Remarks


ApiResponse/Villa/Details N A parent node. Contains the bulk of the villa
general information.
../../../VillaId N The MVL unique villa identifier.
../../../VillaName N
../../../Country N A parent node. Contains the villa country
details.
../../../../CountryId N The ISO Alpha-2 country code of the villa.
../../../../CountryName N
../../../../Location N A parent node. Contains the villa location
details within a country.
../../../../../LocationId N The MVL defined location identifier.
../../../../../LocationName N
../../../../../SubLocation N A parent node. Contains the villa sub-location
details within a location.
../../../../../../SubLocationId N The MVL defined sub-location identifier.
../../../../../../SubLocationName N
../../../Coordinates N A parent node. Contains the villa map
coordinates in decimal notation.
../../../../Latitude N
../../../../Longitude N
../../../Occupancy N A parent node. Contains bedroom
configurations and capacity.
../../../../MinSleep N

../../../../MaxSleep N
../../../../Adults N A parent node.
../../../../../MinAdults N
../../../../../MaxAdults N
../../../../Children N A parent node.
../../../../../MinChildren N
../../../../../MaxChildren N
../../../../Bedrooms N A parent node.
../../../../../BedroomCount N

Marketing Villas Ltd. | WEB METHODS 8


../../../../../Details N A parent node. Contains the bedroom layouts
and configurations.
../../../../../../Layouts/Layout Y A parent node.
../../../../../../../Layout/Heading N Layout title.
../../../../../../../Layout/Description N Layout short description.
../../../../../../Configurations/Configuration Y A parent node.
../../../../../../../Configuration/Heading N Bedroom configuration title.
../../../../../../../Configuration/BedType N This is based on the size of the bed.
../../../VillaSite N The link to the official villa website.
../../../BaseUrl N Reserved.
../../../RateSnippet N Contains the range of rates offered by the villa.
../../../../MinRate N
../../../../MaxRate N
../../../Amenities/Amenity Y List of villa amenities.
../../../../Amenity/AmenityId N MVL defined amenity unique identifier.
../../../../Amenity/AmenityLabel N Display text of the amenity.
../../../Staffs/Staff Y List of villa staff types.
../../../../Staff/StaffId N MVL defined staff type unique identifier.
../../../../Staff/StaffLabel N Display text of the staff type.
../../../NearbyPlaces/Place Y List of attractions or place of interest that are
near the villa.
../../../../Place/PlaceName N
../../../../Place/Distance N Distance to the villa.
ApiResponse/Villa/WriteUp N A parent node. Contains additional
information about the villa and its
surroundings.
../../../About N Describes the villa.
../../../Locale N Describes the villa local area.
../../../ToDo N Describes the offerings of a villa.
../../../QuickFacts/Fact Y List of short facts about the villa.
../../../../Fact/Heading N
../../../../Fact/Description N
../../../Layouts/Layout Y List of villa layouts
../../../../Layout/Heading N
../../../../Layout/Description N
ApiResponse/Villa/Media N A parent node. Contains the villa images.
../../../Gallery N A parent node.
../../../../Standard N A parent node. Contains villa images that can
be used for brochures and non-mobile web
pages.
../../../../../Image Y A parent node. Contains the standard image
details.
../../../../../../Hires N A parent node. Contains the high-resolution
image details.
../../../../../../.. /Url N
../../../../../../.. /Caption N
../../../../../../Lowres N A parent node. Contains the low-resolution
image details. Reserved.
../../../../../../.. /Url N
../../../../../../.. /Caption N
../../../../Mobile N A parent node. Reserved.
../../../FloorPlan N A parent node. Contains floor plan information,
if available.
../../../../ImageUrl N
../../../../PropertySize N

Marketing Villas Ltd. | WEB METHODS 9


../../../../PoolSize N

Sample:
<ApiResponse Status="Ok">
<Villa>
<Details>
<VillaId>P0001</VillaId>
<VillaName>Villa Elite Seminyak</VillaName>
<Country>
<CountryId>ID</CountryId>
<CountryName>Indonesia</CountryName>
<CountryBaseUrl />
<Location>
<LocationId>Bali</LocationId>
<LocationName>Bali</LocationName>
<LocationBaseUrl />
<SubLocation>
<SubLocationId>Seminyak</SubLocationId>
<SubLocationName>Seminyak</SubLocationName>
<SubLocationBaseUrl />
</SubLocation>
</Location>
</Country>
<Coordinates>
<Latitude>-8.68283260</Latitude>
<Longitude>115.15555550</Longitude>
</Coordinates>
<Occupancy>
<MinSleep>8</MinSleep>
<MaxSleep>11</MaxSleep>
<Adults>
<MinAdults>8</MinAdults>
<MaxAdults>11</MaxAdults>
</Adults>
<Children>
<MinChildren>0</MinChildren>
<MaxChildren>0</MaxChildren>
</Children>
<Bedrooms>
<BedroomCount>4</BedroomCount>
<Details>
<Layouts>
<Layout>
<Heading>Guest Bedroom Top Level</Heading>
<Description>&lt;ul&gt;&lt;li&gt;Two identically
laid out king size bedrooms with sliding windows that overlook pool and
garden&lt;/li&gt;&lt;li&gt;En-suite bathrooms with monsoon
showers&lt;/li&gt;&lt;li&gt; Soft furnishings feature silks by Jim
Thompson on beds cushions, beds and walls&lt;/li&gt;&lt;li&gt;TVs hidden
behind wall panels&lt;/li&gt;&lt;/ul&gt;</Description>
</Layout>
<Layout>
<Heading>Ground Level</Heading>
<Description>&lt;ul&gt;&lt;li&gt;Large master
suite with king bed and luxurious en-suite with jacuzzi bath and indoor
and outdoor showers.&lt;/li&gt;&lt;li&gt;Office/ extra kids bedroom
reached through adjoining door from bathroom&lt;/li&gt;&lt;li&gt;Second
bedroom arranged as a twin (converts to king) with small outdoor sitting
area located in sleeping pavilion&lt;/li&gt;&lt;li&gt; Soft furnishings
feature silks by Jim Thompson on beds cushions, beds and
walls&lt;/li&gt;&lt;li&gt;TVs hidden behind wall
panel&lt;/li&gt;&lt;/ul&gt;</Description>
</Layout>
</Layouts>
<Configurations>
<Configuration>
<Heading>Study</Heading>
<BedType>Single</BedType>
</Configuration>
<Configuration>
<Heading>Melati</Heading>
<BedType>King/Twin</BedType>
</Configuration>

Marketing Villas Ltd. | WEB METHODS 10


</Configurations>
</Details>
</Bedrooms>
</Occupancy>
<VillaSite>http://www.villaP0001.com</VillaSite>
<BaseUrl />
<RateSnippet>
<MinRate>590</MinRate>
<MaxRate>1190</MaxRate>
</RateSnippet>
<Amenities>
<Amenity>
<AmenityId>Swimming Pool</AmenityId>
<AmenityLabel>Swimming Pool (Private)</AmenityLabel>
<AmenityIconUrl />
</Amenity>
<Amenity>
<AmenityId>WashMachine</AmenityId>
<AmenityLabel>Washing Machine</AmenityLabel>
<AmenityIconUrl />
</Amenity>
</Amenities>
<Staffs>
<Staff>
<StaffId>Manager</StaffId>
<StaffLabel>Manager</StaffLabel>
<StaffIconUrl />
</Staff>
<Staff>
<StaffId>Cleaner (daily)</StaffId>
<StaffLabel>Housekeeping (Full time)</StaffLabel>
<StaffIconUrl />
</Staff>
</Staffs>
<NearbyPlaces>
<Place>
<PlaceName>Ngurah Rai Airport (DPS)</PlaceName>
<Distance>12.00</Distance>
</Place>
<Place>
<PlaceName>Petitenget Beach</PlaceName>
<Distance>0.50</Distance>
</Place>
</NearbyPlaces>
</Details>
<WriteUp>
<Intro />
<About>Located within a secure complex of luxury villas in the
heart of Seminyak’s fashionable Petitenget area, 500 metres from the beach
and a short stroll from a wide choice of restaurants and fashion
boutiques, Villa Elite Seminyak is a beautifully designed, four-bedroom
villa that oozes with charm. Built around an 11-metre swimming pool and
overflowing with tropical flowers, it is the perfect space for achieving
total relaxation. The villa is fully staffed with a manager, private chef
and personal butlers, and furnished to the highest levels of comfort. This
is an ideal place to spend time with family or friends.&lt;br
/&gt;</About>
<Locale>&lt;p&gt; Villa Elite is part of the secure and exclusive
&lt;a href="http://www.laksmanavillas.com/" target="_blank"
title="Laksmana Villas, Seminyak"&gt;Laksmana&lt;/a&gt; enclave, in the
fashionable Petitenget area, just 500 metres from the beach on the
northern boundary of Seminyak. The district is exemplified by
internationally acclaimed restaurants, beach clubs, spas, trendy cocktail
bars and designer boutiques, and there are plenty of ATMs, supermarkets
and convenience stores nearby too.&lt;br /&gt;&lt;br /&gt;Petitenget
Beach, the north-western extension of Seminyak Beach, is well-known for
its world-class surf breaks, panoramic views and legendary sunsets.
Lifeguards patrol the beach, and swimming is allowed between the red and
yellow flags.&lt;/p&gt;</Locale>
<ToDo>&lt;p&gt;Your villa manager will have a wealth of
information about places of interest and will help arrange transport and
make any bookings required. Do ask the staff about the area too; most
will live nearby and can give an interesting insight into some of the
fascinating aspects of local Bali life.&lt;/p&gt; &lt;p&gt;In the
meantime, here’s a taste of the many and varied activities on offer within

Marketing Villas Ltd. | WEB METHODS 11


reach of Villa Elite&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Fashionistas, trendies
and shop-a-holics should hot-foot it down
to&amp;nbsp;&lt;strong&gt;Seminyak&lt;/strong&gt;, Bali’s most
cosmopolitan enclave. Here, you can indulge for hours in the glut of
stylish, chic boutiques. There is a wide choice of fine dining, mid
range, and cheap ‘n cheerful restaurants in Seminyak too: fine dining
venues include Sarong, the famous Ku Dé Ta, Mama San, La Lucciola,
Petitenget, Merah Putih, Sardine and Métis.&lt;/li&gt;&lt;li&gt;It’s
possible to walk the sands of Seminyak’s &lt;strong&gt;Petitenget
Beach&lt;/strong&gt; all the way to Kuta in the south, or north to
Canggu. The beach is more popular with locals than tourists (not safe
for swimming in most sections), but is a great spot for building
sandcastles or to watch the sunset as you sip a cocktail from one of the
many beachside bars. &lt;/li&gt;&lt;li&gt;Villa Elite is close to the
famous temple at&amp;nbsp;&lt;strong&gt;Tanah
Lot&lt;/strong&gt;&amp;nbsp;(16 km). Visiting early in the morning (8-
9am) provides a better idea of the power of the location and the chance
to see it undisturbed apart from perhaps an offering
ceremony.&lt;/li&gt;&lt;li&gt;Play a round at the well-laid out 18-hole
&lt;span style="font-weight: bold;"&gt;Bali Beach Golf Course&lt;/span&gt;
or go further afield to Kuta for the 85-hectare &lt;span style="font-
weight: bold;"&gt;New Kuta Golf&lt;/span&gt; for a natural desert-like
landscape and fantastic view.&amp;nbsp; &lt;br
/&gt;&lt;/li&gt;&lt;li&gt;Drive westwards to explore the
charming&amp;nbsp;&lt;strong&gt;Tabanan regency&lt;/strong&gt;,
revealing terraced rice fields of emerald green, volcanic mountains and
black-sand beaches dotted with fishing communities. Or head north to
explore the volcanic lakes near the mountain town of Bedugul, including
Lake Bratan with its photogenic and stunningly positioned Pura Ulun Danu
– one of Bali’s most important temples.&lt;/li&gt;&lt;li&gt;Covering 3.8
hectares of tropical parkland in Kuta,&amp;nbsp;&lt;strong&gt;Waterbom
Bali&lt;/strong&gt;&amp;nbsp;has 16 water slides (including The Climax
with its 360 degree loop) to entertain the young and the young at heart.
A great family day out, but go early to beat the
crowds.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Bali Treetop Adventure
Park&lt;/strong&gt;&amp;nbsp;is near the town of Bedugal in northern
central Bali (next to Lake Bratan). Five adventure circuits, with
heights ranging from two to 20 metres, challenge all level and ages on
suspended bridges, spider nets, Tarzan jumps and 12 flying
foxes.&lt;/li&gt;&lt;/ol&gt;</ToDo>
<QuickFacts>
<Fact>
<Heading>Location</Heading>
<Description>&lt;p&gt;Laksmana Estate, Seminyak, south-west
Bali, Indonesia.&lt;/p&gt;</Description>
</Fact>
<Fact>
<Heading>Capacity</Heading>
<Description>&lt;p&gt;8 people (4 ensuite bedrooms: 3 king-
size beds, 1 twin convertible to a king); Study can accommodate an extra
adult for a small additional cost. Extra beds are also available at an
additional expense. &lt;/p&gt;</Description>
</Fact>
</QuickFacts>
<Layouts>
<Layout>
<Heading>Indoor Living</Heading>
<Description>&lt;ul&gt;&lt;li&gt;Open sided 12-seater
dining table right next to pool&lt;/li&gt;&lt;li&gt;Small TV room with 48”
flat screen, DEV and cable TV doubles or as an office and extra bedroom
for kids.&lt;/li&gt;&lt;li&gt;Small but well equipped gym for fans of
fitness&lt;/li&gt;&lt;li&gt;Modern fitted kitchen with two hatchways to
dining room and poolside&lt;/li&gt;&lt;li&gt;Open-sided living room with
on ground floor with sofa and banquette
arrangement.&lt;/li&gt;&lt;/ul&gt;</Description>
</Layout>
<Layout>
<Heading>Outdoor Living</Heading>
<Description>&lt;ul&gt;&lt;li&gt;Open air lounge on second
floor above dining room has soft comfortable couches and easy chairs with
soaring ceilings and bougainvillea terraces on each side. Cooled by sea
breezes and great for sunsets&lt;/li&gt;&lt;li&gt;Four sun loungers sit
under the frangipani trees by the pool&lt;/li&gt;&lt;/ul&gt;</Description>
</Layout>
</Layouts>

Marketing Villas Ltd. | WEB METHODS 12


</WriteUp>
<Media>
<Gallery>
<Standard>
<Image>
<Hires>

<Url>http://cimages.elitehavens.com/images/otas/villas/P0001/01-Villa
Elite - Relax poolside.jpg</Url>
<Caption>Shinta Dewi - Relax poolside</Caption>
</Hires>
<Lowres>
<Url />
<Caption />
</Lowres>
</Image>
<Image>
<Hires>

<Url>http://cimages.elitehavens.com/images/otas/villas/P0001/02-Villa
Elite - The pool.jpg</Url>
<Caption>Shinta Dewi - The pool</Caption>
</Hires>
<Lowres>
<Url />
<Caption />
</Lowres>
</Image>
</Standard>
<Mobile />
</Gallery>
<FloorPlan>
<ImageUrl />
<PropertySize>&lt;p&gt;455sqm (villa), 698sqm
(land).&lt;/p&gt;</PropertySize>
<PoolSize>&lt;p&gt;11m x 5m x 1.4m.&lt;br
/&gt;&lt;/p&gt;</PoolSize>
</FloorPlan>
</Media>
</Villa>
</ApiResponse>

JSON
Return value definitions:

Field Array Remarks


Villa.Details.VillaId N See XML Remarks
Villa.Details.VillaName N
Villa.Details.Country.CountryId N See XML Remarks
Villa.Details.Country.CountryName N
Villa.Details.Country.Location.LocationId N See XML Remarks
Villa.Details.Country.Location.LocationName N
Villa.Details.Country.Location.SubLocation.SubLocationId N See XML Remarks
Villa.Details.Country.Location.SubLocation.SubLocationName N
Villa.Details.Coordinates.Latitude N
Villa.Details.Coordinates.Longitude N
Villa.Details.Occupancy.MinSleep N
Villa.Details.Occupancy.MaxSleep N
Villa.Details.Occupancy.Adults.MinAdults N
Villa.Details.Occupancy.Adults.MaxAdults N
Villa.Details.Occupancy.Children.MinChildren N
Villa.Details.Occupancy.Children.MaxChildren N
Villa.Details.Occupancy.Bedrooms.BedroomCount N
Villa.Details.Occupancy.Bedrooms.Details.Layouts[] Y

Marketing Villas Ltd. | WEB METHODS 13


Villa.Details.Occupancy.Bedrooms.Details.Layouts[i].Heading N See XML Remarks
Villa.Details.Occupancy.Bedrooms.Details.Layouts[i].Description N See XML Remarks
Villa.Details.Occupancy.Bedrooms.Details.Configurations[] Y
Villa.Details.Occupancy.Bedrooms.Details.Configurations[i].Heading N See XML Remarks
Villa.Details.Occupancy.Bedrooms.Details.Configurations[i].BedType N See XML Remarks
Villa.Details.VillaSite N See XML Remarks
Villa.Details.BaseUrl N See XML Remarks
Villa.Details.RateSnippet N See XML Remarks
Villa.Details.RateSnippet.MinRate N
Villa.Details.RateSnippet.MaxRate N
Villa.Details.Amenities[] Y
Villa.Details.Amenities[i].AmenityId N See XML Remarks
Villa.Details.Amenities[i].AmenityLabel N See XML Remarks
Villa.Details.Staffs[] Y
Villa.Details.Staffs[i].StaffId N See XML Remarks
Villa.Details.Staffs[i].StaffLabel N See XML Remarks
Villa.Details.NearbyPlaces[] Y
Villa.Details.NearbyPlaces[i].PlaceName N
Villa.Details.NearbyPlaces[i].Distance N See XML Remarks
Villa.WriteUp.About N See XML Remarks
Villa.WriteUp.Locale N See XML Remarks
Villa.WriteUp.ToDo N See XML Remarks
Villa.WriteUp.QuickFacts[] Y
Villa.WriteUp.QuickFacts[i].Heading N
Villa.WriteUp.QuickFacts[i].Description N
Villa.WriteUp.Layouts[] Y
Villa.WriteUp.Layouts[i].Heading N
Villa.WriteUp.Layouts[i].Description N
Villa.Media.Gallery.Standard[] Y
Villa.Media.Gallery.Standard[i].Hires.Url N See XML Remarks
Villa.Media.Gallery.Standard[i].Hires.Caption N
Villa.Media.Gallery.Standard[i].Lowres.Url N See XML Remarks
Villa.Media.Gallery.Standard[i].Lowres.Caption N
Villa.Media.Gallery.FloorPlan.ImageUrl N
Villa.Media.Gallery.FloorPlan.PropertySize N
Villa.Media.Gallery.FloorPlan.PoolSize N

Sample:
{
"Errors": null,
"Villa": {
"Details": {
"VillaId": "P0001",
"VillaName": "Villa Elite Seminyak",
"Country": {
"CountryId": "ID",
"CountryName": "Indonesia",
"CountryBaseUrl": "",
"Location": {
"LocationId": "Bali",
"LocationName": "Bali",
"LocationBaseUrl": "",
"SubLocation": {
"SubLocationId": "Seminyak",
"SubLocationName": "Seminyak",

Marketing Villas Ltd. | WEB METHODS 14


"SubLocationBaseUrl": ""
}
}
},
"Coordinates": {
"Latitude": "-8.68283260",
"Longitude": "115.15555550"
},
"Occupancy": {
"MinSleep": 8,
"MaxSleep": 11,
"Adults": {
"MinAdults": 8,
"MaxAdults": 11
},
"Children": {
"MinChildren": 0,
"MaxChildren": 0
},
"Bedrooms": {
"BedroomCount": 4,
"Details": {
"Layouts": [
{
"Heading": "Guest Bedroom Top Level",
"Description": "<ul><li>Two identically laid out king size bedrooms with
sliding windows that overlook pool and garden</li><li>En-suite bathrooms with monsoon
showers</li><li> Soft furnishings feature silks by Jim Thompson on beds cushions, beds
and walls</li><li>TVs hidden behind wall panels</li></ul>"
},
{
"Heading": "Ground Level",
"Description": "<ul><li>Large master suite with king bed and luxurious en-
suite with jacuzzi bath and indoor and outdoor showers.</li><li>Office/ extra kids
bedroom reached through adjoining door from bathroom</li><li>Second bedroom arranged as a
twin (converts to king) with small outdoor sitting area located in sleeping
pavilion</li><li> Soft furnishings feature silks by Jim Thompson on beds cushions, beds
and walls</li><li>TVs hidden behind wall panel</li></ul>"
}
],
"Configurations": [
{
"Heading": "Study",
"BedType": "Single"
},
{
"Heading": "Melati",
"BedType": "King/Twin"
}
]
}
}
},
"VillaSite": "http://www.villaP0001.com",
"BaseUrl": "",
"RateSnippet": {
"MinRate": 590,
"MaxRate": 1190
},
"Amenities": [
{
"AmenityId": "Swimming Pool",
"AmenityLabel": "Swimming Pool (Private)",
"AmenityIconUrl": ""
},
{
"AmenityId": "Gym",
"AmenityLabel": "Gym/Fitness Centre",
"AmenityIconUrl": ""
}
],
"Staffs": [
{
"StaffId": "Manager",
"StaffLabel": "Manager",
"StaffIconUrl": ""
},
{
"StaffId": "Shopper",
"StaffLabel": "Shopper",

Marketing Villas Ltd. | WEB METHODS 15


"StaffIconUrl": ""
}
],
"NearbyPlaces": [
{
"PlaceName": "Ngurah Rai Airport (DPS)",
"Distance": "12.00"
},
{
"PlaceName": "Ubud",
"Distance": "32.00"
}
]
},
"WriteUp": {
"Intro": "",
"About": "Located within a secure complex of luxury villas in the heart of
Seminyak’s fashionable Petitenget area, 500 metres from the beach and a short stroll from
a wide choice of restaurants and fashion boutiques, Villa Elite Seminyak is a beautifully
designed, four-bedroom villa that oozes with charm. Built around an 11-metre swimming pool
and overflowing with tropical flowers, it is the perfect space for achieving total
relaxation. The villa is fully staffed with a manager, private chef and personal butlers,
and furnished to the highest levels of comfort. This is an ideal place to spend time with
family or friends.<br />",
"Locale": "<p> Villa Elite is part of the secure and exclusive <a
href=\"http://www.laksmanavillas.com/\" target=\"_blank\" title=\"Laksmana Villas,
Seminyak\">Laksmana</a> enclave, in the fashionable Petitenget area, just 500 metres from
the beach on the northern boundary of Seminyak. The district is exemplified by
internationally acclaimed restaurants, beach clubs, spas, trendy cocktail bars and
designer boutiques, and there are plenty of ATMs, supermarkets and convenience stores
nearby too.<br /><br />Petitenget Beach, the north-western extension of Seminyak Beach, is
well-known for its world-class surf breaks, panoramic views and legendary sunsets.
Lifeguards patrol the beach, and swimming is allowed between the red and yellow
flags.</p>",
"ToDo": "<p>Your villa manager will have a wealth of information about places of
interest and will help arrange transport and make any bookings required. Do ask the staff
about the area too; most will live nearby and can give an interesting insight into some
of the fascinating aspects of local Bali life.</p> <p>In the meantime, here’s a taste of
the many and varied activities on offer within reach of Villa Elite</p>
<ol><li>Fashionistas, trendies and shop-a-holics should hot-foot it down
to&nbsp;<strong>Seminyak</strong>, Bali’s most cosmopolitan enclave. Here, you can
indulge for hours in the glut of stylish, chic boutiques. There is a wide choice of
fine dining, mid range, and cheap ‘n cheerful restaurants in Seminyak too: fine dining
venues include Sarong, the famous Ku Dé Ta, Mama San, La Lucciola, Petitenget, Merah
Putih, Sardine and Métis.</li><li>It’s possible to walk the sands of Seminyak’s
<strong>Petitenget Beach</strong> all the way to Kuta in the south, or north to Canggu.
The beach is more popular with locals than tourists (not safe for swimming in most
sections), but is a great spot for building sandcastles or to watch the sunset as you
sip a cocktail from one of the many beachside bars. </li><li>Villa Elite is close to the
famous temple at&nbsp;<strong>Tanah Lot</strong>&nbsp;(16 km). Visiting early in the
morning (8-9am) provides a better idea of the power of the location and the chance to
see it undisturbed apart from perhaps an offering ceremony.</li><li>Play a round at the
well-laid out 18-hole <span style=\"font-weight: bold;\">Bali Beach Golf Course</span> or
go further afield to Kuta for the 85-hectare <span style=\"font-weight: bold;\">New Kuta
Golf</span> for a natural desert-like landscape and fantastic view.&nbsp; <br
/></li><li>Drive westwards to explore the charming&nbsp;<strong>Tabanan regency</strong>,
revealing terraced rice fields of emerald green, volcanic mountains and black-sand
beaches dotted with fishing communities. Or head north to explore the volcanic lakes
near the mountain town of Bedugul, including Lake Bratan with its photogenic and
stunningly positioned Pura Ulun Danu – one of Bali’s most important
temples.</li><li>Covering 3.8 hectares of tropical parkland in Kuta,&nbsp;<strong>Waterbom
Bali</strong>&nbsp;has 16 water slides (including The Climax with its 360 degree loop)
to entertain the young and the young at heart. A great family day out, but go early to
beat the crowds.</li><li><strong>Bali Treetop Adventure Park</strong>&nbsp;is near the
town of Bedugal in northern central Bali (next to Lake Bratan). Five adventure
circuits, with heights ranging from two to 20 metres, challenge all level and ages on
suspended bridges, spider nets, Tarzan jumps and 12 flying foxes.</li></ol>",
"QuickFacts": [
{
"Heading": "Location",
"Description": "<p>Laksmana Estate, Seminyak, south-west Bali, Indonesia.</p> "
},
{
"Heading": "Managed &amp; marketed by",
"Description": "<p><a href=\"http://www.elitehavens.com\" title=\"The Elite
Havens\" target=\"_blank\">The Elite Havens Group</a>.</p> "
}
],
"Layouts": [
{

Marketing Villas Ltd. | WEB METHODS 16


"Heading": "Indoor Living",
"Description": "<ul><li>Open sided 12-seater dining table right next to
pool</li><li>Small TV room with 48” flat screen, DEV and cable TV doubles or as an office
and extra bedroom for kids.</li><li>Small but well equipped gym for fans of
fitness</li><li>Modern fitted kitchen with two hatchways to dining room and
poolside</li><li>Open-sided living room with on ground floor with sofa and banquette
arrangement.</li></ul>"
},
{
"Heading": "Outdoor Living",
"Description": "<ul><li>Open air lounge on second floor above dining room has
soft comfortable couches and easy chairs with soaring ceilings and bougainvillea terraces
on each side. Cooled by sea breezes and great for sunsets</li><li>Four sun loungers sit
under the frangipani trees by the pool</li></ul>"
}
]
},
"Media": {
"Gallery": {
"Standard": [
{
"Hires": {
"Url": "http://cimages.elitehavens.com/images/otas/villas/P0001/01-Villa
Elite - Relax poolside.jpg",
"Caption": "Shinta Dewi - Relax poolside"
},
"Lowres": {
"Url": "",
"Caption": ""
}
},
{
"Hires": {
"Url": "http://cimages.elitehavens.com/images/otas/villas/P0001/20. Villa
Elite - Sundeck.jpg",
"Caption": "Villa Elite - Sundeck"
},
"Lowres": {
"Url": "",
"Caption": ""
}
}
],
"Mobile": []
},
"FloorPlan": {
"ImageUrl": "",
"PropertySize": "<p>455sqm (villa), 698sqm (land).</p> ",
"PoolSize": "<p>11m x 5m x 1.4m.<br /></p> "
}
}
},
"Status": "Ok"
}

Marketing Villas Ltd. | WEB METHODS 17


2.3 GetRates
Get the villa rates

POST GET Ota/GetRates

Request Information

BODY/URI PARAMETERS
Parameter Type Remarks Example
p_Token String Required. Refer to Security
resource guide in generating the
token.
p_UserID String Required.
p_Params String Required. A JSON string format {"PropertyID":"P0001"}
parameter. Refer to Apendix 1.0
for the accepted JSON keys.

Response Information

XML
Return value definitions:

Path Multiple Remarks


ApiResponse/Villa N A parent node.
../../VillaId N The MVL unique villa
identifier.
../../VillaName N
../../Rooms/Room Y A parent node. Can be
multiple for villas with
different room type.
../../../Room/@RoomId N An integer. Unique MVL
room identifier.
../../../../RoomName N A string. Room display name.
../../../../BedroomCount N An integer.
../../../../MaxOccupancy N An integer.
../../../../MaxAdult N An integer.
../../../../MaxChild N An integer.
../../../../Rates N A parent node. Contains
Standard and Package rate
information.
../../../../../StandardRate N A parent node.
../../../../../../@RateNameId N An integer. Unique MVL
ratename identifier.
../../../../../../RateName N A string.
../../../../../../MarketingDesc N A string.
../../../../../../Periods/Period Y A parent node. Contains rate
period information.
../../../../../../../Period/@Year N An integer. The year of the
rate period start date.
../../../../../../../../StartDate N A string. Date format yyyy-
MM-dd.
../../../../../../../../EndDate N A string. Date format yyyy-
MM-dd.
../../../../../../../../PublishedRate N A decimal.
../../../../../../../../PublishedRate/@IsSCTaxIncluded N Char(1). Determines if
PublishedRate already
includes SC and Tax.
../../../../../../../../LS14DiscountedRate N A decimal. Discount rate for a
minimum stay of 14 nights.
Marketing Villas Ltd. | WEB METHODS 18
../../../../../../../../LSStdDiscountedRate N A decimal. Standard long stay
discount rate.
../../../../../../../../LSStdDiscountedRate/@LSRequiredNights N An integer. Minimum night
stay for standard long stay
discount.
../../../../../../../../TaxRate N A decimal.
../../../../../../../../TaxRate/@TaxRateType N Char(1). Value can either be
% or $.
../../../../../../../../SCRate N A decimal.
../../../../../../../../SCRate/@SCRateType N Char(1). Value can either be
% or $.
../../../../../../../../MinNights N An integer. Minimum nights
required for this rate period.
../../../../../../../../Inclusions N A string.
../../../../../../../../CancellationCondition N A string.
../../../../../../../../Season Y A string. Season display label.
../../../../../../../../Season/@SeasonId N A string. An MVL season
unique identifier.
../../../../../PackageRates/Package Y Contains package rate
information if available. It
has the same child nodes
structure as
../../../../../StandardRate.
../../../../../PackageRates/Package/@RateNameId N An integer. Unique MVL
ratename identifier.

Sample:
<ApiResponse Status="Ok">
<Villa>
<VillaId>P0001</VillaId>
<VillaName>Villa Elite Seminyak</VillaName>
<Rooms>
<Room RoomId="818">
<RoomName>4 bedroom</RoomName>
<BedroomCount>4</BedroomCount>
<MaxOccupancy>8</MaxOccupancy>
<MaxAdult>8</MaxAdult>
<MaxChild>0</MaxChild>
<Rates>
<StandardRate RateNameId="647">
<RateName>Standard Rate (4BR)</RateName>
<MarketingDesc />
<Periods>
<Period Year="2018">
<StartDate>2018-08-19</StartDate>
<EndDate>2018-08-31</EndDate>
<PublishedRate IsSCTaxIncluded="N">790</PublishedRate>
<LS14DiscountedRate>0</LS14DiscountedRate>
<LSStdDiscountedRate LSRequiredNights="10">118.5</LSStdDiscountedRate>
<TaxRate TaxRateType="%">10</TaxRate>
<SCRate SCRateType="%">5</SCRate>
<MinNights>3</MinNights>
<Inclusions>&lt;li&gt; Daily breakfast&lt;/li&gt;&lt;li&gt; WiFi Internet
access&lt;/li&gt; &lt;li&gt; Exclusive use of gym, jacuzzi and pool&lt;/li&gt;&lt;li&gt;
Sound system&lt;/li&gt;&lt;li&gt; Satellite TV and DVD&lt;/li&gt;&lt;li&gt; Welcome drink
and fruit basket&lt;/li&gt;&lt;li&gt; Turndown service&lt;/li&gt;&lt;li&gt;Personal
service by the villa staff including full time villa manager, housekeeper, chef/cook,
security and attendants&lt;/li&gt;&lt;li&gt; Exclusive use of the whole villa and listed
facilities &lt;/li&gt;&lt;li&gt;Airport transfers (Conditions
apply)&lt;/li&gt;</Inclusions>
<CancellationCondition />
<Season SeasonId="SH">Shoulder Season</Season>
</Period>

</Periods>
</StandardRate>
<PackageRates>
<Package RateNameId="8888">
<RateName />
<MarketingDesc />
<Periods>

Marketing Villas Ltd. | WEB METHODS 19


<Period Year="2018">
<StartDate>2018-08-19</StartDate>
<EndDate>2018-08-31</EndDate>
<PublishedRate IsSCTaxIncluded="N">790</PublishedRate>
<LS14DiscountedRate>0</LS14DiscountedRate>
<LSStdDiscountedRate LSRequiredNights="10">118.5</LSStdDiscountedRate>
<TaxRate TaxRateType="%">10</TaxRate>
<SCRate SCRateType="%">5</SCRate>
<MinNights>3</MinNights>
<Inclusions>&lt;li&gt; Daily breakfast&lt;/li&gt;&lt;li&gt; WiFi
Internet access&lt;/li&gt; &lt;li&gt; Exclusive use of gym, jacuzzi and
pool&lt;/li&gt;&lt;li&gt; Sound system&lt;/li&gt;&lt;li&gt; Satellite TV and
DVD&lt;/li&gt;&lt;li&gt; Welcome drink and fruit basket&lt;/li&gt;&lt;li&gt; Turndown
service&lt;/li&gt;&lt;li&gt;Personal service by the villa staff including full time villa
manager, housekeeper, chef/cook, security and attendants&lt;/li&gt;&lt;li&gt; Exclusive
use of the whole villa and listed facilities &lt;/li&gt;&lt;li&gt;Airport transfers
(Conditions apply)&lt;/li&gt;</Inclusions>
<CancellationCondition />
<Season SeasonId="SH">Shoulder Season</Season>
</Period>

</Periods>
</Package>

</PackageRates>
</Rates>
</Room>

</Rooms>
</Villa>
</ApiResponse>

JSON
Return value definitions:

Field Array Remarks


Villa. VillaId N See XML
Remarks
Villa.VillaName N
Villa.Rooms[] Y
Villa.Rooms[i].RoomId N See XML
Remarks
Villa.Rooms[i].RoomName N See XML
Remarks
Villa.Rooms[i].BedroomCount N
Villa.Rooms[i].MaxOccupancy N See XML
Remarks
Villa.Rooms[i].MaxAdult N See XML
Remarks
Villa.Rooms[i].MaxChild N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.RateName N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.RateNameId N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.MarketingDesc N
Villa.Rooms[i].Rates.StandardRate.Periods[] Y
Villa.Rooms[i].Rates.StandardRate.Periods[ii].Year N
Villa.Rooms[i].Rates.StandardRate.Periods[ii].StartDate N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.Periods[ii].EndDate N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.Periods[ii].PublishedRate.IsSCTaxIncluded N
Villa.Rooms[i].Rates.StandardRate.Periods[ii].PublishedRate.Value N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.Periods[ii].LS14DiscountedRate N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.Periods[ii].LSStdDiscountedRate.LSRequiredNights N

Marketing Villas Ltd. | WEB METHODS 20


Villa.Rooms[i].Rates.StandardRate.Periods[ii].LSStdDiscountedRate.Value N
Villa.Rooms[i].Rates.StandardRate.Periods[ii].TaxRate.TaxRateType N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.Periods[ii].TaxRate.Value N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.Periods[ii].SCRate.SCRateType N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.Periods[ii].SCRate.Value N See XML
Remarks
Villa.Rooms[i].Rates.StandardRate.Periods[ii].MinNights N
Villa.Rooms[i].Rates.StandardRate.Periods[ii].Inclusions N
Villa.Rooms[i].Rates.StandardRate.Periods[ii].CancellationCondition N
Villa.Rooms[i].Rates.StandardRate.Periods[ii].Season.SeasonId N
Villa.Rooms[i].Rates.StandardRate.Periods[ii].Season.Value N
Villa.Rooms[i].Rates.PackageRates[ii] Y Refer to
StandardRate
object
properties.

Sample:
{
"Errors": null,
"Villa": {
"VillaId": "P0001",
"VillaName": "Villa Elite Seminyak",
"Rooms": [
{
"RoomName": "4 bedroom",
"BedroomCount": 4,
"MaxOccupancy": 8,
"MaxAdult": 8,
"MaxChild": 0,
"Rates": {
"StandardRate": {
"RateName": "Standard Rate (4BR)",
"MarketingDesc": "",
"Periods": [
{
"StartDate": "2018-08-19",
"EndDate": "2018-08-31",
"PublishedRate": {
"IsSCTaxIncluded": "N",
"Value": 790
},
"LS14DiscountedRate": 0,
"LSStdDiscountedRate": {
"LSRequiredNights": 10,
"Value": 118.5
},
"TaxRate": {
"TaxRateType": "%",
"Value": 10
},
"SCRate": {
"SCRateType": "%",
"Value": 5
},
"MinNights": 3,
"Inclusions": "<li> Daily breakfast<\/li><li> WiFi
Internet access<\/li> <li> Exclusive use of gym, jacuzzi and pool<\/li><li>
Sound system<\/li><li> Satellite TV and DVD<\/li><li> Welcome drink and fruit
basket<\/li><li> Turndown service<\/li><li>Personal service by the villa staff
including full time villa manager, housekeeper, chef/cook, security and
attendants<\/li><li> Exclusive use of the whole villa and listed facilities
<\/li><li>Airport transfers (Conditions apply)<\/li>",
"CancellationCondition": "",
"Season": {
"SeasonId": "SH",
"Value": "Shoulder Season"
},
"Year": 2018

Marketing Villas Ltd. | WEB METHODS 21


},
{...}
],
"RateNameId": 647
},
"PackageRates": [
{
"RateName": "Standard Rate (4BR)",
"MarketingDesc": "",
"Periods": [
{
"StartDate": "2018-08-19",
"EndDate": "2018-08-31",
"PublishedRate": {
"IsSCTaxIncluded": "N",
"Value": 790
},
"LS14DiscountedRate": 0,
"LSStdDiscountedRate": {
"LSRequiredNights": 10,
"Value": 118.5
},
"TaxRate": {
"TaxRateType": "%",
"Value": 10
},
"SCRate": {
"SCRateType": "%",
"Value": 5
},
"MinNights": 3,
"Inclusions": "<li> Daily breakfast<\/li><li> WiFi
Internet access<\/li> <li> Exclusive use of gym, jacuzzi and pool<\/li><li>
Sound system<\/li><li> Satellite TV and DVD<\/li><li> Welcome drink and fruit
basket<\/li><li> Turndown service<\/li><li>Personal service by the villa staff
including full time villa manager, housekeeper, chef/cook, security and
attendants<\/li><li> Exclusive use of the whole villa and listed facilities
<\/li><li>Airport transfers (Conditions apply)<\/li>",
"CancellationCondition": "",
"Season": {
"SeasonId": "SH",
"Value": "Shoulder Season"
},
"Year": 2018
},
{...}
],
"RateNameId": 648
},
{...}
]
},
"RoomId": 818
},
{...}
]
},
"Status": "Ok"
}

Marketing Villas Ltd. | WEB METHODS 22


2.4. GetComputedRates
Get a villa or a list of villa computed rates for a given date range.

It is advisable to limit the number of villas in the list to a maximum of 10 items per request so as not to slow
down the return of data. This method should only be use if you want to get the computed rates of the client
selected stay dates.

The returned data will include the applicable discounts and promotions for the selected stay period.

POST GET Ota/GetComputedRates

Request Information

BODY/URI PARAMETERS
Parameter Type Remarks Example
p_Token String Required. Refer to
Security resource
guide in generating
the token.
p_UserID String Required.
p_Params String Required. A JSON {"PropertyIDList":["P0001","P0002"],"CIDate":"2018-
string format 12-01","CODate":"2018-12-10"}
parameter. Refer to
Apendix 2.0 for the
accepted JSON keys.

Response Information

XML
Return value definitions:

Path Multiple Remarks


ApiResponse/Villas/Villa Y A parent node.
../../../Details/VillaId N The MVL unique villa
identifier.
../../../../VillaName N
../../../../CurrencyCode N
../../../../Rooms/Room Y A parent node. Can be
multiple for villas with
different room type.
../../../../../Room/@RoomId N An integer. Unique MVL
room identifier.
../../../../../../RoomName N A string. Room display name.
../../../../../../BedroomCount N An integer.
../../../../../../MaxOccupancy N An integer.
../../../../../../MaxAdult N An integer.
../../../../../../MaxChild N An integer.
../../../../../../Rates/Rate Y A parent node. Contains rate
information.
../../../../../../../Rate/@RateNameId N An integer. Unique MVL
ratename identifier. This is
needed when passing
information to the
InsertBooking method.
../../../../../../../Rate/@DiscountId N An integer. Unique MVL
discount identifier. This is
needed when passing
information to the
InsertBooking method.
../../../../../../../../RateName N A string.
Marketing Villas Ltd. | WEB METHODS 23
../../../../../../../../Periods/Period Y A parent node. Contains rate
period information.
../../../../../../../../../Period /StartDate N A string. Date format yyyy-
MM-dd.
../../../../../../../../../../EndDate N A string. Date format yyyy-
MM-dd.
../../../../../../../../../../Nights N An integer. The number of
nights for the period.
../../../../../../../../../../BaseRate N A decimal. The published
nightly rate.
../../../../../../../../../../BaseDiscount N A decimal. The nightly
discount rate, if any.
../../../../../../../../../../BaseSC N A decimal. The computed
nightly service charge.
../../../../../../../../../../BaseTax N A decimal. The computed
nightly tax amount.
../../../../../../../../../../BaseGrossRate N A decimal. The total nightly
rental amount.
../../../../../../../../../../SubTotal N A decimal. The total rental
amount for the period.
../../../../../../../Rate/Total N A decimal. The total rental
amount for the given date
range.
../../../../../../../../MinNights N An integer. Minimum nights
required for this rate type.
../../../../../../../../Inclusions N A string.
../../../../../../../../PaymentTerms/Deposit/DepositNote N A string.
../../../../../../../../../Deposit/DepositAmount N A decimal.
../../../../../../../../../Balance/BalanceNote N A decimal.
../../../../../../../../../Balance/BalanceAmount N A decimal.
../../../../../../../../../Full/FullNote N A decimal.
../../../../../../../../../Full/FullAmount N A decimal.

Sample:
<ApiResponse Status="Ok">
<Villas>
<Villa>
<Details>
<VillaId>P0001</VillaId>
<VillaName>Villa Elite</VillaName>
<CurrencyCode>USD</CurrencyCode>
<Rooms>
<Room RoomId="529">
<RoomName>3 bedroom</RoomName>
<BedroomCount>3</BedroomCount>
<MaxOccupancy>6</MaxOccupancy>
<MaxAdult>6</MaxAdult>
<MaxChild>0</MaxChild>
<Rates>
<Rate RateNameId="438" DiscountId="112646">
<RateName>Enjoy a free one-day rental car with driver + one Indonesian
family style dinner</RateName>
<Periods>
<Period>
<StartDate>2018-12-01</StartDate>
<EndDate>2018-12-10</EndDate>
<Nights>9</Nights>
<BaseRate>350</BaseRate>
<BaseDiscount>-0</BaseDiscount>
<BaseSC>17.5</BaseSC>
<BaseTax>36.75</BaseTax>
<BaseGrossRate>404.25</BaseGrossRate>
<SubTotal>3638.25</SubTotal>
</Period>
</Periods>
<Total>3638.25</Total>
<MinNights>2</MinNights>
<Inclusions>&lt;li&gt; WiFi Internet access &lt;/li&gt;&lt;li&gt;Car and
driver at a special rate of USD35++/day for 8 hours (excluding

Marketing Villas Ltd. | WEB METHODS 24


petrol)&lt;/li&gt;&lt;li&gt; Welcome drink and fruit basket&lt;/li&gt; &lt;li&gt; Turndown
service&lt;/li&gt; &lt;li&gt; Personal service by the villa staff including full time
villa manager, housekeeper, chef/cook, security and attendants&lt;/li&gt;&lt;li&gt;
Exclusive use of the whole villa and listed facilities&lt;/li&gt;</Inclusions>
<PaymentTerms>
<Deposit>
<DepositNote>Deposit: &lt;span&gt;(Due within 5 days of
confirmation.)&lt;/span&gt;</DepositNote>
<DepositAmount>727.65</DepositAmount>
</Deposit>
<Balance>
<BalanceNote>Balance: &lt;span&gt;(Due before 13 Feb 2019 (75 days
before check-in))&lt;/span&gt;</BalanceNote>
<BalanceAmount>2910.6</BalanceAmount>
</Balance>
<Full>
<FullNote />
<FullAmount>3638.25</FullAmount>
</Full>
</PaymentTerms>
</Rate>
<Rate RateNameId="438" DiscountId="0">
<RateName>Standard Rate</RateName>
<Periods>
<Period>
<StartDate>2018-12-01</StartDate>
<EndDate>2018-12-10</EndDate>
<Nights>9</Nights>
<BaseRate>350</BaseRate>
<BaseDiscount>-0</BaseDiscount>
<BaseSC>17.5</BaseSC>
<BaseTax>36.75</BaseTax>
<BaseGrossRate>404.25</BaseGrossRate>
<SubTotal>3638.25</SubTotal>
</Period>
</Periods>
<Total>3638.25</Total>
<MinNights>2</MinNights>
<Inclusions>&lt;li&gt; WiFi Internet access &lt;/li&gt;&lt;li&gt;Car and
driver at a special rate of USD35++/day for 8 hours (excluding
petrol)&lt;/li&gt;&lt;li&gt; Welcome drink and fruit basket&lt;/li&gt; &lt;li&gt; Turndown
service&lt;/li&gt; &lt;li&gt; Personal service by the villa staff including full time
villa manager, housekeeper, chef/cook, security and attendants&lt;/li&gt;&lt;li&gt;
Exclusive use of the whole villa and listed facilities&lt;/li&gt;</Inclusions>
<PaymentTerms>
<Deposit>
<DepositNote>Deposit: &lt;span&gt;(Due within 5 days of
confirmation.)&lt;/span&gt;</DepositNote>
<DepositAmount>727.65</DepositAmount>
</Deposit>
<Balance>
<BalanceNote>Balance: &lt;span&gt;(Due before 13 Feb 2019 (75 days
before check-in))&lt;/span&gt;</BalanceNote>
<BalanceAmount>2910.6</BalanceAmount>
</Balance>
<Full>
<FullNote />
<FullAmount>3638.25</FullAmount>
</Full>
</PaymentTerms>
</Rate>

</Rates>
</Room>

</Rooms>
</Details>
</Villa>
</Villas>
</ApiResponse>

JSON
Return value definitions:

Field Array Remarks


Villas[] Y See XML
Remarks

Marketing Villas Ltd. | WEB METHODS 25


Villas[i].Details.VillaId N
Villas[i].Details.VillaName N
Villas[i].Details.Rooms[] Y See XML
Remarks
Villas[i].Details.Rooms[ii].RoomName N See XML
Remarks
Villas[i].Details.Rooms[ii].BedroomCount N
Villas[i].Details.Rooms[ii].MaxOccupancy N See XML
Remarks
Villas[i].Details.Rooms[ii].MaxAdult N See XML
Remarks
Villas[i].Details.Rooms[ii].MaxChild N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[] Y See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].RateName N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].RateNameId N
Villas[i].Details.Rooms[ii].Rates[iii].DiscountId N
Villas[i].Details.Rooms[ii].Rates[iii].Periods[] Y
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].StartDate N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].EndDate N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].Nights N
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].BaseRate N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].BaseDiscount N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].BaseSC N
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].BaseTax N
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].BaseGrossRate N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].Periods[iiii].SubTotal N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].Total N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].MinNights N See XML
Remarks
Villas[i].Details.Rooms[ii].Rates[iii].Inclusions N
Villas[i].Details.Rooms[ii].Rates[iii].PaymentTerms N
Villas[i].Details.Rooms[ii].Rates[iii].PaymentTerms.Deposit.DepositNote N
Villas[i].Details.Rooms[ii].Rates[iii].PaymentTerms.Deposit.DepositAmount N
Villas[i].Details.Rooms[ii].Rates[iii].PaymentTerms.Balance.BalanceNote N
Villas[i].Details.Rooms[ii].Rates[iii].PaymentTerms.Balance.BalanceAmount N
Villas[i].Details.Rooms[ii].Rates[iii].PaymentTerms.Full.FullNote N
Villas[i].Details.Rooms[ii].Rates[iii].PaymentTerms.Full.FullAmount N

Sample:
{
"Villas": [
{
"Details": {
"VillaId": "Mako",
"VillaName": "Villa Mako",
"Rooms": [
{
"RoomName": "3 bedroom",
"BedroomCount": 3,
"MaxOccupancy": 6,
"MaxAdult": 6,
"MaxChild": 0,

Marketing Villas Ltd. | WEB METHODS 26


"Rates": [
{
"RateName": "Enjoy a free one-day rental car with driver",
"Periods": [
{
"StartDate": "2018-12-01",
"EndDate": "2018-12-10",
"Nights": 9,
"BaseRate": 350,
"BaseDiscount": 0,
"BaseSC": 17.5,
"BaseTax": 36.75,
"BaseGrossRate": 404.25,
"SubTotal": 3638.25
}
],
"Total": 3638.25,
"MinNights": 2,
"Inclusions": "<li> WiFi Internet access </li><li>Car and driver at a
special rate of USD35++/day for 8 hours (excluding petrol)</li><li> Welcome drink and
fruit basket</li> <li> Turndown service</li> <li> Personal service by the villa staff
including full time villa manager, housekeeper, chef/cook, security and
attendants</li><li> Exclusive use of the whole villa and listed facilities</li>",
"PaymentTerms": {
"Deposit": {
"DepositNote": "Deposit: <span>(Due within 5 days of
confirmation.)</span>",
"DepositAmount": 727.65
},
"Balance": {
"BalanceNote": "Balance: <span>(Due before 13 Feb 2019 (75 days before
check-in))</span>",
"BalanceAmount": 2910.6
},
"Full": {
"FullNote": "",
"FullAmount": 3638.25
}
},
"RateNameId": 438,
"DiscountId": 112650
},
{
"RateName": "Enjoy a free one-day rental car with driver + one Indonesian
family style dinner",
"Periods": [
{
"StartDate": "2018-12-01",
"EndDate": "2018-12-10",
"Nights": 9,
"BaseRate": 350,
"BaseDiscount": 0,
"BaseSC": 17.5,
"BaseTax": 36.75,
"BaseGrossRate": 404.25,
"SubTotal": 3638.25
}
],
"Total": 3638.25,
"MinNights": 2,
"Inclusions": "<li> WiFi Internet access </li><li>Car and driver at a
special rate of USD35++/day for 8 hours (excluding petrol)</li><li> Welcome drink and
fruit basket</li> <li> Turndown service</li> <li> Personal service by the villa staff
including full time villa manager, housekeeper, chef/cook, security and
attendants</li><li> Exclusive use of the whole villa and listed facilities</li>",
"PaymentTerms": {
"Deposit": {
"DepositNote": "Deposit: <span>(Due within 5 days of
confirmation.)</span>",
"DepositAmount": 727.65
},
"Balance": {
"BalanceNote": "Balance: <span>(Due before 13 Feb 2019 (75 days before
check-in))</span>",
"BalanceAmount": 2910.6
},
"Full": {
"FullNote": "",
"FullAmount": 3638.25
}

Marketing Villas Ltd. | WEB METHODS 27


},
"RateNameId": 438,
"DiscountId": 112646
}
],
"RoomId": 529
}
]
}
}
],
"Status": "Ok"
}

Marketing Villas Ltd. | WEB METHODS 28


2.5 GetAvailability
Get a villa calendar status.

POST GET Ota/GetAvailability

Request Information

BODY/URI PARAMETERS
Parameter Type Remarks Example
p_Token String Required. Refer to Security
resource guide in generating
the token.
p_UserID String Required.
p_Params String Required. A JSON string {"PropertyID":"Mako","SDate":"2018-
format parameter. Refer to 12-01","EDate":"2018-12-
Apendix 2.0 for the accepted 31","Status":"BLOCKED"}
JSON keys.

Response Information

XML
Return value definitions:

Path Multiple Remarks


ApiResponse/Dates/DateRange Y A parent node.
../../../From N The MVL unique villa
identifier.
../../../To N
../../../Status N Can be BLOCKED,AVAILABLE,
or ONREQUEST
../../../Status/@Lco N Can be “Y” or “N”. Flag for
late check-out.
../../../Status/@Eci N Can be “Y” or “N”. Flag for
early check-in.

Sample:
<ApiResponse Status="Ok">
<Dates>
<DateRange>
<From></From>
<To></To>
<Status Lco="N" Eci="N">BLOCKED,AVAILABLE</Status>
</DateRange>
<DateRange>
<From></From>
<To></To>
<Status Lco="N" Eci="N">BLOCKED,AVAILABLE</Status>
</DateRange>
</Dates>
</ApiResponse>

JSON
Return value definitions:

Field Array Remarks


Dates[] Y See XML
Remarks

Marketing Villas Ltd. | WEB METHODS 29


Dates[i].From N
Dates[i].To N
Dates[i].To.Status.Lco Y See XML
Remarks
Dates[i].To.Status.Eci N See XML
Remarks
Dates[i].To.Status.Value N

Sample:
{
"Dates": [
{
"From": "2018-08-30",
"To": "2018-09-02",
"Status": {
"Lco": "N",
"Eci": "N",
"Value": "BLOCKED"
}
},
{
"From": "2018-09-03",
"To": "2018-09-15",
"Status": {
"Lco": "N",
"Eci": "N",
"Value": "BLOCKED"
}
}
],
"Status": "Ok"
}

Marketing Villas Ltd. | WEB METHODS 30


2.6 InsertBooking
Create a booking request.

This method expects the submitted data to satisfy the following conditions to be successful:

• Within the minimum nights


• Dates of stay are available
• Within the total villa occupancy
• Guest name is provided

POST GET Ota/InsertBooking

Request Information

BODY/URI PARAMETERS
Parameter Type Remarks Example
p_Token String Required. Refer to Security
resource guide in generating
the token.
p_UserID String Required.
p_Params String Required. A JSON string {"VillaID":"P0001","RateNameID":647,"Disco
format parameter. Refer to untID":0,"TravelAgentID":116,"CIDate":"2019
Apendix 3.0 for the -12-21","CODate":"2019-12-
accepted JSON keys. 26","GuestFirstName":"Juan","GuestLastNam
e":"Dela
Cruz","CountryOfResidence":"PH","ExtraEmai
l":"","TotalAdults":4,"TotalChildren":0,"TotalI
nfants":0}

Response Information

XML
Return value definitions:

Path Multiple Remarks


ApiResponse/Booking N A parent node.
../../VillaBkId N The MVL unique booking
identifier.
../../BkTotAmt N The total booking amount.

Sample:
<ApiResponse Status="Ok">
<Booking>
<VillaBkId>2018xxxxxxxAB</VillaBkId>
<BkTotAmt>9999.00</BkTotAmt>
</Booking>
</ApiResponse>

JSON
Return value definitions:

Field Array Remarks


Booking.VillaBkId N See XML
Remarks
Booking.BkTotAmt N

Sample:

Marketing Villas Ltd. | WEB METHODS 31


{
"Errors": null,
"Booking": {
"VillaBkId": "2018xxxxxxAB",
"BkTotAmt": "9999.00"
},
"Status": "Ok"
}

Marketing Villas Ltd. | WEB METHODS 32


APPENDIX

JSON Params
1.0 Common Parameters
Key Type Optional Remarks Example
PropertyID String N “PropertyID”:”P0001”

2.0 GetAvailability Parameters


Key Type Optional Remarks Example
PropertyID String N “PropertyID”:”P0001”
SDate String N Calendar start date. Date “SDate”:”2018-12-01”
format of yyyy-MM-dd
EDate String N Calendar end date. Date “EDate”:”2018-12-05”
format of yyyy-MM-dd
Status String N Can be any of the following “Status”:”BLOCKED”
values: BLOCKED (default),
AVAILABLE, ALL.

3.0 InsertBooking Parameters


Parameter Type Optional Remarks Example
VillaID String N “VillaID”:”P00000”
RateNameID Integer N This value is from the returned “RateNameID”:14344
data of either
GetComputedRates or
GetRates methods.
DiscountID Integer N This value is from the returned “DiscountID”:0
data of GetComputedRates
method. Pass a value of zero
when none is specified.
TravelAgentID Integer N The assigned travel agent id. "TravelAgentID":1
CIDate Date N Format in YYYY-MM-DD “CIDate”:”2019-12-21”
CODate Date N Format in YYYY-MM-DD “CODate”:”2019-12-26”
GuestFirstName String N
GuestLastName String N
CountryOfResidence String Y This should be the country ISO “CountryOfResidence”:”US”
2-letter code
ExtraEmail String Y Pass a recipient address if you
want another person to
receive the booking
acknowledgement.
TotalAdults Integer N
TotalChildren Integer Y Pass a value of zero when not
applicable.
TotalInfants Integer Y Pass a value of zero when not
applicable.

Marketing Villas Ltd. | APPENDIX 33


VERSION HISTORY

Version 2.0
Date Released: September 07, 2018

• First documentation release.

Version 2.01
Date Released: February 13, 2019

• Adjusted some wordings.

Version 2.02
Date Released: September 16, 2019

• Added GetComputedRates method.

Marketing Villas Ltd. | VERSION HISTORY 34

You might also like