ARI Push

The ARI Push API automatically sends hotel availability and rate updates from Minihotel to a partner-hosted endpoint. Unlike the primary ARI API, which requires partners to pull data from Minihotel, this interface pushes updates at predefined intervals.

Although ARI Push sends data to a partner-hosted endpoint, it is separate from the Minihotel Webhooks API and uses a different endpoint configuration and message structure. It does not use the retry mechanism described in the Webhooks documentation.

Who should use this interface?

This interface is primarily intended for OTAs and channel managers that maintain their own database of each property’s availability and rates. It allows them to synchronize this data with Minihotel.

Technology and format

ARI Push uses an XML-based interface. Requests are sent using the POST method.

The endpoint URL is provided and hosted by the partner. ARI Push supports only one configured endpoint URL at a time. A test URL can be configured initially and replaced with the production URL once testing is complete.

Availability updates are sent as deltas, generally every 2 to 10 minutes, depending on the configuration and current resource status of the relevant service. A full availability synchronization is also sent once every 24 hours, at midnight.

Rates are generally sent as full synchronization, either on demand when triggered by a user or automatically approximately every two hours.

The ARI Push request timeout is 300 seconds. Minihotel's team will coordinate the endpoint setup and room and rate-code mapping with the partner.

https://providerdomain.com/?hotelid=dummyhotelid
ProviderDomainThe domain of the provider we would like to send the request to.
hotelidThe hotel ID of the desired hotel.

Sending Availability

All these attributes are mandatory

ParameterDescriptionExample
idThe room ID to be updated"Double","Suite"
DateThe specific night to be updated, formatted as yyyy-mm-dd"2026-03-26"
AllocationThe number of units currently available for booking"3"
maxavailThe total number of units of this type that exist at the hotel"4"
<AvailRateUpdateRQ>
    <RoomType id="Double">
        <Inventory date="2026-03-26" Allocation="3" maxavail="4" />
    </RoomType>
    <RoomType id="Suite">
        <Inventory date="2026-03-26" Allocation="3" maxavail="4" />
    </RoomType>
</AvailRateUpdateRQ>
<?xml version="1.0" encoding="UTF-8"?>
<AvailRateUpdateRS>
    <Success/>
</AvailRateUpdateRS>

ℹ️

Note: Room IDs must be confirmed with the Minihotel team before proceeding to production.


Sending Rates

All these attributes are mandatory

ParameterDescriptionExample
idThe room ID to be updated"Double","Suite"
DateThe specific night to be updated, formatted as yyyy-mm-dd"2026-03-26"
ratecodeThe rate which the price would be set for"Standard","Non Refundable"
PricePrice of the room"850","990"

RateCode Extras & Restrictions

The Rate Code attribute allows you to send extra rates and restrictions. Closure restrictions are transmitted in binary format: 0 indicates 'Open' and 1 indicates "Closed" (e.g., the ratecode "price" is either 0 or 1). Minimum nights and extra rates are sent as positive integers.

RateCodeTypeDescription
CLS_NONERestrictionClose for Stayover – The “Regular” Close, most common one
CLS_ARRRestrictionClose for Arrival – Closed only for arrival date, less commonly used
CLS_DEPRestrictionClose for Departure – Closed only for departure date, less commonly used
MIN_NGTRestrictionMinimum Nights for Stayover – The “Regular” Minimum Nights, most common one
MIN_NGT1RestrictionMinimum Nights for Arrival – Only for arrival date, less commonly used
EXTRA_AExtra RateAdult Extra Price
EXTRA_CExtra RateChild Extra Price
EXTRA_BExtra RateBaby Extra Price
MEAL_A_BRExtra RateExtra Meal Price for Adult - Breakfast
MEAL_C_BRExtra RateExtra Meal Price for Child. You can use B for baby
MEAL_A_LUExtra RateExtra Meal Price for Adult - Lunch
MEAL_C_LUExtra RateExtra Meal Price for Child. You can use B for baby
MEAL_A_DIExtra RateExtra Meal Price for Adult - Dinner
MEAL_C_DIExtra RateExtra Meal Price for Child. You can use B for baby
SGN_RED_ABSExtra RateSingle Use Reduction Rate (When single person uses a room)

<?xml version="1.0" encoding="UTF-8"?>
<AvailRateUpdateRQ>
    <RoomType id="Double">
        <Rates date="2026-07-30">
            <Rate ratecode="Standard" Price="350"/>
            <Rate ratecode="NonRef" Price="70"/>
            <Rate ratecode="EXTRA_A" Price="50"/>
            <Rate ratecode="EXTRA_C" Price="30"/>
            <Rate ratecode="CLS_NONE" Price="1"/>
            <Rate ratecode="SGN_RED_ABS" Price="100"/>
            <Rate ratecode="BB_A" Price="50"/>
            <Rate ratecode="BB_C" Price="40"/>
        </Rates>
    </RoomType>
    <RoomType id="Suite">
        <Rates date="2026-07-30">
            <Rate ratecode="Non Refundable" Price="990"/>
            <Rate ratecode="EXTRA_A" Price="70"/>
        </Rates>
    </RoomType>
</AvailRateUpdateRQ>
<?xml version="1.0" encoding="UTF-8"?>
<AvailRateUpdateRS>
    <Success/>
</AvailRateUpdateRS>

ℹ️

Note: Rate codes must be verified with the Minihotel team before going live. All extra rates and meal codes are specified in the local currency by default. To specify a foreign currency, use an underscore in the code (e.g., EXTRA_A_USD, EXTRA_A_EUR). If only one currency is being used, the underscore is not required.