Reservasi
Restrictions and stop-sell
Minimum stays, closed-to-arrival and stop-sell — one set of rules that binds the direct booking widget and every OTA alike.
Terakhir diperbarui
Who this is for: Owner — applying a restriction requires
crs.restrictions.write. The default Manager bundle does not carry it.
A restriction is a rule about how a date may be sold, as opposed to for how much. The vocabulary Nerve speaks:
| Restriction | Closes |
|---|---|
| Stop-sell | The date entirely — nothing may be sold |
| Closed to arrival | Stays that would start on the date |
| Closed to departure | Stays that would end on the date |
| Minimum stay on arrival | Stays arriving that date and shorter than the minimum |
| Minimum stay through | Stays passing through the date and shorter than the minimum |
| Maximum stay | Stays longer than the maximum |
| Maximum to sell | Sales beyond a ceiling you set, regardless of physical rooms |
They apply per rate plan, per date, and they resolve deterministically into an effective set for each date.
Catatan
Reservations → Restrictions does not have a dedicated screen yet — the nav entry resolves to a placeholder. The restrictions themselves are live: they are enforced on every quote, and they are pushed to the channels from Availability as a Restrictions or Stop-sell change. Templates and per-date editing are authored through the Open Hotel Protocols API today.
Why a restriction closes everywhere#
This is the point of keeping restrictions in one place, and it is worth stating plainly: a stop-sell binds the direct booking widget as well as the OTAs.
The widget is not a separate storefront reading a separate copy of the inventory. It quotes from the same availability and the same restrictions the channels are sent, so a date you close is closed on your own website in the same instant — without a second switch to remember.
So a stop-sell fails in exactly one way: if the ARI push to a channel has not landed, that channel is still selling the date. The direct side is never the gap. Watch the delivery status when you close a date at short notice.
Close a date#
- Apply the stop-sell to the rate plan and date, through the API.
- Open Reservations → Availability.
- Choose the Stop-sell change kind and set the date range.
- Select Distribute.
- Watch each channel card until its row reads delivered.
Step 5 is the one that matters. Until then the house and the channel disagree, and the channel is the one taking bookings.
Removing the restriction and pushing again reopens the date.
Check that a derived plan is closed too#
A derived rate plan inherits only the facts it is configured to inherit — stop-sell is one of them, and it is opt-in per plan.
Closing BAR does not close an NRF derived from it unless NRF inherits stop-sell. That is a real configuration, not an oversight: some houses want the non-refundable rate to keep selling a date the flexible rate has shut. Most do not.
So when you close a date, check whether anything derives from the plan you closed, and whether it inherits the closure. See room categories and rate plans.
What's next#
- Availability and ARI distribution — getting a restriction out to the channels
- Room categories and rate plans — derivation and per-fact inheritance
- Distribution settings and the availability series — the cut-offs and rules that clip availability before a restriction is even considered