This is an optional function. This is to create or update the inventory of apartments from the Owner’s PMS to Icnea.
Endpoint: https://ws.icnea.net/inventory_update.aspx
<inventory_update> <link> <user>integer(4)</user> <password>character(20)</password> </link> <lodgings> <lodging> <lodging_id>integer(8)</lodging_id> <lodging_action>add/update/cancel</lodging_action> <lodging_type>hotel/apartment/villa/hostel</lodging_type> <lodging_company_name>character(50)</lodging_company_name> <lodging_public_name>character(50)</lodging_public_name> <lodging_address>character(50)</lodging_address> <lodging_address_type>character(50)</lodging_address_type> <lodging_address_number>character(50)</lodging_address_number> <lodging_address_number_type>character(50)</lodging_address_number_type> <lodging_address_block>character(50)</lodging_address_block> <lodging_address_portal>character(50)</lodging_address_portal> <lodging_address_staircase>character(50)</lodging_address_staircase> <lodging_address_floor>character(50)</lodging_address_floor> <lodging_address_door>character(50)</lodging_address_door> <lodging_address_plus>character(50)</lodging_address_plus> <lodging_city>character(50)</lodging_city> <lodging_zip>character(50)</lodging_zip> <lodging_country>iso3166 </lodging_country> <lodging_region>character(50)</lodging_region> <lodging_telephone>character(50)</lodging_telephone> <lodging_email>character(50)</lodging_email> <lodging_contact>character(50)</lodging_contact> <lodging_category>character(50)</lodging_category> <lodging_latitude>decimal</lodging_latitude> <lodging_longitude>decimal</lodging_longitude> <lodging_standard_capacity>integer</lodging_standard_capacity> <lodging_maximum_capacity>integer</lodging_maximum_capacity> <lodging_surface>integer (m2)</lodging_surface> <lodging_number_of_rooms>integer</lodging_number_of_rooms> <lodging_number_of_bathrooms>integer</lodging_number_of_bathrooms> <lodging_number_of_toilets>integer</lodging_number_of_toilets> <lodging_number_of_single_beds>integer</lodging_number_of_single_beds> <lodging_number_of_double_beds>integer</lodging_number_of_double_beds> <lodging_number_of_sofa_beds>integer</lodging_number_of_sofa_beds> <lodging_number_of_bunk_beds>integer</lodging_number_of_bunk_beds> <lodging_booking_fee>decimal</lodging_booking_fee> <lodging_cleaning_fee>decimal</lodging_cleaning_fee> <lodging_booking_deposit>decimal</lodging_booking_deposit> <lodging_minimum_advance_reservation>integer</lodging_minimum_advance_reservation> <lodging_distance_to_city_centre>decimal(km)</lodging_distance_to_city_centre> <lodging_distance_to_airport>decimal(km)</lodging_distance_to_airport> <lodging_distance_to_harbour>decimal(km)</lodging_distance_to_harbour> <lodging_distance_to_railway_station>decimal(km)</lodging_distance_to_railway_station> <lodging_distance_to_public_transport>decimal(km)</lodging_distance_to_public_transport> <lodging_distance_to_hospital>decimal(km)</lodging_distance_to_hospital> <lodging_distance_to_pharmacy>decimal(km)</lodging_distance_to_pharmacy> <lodging_distance_to_market>decimal(km)</lodging_distance_to_market> <lodging_distance_to_ski_slope>decimal(km)</lodging_distance_to_ski_slope> <lodging_distance_to_beach>decimal(km)</lodging_distance_to_beach> <lodging_distance_to_golf>decimal(km)</lodging_distance_to_golf> <lodging_distance_to_public_park>decimal(km)</lodging_distance_to_public_park> <lodging_distance_to_historic_district>decimal(km)</lodging_distance_to_historic_district> <lodging_legal_registration_number>character(50)</lodging_legal_registration_number> <lodging_cadastral_reference_number>character(50)</lodging_cadastral_reference_number> <lodging_remarks>decimal</lodging_remarks> <lodging_online_booking>decimal</lodging_online_booking> <lodging_arrival_time_from>decimal</lodging_arrival_time_from> <lodging_arrival_time_to>decimal</lodging_arrival_time_to> <lodging_departure_time_from>decimal</lodging_departure_time_from> <lodging_departure_time_to>decimal</lodging_departure_time_to> <lodging_cancellation_policies> <lodging_cancellation_policy> <days_prior>integer</days_prior> <refund_percentage>integer</refund_percentage> </lodging_cancellation_policy> </lodging_cancellation_policies> <lodging_descriptions> <lodging_description> <description_id>integer </description_id> <language>iso639-1</language> <headline>character(50)</headline> <text>character(4000)</text> </lodging_description> </lodging_descriptions> <lodging_images> <lodging_image> <image_url>character(50)</image_url> </lodging_image> </lodging_images> <lodging_equipment> ... </lodging_equipment> <lodging_services> ... </lodging_services> <lodging_surroundings> ... </lodging_surroundings> <lodging_location> ... </lodging_location> <lodging_restrictions> ... </lodging_restrictions> <lodging_recommendations> ... </lodging_recommendations> <lodging_rooms> <lodging_room> <room_id>integer </room_id> <room_name>character(50)</room_name> <room_units> <room_id>character(50)</room_id> <room_unit>character(50)</room_unit> </room_units> <room_descriptions> <room_description> <language>iso639-1</language> <text>character(1000)</text> </room_description> </room_descriptions> <room_images> <room_image> <room_id>integer</room_id> <image_url>character(50)</image_url> </room_image> </room_images> <room_equipment> ... </room_equipment> <room_rates> <room_rate> <rate_id>integer</rate_id> <rate_persons>integer</rate_persons> <rate_name>character(50)</rate_name> <rate_cancel>character(50)</rate_cancel> <rate_descriptions> <rate_description> <language>iso639-1</language> <text>character(50)</text> </rate_description> </rate_descriptions> </room_rate> </room_rates> </lodging_room> </lodging_rooms> </lodging> </inventory_update>
Action:
<lodging_id>integer(8)</lodging_id> <lodging_action>add/update/cancel</lodging_action>
You can create a new property sending “add” as the lodging_action. In this case, you don’t need to send the lodging_id, since it will be created in Icnea.
You can update a property sending “update” as the lodging_action or not puting the lodging_action field. You need to send lodging_id.
You can delete a property sending “cancel” as the lodging_action. You need to send lodging_id.
If you try to delete a property with reservations in future dates, you will get an error.
If you don’t send any <lodging_action> the system will try to update the property in the <lodging_id> node.
Cancellation policies:
<lodging_cancellation_policy> <days_prior>integer</days_prior> <refund_percentage>integer</refund_percentage> </lodging_cancellation_policy>
There can be up to 3 cancellation policies for a listing.
Images:
<lodging_image> <image_url>character(50)</image_url> </lodging_image>
There can be up to 48 photos. If you send more photos, they will not be saved in the system.
Each photo will be cropped to have different sizes (so that we can use the most accurate and optimitzed in each instance).
We recommend that the photos are 2100x1575px or bigger, so that they can be always the maximum size and quality in Icnea and the OTAs.
The minimum size is 700x525px.
Amenities:
<lodging_equipment>...</lodging_equipment> <lodging_services>...</lodging_services> <lodging_surroundings>...</lodging_surroundings> <lodging_location>...</lodging_location> <lodging_restrictions>...</lodging_restrictions> <lodging_recommendations>...</lodging_recommendations> <room_equipment>...</room_equipment>
The amenities will be a boolean true/false for each one.
The list of amenities for each category can be found here.
The <room_equipment> node is inside the <lodging_rooms> but, for vacation rentals properties, this will be the lodging equipment as well. It is separated in another node for the hotel property type.
Response with success:
<inventory_update_response> <ok>lodging_id </ok> </inventory_update_response>
Response with error:
<inventory_update_response> <ko>character(500)</ko> </inventory_update_response>
Add Comment