Rates & Availability Push
Pushing is split into rates and business days on one side and availability on the other. For the overall order of steps, see the Initial Setup overview.
| Method | Path | Description |
|---|---|---|
POST | .../ari | Rates and business days (per rate plan, vendor_rateplan_id) |
POST | .../ari/avails | Availability, vacancy (consolidated per room type; at most 730 days per item) |
Both endpoints carry the shared value and the per-channel values (the channels[] array) in a single call. channels[] is a complete declaration of per-channel settings, so settings for channels absent from the array are deleted within the item's from-to range.
Rates and business days — overnight (overnight)
[
{
"vendor_roomtype_id": "VRT-001",
"vendor_rateplan_id": "VRP-001",
"type": "overnight",
"from": "2026-01-01",
"to": "2026-01-31",
"basic_price": 0,
"net_price": 0,
"sale_price": 12000,
"is_business_day": 0,
"channels": [
{ "channel_id": 1, "basic_price": 0, "net_price": 0, "sale_price": 10000, "is_business_day": 0 },
{ "channel_id": 2, "basic_price": 0, "net_price": 0, "sale_price": 11000 }
]
}
]
Rates and business days — day-use (dayuse)
[
{
"vendor_roomtype_id": "VRT-001",
"vendor_rateplan_id": "VRP-001",
"type": "dayuse",
"from": "2026-01-01",
"to": "2026-01-31",
"basic_price": 0,
"net_price": 0,
"sale_price": 12000,
"is_business_day": 0,
"use_from": "14:00",
"use_to": "20:00",
"use_time": 240,
"channels": [
{ "channel_id": 1, "sale_price": 10000, "use_from": "14:00", "use_to": "20:00", "use_time": 240 }
]
}
]
Availability — consolidated per room type
[
{
"vendor_roomtype_id": "VRT-001",
"from": "2026-01-01",
"to": "2026-01-31",
"vacancy": 5,
"channels": [
{ "channel_id": 1, "vacancy": 3 },
{ "channel_id": 2, "vacancy": 5 }
]
}
]
POST .../ari— pushes rates and business days per rate plan. Settings for channels absent fromchannelsare deleted within the item's range (omitting the field or sending an empty array deletes settings for all channels), and each channel object must carry at least one value field (channel_idalone returns400). Omitted fields keep their existing values.use_from,use_to, anduse_time(in minutes) may be sent only on day-use items.POST .../ari/avails— applies availability as a consolidated per-room-type count.channels[]is a complete declaration of per-channel availability, so availability for channels absent from the array is deleted within the range. Each from-to range spans at most 730 days.
type field (overnight or day-use)Both ari and bookings (/bookings) use type to distinguish product types.
| Channel type | type used |
|---|---|
| Plus channel | overnight |
| Direct channel | overnight (channels that support day-use also send dayuse) |
- Partial push: include only the items you want to change
- Fields per item: business day =
is_business_day; rates =basic_price,sale_price,net_price; availability =vacancy(viaari/avails) - Day-use only:
use_from,use_to, anduse_timemay be sent only for day-use - One call per push: shared values at the top level, per-channel values in the
channels[]array
Channels differ in what availability is counted against.
- Room-only (room type): Booking.com, Agoda, Trip.com
- Rate plan: Expedia, Plus channels (with some optional cases)
ONDA counts availability per room type, so send availability aligned to room-only counts, and send package availability identical to standalone availability.