Tur arama, dönem/fiyat sorgulama, sepet ve rezervasyon süreçlerini kendi sisteminize entegre edin. Aşağıda uçtan uca akış, her adımın teknik detayı ve dikkat edilmesi gerekenler yer alır.
Canlı dokümantasyon (Swagger)applicationSecretKey, userName ve password ile bir erişim jetonu (token) alınır. Bu üç alan da zorunludur ve size operasyon ekibimiz tarafından verilir.
Authorization objesi bulunmalıdır: { "userName": "...", "token": "..." }. Token HTTP header'ında değil, istek gövdesinde gönderilir. Süresi dolan token için "Token is expired." yanıtı alırsınız; yeniden get-token-async çağırın.Kullanıcı yazarken tur / bölge / ülke önerileri döndürür. Arayüzde arama kutusu yapıyorsanız akış buradan başlar; dönen kimliği search-tour-async isteğinde kullanırsınız.
Sistemdeki turların ve tüm detaylarının listesini verir. Katalog senkronizasyonu için kullanılır (opsiyonel Ids[] ile filtrelenebilir).
Tur kategorilerinin listesi (kültür, gemi, vize vb.). Listeleme ekranlarında filtre olarak kullanılır.
Tarih ve yolcu kriterleriyle turların fiyatını hesaplar. TourId, TourAreaId veya TourCountryId ile daraltılır.
TourId / TourAreaId / TourCountryId alanlarından yalnızca biri gönderilmelidir. Birden fazlası dolu gelirse API sonuç döndürmez.Detail = 1, liste/ana sorgularda Detail = 0 gönderilmesi zorunludur. Aksi halde yoğun istek koruması nedeniyle uygulamanızın API erişimi bloklanır.Bir turun satılabilir periyotlarını (tarih/kalkış) verir. Sepete eklerken kullanılacak Periyot Id buradan alınır.
Seçilen periyodun yolcu kırılımına göre güncel fiyatını verir.
Turun gidiş/dönüş ulaşım detaylarını (kalkış noktaları vb.) verir.
Otobüslü turlarda şehre ait biniş (servis) noktaları. Yolcu bu noktalardan birini seçer; sepete eklerken müşteri bilgisiyle birlikte gönderilir.
Tura ait acente satış linklerini verir (opsiyonel; kendi sitenizde paylaşım/yönlendirme için).
Seçilen tur periyodu + yolcu ve fatura bilgileri sepete eklenir. Tur ürününde rezervasyon yapılacak Periyot Id set edilir.
TrackingNumber alanına kendi sisteminizdeki sepet takip numaranızı yazın. Bu numaraya ait sepet yoksa yeni bir sepet oluşturulur ve yanıtta o sepetin ID değeri döner. Bu ID'yi saklayın — satın alıma kadar tüm sepet işlemlerinde (ekleme/silme/rezervasyon) bu ID kullanılır.Sepet ID'si ile sepetteki ürün ve müşteri bilgilerini verir.
Tek bir kalemi sepetten çıkarır. Alanlar: AgencyId, BasketId, BasketItemId. Kalem silinince ona bağlı müşteriler de silinir. Sepetin diğer kalemleri durur.
Sepetin tamamını siler. Alanlar: AgencyId, Id (sepet kimliği). Yolcu vazgeçtiğinde ya da yeni bir sepete geçmek istediğinizde kullanın.
Sepet kesin rezervasyona dönüştürülür ve satın alma işlemi gerçekleşir. İstek, add-basket-item yanıtındaki sepet ID'si ile gönderilir.
BookingId döner. Satış sonrası tüm süreç (not ekleme, durum takibi) bu BookingId üzerinden yürür — saklayın.Rezervasyon notları (opsiyonel)
Rezervasyona serbest metin not ekler. Alanlar: AgencyId, BookingId, Note. Yanıtta notun Id'si döner — güncellemek isterseniz bu Id gerekir.
Mevcut bir notu günceller. Alanlar: Id (notun kendi kimliği), AgencyId, BookingId, Note.
Kendi rezervasyonlarınızı sayfalı olarak listeler/sorgular. Satış sonrası durum takibi (rezervasyon durumu, iptal, konfirme) için kullanılır.
Form alanlarını doldururken kullanacağınız sabit listeler. Bu değerleri kendi tarafınızda sabit yazmak yerine bu uçlardan çekmeniz önerilir — liste güncellendiğinde entegrasyonunuz bozulmaz.
Ülke listesi. Müşteri uyruğu ve fatura adresi alanlarında kullanılır.
Seçilen ülkeye ait şehirler. Biniş noktası sorgusunda da bu şehir kimliği kullanılır.
Cinsiyet, para birimi ve pansiyon tipi listeleri.
Rezervasyon durumu ve iptal tipi listeleri. (Aşağıdaki referans tablolarının canlı karşılıkları.)
• Tüm istek ve yanıtlar JSON'dur ve standart bir zarf yapısı kullanır: { responseStatus, message, data }.
• İş sonucunu HTTP durum kodundan değil, yanıttaki responseStatus alanından kontrol edin.
• Kimlik doğrulama token tabanlıdır; token 24 saat geçerlidir, süresi dolunca yeniden get-token-async çağrılır.
• Fiyat ve müsaitlik anlıktır; ana sorgularda Detail = 0 kuralına uyun.
Zarf yapısı
{
"responseStatus": 0,
"message": "...",
"data": { ... }
}
responseStatus
| Kod | Sabit | Açıklama |
|---|---|---|
| 0 | Success | Başarılı |
| 1 | Info | Bilgi |
| 2 | Warning | Uyarı (iş kuralı) |
| 3 | Error | Hata |
| 1 | PreReservation | Ön rezervasyon (opsiyon) |
| 2 | SucceededReservation | Kesin rezervasyon |
| 3 | CanceledBySucceededReservation | Kesinden iptal |
| 4 | CanceledByPreReservation | Ön rezervasyondan iptal |
| 1 | Tour | Tur |
| 1 | Adult | Yetişkin |
| 2 | Child | Çocuk |
| 3 | Infant | Bebek |
| 1 | Male | Erkek |
| 2 | Female | Kadın |
| TRY | Türk Lirası | |
| USD | Amerikan Doları | |
| EUR | Euro | |
| GBP | İngiliz Sterlini |
| 1 | TR | Türkçe |
| 2 | EN | İngilizce |
| 3 | ES | İspanyolca |
Kimlik doğrulama · İstek
POST /api/Auth/get-token-async
{
"applicationSecretKey": "****",
"userName": "api-user",
"password": "********"
}
Kimlik doğrulama · Yanıt
{
"responseStatus": 0,
"data": {
"token": "...",
"expireDate": "..." // +24 saat
}
}
Sepete ekleme · İstek (özet)
POST /api/Basket/add-basket-item-async
{
// token istek gövdesindeki Authorization objesinde gönderilir
"authorization": { "userName": "api-user", "token": "..." },
"agencyId": 123,
"trackingNumber": "KENDI-SEPET-NO-001",
"productId": 3798,
"productTypeId": 1, // Tour
"productPeriodId": 55210, // seçilen periyot
"currencyCode": "EUR",
"customers": [ { "gender": 1, "personTypeId": 1 } ]
}
get-token ile alınan, 24 saat geçerli erişim jetonu; her istekte Authorization objesinde userName ile birlikte gönderilir.
Sizin sisteminizdeki sepet takip numaranız. Add-basket-item ile B2B sepetine eşlenir.
Add-basket-item yanıtında dönen sepet kimliği; satın alıma kadar tüm sepet işlemlerinde kullanılır.
Kesin rezervasyon sonrası dönen numara; satış sonrası tüm takip bunun üzerinden yapılır.
Tur ürününde sepete eklenen periyodun (tarih/kalkış) kimliği.