Ürün · stok · fiyat · sipariş entegrasyonu — v2 (Bearer) ve v1 (eski adresler, değişmeden çalışır)
| Durum | Yol | Ne alırsınız |
|---|---|---|
| Alıcı da Etibas paneli kullanıyor | Etibas Ağı (API kodu yazmadan) | Stok/fiyat değişince saniyeler içinde alıcının ürününde; tedarikçi seçilen sipariş tedarikçinin paneline kendiliğinden düşer. |
| Kendi yazılımınız / e-ticaret siteniz / muhasebe programınız | API v2 + isteğe bağlı webhook | REST/JSON, Bearer token, artımlı sipariş çekimi, hafif stok ucu, anında bildirim. |
| Daha önce v1 ile bağlandınız | v1 aynen çalışır | Adresleriniz değişmedi; yeni geliştirmede v2'ye geçin. |
Tedarikçi ve alıcı aynı platformdaysa veri HTTP üzerinden dolaşmaz; panel içinden doğrudan akar.
| Tedarikçide | Alıcıda |
|---|---|
| Stok, liste fiyatı ya da alıcıya özel alış fiyatı değişir | Ürün kartı, pazaryeri eşleşmeleri ve web sitesi saniyeler içinde güncellenir (saatlik tam karşılaştırma güvenlik ağı olarak sürer). |
| Siparişler ekranına Dış Satış (Alıcı Firma) kanalıyla, Onay Bekliyor durumunda sipariş düşer; fatura alıcı firmaya, teslimat alıcının müşterisine; alıcının pazaryeri kargo etiketi siparişle gelir | Siparişte bu firmayı tedarikçi seçtiğiniz anda sipariş gider; kalemde "Etibas Ağı ile … paneline iletildi" izi ve tedarikçi sipariş no'su görünür. |
| Alıcı siparişi iptal ederse: kargolanmadıysa tedarikçideki sipariş pasife alınır, kargolandıysa uyarı notu düşer | — |
| Yöntem | Uç | Açıklama |
|---|---|---|
| GET | /ben | Token'ın hesabı, fiyat yönetimi, sipariş görünürlüğü |
| GET | /urunler | Ürün listesi — size (≤1000), imlec, ids=a,b,c, sadece_stok=1 |
| GET | /urunler/{id} | Tek ürün |
| GET | /stoklar | Hafif liste: id, stok, psf, alis — sayfa başına 5000; sık eşitleme için |
| GET | /markalar · /kategoriler | Referans listeleri |
| GET | /siparisler | Sipariş listesi — durum, platform, baslangic_tarihi, bitis_tarihi, guncellenme_gte (artımlı), ara, is_pasifler=true |
| POST | /siparisler | Sipariş aç (Onay Bekliyor) |
| GET | /siparisler/{id} | Tek sipariş |
| POST | /siparisler/{id}/iptal | API ile açılmış, kargolanmamış siparişi iptal et |
| POST | /siparisler/{id}/kargo | Kargo firması + takip no yaz (durum Kargoda) |
| GET PUT DEL | /webhook | Anında bildirim adresi |
| GET | /olaylar | Son webhook olayları ve gönderim sonuçları |
| Liste yanıtı | {"veri": [...], "sonraki_imlec": "…" | null, "toplam": n} — sonraki_imlec null olana dek ?imlec= ile devam edin. |
| Hata yanıtı | {"hata": {"kod": "URUN_YOK", "mesaj": "…", "alanlar": {…}}} — 400 geçersiz gövde · 401 token · 403 IP/yetki · 404 yok · 409 çakışma · 422 alan hatası · 429 hız sınırı |
| Hız sınırı | Token başına dakikada 600 istek; aşılırsa 429 ve Retry-After. |
| Fiyatlar | psf liste fiyatı; alis size özel alış fiyatı (yalnız tedarikçi tanımladıysa). İkisi de KDV dahil TL. |
| Sipariş görünürlüğü | API hesabı ayarına göre yalnız bu hesabın açtığı siparişler (alıcı) ya da tüm siparişler (muhasebe programı). |
Tam şema: openapi.yaml — aşağıda etkileşimli belge.
Olay olduğunda adresinize JSON POST edilir:
{
"olay_id": "a1b2…",
"tur": "urun.degisti",
"tarih": "2026-10-10T14:05:12+03:00",
"api_hesabi": "…",
"yuk": { "urun_idler": ["URN001", "URN002"] }
}
| Olay | Ne zaman | Yük |
|---|---|---|
urun.degisti | Stok ya da fiyat değişti | urun_idler[] — ayrıntı için GET /urunler?ids=… ya da /stoklar?ids=… |
siparis.olustu | Hesabınız adına sipariş açıldı | siparis_id, siparis_kodu, kalem |
siparis.durum | Siparişin durumu/kargosu değişti | siparis_id, durum, kargo, is_pasif |
Başlıklar: X-Etibas-Olay, X-Etibas-Olay-Id, X-Etibas-Imza = HMAC-SHA256(gövde, gizli anahtar) hex. 2xx dışı yanıtta 1 sn, 5 sn, 30 sn, 2 dk, 10 dk sonra yeniden denenir; 5 denemeden sonra olay /olaylar'da "basarisiz" görünür. Webhook'u PUT /webhook ile ya da panelden (API Hesapları › Webhook) açabilirsiniz.
hash_hmac('sha256', $govde, $gizli) === $_SERVER['HTTP_X_ETIBAS_IMZA']. Aynı olay nadiren iki kez gelebilir; olay_id ile tekilleştirin.$token = 'TOKEN';
$imlec = null; $urunler = [];
do {
$url = 'https://api.etibas.com/v2/urunler?size=1000' . ($imlec ? '&imlec=' . urlencode($imlec) : '');
$ch = curl_init($url);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $token]]);
$y = json_decode(curl_exec($ch), true);
foreach ($y['veri'] ?? [] as $u) $urunler[] = $u;
$imlec = $y['sonraki_imlec'] ?? null;
} while ($imlec);
echo count($urunler) . " ürün";$govde = json_encode([
'siparis_kodu' => 'WEB-10234', 'isim' => 'Ayşe Yılmaz', 'mail' => 'ayse@ornek.com', 'telefon' => '5321112233',
'bilgiler' => [
'fatura_isim' => 'Ayşe Yılmaz', 'fatura_adres' => 'Örnek Mah. 1. Sk. No:3', 'fatura_il_isim' => 'İstanbul', 'fatura_ilce_isim' => 'Kadıköy',
'teslimat_isim' => 'Ayşe Yılmaz', 'teslimat_adres' => 'Örnek Mah. 1. Sk. No:3', 'teslimat_il_isim' => 'İstanbul', 'teslimat_ilce_isim' => 'Kadıköy',
],
'kargo' => ['_id' => 'yurtici', 'isim' => 'Yurtiçi Kargo', 'barkod' => ''],
'urunler' => [['_id' => 'URUN_ID', 'fiyat' => 1049.93, 'adet' => 1]],
]);
$ch = curl_init('https://api.etibas.com/v2/siparisler');
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_POSTFIELDS => $govde, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $token, 'Content-Type: application/json']]);
$y = json_decode(curl_exec($ch), true); // 201: $y['veri']['id'] · 409: aynı siparis_kodu · 422: $y['hata']['alanlar']import requests
r = requests.get("https://api.etibas.com/v2/stoklar", headers={"Authorization": "Bearer TOKEN"})
for s in r.json()["veri"]:
print(s["id"], s["stok"], s.get("alis", s["psf"]))curl -H "Authorization: Bearer TOKEN" "https://api.etibas.com/v2/ben" curl -H "Authorization: Bearer TOKEN" "https://api.etibas.com/v2/siparisler?guncellenme_gte=2026-10-10%2000:00:00"
?method=xml)| Uç | Parametreler | Yanıt |
|---|---|---|
| /urunler | size (≤1000), search_after, is_sadece_stoktakiler=1, ids=a,b | {size, search_after, content:[{id, isim, barkod, kod, psf, alis?, kdv_deger, stok, resim, resimler[], ozellikler[{suzgec, filtre}], kategori, marka}]} |
| /siparisler | platform, durum, baslangic_tarihi, bitis_tarihi, ara, is_pasifler=true, sort, order, search_after | Sipariş listesi (100/sayfa) |
| /markalar · /kategoriler | search_after | Referans listeleri |
| /siparisler POST | Gövde v2 ile aynı (SiparisGirdi) | {status: "success"|"error", mesaj, id} |
search_after: yanıttaki değeri bir sonraki istekte gönderin; null dönünce bitti. v1'de hata kodları artık doğru HTTP durumlarıyla döner (403 token/IP, 404 uç, 409/422 sipariş).
Denemek için tanıtım hesabı (veriler örnektir, her gece yenilenir):
| API hesabı | Token | v2 örnek |
|---|---|---|
| Bayi Sitesi — Tüm Ürünler | 3f253c990fdd2e333bf8ed462591c563 |
curl -H "Authorization: Bearer 3f253c990fdd2e333bf8ed462591c563" https://api.etibas.com/v2/urunler?size=5 |
| Muhasebe Programı (IP Kısıtlı) (IP kısıtlı: 203.0.113.25) | efed2bd7120056edd2893562e81bf30d |
yalnız o IP'den |
| Marka Bayisi — Yalnız 2 Marka (IP kısıtlı: 198.51.100.40) | e1c94d7fe8781595d9855ef77044f817 |
yalnız o IP'den |
v1: https://api.etibas.com/demo/3f253c990fdd2e333bf8ed462591c563/urunler?size=5