LODGY> PMS

Lodgy.app API Documentation



Welcome to the Lodgy.app documentation

This space contains information about the services and API provided by Lodgy.app. You'll find API documentation with examples, object model explanations, code snippets and integration best practices examples.


Feedback and Contacts

If you find any mistakes, spelling errors or inaccuracies in our documentation or need help, please let us know via email to info@lodgy.app


Sign Up for Apps

Please register the app you wish to use the API and complete the form to obtain the access token. Sign Up Form



PMS Guide

Procedure to enable API use from PMS.

1- Log in to Lodgy.app with a user account that has the necessary permissions.
2- In the top horizontal menu bar, select the Integrations icon.
3- API
4- Select the app to integrate from the dropdown menu and confirm.
5- Obtain the APIKey, the TOKEN and the IDH required for authentication.



Authentication

To authenticate and access the API, you must provide the following variables in the header:

token: This is the token of the app to be used.
apikey: This is the hotel's API key, obtained from the PMS.
idh: This is the hotel's ID, obtained from the PMS.


PHP Example
$c = curl_init(); curl_setopt($c,CURLOPT_URL,$endpoint); curl_setopt($c,CURLOPT_RETURNTRANSFER,true); curl_setopt($c,CURLOPT_HTTPHEADER,array( 'apikey:'.$apikey, 'idh:'.$idh, 'token:.%token', 'Content-Type: application/json' )); $data = curl_exec($c); $code = curl_getinfo($c, CURLINFO_HTTP_CODE); curl_close($c);


Property Data

To retrieve data for a property or hotel, you must use the following endpoint and the property ID.

Endpoint : https://lodgy.app/pms/api/hotels/?idh=$idh

Method : GET

IDH : is obtained from the PMS.

References :

property_mode : 0 per night - 1 per hour.

property_taxes : Yes = Included in the rates - No = Not included in the rates.


Response Example
{ "property_id": "xxx", "property_name": "xxx", "property_type": "xxx", "property_cat": "xxx", "property_address": "xxx", "property_city": "xxx", "property_state": "xxx", "property_country": "xxx", "property_zip": "xxx", "property_lat": "xxx", "property_long": "xxx", "property_url": "xxx", "property_email": "xxx", "property_phone": "xxx", "property_whatsapp": "xxx", "property_fb": "xxx", "property_ig": "xxx", "property_youtube": "xxx", "property_tripadvisors": "xxx", "property_mode": "0", "property_timeinfrom": "xxx", "property_timeinto": "xxx", "property_timeout": "xxx", "property_taxes": "Yes", "property_pets": "No" }


Room Types

To obtain information about a hotel's room types, you must use the following endpoint. You can view all room types or use the ID of a specific room type, which can be found within the PMS.

Endpoint : https://lodgy.app/pms/api/roomtypes/

Endpoint : https://lodgy.app/pms/api/roomtypes/?idrt=xx

Method : GET

IDRT : is obtained from the PMS. (Menu-Settings-Room Types)

References :

roomtype_ghostroom : N = Real room - Y = Virtual room.


Response Example
{ "roomtypes" : [ { "roomtype_id": "xx", "roomtype_name": "xx", "roomtype_description": "xx", "roomtype_ghostroom": "N", "roomtype_pax": "2", "roomtype_adults": "2", "roomtype_children": "0", "roomtype_babies": "0", "roomtype_active": "1", "roomtype_size": "24 m2", "roomtype_smoke": "No", "roomtype_adapted": "No Posee", "roomtype_visible": "1", "roomtype_floor": "1", "roomtype_allow_minors": "No", "roomtype_allows_unaccompanied_minors": "No" } ] }


Rate Plans

To obtain information about a hotel's rate plans, you must use the following endpoint. You can view all rate plans or use the ID of a specific one, which can be found within the PMS.

Endpoint : https://lodgy.app/pms/api/rateplans/

Endpoint : https://lodgy.app/pms/api/rateplans/?idrp=xx

Method : GET

IDRP : is obtained from the PMS. (Menu-Rates-Rate Plans)

References :

rateplan_type : 0 = fix rate plan - 1 = derived rate plan.

rateplan_source_rate_plan_id : When rate plan is type derived, it is de ID rate plan of the source.


Response Example
{ "rateplans" : [ { "rateplan_id": "xx", "rateplan_name": "xx", "rateplan_currency": "ARS", "rateplan_description": "xx", "rateplan_type": "0", "rateplan_source_rate_plan_id": "0", "rateplan_booking_engine": "1", "rateplan_channel_manager": "1", "rateplan_active": "1", "rateplan_cancellation_policy": "xx", "rateplan_refundable": "1", "rateplan_breakfast": "1", "rateplan_lunch": "0", "rateplan_snack": "0", "rateplan_dinner": "0", "rateplan_all_inclusive": "0", "rateplan_condition": "Contado", "rateplan_bank_transfer": "1", "rateplan_cash": "0", "rateplan_credit_card": "0", "rateplan_credit_card_as_collateral": "0", "rateplan_surcharge": "0", "rateplan_installments": "1" } ] }


Promotions

To obtain information about a hotel's promotions, you must use the following endpoint. You can view all promotions or use the ID of a specific one, which can be found within the PMS.

Endpoint : https://lodgy.app/pms/api/promotions/

Endpoint : https://lodgy.app/pms/api/promotions/?idpr=xx

Method : GET

IDPR : is obtained from the PMS. (Menu-Rates-Promotions)

References :

promotion_type : 1 = standard - 2 = last minute - 3= early booking.


Response Example
{ "promotions" : [ { "promotion_id": "9", "promotion_name": "Clientes Alta", "promotion_description": "", "promotion_type": "1", "promotion_channel": "PMS", "promotion_code": "CLIEAL5", "promotion_season": "1", "promotion_date_from": "2022-08-08", "promotion_date_to": "2099-12-31", "promotion_book_date_from": "2024-04-23", "promotion_book_date_to": "2025-12-31", "promotion_condition": "Todas", "promotion_min_nights": "1", "promotion_nights_discount": "0", "promotion_fix_discount": "0", "promotion_porc_discout": "5", "promotion_days": "0", "promotion_active": "1" } ] }


Availability, Rates and Restrictions

To obtain information about a hotel's ARR Availability, Rates and Restrictions, you must use the following endpoints:

To check availability and final rates (promotions included), use the following endpoint, where `in` is the check-in date, `out` is the check-out date, and `code` (optional) is the code for a closed promotion. You can obtain the codes for closed promotions from the PMS Menu > Rates > Promotions.

This query returns the same results as the booking engine. It respects availability, rates, restrictions, and promotions.

Endpoint : https://lodgy.app/pms/api/availability/?in=2025-11-01&out=2025-11-04&cupon=xxx

Method : GET

References :

in : Check in (format YYYY-MM-DD).

out : Check out (format YYYY-MM-DD).

cupon : Promotion's code obtained from PMS - optional

adults : 0-10 - optional

children : 0-10 - optional

babies : 0-1 - optional


Response Example
{ "availability" : [ { "id_room_type" : "32", "room_type" : "Habitación Confort", "qty_of_available_units" : "5", "max_qty_pax_allowed" : "2", "max_qty_adults_allowed" : "2", "max_qty_minors_allowed" : "0", "max_qty_babies_allowed" : "0", "minors_without_adult_supervision_allowed" : "No", "taxes_included" : "Y", "rates" : [ { "id_rate_plan" :"27", "rate_plan" :"Tarifa Pago Contado", "1pax" :"ARS63700", "2pax" :"ARS63700" } , { "id_rate_plan" :"28", "rate_plan" :"Tarifa Pago Tarjetas", "1pax" :"ARS85995", "2pax" :"ARS85995" } ] } ] }


Rates

Check Rates

To check rates and restrictions, use the following endpoint, where 'from' is the start date, 'to' is the end date and 'idrp' is the specific Rate Plan ID.

This query returns the rates before promotions.

Endpoint : https://lodgy.app/pms/api/availability/?from=2025-11-01&to=2025-11-04&idrp=xxx

Method : GET

References :

season : 0 = low - 1 = high.

mst : min stay through

msa : min stay arrival

ms : max stay

fs1 and fs2 : fix stay 9=not set, 7=7 nights, 14=14 nights

days of the week : 0 = close to arrival - 1 = open to arrival.


Response Example
{ "rates": [ { "idroomtype": "32", "roomtype": "Habitación Confort", "rate": [ { "date": "2025-11-15", "1pax": "70000", "2pax": "70000", "3pax": "0", "4pax": "0", "5pax": "0", "6pax": "0", "7pax": "0", "8pax": "0", "9pax": "0", "10pax": "0", "season": "0", "mst": "2", "monday": "1", "tuesday": "1", "wednesday": "1", "thursday": "1", "friday": "1", "saturday": "1", "sunday": "1", "msa": "1", "ms": "30", "fs1": "0", "fs2": "0" }, { "date": "2025-11-16", "1pax": "70000", "2pax": "70000", "3pax": "0", "4pax": "0", "5pax": "0", "6pax": "0", "7pax": "0", "8pax": "0", "9pax": "0", "10pax": "0", "season": "0", "mst": "2", "monday": "1", "tuesday": "1", "wednesday": "1", "thursday": "1", "friday": "1", "saturday": "1", "sunday": "1", "msa": "1", "ms": "30", "fs1": "0", "fs2": "0" } ] }, { "idroomtype": "33", "roomtype": "Habitación Deluxe", "rate": [ { "date": "2025-11-15", "1pax": "120000", "2pax": "120000", "3pax": "0", "4pax": "0", "5pax": "0", "6pax": "0", "7pax": "0", "8pax": "0", "9pax": "0", "10pax": "0", "season": "0", "mst": "2", "monday": "1", "tuesday": "1", "wednesday": "1", "thursday": "1", "friday": "1", "saturday": "1", "sunday": "1", "msa": "1", "ms": "30", "fs1": "0", "fs2": "0" }, { "date": "2025-11-16", "1pax": "120000", "2pax": "120000", "3pax": "0", "4pax": "0", "5pax": "0", "6pax": "0", "7pax": "0", "8pax": "0", "9pax": "0", "10pax": "0", "season": "0", "mst": "2", "monday": "1", "tuesday": "1", "wednesday": "1", "thursday": "1", "friday": "1", "saturday": "1", "sunday": "1", "msa": "1", "ms": "30", "fs1": "0", "fs2": "0" } ] }, { "idroomtype": "1269", "roomtype": "Cabaña Deluxe con Hidro para 2 pax", "rate": [ { "date": "2025-11-15", "1pax": "140000", "2pax": "140000", "3pax": "0", "4pax": "0", "5pax": "0", "6pax": "0", "7pax": "0", "8pax": "0", "9pax": "0", "10pax": "0", "season": "0", "mst": "2", "monday": "1", "tuesday": "1", "wednesday": "1", "thursday": "1", "friday": "1", "saturday": "1", "sunday": "1", "msa": "1", "ms": "30", "fs1": "0", "fs2": "0" }, { "date": "2025-11-16", "1pax": "140000", "2pax": "140000", "3pax": "0", "4pax": "0", "5pax": "0", "6pax": "0", "7pax": "0", "8pax": "0", "9pax": "0", "10pax": "0", "season": "0", "mst": "2", "monday": "1", "tuesday": "1", "wednesday": "1", "thursday": "1", "friday": "1", "saturday": "1", "sunday": "1", "msa": "1", "ms": "30", "fs1": "0", "fs2": "0" } ] } ] }


Update Rates

The PMS allows you to create fixed or variable rate plans. Only fixed rate plans can be updated via the API, which requires knowing the Rate Plan ID. This ID can be obtained from the PMS Menu > Rates > Rate Plans.

Endpoint : https://lodgy.app/pms/api/rates/

Method : PUT

References :

season : 0 = low - 1 = high.

mst : min stay through

msa : min stay arrival

ms : max stay

fs1 and fs2 : fix stay 0, 7 or 14 nights

days of the week : 0 = close to arrival - 1 = open to arrival.


PHP Request Example
$c = curl_init(); curl_setopt($c,CURLOPT_URL,$endpoint); curl_setopt($c, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($h, CURLOPT_POSTFIELDS, $json); curl_setopt($c,CURLOPT_RETURNTRANSFER,true); curl_setopt($c,CURLOPT_HTTPHEADER,array( 'apikey:'.$apikey, 'idh:'.$idh, 'token:'.$token, 'Content-Type: application/json' )); $data = curl_exec($c); curl_close($c);
Json Example { "rates": [ { "idrp": "23", "idroomtype": "32", "roomtype": "Habitación Confort", "rate": [ { "date": "2025-11-15", "1pax": "70000", "2pax": "70000", "3pax": "0", "4pax": "0", "5pax": "0", "6pax": "0", "7pax": "0", "8pax": "0", "9pax": "0", "10pax": "0", "season": "0", "mst": "2", "monday": "1", "tuesday": "1", "wednesday": "1", "thursday": "1", "friday": "1", "saturday": "1", "sunday": "1", "msa": "1", "ms": "30", "fs1": "9", "fs2": "9" }, { "date": "2025-11-16", "1pax": "70000", "2pax": "70000", "3pax": "0", "4pax": "0", "5pax": "0", "6pax": "0", "7pax": "0", "8pax": "0", "9pax": "0", "10pax": "0", "season": "0", "mst": "2", "monday": "1", "tuesday": "1", "wednesday": "1", "thursday": "1", "friday": "1", "saturday": "1", "sunday": "1", "msa": "1", "ms": "30", "fs1": "9", "fs2": "9" } ] } ] }
Response Example
200 ok


Bookings

Check Bookings

To check bookings, use the following endpoint, where 'id' is code of the reservation.

Endpoint : https://lodgy.app/pms/api/bookings/?id=RS50122420742025112122050674

Method : GET

References :

status : 0 = active - 1 = cancel.

expedient : id group of bookings


Response Example
{ "id": "RS50122420742025112122050674", "booked_at": "2025-10-20", "check_in": "2025-11-21", "check_out": "2025-11-24", "nights": "3", "id_room_type": "34", "room_type": "Cabaña Vista Sierras hasta 4 pax", "id_room": "74", "room": "Cabaña 1", "lastname": "Jerez", "name": "Carlos", "email": "cc0@guest.booking.com", "phone": "541136295333", "pax": "4", "adults": "4", "minors": "0", "babies": "0", "channel": "Booking", "subtotal": "554319.62", "taxes": "116407.12", "total": "670726.75", "currency": "ARS", "others": "0", "payments": "350000", "status": "0", "expedient": "", "rate_plan": "29", "promotion": "Sin Promo" }


Create Booking

To create a booking, use the following endpoint, .

Endpoint : https://lodgy.app/pms/api/bookings/

Method : POST


PHP Request Example
$c = curl_init(); curl_setopt($c,CURLOPT_URL,$endpoint); curl_setopt($c, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($h, CURLOPT_POSTFIELDS, $json); curl_setopt($c,CURLOPT_RETURNTRANSFER,true); curl_setopt($c,CURLOPT_HTTPHEADER,array( 'apikey:'.$apikey, 'idh:'.$idh, 'token:'.$token, 'Content-Type: application/json' )); $data = curl_exec($c); curl_close($c);
Json Example { "booking": [ { "checkin": "2025-11-25", //required "checkout": "2025-11-27", //required "idroomtype": "32", //required "idrateplan": "27", //required "pax": "2", //required "adults": "2", "minors": "0", "babies": "0", "paymentmethod": "Transferencia Bancaria", //required "channel": "API", "lastname": "Perez", //required "name": "Juan", //required "typeid": "DNI", "id": "25666777", //required "email": "juanperez@gmail.com", //required "phone": "1122223333", //required "address": "Diaz 547", "city": "Buenos Aires", "state": "Buenos Aires", "country": "Argentina", "comments": "comments" } ] }
Response Example
"reservationid":"xxx" 200



Cancel Booking

To cancel a booking, use the following endpoint, .

Endpoint : https://lodgy.app/pms/api/bookings/

Method : PUT


PHP Request Example
$c = curl_init(); curl_setopt($c,CURLOPT_URL,$endpoint); curl_setopt($c, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($h, CURLOPT_POSTFIELDS, $json); curl_setopt($c,CURLOPT_RETURNTRANSFER,true); curl_setopt($c,CURLOPT_HTTPHEADER,array( 'apikey:'.$apikey, 'idh:'.$idh, 'token:'.$token, 'Content-Type: application/json' )); $data = curl_exec($c); curl_close($c);
Json Example { "reservationid":"xxx" }
Response Example
"reservationid":"xxx" 200



Payments

To post a payment use the nest endpoint.

Endpoint : https://lodgy.app/pms/api/payments/

Method : POST

References :

reservationid : Reservation ID

date : Payment Date

amount : Payment amount. >0

method : Values : Efectivo - Transferencia Bancaria - Mercado Pago - Tarjeta de Crédito - Tarjeta de Crédito en Garantía

currency : according to ISO 4217

rate : quote of the day, number.


PHP Request Example
$c = curl_init(); curl_setopt($c,CURLOPT_URL,$endpoint); curl_setopt($c, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($h, CURLOPT_POSTFIELDS, $json); curl_setopt($c,CURLOPT_RETURNTRANSFER,true); curl_setopt($c,CURLOPT_HTTPHEADER,array( 'apikey:'.$apikey, 'idh:'.$idh, 'token:'.$token, 'Content-Type: application/json' )); $data = curl_exec($c); curl_close($c);
Json Example { "payment": [ { "reservationid": "xxx", //required "date": "2025-11-27", //required "amount": "10.00", //required "method": "Efectivo", //required "currency": "ARS", //required "rate": "1" } ] }
Response Example
"reservationid":"xxx" 200