eBay Merchant Data APIVersion 1331
 

SetShipmentTrackingInfo

Note: Large Merchant Services (LMS) functionality as a SOAP service has been decommissioned. It is fully migrated into the REST-based Sell Feed API The Sell Feed API supports the same XML data files that LMS supported but through REST methods. For more information, see the LMS Feed Guide. Specifies the shipment tracking information associated with one package of an order. If multiple packages are required for the order, this call must be made separately for each package.



Input

See also Samples.

The box below lists all fields that could be included in the call request. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).

<?xml version="1.0" encoding="utf-8"?>
<SetShipmentTrackingInfoRequest xmlns="urn:ebay:apis:eBLBaseComponents">
  <!-- Call-specific Input Fields -->
  <IsPaid> boolean </IsPaid>
  <IsShipped> boolean </IsShipped>
  <OrderID> string </OrderID>
  <OrderLineItemID> string </OrderLineItemID>
  <Shipment> ShipmentType
    <ShipmentTrackingDetails> ShipmentTrackingDetailsType
      <ShipmentLineItem> ShipmentLineItemType
        <LineItem> LineItemType
          <CountryOfOrigin> string </CountryOfOrigin>
          <Description> string </Description>
          <ItemID> ItemIDType (string) </ItemID>
          <Quantity> int </Quantity>
          <TransactionID> string </TransactionID>
        </LineItem>
        <!-- ... more LineItem nodes allowed here ... -->
      </ShipmentLineItem>
      <ShipmentTrackingNumber> string </ShipmentTrackingNumber>
      <ShippingCarrierUsed> string </ShippingCarrierUsed>
    </ShipmentTrackingDetails>
    <!-- ... more ShipmentTrackingDetails nodes allowed here ... -->
    <ShippedTime> dateTime </ShippedTime>
  </Shipment>
</SetShipmentTrackingInfoRequest>
Argument Type Occurrence Meaning
IsPaid boolean Optional This field is included and set to true to indicate that the buyer has paid for the order.
IsShipped boolean Optional This field is included and set to true to indicate that an order or order line item was shipped. If this element is missing, eBay assumes that the order or order line item was shipped.
OrderID string Conditional A unique identifier that identifies a single line item or multiple line item order. Either the OrderID or OrderLineItemID value must be passed in the request.

Note: In June 2019, eBay introduced a new order ID format, but allowed developers/sellers to decide whether to immediately adopt the new format, or to continue working with the old format. Users who wanted to adopt the new format, could either use a Trading WSDL Version 1113 (or newer), or they could even use an older Trading WSDL but set the X-EBAY-API-COMPATIBILITY-LEVEL HTTP header value to 1113 in API calls. Beginning in June 2020, only the new order ID format will be returned in response payloads for paid orders, regardless of the WSDL version number or compatibility level.

Note that the unique identifier of a 'non-immediate payment' order will change as it goes from an unpaid order to a paid order. Due to this scenario, all calls that accept Order ID values as filters in the request payload, including the SetShipmentTrackingInfo call, will support the identifiers for both unpaid and paid orders. However, the SetShipmentTrackingInfo call is typically only used to provide shipment tracking information for orders/line items that have already been paid for, so the new order ID format will be used for this call in most cases. The new order ID format is a non-parsable string, globally unique across all eBay marketplaces, and consistent for both single line item and multiple line item orders. Unlike in the past, instead of just being known and exposed to the seller, these unique order identifiers will also be known and used/referenced by the buyer and eBay customer support.

Sellers can check to see if an order has been paid by looking for a value of 'Complete' in the CheckoutStatus.Status field in the response of GetOrders or GetOrderTransactions call, or in the Status.CompleteStatus field in the response of GetItemTransactions or GetSellerTransactions call. Sellers should not fulfill orders until buyer has made payment.

Max length: 40.
OrderLineItemID string Conditional A unique identifier for an eBay order line item. This identifier is created as soon as there is a commitment to buy from the seller. Either the OrderLineItemID or the OrderID value must be passed in the request.
Shipment ShipmentType Required This container is used to provide the name of the shipping carrier, the package tracking number, and optionally, the timestamp of the shipment.
Shipment
  .ShipmentTrackingDetails
ShipmentTrackingDetailsType Optional,
repeatable: [0..*]
Container consisting of the tracking number and shipping carrier associated with the shipment of one item (package).

Because an order can have multiple line items and/or packages, there can be multiple ShipmentTrackingDetails containers under the Shipment container.
Shipment
  .ShipmentTrackingDetails
  .ShipmentLineItem
ShipmentLineItemType Optional Contains information about one or more order line items in a Global Shipping Program package. Required or returned if the value of ShippingCarrierUsed is PBI.
Shipment
  .ShipmentTrackingDetails
  .ShipmentLineItem.LineItem
LineItemType Optional,
repeatable: [1..*]
Contains information about one order line item in a Global Shipping Program package. The package can contain multiple units of a given order line item, and multiple order line items.
Shipment
  .ShipmentTrackingDetails
  .ShipmentLineItem.LineItem
  .CountryOfOrigin
string Optional The Country of Manufacture for the order line item; this is required for customs. This should identify the country in which more than 50% of the value of the item was created.

This value must conform to the ISO 3166 two-letter country code standard. To see the list of currently supported codes, and the English names associated with each code (e.g., KY="Cayman Islands"), call GeteBayDetails with DetailName set to CountryDetails.
Shipment
  .ShipmentTrackingDetails
  .ShipmentLineItem.LineItem
  .Description
string Optional The item description of the order line item, based on its ItemID.
Shipment
  .ShipmentTrackingDetails
  .ShipmentLineItem.LineItem
  .ItemID
ItemIDType (string) Optional Unique identifier for the eBay listing associated with the order line item. A multiple-quantity listing can have multiple order line items, but only one ItemID value. Unless an OrderLineItemID or SKU value is specified in the same node, this field is required for each ItemTransactionID node included in the request.
Shipment
  .ShipmentTrackingDetails
  .ShipmentLineItem.LineItem
  .Quantity
int Optional The number of units of the order line item in this package; this is required for customs. The seller must ensure that this matches the quantity of the order line item enclosed in the package.

This value must be a positive integer, and it can't be greater than the quantity of this item specified in the original transaction. This field is a required field in CompleteSale if the order type is a Global Shipping Program (GSP) order.
Shipment
  .ShipmentTrackingDetails
  .ShipmentLineItem.LineItem
  .TransactionID
string Optional Unique identifier for an eBay order line item (transaction). The TransactionID should match the ItemID specified in each ItemTransactionID node included in the request. Optionally, an OrderLineItemID value can substitute for the ItemID/TransactionID pair.

The TransactionID value for auction listings is always 0 since there can be only one winning bidder/one sale for an auction listing.
Shipment
  .ShipmentTrackingDetails
  .ShipmentTrackingNumber
string Conditional The tracking number assigned by the shipping carrier to the item shipment. This field and the ShippingCarrierUsed field are mutually dependent. When you submit ShipmentTrackingNumber, you must also supply a value for ShippingCarrierUsed. When you submit ShippingCarrierUsed, you must also supply a value for ShipmentTrackingNumber.

The seller is responsible for the accuracy of the shipment tracking number, as eBay only verifies that the tracking number is consistent with the numbering scheme used by the specified shipping carrier, but cannot verify the accuracy of the tracking number. For order management calls,

For GetOrders, GetOrderTransactions, GetSellerTransactions, and GetItemTransactions only: This field is only returned if a valid tracking number is set. With the exception of the GetSellerTransactions (where it is only returned to the seller and not buyer), the tracking number will only be returned to the seller or buyer. If a user is using a Trading WSDL Version 1019 or above, this field will only be returned to the buyer or seller, and no longer returned at all to third parties. If using a Trading WSDL older than Version 1019, this field is returned to third parties, but the string value returned in the field will be Unavailable.

Note: The Trading API only supports alphanumeric characters for shipment tracking numbers, and any other characters are not supported, including spaces, hyphens, and all other special characters. Users should not enter spaces even if spaces are shown for the tracking number on the shipping label.
Shipment
  .ShipmentTrackingDetails
  .ShippingCarrierUsed
string Conditional The name of the shipping carrier used to ship the item. This field and the ShipmentTrackingNumber field are mutually dependent. When you submit ShippingCarrierUsed, you must also supply a value for ShipmentTrackingNumber. When you submit ShipmentTrackingNumber, you must also supply a value for ShippingCarrierUsed.

When the site ID is Austria, Poland, or UK, ShippingCarrierUsed can be any value, because it is not checked by eBay. For all other sites, only the following characters are allowed: letters (a-z, A-Z), numbers (0-9), space, and dash (-). The site ID is specified in the CompleteSale request header.

Note: Commonly used shipping carriers can be found by calling GeteBayDetails with DetailName set to ShippingCarrierDetails and examining the returned ShippingCarrierDetails.ShippingCarrier field. ShippingCarrierCodeType also has a list of valid shipping carriers, but eBay cannot guarantee that this enumerated type contains a full, updated list of shipping carriers. For the CompleteSale call:
  • This field is not case sensitive in the CompleteSale request.
  • When using UPS Mail Innovations, supply the value UPS-MI. Buyers will subsequently be sent to the UPS Mail Innovations website for tracking status.
  • When using FedEx SmartPost, supply the value FedEx. Buyers will subsequently be sent to the FedEx web site for tracking status.
For the Get calls: When using the Global Shipping Program, this field returns a value of PBI.

Applicable values: See ShippingCarrierCodeType
Shipment.ShippedTime dateTime Optional The date and time that the seller handed off the package(s) to the shipping carrier. If this field is not included in the request, the timestamp of the call execution is used as the shipped time. Note that sellers have the ability to set this value up to 3 calendar days in the future.



Output

See also Samples.

The box below lists all fields that might be returned in the response. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).

<?xml version="1.0" encoding="utf-8"?>
<SetShipmentTrackingInfoResponse xmlns="urn:ebay:apis:eBLBaseComponents">
  <!-- Call-specific Output Fields -->
  <OrderLineItemID> string </OrderLineItemID>
  <!-- Standard Output Fields -->
  <Ack> AckCodeType </Ack>
  <Errors> ErrorType
    <ErrorClassification> ErrorClassificationCodeType </ErrorClassification>
    <ErrorCode> token </ErrorCode>
    <ErrorParameters ParamID="string"> ErrorParameterType
      <Value> string </Value>
    </ErrorParameters>
    <!-- ... more ErrorParameters nodes allowed here ... -->
    <LongMessage> string </LongMessage>
    <SeverityCode> SeverityCodeType </SeverityCode>
    <ShortMessage> string </ShortMessage>
  </Errors>
  <!-- ... more Errors nodes allowed here ... -->
</SetShipmentTrackingInfoResponse>
Return Value Type Occurrence Meaning
Call-specific Output Fields [Jump to standard fields]
OrderLineItemID string Always OrderLineItemID is required upon input and always returned in the response. You can use this field to track whether or not a response is returned for every request, and to match specific responses to Specific requests.
Standard Output Fields  
Ack AckCodeType Always A token representing the application-level acknowledgement code that indicates the response status (e.g., success). The AckCodeType list specifies the possible values for the Ack field.

Applicable values:

CustomCode
Reserved for internal or future use.
Failure
This value indicates that the call request processing failed.
Success
This value indicates that the call request was processed successfully without any issues.
Warning
This value indicates that the call request was successful, but processing was not without any issues. These issues can be checked in the Errors container, that will also be returned when one or more known issues occur with the call request.

(Not all values in AckCodeType apply to this field.)

Code so that your app gracefully handles any future changes to this list.
Errors ErrorType Conditionally,
repeatable: [0..*]
A list of application-level errors (if any) that occurred when eBay processed the request.
Errors.ErrorClassification ErrorClassificationCodeType Conditionally API errors are divided between two classes: system errors and request errors.

Applicable values:

CustomCode
Reserved for internal or future use.
RequestError
An error has occurred either as a result of a problem in the sending application or because the application's end-user has attempted to submit invalid data (or missing data). In these cases, do not retry the request. The problem must be corrected before the request can be made again. If the problem is due to something in the application (such as a missing required field), the application must be changed. If the problem is a result of end-user data, the application must alert the end-user to the problem and provide the means for the end-user to correct the data. Once the problem in the application or data is resolved, resend the request to eBay with the corrected data.
SystemError
Indicates that an error has occurred on the eBay system side, such as a database or server down. An application can retry the request as-is a reasonable number of times (eBay recommends twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, the request may be resent in its original form.

Code so that your app gracefully handles any future changes to this list.
Errors.ErrorCode token Conditionally A unique code that identifies the particular error condition that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.

See Errors By Number.

Errors.ErrorParameters ErrorParameterType Conditionally,
repeatable: [0..*]
This optional element carries a list of context-specific error variables that indicate details about the error condition. These are useful when multiple instances of ErrorType are returned.
Errors.ErrorParameters
  [ attribute ParamID ]
string Conditionally This optional element carries a list of context-specific error variables that indicate details about the error condition. These are useful when multiple instances of ErrorType are returned.
Errors.ErrorParameters.Value string Conditionally This is the value of the request parameter noted in the ParamID attribute. So, if the ParamID value was ItemID, the value in this field would be the actual value of that ItemID.
Errors.LongMessage string Conditionally A more detailed description of the condition that raised the error.
Errors.SeverityCode SeverityCodeType Conditionally Indicates whether the error is a severe error (causing the request to fail) or an informational error (a warning) that should be communicated to the user.

Applicable values:

CustomCode
Reserved for internal or future use.
Error
The request that triggered the error was not processed successfully. When a serious application-level error occurs, the error is returned instead of the business data.

If the source of the problem is within the application (such as a missing required element), change the application before you retry the request.
  • If the problem is due to end-user input data, please alert the end-user to the problem and provide the means for them to correct the data. Once the problem in the application or data is resolved, you can attempt to re-send the request to eBay.
  • If the source of the problem is on eBay's side, An application can retry the request as-is a reasonable number of times (eBay recommends twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, the request may be resent in its original form.


See the Compatible Application Check section of the eBay Features Guide for more information.
Warning
The request was processed successfully, but something occurred that may affect your application or the user. For example, eBay may have changed a value the user sent in. In this case, eBay returns a normal, successful response and also returns the warning.

When a warning occurs, the error is returned in addition to the business data. In this case, you do not need to retry the request (as the original request was successful). However, depending on the cause or nature of the warning, you might need to contact either the end user or eBay to effect a long term solution to the problem to prevent it from reoccurring in the future.

Code so that your app gracefully handles any future changes to this list.
Errors.ShortMessage string Conditionally A brief description of the condition that raised the error.



Samples

New to making API calls? Please see Making a Call.

Note: Some item IDs, user IDs, or other data in these samples might no longer be active on eBay. If necessary, you can substitute current eBay data in your requests.

Sample: Basic Call

Request that you use to record that an order has been shipped. Use the SetShipmentTrackingInfo request to associate each line item in a SoldReport to the shipped time, tracking service, and tracking number that you used when shipping an item.

Description

User m****************t wants to keep track of the carrier information and tracking number for each item in her Sold Report that she has shipped to date. She starts order processing and creates a data file to set the shipment tracking info. at the same time she creates the data file to acknowledged orders in her Sold Report.

Input

The fields in the following SetShipmentTrackingInfo request represent shipped items from three of m****************t's basketball shoe listings. In this sample, we have included a basic SetShipmentTrackingInfo request. In a more typical SetShipmentTrackingInfo request file, you might record and upload data for thousands of shipped items.

XML format.

<?xml version="1.0" encoding="UTF-8"?>
<BulkDataExchangeRequests>
    <Header>
        <Version>955</Version>
        <SiteID>*</SiteID>
    </Header>
    <SetShipmentTrackingInfoRequest xmlns="urn:ebay:apis:eBLBaseComponents">
        <OrderID>1**********9-2*********1</OrderID>
        <OrderLineItemID>1**********9-2*********1</OrderLineItemID>
        <Shipment> 
            <ShippedTime>2008-11-25T12:00:00.000Z</ShippedTime>
            <ShipmentTrackingDetails>
                <ShippingCarrierUsed>UPS</ShippingCarrierUsed>
                <ShipmentTrackingNumber>1Z *** *** ** **** *** 9</ShipmentTrackingNumber>
            </ShipmentTrackingDetails>
        </Shipment>
    </SetShipmentTrackingInfoRequest>
    <SetShipmentTrackingInfoRequest xmlns="urn:ebay:apis:eBLBaseComponents">
        <OrderID>1**********9-2*********1</OrderID>
        <OrderLineItemID>1**********9-2*********1</OrderLineItemID>
        <Shipment> 
            <ShippedTime>2008-11-25T12:00:00.000Z</ShippedTime>
            <ShipmentTrackingDetails>
                <ShippingCarrierUsed>UPS</ShippingCarrierUsed>
                <ShipmentTrackingNumber>1Z *** *** ** **** *** 8</ShipmentTrackingNumber>
            </ShipmentTrackingDetails>
        </Shipment>
    </SetShipmentTrackingInfoRequest>
    <SetShipmentTrackingInfoRequest xmlns="urn:ebay:apis:eBLBaseComponents">
        <OrderID>1**********9-2*********1</OrderID>
        <OrderLineItemID>1**********9-2*********1</OrderLineItemID>
        <Shipment> 
            <ShippedTime>2008-11-25T12:00:00.000Z</ShippedTime>
            <ShipmentTrackingDetails>
                <ShippingCarrierUsed>UPS</ShippingCarrierUsed>
                <ShipmentTrackingNumber>1Z *** *** ** **** *** 7</ShipmentTrackingNumber>
            </ShipmentTrackingDetails>
        </Shipment>
    </SetShipmentTrackingInfoRequest>
</BulkDataExchangeRequests>

Output

The SetShipmentTrackingInfo response file includes the OrderID and OrderLineItemID of each item you have shipped, call Success or Failure, and any error numbers and messages returned by the call request. For multiple line items, each shipment is listed as a separate node.

XML format.
<?xml version="1.0" encoding="utf-8"?>
<BulkDataExchangeResponses xmlns="urn:ebay:apis:eBLBaseComponents">
    <SetShipmentTrackingInfoResponse>
        <Ack>Success</Ack>
        <OrderID>1**********9-2*********1</OrderID>
        <OrderLineItemID>1**********9-2*********1</OrderLineItemID>
    </SetShipmentTrackingInfoResponse>
    <SetShipmentTrackingInfoResponse>
        <Ack>Success</Ack>
        <OrderID>1**********9-2*********1</OrderID>
        <OrderLineItemID>1**********9-2*********1</OrderLineItemID>
    </SetShipmentTrackingInfoResponse>
    <SetShipmentTrackingInfoResponse>
        <Ack>Success</Ack>
        <OrderID>1**********9-2*********1</OrderID>
        <OrderLineItemID>1**********9-2*********1</OrderLineItemID>
    </SetShipmentTrackingInfoResponse>
</BulkDataExchangeResponses>



Change History

Change Date Description
1145
2020-03-13
  • OrderID (doc change): Updated OrderID field description to state that beginning in April 2020, users will no longer be able to control whether returned order ID values for paid orders are in the old or new format, regardless of the WSDL version number and/or compatibility level. Previously, when the new order ID format was introduced in June 2019, the user could control whether they wanted to see the new or old order ID format in response payloads. Note that with the new order ID format, the unique identifier of an order will change as the order goes from unpaid to paid status. SetShipmentTrackingInfo will still accept order ID values for unpaid orders, but SetShipmentTrackingInfo is generally only used to provide shipment tracking information for paid orders since sellers should not ship orders until they have been paid for.
1113
2019-06-21
  • OrderID (modified): The new format of order identifier values was rolled out. Both the new and old order ID format will be accepted in request payloads to identify an eBay order. The format (old or new) that is returned in response payloads is dependent on the WSDL version and/or compatibility level. See the 1113 Release Notes for more details.
1107
2019-05-10
  • OrderID (modified): Starting in June 2019, eBay will start changing the format of order identifier values. The new format will be a non-parsable string, globally unique across all eBay marketplaces, and consistent for both single line item and multiple line item orders. To enable and use the new format, the user will need to use the 1107 WSDL (or newer as versions roll out) and set the compatibility level to 1113. There will be a nine-month transition period where the old format will still be supported.
0959
2016-03-11
  • Shipment.ShipmentLineItem (doc change): Previously, the documentation for this call erroneously indicated that Shipment.ShipmentLineItem was conditionally required in the request. In fact, the ShipmentLineItem container was and is part of ShipmentTrackingDetails, and the documentation now displays only Shipment.ShipmentTrackingDetails.ShipmentLineItem in the request prototype.
0809
2013-02-06
  • SetShipmentTrackingInfoRequest (doc change): For orders on the eBay India site, SetShipmentTrackingInfo cannot be used if the buyer uses PaisaPay as the payment method.
0727
2011-06-22
  • ShipmentTrackingNumber, ShippingCarrierUsed (modified): ShipmentTrackingNumber and ShippingCarrierUsed are no longer always required. These fields are now conditionally required. If you specify one, you must specify the other, but now they can both be omitted from the request.
0589
2008-11-29
  • (added) New call.