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.
1. Search
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:
| Status | Meaning |
|---|---|
Completed | Booking succeeded, wallet debited, pnr is set. |
Failed | Booking did not go through — no charge was made. |
BookedButUnpaid | A 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.