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.
1. Search
Send one search to POST /v1/shopping/offers:
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
| Field | Description |
|---|---|
| airline | IATA code of the selling airline |
| expires_at | When the offer stops being bookable |
| fare_family / fare_rules | Branded fare and its change and refund conditions |
| offer_id | Opaque id you price and book. Never parse it |
| quality_score | 0–1 data completeness; see Quality Scores |
| slices[].segments[] | Journey legs and their flights |
| total_amount / currency | Price 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.