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:

StatusMeaning
heldOffer locked, inventory held. Airline has reserved the seats for a limited time (5–15 min typical).
pendingOrder created but not yet ticketed. Payment capture may still be in progress.
confirmedPayment processed and ticketing triggered. Not all tickets may be issued yet.
ticketedAll passengers ticketed. Ticket numbers populated. The booking is firm.
cancelledOrder cancelled. May be refundable or non-refundable depending on fare rules.
refundedRefund processed. Money returned to original form of payment.
voidedSame-day cancellation before BSP settlement. No charge applied.
exchangedItinerary changed. New tickets issued, old tickets marked exchanged.

Payment methods

Norba supports multiple payment methods when creating or paying for an order:

MethodUse case
card_tokenTokenized card payment processed through a PCI-compliant gateway. Pass a token instead of raw card data.
bsp_cashBilling and Settlement Plan (BSP) cash. For IATA-accredited agencies using their airline relationships.
bank_transferDirect bank transfer for markets where card penetration is low.
walletDigital 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.
API Documentation — Norba | Norba — NDC Aggregation API