Yazılım & ERP 7 dk okuma
Trendyol API Entegrasyonu: 426 Hatası ve Kapanan Sipariş Servisi
Trendyol entegrasyonunuz günde üç kez 426 veriyorsa sistem bozulmadı. Eski sipariş servisi kapanıyor: v2 geçişi ve servis limitleri.
Yazan Şafak Yılmaz · Kurucu, Yazılım Geliştirici
Kısa cevap
HTTP 426, Trendyol'un kapanacak bir servisi kullandığınızı bildiren planlı uyarıdır. Eski sipariş uç noktası 15 Ekim 2026'da kullanım dışı kalıyor; o tarihe kadar bu uç noktaya yapılan istekler günde üç kez, onar dakika boyunca 426 döndürüyor. Geçiş yapılacak adres /integration/order/sellers/{sellerId}/v2/orders ve bu serviste erişilebilir kayıt sayısı 10.000 ile sınırlı. Daha büyük taramalar için imleç tabanlı getShipmentPackagesStream kullanılır.
Salı sabahı 09:40’ta siparişler durdu#
Bir ayakkabı markası. Gece boyunca siparişler sorunsuz aktı. Sabah 09:40’ta loglar kızardı ve tek bir satır tekrar etti: 426 Upgrade Required.
Panik on dakika sürdü. Sonra kendiliğinden geçti. Kimse not almadı, çünkü düzelmişti.
Öğlen tekrar oldu. Akşam bir kez daha.
Ekip sunucuyu yeniden başlattı. Hosting firmasını aradı. Trendyol panelinden mağaza durumunu kontrol etti, API anahtarını yeniledi, güvenlik duvarı kurallarına baktı. Hiçbiri sebep değildi.
Sistem bozulmamıştı. Trendyol, kapanacak bir servisi kullanmaya devam ettikleri için onlara kasıtlı olarak hata döndürüyordu.
Bu yöntemin adı brownout ve pazaryeri API’lerinde giderek yaygınlaşıyor. Servis sağlayıcı, kapanma tarihinden önce eski uç noktayı günün belirli aralıklarında bilerek devre dışı bırakır. Amaç ceza vermek değil, haber vermektir: sessizce çalışmaya devam eden bir entegrasyon kimseyi uyarmaz, ama günde üç kez on dakika duran bir entegrasyon mutlaka birinin dikkatini çeker.
426 tam olarak ne diyor#
HTTP 426 Upgrade Required, istemcinin kullandığı sürümün artık desteklenmeyeceğini bildirir. Sunucu “isteğin yanlış” demez. “Bu kapıdan girmeye devam edemezsin” der.
Trendyol’un 30 Temmuz 2026 tarihli geliştirici duyurusu tarihi net veriyor: aşağıdaki sipariş uç noktası 15 Ekim 2026 itibarıyla kullanım dışı kalıyor. O tarihe kadar bu servise yapılan isteklerde günde üç kez, onar dakika boyunca 426 dönüyor.
| Kapanan servis | Geçilecek servis | |
|---|---|---|
| Adres | /integration/order/sellers/{sellerId}/orders |
/integration/order/sellers/{sellerId}/v2/orders |
| Durum | 15 Ekim 2026’da kapanıyor | Güncel sürüm |
| Kayıt sınırı | Pratikte sayfalamayla sınırsız | 10.000 (maxQueryWindowResult) |
| Geçiş öncesi davranış | Günde 3 kez 10 dk 426 |
— |
Aynı yöntem ürün tarafında zaten uygulandı. Ürün v1 servisleri için brownout günde üç kez on beşer dakikaydı ve servis 15 Eylül 2026’da kapandı. Yani bu bir deneme değil, Trendyol’un yerleşmiş geçiş pratiği.
Brownout penceresinin kısa ve aralıklı olması, sorunun fark edilmesini kolaylaştırdığı kadar yanlış teşhis edilmesini de kolaylaştırıyor; çünkü on dakika sonra her şey normale döndüğü için ekipler bunu geçici bir ağ dalgalanması ya da pazaryerinin kendi tarafındaki bir kesinti sanıp kayda bile geçirmiyor. Entegrasyonu izleyen bir uyarı sisteminiz yoksa bu döngü haftalarca sürebilir. Tarih geldiğinde ise servis kalıcı olarak kapanır ve o gün siparişleriniz hiç gelmez.
Burada bir noktanın altını çizmek gerekiyor. İnternette bulacağınız Türkçe entegrasyon rehberlerinin büyük bölümü hâlâ api.trendyol.com/sapigw adresini yazıyor. O adres artık geçerli değil; güncel taban adres apigw.trendyol.com/integration. Eski adrese göre yazılmış bir kılavuzu takip ederseniz hata ayıklamaya kendi kodunuzdan değil, yanlış bir başlangıç noktasından başlarsınız.
10.000 kayıt sınırı neyi kırar#
v2 uç noktasında erişilebilecek maksimum kayıt sayısı 10.000 ile sınırlandırıldı. Bu, çoğu satıcı için günlük işleyişte sorun çıkarmaz. Sorun, geçmişi tarayan işlerde çıkar.
Tipik senaryo şu. Muhasebe ayı kapatırken tüm siparişleri çekip mutabakat yapan bir toplu iş vardır. Bu iş sayfa sayfa ilerler, page parametresini artırır ve veri bitene kadar döner. Sınır devreye girdiğinde döngü erkenden biter. Hata fırlamaz. Rapor eksik üretilir ve kimse fark etmez.
Büyük hacimli tarama için Trendyol ayrı bir servis sunuyor: getShipmentPackagesStream. Bu servis imleç tabanlı akış yöntemiyle çalışır ve tam tarama, periyodik senkronizasyon ile dışa aktarma işleri için tasarlanmıştır. Son üç aylık siparişleri döndürür.
Geçerken dikkat edilecek tek şey var ve bu sessiz bir tuzaktır: imleç tabanlı sayfalamaya geçildiği için totalElements, totalPages ve page alanları artık dönmez. Bu alanlara bakarak kaç sayfa çekeceğini hesaplayan kod çökmez, sadece yanlış sonuç üretir.
Hangi hata hangi sebebe bakar#
Entegrasyon hatalarında en çok kaybedilen zaman, yanlış yerde arama yapmakla geçer. Kod bazlı bir ayrım tablosu işi kısaltır.
| Hata | Gerçek sebep | İlk bakılacak yer |
|---|---|---|
426 |
Kapanan sürümü kullanmaya devam etmek | Uç nokta adresindeki sürüm |
429 |
Servis limitini aşmak | İstek sıklığı, toplu iş zamanlaması |
401 |
Anahtar veya yetki hatası | Satıcı paneli entegrasyon bilgileri |
403 |
İsteğin kimliğini bildirmemek | User-Agent başlığı |
| Boş sonuç | Tarih aralığı veya durum filtresi | Sorgu parametreleri |
Haziran 2026’da getShipmentPackage servisinin limitleri değiştirildi ve yeni limitlerin üzerinde istek atan entegrasyonlar 429 almaya başladı. İki hatayı birbirine karıştıran ekipler, sürüm sorununu çözmek yerine haftalarca istek sıklığını düşürmeye çalıştı. İkisi farklı problemdir ve farklı çözülür.
API anahtarı, satıcı kimliği ve 403’ün asıl sebebi#
Entegrasyona yeni başlayanların en sık takıldığı yer kimlik doğrulamadır ve buradaki sorunların çoğu anahtarın yanlış olmasından değil, isteğin eksik gönderilmesinden kaynaklanır.
API bilgileri Trendyol Satıcı Paneli içindeki entegrasyon bilgileri bölümünden alınır; burada size bir satıcı kimliği, bir anahtar ve bir gizli anahtar verilir. Bu üçlüyü koda gömmek yerine ortam değişkenlerinde tutun, çünkü pazaryeri anahtarları sızdığında yapılabilecek şey sipariş okumakla sınırlı kalmaz.
Asıl tuzak şurada. Trendyol, isteklerin kendisini tanıtmasını bekler ve User-Agent başlığını göndermeyen çağrıları reddeder. Anahtarınız doğru olsa bile bu başlık eksikse yanıt 403 olur. Kütüphanelerin bir kısmı varsayılan bir başlık gönderdiği için sorun geliştirme ortamında görünmez, ancak sunucuda farklı bir HTTP istemcisi kullanıldığında aynı kod bu kez 403 döndürmeye başlar. Hata ayıklarken ilk bakılacak yer budur.
Geçişi nasıl yaparsınız#
Sıra önemli. Çoğu ekip doğrudan adresi değiştirip canlıya alıyor, sonra sipariş sayıları tutmayınca geri dönüyor.
- Önce ölçün. Loglarınızda eski uç noktaya kaç farklı yerden istek gittiğini bulun. Tek bir servis sanılan şey çoğu zaman üç ayrı yerdedir: sipariş çekme, kargo durumu güncelleme ve bir unutulmuş rapor işi.
- Yeni adresi test ortamında bağlayın. Aynı tarih aralığı için eski ve yeni servisten gelen sipariş sayısını karşılaştırın.
- Sayfalama kodunu gözden geçirin.
pagevetotalPagesalanlarına bağımlı her döngüyü işaretleyin. - Toplu tarama işlerini akış servisine taşıyın. Günlük senkronizasyonu v2’de bırakabilirsiniz, ay sonu mutabakatını taşıyın.
- Canlıya aldıktan sonra bir hafta sayıları elle karşılaştırın. Bu adım atlanırsa eksik veri ancak muhasebe kapanışında görünür.
Bu adımların hiçbiri teknik olarak zor değildir, ancak sırayla yapılmadığında birbirini maskeler: adres değiştirildikten sonra sipariş sayısı düştüğünde bunun sayfalama kodundan mı, tarih filtresinden mi yoksa kayıt sınırından mı kaynaklandığını ayırt etmek, hepsini aynı anda değiştirmiş bir ekip için neredeyse imkânsızdır.
Test ortamı konusunda gerçekçi olmak gerekiyor. Pazaryeri entegrasyonlarında üretim verisine birebir benzeyen bir test ortamı çoğu zaman bulunmaz, bu yüzden doğrulamayı canlı veriyle ama salt okunur biçimde yapmak en pratik yoldur: yeni uç noktadan veriyi çekin, hiçbir yere yazmayın, yalnızca eski servisin döndürdüğü kayıtlarla karşılaştırın. Fark çıkarsa sebebi canlıya almadan bulmuş olursunuz.
Entegrasyonun geri kalan mimarisi (tek stok kaynağı, kuyruk, idempotency) için Trendyol ve Hepsiburada entegrasyonu yazımız daha ayrıntılı bir çerçeve veriyor. Siparişin ERP tarafına düşmesi ve e-fatura katmanı ayrı konulardır; bu geçiş yalnızca veriyi çektiğiniz kapıyı değiştirir.
Bu işi ne zaman yaptırmayın#
İki durumda dışarıdan destek almak para kaybıdır.
Hazır bir entegratör kullanıyorsanız bu geçiş sizin işiniz değil. Sağlayıcınız bunu yapmakla yükümlü. Yapmanız gereken tek şey, onlara yazıp 15 Ekim öncesinde geçişi tamamladıklarını yazılı olarak teyit etmek. Teyit alamıyorsanız asıl sorun bu geçiş değil, sağlayıcı seçiminizdir.
Tek bir yerden sipariş çeken, günde yirmi otuz sipariş alan ve kodu elinizin altında olan bir yapınız varsa bu değişiklik yarım günlük iştir. Adresi değiştirin, sayfalama kodunu kontrol edin, sayıları karşılaştırın. Bunun için ajans tutmak gereksiz.
Dışarıdan destek, siparişin ERP’ye, kargoya, muhasebeye ve müşteri kaydına dağıldığı, geçmişi tarayan toplu işlerin bulunduğu kurulumlarda anlamlı hale gelir. Orada risk adres değişikliği değil, sessizce eksilen veridir.
Bir daha aynı yerden vurulmamak için#
Bu olayın asıl dersi 426 kodunu öğrenmek değil. Asıl ders, entegrasyonun sessizce bozulabildiğini ve çoğu ekibin bunu öğrenmek için müşterinin şikâyet etmesini beklediğini görmektir.
İki basit önlem bu riski büyük ölçüde kapatır. Birincisi, pazaryeri çağrılarından dönen HTTP kodlarını tek tek saymak ve 2xx dışındaki her kodu ayrı bir sayaçta tutmaktır; 426 ya da 429 gibi bir kod ilk kez göründüğünde haberiniz olur, üç hafta sonra değil. İkincisi, “bugün kaç sipariş çektik” sorusunun cevabını her sabah otomatik olarak Trendyol panelindeki rakamla karşılaştırmaktır. Bu karşılaştırma, kodun fırlatmadığı ama sonucu bozan hataların neredeyse tamamını yakalar.
Uyarıyı nereye düşüreceğiniz önemli değil; e-posta, Slack ya da basit bir panel olabilir. Önemli olan, kimsenin bakmadığı bir log dosyasında kalmamasıdır. Kurulumu bir saat sürer ve tek bir kaçırılmış kampanya gününün maliyetini fazlasıyla karşılar.
Hepsiburada tarafında da benzer bir yapı var: webhook yanıtınız beş saniyenin üzerine çıkarsa sistem bildirim göndermeyi durdurabiliyor. Yani iki pazaryerinde de sessiz kopma mümkün ve ikisinde de çözüm aynı yere çıkıyor, düzenli mutabakata.
Takvimi takip etmek, hatayı beklemekten ucuz#
Pazaryeri entegrasyonlarında ekiplerin çoğu tepkiseldir: bir şey kırılır, bakılır, düzeltilir. Trendyol ve Hepsiburada ise değişiklikleri önceden, tarihli olarak duyuruyor.
Trendyol’un changelog sayfası düz metin olarak erişilebilir durumda. Ayda bir kez okumak, yılda bir kez acil müdahaleden çok daha ucuz. Aynısı ürün verisi tarafı için de geçerli.
Kendi entegrasyonunuzun hangi uç noktalara bağlı olduğunu bilmiyorsanız başlangıç noktası geçiş değil, envanter çıkarmaktır. API entegrasyonları ve kurumsal yazılım tarafında yaptığımız ilk iş de budur. Mevcut kurulumunuzu konuşmak isterseniz bize yazın; sık sorulanlara SSS sayfasından bakabilirsiniz.
Kaynaklar#
SSS
Bu konuda sık sorulanlar#
Trendyol'dan 426 hatası alıyorum, sistemimde mi sorun var?
Hayır. 426 Upgrade Required, Trendyol'un planlı olarak uyguladığı bir uyarıdır. Kapanma tarihi yaklaşan eski uç noktaya istek atmaya devam ettiğiniz için günde üç kez, onar dakikalık pencerelerde bu kod döndürülür. Sunucunuzu yeniden başlatmak, IP değiştirmek veya anahtar yenilemek işe yaramaz. Tek çözüm yeni sürüme geçmektir. Pencere dışında servis normal çalıştığı için sorun çoğu ekipte haftalarca fark edilmez.
Eski sipariş servisi ne zaman tamamen kapanıyor?
Trendyol'un geliştirici changelog'unda 30 Temmuz 2026 tarihli duyuruya göre /integration/order/sellers/{sellerId}/orders uç noktası 15 Ekim 2026 itibarıyla kullanım dışı kalıyor. Aynı yöntem ürün servislerinde de uygulandı: ürün v1 için brownout günde üç kez on beşer dakikaydı ve servis 15 Eylül 2026'da kapandı. Tarih geldiğinde istekler artık geçici değil, kalıcı olarak başarısız olur.
v2 sipariş servisinde ne değişiyor?
En kritik fark kayıt sınırıdır. v2 uç noktasında erişilebilecek maksimum kayıt sayısı 10.000 ile sınırlandırıldı. Sayfalama mantığıyla tüm sipariş geçmişini taramaya çalışan kodlar bu sınıra takılır. Büyük hacimli tarama, periyodik senkronizasyon ve dışa aktarma işleri için Trendyol ayrı bir servis sunuyor: getShipmentPackagesStream. Bu servis imleç tabanlı çalışır ve son üç aylık siparişleri döndürür.
getShipmentPackagesStream'e geçerken kodumda ne kırılır?
Sayfalama alanları. İmleç tabanlı akışa geçildiği için totalElements, totalPages ve page alanları artık dönmez. Bu alanlara bakarak döngü kuran, ilerleme çubuğu çizen veya kaç sayfa çekeceğini önceden hesaplayan her kod sessizce bozulur. Hata fırlatmaz, sadece yanlış davranır; bu yüzden geçişten sonra sipariş sayılarını elle karşılaştırın.
429 ile 426 aynı şey mi?
Değil. 429 Too Many Requests, servis limitini aştığınızı söyler ve istek sıklığınızı düşürerek çözülür. 426 ise sıklıkla ilgili değildir; kullandığınız sürümün desteklenmeyeceğini bildirir. Haziran 2026'da getShipmentPackage servisinin limitleri değiştirildi ve yeni limitlerin üstünde istek atanlar 429 almaya başladı. İki hatayı karıştırmak, haftalarca yanlış yerde çözüm aramaya yol açar.
İlgili hizmetler
API Entegrasyonları
Ödeme, kargo, muhasebe, pazar yeri ve CRM sistemlerinizi birbirine bağlayan güvenilir entegrasyonlar. Veri iki yönlü ve otomatik akar; elle giriş biter.
İnceleKurumsal Yazılım · ERP · CRM
Excel ve WhatsApp'la yürüyen süreçleri tek platformda toplayan, işletmenize özel ERP, CRM ve otomasyon yazılımları. Web tabanlı, mobil uyumlu, mevcut sistemlerinize entegre.
İnceleDevamı
İlgili yazılar#
Yazılım & ERP 7 dk okuma
Trendyol ve Hepsiburada Entegrasyonu: Stok ve Sipariş Senkronizasyonu
Trendyol ve Hepsiburada entegrasyonunda stok ve sipariş senkronizasyonu nasıl kurulur? Aşırı satış nedenleri, doğru mimari, 2026 maliyetleri ve devreye alma adımları.
OkuYazılım & ERP 7 dk okuma
e-Fatura ve e-Arşiv Entegrasyonu: Kimler Zorunlu, Nasıl Bağlanır?
e-Fatura ve e-Arşiv kimler için zorunlu, aradaki fark ne? GİB portalı, özel entegratör ve doğrudan entegrasyon karşılaştırması, teknik adımlar ve sık hatalar.
OkuYazılım & ERP 8 dk okuma
ERP Nedir? KOBİ'ler İçin ERP Rehberi: Modüller, Maliyet, Seçim
ERP nedir, KOBİ'ye ne zaman gerekir? Temel modüller, hazır paket ile özel yazılım karşılaştırması, 2026 fiyat aralıkları, uygulama adımları ve başarısızlık nedenleri.
Oku→ Başlayalım
Bu konuda yardım ister misiniz?#
Yazıda anlatılanları projenize uygulamak için ücretsiz keşif görüşmesi yapalım.