Introduction
API Endpoint
https://api.fivesenses.asia/api/{endpoint}
Welcome to the API documentation for Five Senses HMS
To use our API for your development, you need an API key and whitelisted your Domain. Please provide your Domain to us for whitelist or whitelist your domain using your API key in order to use it for other API calls.
The set of APIs here are created to allow developers to connect to our HMS in order to get the property details, reservation details and booking engine's room rates details.
Whitelist Domain
# Here is an example of whitelist your Domain
curl \
-X POST https://api.fivesenses.asia/api/domain-whitelist \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_access_token_here" \
-d '{
"domain": "https://api.fivesenses.asia/"
}'
# Here is an example to check your whitelisted Domain
curl \
-X GET https://api.fivesenses.asia/api/domain-whitelist/check \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
Once you got the API key that are provided by our team, without your Domain whitelisted, you may have to whitelist your Domain to continue using the key for your development.
If you already provided our team with an Domain that are whitelisted, you may ignore this part and move on to test your API calls to check whether your Domain is whitelist correctly.
Important Note: You must get your Domain to be whitelisted in our environment to continue using the key for other usage. You can only whitelist one Domain, if there's any amendment on the Domain, please contact us.
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| Content-Type | String (Header) | Yes |
Must be application/json for this request.
|
| domain | String (Body) | Yes |
The domain to whitelist (e.g., api.fivesenses.asia).
|
To get your domain whitelisted in our environment, you need to make a POST call to the following url:
https://api.fivesenses.asia/api/domain-whitelist
Result example :
# Success
{
"status": "success",
"domain": "api.fivesenses.asia",
"whitelisted": true
}
# Failed
{
"status": "failed",
"message": "Your domain is not whitelisted."
}
It is important for you to test your whitelisted Domain to make sure that it's whitelisted in our environment before proceed. Any API calls that are executed without the correct domain will be rejected.
Failling to whitelist domain will be rejected by the system as well.
To check if your domain is whitelisted in our environment, you need to make a GET call to the following url:
https://api.fivesenses.asia/api/domain-whitelist/check
Property
# Here is an example to get full list of active property
curl \
-X GET https://api.fivesenses.asia/api/property-list/get \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to access all our active property in the system. Each of the property is allocated with an unique ID. You are required to pass the property ID in order to search for reservations using the reservation API.
Result example:
[
{
"id": "6oNaISibfUD69MJYxYFP",
"property_name": "Trion",
"address": "Jalan Dua, Chan Sow Lin, 55200 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur",
"city": "Kuala Lumpur, Malaysia",
"postal_code": "55200",
"country": "Chan Sow Lin",
"phone_number": "0123754008",
"latitude": 3.12379,
"longitude": 101.71041,
"hotel_description": "Trion Kuala Lumpur offers a hot tub and a fitness center, as well as air-conditioned accommodations in Kuala Lumpur, 2.2 miles from Berjaya Times Square. Private parking is available on site at this recently renovated property. The accommodation provides a sauna, free WiFi throughout the property, and family rooms.\\r\\n\\r\\nAt the apartment complex, the units are equipped with a wardrobe, a flat-screen TV, a private bathroom, bed linen, and towels. Some rooms will provide you with a fully equipped kitchen with a microwave, a fridge, and kitchenware.\\r\\n\\r\\nIn addition to a year-round outdoor pool, the apartment also features a children’s playground.\\r\\n\\r\\nStarhill Gallery is 2.7 miles from Trion Kuala Lumpur, while Pavilion Kuala Lumpur is 2.7 miles away. The nearest airport is Sultan Abdul Aziz Shah, 14 miles from the accommodation, and the property offers a paid airport shuttle service.",
"popular_landmark": "National Planetarium Kuala Lumpur - 2.9 km,Islamic Arts Museum Malaysia - 3 km,National Museum of Malaysia - 3 km,KLCC Park - 3.5 km,Petrosains, The Discovery Centre - 3.7 km,Petronas Twin Towers - 3.7 km",
"nearby_landmark": "MyTown Shopping Centre - 3 min drive,Sunway Velocity Mall - 3 min drive,AEON Taman Maluri - 3 min drive,Berjaya Times Square - 5 min drive,Pavilion Kuala Lumpur - 6 min drive",
"check_in_info": "<p><strong>From 15:00 PM to 22:00 PM</strong></p><p><strong>Special check-in instructions:</strong></p><ol><li>Self Check in (Mail Box)</li><li>Guests are required to show a photo ID/Passport upon check-in.</li><li>Guests must contact the property in advance for check-in instructions during office hours from 10:00 AM to 19:00 PM.</li><li>To make arrangements for check-in please contact the property at least 24 hours before arrival using the information on the booking confirmation.</li></ol><p><span style=\"color: rgb(119, 131, 143);\">“Please note that additional services are subject to availability such as early check-in and late check-out. The management reserves the right to refund any unavailable additional services.” </span></p>",
"check_out_info": "<p><strong>From 09:00 AM to 11:00 AM</strong></p><p><strong>Check-out instructions:</strong></p><ol><li>Place your key card or physical key securely inside the mailbox. Ensure it is properly returned to its original location.</li><li>Before closing the mailbox, take a clear photo of the key or card inside, and send it to the property's contact number listed in your booking confirmation.</li></ol>",
"cancellation_prepayment": "<p>Cancel 14 days prior to arrival date charge 50%, 7 days charge 100%, No show 100% charge.</p>",
"refund_damage_deposit": "<p>A damage deposit of <strong>MYR 200</strong> is required on arrival. This will be collected by bank transfer. You should be reimbursed within 14 days of check-out. Your deposit will be refunded in full via bank transfer, subject to an inspection of the property.</p>",
"children_beds": "<p><strong>Child policies:</strong></p><ol><li>Children of any age are welcome.</li><li>To see correct prices and occupancy information, please add the number of children in your group to your search.</li></ol><p><strong>Cot and extra bed policies:</strong></p><ol><li>Prices for cots and extra beds are can select as part of the additional services offered, and these selected services will be charges into the total price of their stay.</li><li>The number of extra beds and cots allowed is dependent on the option you choose. Please check your selected option for more information.</li><li>All cots and extra beds are subject to availability.</li></ol>",
"smoking_restriction": "<p>Smoking is not allowed.</p>",
"quiet_hours": "<p>Guests must be quiet between 21:00 pm and 06:00 am.</p>",
"pets_restriction": "<p>Pets are not allowed.</p>",
"getting_around": null,
"parking": "<p>Paid Parking at Property.</p>",
"facilities": "50m Swimming Pool,Amphitheater,Badminton Court 1 & 2,BBQ Terrace,Changing Room,Chill Out Corner,Chill Out Lounge,Cloud 9 Jogging Track (310m),Elevated Boardwalk,Floating Cube,Floating Jacuzzi,Game Corner,Game Court,Gymnasium Overlooking Pool,Herb Garden,Kid's Party Pavilion,Kid's Play Area,Kid's Pool With WaterPlay,Lagoon Pool,Library / Reading Room,Multipurpose Hall,Outdoor Cafe,Playground,Pool Deck,Poolside Lounge,Prayer Hall,Raised Party Deck,Reading Corner,Rooftop Garden,Sauna,Sky Garden Lounge,Sky Garden Swing,Sky Gym,Sky Workout,Sky Yoga Deck,Spill-Out Function Terrace,Starry Lounge,Sunbathing Shelf,Sunken Seat,Table Tennis,Toilet,Viewing Deck,Viewing Lounge",
"essentials": "Kuala Lumpur Salak Selatan KTM Komuter Station - 3 min drive,Chan Sow Lin Station - 17 min walk,Subang (SZB-Sultan Abdul Aziz Shah) - 31 min drive",
"features": "Bidet,Carbon Monoxide Detector,Ceiling Fan,Cleaning Products,Desk,Dining Area,Dining Table,Dishes and Silverware,Dryer,Electric Kettle,Fire Extinguisher,Flat Screen TV,Free Toiletries,Free Wifi,Hair Dryer,Ironing Facilities,Kitchen,Kitchenette,Kitchenware,Linens,Microwave,Private apartment in building,Refrigerator,Seating Area,Shampoo,Shower,Shower Gel,Single-room AC,Smoke Alarm,Socket Near The Bed,Sofa Bed,Stove,Streaming Service (Netflix),Tea/Coffee,Tile/Marble Floor,Toilet,Toilet Paper,Towels,Wardrobe or Closet,Washing Machine,Wine Glasses,Air Conditioning"
},
{
"id": "Dlr2W7d1qYwZTuqRUMZ2",
"property_name": "ViiA Residences",
"address": "Jalan Bangsar, 59200 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur, Malaysia",
"city": "Kuala Lumpur, Malaysia",
"postal_code": "59200",
"country": "KL Eco City",
"phone_number": "0125634008",
"latitude": 3.1179826436331717,
"longitude": 101.67388904426976,
"hotel_description": ""Situated in Kuala Lumpur, ViiA Residences is a 5 minutes walk away from Mid Valley Megamall. ViiA Residences Kuala Lumpur, Five Senses features accommodation with a 42nd floor rooftop infinity swimming pool overlooking the city view of Kuala Lumpur, private parking, a fitness centre and a restaurant. With free WiFi, this 4 Star Rated Aparthotel offers a concierge service, luggage storage space and self-check in kiosk facilities.\\r\\n\\r\\nThe accommodations are equipped with air conditioning, a seating area, a flat-screen TV with Netflix streaming services, a kitchen, a dining area and a private bathroom with a hair dryer, a walk-in shower and a bidet. A microwave, a fridge and stovetop are also provided, as well as a kettle. At the ViiA Residences by Five Senses, all units come with bed linen and towels.\\r\\n\\r\\nKL Sentral is 4.6 km from the accommodation, while Thean Hou Temple is 4.8 km from the property. The nearest airport is Sultan Abdul Aziz Shah Airport, 18 km from Amari Kuala Lumpur. "",
"popular_landmark": "KL Bird Park - 5.9 km,Central Market - 5.8 km,Perdana Botanical Gardens - 7.0km,Menara Kuala Lumpur - 7.6 km,Jalan Alor - 7.6 km,Chinatown Kuala Lumpur - 7.9 km,Petronas Twin Towers - 11.4 km,Pavillion Kuala Lumpur - 12 km",
"nearby_landmark": "INC KL Eco City Mall - 250m,The Gardens Mall - 610m,Midvalley Mega Mall - 660m,Art Printing Work - 2km,Leeyas Corner (Restaurant) - 2.3km,Pacific Standard Bar - 3.2km",
"check_in_info": "<p><strong>From 15:00 pm to 22:00 pm</strong></p><p><strong>Special check-in instructions:</strong></p><ol><li class="ql-align-justify">The front desk is open daily from 10:00 AM – 22:00 PM.</li><li>Guests are required to show a photo ID/Passport upon check-in.</li><li class="ql-align-justify">Guests must contact the property in advance for check-in instructions; front desk staff will greet guests on arrival.</li><li class="ql-align-justify">To make arrangements for check-in please contact the property at least 24 hours before arrival using the information on the booking confirmation.</li><li class="ql-align-justify">If you are planning to arrive after 19:00 PM please contact the property in advance using the information on the booking confirmation.</li></ol><p class="ql-align-justify">“Please note that additional services are subject to availability such as early check-in and late check-out. The management reserves the right to refund any unavailable additional services.” </p>",
"check_out_info": "<p><strong>From 09:00 am to 11:00 am</strong></p><p><strong>Check-out instructions:</strong></p><ol><li>Prior to your departure, kindly return your key access card to the reception desk. This will help us finalize your check-out process.</li></ol>",
"cancellation_prepayment": "<p>Cancel 14 days prior to arrival date charge 50%, 7 days charge 100%, No Show 100% charge.</p>",
"refund_damage_deposit": "<p>A damage deposit of <strong>MYR 200</strong> <strong>(Short stay)</strong> and <strong>MYR 1000 (Long stay)</strong> is required on arrival. This will be collected by bank transfer. You should be reimbursed within 14 days of check-out. Your deposit will be refunded in full via bank transfer, subject to an inspection of the property.</p>",
"children_beds": "<p><strong>Child policies:</strong></p><ol><li>Children of any age are welcome.</li><li>To see correct prices and occupancy information, please add the number of children in your group to your search.</li></ol><p><strong>Cot and extra bed policies:</strong></p><ol><li>Prices for cots and extra beds are can select as part of the additional services offered, and these selected services will be charges into the total price of their stay.</li><li>The number of extra beds and cots allowed is dependent on the option you choose. Please check your selected option for more information.</li><li>All cots and extra beds are subject to availability.</li></ol>",
"smoking_restriction": "<p>Smoking is not allowed.</p>",
"quiet_hours": "<p>Guests must be quiet between 21:00 pm and 06:00 am.</p>",
"pets_restriction": "<p>Pets are not allowed.</p>",
"getting_around": "Distance from city center: 5.9km",
"parking": "<p><span style="color: rgb(25, 30, 59);">Self-parking fee: MYR 15 per day</span></p>",
"facilities": "24-hour security,Air conditioning,Airport Shuttle (Charges),Carbon monoxide detector,CCTV in common areas,City View,Coffee Shop on site,Concierge service,Fire extinguishers,Fitness,Free Wifi,Garden,Jacuzzi,Lift,Meeting room,Non-smoking Rooms,Outdoor furniture,Parking Garage,Playground,Private check-in/check-out,Public Bath,Rock Climbing,Sauna,Seating Area,Security alarm,Smoke alarms,Smoke-free Property,Steam Room,Sun deck,Sun loungers or beach chairs,Swimming Pool,Shopping Mall on site",
"essentials": "Abdullah Hukum LRT Station - 120m,Abdullah Hukum KTM Komuter Station - 130m,Mid Valley KTM Komuter Station - 400m,Muzium Negara MRT Station - 1.9km",
"features": "Air conditioning,Bidet,Carbon monoxide detector,Ceiling fan,Cleaning products,Clothes rack,Desk,Dining area,Dining table,Dishes and silverware,Dryer,Electric kettle,Flat Screen TV,Free toiletries,Free Wifi,Hairdryer,Ironing facilities,Kitchen,Kitchenware,Linens,Microwave,Refrigerator,Seating Area,Shampoo,Shower,Shower gel,Single-room AC,Smoke alarm,Sofa,Stove,Streaming service (Netflix),Tea/Coffee,Toilet paper,Towels,Wardrobe or closet,Washing machine,Wine glasses"
},
]
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
To get the full list of our active property, you need to make a GET call to the following url:
https://api.fivesenses.asia/api/property-list/get
RETURN DESCRIPTION
| Field | Type | Description |
|---|---|---|
| id | String | The unique ID of the property. |
| name | String | The name of the property. |
| address | String | The full address of the property. |
| city | String | The city and country where the property is located. |
| postal_code | String | The postal code of the property. |
| country | String | The country or local area of the property. |
| phone_number | String | Contact phone number for the property. |
| latitude | Float | The latitude coordinate of the property. |
| longitude | Float | The longitude coordinate of the property. |
| description | String | The detailed description of the property. |
| popular_landmark | String | Popular landmarks near the property. |
| nearby_landmark | String | Nearby landmarks and shopping areas. |
| check_in_info | String | Check-in time and instructions for the property. |
| check_out_info | String | Check-out time and instructions for the property. |
| cancellation_prepayment | String | Cancellation and prepayment policy. |
| refund_damage_deposit | String | Refundable damage deposit information. |
| children_beds | String | Children and extra bed policies. |
| smoking_restriction | String | Smoking restrictions at the property. |
| quiet_hours | String | Quiet hours details. |
| pets_restriction | String | Pet restrictions details. |
| getting_around | String | Information about local transport and distances. |
| parking | String | Parking information for the property. |
| facilities | String | Facilities and amenities available at the property. |
| essentials | String | Nearby transport stations or essential locations. |
| features | String | Room features, appliances, and included items. |
Reservation
# Here is an example to get full details of a reservation
curl \
-X GET https://api.fivesenses.asia/api/reservation/{booking_no} \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to access a full details of our reservation from our environment.
There are two types of reservations in our environment:
Single Room Reservation: A single reservation with only one unit booked from the Online Travel Agency (OTA).
Multiple Room Reservation: A single reservation with multiple units booked from the Online Travel Agency (OTA).
Result example:
#Single Room Reservation
{
"reservations": [
{
"booking_no": "9202526940",
"booked_at": "2025-04-10",
"booking_status": "Confirmed",
"property_name": "ViiA Residence",
"property_contact": "+60 11-3627 2858",
"property_address": "Residensi ViiA, Jalan Bangsar, KL Eco City, 59200 Kuala Lumpur, Federal Territory of Kuala Lumpur.",
"property_latitude": "3.1179826436332",
"property_longitude": "101.67388904427",
"ota": "Booking.com",
"reference_id": "9202526940",
"payment_status": "Paid",
"currency": "MYR",
"customer": {
"name": "Lee Jia Jun",
"email": "jiajun@softwell.asia"
},
"web_check_in": {
"status": null,
"steps": null,
"link": "https://book.fivesenses.asia/webCheckIn/Viia/{booking_no}"
},
"rooms": {
"check_in_date": "2025-04-10",
"check_out_date": "2025-04-12",
"check_in_time": "14:45:00",
"check_out_time": "12:00:00",
"room_type": "Signature Studio",
"number_of_adults": "2",
"number_of_children": "1",
"ota_meal_plan": "Room Only",
"booking_fees": "250.00",
"deposit_status": "Paid",
"deposit_amount": "200.00"
}
}
]
}
#Multiple Room Reservation
{
"reservations": [
{
"booking_no": "9202526940",
"booked_at": "2025-04-10",
"booking_status": "Confirmed",
"property_name": "ViiA Residence",
"property_contact": "+60 11-3627 2858",
"property_address": "Residensi ViiA, Jalan Bangsar, KL Eco City, 59200 Kuala Lumpur, Federal Territory of Kuala Lumpur.",
"property_latitude": "3.1179826436332",
"property_longitude": "101.67388904427",
"ota": "Booking.com",
"reference_id": "9202526940",
"payment_status": "Paid",
"currency": "MYR",
"customer": {
"name": "Lee Jia Jun",
"email": "jiajun@softwell.asia"
},
"web_check_in": {
"status": "Started",
"steps": "Complete",
"link": "https://book.fivesenses.asia/webCheckIn/Viia/{booking_no}"
},
"rooms": [
{
"check_in_date": "2025-04-10",
"check_out_date": "2025-04-12",
"check_in_time": "14:45:00",
"check_out_time": "12:00:00",
"room_type": "Signature Studio",
"number_of_adults": "2",
"number_of_children": "1",
"ota_meal_plan": "Room Only",
"booking_fees": "250.00",
"deposit_status": "Paid",
"deposit_amount": "200.00"
},
{
"check_in_date": "2025-04-10",
"check_out_date": "2025-04-12",
"check_in_time": "14:45:00",
"check_out_time": "12:00:00",
"room_type": "Signature Studio",
"number_of_adults": "2",
"number_of_children": "1",
"ota_meal_plan": "Room Only",
"booking_fees": "250.00",
"deposit_status": "Paid",
"deposit_amount": "200.00"
}
]
}
]
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
| booking_no | String | Yes | Get the booking_no from the guest/user input. |
To get the full list of our reservation details, you need to make a GET call to the following url:
https://api.fivesenses.asia/api/reservation/{booking_no}
RETURN DESCRIPTION
| Field | Type | Description |
|---|---|---|
| booking_no | String | The booking no. that are found in guest when they book in OTA. Some of the booking_no include numbers and alphabets, depending on the OTA. |
| booked_at | String (Date) | The date of the booking being created in the system or in OTA. |
| booking_status | String | Categories include 'Confirmed', 'Check In', 'Check Out' & 'Cancelled' |
| property_name | String | The property or bulding of the reservation. |
| property_contact | String | The contact number of the property or bulding of the reservation. |
| property_address | String | The address of the property or bulding of the reservation. |
| property_latitude | String | The latitude of the property or bulding of the reservation. |
| property_longitude | String | The longitude of the property or bulding of the reservation. |
| ota | String | The name of Online Travel Agency (OTA) of the reservation. |
| reference_id | String | The reference_id of the reservation, usually also the same value as booking_no. |
| payment_status | String | The payment status of the reservation, categories including 'Paid', 'Pending' & 'Paid VCC'. |
| currency | String | The currency of the reservation. |
| customer : name | String | The name of the guest of the reservation. |
| customer : email | String | The email of the guest of the reservation. |
| web_check_in : status | String | The status of the web check in (Pre Hotel Check In) of the reservation, categories including NULL or 'Started'. |
| web_check_in : steps | String | The steps that are executed of the web check in (Pre Hotel Check In) of the reservation, categories including 'Incomplete' or 'Complete'. |
| web_check_in : link | String | The URL to access the web check in (Pre Hotel Check In) of the reservation. |
| room : check_in_date | String (Date) | The check in date of the reservation. |
| room : check_out_date | String (Date) | The check out date of the reservation. |
| room : check_in_time | String (Date) | The check in time of the reservation. |
| room : check_out_time | String (Date) | The check out time of the reservation. |
| room : room_type | String | The room name of the reservation. |
| room : number_of_adults | Integer | The total number of adults of the reservation. |
| room : number_of_children | Integer | The total number of children of the reservation. |
| room : ota_meal_plan | String | The OTA meal plan of the reservation, categories include 'Room Only' or 'Breakfast'. |
| room : booking_fees | Float | The total booking fee of the reservation. |
| room : deposit_status | String | The deposit status of the reservation, categoties include 'Pending' or 'Paid'. |
| room : deposit_amount | Float | The total deposit fee of the reservation. |
# Here is an example to make rooms reservation of a property's
curl \
-X POST https://api.fivesenses.asia/api/createBooking \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
-H "Content-Type: application/json" \
-d '{
"property_id" : "GrdNqywSOCBp3092wF88",
"guest_name" : "Guest Name",
"guest_email" : "Guest Email",
"room_type_id" : "OcU9Noee7iQ207H2DSm0",
"booking_status" : "Confirmed",
"check_in_date" : "2025-04-18",
"check_out_date" : "2025-04-19",
"room_no" : "1",
"adult_no" : "2",
"child_no" : "0",
"payment_status": "Paid",
"web_check_in_status" : "1",
"web_check_in_step" : "3"
}'
Sample Booking for Testing:
ViiA Residences - 109326023 - Single Room Reservation
ViiA Residences - 5780782375 - Multiple Rooms Reservation
Create Dummy Booking for Testing:
To create a test booking, you are allowed to create a dummy reservation in the property Continew with the property_id GrdNqywSOCBp3092wF88
Result example:
{
"reservations": [
{
"booking_no": "2034954954",
"booked_at": "2025-04-21",
"booking_status": "Confirmed",
"property_name": "Continew",
"property_contact": "0124314008",
"property_address": null,
"property_latitude": "3.1335804606282",
"property_longitude": "101.71752803674",
"ota": "Direct (WIT)",
"reference_id": "366590162",
"payment_status": "Paid",
"currency": "MYR",
"customer": {
"name": "Sor Jia Xian",
"email": "jiaxian325@gmail.com"
},
"web_check_in": {
"status": "Started",
"steps": "Complete",
"link": "https://book.fivesenses.asia/webCheckIn/Continew/2034954954"
},
"rooms": [
{
"check_in_date": "2025-04-21",
"check_out_date": "2025-04-22",
"check_in_time": "12:00:00",
"check_out_time": "14:45:00",
"room_type": "Room Type One",
"number_of_adults": "1",
"number_of_children": "0",
"ota_meal_plan": "Room Only",
"booking_fees": "396.00",
"deposit_status": null,
"deposit_amount": null
}
]
}
]
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
| property_id | String | Yes | Property that are selected by the guest. |
| guest_name | String | Yes | Name of the guest who make the reservation. |
| guest_email | String | Yes | Email of the guest who make the reservation. |
| room_type_id | String | Yes | Room Type that are selected by the guest. |
| booking_status | String | Yes | The status of the reservation, categoties include 'Confirmed', 'Cancelled', 'Check In', 'Check Out' or 'Extended'. |
| check_in_date | String (Date) | Yes | Check in date that are selected by the guest. |
| check_out_date | String (Date) | Yes | Check out date that are selected by the guest. |
| adult_no | Integer | Yes | Total of adults number that are selected by the guest. |
| child_no | Integer | Yes | Total of children number that are selected by the guest. |
| room_no | Integer | Yes | Total of rooms that are selected by the guest. |
| payment_status | String | Yes | Payment Status of reservation, categoties include 'Paid', 'Pending' & 'Paid VCC'. |
| web_check_in_status | Integer | Yes | The status of the web check in of reservation can be either 'null' or '1', where '1' indicates that check in has 'Started'. |
| web_check_in_step | Integer | Yes | The steps that are executed of the web check in of reservation can be either '1' or '3', where '1' indicates that step is 'Incomplete', where '3' indicates that step is 'Complete'. |
To make a reservation in our property's, you need to make a POST call to the following url:
https://api.fivesenses.asia/api/createBooking
The API will return the reservation details when the reservation is created successfully.
RETURN DESCRIPTION
| Field | Type | Description |
|---|---|---|
| booking_no | String | The booking no. that are found in guest when they book in OTA. Some of the booking_no include numbers and alphabets, depending on the OTA. |
| booked_at | String (Date) | The date of the booking being created in the system or in OTA. |
| booking_status | String | Categories include 'Confirmed', 'Check In', 'Check Out' & 'Cancelled' |
| property_name | String | The property or bulding of the reservation. |
| property_contact | String | The contact number of the property or bulding of the reservation. |
| property_address | String | The address of the property or bulding of the reservation. |
| property_latitude | String | The latitude of the property or bulding of the reservation. |
| property_longitude | String | The longitude of the property or bulding of the reservation. |
| ota | String | The name of Online Travel Agency (OTA) of the reservation. |
| reference_id | String | The reference_id of the reservation, usually also the same value as booking_no. |
| payment_status | String | The payment status of the reservation, categories including 'Paid', 'Pending' & 'Paid VCC'. |
| currency | String | The currency of the reservation. |
| customer : name | String | The name of the guest of the reservation. |
| customer : email | String | The email of the guest of the reservation. |
| web_check_in : status | String | The status of the web check in (Pre Hotel Check In) of the reservation, categories including NULL or 'Started'. |
| web_check_in : steps | String | The steps that are executed of the web check in (Pre Hotel Check In) of the reservation, categories including 'Incomplete' or 'Complete'. |
| web_check_in : link | String | The URL to access the web check in (Pre Hotel Check In) of the reservation. |
| room : check_in_date | String (Date) | The check in date of the reservation. |
| room : check_out_date | String (Date) | The check out date of the reservation. |
| room : check_in_time | String (Date) | The check in time of the reservation. |
| room : check_out_time | String (Date) | The check out time of the reservation. |
| room : room_type | String | The room name of the reservation. |
| room : number_of_adults | Integer | The total number of adults of the reservation. |
| room : number_of_children | Integer | The total number of children of the reservation. |
| room : ota_meal_plan | String | The OTA meal plan of the reservation, categories include 'Room Only' or 'Breakfast'. |
| room : booking_fees | Float | The total booking fee of the reservation. |
| room : deposit_status | String | The deposit status of the reservation, categoties include 'Pending' or 'Paid'. |
| room : deposit_amount | Float | The total deposit fee of the reservation. |
Room Rates
# Here is an example to get full details of a property's room rates
curl \
-X GET https://api.fivesenses.asia/api/getRoomApi?property={property_id}&check_in_date={check_in_date}&check_out_date={check_out_date}&adult_no={adult_no}&child_no={child_no}&room_no={room_no} \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to access a full details of our property's room rates.
Developer are required to provide all the info in order to get the full list of the room rates when execute the API calls.
Result example:
{
"rooms": [
{
"property_name": "ViiA Residences",
"property_id": "Dlr2W7d1qYwZTuqRUMZ2",
"check_in_date": "2025-04-17",
"check_out_date": "2025-04-18",
"room_no": "1",
"adult_no": "1",
"child_no": "0",
"check_out_url": "https://book.fivesenses.asia/{property_id}/{room_type_id}/room-booking?check_in={check_in_date}&check_out={check_out_date}&room_no={room_no}&adult_no={adult_no}&child_no={child_no}",
"rooms": [
{
"name": "Premium One Bedroom",
"room_type_id": "cvMb7pjVHpO31rhdfYOA",
"price_per_night_before_tax": "420.00",
"discount_amount_per_night_before_tax": "63.00",
"discounted_price_per_night_before_tax": "357.00",
"price_total_night_before_tax": "420.00",
"discount_amount_total_night_before_tax": "63.00",
"discounted_price_total_night_before_tax": "357.00",
"availability": "1",
"size_measurement": "689 sqft",
"maximum_occupancy": 3,
"maximum_adult": 3,
"maximum_children": 2,
"charges_per_extra_occupancy": "30.00",
"bed_provide": "1 King Bed",
"number_of_bed_room": 1,
"number_of_living_room": 1,
"number_of_bath_room": 1,
"addon": "Early Check-in (10 AM - 12 PM) - RM120.00, Early Check-in (12 PM - 2 PM) - RM80.00, Late Check-out (12 PM - 2 PM) - RM80.00, Late Check-out (2 PM - 4 PM) - RM120.00, 1 Baby Cot - RM60.00, Breakfast Set Per Pax - RM35.00, Housekeeping - One Bedroom (Per Session) - RM50.00, Extra Bed (Towel/Pillow) Per Pax/Per Night - RM60.00, Storage (Luggage/Parcel)- 1 Night - RM10.00"
},
{
"name": "Premium Two Bedroom",
"room_type_id": "wBIk4rzeEWZyUzpMMgbP",
"price_per_night_before_tax": "590.00",
"discount_amount_per_night_before_tax": "88.50",
"discounted_price_per_night_before_tax": "501.50",
"price_total_night_before_tax": "590.00",
"discount_amount_total_night_before_tax": "88.50",
"discounted_price_total_night_before_tax": "501.50",
"availability": "15",
"size_measurement": "807 sqft",
"maximum_occupancy": 4,
"maximum_adult": 4,
"maximum_children": 3,
"charges_per_extra_occupancy": "30.00",
"bed_provide": "2 Queen Beds",
"number_of_bed_room": 2,
"number_of_living_room": 1,
"number_of_bath_room": 1,
"addon": "Early Check-in (10 AM - 12 PM) - RM120.00, Early Check-in (12 PM - 2 PM) - RM80.00, Late Check-out (12 PM - 2 PM) - RM80.00, Late Check-out (2 PM - 4 PM) - RM120.00, 1 Baby Cot - RM60.00, Breakfast Set Per Pax - RM35.00, Housekeeping - 2 Bedroom (Per Session) - RM80.00, Extra Bed (Towel/Pillow) Per Pax/Per Night - RM60.00, Storage (Luggage/Parcel)- 1 Night - RM10.00"
}
]
}
]
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
| property | String | Yes | Property (Property ID) that are selected by the guest. |
| check_in_date | String (Date) | Yes | Check in date that are selected by the guest. |
| check_out_date | String (Date) | Yes | Check out date that are selected by the guest. |
| adult_no | Integer | Yes | Total of adults number that are selected by the guest. |
| child_no | Integer | Yes | Total of children number that are selected by the guest. |
| room_no | Integer | Yes | Total of rooms that are selected by the guest. |
To get the full list of our property's room rates details, you need to make a GET call to the following url:
https://api.fivesenses.asia/api/getRoomApi?property={property_id}&check_in_date={check_in_date}&check_out_date={check_out_date}&adult_no={adult_no}&child_no={child_no}&room_no={room_no}
RETURN DESCRIPTION
| Field | Type | Description |
|---|---|---|
| property_id | String | The property id can be found from the Property API. |
| check_in_date | String (Date) | The check in date for the stay, format of the date should be YYYY-MM-DD. |
| check_out_date | String (Date) | The check out date for the stay, format of the date should be YYYY-MM-DD. |
| adults_no | Integer | The total number of adults for the stay. |
| child_no | Integer | The total number of children for the stay. |
| room_no | Integer | The total number of rooms requested for the stay. |
| check_out_url/td> | String | The url of revervation. |
| room : name | String | The name of the available room type. |
| room : room_type_id | String | The ID of the available room type. |
| room : price_per_night_before_tax | Integer | Price per night brfore tax of the available room type. |
| room : discount_amount_per_night_before_tax | Integer | The discount amount applied per night before tax. |
| room : discounted_price_per_night_before_tax | Integer | The price per night after discount, before tax. |
| room : price_total_night_before_tax | Integer | The total price for all nights before any discount and tax. |
| room : discount_amount_total_night_before_tax | Integer | The total discount applied for all nights before tax. |
| room : discounted_price_total_night_before_tax | Integer | The total price after discount for all nights, before tax. |
| room : availability | Integer | The number of available rooms of this type. |
| room : size_measurement | String | The room size in sqft. |
| room : maximum_occupancy | Integer | The maximum total number of guests allowed. |
| room : maximum_adult | Integer | The maximum number of adults allowed. |
| room : maximum_children | Integer | The maximum number of children allowed. |
| room : charges_per_extra_occupancy | String | The additional charge per extra guest. |
| room : bed_provide | String | The type and number of beds provided. |
| room : number_of_bed_room | Integer | The number of bedrooms in the room. |
| room : number_of_living_room | Integer | The number of living rooms in the room. |
| room : number_of_bath_room | Integer | The number of bathrooms in the room. |
| room : addon | String | List of available add-ons for the room. |
Reservation Payment Link
# Here is an example to get payment link
curl \
-X POST https://api.fivesenses.asia/api/bookingPaymentLink/{property_id}/{booking_no} \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to get payment link for reservation.
Developer are required to provide all the info in order to get the payment link when execute the API calls.
Result example:
{
"payment_link": "https://book.fivesenses.asia/payment/GrdNqywSOCBp3092wF88/6387241593/CTNW-jhXlBIv5Cjigv9G3F31f?paymentOrigin=Payment+Link+Invoice&paymentID=CTNWEP2966928694",
"link_expiry_time": "2025-07-02 13:11:08"
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
| property_id | String | Yes | Get the property_id using the Property API. |
| booking_no | String | Yes | Get the booking_no from the guest/user input. |
To get the payment link for reservation, you need to make a POST call to the following url:
https://api.fivesenses.asia/api/bookingPaymentLink/{property_id}/{booking_no}
RETURN DESCRIPTION
| Field | Type | Description |
|---|---|---|
| payment_link | String | The payment link for reservation. |
| link_expiry_time | String (Date) | The payment link expiration time. |
API Limit
# Here is an example to get the rate limit usage of the API.
curl \
-X GET https://api.fivesenses.asia/api/rate-limit/check \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to check the API's rate limit usage.
Result example:
{
"status": "success",
"message": "You have used 0 of your 5000 daily API calls."
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
To check the rate limit usage of the API, you need to make a GET call to the following url:
https://api.fivesenses.asia/api/rate-limit/check
Conversation Status Check
# Here is an example to get the conversation status.
curl \
-X GET https://api.fivesenses.asia/api/chat/status?user_id={user_id}&origin={origin} \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to check the conversation status.
Result example:
{
"status": "success",
"conversation_status": {
"status": "bot_active",
"recent_message": "2025-12-10 12:08:25"
}
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
| user_id | String | Yes | Get the user email or phone number. |
| origin | String | Yes | Origin of the user's conversation. |
To check the conversation status, you need to make a GET call to the following url:
https://api.fivesenses.asia/api/chat/status
Conversation Status Update
# Here is an example to update the conversation status.
curl \
-X POST https://api.fivesenses.asia/api/chat/status?user_id={user_id}&origin={origin}&status={status} \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to update the conversation status.
Result example:
{
"status": "success",
"message": "Conversation status updated successfully."
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
| user_id | String | Yes | Get the user email or phone number. |
| origin | String | Yes | Origin of the user's conversation. |
| status | String | Yes | Conversation status needs to be updated. |
To update the conversation status, you need to make a POST call to the following url:
https://api.fivesenses.asia/api/chat/status
Conversation Feedback
# Here is an example to store the conversation feedback.
curl \
-X POST https://api.fivesenses.asia/api/chat/feedback?user_id={user_id}&origin={origin}&feedback={feedback} \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to store the conversation feedback.
Result example:
{
"status": "success",
"message": "Feedback submitted successfully."
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
| user_id | String | Yes | Get the user email or phone number. |
| origin | String | Yes | Origin of the user's conversation. |
| feedback | String | Yes | Conversation feedback message from user. |
To store the conversation feedback, you need to make a POST call to the following url:
https://api.fivesenses.asia/api/chat/feedback
Conversation Contact List
# Here is an example to get the contact list.
curl \
-X GET https://api.fivesenses.asia/api/chat/contactlist?origin={origin}&status={status} \
-H "Authorization: Bearer your_access_token_here" \
-H "X-Client-Domain: your_domain_here" \
This API allow you to get the contact list where the last message was sent 10 minutes ago based on origin and status.
Result example:
{
"status": "success",
"contact_list": [
{
"email": "1346181830@guest.com",
"first_message": "2025-12-10 13:46:27",
"recent_message": "2025-12-10 13:47:56",
"origin": "be_web",
"status": "bot_active"
},
{
"email": "1448478617@guest.com",
"first_message": "2025-12-11 14:49:00",
"recent_message": "2025-12-11 14:49:00",
"origin": "be_web",
"status": "bot_active"
}
]
}
Result example:
{
"status": "success",
"contact_list": [
{
"phone_number": "60142762634",
"first_message": "2025-12-09 15:31:16",
"recent_message": "2025-12-10 15:19:22",
"origin": "whatsapp",
"status": "bot_active"
},
{
"phone_number": "601136272858",
"first_message": "2025-12-10 10:34:33",
"recent_message": "2025-12-10 14:42:23",
"origin": "whatsapp",
"status": "bot_active"
}
]
}
QUERY PARAMETERS
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | String (Header) | Yes |
Bearer token for authentication. Format: Bearer your_access_token_here
|
| X-Client-Domain | String (Header) | Yes |
X-Client-Domain for authentication. Format: your whitelisted_domain_name
|
| origin | String | Yes | Origin of the user's conversation. |
| status | String | Yes | The conversation status of the list. |
To get the contact list where the last message was sent 10 minutes ago, you need to make a GET call to the following url:
https://api.fivesenses.asia/api/chat/contactlist
Contact Us
If you faced any difficulties, please contact us jiajun@softwell.asia