Find the answer to your question
Why does CompleteSale not set my shipment tracking number?
I am uploading tracking number for my transactions via CompleteSale. As you can see the call succeeds and the transaction gets marked as Shipped but the tracking number is not getting uploaded.
The ShipmentTrackingDetails container was added to the schema during version 635. Since in the above example you are passing 603 as the version number, your request is getting validated against the 603 schema and the tracking number is getting ignored. Please make your request with version 635 or higher and that should resolve your issue.
Sometimes calling GetItemTransactions or GetSellerTransactions does not return any ShipmentTrackingDetails (ShipmentTrackingNumber, ShippingCarrierUsed) even though a successful call to CompleteSale was made before that included this information.
The reason why this has happened can be found in the CompleteSale Change History:
Shipment (modified): The ShippingCarrierUsed and ShipmentTrackingNumber elements have been combined and moved into the new ShipmentTrackingDetails container, which is returned as a node within the Shipment container. ShipmentTrackingDetails is a repeatable container, allowing you to list details for multiple packages shipped for a single item purchased by a buyer. With this refinement, ShippingCarrierUsed and ShipmentTrackingNumber are no longer returned as individual child elements of Shipment.
This change occured with any version newer than 635. Thus, the solution is to set X-EBAY-API-COMPATIBILITY-LEVEL to 635 or higher.
Sample Request :
<?xml version="1.0" encoding="utf-8"?>