Trendyol entegrasyonu, ürünlerinizi Trendyol'a yazılımdan aktarmak, stok ve fiyatı otomatik güncellemek, siparişleri çekip durumlarını bildirmek, fatura bağlantısı göndermek ve müşteri sorularını yanıtlamak için Trendyol'un REST API'sini kullanmaktır. Bu rehber, Trendyol'un resmî geliştirici belgelerindeki kuralları uygulamaya dönük biçimde özetliyor.

İlgili içerikler: Pazaryeri entegrasyonu rehberi · Kargo entegrasyonu · Paraşüt entegrasyonu · API istek sınırı

API Bilgileri ve Ortamlar

API Bilgileri ve Ortamlar: Kimlik bilgileri, User-Agent zorunlu, Canlı ortam, Test ortamı
  • Kimlik bilgileri: Satıcı ID (Supplier ID), API KEY ve API SECRET satıcı panelinde Hesap Bilgilerim, Entegrasyon Bilgileri altında yer alır ve yalnızca yönetici hesabıyla görünür. Kimlik doğrulama Basic Authentication ile yapılır.
  • User-Agent zorunlu: Biçim {SupplierId} - {EntegratörAdı}. Kendi yazılımınızla bağlanıyorsanız 1234 - SelfIntegration. User-Agent gönderilmezse istek 403 alır.
  • Canlı ortam: https://apigw.trendyol.com. IP tanımı gerekmez.
  • Test ortamı: https://stageapigw.trendyol.com. Test paneli ve API bilgileri canlıdan tamamen ayrıdır. Sunucunuzun çıkış IP adresinin Trendyol'a tanımlatılması gerekir; testte 503 alıyorsanız sebep çoğunlukla IP yetkisidir.
bash
curl "https://apigw.trendyol.com/integration/order/sellers/1234/v2/orders?status=Created" \
  -u "API_KEY:API_SECRET" \
  -H "User-Agent: 1234 - SelfIntegration"

Ana Uç Noktalar

İşlemYöntem ve yol
Ürün oluşturma (V2)POST /integration/product/sellers/{sellerId}/v2/products
Stok ve fiyat güncellemePOST /integration/inventory/sellers/{sellerId}/products/price-and-inventory
Toplu işlem sonucuGET /integration/product/sellers/{sellerId}/products/batch-requests/{batchRequestId}
Sipariş paketlerini çekmeGET /integration/order/sellers/{sellerId}/v2/orders
Paket durumu bildirmePUT /integration/order/sellers/{sellerId}/shipment-packages/{packageId}
Tedarik edememePUT .../shipment-packages/{packageId}/items/unsupplied
Fatura bağlantısıPOST /integration/sellers/{sellerId}/seller-invoice-links
İadelerGET /integration/order/sellers/{sellerId}/claims
Müşteri sorularıGET /integration/qna/sellers/{sellerId}/questions/filter
Webhook oluşturmaPOST /integration/webhook/sellers/{sellerId}/webhooks
Test siparişi (yalnız test ortamı)POST /integration/test/order/orders/core

Ürün Aktarımı

Ürün Aktarımı: barcode, title, productMainId, description

V2 ürün oluşturma isteğinde zorunlu alanlar: barcode, title, productMainId, brandId, categoryId, quantity, description, listPrice, salePrice, vatRate, images ve attributes.

AlanKural
barcodeEn fazla 40 karakter; özel karakter olarak yalnızca nokta, tire ve alt çizgi
titleEn fazla 100 karakter
productMainIdEn fazla 40 karakter; varyantlar aynı productMainId altında toplanır
descriptionHTML olabilir, en fazla 30.000 karakter
listPrice / salePricelistPrice, salePrice'tan küçük olamaz
vatRate0, 1, 10, 20 gibi değerler
imagesBarkod başına en fazla 8 görsel, HTTPS adresi; belgede 1200x1800 ve 96 dpi öneriliyor
categoryIdEn alt seviye kategori; zorunlu özellikler kategori özellikleri servisinden alınır

Bir istekte en fazla 1.000 ürün gönderilir. Yanıt ürünün yayına girdiğini değil, yalnızca bir batchRequestId döndüğünü gösterir. Sonucu toplu işlem servisiyle kontrol edin; sonuçlar 4 saat görülebilir. Toplu işlem IN_PROGRESS veya COMPLETED, her ürün SUCCESS veya FAILED durumunda döner.

Stok ve Fiyat Güncelleme

  • Ürün başına en fazla 20.000 adet stok tanımlanabilir.
  • Aynı istek gövdesi 15 dakika içinde tekrar gönderilirse hata döner. Yalnızca değişen ürünleri gönderin.
  • Yalnızca onaylanmış ürünlerin stok ve fiyatı güncellenir.
  • Stok-fiyat isteklerinde toplu işlem durumu dönmez; her ürünün kendi durumuna bakılır.

Sipariş Akışı

Sipariş paketleri şu durumlarda olabilir: Created, Picking, Invoiced, Shipped, Cancelled, Delivered, UnDelivered, Returned, AtCollectionPoint, UnPacked, UnSupplied, Awaiting, Verified.

  • Awaiting ve Verified: Paket Created'a geçene kadar yalnızca stok düşmek için kullanılmalı, hazırlanmamalıdır.
  • Satıcının bildirebileceği durumlar: API ile yalnızca Picking ve Invoiced gönderilir. Önce Picking gönderilir; Invoiced için fatura numarası (params.invoiceNumber) zorunludur. Diğer durumları sistem verir.
  • Bölme ve kısmi iptal: Aynı sipariş numarası altında yeni paket ID'si ve takip numarası oluşur; eski paket Cancelled veya UnPacked olur. Paket ID'sini sipariş numarası yerine kalıcı anahtar olarak kullanmayın.
  • Sorgu sınırları: Tarih aralığı en fazla 2 hafta, geriye dönük en fazla 1 ay, sayfa boyutu en fazla 200.
Tedarik edememe koduAnlamı
500Stok tükendi
501Kusurlu veya hasarlı ürün
502Hatalı fiyat
504Entegrasyon hatası
505Toplu alım
506Mücbir sebep

Webhook ile Sipariş Bildirimi

Webhook ile Sipariş Bildirimi: Satıcı başına en fazla 15 webhook tanımlanabilir; pasif olanlar da sayılır., Kimlik doğrulama türü BASIC_AUTHENTICATION veya API_KEY. API_KEY...
  • Satıcı başına en fazla 15 webhook tanımlanabilir; pasif olanlar da sayılır.
  • Kimlik doğrulama türü BASIC_AUTHENTICATION veya API_KEY. API_KEY seçilirse anahtar x-api-key başlığında gelir.
  • subscribedStatuses boş bırakılırsa tüm durumlar için bildirim gelir.
  • Adres "Trendyol", "Dolap" veya "Localhost" ifadelerini içeremez.
  • Bildirim JSON gövdeli bir POST isteğidir ve siparişin tamamını taşır. Başarısız istekler 5 dakikada bir yeniden denenir; hata sürerse webhook pasife alınır ve satıcıya e-posta gider.

İstek Sınırları ve Hata Kodları

14 Eylül 2026 sonrası ürün ve stok-fiyat sınırları, mağazanın ürün listeleme limitine göre (50.000, 75.000, 150.000, 500.000 ve limitsiz) gruplanıyor:

GrupDakikada istek
Ürün okuma1000 ile 2000 arası
Ürün yazma200 ile 600 arası
Stok ve fiyat yazma350 ile 2000 arası
Barkod başına fiyat güncelleme30
Sipariş paketlerini çekme30 ile 100 arası
KodAnlamı
400Eksik veya geçersiz alan
401Kimlik doğrulama hatası
403Yanlış uç nokta veya parametre (User-Agent eksikliği de)
409Çakışma
429İstek sınırı aşıldı
504Zaman aşımı; büyük isteği bölün

Müşteri Soruları ve İadeler

Yalnızca WAITING_FOR_ANSWER durumundaki sorular yanıtlanabilir; yanıt 10 ile 2000 karakter arasında olmalı ve yasaklı kelime içermemelidir. İade talepleri Created, WaitingInAction, Accepted, Cancelled, Rejected, Unresolved ve InAnalysis durumlarında olabilir.

Sık Sorulan Sorular

Ürünü gönderdim ama panelde görünmüyor, neden?

Yanıt yalnızca bir toplu işlem numarası döndürür. Sonucu 4 saat içinde toplu işlem servisiyle kontrol edin; onay bekleyen veya reddedilen ürünler yayına girmez.

Test ortamında neden 503 alıyorum?

Büyük olasılıkla sunucunuzun IP adresi test ortamı için tanımlı değil. Trendyol'dan IP tanımı isteyin.

Webhook kullanırsam sipariş sorgusuna gerek kalır mı?

Hayır. Belge teslimatın garanti olmadığını belirterek düzenli sorguyu da öneriyor.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.