Process a Shipment

Learn how to process a shipment

Learn how to process a shipment.

🚧

Important

Before you process the shipment, you must retrieve the shipment using the getShipments or getShipment operation.

Prerequisites

To complete this tutorial, you need:

Overview

The workflow for processing a shipment is as follows:

Step 1. Call processShipment to acknowledge or cancel the shipment
END. Shipment canceled.
Step 2. Call createPackages to create packages for the shipment
Step 3. Call retrieveShippingOptions to get shipping options
Optional: call updatePackage ↩ Step 3
Step 4. Call generateInvoice to generate and retrieve the shipment's invoice. Not applicable to Easy Ship, except in the India marketplace
Optional: call updatePackage ↩ Step 3
Step 5. Call generateShipLabels to generate shipping labels
Optional: call retrieveInvoice
Optional: call updatePackage ↩ Step 3
Step 6. Call updatePackageStatus to mark the shipment as SHIPPED (optional for Seller Flex and Easy Ship), OUT_FOR_DELIVERY, or DELIVERED (for the Self Delivery program)

Step 1. Acknowledge the shipment

Call the processShipment operation with the shipmentId of the shipment you want to process. Set the operation query parameter to CONFIRM to confirm the shipment.

Step 2. Create packages for the shipment

Call the createPackages operation with the shipmentId of the shipment you want to process and the list of packages in the shipment.

Step 3. Get shipping options for the shipment

Call the retrieveShippingOptions operation with the shipmentId of the shipment and packageId of the package to receive a list of shipping options for the package for the seller to choose. The response to this operation is null for the Seller Flex channel.

Step 4. Generate the shipment's invoice

Call the generateInvoice operation to generate the invoice for the shipment. This operation returns as encoded Base64 text that you can decode and convert to PDF to print.

This operation is not supported for the Easy Ship channel, except in the India marketplace.

Step 5. Generate shipping labels

Call the generateShipLabels operation with the operation query parameter set to GENERATE to generate shipping labels for the shipment. To retrieve the same shipping labels again, call generateShipLabels again and set operation to GENERATE.

The following are the supported label formats:

  • Seller Flex: Either PNG/ZPL (Single Piece Shipments) or Only ZPL (Multi Piece Shipments)
  • Easy Ship: Only PNG
  • Self Ship: Only PNG

📘

Note

Ensure that you URL-encode shippingOptionsId before you pass it to the generateShipLabels operation.

Optionally, call retrieveInvoice. This optional step is not applicable to Easy Ship, except in the India marketplace.

Update the package [optional]

If you need to update package information after you call createPackages, call the updatePackage operation with the shipmentId and packageId of the package, and supply updated package information in the body of the request.

Step 6. Update the package status (not required for Seller Flex and Easy Ship programs World Wide)

Call the updatePackageStatus operation and set the status, subStatus, and reason values to the appropriate value in the following table.

S. No.statussubStatusreasonState
1SHIPPEDOUT_FOR_DELIVERYOutForDeliveryNon terminal
2DELIVEREDDELIVEREDDeliveredToCustomerTerminal
3DELIVEREDDELIVEREDDeliveredToHouseholdMemberTerminal
4DELIVEREDDELIVEREDDeliveredToReceptionTerminal
5DELIVEREDDELIVEREDDeliveredToSecurityGuardTerminal
6SHIPPEDNOT_DELIVEREDCustomerNotAvailableNon terminal
7SHIPPEDNOT_DELIVEREDMissedDeliveryNon terminal
8SHIPPEDNOT_DELIVEREDCustomerContactIssueNon terminal
9SHIPPEDUNDELIVERABLERejectedByCustomerTerminal
10SHIPPEDUNDELIVERABLERejectedOrderDamagedTerminal

📘

Note

This step is not required for the Seller Flex and Easy Ship programs worldwide. Amazon automatically updates the status to SHIPPED and DELIVERED based on the logistics updates during pickup and delivery. If the selling partner also marks the order as shipped, they receive a duplicate request exception if the order was already scanned by the delivery associate.

For the Self Delivery Program, you must mark the order as OUT_FOR_DELIVERY and DELIVERED on the same calendar day. If the delivery is attempted on any other day, mark it as OUT_FOR_DELIVERY again.