Amazon Warehousing and Distribution API Use Case Guide
How to work with Amazon Warehousing and Distribution (AWD) orders using the Amazon Warehousing and Distribution API.
API Version: 2024-05-09
What is the Amazon Warehousing and Distribution API?
You can use the Amazon Warehousing and Distribution (AWD) API to create and update inbound orders to ship inventory to AWD distribution centers, track inventory inside AWD distribution centers, and track shipments on the way to AWD distribution centers. For information about AWD API operations, data types, and schemas, refer to the Amazon Warehousing and Distribution API Reference.
Note
This API is available in the US marketplace.
Key features
- Create inbound orders: Verify AWD inbound eligibility and create inbound orders with a region preference.
- Update inbound orders: Update one or more individual attributes for an inbound order, such as the
packagesToInbound
,originAddress
, andpreferences
attributes. - Cancel inbound orders: Cancel an inbound order.
- List all inbound shipments: Retrieve all inbound shipments across orders with optional filters.
- Retrieve details about inbound shipments: Retrieve inbound shipments with optional filters and access shipment details with SKU-specific attributes.
- Retrieve inbound shipment labels: Retrieve box labels for confirmed inbound shipments.
- Update transport details: Update transport information for an AWD inbound shipment.
- Track AWD inventory: Return real-time information, such as expiration dates, about the inventory within an AWD distribution center and units that are reserved by a replenishment order. Return quantity information for units that are in transit to AWD or from AWD to a Fulfillment by Amazon (FBA) facility.
- Read interoperability: Access inbound orders that you create with Amazon's Send to Amazon Warehousing and Distribution UI.
To learn more about the terms that are used on this page, refer to Terminology.
AWD inbound shipment workflow
The following diagram shows the steps to ship inventory to an AWD distribution center. This is an illustrative example and does not include all of the optional operations.
Tutorial: Create an inbound order for shipment to AWD
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. For more information, refer to Authorizing Selling Partner API Applications.
- The Amazon Warehousing and Distribution role assigned to your developer profile.
- The Amazon Warehousing and Distribution role selected in the app registration page for your application.
Step 1a. (Optional) - Determine if the packages that you specify are eligible for an AWD inbound order
Call the checkInboundEligibility
operation.
Step 1. Create an AWD inbound order
Call the createInbound
operation and pass in the following parameters (Amazon creates a single shipment per order):
The packagesToInbound
must contain a list of packages that you want to inbound. ProductQuantity
must include the MSKU, quantity, and party that prepares or labels the item. The SKU limit for an inbound order is 150 unique SKUs.
Note
Each item that you ship must conform to Amazon's product packaging requirements. For more information, refer to Packaging and Prep Requirements in Seller Central Help. For more information about Amazon's product packaging requirements for your marketplace, refer to Seller Central URLs.
Note
Amazon does not support multiple expiration dates per SKU on a single inbound order. To send a SKU with multiple expiration dates to the AWD distribution center, you must create multiple inbound orders.
Step 2. Review the inbound order
To review the inbound order details and destination address, call the getInbound
operation.
Note
The inbound
ShipmentId
generates only upon confirmation of the inbound order.
Step 2b. Update the inbound order
The updateInbound
operation updates the draft AWD inbound order for the packages that you want to inbound. You can only update AWD inbound orders in DRAFT
status and that don't have seller confirmation.
Note
When you update an inbound order, the system re-evaluates the order details. This re-evaluation process might result in the assignment of a different destination address for the inbound shipment.
Call the updateInbound
operation.
Tip
After you update the inbound order, use the
getInbound
operation to review the inbound order details and confirm the destination address.
Step 3. Confirm the inbound order
With the confirmInbound
operation, you can confirm an AWD inbound order in DRAFT
status. This confirmation is a requirement for all transportation types and indicates that the order details are ready for further processing. After an order reaches CONFIRMED
status, it advances in the inbound workflow and the next steps in the inbound shipping process begin.
Step 4. Generate the box labels
Call the getInboundShipmentLabels
operation to request unique box labels for your inbound shipments. After you make the call, poll the system regularly to check for a GENERATED
labelStatus
. When the box labels are ready, affix each box label with its corresponding package in the shipment. The labels indicate the package contents and help the AWD distribution center process your shipment quickly and accurately.
Note
The labels that you generate are valid for 600 seconds and are in a compressed .zip file format.
Step 5. Update the tracking information
You must update the tracking information after you send shipments to AWD distribution centers with non-partnered carriers. The updateInboundShipmentTransportDetails
operation requires that you input the shipmentId
and transportation information.
For small parcel shipments, you can provide only one booking ID. Amazon uses the booking ID to track and manage incoming inventory.
Call the updateInboundShipmentTransportDetails
operation.
Tutorial: Retrieve a list of inbound shipments for a specific time
Learn how to get a list of AWD inbound orders for a specific date-time.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. For more information, refer to Authorizing Selling Partner API Applications.
- The Amazon Warehousing and Distribution role assigned to your developer profile.
- The Amazon Warehousing and Distribution role selected in the app registration page for your application.
Get a list of all inbound orders
Call the listInboundShipments
operation.
Tutorial: Retrieve and filter a list of inbound shipments
Learn how to use shipmentStatus
to filter the list of AWD inbound orders.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. For more information, refer to Authorizing Selling Partner API Applications.
- The Amazon Warehousing and Distribution role assigned to your developer profile.
- The Amazon Warehousing and Distribution role selected in the app registration page for your application.
Get a list of all inbound orders
Call the listInboundShipments
operation.
Tutorial: Track an inbound shipment with expected and received SKU details
Learn how to retrieve a particular AWD inbound shipment which contains items that are planned to be inbounded to a distribution center. For each SKU, you can also retrieve expiration dates and prep details.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. For more information, refer to Authorizing Selling Partner API Applications.
- The Amazon Warehousing and Distribution role assigned to your developer profile.
- The Amazon Warehousing and Distribution role selected in the app registration page for your application.
Get inbound shipment details based on a shipmentId
Call the getInboundShipment
operation.
Tutorial: Get all available inventory summaries with detail
Learn how to use the AWD Inventory API to return all the inventory summaries with detail.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. For more information, refer to Authorizing Selling Partner API Applications.
- The Amazon Warehousing and Distribution role assigned to your developer profile.
- The Amazon Warehousing and Distribution role selected in the app registration page for your application.
Get AWD inventory summaries
Call the listInventory
operation.
Tutorial: Get inventory summaries for the seller specified SKUs
Learn how to use the AWD Inventory API to return the inventory summaries for a particular SKU.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. For more information, refer to Authorizing Selling Partner API Applications.
- The Amazon Warehousing and Distribution role assigned to your developer profile.
- The Amazon Warehousing and Distribution role selected in the app registration page for your application.
Get AWD inventory summaries
Call the listInventory
operation.
Error codes and resolutions
Error code | Resolution guidance | Resolution example |
---|---|---|
EXPECTED_NON_NULL_LABEL_OWNER | Add labelOwner as AMAZON/SELF | prepDetails: {"prepCategory": "PERFORATED", "prepOwner": "AMAZON", "labelOwner": "SELF"} |
EXPECTED_NON_NULL_PREP_OWNER | Add prepOwner as AMAZON/SELF | prepDetails: {"prepCategory": "PERFORATED", "prepOwner": "AMAZON", "labelOwner": "SELF"} |
EXPECTED_SAME_PREP_LABEL_OWNERS | Add prepOwner and labelOwner with the same values | prepDetails: {"prepCategory": "PERFORATED", "prepOwner": "AMAZON", "labelOwner": "AMAZON"} |
EXPECTED_SELF_PREP_OWNER | Add prepOwner as SELF | prepDetails: {"prepCategory": "PERFORATED", "prepOwner": "SELF", "labelOwner": "AMAZON"} |
EXPECTED_AMAZON_PREP_OWNER | Add prepOwner as AMAZON | prepDetails: {"prepCategory": "PERFORATED", "prepOwner": "AMAZON", "labelOwner": "SELF"} |
EXPECTED_SELF_LABEL_OWNER | Add labelOwner as SELF | prepDetails: {"prepCategory": "PERFORATED", "prepOwner": "AMAZON", "labelOwner": "SELF"} |
EXPECTED_AMAZON_LABEL_OWNER | Add labelOwner as AMAZON | prepDetails: {"prepCategory": "PERFORATED", "prepOwner": "SELF", "labelOwner": "AMAZON"} |
EXPECTED_NULL_LABEL_OWNER | Exclude labelOwner | prepDetails: {"prepCategory": "PERFORATED", "prepOwner": "AMAZON"} |
EXPECTED_NULL_PREP_OWNER | Exclude prepOwner | prepDetails: {"prepCategory": "PERFORATED", "labelOwner": "AMAZON"} |
Updated 1 day ago