Track the booking lifecycle
This guide explains booking statuses across flights, hotels, and activities, and how to read them.
How a booking moves
Every booking starts as a hold and ends as confirmed or cancelled. The flight and hotel APIs report status as a number. The activity API reports it as a word.
Flights
Read a flight booking with AirBookingData. The Status field:
| Status | Meaning |
|---|---|
10 | Booked and held. Awaiting ticketing before TktTimeLimit. |
20 | Ticketed. The fare is charged. |
Cancel a held booking with AirCancel. Refund a ticketed one with AirRefund.
Hotels
Read a hotel booking with HotelBookingData. A booking is held after book, confirmed after order, and cancelled after cancel. Balance is deducted only at order.
Activities
Read an activity booking with GET /Activity/v2/bookings/{uuid}. The status field:
| Status | Meaning |
|---|---|
reserved | Created and held. Awaiting confirmation. |
waiting | Confirmed by you, awaiting issuance. |
approved | Issued. The voucher is available. |
cancelled | Cancelled. |
expired | The hold lapsed. |
rejected | The supplier rejected the booking. |
refunded | Refunded after cancellation. |
Read status without polling hard
For activities, the platform records supplier events. Read the latest booking_status_updated event from the webhooks endpoint instead of re-fetching the booking in a loop. For flights and hotels, read the booking after an action that would change its status, and on a sensible interval otherwise.

