Skip to main content

Booking flow walkthrough

A complete booking, from search to a confirmed PNR, is four steps. All four are documented in full, with a live "Try It" console, in the API Reference.

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

Every request/response field, and a live console to try each of these calls with your own API key, is in the API Reference.