Plus Channel Booking
How bookings are held, confirmed, modified, and cancelled on Plus channels. ONDA and the vendor each validate at every step.
All booking endpoints are vendor APIs (ONDA → vendor), so the vendor implements them as a server.
Step by step
- Look up the refund policy in advance —
GET .../rateplans/{vendor_rateplan_id}/refund_policy - Create a held booking —
POST /bookings(validated, then availability is decremented) - Confirm the booking —
PUT /bookings/{vendor_booking_number}/confirm - Modify the booking —
PUT /bookings/{vendor_booking_number}/modify(soft changes only) - Cancel the booking —
POST /bookings/{vendor_booking_number}/cancel - Re-send availability —
POST .../ari/avails
Checklist
- Validate at each step — hold, confirm, cancel — against availability, rates, sales status, and business days
- Implement automatic cancellation (and availability restore) when
confirmis not called within 15 minutes of the hold - Create the vendor-side booking against
gds_sub_booking_number - Return the per-date refund policy just before booking
- Re-send changed availability after confirmation (
POST .../ari/avails) - Use only
overnightas the bookingtype - Allow only soft changes on
modify— define how to reject or handle hard change requests - Send booking vouchers (confirmation and cancellation) directly to the property
modify on Plus channels allows soft changes onlyOnly metadata changes such as booker and guest details are possible. Hard changes — changing stay dates or the booked room — are not allowed on Plus channels; handle them by cancelling and rebooking. (Direct channels do allow hard changes.)
If confirmation is not called within 15 minutes of creating the held booking, the hold is cancelled automatically and availability is restored.
Key fields
| Field | Endpoint | Description |
|---|---|---|
payment_type | POST /bookings, confirm response | On Plus channels this is always prepayment. paid_amount has been removed. |
net_price | POST /bookings, modify request | Settlement amount after fees — what will be paid out |
canceled_by | cancel request | Who cancelled — user, admin, channel, or system |
memo | cancel request | Cancellation reason or note. When a channel administrator cancels, the reason arrives together with canceled_by=channel |
type | POST /bookings request | Only overnight is used |
These exist in the spec but are never sent for Plus channel bookings. You do not need to implement them.
visit_type— arrival method. Used only by some direct channels that support day-usesecondary_channel— the secondary channeling route. Sent only by some legacy channels that support it
For how booking numbers are structured, see Common · Overview. Always create the vendor-side booking against gds_sub_booking_number.
Endpoints
All of these are vendor APIs (ONDA → vendor).
| Method | Path | Description |
|---|---|---|
GET | .../rateplans/{vendor_rateplan_id}/refund_policy | Look up the cancellation and refund policy in advance |
POST | /bookings | Create a held booking (decrements availability) |
PUT | /bookings/{vendor_booking_number}/confirm | Confirm the booking |
PUT | /bookings/{vendor_booking_number}/modify | Modify the booking (soft changes only) |
POST | /bookings/{vendor_booking_number}/cancel | Cancel the booking |
To read ONDA's booking data, the vendor uses the HUB APIs GET /gds/vendor/bookinglist and GET /gds/vendor/booking/{vendor_booking_number}.