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

- 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ız1234 - 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.
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
| İşlem | Yöntem ve yol |
|---|---|
| Ürün oluşturma (V2) | POST /integration/product/sellers/{sellerId}/v2/products |
| Stok ve fiyat güncelleme | POST /integration/inventory/sellers/{sellerId}/products/price-and-inventory |
| Toplu işlem sonucu | GET /integration/product/sellers/{sellerId}/products/batch-requests/{batchRequestId} |
| Sipariş paketlerini çekme | GET /integration/order/sellers/{sellerId}/v2/orders |
| Paket durumu bildirme | PUT /integration/order/sellers/{sellerId}/shipment-packages/{packageId} |
| Tedarik edememe | PUT .../shipment-packages/{packageId}/items/unsupplied |
| Fatura bağlantısı | POST /integration/sellers/{sellerId}/seller-invoice-links |
| İadeler | GET /integration/order/sellers/{sellerId}/claims |
| Müşteri soruları | GET /integration/qna/sellers/{sellerId}/questions/filter |
| Webhook oluşturma | POST /integration/webhook/sellers/{sellerId}/webhooks |
| Test siparişi (yalnız test ortamı) | POST /integration/test/order/orders/core |
Ürün Aktarımı

V2 ürün oluşturma isteğinde zorunlu alanlar: barcode, title, productMainId, brandId, categoryId, quantity, description, listPrice, salePrice, vatRate, images ve attributes.
| Alan | Kural |
|---|---|
| barcode | En fazla 40 karakter; özel karakter olarak yalnızca nokta, tire ve alt çizgi |
| title | En fazla 100 karakter |
| productMainId | En fazla 40 karakter; varyantlar aynı productMainId altında toplanır |
| description | HTML olabilir, en fazla 30.000 karakter |
| listPrice / salePrice | listPrice, salePrice'tan küçük olamaz |
| vatRate | 0, 1, 10, 20 gibi değerler |
| images | Barkod başına en fazla 8 görsel, HTTPS adresi; belgede 1200x1800 ve 96 dpi öneriliyor |
| categoryId | En 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
PickingveInvoicedgö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 kodu | Anlamı |
|---|---|
| 500 | Stok tükendi |
| 501 | Kusurlu veya hasarlı ürün |
| 502 | Hatalı fiyat |
| 504 | Entegrasyon hatası |
| 505 | Toplu alım |
| 506 | Mücbir sebep |
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_AUTHENTICATIONveyaAPI_KEY. API_KEY seçilirse anahtarx-api-keybaşlığında gelir. subscribedStatusesboş 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:
| Grup | Dakikada istek |
|---|---|
| Ürün okuma | 1000 ile 2000 arası |
| Ürün yazma | 200 ile 600 arası |
| Stok ve fiyat yazma | 350 ile 2000 arası |
| Barkod başına fiyat güncelleme | 30 |
| Sipariş paketlerini çekme | 30 ile 100 arası |
| Kod | Anlamı |
|---|---|
| 400 | Eksik veya geçersiz alan |
| 401 | Kimlik doğrulama hatası |
| 403 | Yanlış uç nokta veya parametre (User-Agent eksikliği de) |
| 409 | Çakışma |
| 429 | İstek sınırı aşıldı |
| 504 | Zaman 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.