Track Delivery and Handle Order Outcomes

Learn how to track the delivery of an order and manage different situations.

Step 1. Retrieve Shipment and Tracking Details

Once Amazon creates a shipment, call getOrder to retrieve shipment details. Tracking information is found in the tracking object on each package.

Locate the tracking number at order.shipments[].packages[].tracking.carrier.trackingNumber. An order may have multiple packages; iterate through all entries in packages to collect them. If you subscribed to FULFILLMENT_ORDER_STATUS, the SHIPMENT_STATUS_CHANGED event provides the same tracking data.

Each shipment also includes amazonFacility.address with the address of the fulfillment center; retrieve this if you need the origin location for sales tax nexus determination. The address is available as soon as a shipment is created.

For packages that have reached DELIVERED status, check tracking.proofOfDelivery for proof of delivery. This field contains deliveryPhotoUrl, a time-limited URL for the delivery photo, and receivedBy, the name of the person who received the package. The location where the package was left is recorded in tracking.dropOffLocation. For more information, refer to Retrieve proof of delivery for a delivered package.

Step 2. Get Granular Tracking Events (optional)

Using the tracking number from Step 1, call the getShipmentTracking operation of the Tracking API to retrieve the complete carrier event history.

Step 3. Handle Order Outcomes

What you do next depends on the status of the order:

  • Order Complete: The status changes to COMPLETE. Confirm unfulfillableAmount is 0 for all line items.
  • Order Partially Fulfilled: The status changes to COMPLETE_PARTIAL. Check unfulfillableAmount on each line item to determine how many units were not shipped.
  • Cancel an Order: Call cancelOrder while the order is in the PROCESSING status.

⚠️

Important

You cannot cancel an order once it has shipped.


Did this page help you?