We are using the Amazon Merchant Fulfillment shipping API. We have been shipping with it for a few weeks now. Today we tried cancelling a shipment, since the shipping label printer was out of labels. We cancelled the shipment (using the CancelShipment API) and were able to create a new shipment with CreateShipment.
I wanted to test the cancel shipment functionality a bit more so supplied the same order id and the same tracking id I used to initially used to cancel it - fully expecting it to fail. It didn’t fail but actually cancelled the new shipment, with a different tracking id from the one I specified!
So two questions.
Is there any way to uncancel this shipment cancelation?
How do I make sure CancelShipment cancels the shipment I specify?
Thanks.
No there isn’t. However the cancellation isn’t really cancelling and voiding the label. If you read the actual cancellation request made from Amazon to the Carrier it says that you agree not to use the label and therefore the Carrier will then refund Amazon the amount (in seller central it says refund may take up to 30 days or something like that). So if anything you should just cancel the new one and then the Carrier will refund the new one and the last one still ships. Also for future reference you shouldn’t cancel labels unless you are actually changing the shipment. I would recommend to use the GetShipment function if a label is unusable but the shipment is still correct. Also the cancelShipment doesn’t take order information it takes in a shipment id to cancel so you must have some code that is retrieving the shipment id by order information which is why you did not get the error you were expecting and instead ended up cancelling the wrong shipment.