TR EN ES
WTATIL TUR API

API & Entegrasyon

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)

Entegrasyon akışı

1 Kimlik doğrulama
2 Tur arama
3 Dönem & fiyat
4 Sepete ekleme
5 Rezervasyon

Teknik adımlar

1Kimlik doğrulama
POST/api/Auth/get-token-async

applicationSecretKey, userName ve password ile bir erişim jetonu (token) alınır. Bu üç alan da zorunludur ve size operasyon ekibimiz tarafından verilir.

Nasıl kullanılır: Üretilen token 24 saat geçerlidir. Sonraki her isteğin gövdesinde bir 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.
2Tur arama
GET/api/TourCatalog/get-tour-data-via-autocomplete-async

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.

POST/api/TourCatalog/getall-tour-async

Sistemdeki turların ve tüm detaylarının listesini verir. Katalog senkronizasyonu için kullanılır (opsiyonel Ids[] ile filtrelenebilir).

GET/api/TourCatalog/getall-tour-category-async

Tur kategorilerinin listesi (kültür, gemi, vize vb.). Listeleme ekranlarında filtre olarak kullanılır.

POST/api/TourCatalog/search-tour-async

Tarih ve yolcu kriterleriyle turların fiyatını hesaplar. TourId, TourAreaId veya TourCountryId ile daraltılır.

⚠ Dikkat: TourId / TourAreaId / TourCountryId alanlarından yalnızca biri gönderilmelidir. Birden fazlası dolu gelirse API sonuç döndürmez.
⚠ Kritik: Detay sorgusunda 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.
3Dönem & fiyat
GET/api/TourCatalog/getall-tour-period-by-tour-id-async

Bir turun satılabilir periyotlarını (tarih/kalkış) verir. Sepete eklerken kullanılacak Periyot Id buradan alınır.

GET/api/TourCatalog/getall-tour-period-price-async

Seçilen periyodun yolcu kırılımına göre güncel fiyatını verir.

GET/api/TourCatalog/get-tour-transport-detail-by-tour-id-async

Turun gidiş/dönüş ulaşım detaylarını (kalkış noktaları vb.) verir.

GET/api/TourCatalog/getall-bus-service-point-by-city-id-async

Otobüslü turlarda şehre ait biniş (servis) noktaları. Yolcu bu noktalardan birini seçer; sepete eklerken müşteri bilgisiyle birlikte gönderilir.

GET/api/TourCatalog/get-all-agency-sale-link-by-tour-id-async

Tura ait acente satış linklerini verir (opsiyonel; kendi sitenizde paylaşım/yönlendirme için).

4Sepete ekleme
POST/api/Basket/add-basket-item-async

Seçilen tur periyodu + yolcu ve fatura bilgileri sepete eklenir. Tur ürününde rezervasyon yapılacak Periyot Id set edilir.

TrackingNumber deseni: İsteğin 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.
GET/api/Basket/get-basket-by-id-async

Sepet ID'si ile sepetteki ürün ve müşteri bilgilerini verir.

DELETE/api/Basket/delete-basket-item-by-id-async

Tek bir kalemi sepetten çıkarır. Alanlar: AgencyId, BasketId, BasketItemId. Kalem silinince ona bağlı müşteriler de silinir. Sepetin diğer kalemleri durur.

DELETE/api/Basket/delete-basket-by-id-async

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.

Dikkat: Her iki silme de kalıcıdır, geri alınamaz. Rezervasyona dönüşmüş bir sepette silme yapılmaz — satış sonrası değişiklikler B2B üzerinden talep olarak yürür.
5Rezervasyon
POST/api/Booking/create-succeeded-booking-async

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: Yanıtta bir BookingId döner. Satış sonrası tüm süreç (not ekleme, durum takibi) bu BookingId üzerinden yürür — saklayın.

Rezervasyon notları (opsiyonel)

POST/api/Booking/add-booking-note-async

Rezervasyona serbest metin not ekler. Alanlar: AgencyId, BookingId, Note. Yanıtta notun Id'si döner — güncellemek isterseniz bu Id gerekir.

PUT/api/Booking/update-booking-note-by-id-async

Mevcut bir notu günceller. Alanlar: Id (notun kendi kimliği), AgencyId, BookingId, Note.

Dikkat: Not silme ucu yoktur; yanlış eklenen bir notu güncelleyerek düzeltin. Ayrıca güncelleme PUT metodunu kullanır (ekleme POST'tur).
GET/api/Booking/getall-booking-async

Kendi rezervasyonlarınızı sayfalı olarak listeler/sorgular. Satış sonrası durum takibi (rezervasyon durumu, iptal, konfirme) için kullanılır.

Yardımcı uçlar (referans listeleri)

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.

GET/api/Common/getall-country-async

Ülke listesi. Müşteri uyruğu ve fatura adresi alanlarında kullanılır.

GET/api/Common/getall-city-by-country-id-async

Seçilen ülkeye ait şehirler. Biniş noktası sorgusunda da bu şehir kimliği kullanılır.

GET/api/Common/getall-gender-async   GET/api/Common/getall-currency-code-async   GET/api/Common/getall-meal-type-async

Cinsiyet, para birimi ve pansiyon tipi listeleri.

GET/api/Booking/getall-booking-state-async   GET/api/Booking/getall-booking-cancel-type-async

Rezervasyon durumu ve iptal tipi listeleri. (Aşağıdaki referans tablolarının canlı karşılıkları.)

Önemli notlar

• 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.

Canlı dokümantasyon (Swagger): Tüm uçların parametre ve model detaylarını görmek, isteği tarayıcıdan denemek için: tour-api.reserwation.com/docs

Yanıt zarfı ve durum kodları

Zarf yapısı

{
  "responseStatus": 0,
  "message": "...",
  "data": { ... }
}

responseStatus

KodSabitAçıklama
0SuccessBaşarılı
1InfoBilgi
2WarningUyarı (iş kuralı)
3ErrorHata

Referans kodları

Rezervasyon durumu (BookingState)

1PreReservationÖn rezervasyon (opsiyon)
2SucceededReservationKesin rezervasyon
3CanceledBySucceededReservationKesinden iptal
4CanceledByPreReservationÖn rezervasyondan iptal

Ürün tipi (ProductType)

1TourTur

Yolcu tipi (PersonType)

1AdultYetişkin
2ChildÇocuk
3InfantBebek

Cinsiyet (Gender)

1MaleErkek
2FemaleKadın

Para birimi (Currency)

TRYTürk Lirası
USDAmerikan Doları
EUREuro
GBPİngiliz Sterlini

Dil (Language)

1TRTürkçe
2ENİngilizce
3ESİspanyolca

Örnek istek / yanıt

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 } ]
}

Kavram sözlüğü

Token

get-token ile alınan, 24 saat geçerli erişim jetonu; her istekte Authorization objesinde userName ile birlikte gönderilir.

TrackingNumber

Sizin sisteminizdeki sepet takip numaranız. Add-basket-item ile B2B sepetine eşlenir.

Basket ID

Add-basket-item yanıtında dönen sepet kimliği; satın alıma kadar tüm sepet işlemlerinde kullanılır.

BookingId

Kesin rezervasyon sonrası dönen numara; satış sonrası tüm takip bunun üzerinden yapılır.

ProductPeriodId

Tur ürününde sepete eklenen periyodun (tarih/kalkış) kimliği.

API taban adresi, uygulama anahtarı ve ayrıntılı teknik dokümantasyon için operasyon ekibimizle iletişime geçin.  ·  © 2026 WTatil