Getting Started

API Reference

This page refers to 365 api which is used for accessing data inside 365 Villas application.

 

Basic Auth

The authorization header will be added generated when you send the request. (Required)

{
  "Username": "guest",
  "Password": "secret"
}

 

The Authorization request header can be used to provide credentials that authenticate a user agent with a server when you send the request. (Required)

{
  "365villaskey": "NTZjMjI4OWM4NzkyYTJkZDM5ZTFlNjNkMzQxZmZmMzRhZjM5YTEzMQ==",
  "365villaspass": "YmMzZjVkMmUyZTVmYWFlZWYxZjkwNzZmZjcyODhkYmU3ZjY3MmZmYg=="
}

 

Accessing the API

The 365 Villas API can be accessed over HTTPS at /api/{action}.

Add A Property

Request Endpoint: /api/property.

Request parameters:

Name Type Min Max Description
action String Request action (create).
property Object Property info
internal_code String 10 Required
Internal code in user system.
name String 20 80 Required
Property name.
type String Required
Property type (None, Apartment, Condo, House, Villa)
brief String 400 10000 Property description.
maxguest Number 1 50 Required
Max of guest.
bedrooms Number 1 30 Required
Number of bed rooms.
bathrooms Number 1 30 Required
Number of bath rooms.
kitchens Number 1 30 Required
Number of kitchens.
floor String 10 Required
Number of floors (Basement, Ground, 1…100)
space Object Required
Space of property
value Number Required
Value space of property
unit String Required
Unit space of property(meters, feet)
phone StringNumber 20
address String Required
Phone number.
city String 1 200 Required
City.
state String 1 200 State.
postcode String 1 20 Required
Postal code.
country String 2 2 Required
Country code.
latitude Number Required
Latitude.
longitude Number Required
Longitude.
allowchildren Boolean false = Do not allow children.
true = Allow children (optional).
allowpet Boolean false = Do not allow pet.
true = Allow pet (optional).
allowsmoking Boolean false = Do not allow smoking.
true = Allow smoking (optional).

Request example data

{
  "action": "create",
  "property": {
    "internal_code": "1",
    "name": "Villas beach on island",
    "type": "Villa",
    "brief": "Luxurious area with famous Saatchi Gallery, Theater Royal, designer shops and fine dining venues.",
    "maxguest": 4,
    "bedrooms": 2,
    "bathrooms": 3,
    "kitchens": 1,
    "floor": "3",
    "space": {
      "value": 100,
      "unit": "meters"
    },
    "phone": "1832472313",
    "address": "31 Draycott Ave",
    "city": "London",
    "state": "London",
    "postcode": "HA3 0BL",
    "country": "UK",
    "latitude": 51.492,
    "longitude": -0.164,
    "allowchildren": false,
    "allowpet": true,
    "allowsmoking": false
  }
}

Response example data

{
  "code": 200,
  "data": {
    "property_id": "1"
  }
}

Update A Property

Request Endpoint: /api/property.

Request parameters:

Name Type Min Max Description
action String Request action (update).
property Object Property info
internal_code String 10 Required
Internal code in user system.
name String 20 80 Required
type String Required
Property type (None, Apartment, Condo, House, Villa)
brief String 400 10000 Property description.
maxguest Number 1 50 Required
Max of guest.
bedrooms Number 1 30 Required
Number of bed rooms.
bathrooms Number 1 30 Required
Number of bath rooms.
kitchens Number 1 30 Required
Number of kitchens.
floor String 10 Number of floors (Basement, Ground, 1…100)
space Object Required
Space of property
value Number Required
Value space of property
unit String Required
Unit space of property(meters, feet)
phone StringNumber 20
address String Required
Phone number.
city String 1 200 Required
City.
state String 1 200 State.
postcode String 1 20 Postal code.
country String 2 2 Required
Country code.
latitude Number Required
Latitude.
longitude Number Required
Longitude.
allowchildren Boolean false = Do not allow children.
true = Allow children (optional).
allowpet Boolean false = Do not allow pet.
true = Allow pet (optional).
allowsmoking Boolean false = Do not allow smoking.
true = Allow smoking (optional).

Request example data

{
  "action": "update",
  "property": {
    "internal_code": "1",
    "name": "Villas beach on island",
    "type": "Villa",
    "brief": "Luxurious area with famous Saatchi Gallery, Theater Royal, designer shops and fine dining venues.",
    "maxguest": 4,
    "bedrooms": 2,
    "bathrooms": 3,
    "kitchens": 1,
    "floor": "3",
    "space": {
      "value": 100,
      "unit": "meters"
    },
    "phone": "1832472313",
    "address": "31 Draycott Ave",
    "city": "London",
    "state": "London",
    "postcode": "HA3 0BL",
    "country": "UK",
    "latitude": 51.492,
    "longitude": -0.164,
    "allowchildren": false,
    "allowpet": true,
    "allowsmoking": false
  }
}

Response example data

{
  "code": 200,
  "data": {
    "property_id": "1"
  }
}

Delete A Property

Request Endpoint: /api/property.

Request parameters:

Name Type Min Max Description
action String Request action (delete).
property Object Property info
internal_code String 10 Required
Internal code in user system.

Request example data

{
  "action": "delete",
  "property": {
    "internal_code": "1"
  }
}

Response example data

{
  "code": 200
}

Add A Photo

Request Endpoint: /api/property-photo.

Request parameters:

Name Type Min Max Description
action String Request action (create).
photo Object Photo info
internal_code String 10 Required
Internal code in user system.
image base64 Required
Base64 image (in some cases can be the link image).

Request example data

{
  "action": "create",
  "photo": {
    "internal_code": "1",
    "image": "lZWYxZjkwNzZmZjcyODhkYmU3Zj"
  }
}

Response example data

{
  "code": 200,
  "data": {
    "photo_id": 2
  }
}

Update A Photo

Request Endpoint: /api/property-photo.

Request parameters:

Name Type Min Max Description
action String Request action (update).
photo Object Photo info
photo_id Number 1 2147483647 Required if action is update or delete
Property Photo Id
internal_code String 10 Required
Internal code in user system.
image base64 Required
Base64 image (in some cases can be the link image).

Request example data

{
  "action": "update",
  "photo": {
    "photo_id": 1,
    "internal_code": "1",
    "image": "lZWYxZjkwNzZmZjcyODhkYmU3Zj"
  }
}

Response example data

{
  "code": 200,
  "data": {
    "photo_id": 1
  }
}

Delete A Photo

Request Endpoint: /api/property-photo.

Request parameters:

Name Type Min Max Description
action String Request action (delete).
photo Object Photo info
photo_id Number 1 2147483647 Required if action is update or delete
Property Photo Id
internal_code String 10 Required
Internal code in user system.

Request example data

{
  "action": "delete",
  "photo": {
    "photo_id": 1,
    "internal_code": "1"
  }
}

Response example data

{
  "code": 200
}

Policy Setting

Request Endpoint: /api/property-policy.

Request parameters:

Name Type Min Max Description
internal_code String 10 Required
Internal code in user system.
short_stay Object Policy Short Stay
payment_type String Required
Payment Type (Full, Partial, None)
damage_deposit Object The damage deposit is payable
is_due_at String 255 Required
Due date (Booking, Arrival, Check-out, XDayPriorArrival)
x_day Number 1 255 Required if due date is XDayPriorArrival
Number days of due date is XDayPriorArrival
amount Number 2147483647 with flat, 99 with percent Required
Amount
amount_type string Required
Amount type (Flat, PercentOfRent, PercentOfGrandTotal)
payment_full Object Required if payment_type is Full
Payment Full
is_due_at String 255 Required
Due date (Booking, Arrival, Check-out, XDayPriorArrival, XDayAfterBooking)
x_day Number 1 255 Required if due date is XDayPriorArrival or XDayAfterBooking
Number days of due date is XDayPriorArrival or XDayAfterBooking
payment_partial Object Required if payment_type is Partial
Payment partial
first_payment Object First payment
is_due_at String 255 Required
Due date (Booking, Arrival, XDayPriorArrival, XDayAfterBooking)
x_day Number 365 Required if due date is XDayPriorArrival or XDayAfterBooking
Number days of due date is XDayPriorArrival or XDayAfterBooking
amount_type string Required
Amount type (Flat, PercentOfRent, PercentOfGrandTotal)
amount Number bigger than 0 2147483647 with flat, 99 with percent Required
Amount
remaining_payment Object Required if payment_type is Partial
Remaining payment
is_due_at String 255 Required
Due date(Check-out, Arrival, XDayPriorArrival, XDayAfterBooking)
x_day Number 365 Required if due date is XDayPriorArrival or XDayAfterBooking
Number days of due date is XDayPriorArrival or XDayAfterBooking

Request example data

{
  "internal_code": "1",
  "short_stay": {
    "payment_type": "Full",
    "payment_full": {
      "is_due_at": "XDayPriorArrival",
      "x_day": 30
    },
    "damage_deposit": {
      "is_due_at": "XDayPriorArrival",
      "x_day": 2,
      "amount": 10,
      "amount_type": "PercentOfGrandTotal"
    }
  }
}
{
  "property_id": 1,
  "short_stay": {
    "payment_type": "Partial",
    "payment_partial": {
      "first_payment": {
        "is_due_at": "XDayAfterBooking",
        "x_day": 2,
        "amount_type": "PercentOfRent",
        "amount": 20
      },
      "remaining_payment": {
        "is_due_at": "XDayPriorArrival",
        "x_day": 10
      }
    }
  }
}
{
  "property_id": 1,
  "short_stay": {
    "payment_type": "None"
  }
}

Response example data

{
  "code": 200
}

Rate Setting

Request Endpoint: /api/property-rate.

Request parameters:

Name Type Min Max Description
internal_code String 10 Required
Internal code in user system.
rate Object rate of property
daily_price Number 0 2147483647 Required
daily price of property
weekend_price Number Weekend price of property. Total 2 or 3 weekends, Can setting in 365Villas
weekly_price Number weekly price of property
monthly_price Number monthly price of property
minimum_stay Number Required
minimum stay of property
extra_daily_price Number extra daily price of property
extra_weekend_price Number extra weekend price of property
extra_weekly_price Number extra weekly price of property
extra_monthly_price Number extra monthly price of property
los Array
days Number 1 40
discount Number 1 99
setting Object
standard_occupants Number 1 Required
Standard occupants
accept_booking_upto Number 0 12 Accept booking upto
(If it is zero, the calendar will available for all)
apply_weekend_price Boolean (true, false)
default_allow_checkin String (All, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
Check-ins may occur only above.
default_allow_checkout String (All, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
Check-outs may occur only above.
apply_extra_fee_per_season Boolean (true, false)
allow_same_day_booking_until String Format: 24-Hour
Important: set 1 in 2 "allow_same_day_booking_until " or "advanced_notice_booking_from"
advanced_notice_booking_from String Format: Days
Important: set 1 in 2 "allow_same_day_booking_until " or "advanced_notice_booking_from"
apply_6_nights_weekly_rate Boolean (true, false)
first_day_surcharge Number Adding a surcharge to the first day of any stay
first_day_surcharge_apply_one_night Boolean (true, false)
season Array
name String Season name
minimum_stay Number Don't bigger than max guest of property
start_date StringDate Required
Start date. Format YYYY-MM-DD
end_date StringDate Required
End date. Format YYYY-MM-DD
daily_price Number Required
Daily price
weekend_price Number Weekend price of property. Total 2 or 3 weekends, Can setting in 365Villas
weekly_price Number Weekly price
monthly_price Number Monthly price
extra_daily_price Number Extra daily price
extra_weekend_price Number Extra weekend price
extra_weekly_price Number Extra weekly price
extra_monthly_price Number Extra monthly price
allow_checkin String (All, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
allow_checkout String (All, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)

Request example data

{
  "internal_code": "1",
  "rate": {
    "daily_price": 10,
    "weekend_price": 22,
    "weekly_price": 60,
    "monthly_price": 210,
    "minimum_stay": 1,
    "extra_daily_price": 5,
    "extra_weekend_price": 5,
    "extra_weekly_price": 4,
    "extra_monthly_price": 2
  },
  "los": [
    {
      "days": 7,
      "discount": 10
    },
    {
      "days": 15,
      "discount": 25
    }
  ],
  "setting": {
    "standard_occupants": 5,
    "accept_booking_upto": 0,
    "apply_weekend_price": true,
    "default_allow_checkin": "Sunday,Monday",
    "default_allow_checkout": "Friday,Saturday",
    "apply_extra_fee_per_season": true,
    "allow_same_day_booking_until": "12:00",
    "apply_6_nights_weekly_rate": false,
    "first_day_surcharge": 7,
    "first_day_surcharge_apply_one_night": false
  },
  "season": [
    {
      "name": "Summer season",
      "minimum_stay": 2,
      "start_date": "2023-06-01",
      "end_date": "2023-08-28",
      "daily_price": 15,
      "weekend_price": 40,
      "weekly_price": 60,
      "monthly_price": 315,
      "extra_daily_price": 6,
      "extra_weekend_price": 6,
      "extra_weekly_price": 5,
      "extra_monthly_price": 2,
      "allow_checkin": "Saturday,Saturday,Friday",
      "allow_checkout": "All"
    }
  ]
}

Response example data

{
  "code": 200
}

Method Setting

Request Endpoint: /api/property-method.

Request parameters:

s
Name Type Min Max Description
internal_code String 10 Required
Internal code in user system.
stripe Object
secret_key String 255 Required
Secret key of stripe
public_key String 255 Required
Public key of stripe
description String 1000 Provide your method details. You may want to explain any policies regarding fees.
authorize Object
login_id String 255 Required
Login id
transaction_key String 255 Required
Transaction key
description String 1000 Provide your method details. You may want to explain any policies regarding fees.
paypal Object
email String 255 Required
Email
description String 1000 Provide your method details. You may want to explain any policies regarding fees.
payfort Object
secret_key String 255 Required
Secret key of payfort
open_key String 255 Required
Open key of payfort
description String 1000 Provide your method details. You may want to explain any policies regarding fees.
paygate Object
paygate_id String 255 Required
Paygate id
encryption_key String 255 Required
Encryption key
description String 1000 Provide your method details. You may want to explain any policies regarding fees.
fac Object
secure_3d Boolean Required
(true, false)
merchant_id String 255 Required
Merchant id
password String 255 Required
Password
description String 1000 Provide your method details. You may want to explain any policies regarding fees.

Request example data

{
  "internal_code": "1",
  "stripe": {
    "secret_key": "1111sk_test_51H7HnlHPCAbLd5plwTWI8l2huIWi1RJBOEdOzT8PB2G0x3oSBTvzzBYo",
    "public_key": "pk_test_51H7HnlHPCAbLd5plb43fehlZ3nyDn1M4vSKb74EWE1",
    "description": "Provide your Stripe details. You may want to explain any policies regarding fees"
  },
  "authorize": {
    "login_id": "user",
    "transaction_key": "tran_key",
    "description": "Explain which credit cards you take, and refer to online payment links in your rental agreement or quotes, if you use this feature in 365"
  },
  "paypal": {
    "email": "[email protected]",
    "description": "Provide your PayPal details. You may want to explain any policies regarding fees."
  },
  "payfort": {
    "secret_key": "sk_test_51H7Hnl",
    "open_key": "open_key_yDn1M4v",
    "description": "Provide your PayPal details. You may want to explain any policies regarding fees"
  },
  "paygate": {
    "paygate_id": "10312014130",
    "encryption_key": "secret",
    "description": "Provide your PayGate details. You may want to explain any policies regarding fees."
  },
  "fac": {
    "secure_3d": true,
    "merchant_id": "12345678",
    "password": "secret",
    "description": "Provide your First Atlantic Commerce details. You may want to explain any policies regarding fees."
  }
}

Response example data

{
  "code": 200
}

Instruction Setting

Request Endpoint: /api/property-instruction.

Request parameters:

Name Type Min Max Description
internal_code String 10 Required
Internal code in user system.
logistics Object
check_in_from String Check in from
24-Hour Time Format (HH:MM)
check_in_until String Check in until
24-Hour Time Format (HH:MM)
check_out_before String Check in before
24-Hour Time Format (HH:MM)
early_check_in_late_check_out_fee Number 2147483647 Early checkin and late checkout fee
guest_notification_message String 1000 Guest notification message
directions Object
check_in_location String (AtTheProperty, AtTheOffice, AtTheBusStation, AtTheRailwayStation, AtTheAirport, byYourTaxiDriver, AtTheAddressBelow)
instruction String Instruction
map base64 Image or Pdf
house_rule String 10000 House rule
Can be html

Request example data

{
  "internal_code": "1",
  "logistics": {
    "check_in_from": "14:00",
    "check_in_until": "12:00",
    "check_out_before": "10:00",
    "early_check_in_late_check_out_fee": 50,
    "guest_notification_message": "Please inform us if there are significant deviations in your planned arrival or departure times. Early check-in or late check-out must be agreed in advance."
  },
  "directions": {
    "check_in_location": "AtTheProperty",
    "instruction": "Explain how guests reach, access and\/or check-in to the property...",
    "map": ""
  },
  "house_rule": "Quiet hours are between 10pm and 8am."
}

Response example data

{
  "code": 200
}

Other Setting

Request Endpoint: /api/property-other.

Request parameters:

Name Type Min Max Description
internal_code String 10 Required
Internal code in user system.
taxes Array List taxes of property
default Boolean if true Tax will automatic add in new transaction (true, false)
name String 255 Name tax
applicable String 100 Applicable (PerNight, PerStay, PerOccupant, PerOccupantPerNight, PerAdult, PerChild, PerAdultPerNight, PerChildPerNight, GlobalTax)
amount Number 2147483647 Amount
amount_type String 10 Amount type (flat, percent)
tax_type String 100 Tax type (Unknown, City tax, GoodsAndServicesTax, LocalTax, TouristTax, VAT)
apply_channel_booking Boolean apply tax to channel booking (true, false)
services Array List services of property
default Boolean if true Service will automatic add in new transaction (true, false)
name String 255 Name service
applicable String 100 Applicable (PerNight, PerStay, PerOccupant, PerOccupantPerNight)
amount Number 2147483647 Amount
amount_type String 10 Amount type (flat, percent)
fee_type String 100 Type of service (Unknown TowelsFee, ElectricityFee, Bed linenFee, GasFee, OilFee, WoodFee, WaterUsageFee, TransferFee, LinenPackageFee, HeatingFee, AirConditioningFee, KitchenLinenFee, HousekeepingFee, AirportShuttleFee, ShuttleBoatFee, SeaPlaneFee, SkiPass, WristbandFee, VisaSupportFee, WaterParkFee, ClubCardFee, ConservationFee, CreditCardFee, PetFee, InternetFee, ParkingFee, Insurance, ServiceFee, ResortFee, BookingFee, TourismFee, DestinationFee, ExtraBedFee, EnvironmentFee, ChildrenExtraFee, CleaningFee, CommunityFee)
apply_channel_booking Boolean apply service to channel booking(true, false)
multiple Boolean Apply select multiple service (true, false)
taxes Array Taxes of service
name String 255 Name tax
percent Number Percent tax
description String 2000 Description service
expenses Array List expenses of property
default Boolean if true Expense will automatic add in new transaction (true, false)
name String Name expense
expense_type String Expense type(MyExpense, OwnerExpense)
amount Number 2147483647 Amount
amount_type String 10 Amount type(Flat, PercentOfRent, PercentOfService, PercentOfTax)
apply_channel_booking Boolean apply expense to channel booking(true, false)
taxes Array List tax of expense
name String 255 Name tax
percent Number Percent tax

Request example data

{
  "internal_code": "1",
  "taxes": [
    {
      "default": false,
      "name": "tax name",
      "applicable": "PerNight",
      "amount": 10,
      "amount_type": "percent",
      "tax_type": "LocalTax",
      "apply_channel_booking": true
    },
    {
      "default": true,
      "name": "VAT",
      "applicable": "PerStay",
      "amount": 10,
      "amount_type": "percent",
      "tax_type": "VAT",
      "apply_channel_booking": true
    }
  ],
  "services": [
    {
      "default": true,
      "name": "Cleaning Fee",
      "applicable": "PerStay",
      "amount": 20,
      "amount_type": "flat",
      "fee_type": "CleaningFee",
      "apply_channel_booking": true,
      "multiple": false,
      "taxes": [
        {
          "name": "VAT",
          "percent": 10
        },
        {
          "name": "tax name",
          "percent": 10
        }
      ],
      "description": ""
    }
  ],
  "expenses": [
    {
      "default": false,
      "name": "",
      "expense_type": "My",
      "amount": 25,
      "amount_type": "PercentOfRent,PercentOfService",
      "apply_channel_booking": true,
      "taxes": [
        {
          "name": "tax name",
          "percent": 10
        }
      ]
    }
  ]
}

Response example data

{
  "code": 200,
  "data": {
    "photo_id": 2
  }
}