2. Get Shipment Packages
This method allows you to retrieve information about each customer order for the products you've listed on the Trendyol system. After the system conducts payment verification, the orders are automatically packaged and processed to create order packages.
IMPORTANT UPDATE (Available on Order v2 Endpoint)The following changes are planned for the
getShipmentPackagesendpoint:The maximum accessible record count will be limited to 10,000 (maxQueryWindowResult) (this limit may be reduced further in the future) The accessible data scope will be limited to the last 1 month Rate limit values will be updated, and 429 (Too Many Requests) errors may occur more frequently under high-volume requests
These changes will limit the use of the current endpoint for large dataset scanning scenarios.
- The 10,000 limit is based on the shipment package ID.
- The counter does not work based on orderNumber.
- It works based on the shipmentPackageId. If the same order is divided into multiple packages, each package is counted separately.
How is the Limit Applied?
A maximum of size=200 packages are returned in a single request. The 10,000 limit is not the single response size, but the maximum record window accessible via pagination.Pagination is zero-based:
page=0&size=200: 1–200
page=1&size=200: 201–400
page=49&size=200: 9,801–10,000
Therefore, the safe access range is between page=0 and page=49.
How to determine if the filter result is more than 10,000?
The totalElements in the response indicates the total number of packages matching the filter.Example:
JSON {
talElements": 12540,
talPages": 63,
ge": 0,
ze": 200,
ntent": []This response means:
There are 12,540 packages matching the filter.
The current response contains only the first 200 packages.
Up to the first 10,000 records can be accessed via v2/orders.
The remaining 2,540 records cannot be retrieved using the same broad filter.
The check should be done as follows:
totalElements > 10000
totalPages might appear to be greater than 50; however, this does not mean all pages are accessible via v2/orders.What to do if there are more than 10,000 results?
- The Stream Order Packages service can be used:
If all packages need to be retrieved, the stream service (Get Shipment Packages with Stream) should be used. The nextCursor from each response is sent in the next request; this continues until hasMore=false.- The date range can be narrowed down:
The query can be divided into smaller time intervals using startDate and endDate.Example:
First query: August 1–2
Second query: August 3–4
Third query: August 5–6
The totalElements value of each segment must be checked separately.
- The filter can be narrowed down:
Depending on the need, the following fields can be used:
- status
- orderNumber
- barcode
- shipmentPackageIds
- storeFrontCode
- startDate / endDate
🚀 Recommended Action
For large data retrieval and synchronization operations, it is recommended to switch to the getShipmentPackagesStream endpoint.
The Stream endpoint:
- Works with cursor-based pagination
- Is optimized for large datasets
- Provides more efficient usage in terms of rate limits
💡 Note
The existing
getShipmentPackagesendpoint can still be used; however, it is not suitable for scenarios such as:
- Large data scanning (full scan)
- Periodic synchronization (polling)
Key Information:
- You need to send "storeFrontCode" as Header Parameter.
- A maximum of 1000 requests per minute is allowed.
- You can conduct retrospective order queries for up to one month using this service.
- Responses from the getShipmentPackages service are sorted based on the PackageLastModifiedDate.
- The character count and data types in the body may evolve with the natural increase in order volume. It is advisable to adjust your system accordingly.
- Orders with "Awaiting" status should only be used for stock transactions. No other action should be taken for orders with this status. Currently, the necessary data is transmitted to you in the service response for orders with this status. However, this data will not be returned to you in the future. Please note that delivering orders with this status to the courier may result in order cancellation transactions, and Trendyol does not accept responsibility for this.
- "Picking" status is used for showing customer that the package is preparing.
- "Invoiced" status is an optional status which can be set before "Shipping"
- When the cargo company receives the package, package status will be turn to "Shipped" automatically, and from this status, customer cannot cancel the package.
- Seller cannot set "Delivered" status to a package. "Delivered" status is set automatically by listening to package tracking info.
Important Notes:
- The orderNumber received in the order data corresponds to the main order number in the Trendyol system, and the id at the same level represents the Order Package created for that order number.
- If one or more items are canceled in any order package, the system automatically maintains the orderNumber, creating a new id value and cargo barcode.
- Packaging and processing should align with the barcode value sent with product create products during order information.
- The orderDate is in timestamp (milliseconds) format GMT +3, while createdDate is in GMT format.
- You can query packet statuses using suppliers/xxxx/orders?status=Created with statuses such as Created, Picking, Invoiced, Shipped, Cancelled, Delivered, UnDelivered, Returned, Repack, UnPacked, and UnSupplied.
- Adding status (Picking, Invoiced) to your order packages makes it easier to view new orders by querying according to their status.
- To retrieve canceled orders, add the status=Cancelled,UnSupplied parameter.
- To retrieve orders with split packages, add the status=UnPacked parameter.
- "customerId" is a unique value assigned to a Trendyol customer account. It is not exclusive to a single customer, allowing multiple customers to order from the same Trendyol account using the same "customerId."
- "defectiveClaimListingInsight" is a section that identifies products returned due to defective/missing/incorrect reasons and informs the seller about the specific problem that product caused for the customer when a new order arrives. This allows the seller to proactively take precautions when preparing and shipping products to avoid similar situations in the next order, aiming to reduce the rate of returns due to seller-related defects.
"createdBy" can get the values below:
- "order-creation" -> The package is created directly with the coming order
- "cancel" -> The package is created after partial cancellation
- "split" -> The package is created based on the package split
- "transfer" -> Orders that are directed to another seller by Trendyol because the seller who received the order does not have the product.
GET getShipmentPackages
If no parameters are used in the endpoint below, it returns orders from the last week. If startDate and endDate parameters are used, the maximum allowable range is two weeks.
Order V2 ServicesThe following v2 endpoint service will be mandatory as of October 15, 2026. To continue your operations, you must use the updated endpoint service below. With this new V2 integration service:
The maximum accessible record count (ShipmentPackageId) will be limited to 10,000 (maxQueryWindowResult)
WarningThe following endpoint services will be deprecated as of October 15, 2026. You must migrate to Order V2 endpoint services by this date.
Recommended Endpoint
Service Parameters
| Parameter | Parameter Value | Explanation | Type |
|---|---|---|---|
| startDate | It fetches the next orders from a specific date. Must be sent as Timestamp | long | |
| endDate | It fetches orders up to the specified date. Must be sent as Timestamp. | long | |
| page | Only return information on the specified page | int | |
| size | Specifies the maximum number to list on a page. | int | |
| supplierId | ID information of the relevant supplier should be sent | long | |
| orderNumber | Only a specific order number is given to bring that order's information | string | |
| status | Created, Picking, Invoiced, Shipped, Cancelled, Delivered, UnDelivered, Returned, AtCollectionPoint, UnSupplied | Fetchs the information according to the status of orders. | string |
| orderByField | PackageLastModifiedDate | Based on the last update date. | string |
| orderByDirection | ASC | Sorts from old to new. | string |
| orderByDirection | DESC | Sorts from new to old. | string |
| shipmentPackageIds | Trendyol shipmentPackageId | long |
Sample Service Response
{
"totalElements": 1,
"totalPages": 1,
"page": 0,
"size": 1,
"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, // for CEE region
"countyName": "", // for CEE region
"shortAddress": "", // for GULF region
"stateName": "", // for GULF region
"addressLines": {
"addressLine1": "",
"addressLine2": ""
},
"postalCode": "34200",
"countryCode": "RO",
"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",
"orderCountryCode": "RO", // the country where the customer is located, the country where the order was placed
"packageGrossAmount": 498.90,
"packageSellerDiscount": 0.00,
"packageTyDiscount": 0.00, // If commercial is true, it may return full, if false, it will return 0.
"packageTotalDiscount": 0.00,
"discountDisplays": [
{
"displayName": "Sepette %20 İndirim",
"discountAmount": 100
}
],
"taxNumber": null,
"invoiceAddress": {
"id": 11111112,
"firstName": "Trendyol",
"lastName": "Customer",
"company": "", // Orders from the GULF region may be empty.
"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", // Orders from the GULF region may be empty.
"districtId": 54,
"countyId": 0, // It will available for the CEE region.
"countyName": "", // It will available for the CEE region.
"shortAddress": "", // It will available for the GULF region.
"stateName": "", // It will available for the GULF region.
"addressLines": {
"addressLine1": "",
"addressLine2": ""
},
"postalCode": "", // Orders from the GULF region may be empty.
"sector": "",
"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", // If it is not a corporate invoice (commercial=false), it will not be returned in the body.
"taxNumber": "Company of OMS's Tax Number" // If it is not a corporate invoice (commercial=false), it will not be returned in the body.
},
"customerFirstName": "Trendyol",
"customerEmail": "[email protected]",
"customerId": 1451111111,
"supplierId": 2738,
"customerLastName": "Customer",
"channelId": 1,
"shipmentPackageId": 3330111111,
"cargoTrackingNumber": 7280027504111111,
"cargoTrackingLink": "https://tracking.trendyol.com/?id=111111111-1111-1111-1111-11111111",
"cargoSenderNumber": "210090111111",
"sellerDeliveryMethod": "LOCKER", // In case it is LOCKER, package needs to be dropped to the BoxNow locker.Otherwise returns null
"sellerOtpCode": "2342345",// In case sellerDeliveryMethod is LOCKER, this field returns PIN code to open BoxNow compartement .Otherwise returns null
"cargoProviderName": "Trendyol Express",
"lines": [
{
"quantity": 1,
"salesCampaignId": 11,
"productSize": "Tek Ebat",
"stockCode": "111111",
"productName": "Kuş ve Çiçek Desenli Tepsi - Yeşil / Altın Sarısı - 49 cm, 01SYM134, Tek Ebat",
"contentId": 1239111111,
"productOrigin": "TR",
"sellerId": 2738,
"lineGrossAmount": 498.90,
"lineTotalDiscount": 0.00,
"lineSellerDiscount": 0.00,
"lineTyDiscount": 0.00,
"lineSgrFee": 30.40, // averager of line sgr fee (lineItemSgrFee/quantity)
"discountDetails": [
{
"lineItemPrice": 498.90,
"lineItemSellerDiscount": 0.00,
"lineItemTyDiscount": 0.00
}
],
"currencyCode": "TRY",
"productColor": "Yeşil",
"lineId": 4765111111,
"vatRate": 20.00,
"barcode": "8683772071724",
"orderLineItemStatusName": "Delivered",
"lineUnitPrice": 498.90,
"fastDeliveryOptions": [],
"productCategoryId": 2710,
"commission": 13,
"businessUnit": "Sports Shoes",
"cancelledBy": "",
"cancelReason": "",
"cancelReasonCode": 0,
"defectiveClaimListingInsight": ""
}
],
"orderDate": 1762253333685,
"identityNumber": "11111111111",
"currencyCode": "TRY",
"packageHistories": [
{
"createdDate": 1762860180000,
"status": "Delivered"
}
],
"shipmentPackageStatus": "Delivered",
"status": "Delivered",
"whoPays": 1, // If it is a seller pays agreement, 1 comes, if it is a trendyol agreement, this field does not come.
"deliveryType": "normal",
"timeSlotId": 0,
"estimatedDeliveryStartDate": 1762858136000,
"estimatedDeliveryEndDate": 1763030936000,
"packageTotalPrice": 498.90, // (as is calculated packageTotalPrice + totalSgrFee)
"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,
"giftBoxRequested": false,
"3pByTrendyol": false,
"etgbNo": "25341453EX025864", // When micro is true, information will be returned for the etgbNo field.
"etgbDate": 1762646400000, // When micro is true, information will be returned for the etgbDate field.
"containsDangerousProduct": false, // In micro export orders, if there are any dangerous products in the package received by the seller, such as batteries, perfume, etc., it will return true.
"cargoDeci": 10,
"isCod": false,
"createdBy": "order-creation", // Indicates how the package was created, can be "order-creation", "split", "cancel" or "transfer"
"originPackageIds": null, // This field is populated after cancellation or splitting operations and gives the packageid of the first package after these operations.
"hsCode": "711111000000", // This field will return as a string for micro orders.
"shipmentNumber": 606404425,
"totalSgrFee": 60.80 // (total sgrFee of all lines * total of quantities)
}
]
}Mandatory Fields for Address Data
You can check whether the "shipmentAddress" and "invoiceAddress" informations are necessarily filled or not in the table below.
| Field Name | Mandatory |
|---|---|
| id | Yes |
| firstName | No |
| lastName | No |
| company | No |
| address1 | Yes |
| address2 | No |
| city | Yes |
| cityCode | Yes |
| district | No |
| districtId | No |
| postalCode | No |
| countryCode | Yes |
| neighborhoodId | No |
| phone | Yes |
| fullAddress | Yes |
| fullName | No |
Package Status
| Service | Definition |
|---|---|
| orderDate | When the customer creates the order on trendyol.com. |
| Awaiting | It returns when the payment is waiting the confirm. (You should not take any action until these orders with this status change to "Created" status. You can use this status only for stock updates.) |
| Created | When the payment confirm accepted it returns when the order is ready for shipment. |
| Picking | It is a status that can be communicated by you. You can forward it when you start collecting the order or when you start preparing the package. |
| Invoiced | This is the status that you can forward to us when you make out an invoice. |
| Shipped | Orders that move into transport status are specified in this status. |
| AtCollectionPoint | The product is at the relevant PUDO delivery point. The customer is expected to go to the PUDO point and pick it up. This status is valid for Romania |
| Cancelled | Orders that cancelled. Also includes unsupplied orders. |
| UnPacked | Orders that splitted. |
| Delivered | Orders that delivered. No status changes can be made after this status. |
| UnDelivered | It returns when the order cannot be delivered to the customer. |
| Returned |
|
Sample Service Response
{
"totalElements": 1,
"totalPages": 1,
"page": 0,
"size": 1,
"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, // for CEE region
"countyName": "", // for CEE region
"shortAddress": "", // for GULF region
"stateName": "", // for GULF region
"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,
"packageSellerDiscount": 0.00,
"packageTyDiscount": 0.00, // If commercial is true, it may return full, if false, it will return 0.
"packageTotalDiscount": 0.00,
"discountDisplays": [
{
"displayName": "Sepette %20 İndirim",
"discountAmount": 100
}
],
"taxNumber": null,
"invoiceAddress": {
"id": 11111112,
"firstName": "Trendyol",
"lastName": "Customer",
"company": "", // Orders from the GULF region may be empty.
"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", // Orders from the GULF region may be empty.
"districtId": 54,
"countyId": 0, // It will available for the CEE region.
"countyName": "", // It will available for the CEE region.
"shortAddress": "", // It will available for the GULF region.
"stateName": "", // It will available for the GULF region.
"addressLines": {
"addressLine1": "",
"addressLine2": ""
},
"postalCode": "", // Orders from the GULF region may be empty.
"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", // If it is not a corporate invoice (commercial=false), it will not be returned in the body.
"taxNumber": "Company of OMS's Tax Number" // If it is not a corporate invoice (commercial=false), it will not be returned in the body.
},
"customerFirstName": "Trendyol",
"customerEmail": "[email protected]",
"customerId": 1451111111,
"supplierId": 2738,
"customerLastName": "Customer",
"shipmentPackageId": 3330111111,
"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",
"productName": "Kuş ve Çiçek Desenli Tepsi - Yeşil / Altın Sarısı - 49 cm, 01SYM134, Tek Ebat",
"contentId": 1239111111,
"productOrigin": "TR",
"sellerId": 2738,
"lineGrossAmount": 498.90,
"lineTotalDiscount": 0.00,
"lineSellerDiscount": 0.00,
"lineTyDiscount": 0.00,
"discountDetails": [
{
"lineItemPrice": 498.90,
"lineItemSellerDiscount": 0.00,
"lineItemTyDiscount": 0.00
}
],
"currencyCode": "TRY",
"productColor": "Yeşil",
"lineId": 4765111111,
"vatRate": 20.00,
"barcode": "8683772071724",
"orderLineItemStatusName": "Delivered",
"lineUnitPrice": 498.90,
"fastDeliveryOptions": [],
"productCategoryId": 2710,
"commission": 13,
"businessUnit": "Sports Shoes",
"cancelledBy": "",
"cancelReason": "",
"cancelReasonCode": 0
}
],
"orderDate": 1762253333685,
"identityNumber": "11111111111",
"currencyCode": "TRY",
"packageHistories": [
{
"createdDate": 1762860180000,
"status": "Delivered"
}
],
"shipmentPackageStatus": "Delivered",
"status": "Delivered",
"whoPays": 1, // If it is a seller pays agreement, 1 comes, if it is a trendyol agreement, this field does not come.
"deliveryType": "normal",
"timeSlotId": 0,
"estimatedDeliveryStartDate": 1762858136000,
"estimatedDeliveryEndDate": 1763030936000,
"packageTotalPrice": 498.90,
"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,
"giftBoxRequested": false,
"3pByTrendyol": false,
"etgbNo": "25341453EX025864", // When micro is true, information will be returned for the etgbNo field.
"etgbDate": 1762646400000, // When micro is true, information will be returned for the etgbDate field.
"containsDangerousProduct": false, // In micro export orders, if there are any dangerous products in the package received by the seller, such as batteries, perfume, etc., it will return true.
"cargoDeci": 10,
"isCod": false,
"createdBy": "order-creation", // Indicates how the package was created, can be "order-creation", "split", "cancel" or "transfer"
"originPackageIds": null, // This field is populated after cancellation or splitting operations and gives the packageid of the first package after these operations.
"hsCode": "711111000000", // This field will return as a string for micro orders.
"shipmentNumber": 606404425
}
]
}Box Now Order Flow
In case an order package to be dropped to BoxNow locker instead of cargo provider picking, below 2 fields in the response body to be used to progress:
-
“sellerDeliveryMethod”: “LOCKER”
In case it is LOCKER, package needs to be dropped to the BoxNow locker.Otherwise returns null
-
“sellerOtpCode”: “2342345"
In case sellerDeliveryMethod is LOCKER, this field returns PIN code to open BoxNow compartment. In some cases this field cannot be fulfilled once the order created, if "sellerDeliveryMethod” field is “LOCKER” then you need to refetch order package until get this value. If "sellerDeliveryMethod” field is not “LOCKER” than this field returns null.You can check Box Now locker address via below website in order to decide which locker point you will be dropped the package:
-
In Greece https://boxnow.gr/en/locker-finder
Then you can follow below steps:
Step 1: Print your shipping label.
Step 2: Drop off the package at any BoxNow locker you have chosen for
Step 3: Use the PIN code (sellerOtpCode) to open a compartment.
Step 4: Place the package inside and close the locker door.
Each package must be placed in a separate locker compartment. Multiple packages in the same compartment may result in lost packages or unprocessed returns.
Updated 3 days ago