Skip to content
Son güncelleme

Transfer Arama

Transfer arama endpoint'leri, iki nokta arasında belirli bir saatte uygun transfer araçlarını bulmanızı sağlar. Arama, fiyatlandırma, kurallar ve iptal politikalarıyla birlikte araç tekliflerinin listesini döndürür; her teklif, sipariş adımında kullanılan searchId + code ikilisiyle tanımlanır.

Transfer Ara

Belirtilen güzergâh, saat ve yolcu sayısı için uygun transfer araçlarını arar.

Endpoint

POST /transfer/search

Kimlik Doğrulama

Bu endpoint kimlik doğrulama gerektirir. Authorization başlığında JWT erişim jetonunuzu ekleyin:

Authorization: Bearer ERIŞIM_JETONUNUZ

Koordinat Kaynağı (Şiddetle Tavsiye Edilir)

pickup ve dropoff koordinatlarını kendi geocoding çözümünüz yerine Lokasyonlar endpoint'lerinden (yer arama + yer detayı) alın. Transfer tedarikçileri verilen koordinatları kendi hizmet bölgelerine eşler; bir tedarikçinin bölgesinin biraz dışına düşen ham koordinatlar sonuçlardan sessizce elenir. Bu nedenle aynı arama, koordinatlar yakındaki ham bir noktadan değil de /locations ilgi noktasından (havalimanı, otel, semt) geldiğinde belirgin şekilde daha fazla araç döndürür.

İstek Gövdesi

AlanTürGerekliAçıklama
typestringEvetYolculuk tipi: oneway veya round
pickupobjectEvetAlış noktası
pickup.latnumberEvetEnlem (-90 ile 90 arası)
pickup.lonnumberEvetBoylam (-180 ile 180 arası)
pickup.namestringHayırAlış noktasının okunabilir adı
dropoffobjectEvetBırakış noktası (pickup ile aynı yapı)
pickupTimedatetimeEvetAlış tarihi ve saati (saat dilimli RFC 3339 formatı). Gelecekte olmalı
returnPickupTimedatetimeKoşulluDönüş bacağı alış saati. type round olduğunda zorunlu; pickupTime sonrasında olmalı
passengerCountintegerEvetYolcu sayısı (en az 1)
commissionobjectHayırNet fiyatın üzerine eklenecek acente komisyonu
commission.typestringEvet*Komisyon tipi: percentage veya fixed
commission.percentagenumberKoşulluKomisyon yüzdesi (0-100). Tip percentage olduğunda zorunlu
commission.fixedobjectKoşullu{amount, currency} biçiminde sabit komisyon. Tip fixed olduğunda zorunlu

Örnek İstek

Örneklerdeki tarihler temsilidir; kendi isteğinizde gelecekte bir alış zamanı kullanın.

curl -X POST https://api.pro.yolcu360.com/api/v1/transfer/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ERIŞIM_JETONUNUZ" \
  -d '{
    "type": "oneway",
    "pickup": {"lat": 41.276146, "lon": 28.728735, "name": "Istanbul Airport (IST)"},
    "dropoff": {"lat": 41.037003, "lon": 28.985092, "name": "Taksim Square"},
    "pickupTime": "2027-06-15T10:00:00+03:00",
    "passengerCount": 2,
    "commission": {"type": "percentage", "percentage": 10}
  }'

Yanıt

Başarılı Yanıt (200 OK):

{
  "searchId": "0ba0fea9-1e98-43ce-a69b-e895e2bc68a6",
  "products": [
    {
      "code": "9972a93a-707e-403e-928e-cbb68a65584f",
      "appointment": {
        "pickup": {
          "lat": 41.276146,
          "lon": 28.728735,
          "name": "Istanbul Airport (IST)"
        },
        "dropoff": {
          "lat": 41.037003,
          "lon": 28.985092,
          "name": "Taksim Square"
        },
        "pickupTime": "2027-06-15T10:00:00+03:00",
        "passengerCount": 2
      },
      "onewayDistance": 41662,
      "onewayDuration": 2727,
      "vehicle": {
        "name": "Minivan",
        "seatCount": 6,
        "baggageCount": 6,
        "image": "https://cdn.example.com/assets/images/van.png"
      },
      "pricing": {
        "currency": "TRY",
        "fees": [
          {
            "amount": 132000,
            "currency": "TRY",
            "type": "oneway",
            "charge": "advance",
            "description": "Outbound Trip Amount"
          },
          {
            "amount": 13200,
            "currency": "TRY",
            "type": "commission",
            "charge": "advance",
            "description": "commission"
          }
        ],
        "vendorTotal": {
          "amount": 0,
          "currency": "TRY"
        },
        "paymentTotal": {
          "amount": 145200,
          "currency": "TRY"
        },
        "discountTotal": {
          "amount": 0,
          "currency": "TRY"
        },
        "total": {
          "amount": 145200,
          "currency": "TRY"
        }
      },
      "rules": [
        {
          "type": "freeCancellation",
          "description": "Free Cancellation"
        },
        {
          "type": "waitForFree",
          "description": "First 15 minutes of waiting free"
        },
        {
          "type": "safeTripWithInvoice",
          "description": "Safe trip with invoice"
        }
      ],
      "cancellationPolicies": [
        {
          "type": "freeCancel",
          "until": "2027-06-15T09:00:00+03:00",
          "description": "You can cancel your transfer free of charge up to 1 hour before departure."
        }
      ]
    }
  ]
}

Yanıt Alanları

AlanTürAçıklama
searchIdstringSipariş oluşturmada kullanılan arama oturumu kimliği
productsarrayUygun araç teklifleri

Ürün Alanları

AlanTürAçıklama
codestringSipariş oluşturmada searchId ile birlikte kullanılan teklif kodu
appointmentobjectYolculuğun tedarikçi tarafından anlaşıldığı hâli (noktalar, saatler, yolcu sayısı)
onewayDistanceintegerGidiş mesafesi, metre cinsinden
onewayDurationintegerGidiş süresi, saniye cinsinden
returnDistanceintegerDönüş mesafesi, metre cinsinden (yalnızca gidiş-dönüş)
returnDurationintegerDönüş süresi, saniye cinsinden (yalnızca gidiş-dönüş)
vehicleobjectAraç adı, koltuk sayısı, bagaj sayısı ve görseli
pricingobjectFiyat dökümü (aşağıya bakın)
rulesarray{type, description} biçiminde hizmet kuralları
cancellationPoliciesarray{type, until, description} biçiminde iptal politikası pencereleri

Fiyatlandırma Alanları

Tüm tutarlar en küçük para birimindedir (TRY için kuruş).

AlanTürAçıklama
currencystringDökümün para birimi
feesarrayFiyat kalemleri: oneway ve return yolculuk tutarları, acente komisyonu istendiğinde ek commission kalemi
vendorTotalobjectTedarikçiye araç başında ödenecek tutar (şu an her zaman peşin tahsil edilir)
paymentTotalobjectÖdeme adımında tahsil edilecek tutar
discountTotalobjectUygulanan toplam indirim
totalobjectKomisyon dahil genel toplam

Gidiş-Dönüş Arama

type alanını round yapın ve returnPickupTime gönderin. Yanıt, ek returnDistance ve returnDuration alanlarını ve bir return fiyat kalemini içerir:

curl -X POST https://api.pro.yolcu360.com/api/v1/transfer/search \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ERIŞIM_JETONUNUZ" \
  -d '{
    "type": "round",
    "pickup": {"lat": 41.276146, "lon": 28.728735, "name": "Istanbul Airport (IST)"},
    "dropoff": {"lat": 41.037003, "lon": 28.985092, "name": "Taksim Square"},
    "pickupTime": "2027-06-15T10:00:00+03:00",
    "returnPickupTime": "2027-06-20T14:00:00+03:00",
    "passengerCount": 2
  }'
{
  "searchId": "9635f52b-e0f9-4b5e-8b23-0986be44b88b",
  "products": [
    {
      "code": "e96d7154-e0c8-45c6-81c6-54db5506bfaf",
      "appointment": {
        "pickup": {
          "lat": 41.276146,
          "lon": 28.728735,
          "name": "Istanbul Airport (IST)"
        },
        "dropoff": {
          "lat": 41.037003,
          "lon": 28.985092,
          "name": "Taksim Square"
        },
        "pickupTime": "2027-06-15T10:00:00+03:00",
        "returnPickupTime": "2027-06-20T14:00:00+03:00",
        "passengerCount": 2
      },
      "onewayDistance": 41662,
      "returnDistance": 41662,
      "onewayDuration": 2727,
      "returnDuration": 2727,
      "pricing": {
        "currency": "TRY",
        "fees": [
          {
            "amount": 132000,
            "currency": "TRY",
            "type": "oneway",
            "charge": "advance",
            "description": "Outbound Trip Amount"
          },
          {
            "amount": 132000,
            "currency": "TRY",
            "type": "return",
            "charge": "advance",
            "description": "Return Trip Amount"
          }
        ]
      }
    }
  ]
}

Yukarıdaki örnek gidiş-dönüşe özgü alanlarla sınırlandırılmıştır; ürün yapısının tamamı tek yön yanıtıyla aynıdır.

Teklif Detayı Al

Daha önceki bir aramadan tek bir teklifi searchId ve code ile yeniden alır. Kullanıcının seçtiği teklifi tüm arama yanıtını oturumunuzda tutmadan yeniden göstermek için kullanışlıdır.

Endpoint

GET /transfer/search/{searchId}/{code}

Kimlik Doğrulama

Bu endpoint kimlik doğrulama gerektirir. Authorization başlığında JWT erişim jetonunuzu ekleyin.

Yol Parametreleri

ParametreTürGerekliAçıklama
searchIdstringEvetAramadan gelen arama kimliği
codestringEvetAramadan gelen teklif kodu

Örnek İstek

curl -X GET https://api.pro.yolcu360.com/api/v1/transfer/search/0ba0fea9-1e98-43ce-a69b-e895e2bc68a6/9972a93a-707e-403e-928e-cbb68a65584f \
  -H "Authorization: Bearer ERIŞIM_JETONUNUZ"

Yanıt

Başarılı Yanıt (200 OK):

Arama yanıtındaki products dizisinin bir öğesiyle tamamen aynı yapıda tek bir ürün nesnesi döndürür.

Teklif Geçerliliği

Arama teklifleri yaklaşık 30 dakika geçerlidir. Süresi dolmuş veya bilinmeyen bir teklif istendiğinde şu yanıt döner:

{
  "code": 8003,
  "description": "Transfer product not found or expired",
  "details": "The search result was not found or has expired, please search again."
}

Bu durumda yeni bir arama yapın ve güncel teklifleri gösterin.