Guides · Booking Flow

How Booking Works

You integrate one API. Norba asks every connected airline and returns offers and orders in one schema, whichever airline they came from.

D-213
NORBACACHE{ }{ }AAA3One requestPOST /v1/shopping/offersCacheAnswer reused while its offers holdEvery airline at onceA slow one never holds up the restMerged: one JSON back200 one schema, cheapest first

1. Search

Send one search to POST /v1/shopping/offers:

D-214
1234AAA3··{ }{ }AA{ }A30.92{ }JSON1. Validatecodes, dates, cabin, passengers2. Selectconnected airlines that serve the route3. Fan outall asked in parallel, bounded wait4. Mergeone schema, cheapest first, quality_scoreJSON response

The same search is answered from cache until the response's expires_at. To show offers as each airline answers, use POST /v1/shopping/offers/stream (SSE, Server-Sent Events: search, offers…, then done or error). Key batches on offer_id.

2. Offers

FieldDescription
airlineIATA code of the selling airline
expires_atWhen the offer stops being bookable
fare_family / fare_rulesBranded fare and its change and refund conditions
offer_idOpaque id you price and book. Never parse it
quality_score0–1 data completeness; see Quality Scores
slices[].segments[]Journey legs and their flights
total_amount / currencyPrice for all passengers; base_fare, taxes_fees and passengers break it down

Tip

Price before you book: POST /v1/offers/price returns a new offer_id. Book that one, not the one from the search.

3. Orders

POST /v1/orders books a priced offer. With payment it is ticketed in the same call; without, it is an unpaid hold until expires_at, paid later with POST /v1/orders/{orderID}/commit. Seats, extras, changes, cancellations and refunds are quoted before they are confirmed. See Orders Lifecycle and Servicing.

4. Reliability

Idempotent Writes

Send an Idempotency-Key on every write. A retry with the same key returns the first answer, so nothing is booked or charged twice.

Limits

Keyed requests have no rate limit. A 429 with Retry-After comes only from a volume ceiling agreed for your account or the free-allowance guard. See Errors & Rate Limits.

Partial Results

A slow or failing airline never holds up the others. A search fails only when every airline it asked failed.

Webhooks

Signed order events, including changes the airline makes. See Webhooks.

5. Sandbox and Production

  • Each key belongs to one environment and only reaches that environment's airlines and orders.
  • Every agency starts in the sandbox: the same API against the airlines' test systems. Tickets are test documents and carry no booking or servicing fee; requests are metered as in production.
  • Going live is a request from the dashboard, reviewed by Norba. Once approved you can create production keys.
How a Flight Booking Flows End to End | Norba Docs