{"info":{"_postman_id":"4cc8bd55-8b28-415c-a037-a82e00e7aad2","name":"Revenue Booster Open API Documentation","description":"<html><head></head><body><p>Welcome to GuestPro Revenue Booster Open API Documentation</p>\n<p>This page contains information about the services and API provided by GuestPro. You'll find API documentation with examples, object model explanations, code snippets and integration best practices examples.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"47774192","collectionId":"4cc8bd55-8b28-415c-a037-a82e00e7aad2","publishedId":"2sB3BLhSLv","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-02-04T09:05:15.000Z"},"item":[{"name":"Channel Manager","item":[{"name":"Availability","item":[{"name":"Update Availability","id":"e1d4ef73-7e41-4d88-98a2-d267f625a4aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"api-key","value":"{{api_key}}","description":"<p>api key for authorization</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": [\n        {\n            \"attributes\": {\n                \"changes\": [\n                    {\n                        \"attributes\": {\n                            \"room_type_id\": \"a5b80161-8f78-40ff-ae25-6bd690ebdf35\",\n                            \"date_from\": \"2026-12-01\",\n                            \"date_to\": \"2026-12-03\",\n                            \"availability\": 4\n                        },\n                        \"type\": \"availability_changes\"\n                    }\n                ],\n                \"hotel_code\": \"{{your_hotel_code}}\",\n                \"request_id\": \"3911470b-1a95-48a5-b726-2ac187bdc662\"\n            },\n            \"type\": \"changes_notification\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/cm/api/{{your_cm_code}}/changes/availability","description":"<h3 id=\"endpoint-description\">Endpoint Description</h3>\n<p>This endpoint allows you to submit changes related to hotel availability for a specific hotel. It is primarily used to notify the system about updates in room availability over a specified date range.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>HTTP Method:</strong> POST<br /><strong>URL:</strong> <code>{{base_url}}/cm/api/{{your_cm_code}}/changes</code></p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should include the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"changes\": [\n          {\n            \"attributes\": {\n              \"room_type_id\": \"string\",  // Unique identifier for the room type\n              \"date_from\": \"string\",      // Start date for the availability change (YYYY-MM-DD)\n              \"date_to\": \"string\",        // End date for the availability change (YYYY-MM-DD)\n              \"availability\": \"integer\"   // Availability status (1 for available, 0 for unavailable)\n            },\n            \"type\": \"availability_changes\" // Type of change being reported\n          }\n        ],\n        \"hotel_code\": \"string\",         // Unique code for the hotel\n        \"request_id\": \"string\"          // Unique identifier for the request\n      },\n      \"type\": \"changes_notification\"     // Type of the data being sent\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>The response will contain information regarding the success or failure of the request. It typically includes status codes and any relevant messages that indicate the outcome of the operation. The exact structure of the response may vary based on the implementation but will generally provide feedback on the processed changes.</p>\n<p><strong>Response Example</strong></p>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that the <code>room_type_id</code>, <code>hotel_code</code>, and <code>request_id</code> are correctly specified to avoid processing errors.</p>\n</li>\n<li><p>The <code>date_from</code> and <code>date_to</code> fields should be formatted as per the ISO 8601 standard (YYYY-MM-DD).</p>\n</li>\n<li><p>Availability should be represented as an integer, where <code>1</code> indicates available and <code>0</code> indicates not available.</p>\n</li>\n</ul>\n","urlObject":{"path":["cm","api","{{your_cm_code}}","changes","availability"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e1d4ef73-7e41-4d88-98a2-d267f625a4aa"}],"id":"6b9edb87-bdf3-45ce-a4af-258deacb8139","description":"<p>Each time CM catches any changes at the property state associated with Room Types and Availability mapped to your system, CM will generate a changes message and send it to Revenue Booster endpoint via POST request.</p>\n","_postman_id":"6b9edb87-bdf3-45ce-a4af-258deacb8139"},{"name":"Rates","item":[{"name":"Update Rates","id":"b9305c5b-7ff0-4a39-95c9-1dfd2716cb99","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"api-key","value":"{{api_key}}","description":"<p>api key for authorization</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": [\n        {\n            \"attributes\": {\n                \"changes\": [\n                    {\n                        \"attributes\": {\n                            \"date_from\": \"2026-12-01\",\n                            \"date_to\": \"2026-12-02\",\n                            \"rate_plan_id\": \"1e5d0be9-875d-4f80-8af1-d5a0e60e94dd\",\n                            \"rates\": [\n                                {\n                                    \"currency\": \"USD\",\n                                    \"occupancy\": 2,\n                                    \"rate\": \"125.00\"\n                                }\n                            ],\n                            \"extra_adult\": 20,\n                            \"extra_child\": 10,\n                            \"extra_infant\": 0,\n                            \"room_type_id\": \"a5b80161-8f78-40ff-ae25-6bd690ebdf35\"\n                        },\n                        \"type\": \"rate_changes\"\n                    }\n                ],\n                \"hotel_code\": \"{{your_hotel_code}}\",\n                \"request_id\": \"3911470b-1a95-48a5-b726-2ac187bdc662\"\n            },\n            \"type\": \"changes_notification\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/cm/api/{{your_cm_code}}/changes/rate","description":"<h3 id=\"endpoint-description\">Endpoint Description</h3>\n<p>This endpoint allows users to submit changes related to hotel rates and availability. It is designed to notify the system about specific rate changes for a given hotel.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The request body must be a JSON object containing the following structure:</p>\n<ul>\n<li><p><strong>data</strong>: An array of change objects.</p>\n<ul>\n<li><p><strong>attributes</strong>: Contains the details of the changes.</p>\n<ul>\n<li><p><strong>changes</strong>: An array of change details.</p>\n<ul>\n<li><p><strong>attributes</strong>: Contains the specifics of the rate change.</p>\n<ul>\n<li><p><strong>date_from</strong>: (String) The start date of the rate change in YYYY-MM-DD format.</p>\n</li>\n<li><p><strong>date_to</strong>: (String) The end date of the rate change in YYYY-MM-DD format.</p>\n</li>\n<li><p><strong>rate_plan_id</strong>: (String) The unique identifier for the rate plan being modified.</p>\n</li>\n<li><p><strong>rates</strong>: An array of rate objects.</p>\n<ul>\n<li><p><strong>currency</strong>: (String) The currency code for the rate.</p>\n</li>\n<li><p><strong>occupancy</strong>: (Integer) The occupancy level for which the rate is applicable.</p>\n</li>\n<li><p><strong>rate</strong>: (String) The rate amount.</p>\n</li>\n</ul>\n</li>\n<li><p>extra_adult (integer): The additional charge applied per extra adult guest per night beyond the base <em>occupancy</em> of the room.</p>\n</li>\n<li><p>extra_child (integer): The additional charge applied per extra child guest per night beyond the base <em>occupancy</em> of the room.</p>\n</li>\n<li><p>extra_infant (integer): The additional charge applied per extra infant guest per night beyond the base <em>occupancy</em> of the room.</p>\n</li>\n<li><p><strong>room_type_id</strong>: (String) The unique identifier for the room type being modified.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>hotel_code</strong>: (String) The unique code for the hotel.</p>\n</li>\n<li><p><strong>request_id</strong>: (String) A unique identifier for the request.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>type</strong>: (String) Indicates the type of the notification, which should be set to \"changes_notification\".</p>\n</li>\n</ul>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>The response will confirm the successful processing of the request. It typically includes a status code and a message indicating the outcome of the operation. The exact structure may vary based on the implementation but generally includes:</p>\n<ul>\n<li><p><strong>status</strong>: (String) Indicates whether the request was successful or if there were errors.</p>\n</li>\n<li><p><strong>message</strong>: (String) A descriptive message providing additional information about the request outcome.</p>\n</li>\n<li><p><strong>data</strong>: (Object) May contain additional details related to the processed changes, if applicable.</p>\n</li>\n</ul>\n<p>Ensure that the input adheres to the specified structure to avoid errors in processing the request.</p>\n","urlObject":{"path":["cm","api","{{your_cm_code}}","changes","rate"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"b9305c5b-7ff0-4a39-95c9-1dfd2716cb99"}],"id":"069461d0-b221-40ed-b50d-aa494d6550eb","description":"<p>Each time CM catches any changes at the property state associated with Rate Plans and Room Type mapped to your system, CM will generate a changes message and send it to Revenue Booster endpoint via POST request.</p>\n","_postman_id":"069461d0-b221-40ed-b50d-aa494d6550eb"},{"name":"Restriction","item":[{"name":"Update Restrictions","id":"49b36827-2554-498e-9f75-2ef9e14bd95c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"api-key","value":"{{api_key}}","description":"<p>api key for authorization</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": [\n        {\n            \"attributes\": {\n                \"changes\": [\n                    {\n                        \"attributes\": {\n                            \"rate_plan_id\": \"1e5d0be9-875d-4f80-8af1-d5a0e60e94dd\",\n                            \"room_type_id\": \"a5b80161-8f78-40ff-ae25-6bd690ebdf35\",\n                            \"closed_to_arrival\": true,\n                            \"closed_to_departure\": true,\n                            \"date_from\": \"2026-12-01\",\n                            \"date_to\": \"2026-12-02\",\n                            \"max_stay\": 123,\n                            \"min_stay_arrival\": 2,\n                            \"stop_sell\": true\n                        },\n                        \"type\": \"restriction_changes\"\n                    },\n                    {\n                        \"attributes\": {\n                            \"rate_plan_id\": \"1e5d0be9-875d-4f80-8af1-d5a0e60e94dd\",\n                            \"room_type_id\": \"a5b80161-8f78-40ff-ae25-6bd690ebdf35\",\n                            \"date_from\": \"2026-12-01\",\n                            \"date_to\": \"2026-12-02\",\n                            \"stop_sell\": false\n                        },\n                        \"type\": \"restriction_changes\"\n                    },\n                    {\n                        \"attributes\": {\n                            \"rate_plan_id\": \"1e5d0be9-875d-4f80-8af1-d5a0e60e94dd\",\n                            \"room_type_id\": \"a5b80161-8f78-40ff-ae25-6bd690ebdf35\",\n                            \"date_from\": \"2026-12-01\",\n                            \"date_to\": \"2026-12-04\",\n                            \"max_stay\": 12,\n                            \"min_stay_arrival\": 3\n                        },\n                        \"type\": \"restriction_changes\"\n                    }\n                ],\n                \"hotel_code\": \"{{your_hotel_code}}\",\n                \"request_id\": \"3911470b-1a95-48a5-b726-2ac187bdc662\"\n            },\n            \"type\": \"changes_notification\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/cm/api/{{your_cm_code}}/changes/restriction","description":"<h2 id=\"endpoint-description\">Endpoint Description</h2>\n<p>This endpoint allows users to submit changes related to hotel restrictions and availability. It is designed to handle updates for specific hotel properties by providing a structured payload that includes details about the changes being made.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>URL:</strong> <code>{{base_url}}/cm/api/{{your_cm_code}}/changes</code></p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should contain the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"attributes\": {\n        \"changes\": [\n          {\n            \"attributes\": {\n              \"closed_to_arrival\": &lt;boolean&gt;,\n              \"closed_to_departure\": &lt;boolean&gt;,\n              \"date_from\": &lt;string&gt;,\n              \"date_to\": &lt;string&gt;,\n              \"max_stay\": &lt;integer&gt;,\n              \"min_stay_arrival\": &lt;integer&gt;,\n              \"rate_plan_id\": &lt;string&gt;,\n              \"room_type_id\": &lt;string&gt;,\n              \"stop_sell\": &lt;boolean&gt;\n            },\n            \"type\": \"restriction_changes\"\n          }\n        ],\n        \"hotel_code\": &lt;string&gt;,\n        \"request_id\": &lt;string&gt;\n      },\n      \"type\": \"changes_notification\"\n    }\n  ]\n}\n\n</code></pre>\n<h4 id=\"input-parameters\">Input Parameters</h4>\n<ul>\n<li><p><strong>closed_to_arrival</strong> (boolean): Indicates if arrivals are closed for the specified dates.</p>\n</li>\n<li><p><strong>closed_to_departure</strong> (boolean): Indicates if departures are closed for the specified dates.</p>\n</li>\n<li><p><strong>date_from</strong> (string): The start date for the changes in <code>YYYY-MM-DD</code> format.</p>\n</li>\n<li><p><strong>date_to</strong> (string): The end date for the changes in <code>YYYY-MM-DD</code> format.</p>\n</li>\n<li><p><strong>max_stay</strong> (integer): The maximum number of nights a guest can stay.</p>\n</li>\n<li><p><strong>min_stay_arrival</strong> (integer): The minimum number of nights required for arrivals.</p>\n</li>\n<li><p><strong>rate_plan_id</strong> (string): The identifier for the rate plan associated with the changes.</p>\n</li>\n<li><p><strong>room_type_id</strong> (string): The identifier for the room type affected by the changes.</p>\n</li>\n<li><p><strong>stop_sell</strong> (boolean): Indicates if the property should stop selling for the specified dates.</p>\n</li>\n<li><p><strong>hotel_code</strong> (string): The unique identifier for the hotel.</p>\n</li>\n<li><p><strong>request_id</strong> (string): A unique identifier for the request, useful for tracking purposes.</p>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain a confirmation of the changes submitted. The structure of the response will typically include:</p>\n<ul>\n<li><p>A status indicating the success or failure of the request.</p>\n</li>\n<li><p>Any relevant messages or error details if applicable.</p>\n</li>\n</ul>\n<p>This endpoint is crucial for managing hotel availability and restrictions effectively, ensuring that the changes are communicated accurately to the system.</p>\n","urlObject":{"path":["cm","api","{{your_cm_code}}","changes","restriction"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"49b36827-2554-498e-9f75-2ef9e14bd95c"}],"id":"44ffe3f6-688b-4d4c-a82b-b022f7cc8b12","_postman_id":"44ffe3f6-688b-4d4c-a82b-b022f7cc8b12","description":""},{"name":"Reservation","item":[{"name":"Push Reservation","id":"ad909039-5be5-4d72-8fd6-a71261c81b7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"booking\": {\n        \"status\": \"new\",\n        \"provider_code\": \"Guestaps\",\n        \"hotel_code\": \"the-uma-desa\",\n        \"reservation_id\": \"b3b24f0b-179b-4e9a-afa4-e3a1ef882a48\",\n        \"arrival_date\": \"2024-08-11\",\n        \"departure_date\": \"2024-08-13\",\n        \"currency\": \"IDR\",\n        \"payment_collect\": \"property\",\n        \"payment_type\": \"bank_transfer\",\n        \"customer\": {\n            \"name\": \"Made Cenik\",\n            \"surname\": \"\",\n            \"country\": \"ID\",\n            \"address\": \"\",\n            \"mail\": \"opit.guestpro@gmail.com\",\n            \"phone\": \"+628123456789\",\n            \"meta\": {}\n        },\n        \"notes\": \"Other request\",\n        \"rooms\": [\n            {\n                \"room_type_code\": \"5a30f1b7-ea38-44ed-93a7-6b6c95e24930\",\n                \"occupancy\": {\n                    \"adults\": 2,\n                    \"children\": 1,\n                    \"infants\": 0\n                },\n                \"guests\": [],\n                \"days\": [\n                    {\n                        \"date\": \"2024-08-11\",\n                        \"price\": \"2050000.0\",\n                        \"rate_plan_code\": \"ea6e904c-c9c2-415c-8c48-4536c36478a1\"\n                    },\n                    {\n                        \"date\": \"2024-08-12\",\n                        \"price\": \"2050000.0\",\n                        \"rate_plan_code\": \"ea6e904c-c9c2-415c-8c48-4536c36478a1\"\n                    }\n                ],\n                \"services\": [],\n                \"taxes\": [],\n                \"meta\": {}\n            },\n            {\n                \"room_type_code\": \"c7d11888-4676-47d4-a891-bff26cee71d3\",\n                \"occupancy\": {\n                    \"adults\": 0,\n                    \"children\": 0,\n                    \"infants\": 1\n                },\n                \"guests\": [],\n                \"days\": [\n                    {\n                        \"date\": \"2024-08-11\",\n                        \"price\": \"4000000.0\",\n                        \"rate_plan_code\": \"495203a8-04f4-4194-b3d1-89ea67ace1e9\"\n                    },\n                    {\n                        \"date\": \"2024-08-12\",\n                        \"price\": \"4000000.0\",\n                        \"rate_plan_code\": \"495203a8-04f4-4194-b3d1-89ea67ace1e9\"\n                    }\n                ],\n                \"services\": [],\n                \"taxes\": [],\n                \"meta\": {}\n            }\n        ],\n        \"services\": [],\n        \"taxes\": [],\n        \"deposits\": [\n            {\n                \"amount\": \"12700000.00\",\n                \"currency\": \"IDR\",\n                \"charget_at\": \"2024-07-11T07:06:35.701583Z\",\n                \"type\": \"bank_transfer\",\n                \"notes\": \"\",\n                \"provider_meta\": null\n            }\n        ],\n        \"meta\": {}\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{your_cm_reservation_api}}","description":"<h2 id=\"api-endpoint-description\">API Endpoint Description</h2>\n<p>This endpoint is designed to create a new booking. It accepts a JSON payload that contains comprehensive details about the booking, including customer information, reservation dates, room types, and payment details.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The request body must be a JSON object with the following structure:</p>\n<ul>\n<li><p><strong>booking</strong>: An object containing all booking-related information.</p>\n<ul>\n<li><p><strong>status</strong>: (string) The current status of the booking (e.g., \"new\").</p>\n</li>\n<li><p><strong>provider_code</strong>: (string) The code representing the booking provider.</p>\n</li>\n<li><p><strong>hotel_code</strong>: (string) The code of the hotel where the booking is made.</p>\n</li>\n<li><p><strong>reservation_id</strong>: (string) A unique identifier for the reservation.</p>\n</li>\n<li><p><strong>arrival_date</strong>: (string) The date of arrival in the format YYYY-MM-DD.</p>\n</li>\n<li><p><strong>departure_date</strong>: (string) The date of departure in the format YYYY-MM-DD.</p>\n</li>\n<li><p><strong>currency</strong>: (string) The currency code for the booking (e.g., \"IDR\").</p>\n</li>\n<li><p><strong>payment_collect</strong>: (string) Indicates who will collect the payment (e.g., \"property\").</p>\n</li>\n<li><p><strong>payment_type</strong>: (string) The type of payment method used (e.g., \"bank_transfer\").</p>\n</li>\n<li><p><strong>customer</strong>: An object containing customer details.</p>\n<ul>\n<li><p><strong>name</strong>: (string) The first name of the customer.</p>\n</li>\n<li><p><strong>surname</strong>: (string) The last name of the customer.</p>\n</li>\n<li><p><strong>country</strong>: (string) The country code of the customer.</p>\n</li>\n<li><p><strong>address</strong>: (string) The address of the customer.</p>\n</li>\n<li><p><strong>mail</strong>: (string) The email address of the customer.</p>\n</li>\n<li><p><strong>phone</strong>: (string) The phone number of the customer.</p>\n</li>\n<li><p><strong>meta</strong>: (object) Additional metadata about the customer.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>notes</strong>: (string) Any additional notes related to the booking.</p>\n</li>\n<li><p><strong>rooms</strong>: (array) A list of room objects, each containing:</p>\n<ul>\n<li><p><strong>room_type_code</strong>: (string) The code for the type of room booked.</p>\n</li>\n<li><p><strong>occupancy</strong>: An object specifying the number of occupants.</p>\n<ul>\n<li><p><strong>adults</strong>: (integer) Number of adults.</p>\n</li>\n<li><p><strong>children</strong>: (integer) Number of children.</p>\n</li>\n<li><p><strong>infants</strong>: (integer) Number of infants.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>guests</strong>: (array) A list of guests (if applicable).</p>\n</li>\n<li><p><strong>days</strong>: (array) A list of objects for each day of the stay, each containing:</p>\n<ul>\n<li><p><strong>date</strong>: (string) The date in the format YYYY-MM-DD.</p>\n</li>\n<li><p><strong>price</strong>: (string) The price for that day.</p>\n</li>\n<li><p><strong>rate_plan_code</strong>: (string) The code for the rate plan.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>taxes</strong>: (array) A list of taxes applicable to the room.</p>\n</li>\n<li><p><strong>meta</strong>: (object) Additional metadata related to the room.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>services</strong>: (array) A list of additional services requested.</p>\n</li>\n<li><p><strong>taxes</strong>: (array) A list of taxes applicable to the booking.</p>\n</li>\n<li><p><strong>deposits</strong>: (array) A list of deposit objects, each containing:</p>\n<ul>\n<li><p><strong>amount</strong>: (string) The amount of the deposit.</p>\n</li>\n<li><p><strong>currency</strong>: (string) The currency of the deposit.</p>\n</li>\n<li><p><strong>charget_at</strong>: (string) The date and time when the charge is expected.</p>\n</li>\n<li><p><strong>type</strong>: (string) The type of deposit (e.g., \"bank_transfer\").</p>\n</li>\n<li><p><strong>notes</strong>: (string) Any notes related to the deposit.</p>\n</li>\n<li><p><strong>provider_meta</strong>: (object) Additional metadata from the provider.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>The expected response will confirm the successful creation of the booking, typically returning a status code indicating success (e.g., 200 OK) along with a confirmation message or the details of the created booking.</p>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that all required fields are provided in the request body to avoid validation errors.</p>\n</li>\n<li><p>Be mindful of the data formats, especially for dates and currency.</p>\n</li>\n<li><p>It is recommended to handle any errors gracefully in your application to enhance user experience.</p>\n</li>\n</ul>\n","urlObject":{"host":["{{your_cm_reservation_api}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"ad909039-5be5-4d72-8fd6-a71261c81b7e"}],"id":"c83ae4bb-2a03-4040-aff3-980bad872683","_postman_id":"c83ae4bb-2a03-4040-aff3-980bad872683","description":""},{"name":"Mapping Inventory Details","item":[{"name":"Get Mapping Details","id":"5a007f54-da78-4c78-a5b3-812698c91cbd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"api-key","value":"{{api_key}}","type":"text"}],"url":"{{base_url}}/cm/api/{{your_cm_code}}/mapping-details?hotel_code={{your_hotel_code}}","description":"<h2 id=\"get-mapping-details\">Get Mapping Details</h2>\n<p>This endpoint retrieves mapping details for a specific hotel. It allows users to obtain information related to the mapping configuration based on the provided hotel code.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> GET<br /><strong>URL:</strong> <code>{{base_url}}/cm/api/{{your_cm_code}}/mapping_details?hotel_code={{your_hotel_code}}</code></p>\n<h4 id=\"query-parameters\">Query Parameters</h4>\n<ul>\n<li><code>hotel_code</code> (required): The unique identifier for the hotel whose mapping details are being requested.</li>\n</ul>\n<h3 id=\"example-request\">Example Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET {{base_url}}/cm/api/12345/mapping_details?hotel_code=H123\n\n</code></pre><h3 id=\"response\">Response</h3>\n<p>The response will contain the mapping details for the specified hotel in JSON format. The structure of the response typically includes the following fields:</p>\n<ul>\n<li><p><code>status</code>: Indicates the success or failure of the request.</p>\n</li>\n<li><p><code>data</code>: An object containing the mapping details, which may include:</p>\n<ul>\n<li><p><code>mapping_id</code>: The unique identifier for the mapping.</p>\n</li>\n<li><p><code>hotel_code</code>: The hotel code associated with the mapping.</p>\n</li>\n<li><p><code>mapping_info</code>: Detailed information regarding the mapping configuration.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"type\": \"mapping_details\",\n    \"attributes\": {\n      \"room_types\": [\n        {\n          \"id\": \"1cd68008-6bae-45d1-8d58-961820530a8d\",\n          \"title\": \"Hashira Room\",\n          \"rate_plans\": [\n            {\n              \"id\": \"722399c4-e5f9-4bdc-9a22-1a096bc5e2f8\",\n              \"title\": \"Hashira Room Only\",\n              \"sell_mode\": \"per_room\",\n              \"max_persons\": 3,\n              \"currency\": \"IDR\",\n              \"read_only\": false\n            }\n          ]\n        },\n        {\n          \"id\": \"5a4e1c44-e5d6-4e76-8efb-633aab7db41e\",\n          \"title\": \"Luxury Room\",\n          \"rate_plans\": [\n            {\n              \"id\": \"20b766b4-b1ab-4963-9a78-015a7a5f0e19\",\n              \"title\": \"Luxury Honey Moon Package 7 Night\",\n              \"sell_mode\": \"per_room\",\n              \"max_persons\": 2,\n              \"currency\": \"IDR\",\n              \"read_only\": false\n            },\n            {\n              \"id\": \"46784792-4b91-4bf1-9394-b9d7c4a7d802\",\n              \"title\": \"Luxury Room Only\",\n              \"sell_mode\": \"per_room\",\n              \"max_persons\": 2,\n              \"currency\": \"IDR\",\n              \"read_only\": false\n            },\n            {\n              \"id\": \"dd6bd055-3cd7-4434-9e9e-93abf8a54a06\",\n              \"title\": \"Luxury Room with Breakfast\",\n              \"sell_mode\": \"per_room\",\n              \"max_persons\": 2,\n              \"currency\": \"IDR\",\n              \"read_only\": false\n            },\n            {\n              \"id\": \"fc0bfd0b-96c2-40e2-8229-fb2f7c7b2262\",\n              \"title\": \"Luxury Room Package\",\n              \"sell_mode\": \"per_room\",\n              \"max_persons\": 2,\n              \"currency\": \"IDR\",\n              \"read_only\": false\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n\n</code></pre>\n<p>This response indicates that the request was successful and provides detailed mapping information for the specified hotel.</p>\n","urlObject":{"path":["cm","api","{{your_cm_code}}","mapping-details"],"host":["{{base_url}}"],"query":[{"key":"hotel_code","value":"{{your_hotel_code}}"}],"variable":[]}},"response":[{"id":"9ac0e3fe-7aa7-4481-aa67-983f612277f5","name":"Get Mapping Details","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"{{api_key}}","type":"text"}],"url":{"raw":"{{base_url}}/cm/api/{{your_cm_code}}/mapping-details?hotel_code={{your_hotel_code}}","host":["{{base_url}}"],"path":["cm","api","{{your_cm_code}}","mapping-details"],"query":[{"key":"hotel_code","value":"{{your_hotel_code}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 08 Sep 2025 03:03:31 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"allow","value":"GET, HEAD, OPTIONS"},{"key":"x-frame-options","value":"DENY"},{"key":"vary","value":"Accept-Language, origin"},{"key":"content-language","value":"en"},{"key":"x-content-type-options","value":"nosniff"},{"key":"referrer-policy","value":"same-origin"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"x-served-by","value":"demo-ga-api.guestpro.co.id"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=LGjSkdX2iUMQKRGxySJPzxVb%2Fp5zj1ikl5uY6OXUTqkgAg0dfD%2BNQQWK3gh8mka0qm90UTlIDN2CcysvYMrtC3b7E2OKJErCycsMVx0ziVDP59gqPN%2B9GA%3D%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"97bb36914d4b5542-SIN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"type\": \"mapping_details\",\n        \"attributes\": {\n            \"room_types\": [\n                {\n                    \"id\": \"a5b80161-8f78-40ff-ae25-6bd690ebdf35\",\n                    \"title\": \"Deluxe1\",\n                    \"rate_plans\": [\n                        {\n                            \"id\": \"0cc3ad0a-6a79-4daa-8a5c-76e6fd5b0c00\",\n                            \"title\": \"Deluxe Breakfast\",\n                            \"sell_mode\": \"per_room\",\n                            \"max_persons\": 4,\n                            \"currency\": \"USD\",\n                            \"read_only\": false\n                        },\n                        {\n                            \"id\": \"1e5d0be9-875d-4f80-8af1-d5a0e60e94dd\",\n                            \"title\": \"Deluxe Room Only\",\n                            \"sell_mode\": \"per_room\",\n                            \"max_persons\": 4,\n                            \"currency\": \"USD\",\n                            \"read_only\": false\n                        }\n                    ]\n                }\n            ]\n        }\n    }\n}"}],"_postman_id":"5a007f54-da78-4c78-a5b3-812698c91cbd"},{"name":"Update Mapping","id":"dcd3664e-314f-4ebe-aea6-380f75a8f1c5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"api-key","value":"{{api_key}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"mapping_update\",\n        \"hotel_code\": \"HTMVO1\",\n        \"attributes\": {\n            \"room_types\": [\n                {\n                    \"id\": \"1b791f41-6a1d-45a6-bc81-b43464226e6f\",\n                    \"cm_id\": \"BVL\",\n                    \"rate_plans\": [\n                        {\n                            \"id\": \"377ad35e-515c-4027-9614-7476d690faae\",\n                            \"cm_id\": \"BAR\"\n                        },\n                        {\n                            \"id\": \"f0862517-590c-45eb-a3a2-1ed6b8b771c1\",\n                            \"cm_id\": \"WEB\"\n                        }\n                    ]\n                },\n                {\n                    \"id\": \"d16681b0-7937-4abd-b529-97da327e20e2\",\n                    \"cm_id\": \"WVL\",\n                    \"rate_plans\": [\n                        {\n                            \"id\": \"53709b8e-ea55-46cd-9ca5-b6af63a31f94\",\n                            \"cm_id\": \"WEB\"\n                        },\n                        {\n                            \"id\": \"1343013a-c077-498b-8749-f35a6cf9f734\",\n                            \"cm_id\": \"BAR\"\n                        }\n                    ]\n                }\n            ]\n        }\n    }\n}\n","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/cm/api/{{your_cm_code}}/mapping-update","description":"<h2 id=\"mapping-update-api\">Mapping Update API</h2>\n<p>This endpoint allows you to update the mapping information for a specific hotel in the system. It is primarily used to modify the room types and associated rate plans for a hotel.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>Endpoint</strong>: <code>{{base_url}}/cm/api/{{your_cm_code}}/mapping-update</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should contain the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"type\": \"mapping_update\",\n    \"hotel_code\": \"MALDIVES_HOTEL\",\n    \"attributes\": {\n      \"room_types\": [\n        {\n          \"id\": \"string\",\n          \"cm_id\": \"string\",\n          \"rate_plans\": [\n            {\n              \"id\": \"string\",\n              \"cm_id\": \"string\"\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n\n</code></pre>\n<ul>\n<li><p><strong>data</strong>: An object that contains the details of the mapping update.</p>\n<ul>\n<li><p><strong>type</strong>: A string indicating the type of operation, which should be set to \"mapping_update\".</p>\n</li>\n<li><p><strong>hotel_code</strong>: A string representing the unique code of the hotel being updated.</p>\n</li>\n<li><p><strong>attributes</strong>: An object containing the attributes of the mapping.</p>\n<ul>\n<li><p><strong>room_types</strong>: An array of room type objects.</p>\n<ul>\n<li><p><strong>id</strong>: A unique identifier for the room type.</p>\n</li>\n<li><p><strong>cm_id</strong>: A unique identifier for the room type in the channel manager system.</p>\n</li>\n<li><p><strong>rate_plans</strong>: An array of rate plan objects associated with the room type.</p>\n<ul>\n<li><p><strong>id</strong>: A unique identifier for the rate plan.</p>\n</li>\n<li><p><strong>cm_id</strong>: A unique identifier for the rate plan in the channel manager system.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>The response will contain the status of the update operation, which typically includes:</p>\n<ul>\n<li><p><strong>status</strong>: A string indicating the success or failure of the operation.</p>\n</li>\n<li><p><strong>message</strong>: A string providing additional details about the operation's outcome.</p>\n</li>\n</ul>\n<p>Ensure that the request body adheres to the specified format to avoid errors during processing.</p>\n","urlObject":{"path":["cm","api","{{your_cm_code}}","mapping-update"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"dcd3664e-314f-4ebe-aea6-380f75a8f1c5"}],"id":"2cb03532-e2c1-4026-b625-5da359edfd22","description":"<p>This endpoint will be used to get information about Room Types and Rate<br />Plans from your side. This will allow the user to map in the CM<br />interface.</p>\n","_postman_id":"2cb03532-e2c1-4026-b625-5da359edfd22"}],"id":"8337a590-59b0-43d4-8df6-9cba82da378a","description":"<p>The <strong>Channel Manager</strong> module provides endpoints to synchronize property data between external systems and Revenue Booster. It ensures that room availability, rates, restrictions, and reservations are always kept up to date across all connected channels</p>\n","_postman_id":"8337a590-59b0-43d4-8df6-9cba82da378a"},{"name":"Booking Engine","item":[{"name":"Merchant","item":[{"name":"Merchant Detail","id":"36deca22-7e60-4c06-b683-b2bbb6394f0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/guestapp-hotel/api/merchant/:pk","description":"<h3 id=\"endpoint-description\">Endpoint Description</h3>\n<p>This endpoint retrieves the public profile and configuration details of a specific merchant (hotel or property). It returns a comprehensive dataset including general information, facilities, policies, location data, UI configurations, and community associations.</p>\n<h3 id=\"response-examples\"><strong>Response Examples</strong></h3>\n<h4 id=\"1-success-response-200-ok\"><strong>1. Success Response (200 OK)</strong></h4>\n<p>Returns the full merchant object.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"data\": {\n        \"id\": \"f1d6ef5b-d62d-41f3-9c30-be5d546ed53d\",\n        \"merchant_category_name\": \"Guest House\",\n        \"name\": \"The Uma Desa\",\n        \"code\": \"the-uma-desa\",\n        \"address\": \"Jl. Bisma, Ubud, Kecamatan Ubud, Kabupaten Gianyar, Bali 80571\",\n        \"phone\": \"0812345678\",\n        \"email\": \"email@gmail.com\",\n        \"location_point\": \"SRID=4326;POINT (115.2834912642318 -8.523541680044865)\",\n        \"check_in_time_start\": \"14:00:00\",\n        \"check_out_time_end\": \"12:00:00\",\n        \"star\": 4.0,\n        \"is_open\": false,\n        \"merchant_images\": [\n            {\n                \"id\": \"3bfdaf7b-fb37-4297-881b-a659a9e25126\",\n                \"image_url\": \"https://dksw6vf0i66fe.cloudfront.net/merchant/image_url/fb75c10e-c130-4ec8-a56f-617556ad2cc2_6572e163-647b-4a5c-a738-8bd3c044fc70.jpg\",\n                \"image_type\": \"SLIDER\",\n                \"position\": 1\n            }\n            // ... additional images\n        ],\n        \"facilities\": [\n            {\n                \"id\": \"2ef5bb6c-d7e1-459f-bbc4-3dc0121b1ba1\",\n                \"name\": \"Wifi\",\n                \"icon\": \"iconsmind-Wifi\"\n            }\n            // ... additional facilities\n        ],\n        \"community\": {\n            \"id\": \"a52c7ba6-3a8a-423d-86b4-fe8da8d039ee\",\n            \"name\": \"Kagum Hotel\",\n            \"code\": \"nakula\"\n        },\n        \"description\": \"&lt;p class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Strategically located in the heart of Ubud...&lt;/p&gt;\",\n        \"cancellation_policy\": \"&lt;ul class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;&lt;li class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27; class=&amp;#x27;preserveHtml&amp;#x27;&gt;Cancellations made 7 days or more...&lt;/li&gt;&lt;/ul&gt;\",\n        \"social_media\": [\n            {\n                \"type\": \"INSTAGRAM\",\n                \"account_url\": \"https://www.instagram.com/opit.pratama\"\n            }\n        ]\n        // ... full data object\n    }\n}\n\n</code></pre>\n<h4 id=\"2-error-response-200-ok\"><strong>2. Error Response (200 OK)</strong></h4>\n<p>Returns objects with key suucess andthe error message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": false,\n    \"message\": \"Merchant not found\"\n}\n\n</code></pre>\n","urlObject":{"path":["guestapp-hotel","api","merchant",":pk"],"host":["{{base_url}}"],"query":[],"variable":[{"description":{"content":"<p>The unique identifier (Slug or UUID) for the merchant.</p>\n","type":"text/plain"},"type":"any","value":"the-uma-des","key":"pk"}]}},"response":[],"_postman_id":"36deca22-7e60-4c06-b683-b2bbb6394f0d"}],"id":"a76a7a73-77c3-433e-9819-5bc531b15cf6","_postman_id":"a76a7a73-77c3-433e-9819-5bc531b15cf6","description":""},{"name":"Room Filter","item":[{"name":"Search Availability","id":"9451f770-c863-4172-b4b3-211ecbabd8fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/guestapp-hotel/api/search-availability?merchant_id=f1d6ef5b-d62d-41f3-9c30-be5d546ed53d&start_date=2026-03-01&end_date=2026-02-31&adult=1","description":"<h3 id=\"endpoint-description\">Endpoint Description</h3>\n<p>This endpoint retrieves daily availability, inventory status, and pricing information for a specific merchant over a given date range. It is designed to populate availability calendars, allowing users to see which dates are available and the starting price for each day before selecting their check-in/out dates.</p>\n<h2 id=\"request-parameters\"><strong>Request Parameters</strong></h2>\n<p>The request utilizes query parameters to define the search criteria:</p>\n<ul>\n<li><p><strong>merchant_id</strong>: (UUID) The unique identifier of the merchant/hotel.</p>\n</li>\n<li><p><strong>start_date</strong>: (String) The start date of the range to check in YYYY-MM-DD format.</p>\n</li>\n<li><p><strong>end_date</strong>: (String) The end date of the range to check in YYYY-MM-DD format.</p>\n</li>\n<li><p><strong>adult</strong>: (Integer) The number of adults to calculate the applicable price for.</p>\n</li>\n<li><p><strong>child</strong>: (Integer) The number of children to calculate the applicable price for. <em>(Optional)</em></p>\n</li>\n<li><p><strong>infant</strong>: (Integer) The number of infants to calculate the applicable price for. <em>(Optional)</em></p>\n</li>\n</ul>\n<h2 id=\"response-parameters\"><strong>Response Parameters</strong></h2>\n<p>The response body returns a JSON object containing the following structure:</p>\n<ul>\n<li><p><strong>success</strong>: (Boolean) Indicates if the request was successful.</p>\n</li>\n<li><p><strong>data</strong>: An array of daily availability objects.</p>\n<ul>\n<li><p><strong>date</strong>: (String) The specific calendar date for the data entry in YYYY-MM-DD format.</p>\n</li>\n<li><p><strong>availability</strong>: (Integer) The total number of physical rooms available (inventory) across all room types for this specific date.</p>\n</li>\n<li><p><strong>not_stop_sell</strong>: (Integer) The count of rate plans or room types that are <em>active</em> (i.e., not flagged as \"Stop Sell\"). If this is 0, the date is effectively unbookable.</p>\n</li>\n<li><p><strong>not_closed_to_arrival</strong>: (Integer) The count of rate plans that allow <em>Check-In</em> on this date.</p>\n</li>\n<li><p><strong>not_closed_to_departure</strong>: (Integer) The count of rate plans that allow <em>Check-Out</em> on this date.</p>\n</li>\n<li><p><strong>lower_price</strong>: (Decimal) The lowest \"starting from\" price available for this date before applying specific dynamic promotions.</p>\n</li>\n<li><p><strong>highest_promotion_price</strong>: (Decimal) The maximum monetary value deducted by a promotion (Negative values indicate a discount amount).</p>\n</li>\n<li><p><strong>highest_promotion_percent</strong>: (Decimal) The maximum percentage deducted by a specific promotion campaign (Negative values indicate a percentage discount).</p>\n</li>\n<li><p><strong>highest_discount_percent</strong>: (Decimal) The overall highest discount percentage available from all sources (campaigns, basic discounts, etc.).</p>\n</li>\n<li><p><strong>min_nights</strong>: (Integer) The minimum length of stay (MLOS) required if the guest checks in on this specific date.</p>\n</li>\n<li><p><strong>max_nights</strong>: (Integer) The maximum length of stay allowed if the guest checks in on this specific date.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>message</strong>: (String) A descriptive message explaining the request status. <em>Returned only when success is false.</em></p>\n</li>\n</ul>\n","urlObject":{"path":["guestapp-hotel","api","search-availability"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Valid UUID of the merchant.</p>\n","type":"text/plain"},"key":"merchant_id","value":"f1d6ef5b-d62d-41f3-9c30-be5d546ed53d"},{"description":{"content":"<p>Start date for availability search (YYYY-MM-DD).</p>\n","type":"text/plain"},"key":"start_date","value":"2026-03-01"},{"description":{"content":"<p>End date for availability search (YYYY-MM-DD). Max 66 days range.</p>\n","type":"text/plain"},"key":"end_date","value":"2026-02-31"},{"description":{"content":"<p>Number of adults.</p>\n","type":"text/plain"},"key":"adult","value":"1"},{"disabled":true,"description":{"content":"<p>Number of children.</p>\n","type":"text/plain"},"key":"child","value":"0"},{"disabled":true,"description":{"content":"<p>Number of infants.</p>\n","type":"text/plain"},"key":"infant","value":"0"}],"variable":[]}},"response":[],"_postman_id":"9451f770-c863-4172-b4b3-211ecbabd8fd"}],"id":"c09a3194-3292-4292-9a30-57d734830a0a","_postman_id":"c09a3194-3292-4292-9a30-57d734830a0a","description":""},{"name":"Search Room","item":[{"name":"Search Room","id":"c571eee8-2e3a-4bd4-a228-6f4e2aab744a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/guestapp-hotel/api/search-room?merchant_id=f1d6ef5b-d62d-41f3-9c30-be5d546ed53d&check_in_date=2026-12-12&check_out_date=2026-12-13&adult=1&child=0&infant=0&sort_by=room_type&promo_code=&price_min=&price_max=","description":"<h3 id=\"endpoint-description\">Endpoint Description</h3>\n<p>This endpoint searches for available room types and their associated rate plans based on a specific check-in and check-out range. It calculates the final price dynamically, accounting for number of guests (adults/children), active promotions, seasonal tiers, and taxes. It returns a hierarchical structure of Rooms containing Rate Plans.</p>\n<h2 id=\"request-parameters\"><strong>Request Parameters</strong></h2>\n<p>The request utilizes query parameters to define the booking criteria:</p>\n<ul>\n<li><p><strong>merchant_id</strong>: (UUID) The unique identifier of the merchant/hotel.</p>\n</li>\n<li><p><strong>check_in_date</strong>: (String) The check-in date in YYYY-MM-DD format.</p>\n</li>\n<li><p><strong>check_out_date</strong>: (String) The check-out date in YYYY-MM-DD format.</p>\n</li>\n<li><p><strong>adult</strong>: (Integer) Number of adults.</p>\n</li>\n<li><p><strong>child</strong>: (Integer) Number of children. <em>(Optional, default 0)</em></p>\n</li>\n<li><p><strong>infant</strong>: (Integer) Number of infants. <em>(Optional, default 0)</em></p>\n</li>\n<li><p><strong>sort_by</strong>: (String) Criteria to group the results (e.g., <code>room_type</code>, package, promotion). <em>(Optional)</em></p>\n</li>\n<li><p><strong>promo_code</strong>: (String) A specific promotion code to apply to the search. <em>(Optional)</em></p>\n</li>\n<li><p><strong>price_min</strong>: (Float) Filter results by minimum price. <em>(Optional)</em></p>\n</li>\n<li><p><strong>price_max</strong>: (Float) Filter results by maximum price. <em>(Optional)</em></p>\n</li>\n</ul>\n<h2 id=\"response-parameters\"><strong>Response Parameters</strong></h2>\n<p>The response body returns a JSON object containing the following structure:</p>\n<ul>\n<li><p><strong>success</strong>: (Boolean) Indicates if the request was successful.</p>\n</li>\n<li><p><strong>message</strong>: (String) A descriptive message explaining the request status. <em>Returned only when success is false.</em></p>\n</li>\n<li><p><strong>data</strong>: An array of available Room Types.</p>\n<ul>\n<li><p><strong>id</strong>: (UUID) Unique ID of the physical room type.</p>\n</li>\n<li><p><strong>name</strong>: (String) Name of the room (e.g., \"Standard Room\").</p>\n</li>\n<li><p><strong>description</strong>: (String) Description of the room.</p>\n</li>\n<li><p><strong>total_rooms</strong>: (Integer) Total physical inventory existing for this type.</p>\n</li>\n<li><p><strong>image</strong>: (Array) List of images associated with this specific rate/room.</p>\n</li>\n<li><p><strong>facility</strong>: (Array) List of amenities (Wifi, Bathtub, etc.).</p>\n</li>\n<li><p><strong>bed</strong>: (Array) Bed configuration details.</p>\n</li>\n<li><p><strong>best_price</strong>: (Object) same as the <strong>best_price</strong> on room_rate, but pict the lowest <strong>final_price</strong>.</p>\n</li>\n<li><p><strong>room_rate</strong>: (Array) List of sellable Rate Plans for this room type.</p>\n<ul>\n<li><p><strong>id</strong>: (UUID) Unique ID of the rate plan.</p>\n</li>\n<li><p><strong>name</strong>: (String) Name of the rate plan (e.g., \"Room with Breakfast\").</p>\n</li>\n<li><p><strong>price</strong>: (String) Base price of the rate plan.</p>\n</li>\n<li><p><strong>final_price</strong>: (Float) The final calculated price after promotions/discounts for the search duration.</p>\n</li>\n<li><p><strong>cancellation_policy</strong>: (Object) Details on cancellation rules and penalties.</p>\n</li>\n<li><p><strong>best_price</strong>: (Object) Summary of the pricing calculation.</p>\n<ul>\n<li><p><strong>price</strong>: (Float) Original price.</p>\n</li>\n<li><p><strong>promotion_price</strong>: (Float) Deduction amount from promotions.</p>\n</li>\n<li><p><strong>final_price</strong>: (Float) The price the user has to pay.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>dates</strong>: (Array) Daily breakdown of pricing and availability for the requested duration.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>room_type_availability</strong>: (Array) A summary of inventory counts per room type for the requested dates.</p>\n<ul>\n<li><p><strong>id</strong>: (UUID) The unique identifier of the room type.<strong>name</strong>: (String) The name of the room type.</p>\n</li>\n<li><p><strong>is_virtual</strong>: (Boolean) Indicates if this is a virtual room type (e.g., a \"Family Combo\" made of two connecting rooms).</p>\n</li>\n<li><p><strong>availability</strong>: (Integer) The calculated minimum availability for the entire requested stay duration.</p>\n</li>\n<li><p><strong>availability_affected</strong>: (Array) List of other room types whose inventory is linked to this room type (relevant for virtual/connected rooms).</p>\n<ul>\n<li><p><strong>id</strong>: (UUID) ID of the linked room type.</p>\n</li>\n<li><p><strong>name</strong>: (String) Name of the linked room type.</p>\n</li>\n<li><p><strong>availability</strong>: (Integer) Current availability of the linked room type.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>date</strong>: (Array) Daily breakdown of availability for this room type.</p>\n<ul>\n<li><p><strong>date</strong>: (String) The specific calendar date (YYYY-MM-DD).</p>\n</li>\n<li><p><strong>availability</strong>: (Integer) The inventory count available for that specific date.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["guestapp-hotel","api","search-room"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>Valid UUID of the merchant.</p>\n","type":"text/plain"},"key":"merchant_id","value":"f1d6ef5b-d62d-41f3-9c30-be5d546ed53d"},{"description":{"content":"<p>Check-in date in YYYY-MM-DD format.</p>\n","type":"text/plain"},"key":"check_in_date","value":"2026-12-12"},{"description":{"content":"<p>Check-out date in YYYY-MM-DD format.</p>\n","type":"text/plain"},"key":"check_out_date","value":"2026-12-13"},{"description":{"content":"<p>Number of adults.</p>\n","type":"text/plain"},"key":"adult","value":"1"},{"description":{"content":"<p>Number of children.</p>\n","type":"text/plain"},"key":"child","value":"0"},{"description":{"content":"<p>Number of infants.</p>\n","type":"text/plain"},"key":"infant","value":"0"},{"description":{"content":"<p>Sorting criteria. Choices: [room_type, promotion, packages]</p>\n","type":"text/plain"},"key":"sort_by","value":"room_type"},{"description":{"content":"<p>Optional promo code.</p>\n","type":"text/plain"},"key":"promo_code","value":""},{"description":{"content":"<p>Minimum price filter.</p>\n","type":"text/plain"},"key":"price_min","value":""},{"description":{"content":"<p>Maximum price filter.</p>\n","type":"text/plain"},"key":"price_max","value":""}],"variable":[]}},"response":[],"_postman_id":"c571eee8-2e3a-4bd4-a228-6f4e2aab744a"}],"id":"4300fb98-019a-406f-8691-950b076d8c6d","_postman_id":"4300fb98-019a-406f-8691-950b076d8c6d","description":""}],"id":"2868c682-17db-4cde-8c5e-b434642aff6c","_postman_id":"2868c682-17db-4cde-8c5e-b434642aff6c","description":""}],"event":[{"listen":"prerequest","script":{"id":"643aa27e-e832-4306-8abb-d20734a13502","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"9e895138-2945-41d4-b942-4b6329633622","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"room_type_id","value":"a5b80161-8f78-40ff-ae25-6bd690ebdf35"},{"key":"rateplanse_id","value":"1e5d0be9-875d-4f80-8af1-d5a0e60e94dd"}]}