Direct Channel Booking
How bookings are held, confirmed, modified, and cancelled on direct channels. Unlike Plus channels, every step is accepted unconditionally, with no validation.
Differences from Plus channels
| Aspect | Plus channel | Direct channel |
|---|---|---|
| Validation | ONDA and the vendor each validate | None — accepted unconditionally |
| Booking modification | Soft changes only | Both soft and hard changes |
Booking type | overnight | overnight (channels that support day-use also send dayuse) |
Step by step
- Create a held booking —
POST /bookings(accepted without validation; availability is decremented) - Confirm the booking —
PUT /bookings/{vendor_booking_number}/confirm - Modify the booking —
PUT /bookings/{vendor_booking_number}/modify(soft and hard changes) - Cancel the booking —
POST /bookings/{vendor_booking_number}/cancel
Types of modification
modify requests are classified by what they change. Direct channels allow both types.
| Type | Scope |
|---|---|
| Soft change | Booker and guest details — metadata that affects neither availability nor dates |
| Hard change | Check-in and check-out dates, the booked room, and similar — affects availability, rates, and mappings |
Checklist
- Accept every booking step unconditionally (no validation)
- Handle the booking
type—overnightplusdayuseon channels that support day-use,overnightonly elsewhere - Receive and handle
visit_type(arrival method:carorwalk) - Create the vendor-side booking against
gds_sub_booking_number - Implement the
modifyflow, distinguishing soft changes from hard changes - On a hard change, decrement or restore availability and recalculate rates
- Send booking vouchers (confirmation and cancellation) directly to the property
Key fields
| Field | Endpoint | Description |
|---|---|---|
payment_type | POST /bookings, confirm response | Prepaid (prepayment) or pay on arrival (postpayment). 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 | overnight for an overnight stay. Channels that support day-use also send dayuse |
visit_type | POST /bookings request | How the guest arrives — car or walk. Sent only by some channels that support day-use |
secondary_channel | POST /bookings request | The selling route when the booking came through secondary channeling (informational). Sent only by some legacy channels that support it |
For how booking numbers are structured, see Common · Overview.
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 and hard changes) |
POST | /bookings/{vendor_booking_number}/cancel | Cancel the booking |