Rafta Public REST API · Sürüm v1.0

Ürün, Stok ve Satış Verilerinizi Dış Panellere Bağlayın

Rafta REST API ile deponuzdaki güncel stok adetlerini, barkod ve fiyat listesini, stok giriş-çıkış hareketlerini ve satış verilerinizi kendi e-ticaret sitenize, ERP yazılımınıza, Excel/PowerBI tablolarınıza veya özel yönetim panelinize canlı olarak çekin.

3 Adımda Hızlı Kurulum

1

Veri Yönetimi Sekmesini Açın

panel.rafta.app üzerinden hesabınıza giriş yapın ve Ayarlar → Veri Yönetimi sekmesine gidin.

2

API Anahtarınızı Üretin

REST API & Dış Panel Entegrasyonu kartındaki “🔑 API Anahtarı Oluştur” butonuna tıklayın ve rft_live_... anahtarınızı kopyalayın.

3

HTTP Başlığı ile Sorgulayın

İsteklerinizde Authorization: Bearer rft_live_... veya X-API-Key başlığını göndererek JSON verilerinizi çekin.

Temel Adres (Base URL)
https://panel.rafta.app/api/v1

Tüm uç noktalar HTTPS üzerinden UTF-8 JSON yanıtı döndürür. CORS tüm dış panellere açıktır.

Kimlik Doğrulama (Auth)

Anahtarınızı 3 farklı yöntemden dilediğiniz biriyle gönderebilirsiniz:

  • 1. Authorization: Bearer rft_live_...
  • 2. X-API-Key: rft_live_...
  • 3. ?apiKey=rft_live_... (Query Param)
Hız Sınırı & Önbellek

İşletme başına dakikada 30 istek (Rate Limit) hakkı tanımlıdır. Yanıtlar yüksek hız için 60 saniye önbelleklenir (X-RateLimit-Remaining başlığı ile takip edilebilir).

Dil ve Platformlara Göre Entegrasyon Örnekleri

Aşağıdaki örnek kodlardaki rft_live_BURAYA_ANAHTARINIZI_YAZIN kısmına kendi API anahtarınızı yazarak hemen çalıştırabilirsiniz.

cURL (Terminal)Tüm Ürünleri Çekme
curl -X GET "https://panel.rafta.app/api/v1/products?limit=200" \
  -H "Authorization: Bearer rft_live_BURAYA_ANAHTARINIZI_YAZIN" \
  -H "Accept: application/json"
JavaScript / Node.js (fetch)Ürün & Satış Senkronizasyonu
const API_KEY = "rft_live_BURAYA_ANAHTARINIZI_YAZIN";

const res = await fetch("https://panel.rafta.app/api/v1/products", {
  headers: {
    "Authorization": `Bearer ${API_KEY}`,
  },
});

const data = await res.json();
console.log("Toplam Ürün:", data.summary.count);
console.log("Ürün Listesi:", data.products);
PHP (cURL)Web Panel / ERP Entegrasyonu
<?php
$apiKey = "rft_live_BURAYA_ANAHTARINIZI_YAZIN";
$ch = curl_init("https://panel.rafta.app/api/v1/sales?limit=100");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "X-API-Key: " . $apiKey,
    "Accept: application/json"
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data["summary"]);
print_r($data["sales"]);
Python (requests)Veri Analizi & Otomasyon
import requests

API_KEY = "rft_live_BURAYA_ANAHTARINIZI_YAZIN"
headers = {"Authorization": f"Bearer {API_KEY}"}

resp = requests.get(
    "https://panel.rafta.app/api/v1/transactions",
    params={"limit": 100},
    headers=headers,
    timeout=15,
)
payload = resp.json()
print("Stok Hareketleri:", len(payload.get("transactions", [])))

REST API v1 Uç Noktaları (Endpoints)

1. Bağlantı Testi ve İşletme Durumu

API anahtarınızın doğruluğunu, bağlı işletme bilgilerini, aktif paket durumunu ve kalan dakikalık istek kotanızı döndürür.

GEThttps://panel.rafta.app/api/v1/status

Sorgu Parametreleri (Query Params)

Bu uç nokta ek sorgu parametresi gerektirmez. Yalnızca API anahtarınızı göndermeniz yeterlidir.

Örnek JSON Yanıtı (200 OK)

{
  "success": true,
  "apiVersion": "v1",
  "status": "connected",
  "business": {
    "id": "7yIBr4xy2Bw2dnAF7Cpl",
    "name": "Örnek Depo & Lojistik",
    "sector": "Depo / Lojistik",
    "currency": "TRY",
    "plan": "business",
    "apiAccessMode": "business_plan"
  },
  "endpoints": {
    "status": "https://panel.rafta.app/api/v1/status",
    "products": "https://panel.rafta.app/api/v1/products",
    "transactions": "https://panel.rafta.app/api/v1/transactions",
    "sales": "https://panel.rafta.app/api/v1/sales"
  },
  "rateLimit": {
    "limitPerMinute": 30,
    "remaining": 29,
    "resetInSeconds": 60
  },
  "timestamp": "2026-10-18T12:30:00.000Z"
}

2. Ürünler, Barkodlar ve Güncel Stok Miktarları

İşletmenizdeki aktif tüm ürünleri, barkod numaralarını, güncel stok adetlerini, alış/satış fiyatlarını, varyantları ve toplam stok değer özetini döndürür.

GEThttps://panel.rafta.app/api/v1/products

Sorgu Parametreleri (Query Params)

limitnumberOpsiyonel

Döndürülecek maksimum ürün sayısı (Varsayılan: 200, Maks: 500)

barcodestringOpsiyonel

Belirli bir barkoda (veya varyant barkoduna) sahip ürünü filtreler

searchstringOpsiyonel

Ürün adı, barkod, SKU veya stok koduna göre metin araması yapar

categoryIdstringOpsiyonel

Belirli bir kategori ID'sine ait ürünleri filtreler

locationIdstringOpsiyonel

Belirli bir depo/şube ID'sine ait ürünleri filtreler

lowStockOnlybooleanOpsiyonel

'true' gönderilirse yalnızca kritik stok sınırındaki ürünleri döndürür

Örnek JSON Yanıtı (200 OK)

{
  "success": true,
  "businessId": "7yIBr4xy2Bw2dnAF7Cpl",
  "currency": "TRY",
  "summary": {
    "count": 142,
    "totalStockQuantity": 3480,
    "totalStockCostValue": 412500.00,
    "totalStockSaleValue": 589200.00,
    "lowStockCount": 6
  },
  "products": [
    {
      "id": "prd_98a7bc65",
      "name": "Endüstriyel Streç Film 17 Mikron",
      "barcode": "8690000123456",
      "sku": "STR-17M",
      "stockCode": "DP-A12",
      "quantity": 120,
      "minQuantity": 20,
      "unit": "Adet",
      "costPrice": 185.00,
      "salePrice": 260.00,
      "vatRate": 20,
      "isLowStock": false,
      "shelf": "Raf A-3",
      "variants": [],
      "updatedAt": "2026-10-18T11:45:10.000Z"
    }
  ],
  "timestamp": "2026-10-18T12:30:00.000Z"
}

3. Stok Giriş / Çıkış Hareketleri

Depo ve mağazanızda gerçekleşen son stok hareketlerini (stok giriş, stok çıkış, satış, iade, fire/zayi, transfer) kronolojik olarak döndürür.

GEThttps://panel.rafta.app/api/v1/transactions

Sorgu Parametreleri (Query Params)

limitnumberOpsiyonel

Döndürülecek kayıt sayısı (Varsayılan: 100, Maks: 200)

typestringOpsiyonel

İşlem tipi filtresi: stock_in | stock_out | sale | return | waste | transfer

productIdstringOpsiyonel

Sadece belirli bir ürüne ait stok hareketlerini filtreler

sinceISO DateOpsiyonel

Belirtilen tarihten sonraki hareketleri getirir (Örn: 2026-10-01)

Örnek JSON Yanıtı (200 OK)

{
  "success": true,
  "businessId": "7yIBr4xy2Bw2dnAF7Cpl",
  "currency": "TRY",
  "summary": {
    "count": 2
  },
  "transactions": [
    {
      "id": "tx_4412ab",
      "productId": "prd_98a7bc65",
      "productName": "Endüstriyel Streç Film 17 Mikron",
      "type": "stock_in",
      "quantity": 50,
      "previousQuantity": 70,
      "newQuantity": 120,
      "salePrice": 260.00,
      "costPrice": 185.00,
      "note": "Merkez depo sevkiyat girişi",
      "userName": "Emre Ateş",
      "createdAt": "2026-10-18T10:15:00.000Z"
    }
  ],
  "timestamp": "2026-10-18T12:30:00.000Z"
}

4. Satış Kalemleri, Kasa Tahsilatları ve Ciro Özeti

Gerçekleşen ürün bazlı satış kalemlerini (sales), kasa/POS gelir kayıtlarını (cashEntries) ve toplam ciro/maliyet/brüt kâr özetini döndürür.

GEThttps://panel.rafta.app/api/v1/sales

Sorgu Parametreleri (Query Params)

limitnumberOpsiyonel

Döndürülecek maksimum satış kaydı sayısı (Varsayılan: 100, Maks: 200)

productIdstringOpsiyonel

Belirli bir ürüne ait satış kalemlerini filtreler

sinceISO DateOpsiyonel

Belirtilen tarihten sonraki satışları getirir (Örn: 2026-10-01T00:00:00Z)

Örnek JSON Yanıtı (200 OK)

{
  "success": true,
  "businessId": "7yIBr4xy2Bw2dnAF7Cpl",
  "currency": "TRY",
  "summary": {
    "saleItemCount": 18,
    "totalQuantitySold": 45,
    "totalSaleRevenue": 11700.00,
    "totalSaleCost": 8325.00,
    "estimatedGrossProfit": 3375.00,
    "cashIncomeCount": 12,
    "totalCashIncome": 11700.00
  },
  "sales": [
    {
      "id": "tx_9910fa",
      "productId": "prd_98a7bc65",
      "productName": "Endüstriyel Streç Film 17 Mikron",
      "quantity": 10,
      "salePrice": 260.00,
      "costPrice": 185.00,
      "lineTotal": 2600.00,
      "previousQuantity": 130,
      "newQuantity": 120,
      "note": "POS Satış — Nakit",
      "userName": "Emre Ateş",
      "createdAt": "2026-10-18T11:20:00.000Z"
    }
  ],
  "cashEntries": [
    {
      "id": "csh_1102bc",
      "amount": 2600.00,
      "category": "Satış",
      "paymentMethod": "cash",
      "source": "pos",
      "note": "POS — 10 ürün",
      "userName": "Emre Ateş",
      "createdAt": "2026-10-18T11:20:00.000Z"
    }
  ],
  "timestamp": "2026-10-18T12:30:00.000Z"
}

HTTP Durum ve Hata Kodları

HTTP KoduHata KoduAçıklama & Çözüm
200 OK—İstek başarılı. Veriler JSON gövdesinde döndürüldü.
401 UnauthorizedMISSING_API_KEY / INVALID_API_KEYAPI anahtarı gönderilmedi, hatalı veya iptal edilmiş. Panel → Ayarlar → Veri Yönetimi ekranından aktif anahtarınızı kontrol edin.
403 ForbiddenPLAN_UPGRADE_REQUIREDREST API erişimi Rafta Kasa & POS (Business) paketinde aktiftir.
429 Too Many RequestsRATE_LIMIT_EXCEEDEDDakikalık 30 istek sınırı aşıldı. Retry-After saniyesi kadar bekleyip tekrar deneyin.
Teknik Destek & Entegrasyon Yardımı

Özel panelinize bağlarken yardıma mı ihtiyacınız var?

API anahtarınızı hemen oluşturabilir veya entegrasyon sorularınız için destek@rafta.app adresinden ekibimize ulaşabilirsiniz.

🔑 Web Panelde API Anahtarı Al