Rentofis ana sayfa

Rentofis Tedarikçi API

Araç kiralama broker'ları için müsaitlik, fiyat ve rezervasyon API'si

Rentofis, Türkiye'deki araç kiralama firmalarının filo yönetim yazılımıdır. Bu API ile Rentofis kullanan tedarikçi firmaların vitrin araçlarını, fiyatlarını ve müsaitliğini sorgulayabilir; rezervasyon oluşturabilir, durum sorgulayabilir ve iptal edebilirsiniz.

Kimlik Doğrulama

Her tedarikçi firma, Rentofis panelinden sizin platformunuz için ürettiği API anahtarını size iletir (firma çalıştığı her broker'a ayrı anahtar üretir). Hangi firmanın anahtarıyla istek yaparsanız o firmanın envanterini görürsünüz. Anahtarı her istekte başlıkta gönderin:

x-api-key: <companyId>.<token>

# veya
Authorization: Bearer <companyId>.<token>
1) Araç Listesi + Müsaitlik + Fiyat

GEThttps://rentofis.com/api/supplier/vehicles?start=2026-08-01&end=2026-08-05

Firmanın broker'lara açık (vitrin) araçlarını döner. start ve end verilirse her araç için müsaitlik ve süreye uyan fiyat hesaplanır (pricing bloğu kampanyalı toplamı verir); verilmezse available: null ve standart fiyat döner. group araç sınıfıdır (Ekonomik/Orta/SUV/Lüks), bodyType kasa tipidir. Firma lokasyon tanımladıysa yanıtta locations listesi bulunur; pickup ve drop parametreleri verilirse farklı yere bırakma ücreti dropFee alanında döner; tedarikçi pickup lokasyonunu bir şubeye eşlediyse araç listesi de o şubenin araçlarıyla sınırlanır. Fiyatlar günlüktür. Her araçta depozito, günlük km limiti, bagaj ve extras listesi (kasko, bebek koltuğu vb. — code/name/dailyPrice; free:true = ücretsiz dahil) bulunur; rezervasyonda seçilenler extras: [kod,...] ile gönderilir ve toplam tutara eklenir.

{
  "supplier": { "name": "Örnek Rent a Car", "city": "İstanbul" },
  "range": { "start": "2026-08-01", "end": "2026-08-05" },
  "minDays": 1,
  "locations": ["İstanbul Havalimanı (IST)", "Kadıköy (İstanbul)"],
  "vehicles": [
    {
      "id": "aBc123",
      "brand": "Renault", "model": "Clio", "year": 2024,
      "fuel": "Benzin", "gear": "Otomatik",
      "group": "Ekonomik", "bodyType": "Hatchback",
      "seats": 5, "doors": 4, "baggage": 2,
      "dailyPrice": 1500, "currency": "TRY",
      "pricing": { "days": 4, "total": 6000, "baseTotal": 6000, "kampanyaliGun": 0 },
      "deposit": 5000, "dailyKmLimit": 300,
      "extras": [ { "code": 101, "name": "Tam Kasko", "dailyPrice": 250, "free": false } ],
      "available": true
    }
  ]
}
2) Rezervasyon Oluşturma

POSThttps://rentofis.com/api/supplier/reservations

Rezervasyon, firmanın panelinde "Onay Bekliyor" olarak düşer; firma onaylayıp sözleşmeye çevirir. customer.tc (TC Kimlik No) opsiyoneldir — verilirse doğrulanır. brokerRef alanına kendi rezervasyon numaranızı yazın. pickupLocation/dropoffLocation opsiyoneldir (locations listesindeki adlardan); farklı yere bırakmada drop ücreti toplama sunucuda eklenir.

// İstek
{
  "vehicleId": "aBc123",
  "start": "2026-08-01",
  "end": "2026-08-05",
  "customer": {
    "firstName": "Ali",
    "lastName": "Yılmaz",
    "phone": "5321234567",
    "tc": "10000000146",        // opsiyonel
    "email": "ali@example.com"  // opsiyonel
  },
  "pickupLocation": "İstanbul Havalimanı (IST)",   // opsiyonel
  "dropoffLocation": "Kadıköy (İstanbul)",         // opsiyonel
  "extras": [101],                                  // opsiyonel
  "brokerRef": "Y360-987654",
  "brokerName": "Yolcu360"
}

// Yanıt 200
{
  "ok": true,
  "reservationId": "xYz789",
  "status": "pending_approval",
  "dailyPrice": 1500,
  "totalPrice": 6000,
  "currency": "TRY",
  "assignedVehicle": { "id": "aBc123", "name": "Renault Clio" },
  "substituted": false
}

// İstenen araç doluysa AYNI sınıf/vites/kasa tipindeki müsait bir araç otomatik atanır
// ("X veya benzeri"): substituted=true, requestedVehicle da döner; fiyat/şartlar teklifle aynıdır.
// Eşdeğer araç da yoksa 409 conflict döner.
3) Rezervasyon Durumu

GEThttps://rentofis.com/api/supplier/reservations/{reservationId}

status değerleri: pending_approval (firma onayı bekliyor) → approved (onaylandı) → converted (sözleşmeye çevrildi, kiralama kesinleşti — firma kaydı yerinde kiralamaya çevirdiyse ya da kiralama tamamlandıysa da converted döner) veya cancelled (iptal/red).

{
  "reservationId": "xYz789",
  "status": "approved",
  "vehicleId": "aBc123",
  "start": "2026-08-01", "end": "2026-08-05",
  "totalPrice": 6000, "currency": "TRY",
  "brokerRef": "Y360-987654"
}
4) Rezervasyon İptali

DELETEhttps://rentofis.com/api/supplier/reservations/{reservationId}

Yalnız bu API ile oluşturulmuş ve henüz sözleşmeye çevrilmemiş rezervasyonlar iptal edilebilir. Sözleşmeye çevrilmiş rezervasyon için 409 döner — tedarikçi firma ile iletişime geçin.

{ "ok": true, "status": "cancelled" }
Talep API (dış tedarikçi / partner)

Kendi web siteniz varsa ve araç seçmek yerine KİRACIYI bize göndermek istiyorsanız Talep API'yi kullanın: şehir, tarih, istenen sınıf ve müşteri bilgisini gönderirsiniz; Rentofis'in yetkili acentesi uygun firmayı bulup aracı atar, teslim bilgisi (firma adı, telefon, adres, araç) size döner — siz kiracınıza iletirsiniz. Kiracı kira bedelini ofiste firmaya öder; kaporayı siz aldıysanız deposit alanına yazın, kalan ofiste tahsil edilir. Anahtarı Rentofis destek ekibi verir (partner panelinizde görünür); her talep için talep kontörü yalnız sözleşme kesinleşince düşer. Durum: received → assigned (firma atandı, delivery bloğu dolar) → approved → confirmed (sözleşme) → completed; cancelled / unfulfilled (uygun araç yok, reason alanı). Webhook tanımlarsanız her durum değişimi JSON olarak POST edilir: x-rentofis-signature = HMAC-SHA256(anahtar = apiKey, veri = x-rentofis-timestamp + "." + gövde) (x-rentofis-timestamp: ms cinsinden zaman damgası); imzayı doğrulayın ve 5 dk'dan eski damgayı reddedin.

POSThttps://rentofis.com/api/network/talep x-api-key: <partner-key>

{
  "partnerRef": "SITE-12345",
  "city": "İstanbul", "start": "2026-09-05", "end": "2026-09-08",
  "group": "Ekonomik",                       // isteğe bağlı: Ekonomik | Orta | SUV | Lüks
  "pickup": "Sabiha Gökçen", "dropoff": "Sabiha Gökçen",
  "customer": { "firstName": "Ahmet", "lastName": "Yılmaz", "phone": "05xx1234567", "email": "a@b.com", "tc": "10000000146" },
  "price": 4500, "deposit": 500, "currency": "TRY",   // kiracıya verdiğiniz fiyat + aldığınız kapora (isteğe bağlı)
  "note": "Uçuş TK123, 14:30"
}

# 201 yanıt
{ "ok": true, "id": "tAbC123", "status": "received", "partnerRef": "SITE-12345", ... }
# 402 insufficient_credits · 400 bad_* · 401 unauthorized · 429 rate_limited (20/dk)
# 400 bad_currency: currency 3 harfli para birimi kodu olmalı (TRY, EUR, USD; TL → TRY kabul edilir)

GEThttps://rentofis.com/api/network/talep/{id} · GEThttps://rentofis.com/api/network/talep (son 200)

{
  "id": "tAbC123", "status": "assigned", "partnerRef": "SITE-12345",
  "city": "İstanbul", "start": "2026-09-05", "end": "2026-09-08", "days": 3, "group": "Ekonomik",
  "customer": { "firstName": "Ahmet", "lastName": "Yılmaz", "phone": "05xx1234567" },
  "price": 4500, "deposit": 500, "currency": "TRY",
  "delivery": { "company": "Örnek Rent a Car", "phone": "0216…", "address": "…", "city": "İstanbul", "vehicle": "Renault Clio", "plate": "34ABC123", "payAtOffice": 4000 },
  "partnerShare": 450
}

DELETEhttps://rentofis.com/api/network/talep/{id} — sözleşme kesinleşmeden iptal (sonrası 409); talep o an firmaya atanıyorsa 409 busy — birkaç saniye sonra tekrar deneyin

Alternatif: Klasik Web API (v2)

Mevcut entegrasyonunuz login+passwd parametreli klasik web servis şablonunu kullanıyorsa, aynı uçları birebir sunuyoruz — yalnızca servis adresini değiştirmeniz yeterlidir. POST önerilir (GET'te login/passwd adres satırında ve ara sunucu kayıtlarında kalabilir); uyumluluk için GET de kabul edilir. login ve passwd bilgisini tedarikçi firma Rentofis panelinden üretip iletir. Araç eşleştirmesi SubGroupShortName alanı üzerinden yapılır; Reservation ucu tam sayı ReservationId döner, iptal bu numarayla yapılır. Ekstralar desteklenir: QueryReservation yanıtında Free bayrakları (SCDWFree, BabySeatFree...) ve Extras[] (ProductCode/ProductName/Amount/IsFree) araç verisinden dolar; Reservation isteğinde Extras alanına seçilen ProductCode listesi verilir, tutar otomatik eklenir. Lokasyon kodları GetLocations'tan gelir (firma vitrin lokasyonu tanımladıysa aynı liste); QueryReservation'a alis_yeri_kodu/iade_yeri_kodu verildiğinde farklı yere bırakma ücreti DropPrice alanında döner ve Reservation kaydında toplama eklenir; alış lokasyonu bir şubeye eşlenmişse teklif ve araç ataması o şubenin araçlarıyla sınırlanır. Süre tarifesi ve dönemsel kampanyalar fiyatlara yansır (kampanya işlediyse CampaignId=1, indirimli günlük DiscountedDailyPrice'ta).

https://rentofis.com/API/reservation/v2/GetLocations.php
https://rentofis.com/API/reservation/v2/QueryReservation.php
https://rentofis.com/API/reservation/v2/GetAdditionalProducts.php
https://rentofis.com/API/reservation/v2/Reservation.php
https://rentofis.com/API/reservation/v2/ReservationCancel.php

# QueryReservation (GET örneği)
?login=<login>&passwd=<passwd>&alis_yeri_kodu=MERKEZ&iade_yeri_kodu=MERKEZ
&alis_tarihi=2026-08-01&iade_tarihi=2026-08-05&liste=2

# Reservation yanıtı
{ "cevap": "success", "mesaj": "", "ReservationId": 100001 }
Hata Kodları

401 geçersiz anahtar · 400 eksik/geçersiz alan · 400 no_price (araca fiyat tanımlı değil; tarihli /api/supplier/vehicles sorgusunda bu araç available:false döner) · 409 tarih çakışması veya çevrilmiş rezervasyon · 429 istek limiti (dakikada 30 rezervasyon) · 404 kayıt yok

Notlar: Tarihler YYYY-MM-DD formatındadır ve uç günler dahildir. dailyPrice günlük fiyattır; totalPrice = gün sayısı × günlük fiyat. Tedarikçi süreye göre fiyat tarifesi tanımladıysa dailyPrice, sorgudaki gün sayısına uyan tarife fiyatıdır (tarihsiz listede standart fiyat döner). Dönemsel kampanyalar gün gün uygulanır: tarihli sorguda pricing {days,total,baseTotal} döner (total < baseTotal ise indirim vardır). Tedarikçi lokasyon tanımladıysa locations listesi döner; pickup & drop parametreleriyle farklı yere bırakma ücreti (dropFee) hesaplanır ve rezervasyonda pickupLocation/dropoffLocation gönderilirse toplama eklenir. Tedarikçi minimum kiralama süresi tanımladıysa yanıttaki minDays alanı bunu belirtir; daha kısa aralıkta araçlar available:false döner ve rezervasyon min_days hatasıyla reddedilir (klasik API'de kısa sorguya boş grup listesi döner). Teklif ve rezervasyon her katmanda aynı hesabı kullanır. currency TRY/USD/EUR olabilir. Plaka bilgisi listede dönmez; araç teslimatında firma tarafından iletilir.

Entegrasyon desteği: info@rentofis.com·Rentofis ana sayfa