hotel-bookings

Requote

Re-price one hotel. reason decides on which feed, and what may replace what.

member turns a guest's public card into the member price after sign-in. refresh re-prices a card whose quote can no longer be sold — expired, or minted on a feed this deployment has retired — on whichever feed the viewer may see, and replaces the list wholesale. Failure modes by status:

  • 404 no_rates — nothing to show. For member: either the hotel has no CUG rates for these dates, or there is no cached card to price against and therefore no ledger row to stand behind one; keep the B2C rooms, nothing is wrong. For refresh it means the opposite — the stale rooms are NOT a fallback and the card is not bookable for these dates.
  • 422 — a child with no age; LiteAPI will not price without one.
  • 502 provider_error — LiteAPI did not answer. Keep the B2C rooms.
post/hotel-bookings/requote

Request body

hotel_idstring required
reason'member' | 'refresh'

Why we are re-pricing, which decides what may replace what.

MEMBER re-prices a public card on the member feed and may only SUBSTITUTE: a counterpart on the same terms, and only when it is no dearer. Its whole premise is that the public rooms are live and bookable, so a dearer or differently-termed member rate is not an improvement and is refused.

REFRESH re-prices a card whose quote can no longer be sold — expired, or minted on a feed this deployment has retired. Nothing on it is live, so the guard inverts: the fresh list REPLACES the old one whatever it costs, because a dearer live price is the answer and the stale one is not a fallback. Measured 2026-09-05→09-08: 3 of 7 Book presses were spent on offers in exactly this state, and each one failed at /prebook with no row and no event.

checkinstring date required
checkoutstring date required
adultsinteger
childreninteger
children_agesstring nullable
currencystring
conversation_idstring uuid nullable
tool_call_idstring nullable
result_indexinteger nullable
booking_intent_idstring nullable

Response

Successful Response

feedstring required
hotel_idstring required
quoted_atstring date-time required
pricenumber nullable required
price_displaystring nullable required
total_pricenumber nullable required
total_price_displaystring nullable required
currencystring required
ledger_writtenboolean required
cached_row_refreshedboolean required
member_rates_appliedboolean required

Changes

Changed in 1 of the 22 revisions of this API.1