Skip to content

OTA_UpdateInventoryRQ

This is not an official OTA message!

The method is only activated for individual OTA partners.

Example and end point:

POST /ota/api/UpdateInventory

No OTA standard attributes are used in the response.

UpdateInventory - Request via POST

Update Inventory Request (RQ) and Response (RS) using the example of the test hotel

  • authentication@login (Agent-Login): string
  • authentication@password (Agent-Password): string
  • inventoryUpdate@hotelId (Hotel-ID): integer

Example UpdateInventory Request

<?xml version="1.0" encoding="UTF-8"?>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <authentication login="my-agent-login" password="xxxxxx" />
    <inventoryUpdate hotelId="7730">
        <room id="32110">
            <inventory>
                <availability from="2022-11-06" to="2022-11-06" quantity="4" />
                <availability from="2022-11-07" to="2022-11-08" quantity="3" />
                <availability from="2022-05-01" to="2022-05-31" quantity="11" />
                <availability from="2022-05-09" to="2022-05-10" quantity="0" />

            </inventory>
        </room>
        <room id="32109">
            <inventory>
                <availability from="2022-11-17" to="2022-11-21" quantity="91" />
            </inventory>
        </room>
    </inventoryUpdate>
</message>

Example of request with optional Rates and BookingRules / RestrictionStatus

When using the optional parameters @rateCode, the combined room and rate level availabilities processed.

Parameters:

  • @rateCode - RatePlan-Id or RatePlanCode
  • @rateName - optional for rate name

  • planning@from - the start date (YYYY-MM-DD)

  • planning@to - the end date (YYYY-MM-DD)

The @rateCode can either be a string (BEST-BAR) or alternatively an offer ID (integer value) to be sent. The rate plan code can be stored in the Kurzurlaub.de backend of the hotelier for each offer, to map offers and rates in the OTA backend or hotel software better and more clearly.

Optional parameters for booking rules and restrictions

  • we normally ignore LengthOfStay attributes, but can process it, if required

    • LengthOfStay (normally called SetMinLOS or SetMaxLOS) can be sent optionally as minimumStay or maximumStay
  • we process the Restriction in RestrictionStatus with Open / Close e.g.

    • Master isClosed="false" oder isClosed="true")
    • Close to arrival - CTA noArrival="false" oder noArrival="true")
    • Close to departure - CTD noDeparture="false" oder noDeparture="true")
  • If rate is available and not closed a unit price per person can be send(personCount="2" unitPrice="510.00")

  • RestrictionStatus with master Open is usually sent (isClosed="false")
  • RestrictionStatus with master Close is sent (isClosed="true") with no rates for the persons
  • RestrictionStatus for Close to arrival (noArrival="false" noDeparture="false" isClosed="false")
  • LengthOfStay (normally called SetMinLOS or SetMaxLOS) can be sent optionally as minimumStay or maximumStay

Example CUSTOM_InventoryUpdateRQ Request to send rates and booking rules / RestrictionStatus

<inventoryUpdate hotelId="7730">
    <room id="32110">
        <inventory>
            <availability from="2023-08-24" to="2023-08-24" quantity="6" />
        </inventory>

        <rate currency="EUR" rateCode="431774" rateName="TEST-BAR-KU-2PAX">
            <planning from="2023-08-24" to="2023-08-24" minimumStay="3" maximumStay="4" noArrival="false" noDeparture="false" isClosed="false">
                <occupancy personCount="1" unitPrice="1050.50" isClosed="false" />
                <occupancy personCount="2" unitPrice="525.25" isClosed="false" />
            </planning>
            <planning from="2023-08-25" to="2023-08-25" minimumStay="3" maximumStay="4" noArrival="false" noDeparture="true" isClosed="false">
                <occupancy personCount="1" unitPrice="1020.00" isClosed="false" />
                <occupancy personCount="2" unitPrice="510.00" isClosed="false" />
            </planning>
            <planning from="2023-08-26" to="2023-08-26" minimumStay="3" maximumStay="4" noArrival="true" noDeparture="false" isClosed="false">
                <occupancy personCount="1" unitPrice="1010.00" isClosed="false" />
                <occupancy personCount="2" unitPrice="505.00" isClosed="false" />
            </planning>
        </rate>
        ...
        <rate currency="EUR" rateCode="BEST-BAR" rateName="Best available rate">
            <planning from="2023-08-24" to="2023-08-26" minimumStay="1" maximumStay="7" noArrival="true" noDeparture="true" isClosed="true">
                <!-- send only isClosed without unitPrice -->
                <occupancy personCount="1" isClosed="true" />
                <occupancy personCount="2" isClosed="true" />
            </planning>
        </rate>
    </room>
</inventoryUpdate>

Usually a <Success/> is sent in response or appropriate error messages

Example UpdateInventory Response

<?xml version="1.0" encoding="UTF-8"?>
<message xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         EchoToken="61d7255ffa4a667ac0eadfea4faeebcc" PrimaryLangID="de" TimeStamp="2022-03-08T14:40:51+01:00"
         Target="Production" Version="2.01">
    <Success/>
</message>