Gazella        Caretta

Gazella B2B API Dokümantasyonu

Sürüm: Haziran 2026 · Entegrasyon (Integration) Servisleri

Bu doküman, Gazella B2B API entegrasyon servislerinin kullanımını, örnek istek/yanıtları ve birlikte gelen Postman koleksiyonunu açıklar. Örneklerde gerçek test verileri kullanılmıştır.


🔑
API Anahtarı (X-API-KEY)
Güvenlik nedeniyle API anahtarı bu dokümanda paylaşılmaz. Gazella tarafından ayrıca sağlanacaktır. Tüm isteklerde header içinde X-API-KEY olarak gönderiniz.
Ortam Bilgileri
CANLIhttps://b2b.api.gazella.com/api/Integration/
Entegrasyonlarınızda canlı (production) ortam adresini kullanınız.
ÖRNEKhttps://gazellab2bapi.caretta.net/api/Integration/
Bu dokümandaki örnek istek/yanıtlar bu ortam üzerinden hazırlanmıştır.

1. Genel Bilgiler

Dokümanda belirtilen API servislerini kullanabilmek için Gazella tarafından sağlanacak olan APIKEY parametresi gereklidir.

Konu Değer
Base URL https://gazellab2bapi.caretta.net/api/Integration/
Kimlik Doğrulama Header içinde X-API-KEY
Content-Type application/json
Content-Encoding UTF-8
Yanıt Formatı JSON

Önemli kurallar:

Ortak Yanıt Yapısı

Tüm servis yanıtlarında işlemin durumunu belirten alanlar yer alır. statusCode değerlerinin karşılıkları için İstek Durum Kodları bölümüne bakınız.

{
  "statusCode": 200,
  "statusDescription": "İşleminiz başarı ile yapıldı"
}

2. Postman Koleksiyonu

Bu doküman ile birlikte Gazella API (Integration).postman_collection.json dosyası gelir. Postman'de Import → File ile doğrudan içe aktarabilirsiniz (şema: Collection v2.1.0).

Yapı

Koleksiyon 6 klasörden oluşur; her klasör bir endpoint'e karşılık gelir ve içinde birden fazla örnek istek bulunur. Kimlik doğrulama koleksiyon seviyesinde X-API-KEY API Key auth olarak tanımlıdır; tüm istekler bunu otomatik miras alır.

Koleksiyon Değişkenleri

Variables sekmesinden düzenlenebilir:

Değişken Örnek Değer Açıklama
baseUrl https://gazellab2bapi.caretta.net/api/Integration Tüm isteklerin kök adresi
apiKey (Gazella tarafından ayrıca sağlanır) X-API-KEY header değeri
tourCode 22-00040 Örnek tur kodu
packageCode1 000874-000042 Örnek paket kodu 1
packageCode2 000887-000042 Örnek paket kodu 2
packageCode3 000877-000042 Örnek paket kodu 3

3. Endpoint'ler

Aşağıdaki tüm isteklerde header olarak X-API-KEY: <APIKEY> gönderilmelidir.


3.1 Integration/CreateOrder

Gazella B2B sisteminde sipariş oluşturur. İstek sonucu dönen yanıtta orderNumber değeri bulunur; bu değer ile Gazella tarafında sipariş sorgulaması yapabilirsiniz.

URL {baseUrl}/CreateOrder
Method POST
Content-Type application/json

Request Parametreleri

Alan Zorunluluk Tip Açıklama
packageCode Zorunlu string Paket turların paket kodu.
note Opsiyonel string Siparişe ait not bilgisi.
agencyOrderNumber Opsiyonel string Acentenin kendi sistemindeki sipariş numarası.
userPaxes Zorunlu array Yolcu listesi. Aşağıdaki alanları içerir.

userPaxes içindeki alanlar:

Alan Zorunluluk Tip Açıklama
countryName Zorunlu string Ülke adı. Örn: "Türkiye"
userPaxType Zorunlu int Pax tipi: Adult=1, Child=2 (2–11,99 yaş), Baby=3 (0–1,99 yaş).
email Zorunlu string E-posta. Maks. 50 karakter.
name Zorunlu string Ad. Maks. 50 karakter.
surname Zorunlu string Soyad. Maks. 30 karakter.
phoneNumber Koşullu string Telefon. Maks. 15 karakter. Yetişkin (Adult) ise zorunludur. Örn: 5555555555
genderId Zorunlu int Cinsiyet: Male=1, Female=2, Other=3.
birthDate Zorunlu string Doğum tarihi. Format: YYYY-MM-DD. Örn: 1993-04-29
tckn Koşullu string T.C. Kimlik No. Yetişkin (Adult) ise zorunludur.
passportNo Opsiyonel string Pasaport numarası.
passportExpireDate Opsiyonel string Pasaport son kullanma tarihi. Format: YYYY-MM-DD. Örn: 2027-04-19

Not: Bir siparişe en fazla 5 pax eklenebilir.

Örnek İstek — Tek Yetişkin

curl -X POST "https://gazellab2bapi.caretta.net/api/Integration/CreateOrder" \
  -H "X-API-KEY: <APIKEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "packageCode": "000874-000042",
    "note": "Tek yetiskin sipariş notu",
    "agencyOrderNumber": "222222",
    "userPaxes": [
      {
        "countryName": "Türkiye",
        "userPaxType": 1,
        "email": "info@caretta.net",
        "name": "Caretta",
        "surname": "Caretta",
        "phoneNumber": "5555555555",
        "genderId": 1,
        "birthDate": "1993-04-29",
        "tckn": "31256952812",
        "passportNo": "TR35-PST2027",
        "passportExpireDate": "2027-04-19"
      }
    ]
  }'

Örnek İstek — Yetişkin + Çocuk

{
  "packageCode": "000874-000042",
  "note": "Yetişkin + çocuk siparişi",
  "agencyOrderNumber": "222224",
  "userPaxes": [
    {
      "countryName": "Türkiye", "userPaxType": 1,
      "email": "yetiskin@caretta.net", "name": "Mehmet", "surname": "Demir",
      "phoneNumber": "5556667788", "genderId": 1,
      "birthDate": "1988-03-10", "tckn": "31256952812"
    },
    {
      "countryName": "Türkiye", "userPaxType": 2,
      "email": "cocuk@caretta.net", "name": "Elif", "surname": "Demir",
      "genderId": 2, "birthDate": "2016-09-05"
    }
  ]
}

Çocuk (userPaxType=2) ve bebek (userPaxType=3) için phoneNumber ve tckn zorunlu değildir.

Örnek Yanıt

{
  "statusCode": 200,
  "statusDescription": "İşleminiz başarı ile yapıldı",
  "orderNumber": 10268
}

3.2 Integration/GetTourPriceAndCapacity

packageCode bilgisine göre ilgili tur ürününün fiyat, otel ve kapasite bilgilerini döner.

URL {baseUrl}/GetTourPriceAndCapacity
Method GET
Content-Type application/json

Query Parametreleri

Parametre Zorunluluk Açıklama
packageCode Zorunlu Paket kodu. Örn: 000874-000042

Örnek İstek

curl "https://gazellab2bapi.caretta.net/api/Integration/GetTourPriceAndCapacity?packageCode=000874-000042" \
  -H "X-API-KEY: <APIKEY>"

Örnek Yanıt

{
  "data": {
    "tourCode": "22-00040",
    "title": "Mistik Fas Ve Sahra Çölü",
    "packageCode": "000874-000042",
    "tourCategoryId": 1,
    "tourTransportTypeId": 1,
    "price": 1690,
    "currencyType": "EUR",
    "startDate": "2026-10-16T00:00:00",
    "endDate": "2026-10-23T00:00:00",
    "capacityPerson": 9987,
    "capacityRoom": 4993,
    "definiteDeparture": false,
    "commissionRate": 0.00,
    "useable": true,
    "mininumPax": 10,
    "departureFlight": "TK617 İstanbul-Kazablanka 12:15-15:05",
    "returnFlight": "TK620 Marakeş-İstanbul 16:05-23:05",
    "hotel": {
      "name": "4* ve 5* Oteller",
      "code": "000042",
      "capacityRoom": 0
    },
    "campaigns": [],
    "flights": [
      {
        "type": 1,
        "value": "TK617 İstanbul-Kazablanka 12:15-15:05",
        "flightNumber": "TK617",
        "airlineCompanyName": "Türk Hava Yolları",
        "departureCityName": "İstanbul",
        "departureHour": "12:15",
        "arrivalCityName": "Kazablanka",
        "arrivalHour": "15:05"
      },
      {
        "type": 2,
        "value": "TK620 Marakeş-İstanbul 16:05-23:05",
        "flightNumber": "TK620",
        "airlineCompanyName": "Türk Hava Yolları",
        "departureCityName": "Marakeş",
        "departureHour": "16:05",
        "arrivalCityName": "İstanbul",
        "arrivalHour": "23:05"
      }
    ],
    "prices": [
      { "typeId": 1, "price": 2140.00, "currencyType": "EUR" },
      { "typeId": 2, "price": 1690.00, "currencyType": "EUR" },
      { "typeId": 3, "price": 1690.00, "currencyType": "EUR" }
    ]
  },
  "statusCode": 200,
  "statusDescription": "İşleminiz başarıyla tamamlandı.",
  "isSuccess": true
}

Alan Açıklamaları

Alan Açıklama
capacityPerson Tur ürününe ait kalan kontenjan (kişi).
capacityRoom Tur ürününe ait kalan toplam kapasite.
hotel.capacityRoom Otele ait kalan toplam kapasite.
departureFlight / returnFlight Gidiş / dönüş uçuş bilgisi.
flights Pakete bağlı uçuş listesi. type: Gidiş=1, Dönüş=2, Tur içi=3.
prices Tur fiyatları. typeId: Single=1, Double=2, Triple=3, Child=5, Baby=6, DoubleChild=7.
campaigns Tur tarihine denk gelen kampanyalar. discountType 1=Yüzdesel, 2=Miktarsal; amount uygulanacak indirim miktarı.

3.3 Integration/GetAllTourPriceAndCapacity

Satış başlangıç tarihi bugünden büyük olan tüm tur ürünlerinin fiyat/otel/kapasite bilgilerini listeler.

URL {baseUrl}/GetAllTourPriceAndCapacity
Method GET
Content-Type application/json

Query Parametreleri (Opsiyonel)

Parametre Açıklama
tourCode Tur kodu bazında filtreleme. Örn: 22-00040
pageSize Tek seferde istenen kayıt sayısı. Örn: 100
pageNumber Sayfa numarası. Örn: 1

Query parametreleri gönderilmezse tüm kayıtlar döner. Yanıtta sayfalama için totalRecordCount alanı bulunur.

Örnek İstekler

# Tüm kayıtlar
curl "https://gazellab2bapi.caretta.net/api/Integration/GetAllTourPriceAndCapacity" \
  -H "X-API-KEY: <APIKEY>"

# Filtreli + sayfalı
curl "https://gazellab2bapi.caretta.net/api/Integration/GetAllTourPriceAndCapacity?tourCode=22-00040&pageSize=100&pageNumber=1" \
  -H "X-API-KEY: <APIKEY>"

Örnek Yanıt (kısaltılmış)

{
  "totalRecordCount": 100,
  "data": [
    {
      "title": "Mistik Fas Ve Sahra Çölü",
      "packageCode": "000874-000042",
      "tourCode": "22-00040",
      "price": 1690,
      "currencyType": "EUR",
      "commissionRate": 0.00,
      "startDate": "2026-10-16T00:00:00",
      "endDate": "2026-10-23T00:00:00",
      "capacityPerson": 9987,
      "capacityRoom": 4993,
      "definiteDeparture": false,
      "tourCategoryId": 1,
      "tourTransportTypeId": 1,
      "hotel": { "name": "4* ve 5* Oteller", "code": "000042", "capacityRoom": 0 },
      "prices": [
        { "typeId": 1, "price": 2140.00, "currencyType": "EUR" },
        { "typeId": 2, "price": 1690.00, "currencyType": "EUR" }
      ],
      "campaigns": [],
      "flights": []
    }
  ],
  "statusCode": 200,
  "statusDescription": "İşleminiz başarıyla tamamlandı."
}

Alan açıklamaları 3.2 ile aynıdır. Ek olarak totalRecordCount toplam kayıt sayısını verir.


3.4 Integration/GetAllB2BToursDetails

Satış başlangıç tarihi bugünden büyük olan turları listeler.

URL {baseUrl}/GetAllB2BToursDetails
Method POST
Content-Type application/json

Query Parametreleri (Opsiyonel)

Parametre Açıklama
pageSize Tek seferde istenen kayıt sayısı. Örn: 100
pageNumber Sayfa numarası. Örn: 1

Query parametreleri gönderilmezse tüm kayıtlar döner. Yanıtta totalRecordCount alanı bulunur.

Örnek İstek

curl -X POST "https://gazellab2bapi.caretta.net/api/Integration/GetAllB2BToursDetails?pageSize=100&pageNumber=1" \
  -H "X-API-KEY: <APIKEY>" \
  -H "Content-Type: application/json"

Örnek Yanıt (kısaltılmış)

{
  "totalRecordCount": 12,
  "data": [
    {
      "tourName": "Baştan Başa Fas",
      "tourOperator": "Gazella",
      "tourCode": "22-00012",
      "tourProductCode": "000878",
      "tourCategoryId": 1,
      "tourTransportTypeId": 1,
      "hotelCode": "000042",
      "hotelName": "4* ve 5* Oteller",
      "startDate": "2029-10-16T00:00:00",
      "packageCode": "000878-000042",
      "commissionRate": 0.00
    },
    {
      "tourName": "Mistik Fas Ve Sahra Çölü",
      "tourOperator": "Gazella Nomads",
      "tourCode": "22-00040",
      "tourProductCode": "000874",
      "tourCategoryId": 1,
      "tourTransportTypeId": 1,
      "hotelCode": "000042",
      "hotelName": "4* ve 5* Oteller",
      "startDate": "2026-10-16T00:00:00",
      "packageCode": "000874-000042",
      "commissionRate": 0.00
    }
  ],
  "statusCode": 200,
  "statusDescription": "İşleminiz başarıyla tamamlandı."
}

3.5 Integration/GetB2BTourDetailsWithTourCode

Tur koduna göre, satış başlangıç tarihi bugünden büyük olan turları (ilgili tüm paket varyantları ile) döner.

URL {baseUrl}/GetB2BTourDetailsWithTourCode
Method POST
Content-Type application/json

Request Parametreleri

Parametre Zorunluluk Açıklama
tourCode Zorunlu Tur kodu. Query parametresi olarak gönderilir. Örn: 22-00040

Örnek İstek

curl -X POST "https://gazellab2bapi.caretta.net/api/Integration/GetB2BTourDetailsWithTourCode?tourCode=22-00040" \
  -H "X-API-KEY: <APIKEY>" \
  -H "Content-Type: application/json"

Örnek Yanıt

Bu servis ilgili tur koduna ait tüm paket varyantlarını döndürür.

{
  "data": [
    {
      "tourName": "Mistik Fas Ve Sahra Çölü",
      "tourOperator": "Gazella Nomads",
      "tourCode": "22-00040",
      "tourProductCode": "000874",
      "tourCategoryId": 1,
      "tourTransportTypeId": 1,
      "hotelCode": "000042",
      "hotelName": "4* ve 5* Oteller",
      "startDate": "2026-10-16T00:00:00",
      "packageCode": "000874-000042",
      "commissionRate": 0.00
    },
    {
      "tourName": "Mistik Fas Ve Sahra Çölü",
      "tourOperator": "Gazella Nomads",
      "tourCode": "22-00040",
      "tourProductCode": "000887",
      "tourCategoryId": 1,
      "tourTransportTypeId": 1,
      "hotelCode": "000042",
      "hotelName": "4* ve 5* Oteller",
      "startDate": "2060-10-16T00:00:00",
      "packageCode": "000887-000042",
      "commissionRate": 0.00
    }
  ],
  "statusCode": 200,
  "statusDescription": "İşleminiz başarıyla tamamlandı."
}

3.6 Integration/GetTourDetail

Tur koduna göre ilgili turun detay bilgilerini (program, dahil/hariç hizmetler, oteller) döner.

URL {baseUrl}/GetTourDetail
Method GET
Content-Type application/json

Query Parametreleri

Parametre Zorunluluk Açıklama
code Zorunlu Turun kod bilgisi. Query parametresi olarak gönderilmelidir. Örn: 22-00040

Örnek İstek

curl "https://gazellab2bapi.caretta.net/api/Integration/GetTourDetail?code=22-00040" \
  -H "X-API-KEY: <APIKEY>"

Örnek Yanıt (kısaltılmış)

{
  "data": {
    "title": "Mistik Fas Ve Sahra Çölü",
    "code": "22-00040",
    "tourCategoryId": 1,
    "tourTransportTypeId": 1,
    "commissionRate": 0.00,
    "generalInfo": "<p><strong>Otellerimiz</strong> ... <strong>Vize Bilgileri</strong> Türk vatandaşları 90 güne kadar vizeden muaftır. ... (HTML içerik)",
    "programs": [
      {
        "sort": 1,
        "title": "İstanbul - Kazablanka",
        "description": "Turumuz kişiye özel aracın sizi adresinizden alması ile başlıyor. ... (program açıklaması)"
      },
      {
        "sort": 2,
        "title": "Rabat – Volubilis – Meknes – Fez",
        "description": "Kahvaltının ardından Rabat şehir turumuzu gerçekleştiriyoruz. ..."
      }
    ],
    "includedServices": [
      { "sort": 1, "text": "THY ile İstanbul – Kazablanka / Marakeş – İstanbul uçak biletleri" },
      { "sort": 2, "text": "4* ve 5* otellerde konaklama (kahvaltı ve akşam yemekleri dahil)" },
      { "sort": 3, "text": "Türkçe Rehberlik Hizmeti" }
    ],
    "excludedServices": [
      { "sort": 1, "text": "Yurtdışı Çıkış Harç Pulu" },
      { "sort": 2, "text": "Öğle yemekleri" },
      { "sort": 3, "text": "Ekstra turlar" }
    ],
    "hotels": [
      { "title": "4* ve 5* Oteller", "code": "000042", "city": null }
    ]
  },
  "statusCode": 200,
  "statusDescription": "İşleminiz başarıyla tamamlandı.",
  "isSuccess": true
}

Alan Açıklamaları

Alan Açıklama
generalInfo Tur ile ilgili genel bilgiler (HTML içerebilir).
programs Turun günlük program bilgilerini içeren liste.
includedServices Fiyata dahil hizmetler.
excludedServices Fiyata dahil olmayan hizmetler.
hotels Tur üzerinde tanımlı otel bilgileri.

4. Tipler ve Açıklamalar

Tip Değerler
UserPaxType Adult = 1, Child = 2, Baby = 3
GenderId Male = 1, Female = 2, Other = 3
Flights.Type Gidiş = 1, Dönüş = 2, Tur içi = 3
Prices.Type Single = 1 (tek yetişkin pp), Double = 2 (iki yetişkin pp), Triple = 3 (üç yetişkin pp), Child = 5 (çocuk pp), Baby = 6 (bebek pp), DoubleChild = 7 (iki çocuk pp)
TourApprovalStatus / TourProductApprovalStatus AwaitingApproval = 1, Approved = 2, Rejected = 3
Campaign DiscountType Yüzdesel = 1, Miktarsal = 2
TourCategoryId Yurt Dışı = 1, Yurt İçi = 2, Cruise = 5
TourTransportTypeId Uçak = 1, Otobüs = 2, Gemi = 3, Tren = 4, Tekne = 5, Uçaksız Paket = 6

5. İstek Durum Kodları

Kod Açıklama
200 İşleminiz başarı ile yapıldı.
500 İşleminiz yapılırken hata oluştu. Sunucu taraflı hata oluşmuş olabilir.
1000 Paket kodu formatı geçersiz.
1001 Lütfen yolcu bilgisi giriniz.
1002 Ülke adı boş bırakılamaz.
1003 Ad boş bırakılamaz.
1004 Soyad boş bırakılamaz.
1005 Lütfen geçerli bir doğum tarihi giriniz.
1006 Email adresi boş bırakılamaz.
1007 Lütfen geçerli bir telefon numarası giriniz.
1008 Lütfen geçerli bir T.C. Kimlik numarası giriniz.
1020 Otel bulunamadı.
1021 Tur ürünü bulunamadı.
1022 Tur ürününe ait otel bulunamadı.
1023 Bu tura şu an rezervasyon yapılamamaktadır.
1024 Seçilen otelin kontenjanı dolmuştur. Lütfen başka bir oteli deneyiniz.
1025 Tur ürününün kapasitesi kalmamıştır.
1026 Maksimum pax sayısını aştınız. 5'ten fazla pax ekleyemezsiniz.
1027 Tur ürünü kullanılabilir değil.
1028 Lütfen pax tipini ve doğum tarihini kontrol ediniz.
1029 Tur bulunamadı.
1030 Pax tipine uygun fiyat bulunamadı.

6. Notlar


7. Ek: Test Değerleri

Aşağıdaki değerler test ortamı için kullanılabilir:

Alan Değer
APIKEY Gazella tarafından ayrıca sağlanır (dokümanda paylaşılmaz)
tourCode 22-00040
packageCode 000874-000042, 000887-000042, 000877-000042

Uyarı: APIKEY gizli bir bilgidir; herkese açık kaynak kodu depolarında veya paylaşılan ortamlarda saklanmamalıdır.


Bu doküman, Gazella B2B API Dokümantasyonu ve birlikte gelen Postman koleksiyonu temel alınarak hazırlanmıştır.