Amadeus Enterprise APIs ve NDC Entegrasyon Rehberi
Amadeus Enterprise API Portal ve Travel Platform/NDC entegrasyonunu access, entitlement, offer/order lifecycle, servicing, quota sınırları ve observability ile tasarlayın.
- 2026-09-26 — Current Enterprise/NDC companion created after Self-Service decommission.
Amadeus Self-Service 17 Temmuz 2026'da decommission edildi. Yeni entegrasyon tasarımları current Enterprise API Portal ve ilgili Amadeus Travel Platform / NDC ürün yüzeyleri üzerinden değerlendirilmelidir. Bu rehber eski Self-Service endpoint'lerini current contract gibi tekrar etmez.
Provider companion özeti
| Alan | Durum |
|---|---|
| Erişim | Enterprise access request + commercial/technical onboarding + ilgili product entitlement |
| Auth | Product/API contract'a göre provision edilir; eski Self-Service auth contract'ını current Enterprise'a kopyalamayın |
| Primary capabilities | Air, Booking Management, Hotel, Cars & Transfers, profiles/payments ve airline-specific Enterprise API aileleri |
| NDC | Travel sellers için search, book ve manage NDC content; airline tarafında Altéa NDC / Offer & Order capabilities |
| Pagination | Product/endpoint-specific |
| Polling | Product/endpoint-specific; generic Amadeus-wide polling modeli yok |
| Universal public rate limit | Tüm Enterprise API portfolio için tek public quota doğrulanmadı |
| Booking lifecycle | Search/offer → selected offer/validation → booking/order → servicing source/product'a göre değişir |
| Evidence | Current public Enterprise/NDC surfaces reviewed; provisioned account testi iddia edilmiyor |
| Code | Illustrative |
Access ve onboarding
Enterprise Portal, ölçek ihtiyacı olan şirketler için 100'den fazla Enterprise API'ye request-access ve sandbox/testing süreci sunar. Capability entitlement, contract ve customer setup'a göre değişebilir.
Bu nedenle internal config:
provider = amadeus-enterprise
product_family = air | hotel | booking-management | ...
content_source = edmifact/gds | ndc | other
credential_scope = provisioned contract
environment = test | productiongibi versioned tutulmalıdır.
Capability boundary
Amadeus'u tek bir “flight search API” olarak modellemeyin:
Enterprise product family
-> entitlement
-> shopping/content contract
-> source-specific offer/reference
-> booking/order
-> servicing / exchange / cancelTravel seller NDC tarafında Amadeus, NDC content'i search, book ve manage edilebilir biçimde Travel Platform üzerinden sunar. NDC ile klasik GDS content aynı itinerary UI'ında görünebilir; servicing capability'nin aynı olduğu varsayılmamalıdır.
Canonical mapping
Provider identity domain identity değildir:
canonical itinerary != Amadeus offer/reference
canonical order != provider booking/order reference
canonical traveler != provider passenger referenceNormalize edilecek alanların yanında source lineage, offer expiry, servicing capability ve content source korunmalıdır.
Polling ve pagination
Enterprise portfolio farklı API family'lerinden oluşur. Pagination veya asynchronous polling yalnız ilgili endpoint'in resmi contract'ında varsa uygulanmalıdır. Self-Service döneminden kalan generic helper'ları yeni Enterprise API'lere otomatik taşımayın.
Rate limits ve quota
Public Enterprise landing page tüm API portfolio için tek bir account-independent QPS/quota değeri vermez. Quota ve concurrency limitleri active product contract, sandbox ve entitlement üzerinden doğrulanmalıdır.
Operational config provider-wide constant yerine:
product + operation + environment + credential scopebazında tutulmalıdır.
Freshness, cache ve offer lifecycle
Flight/NDC shopping output transaction truth değildir. Offer price, availability, ancillary ve eligibility booking'e kadar değişebilir. En az:
- source,
- offer/reference ID,
- observedAt,
- expiry varsa,
- itinerary fingerprint,
- price components,
- fare/brand,
- ancillary context
saklanmalıdır.
Idempotency ve ordering
Booking/order create network timeout'u proven failure değildir. Internal attempt ID oluşturun, provider correlation/reference saklayın ve ambiguous outcome sonrası retrieve/reconciliation yapın.
CREATING -> CONFIRMED
-> REJECTED
-> UNKNOWN -> RETRIEVE/RECONCILEUNKNOWN state'te blind duplicate create yapılmamalıdır.
Error taxonomy
Örnek internal sınıflar:
- AMADEUS_AUTH_OR_ENTITLEMENT
- AMADEUS_VALIDATION
- AMADEUS_NO_CONTENT
- AMADEUS_OFFER_EXPIRED
- AMADEUS_PRICE_CHANGED
- AMADEUS_RATE_LIMIT
- AMADEUS_UPSTREAM
- AMADEUS_TIMEOUT
- AMADEUS_BOOKING_UNKNOWN
- AMADEUS_SERVICING_UNSUPPORTED
Provider error'u doğrudan UI business state'i yapılmamalıdır.
Booking / NDC Offer & Order lifecycle
NDC'de itinerary + price'tan fazlası vardır. Offer ownership ve selected offer state'i korunmalı; booking sonrasında order/servicing lineage kaybedilmemelidir.
SHOP
-> OFFER
-> SELECT / VALIDATE
-> ORDER / BOOK
-> RETRIEVE
-> CHANGE / CANCEL / SERVICECarrier ve content source'a göre desteklenen servicing operasyonları capability matrix ile yönetilmelidir.
Failure modes
- historical Self-Service endpoint'ini current sanmak,
- GDS ve NDC servicing capability'lerini eşitlemek,
- offer/reference'i normalization sırasında kaybetmek,
- expired offer ile booking denemek,
- timeout sonrası duplicate booking/order,
- product-specific quota'yı global Amadeus limiti sanmak.
Observability
Product/source bazında:
- auth/entitlement rejection,
- search latency ve result count,
- source/content mix,
- offer age,
- revalidation/price-change rate,
- booking success/unknown rate,
- servicing failure,
- reconciliation gap
izlenmelidir.
Go-live checklist
- current Enterprise product entitlement doğrulandı
- historical Self-Service dependency yok
- test/prod config ayrıldı
- source/content capability matrix var
- provider references korunuyor
- freshness/offer expiry modelleniyor
- booking UNKNOWN recovery var
- retry operation-specific
- NDC/GDS servicing farkları test edildi
- quota/limits active contract'tan doğrulandı
- observability product/source bazında
Historical note
Eski Self-Service implementation'ların migration bağlamı için Amadeus Self-Service migration rehberini kullanın. Yeni entegrasyon için bu legacy contract source of truth değildir.
Benzer bir entegrasyon mu planlıyorsunuz?
Gereksinim, feed/API tasarımı ve production yaklaşımını birlikte değerlendirebiliriz.