Guides · Orders
Orders Lifecycle
Everything that happens after a customer picks an offer. Orders are the stateful half of NDC — they persist at the airline and carry the full booking lifecycle from creation through ticketing, servicing, and eventual completion.
The happy path
A typical booking flows through these states. Every transition writes an order_event for the audit trail.
1
Search
POST /v1/shopping/offers → aggregator fans out to all airlines, returns ranked offers cached with TTL.
2
Price lock
POST /v1/shopping/offers/price → locks a specific offer with the airline. Returns a PricedOffer valid for 5–15 minutes.
3
Service shop (optional)
POST /v1/shopping/services → catalogue of ancillaries available for this offer: bags, seats, meals, lounges.
4
Seat shop (optional)
POST /v1/shopping/seats → per-segment seat map with availability, pricing, and features.
5
Create order
POST /v1/orders → submits passenger details and payment against the priced offer. Returns OrderID, PNR, and status (pending or confirmed).
6
Pay & ticket
POST /v1/orders/{id}/pay → triggers ticketing. Status transitions to ticketed, ticket numbers populate.
7
Servicing
Changes, seats, ancillaries, SSRs, refunds — the long tail of post-booking operations.
Order states
An order can be in one of these states at any time:
| Status | Meaning |
|---|---|
| held | Offer locked, inventory held. Airline has reserved the seats for a limited time (5–15 min typical). |
| pending | Order created but not yet ticketed. Payment capture may still be in progress. |
| confirmed | Payment processed and ticketing triggered. Not all tickets may be issued yet. |
| ticketed | All passengers ticketed. Ticket numbers populated. The booking is firm. |
| cancelled | Order cancelled. May be refundable or non-refundable depending on fare rules. |
| refunded | Refund processed. Money returned to original form of payment. |
| voided | Same-day cancellation before BSP settlement. No charge applied. |
| exchanged | Itinerary changed. New tickets issued, old tickets marked exchanged. |
Payment methods
Norba supports multiple payment methods when creating or paying for an order:
| Method | Use case |
|---|---|
| card_token | Tokenized card payment processed through a PCI-compliant gateway. Pass a token instead of raw card data. |
| bsp_cash | Billing and Settlement Plan (BSP) cash. For IATA-accredited agencies using their airline relationships. |
| bank_transfer | Direct bank transfer for markets where card penetration is low. |
| wallet | Digital wallet (Apple Pay, Google Pay) where supported by the airline. |
Important notes
- Offer IDs expire quickly (5–15 minutes). Always price-lock an offer just before creating the order.
- Passenger emails must belong to the actual passenger, not the agency. Airlines validate this.
- Infant passengers (under 2) must be assigned to a responsible adult via infant_passenger_id.
- The airline's booking_reference (PNR) is returned on order creation. Use this to find the booking on the airline's website.
- Every mutation writes to order_events for the full audit trail. Retrieve history at GET /v1/orders/{id}/history.