# Exchange and rebooking
These operations cover changes to a hotel booking after it has been confirmed, including date changes, rate changes, room modifications, and automatic rebooking through rate assurance.
**Webhook used:** [PNR_V3](/openapi/webhookeventapi/webhooks/paths/pnr_v3/post)
| Step | Operation | Event trigger | Context |
| --- | --- | --- | --- |
| 1 | `BOOKING_ UPDATED` | When the hotel booking is modified and the same PNR is updated. | A change has been made to the hotel reservation that is not a cancellation or rebooking.
This event type covers all hotel modifications, including check-in or check-out date changes, loyalty number updates,
number of rooms or guests changed, nightly rate changes, rate type changes (e.g., from published to corporate), rate code changes, and
total booking amount changes.
If a supplier decides to cancel and rebook for a modification then the `BOOKING_UPDATED` event will not be sent.
Instead, you'll receive a `BOOKING_CANCELED_BY_TRAVELER` followed by a `BOOKING_CREATED` event.
Use the `hotelPnr > rebookReference` object in the `BOOKING_CREATED` event payload to see the cancelled PNR.
**Example 1:** A traveler extends their hotel stay by one night (check-out moves from March 18 to March 19).
The `BOOKING_UPDATED` event is triggered on the same PNR with the updated dates and new total ($1,000).
**Example 2:** A traveler extends their hotel stay by one night. The hotel cancels and rebooks the reservation with new information.
A `BOOKING_CANCELED_BY_TRAVELER` event is triggered for the original PNR,
followed by a `BOOKING_CREATED` event for the new PNR with the updated dates.
**Example 3 (Loyalty added):** A traveler adds their Hilton Honors membership number to the booking.
The `BOOKING_UPDATED` event is triggered. |
| 2
| `BOOKING_ REBOOKED`
| When the hotel booking is rebooked to a different rate, room, or property.
| The hotel reservation has been rebooked. This can indicate the vendor confirmation number, the room, or the property has been changed.
> Note: This is distinct from `BOOKING_UPDATED`, which covers modifications to the same reservation.
Rebooking can occur when a better rate becomes available for the same or equivalent hotel and an agent or traveler manually rebooks to a different
property or room type.
The `rebookReference` object in the payload links the old and new PNRs and may include additional metadata about the rebook.
To identify a rebook, compare the `vendorConfirmationNumber` between the latest and previous PNR versions.
If they differ, the booking has been rebooked. You can also check the `rebookReference` object for cancelled PNR IDs and the new rebooked PNR ID.
**Example:** A traveler booked a hotel at $250/night. A lower rate of $200/night becomes available for the same room.
The TMC agent identifies this as a cost-saving measure and rebooks at the better rate, saving $150 over 3 nights.
The `BOOKING_REBOOKED` event is triggered with a new confirmation number.
|
## Rebooking flow diagram
```mermaid
flowchart LR
subgraph modifications["Modifications and rebook"]
A(["Confirmed hotel
booking"]) --> B{"Type of
change?"}
B -->|"Modifying same PNR"| C["BOOKING_UPDATED
―――――――――――
Dates, rate, room, loyalty,
or guest count changed
on the same PNR."]
B -->|"Cancel and rebook"| D["BOOKING_CANCELED_
BY_TRAVELER
―――――――――――
Old PNR cancelled
as part of modify flow."]
D --> E["BOOKING_CREATED
―――――――――――
New PNR created with
updated details."]
B -->|"Rate assurance
or manual rebook"| F["BOOKING_REBOOKED
―――――――――――
The confirmation number, the room type, or property is changed."]
end
style A fill:#f0f0f0,stroke:#999
style C fill:#2196F3,color:#fff
style D fill:#F44336,color:#fff
style E fill:#4CAF50,color:#fff
style F fill:#2196F3,color:#fff
```