---
title: "NDC Offer/Order Lifecycle: Search'ten Servicing'e"
description: "NDC Offer/Order lifecycle'ını search, offer, revalidation, order create, payment, ticketing, servicing ve reconciliation state'leriyle modelleyin."
slug: "ndc-offer-order-lifecycle"
translationKey: "guide-ndc-offer-order-lifecycle"
locale: "tr"
type: "guide"
category: "flight"
tags: ["ndc","offer","order","ticketing","servicing","reprice"]
publishedAt: "2026-09-26"
updatedAt: "2026-09-27"
reviewedAt: "2026-09-27"
technicalVerifiedAt: "2026-09-27"
codeExampleStatus: "illustrative"
sources:
  - title: "IATA NDC"
    url: "https://www.iata.org/en/programs/airline-distribution/retailing/ndc/"
  - title: "Travelport NDC Guide"
    url: "https://support.travelport.com/webhelp/jsonapis/airv11/content/air11/NDC/NDCGuide.htm"
  - title: "Amadeus NDC for Travel Sellers"
    url: "https://amadeus.com/en/travel-sellers/content/ndc-travel-agents"
---
NDC'de Offer ile Order aynı entity değildir. Offer shopping anındaki airline retail proposition'ıdır; Order ise booking sonrası transaction/servicing state'idir. İki lifecycle'ı tek DTO'ya sıkıştırmak stale price, duplicate booking ve servicing hatası üretir.

## Canonical state machine

```mermaid
%% title: NDC Offer to Order to Ticket lifecycle
%% description: Flight shopping offer'ın revalidation, order creation, payment, ticketing ve servicing state'lerine geçişi.
stateDiagram-v2
  [*] --> Offered
  Offered --> Selected
  Selected --> Revalidating
  Revalidating --> Matched: unchanged
  Revalidating --> Changed: price / policy changed
  Revalidating --> Expired: unavailable
  Changed --> Selected: user accepts
  Matched --> OrderCreating
  OrderCreating --> OrderConfirmed: airline confirms
  OrderCreating --> OrderRejected: explicit rejection
  OrderCreating --> OrderUnknown: ambiguous outcome
  OrderUnknown --> OrderConfirmed: reconciliation finds order
  OrderUnknown --> OrderRejected: authoritative lookup finds none
  OrderConfirmed --> Ticketing
  Ticketing --> Ticketed: documents issued
  Ticketing --> TicketingUnknown: issuance outcome unclear
  Ticketed --> Servicing
  Servicing --> ChangedOrder
  Servicing --> Cancelled
  Servicing --> Refunded
```

## Offer identity

Offer fingerprint dedup için kullanılabilir ama provider offer/reference yerine geçmez.

Tutulması gerekenler:
- source/carrier,
- offer ID/reference,
- observedAt,
- expiry,
- itinerary,
- fare family,
- baggage,
- ancillaries,
- total/components,
- penalties.

## Revalidation

Offer select edildikten sonra stale state riski büyür. Provider destekliyorsa revalidation/refresh sonucu explicit state üretmelidir.

```text
same -> continue
price changed -> user reconfirm
expired/unavailable -> re-shop
```

## Order create ve unknown state

Network timeout sonrası “failed” demek tehlikelidir.

```text
create sent
  -> response confirmed
  -> response rejected
  -> no definitive response = UNKNOWN
```

UNKNOWN durumda retrieve/reconcile yapılmadan ikinci create gönderilmemelidir.

## Ticketing != Order

Order confirmed olması ticket/document issuance tamamlandı demek değildir. Booking/order, payment ve ticket/document state ayrı saklanmalıdır.

## Schedule change / servicing

Post-booking lifecycle:
- involuntary schedule change,
- voluntary change,
- exchange,
- cancel,
- refund,
- ancillary change

provider/carrier capability'lerine göre farklı olabilir.

## Observability

- offer age,
- reprice-change rate,
- create unknown rate,
- order-to-ticket latency,
- schedule-change lag,
- servicing failure,
- refund reconciliation.

## Anti-patterns

- itinerary == offer varsaymak,
- offer == order varsaymak,
- PNR == ticket varsaymak,
- timeout == failure varsaymak,
- source lineage'i normalization sırasında silmek.


## Failure modes

- stale offer ile order create,
- order confirmed fakat ticket issuance başarısız,
- duplicate order create,
- ancillary/fare family bilgisinin normalization sırasında kaybı,
- schedule change event'inin local state'e geç yansıması,
- servicing capability'nin provider bazında yanlış varsayılması.

## Production checklist

- Offer ve Order ayrı entity,
- revalidation explicit,
- UNKNOWN order state,
- ticket/document state ayrı,
- provider/carrier capability map,
- servicing/reconciliation path,
- source lineage korunması,
- end-to-end correlation IDs.
