HomeGuidesAPI ReferenceChangelogSupport Request
Guides

Sipariş Paketlerini Akış ile Çekme (getShipmentPackagesStream)

getShipmentPackagesStream, sipariş paketlerini cursor tabanlı (stream) olarak çekmenizi sağlayan endpoint'tir.

⚠️

ÖNEMLİ

Mevcut getShipmentPackages endpoint’i büyük veri setlerini tarama (scanning) amacıyla optimize edilmemiştir.

Bu endpoint için:

  • Maksimum erişilebilir kayıt sayısı: 10.000
  • Yüksek hacimli veri çekimlerinde sistem üzerinde yük oluşabilir
  • Rate limit kısıtlarına daha hızlı takılınabilir

Bu nedenle aşağıdaki senaryolarda getShipmentPackagesStream kullanılması önerilir:

✔ Büyük veri tarama (full scan) ✔ Periyodik senkronizasyon (polling / cron) ✔ Tüm siparişleri export etme

✅ Response yapısı aynıdır, sadece pagination ile ilgili alanlar dönmeyecektir. (totalElements, totalPages, page) ❗ Pagination mekanizması değişmiştir (cursor tabanlı)


📦 Veri Kapsamı & Tarih Kısıtları

  • Bu endpoint üzerinden son 3 aylık veri erişilebilir

❗ Zaman aralığı maksimum 2 hafta (14 gün) ile sınırlandırılmıştır:

  • lastModifiedStartDate ve lastModifiedEndDate gönderilmezse → sistem otomatik olarak son 2 hafta ile sınırlar.

❗ Response Farkı

getShipmentPackagesStream endpoint’inin response yapısı mevcut endpoint ile aynıdır; sadece aşağıdaki alanlar artık dönmemektedir:

  • totalElements
  • totalPages
  • page

Bunun yerine aşağıdaki alanlar kullanılır:

  • hasMore
  • nextCursor
  • size

Bu nedenle page tabanlı pagination kullanan entegrasyonların, cursor tabanlı yapıya geçmesi gerekmektedir.

💡

Migration Notu

  • page++ yerine → nextCursor kullanılır
  • totalPages kontrolü yerine → hasMore kontrol edilir

Stream Servisi vs. Mevcut Servis

ÖzellikMevcut Servis (getShipmentPackages)Stream Servisi (getShipmentPackagesStream)
Kullanım AmacıKüçük / anlık sorgularBüyük veri tarama & senkronizasyon
PaginationPage tabanlı (page, totalPages)Cursor tabanlı (nextCursor, hasMore)
Maksimum Veri Erişimi⚠️ 10.000 kayıt ile sınırlı✅ Yüksek limitli akış
Büyük Veri Performansı⚠️ Sınırlı✅ Optimize

Cursor Tabanlı Sayfalama Nasıl Çalışır?

Cursor mekanizması, klasik page mantığından farklıdır:

  • page yerine akış pointer’ı (cursor) kullanılır
  • Her istek, bir önceki kaldığı yerden devam eder
  • Büyük veri setlerinde stabil ve verimli ilerleme sağlar

Akış

  1. İlk istekte nextCursor gönderilmez
  2. Yanıtta hasMore = true ise devam edilir
  3. nextCursordeğeri alınır ve sonraki istekte kullanılır
  4. hasMore = false olduğunda akış tamamlanır

⚠️ Kritik Kurallar

  • nextCursor opaque bir değerdir → parse edilmemelidir, değiştirilmemelidir.
  • Aynı cursor değeri kullanırken daha önce başlatılan filtreler değiştirilmemelidir
  • Filtre değişirse → 400 Bad Request alınır
  • Sıralama sabittir, Last Modified Date'e göre DESC olarak sonuç döner
  • Yeni filtre ile çalışmak için → yeni akış başlatılmalıdır

Önerilen kullanım:

  • Önerilen kullanımminimum 5 saniye aralıklarda istek atılmasıdır.

Endpoint

PROD

GET https://apigw.trendyol.com/integration/order/sellers/{sellerId}/orders/stream

STAGE

GET https://stageapigw.trendyol.com/integration/order/sellers/{sellerId}/orders/stream

Örnek Servis Cevabı


{
    "hasMore": true,
    "nextCursor": "609ca79b-1fdf-4c4e-a814-498ce9c1c039",
    "size": 50,
    "content": [
        {
            "shipmentAddress": {
                "id": 11111111,
                "firstName": "Trendyol",
                "lastName": "Customer",
                "company": "",
                "address1": "DSM Grup Danışmanlık İletişim ve Satış Ticaret A.Ş. Maslak Mahallesi Saat Sokak Spine Tower No:5 İç Kapı No:19 Sarıyer/İstanbul",
                "address2": "",
                "city": "İstanbul",
                "cityCode": 34,
                "district": "Sarıyer",
                "districtId": 54,
                "countyId": 0, // CEE bölgesi için gelecektir.
                "countyName": "", // CEE bölgesi için gelecektir.
                "shortAddress": "", // GULF bölgesi için gelecektir.
                "stateName": "", // GULF bölgesi için gelecektir.
                "addressLines": {
                    "addressLine1": "",
                    "addressLine2": ""
                },
                "postalCode": "34200",
                "countryCode": "TR",
                "neighborhoodId": 21111,
                "neighborhood": "Maslak Mahallesi",
                "phone": null,
                "fullAddress": "DSM Grup Danışmanlık İletişim ve Satış Ticaret A.Ş. Maslak Mahallesi Saat Sokak Spine Tower No:5 İç Kapı No:19 Sarıyer/İstanbul",
                "fullName": "Trendyol Customer"
            },
            "orderNumber": "10654411111",
            "packageGrossAmount": 498.90, // Paketin toplam brüt tutarı (indirimsiz)
            "packageSellerDiscount": 0.00, // Satıcı indirim tutarı
            "packageTyDiscount": 0.00, // commercial true olduğu durumda dolu gelebilir, false olduğu durumda 0 dönecektir.
            "packageTotalDiscount": 0.00, // Toplam indirim tutarı (packageSellerDiscount + packageTyDiscount)
            "discountDisplays": [
                {
                    "displayName": "Sepette %20 İndirim",
                    "discountAmount": 100
                }
            ],
            "taxNumber": null,
            "invoiceAddress": { // Trendyol Yurt Dışı Aracılığı siparişleri için "DSM Grup Danışmanlık" bilgileri dönecektir.
                "id": 11111112,
                "firstName": "Trendyol",
                "lastName": "Customer",
                "company": "", // GULF bölgesi siparişlerinde boş gelebilir.
                "address1": "DSM Grup Danışmanlık İletişim ve Satış Ticaret A.Ş. Maslak Mahallesi Saat Sokak Spine Tower No:5 İç Kapı No:19 Sarıyer/İstanbul",
                "address2": "",
                "city": "İstanbul",
                "cityCode": 0,
                "district": "Sarıyer", // GULF bölgesi siparişlerinde boş gelebilir.
                "districtId": 54,
                "countyId": 0, // CEE bölgesi için gelecektir.
                "countyName": "", // CEE bölgesi için gelecektir.
                "shortAddress": "", // GULF bölgesi için gelecektir.
                "stateName": "", // GULF bölgesi için gelecektir.
                "addressLines": {
                    "addressLine1": "",
                    "addressLine2": ""
                },
                "postalCode": "", // GULF bölgesi siparişlerinde boş gelebilir.
                "countryCode": "TR",
                "neighborhoodId": 0,
                "phone": null,
                "latitude": "11.111111",
                "longitude": "22.222222",
                "fullAddress": "DSM Grup Danışmanlık İletişim ve Satış Ticaret A.Ş. Maslak Mahallesi Saat Sokak Spine Tower No:5 İç Kapı No:19 Sarıyer/İstanbul",
                "fullName": "Trendyol Customer",
                "taxOffice": "Company of OMS's Tax Office", // Kurumsal fatura olmadığı durumda (commercial=false ise) body içerisinde dönmeyecektir.
                "taxNumber": "Company of OMS's Tax Number" // Kurumsal fatura olmadığı durumda (commercial=false ise) body içerisinde dönmeyecektir.
            },
            "customerFirstName": "Trendyol",
            "customerEmail": "[email protected]",
            "customerId": 1451111111,
            "supplierId": 2738,
            "customerLastName": "Customer",
            "shipmentPackageId": 3330111111, // Paket ID'si
            "cargoTrackingNumber": 7280027504111111,
            "cargoTrackingLink": "https://tracking.trendyol.com/?id=111111111-1111-1111-1111-11111111",
            "cargoSenderNumber": "210090111111",
            "cargoProviderName": "Trendyol Express",
            "lines": [
                {
                    "quantity": 1,
                    "salesCampaignId": 11,
                    "productSize": "Tek Ebat",
                    "stockCode": "111111", // Satıcı stok kodu
                    "productName": "Kuş ve Çiçek Desenli Tepsi - Yeşil / Altın Sarısı - 49 cm, 01SYM134, Tek Ebat",
                    "contentId": 1239111111,
                    "productOrigin": "TR",
                    "sellerId": 2738, // Satıcı ID'si
                    "lineGrossAmount": 498.90, // Ürünün birim brüt fiyatı (indirimsiz)
                    "lineTotalDiscount": 0.00, // Birim toplam indirim (lineSellerDiscount + lineTyDiscount)
                    "lineSellerDiscount": 0.00, // Birim satıcı indirimi (item'ların ortalaması)
                    "lineTyDiscount": 0.00, // Birim Trendyol indirimi (item'ların ortalaması)
                    "discountDetails": [ // Her bir adet (item) için ayrı indirim detayı
                        {
                            "lineItemPrice": 498.90, // İndirimli birim fiyat (lineGrossAmount - lineItemSellerDiscount - lineItemTyDiscount)
                            "lineItemSellerDiscount": 0.00, // Bu item'a uygulanan satıcı indirimi
                            "lineItemTyDiscount": 0.00 // Bu item'a uygulanan Trendyol indirimi
                        }
                    ],
                    "currencyCode": "TRY",
                    "productColor": "Yeşil",
                    "lineId": 4765111111, // Sipariş satır ID'si
                    "vatRate": 20.00, // KDV oranı
                    "barcode": "8683772071724",
                    "orderLineItemStatusName": "Delivered",
                    "lineUnitPrice": 498.90, // Net birim fiyat (lineGrossAmount - lineSellerDiscount - lineTyDiscount)
                    "fastDeliveryOptions": [],
                    "productCategoryId": 2710,
                    "commission": 13, // Komisyon oranı
                    "businessUnit": "Sports Shoes",
                    "cancelledBy": "", // İptal eden taraf
                    "cancelReason": "", // İptal nedeni
                    "cancelReasonCode": 0 // İptal neden kodu
                }
            ],
            "orderDate": 1762253333685,
            "identityNumber": "11111111111",
            "currencyCode": "TRY",
            "packageHistories": [
                {
                    "createdDate": 1762242537624,
                    "status": "Created"
                }
            ],
            "shipmentPackageStatus": "Delivered",
            "status": "Delivered",
            "whoPays": 1, // Eğer satıcı anlaşması ise 1 gelir, trendyol anlaşması ise alan gelmez
            "deliveryType": "normal",
            "timeSlotId": 0,
            "estimatedDeliveryStartDate": 1762858136000,
            "estimatedDeliveryEndDate": 1763030936000,
            "packageTotalPrice": 498.90, // Paketin toplam net fiyatı (indirimli)
            "deliveryAddressType": "Shipment",
            "agreedDeliveryDate": 1762376340000,
            "fastDelivery": false,
            "originShipmentDate": 1762242537619,
            "lastModifiedDate": 1762865408581,
            "commercial": false,
            "fastDeliveryType": "",
            "deliveredByService": false,
            "warehouseId": 372389,
            "invoiceLink": "https://efatura01.evidea.com/11111111111",
            "micro": true, // micro ihracat siparişleri için true olarak dönecektir.
            "giftBoxRequested": false,
            "3pByTrendyol": false,
            "etgbNo": "25341453EX025864", // micro true olduğunda etgbNo alanı için bilgi dönecektir.
            "etgbDate": 1762646400000, // micro true olduğunda etgbDate alanı için bilgi dönecektir.
            "containsDangerousProduct": false, // micro ihracat siparişlerinde satıcıya gelen siparişte paket içerisinde herhangi bir tehlikeli ürün varsa pil, parfüm vb. gibi, true dönecektir.
            "cargoDeci": 10,
            "isCod": false,
            "createdBy": "order-creation", // Paketin nasıl oluşturulduğunu gösterir, "order-creation", "split", "cancel" veya "transfer" olabilir
            "originPackageIds": null, // Bu alan iptal veya bölme işlemlerinden sonra doldurulur ve bu işlemlerden sonra ilk paketin packageid'sini verir.
            "hsCode": "711111000000", // Bu alan mikro siparişler için string olarak dönecektir.
            "shipmentNumber": 606404425,
            "is4P": true // Trendyol Yurt Dışı Aracılığı siparişleri için true olarak dönecektir.
        }
    ]
}
 
   

15 Haziran 2026 tarihinden itibaren servis cevabına aşağıdaki alanlar da eklenecektir (bu tarih, şu an taslaktır):

 					  "invoiceNumber": "1255141" 
            "invoiceStatus": "NotInvoiced" 
						"invoiceRejectedReasonKeys: [
								{	
									"INVOICE_NUMBER_ALREADY_EXISTS",
                  "NVOICE_TOTAL_MISMATCH"    
								}
              ]

"invoiceStatus" alanı değerleri açıklamaları:

invoiceStatusAçıklama
NotInvoicedSipariş paketine ait faturanın beslenmediğini gösterir.
ReceivedSipariş paketine ait fatura beslenmiştir ve kontrol aşamasındadır.
RejectedSipariş paketine ait fatura, kontroller sonucu hatalı bulunmuştur. Bu statüdeki sipariş paketleri için; Türkiye Pazaryerindeki bir sipariş ise hatalı faturanın sipariş üzerinden silinip, tekrar gönderilmesi gerekmektedir. Sipariş Mikro İhracat veya Trendyol Yurtdışı Aracılığı siparişi ise aynı sipariş paketine fatura silme isteği yapılmadan yeni bir fatura beslenmelidir.
InvoicedSipariş paketine ait fatura yapılan kontroller sonucu doğru bulunmuştur. Sipariş paketine ait "invoiceLink" alanı yalnızca bu statüye geçen sipariş paketinlerinde dolu olarak dönecektir. Bu statüye geçmeyen Mikro İhracat ve Trendyol Yurt Dışı Aracılığı sipariş paketleri için kargo etiketi entegrasyon servisimizden dönmeyecektir.

"invoiceRejectedReasonKeys" alanı değerleri açıklamaları:

invoiceRejectedReasonKeysAçıklama
INVOICE_LINE_MISMATCHSiparişinizde yer alan her bir ürün çeşidi için; ürün miktarı, birim fiyat ve KDV bilgileri uyuşan bir kalem bulunması gerekmektedir.
INVOICE_TOTAL_MISMATCHFaturanızdaki dip toplam tutarın siparişteki toplam tutar ile eşleşmesi gerekmektedir.
INVOICE_LINE_NUMBER_MISMATCHFaturanızdaki kalem sayısı ile siparişteki ürün çeşidi sayısı eşleşmelidir.
INVOICE_TYPE_MISMATCHFaturanızdaki fatura tipi satış olmalıdır.
SENDER_VKN_MISMATCHFaturanızdaki VKN bilginiz sistemdeki tanımlı VKN ile aynı olmalıdır.
RECEIPENT_VKN_MISMATCHFaturanızdaki alıcı VKN bilgisi Trendyol VKN bilgisi olmalıdır.
INVOICE_NUMBER_MISMATCHFaturanızdaki fatura numarası sipariş için beslediğiniz fatura numarası ile aynı olmalıdır.
INVOICE_DATE_MISMATCHFaturanızdaki fatura tarihi sipariş tarihinden sonra olmalıdır.
INVOICE_SCENARIO_MISMATCHFaturanızdaki fatura senaryosu temel veya ticari olmalıdır.
INVOICE_NOT_FOUND_IN_MAILBOXFatura Trendyol gelen kutusunda bulunamamaktadır. Yeni bir fatura iletmeniz beklenmektedir.
INVOICE_NUMBER_ALREADY_EXISTSDaha önce gönderilen bir "invoiceNumber" farklı bir sipariş paketi için tekrar gönderilmektedir. Fatura numarasının değiştirilmesi gerekmektedir.