Skip to main content

Booking flow walkthrough

The booking flow has four steps. Use a sandbox key while integrating.

POST /api/v1/FlightBooking/Search for a given origin/destination/date and passenger mix, scoped to one airline tenant per call. Returns each connected provider's raw availability response.

2. Price extras (optional)​

POST /api/v1/FlightBooking/Extras for a selected offer, to confirm baggage/seat pricing before booking. Requires an Idempotency-Key header — a repeat call with the same key returns the same result rather than re-pricing.

3. Book​

POST /api/v1/FlightBooking with the selected offer. This is asynchronous: the response is 202 Accepted with an attemptId and a Requested status immediately — the actual GDS booking and wallet debit happen in the background. Poll GET /api/v1/FlightBooking/{attemptId} until status reaches a terminal value:

StatusMeaning
CompletedBooking succeeded, wallet debited, pnr is set.
FailedBooking did not go through — no charge was made.
BookedButUnpaidA real airline booking exists but the debit failed. This is rare and is flagged for manual review — contact support with the attemptId if you see it.

This call also requires an Idempotency-Key header — a repeat call with the same key returns the original attempt rather than creating a duplicate booking.

Rather than polling, consider subscribing to webhooks to be notified the moment an attempt reaches Completed or Failed.

4. Cancel (if needed)​

POST /api/v1/FlightBooking/{attemptId}/Cancel on a Completed booking. Cancellation is also asynchronous — poll the same GET endpoint, or use webhooks, to see the final Cancelled or CancelledButUnrefunded outcome.

Full reference​

See the API Reference for schemas and the API Console to send a request.