Hotel booking lifecycle
You choose your next action from the stored booking state.
You decide your next action from the stored booking status. A successful HTTP response can return an existing or in-progress booking, and a failed request does not prove that a supplier operation failed.
| Status | What you know | Your next action |
|---|---|---|
| CREATED | Your booking row exists, but prebook has not completed. | Read the same booking; do not pay yet. |
| PREBOOK_IN_PROGRESS | Your offer is being held or repriced. | Read the same booking; a repeated prebook key retrieves its stored state. |
| READY_FOR_COMPLETE | Your room assignment and price are stored. | Review terms and complete payment and booking before offer_expires_at. |
| COMPLETE_IN_PROGRESS | Your completion attempt has claimed the booking. The purchase outcome may still be unknown. | Read the booking and seek support if unresolved; do not create another purchase. |
| CONFIRMED | Your supplier reservation is confirmed. | Use the room references and hotel confirmation codes when available. |
| CANCEL_IN_PROGRESS | Your cancellation attempt is running. | Read room state and cancellation history while processing continues. |
| PARTIALLY_CANCELED | Some of your rooms were released. | Inspect every room and the attempt history before requesting cancellation of remaining rooms. |
| CANCELED | Your stay has been released. | Check cancellation refund intent; it is not settlement confirmation. |
| FAILED | Your prebook or completion failed. | Read the original error and resolve any payment uncertainty before starting a new intended booking. |
| EXPIRED | Your stored booking is marked expired. | Obtain a new offer; do not complete this booking. |
You check offer_expires_at while the booking is READY_FOR_COMPLETE. A booking may remain in that status after the timestamp passes; completion still rejects an expired offer. Elapsed time alone does not establish that an in-progress purchase was refused.
You can receive CONFIRMED even when payment capture still requires recovery, and its payment can then read AUTHORIZED because payments show the last recorded outcome. You must not repeat the supplier purchase to repair payment. A hotel confirmation code can arrive later than the supplier reservation reference; a null code alone does not mean failure.
You read cancellations separately from the booking status. Each entry records its attempt status, fee, refund intent, the payments its refund returns to and any error code. A succeeded cancellation can still require refund investigation. A refused cancellation keeps the reservation or unreleased rooms live.