# Airline Retailing Design: [Airline or travel seller name]

> Solution design for selling and servicing air travel through offers
> and orders: shopping, dynamic offers, ancillaries, order creation,
> payment, servicing and disruption handling, across direct and
> indirect channels. It references the IATA New Distribution Capability
> (NDC) message standard (NDC 24.1 generation and earlier releases),
> the IATA ONE Order initiative and the industry move to Modern Airline
> Retailing with Offers and Orders. IATA standards are cited by name
> only; schemas and implementation guides are obtained from IATA under
> its terms. Replace every `[bracketed]` value and every row marked
> *Example*. Passenger rights and distribution rules are summarised for
> planning only: check the current official texts with a qualified
> professional. This is a documentation format, not legal advice.

<!--
Guidance: How to use this template
- Write one design per retailing platform (offer and order management
  system, or a seller's NDC aggregation layer).
- Fill the channel register (section 2) and the order model (section 4)
  first. The order is the single record that replaces the separate
  booking, ticket and miscellaneous document records in the target state.
- Related documents: Composable commerce architecture
  (`industry/composable-commerce-architecture`), Card acquiring payments
  design (`industry/card-acquiring-payments-design`), Event-driven
  architecture design (`architecture/event-driven-architecture-design`),
  API design guidelines (`architecture/api-design-guidelines`), Cutover
  plan (`project/cutover-plan`).
-->

## Document control

<!-- Guidance: Record the NDC schema versions and partners in scope. A new schema generation is a major version. -->

| Field | Value |
|---|---|
| Document ID | [ARD-001] |
| Platform | [Offer management / Order management / Seller aggregation layer] |
| NDC schema versions | [*Example:* 21.3 for existing partners, 24.1 for new partners] |
| Version | [0.1] |
| Status | [Draft / In review / Approved / Superseded] |
| Owner | [@retailing-architect] |
| Approvers/reviewers | [@head-of-distribution], [@revenue-management-lead], [@customer-service-lead], [@ciso] |
| Last updated | YYYY-MM-DD |

### Revision history

| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@name] | First draft |
| 1.0 | YYYY-MM-DD | [@name] | *Example:* Approved for build |

## 1. Scope and drivers

<!-- Guidance: State the channels, products and markets in scope and what the change should achieve, such as dynamic pricing, richer ancillaries or lower distribution cost. -->

| ID | Driver | Consequence for the design |
|---|---|---|
| DRV-001 *(Example)* | Offer the same fares and bundles in agency channels as on the airline website | NDC API for sellers with the same offer engine as direct channels |
| DRV-002 *(Example)* | Sell seats, bags and lounge access with the ticket | Ancillaries as order items, not separate documents |
| DRV-003 *(Example)* | Reduce servicing cost after disruptions | Order change and notification flows automated |
| DRV-004 *(Example)* | Move toward ONE Order | Order management system as the single customer record |

## 2. Channels and partners

<!-- Guidance: One row per channel or partner with its integration route and schema version. -->

| ID | Channel or partner | Route | Schema | Capabilities |
|---|---|---|---|---|
| CHN-001 *(Example)* | Airline website and app | Internal API | Internal model | Full shopping and servicing |
| CHN-002 *(Example)* | Online travel agency | Direct NDC connection | [Version] | Shop, order, pay, change, cancel |
| CHN-003 *(Example)* | Agencies through an aggregator | Aggregator NDC connection | [Version] | Shop, order, pay |
| CHN-004 *(Example)* | Legacy channels | Existing booking and ticketing route | Not applicable | Fares and limited ancillaries |

## 3. Offer management

<!-- Guidance: Describe how offers are built: inputs, pricing, bundling, expiry and personalisation. Each offer needs an ID and a time limit, so the order can be created only from a valid offer. -->

| ID | Element | Design decision |
|---|---|---|
| OFR-001 *(Example)* | Offer construction | Flights, fare product and ancillaries priced together by the offer engine |
| OFR-002 *(Example)* | Pricing inputs | Availability, fare filing, dynamic adjustments, customer context the seller shares |
| OFR-003 *(Example)* | Offer validity | Each offer and offer item carries an expiry time; expired offers are re-priced |
| OFR-004 *(Example)* | Personalisation | Only with data the customer or seller is allowed to share; logged per request |
| OFR-005 *(Example)* | Seller-specific content | Commercial agreements decide which offers each seller sees |

Main NDC messages typically used (each a request and response pair): AirShopping, OfferPrice, ServiceList and
SeatAvailability for shopping; OrderCreate, OrderRetrieve, OrderReshop,
OrderChange and OrderCancel for orders; and notification messages for
changes the airline starts. Check the message set in the schema version
agreed with each partner.

## 4. Order management

<!-- Guidance: Define the order as the record of what the customer bought and what the airline must deliver. Show order items, services and their statuses. ONE Order aims to replace the separate booking, ticket and EMD records with this single order. -->

| ID | Order element | Content |
|---|---|---|
| ORD-001 *(Example)* | Order | Order ID, owner airline, seller, customer contacts, total price, payment status |
| ORD-002 *(Example)* | Order item | One priced offer item, such as a fare or a bag, with its own status |
| ORD-003 *(Example)* | Service | Each deliverable unit per passenger and segment, such as a flight coupon equivalent or a seat |
| ORD-004 *(Example)* | Passenger | Name, type, documents when needed, loyalty number |
| ORD-005 *(Example)* | Payment | Method, amount, status, link to the payment service |
| ORD-006 *(Example)* | Accounting data | Data for revenue accounting and settlement with sellers and partners |

### 4.1 Order flow

Shopping, pricing and order creation for an indirect sale; the seller
never builds the price itself, it always comes from the airline offer.

```mermaid
sequenceDiagram
  participant S as Seller
  participant API as Airline NDC API
  participant OE as Offer engine
  participant OMS as Order management
  participant PAY as Payment service
  participant DCS as Delivery systems
  S->>API: AirShopping request
  API->>OE: build offers
  OE-->>API: offers with expiry
  API-->>S: AirShopping response
  S->>API: OfferPrice for the chosen offer
  API-->>S: confirmed price
  S->>API: OrderCreate with passengers and payment
  API->>OMS: create order
  OMS->>PAY: authorise payment
  PAY-->>OMS: authorised
  OMS->>DCS: services ready for delivery
  OMS-->>API: order view
  API-->>S: OrderCreate response with order ID
```

## 5. Servicing and disruption

<!-- Guidance: List the changes customers and the airline make after the sale, and how each is handled. Disruption is where most cost sits; automate re-accommodation and notify sellers. -->

| ID | Event | Initiator | Handling |
|---|---|---|---|
| SRV-001 *(Example)* | Voluntary change of date | Customer through seller | OrderReshop for new offers, OrderChange to apply, price difference collected |
| SRV-002 *(Example)* | Add a bag after booking | Customer | ServiceList, then OrderChange |
| SRV-003 *(Example)* | Schedule change or cancellation | Airline | Re-accommodation rules, order updated, seller notified |
| SRV-004 *(Example)* | Refund | Customer or airline | Refund per fare rules and passenger rights, payment reversed |

Passenger rights to check, examples: Regulation (EC) No 261/2004 in the
EU, the UK's assimilated version (UK Regulation 261), and the US
Department of Transportation refund rules in 14 CFR Part 260 (refunds for
airline fares and ancillary service fees, including cancelled or
significantly changed flights). Check the current texts for each market
you sell in.

## 6. Payments, settlement and distribution rules

<!-- Guidance: Describe who takes payment in each channel and how money is settled with sellers. Payment card data needs PCI DSS controls wherever it passes. -->

| ID | Channel | Merchant of record | Settlement route |
|---|---|---|---|
| PAY-001 *(Example)* | Website and app | Airline | Card acquiring |
| PAY-002 *(Example)* | Accredited agencies | Airline or agency per agreement | Industry settlement plan (for example IATA BSP, or ARC in the US) |
| PAY-003 *(Example)* | Online travel agency with own payment | Agency | Agency settlement per contract |

Distribution rules: in the EU, the computerised reservation system code
of conduct, Regulation (EC) No 80/2009, governs neutral display in
global distribution systems; check how it applies to your channels.

## 7. Non-functional design and migration

<!-- Guidance: Shopping traffic is large and mostly does not convert. Set look-to-book limits per partner and protect the offer engine with caching and quotas. -->

| ID | Area | Target |
|---|---|---|
| NFR-001 *(Example)* | Shopping response time | 95th percentile under 2 seconds |
| NFR-002 *(Example)* | Look-to-book ratio per partner | Agreed quota with throttling above it |
| NFR-003 *(Example)* | Order availability | 99.9 percent |
| NFR-004 *(Example)* | Personal data | Minimised, encrypted, retention per policy |
| MIG-001 *(Example)* | Partner migration | Move partners to the 24.1 generation in waves, with certification per partner |

## 8. Glossary and references

<!-- Guidance: Define terms for reviewers outside distribution. -->

| Term | Meaning |
|---|---|
| Offer | Priced proposal with an expiry time, built by the airline for a request |
| Order | Record of what the customer bought and what must be delivered |
| NDC | IATA's XML-based message standard for airline offers and orders |
| ONE Order | IATA initiative to replace booking, ticket and EMD records with one order |
| EMD | Electronic miscellaneous document for ancillary services in the legacy model |
| Look-to-book | Ratio of shopping requests to orders created |

| Reference | Version or date | Access |
|---|---|---|
| IATA NDC standard | NDC 24.1 generation and earlier releases | Schemas through IATA's download form: https://www.iata.org/en/programs/airline-distribution/retailing/ndc/ |
| IATA ONE Order | Release as published by IATA | https://www.iata.org/en/programs/airline-distribution/retailing/one-order/ |
| Regulation (EC) No 261/2004; Regulation (EC) No 80/2009 | Consolidated texts, checked YYYY-MM-DD | EUR-Lex |
| 14 CFR Part 260, Refunds for Airline Fare and Ancillary Service Fees | Current eCFR text, checked YYYY-MM-DD | https://www.ecfr.gov/current/title-14/chapter-II/subchapter-A/part-260 |

## Standard and licence note

Structure aligned with the IATA NDC and ONE Order standards, cited by
name and message names only; no schema, implementation guide or
standards text is reproduced, and all descriptions are original text
written for this collection. IATA schemas and guides are obtained from
IATA under its own terms. Check the current schema versions and the
passenger rights and distribution laws for each market before use. This
is a documentation format, not legal advice. IATA, NDC and ONE Order are
names of IATA programmes; this template is not affiliated with or
endorsed by IATA. Template licence: MIT.
