Fulfillment Inbound API v2024-03-20 Code Samples
Code samples to aid with integration to the Fulfillment Inbound API v 2024-03-20.
Learn how to integrate Amazon's Fulfillment Inbound API with the Send-to-Amazon (STA) interface on Seller Central. This guide includes essential workflow steps, Postman collections, sample code, and insights for managing Fulfillment By Amazon (FBA) shipments across various workflows.
Use cases supported
The Fulfillment Inbound v2024 API supports several ways to create shipments:
- Small Parcel Delivery (SPD) with an Amazon-partnered carrier (PCP): Sellers can create inbound shipments using Amazon's partnered carriers for small parcel deliveries (that is, individual boxes).
- Small Parcel Delivery (SPD) with a non-partnered carrier (nPCP): Sellers can use non-partnered carriers (that is, their own transportation carriers) for small parcel deliveries. Sellers can choose their preferred shipping carriers and still have access to the benefits of FBA.
- Pallets (LTL/FTL) with an Amazon-partnered carrier (PCP): For larger shipments, sellers can create pallet deliveries using Amazon's partnered carriers. This method is ideal for bulk shipments that require less-than-truckload (LTL) or full-truckload (FTL) services.
- Pallets (LTL/FTL) with non-partnered carriers (nPCP): Sellers have greater control over the logistics of larger shipments by using their own non-partnered carriers.
- Pallet deliveries with the Pack Later option: Sellers can create pallet deliveries even when carton or box packing information isn’t provided upfront. This “Pack Later” flexibility enables sellers to finalize packing details later.
- Retrieve inbound plan details: Sellers can retrieve detailed information about their inbound plans through GET operations, which allows them to track and manage their shipments.
Postman collections
To help test operations, you can use Postman collections. These Postman collections include requests and responses that you can use to experiment with various endpoints and functionalities.
- Small Parcel Delivery (SPD) with an Amazon-partnered carrier (PCP)
- Small Parcel Delivery (SPD) with a non-partnered carrier (nPCP)
- Pallets (LTL/FTL) with an Amazon-partnered carrier (PCP)
- Pallets (LTL/FTL) with non-partnered carriers (nPCP)
- Pallet deliveries with the Pack Later option
- Retrieve inbound plan details
Sample code application
The Fulfillment Inbound Sample Solution Code App includes detailed code samples and all the necessary resources to deploy a fully functional SP-API application that uses the Fulfillment Inbound API v2024-03-20. You can adjust the code to fit your specific requirements.
For guidance on use cases 1-4, refer to the following tutorials. Before you follow these tutorials, complete the necessary setup and pre-requisites outlined in the use case guide to access the Fulfillment Inbound API.
Tutorial 1: Inbound shipments with an Amazon-partnered carrier (PCP)
Learn how to inbound Small Parcel Deliveries (SPD) or pallets (LTL/FTL) with an Amazon-partnered transportation carrier using the Fulfillment Inbound API.
Step 1. Create an inbound plan
Operation
Parameters
destinationMarketplaces
: Target marketplaces for shipment.sourceAddress
: Address from which items are shipped.items
:prepOwner
: Preparation owner.labelOwner
: Labeling owner.msku
: Merchant SKU.itemQuantity
: Quantity of items.
Response
- Includes
inboundPlanId
andoperationId
to check the status of inbound plan creation.
Note
POST operations are asynchronous. Check the status of a POST operation by passing its
operationId
togetInboundOperationStatus
.
Step 2. Generate packing options
Operation
Parameters
inboundPlanId
: Use the inbound plan ID created in Step 1.
Response
operationId
: An ID that you can use to check the status of packing options generation.
Step 3. List packing options
Operation
Parameters
inboundPlanId
: Input the inbound plan ID.
Response
- Includes available
packingOptions
. Each packing option is represented by apackingOptionId
. - Each packing option contains one or more
packingGroups
, identified bypackingGroupId
. Each packing group includes a list of SKUs that should be packed together.
To view the SKU items in a packing group, call listPackingGroupItems
with the packing group's packingGroupId
.
Note
Choose only one packing option (
packingOptionId
).
Response example
{
"packingOptions": [
{
"packingGroups": [
"pg1xxxxxxxxxxxxxxxxxxx",
"pg2yyyyyyyyyyyyyyyyyyy"
],
"fees": [x],
"discounts": [x],
"packingOptionId": "poxxxxxxxxxxxxxxxxxxxx",
"supportedShippingConfigurations": [x],
"status": "xxxxxx"
}
],
"pagination": {}
}
Step 4. Confirm packing option
Operation
Parameters
inboundPlanId
: The ID of the inbound plan.packingOptionId
: The chosen packing option ID. You can only confirm one option per inbound plan.
Response
operationId
: An ID that you can use to check the status of the packing confirmation.
Step 5. Set packing information
Operation
Parameters
inboundPlanId
: ID of the inbound plan.packingGroupId
: ID for each packing group within the chosen packing option.boxes
: Includes box contents source, box dimensions (weight and quantity), items with prep info, and item quantities matching the inbound plan.
Response
operationId
: An ID that you can use to check the status of the API call.
Request example
{
"packageGroupings": [
{
"boxes": [
{
"contentInformationSource": "BOX_CONTENT_PROVIDED",
"dimensions": {
"height": 10,
"length": 10,
"unitOfMeasurement": "IN",
"width": 10
},
"quantity": 1,
"weight": {
"unit": "LB",
"value": 2
},
"items": [
{
"labelOwner": "AMAZON",
"msku": "SKU12345",
"prepOwner": "AMAZON",
"quantity": 1
}
]
}
],
"packingGroupId": "pg1xxxxxxxxxxxxxxxxxxx"
},
{
"boxes": [
{
"contentInformationSource": "BOX_CONTENT_PROVIDED",
"dimensions": {
"height": 10,
"length": 10,
"unitOfMeasurement": "IN",
"width": 10
},
"quantity": 1,
"weight": {
"unit": "LB",
"value": 1
},
"items": [
{
"labelOwner": "SELLER",
"msku": "SKU67890",
"prepOwner": "SELLER",
"quantity": 1
}
]
}
],
"packingGroupId": "pg2yyyyyyyyyyyyyyyyyyy"
}
]
}
Step 6. Generate placement options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.
Response
operationId
: An ID that you can use to check the status of placement options generation.
Step 7. List placement options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.
Response
- Includes available
placementOptions
, each represented by aplacementOptionId
. - Each
placementOptionId
includes one or moreshipmentIds
and details on fees or discounts.
Note
Choose only one placement option (
placementOptionId
).
Response example
"placementOptions": [
{
"fees": [
{
"description": "Placement service fee represents service to inbound with minimal shipment splits and destinations of skus",
"type": "FEE",
"value": {
"amount": 1.10,
"code": "USD"
},
"target": "Placement Services"
}
],
"shipmentIds": [
"shxxxxxxxxxxxxxxx",
"shxxxxxxxxxxxxxxx"
],
"discounts": [],
"expiration": "yyyy-mm-ddT00:00:00.00Z",
"placementOptionId": "plxxxxxxxxxxxxxxx",
"status": "OFFERED"
}
]
The following code sample demonstrates how to choose the least expensive placementOption
. Customize this code to fit your own selection criteria.
Step 8. Generate transportation options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.placementOptionId
: The chosen placement option ID.shipmentTransportationConfigurations
: Configuration details including:shipmentId
: Each shipment ID within the chosen placement option. Include all shipment IDs within the selected placement option.readyToShipWindow
: Start date for when shipments are ready for delivery.freightInformation
(only if you want to ship pallets): The declared value and freight class.pallets
(only if you want to ship pallets): Information about the pallets being shipped, including quantity, dimensions, weight, and stackability.
Response
- Includes an
operationId
that you can use to check the status of transportation options generation.
Request example for small parcel delivery
{
"placementOptionId": "plxxxxxxxxxxxxxxxxxxxx",
"shipmentTransportationConfigurations": [
{
"readyToShipWindow": {
"start": "yyyy-mm-ddT00:00:00Z"
},
"shipmentId": "sh1xxxxxxxxxxxxxxx"
},
{
"readyToShipWindow": {
"start": "yyyy-mm-T00:00:00Z"
},
"shipmentId": "sh2xxxxxxxxxxxxxx"
}
]
}
Request example for pallet (LTL/FTL) delivery
{
"placementOptionId": "plxxxxxxxxxxxxxxxxxxxx",
"shipmentTransportationConfigurations": [
{
"readyToShipWindow": {
"start": "yyyy-mm-ddT00:00:00Z"
},
"shipmentId": "shxxxxxxxxxxxxxxxx",
"freightInformation": {
"declaredValue": {
"amount": 200,
"code": "USD"
},
"freightClass": "FC_XX"
},
"pallets": [
{
"quantity": 1,
"dimensions": {
"height": 48,
"length": 48,
"unitOfMeasurement": "IN",
"width": 40
},
"stackability": "STACKABLE",
"weight": {
"unit": "LB",
"value": 600
}
}
]
}
]
}
Step 7. List transportation options
Operation
Parameters
inboundPlanId
: The ID of the inbound plan.placementOptionId
: The ID of the chosen placement option.
Response
- Includes different available
transportationOptions
, each represented bytransportationOptionId
pershipmentId
. Each transportation option contains details about:carrier
: Identifies the carrier.shippingMode
: Identifies the shipment type (for example, Small Parcel Delivery or pallets).shippingSolution
: Identifies whether the carrier is Amazon Partnered or your own transportation carrier.preconditions
: Conditions that must be met to provide the delivery window. Only applicable to your own carrier options.
Note
If you have multiple
shipmentIds
fromlistPlacementOptions
, choose atransportationOptionId
for eachshipmentId
.
To ship using the Amazon Partnered Carrier in this tutorial, you must select the transportationOption
based on your shipment type:
- For small parcel deliveries, choose the option where
shippingMode
isGROUND_SMALL_PARCEL
. - For pallet shipments, choose the option where
shippingMode
isFREIGHT_LTL
.
In both cases, ensure that shippingSolution
is AMAZON_PARTNERED_CARRIER
.
Response example for small parcel delivery
"transportationOptions": [
{
"carrier": {
"name": "United States Postal Service",
"alphaCode": "USPS"
},
"preconditions": [
"CONFIRMED_DELIVERY_WINDOW"
],
"shipmentId": "shxxxxxxxxxxxxxx",
"shippingMode": "GROUND_SMALL_PARCEL",
"transportationOptionId": "toxxxxxxxxxxxxxx",
"shippingSolution": "USE_YOUR_OWN_CARRIER"
},
{
"carrier": {
"name": "UPS",
"alphaCode": "UPSN"
},
"quote": {
"cost": {
"amount": 19.6,
"code": "USD"
}
},
"preconditions": [],
"shipmentId": "shxxxxxxxxxxxxxx",
"shippingMode": "GROUND_SMALL_PARCEL",
"transportationOptionId": "toxxxxxxxxxxxxxx",
"shippingSolution": "AMAZON_PARTNERED_CARRIER"
}
]
Response example for pallet delivery
{
"carrier": {
"name": "XXXXX",
"alphaCode": "ABCD"
},
"carrierAppointment": {
"startTime": "2024-10-11T00:00Z",
"endTime": "2024-10-11T23:59Z"
},
"quote": {
"cost": {
"amount": 326.54,
"code": "USD"
},
"expiration": "2024-10-09T22:40Z"
},
"preconditions": [],
"shipmentId": "shxxxxxxxxxxxxxx",
"shippingMode": "FREIGHT_LTL",
"transportationOptionId": "toxxxxxxxxxxxxxx",
"shippingSolution": "AMAZON_PARTNERED_CARRIER"
}
Step 8. Get shipment
Operation
Parameters
inboundPlanId
: ID of the inbound plan.shipmentId
: ID of the shipment for which to retrieve details.
Response
- Includes the source address from which the shipment originates.
- Includes the destination warehouse address for the shipment.
- Includes the current status of the shipment.
Note
If you are not satisfied with the chosen options, you can regenerate and select another placement option or transportation option before final confirmation.
Step 9. Confirm placement option
Operation
Parameters
inboundPlanId
: ID of the inbound plan.placementOptionId
: The chosen placement option ID to confirm.
Response
operationId
: An ID that you can use to check the status of the placement confirmation.
Note
You can only confirm one placement option per inbound plan.
Step 10. Confirm transportation options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.transportationSelections
: A list of selected transportation options for each shipment, including:shipmentId
: The ID of the shipment.transportationOptionId
: The chosen transportation option ID for that shipment.
Response
operationId
: An ID that you can use to check the status of the transportation confirmation.
Important considerations
If your inbound plan includes multiple shipments:
- For small parcel deliveries, ensure that all shipments use the same carrier.
- For pallet deliveries, you can choose different carriers for each shipment.
Sample request
{
"transportationSelections": [
{
"shipmentId": "sh1xxxxxxxxxxxxxxxxxxx",
"transportationOptionId": "to1xxxxxxxxxxxxxxxxxxx"
},
{
"shipmentId": "sh2xxxxxxxxxxxxxxxxxxx",
"transportationOptionId": "to2xxxxxxxxxxxxxxxxxxx"
}
]
}
Step 11. Get shipment
Operation
Parameters
inboundPlanId
: ID of the inbound plan.shipmentId
: ID of the shipment.
Response
- Includes the following details of shipment:
sourceAddress
: The origin address of the shipment.destinationWarehouseAddress
: The address of the destination warehouse.amazonReferenceId
: Amazon's reference ID for the shipment.selectedTransportationOptionId
: The chosen transportation option ID.placementOptionId
: The ID of the chosen placement option.shipmentConfirmationId
: The ID confirming the shipment.trackingDetails
: Information regarding the shipment tracking.status
: The current status of the shipment.
Note
If your inbound plan includes multiple shipment IDs, call
getShipment
for each shipment ID.
Step 12. Get labels
Operation
Parameters
shipmentConfirmationId
: The ID that confirms the shipment, retrieved from thegetShipment
response.PageType
: Specifies the type of page for the labels.LabelType
: Specifies the type of label to retrieve.
For Pallet Shipments:
NumberOfPallets
: The total number of pallets included in the shipment.PageSize
: The size of the label pages to retrieve.
Response
- Includes a URL that you can use to download the labels associated with each shipment ID within your inbound plan.
Note
Call
getLabels
for each shipment ID and provide the necessary parameters based on whether the shipment is a small parcel delivery or involves pallets.
[Only for Pallet Shipments] Step 13. Get bill of lading
Operation
Parameters
shipmentConfirmationId
: The ID that confirms the shipment, retrieved fromgetShipment
response.
Response
- Includes a URL that you can use to download the bill of lading associated with the Less Than Truckload (LTL) or Full Truckload (FTL) pallet shipment.
This process completes the creation of your inbound plan, and sends your SKUs as either individual boxes (small parcel delivery) or pallets (LTL/FTL) using the Amazon Partnered Carrier. You can verify this inbound plan through the Seller Central Send to Amazon UI.
Tutorial 2: Inbound shipments with a non-partnered carrier
Learn how to inbound Small Parcel Deliveries (SPD) or pallets (LTL/FTL) with a non-partnered carrier using the Fulfillment Inbound API.
There are Postman collections for Amazon Partnered Small Parcel or Pallet Shipment Deliveries:
- Small Parcel Delivery (SPD) with a non-partnered carrier
- Pallets (LTL/FTL) with a non-partnered carrier
As a supplement to this guide, the FBA Inbound Sample Solution Code App provides all required resources to deploy a fully functional SP-API application that implements the new Fulfillment Inbound API v2024-03-20.
Step 1. Create an inbound plan
Operation
Parameters
destinationMarketplaces
: List of marketplaces where the items are sent.sourceAddress
: The address from which the items are shipped.items
: A list of items to include in the inbound plan. Each item should have the following attributes:prepOwner
: The one responsible for prepping the item.labelOwner
: The one responsible for the labeling process.msku
: The Merchant Stock Keeping Unit (SKU) for the item.quantity
: The quantity of items to ship.
Response
operationId
: An ID that you can use to check the status of the inbound plan creation.inboundPlanId
: An ID that uniquely identifies the inbound plan.
Note
POST operations are asynchronous. Check the status of a POST operation by passing its
operationId
togetInboundOperationStatus
.
Step 2. Generate packing options
Operation
Parameters
inboundPlanId
: Use the inbound plan ID created in Step 1.
Response
operationId
: An ID that you can use to check the status of packing options generation.
Step 3. List packing options
Operation
Parameters
inboundPlanId
: The inbound plan ID.
Response
- Includes available
packingOptions
. EachpackingOption
has apackingOptionId
. - Each packing option contains one or more
packingGroups
, identified bypackingGroupId
. Each packing group includes a list of SKUs that should be packed together.
To view SKU items per packingGroupId
, call listPackingGroupItems
.
Note
Choose only one packing option (
packingOptionId
).
Response example
{
"packingOptions": [
{
"packingGroups": [
"pgxxxxxxxxxxxxxxxxxxxx"
],
"fees": [x],
"discounts": [x],
"packingOptionId": "poxxxxxxxxxxxxxxxxxxxx",
"supportedShippingConfigurations": [x],
"status": "xxxxxx"
}
],
"pagination": {}
}
Step 4. Confirm packing option
Operation
Parameters
inboundPlanId
: The ID of the inbound plan.packingOptionId
: The chosen packing option ID. You can only confirm one option per inbound plan.
Response
operationId
: An ID that you can use to check the status of the packing confirmation.
Step 5. Set packing information
Operation
Parameters
inboundPlanId
: ID of the inbound plan.packingGroupId
: ID for each packing group within the chosen packing option.boxes
: Includes box contents source, box dimensions (weight and quantity), items with prep info, and item quantities that match the inbound plan.
Response
operationId
: An ID that you can use to check the status of the API call.
Step 6. Generate placement options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.
Response
operationId
: An ID that you can use to check the status of placement options generation.
Step 7. List placement options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.
Response
- Includes available
placementOptions
, each represented by aplacementOptionId
. - Each
placementOptionId
includes one or moreshipmentIds
and details on fees or discounts.
Note
Choose only one placement option (
placementOptionId
).
Response example
"placementOptions": [
{
"fees": [
{
"description": "Placement service fee represents service to inbound with minimal shipment splits and destinations of skus",
"type": "FEE",
"value": {
"amount": 1.10,
"code": "USD"
},
"target": "Placement Services"
}
],
"shipmentIds": [
"shxxxxxxxxxxxxxxx"
],
"discounts": [],
"expiration": "yyyy-mm-ddT00:00:00.00Z",
"placementOptionId": "plxxxxxxxxxxxxxxx",
"status": "OFFERED"
}
]
The following code sample shows how to calculate and choose the least expensive placementOption
. You can modify the code to have your own selection criteria.
Step 8. Generate transportation options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.placementOptionId
: Chosen placement option ID.shipmentTransportationConfigurations
: Configuration details, which include:shipmentId
: Each shipment ID within the chosen placement option. Include all shipment IDs within the selected placement option.readyToShipWindow
: Start date for when shipments are ready for delivery.freightInformation
(only if you want to ship pallets): Declared value and freight class.pallets
(only if you want to ship pallets): Information about the shipped pallets, including quantity, dimensions, weight, and stackability.
Response
operationId
: An ID that you can use to check the status of transportation options generation.
Request example for small parcel delivery
{
"placementOptionId": "plxxxxxxxxxxxxxxxxxxxx",
"shipmentTransportationConfigurations": [
{
"readyToShipWindow": {
"start": "yyyy-mm-ddT00:00:00Z"
},
"shipmentId": "shxxxxxxxxxxxxxxxxxxxx",
"contactInformation": {
"name": "xxxxxxxx",
"phoneNumber": "1234567890",
"email": "[email protected]"
}
}
]
}
Request example for pallet delivery
{
"placementOptionId": "plxxxxxxxxxxxxxxxxxxxx",
"shipmentTransportationConfigurations": [
{
"readyToShipWindow": {
"start": "yyyy-mm-ddT00:00:00Z"
},
"shipmentId": "shxxxxxxxxxxxxxxxx",
"contactInformation": {
"name": "TestName",
"phoneNumber": "1234567890",
"email": "[email protected]"
},
"freightInformation": {
"declaredValue": {
"amount": 200,
"code": "USD"
},
"freightClass": "FC_XX"
},
"pallets": [
{
"quantity": 1,
"dimensions": {
"height": 48,
"length": 48,
"unitOfMeasurement": "IN",
"width": 40
},
"stackability": "STACKABLE",
"weight": {
"unit": "LB",
"value": 600
}
}
]
}
]
}
Step 9. List transportation options
Operation
Parameters
inboundPlanId
: The ID of the inbound plan.placementOptionId
: The ID of the chosen placement option.
Response
- Includes different available
transportationOptions
, each represented bytransportationOptionId
pershipmentId
. Each transportation option contains details about:carrier
: The carrier.shippingMode
: The shipment type (for example, Small Parcel Delivery vs. pallets).shippingSolution
: The shipping solution. Identifies whether the carrier is Amazon Partnered or your own transportation carrier.preconditions
: Conditions that must be met to provide the delivery window. Only applicable to your own carrier options.
Note
If you have multiple
shipmentIds
fromlistPlacementOptions
, choose atransportationOptionId
for eachshipmentId
.
To ship using a non-partnered carrier, you must select the transportationOption
based on your shipment type:
- For small parcel deliveries, choose the option where
shippingMode
isGROUND_SMALL_PARCEL
. - For pallet shipments, choose the option where
shippingMode
isFREIGHT_LTL
. - In both cases, ensure that
shippingSolution
isUSE_YOUR_OWN_CARRIER
. preconditions
lists the requirements for confirming the delivery windows. You must generate, list, and confirm a delivery window for each shipment that you send using your own carrier. Follow the tutorial for detailed steps.
Response example for small parcel delivery
"transportationOptions": [
{
"carrier": {
"name": "United States Postal Service",
"alphaCode": "USPS"
},
"preconditions": [
"CONFIRMED_DELIVERY_WINDOW"
],
"shipmentId": "shxxxxxxxxxxxxxx",
"shippingMode": "GROUND_SMALL_PARCEL",
"transportationOptionId": "toxxxxxxxxxxxxxx",
"shippingSolution": "USE_YOUR_OWN_CARRIER"
},
{
"carrier": {
"name": "UPS",
"alphaCode": "UPSN"
},
"quote": {
"cost": {
"amount": 19.6,
"code": "USD"
}
},
"preconditions": [],
"shipmentId": "shxxxxxxxxxxxxxx",
"shippingMode": "GROUND_SMALL_PARCEL",
"transportationOptionId": "toxxxxxxxxxxxxxx",
"shippingSolution": "AMAZON_PARTNERED_CARRIER"
}
]
Response example for pallet delivery
{
"carrier": {
"name": "XXXX",
"alphaCode": "ABCD"
},
"preconditions": [
"CONFIRMED_DELIVERY_WINDOW"
],
"shipmentId": "shxxxxxxxxxxxxxx",
"shippingMode": "FREIGHT_LTL",
"transportationOptionId": "toxxxxxxxxxxxxxx",
"shippingSolution": "USE_YOUR_OWN_CARRIER"
}
Step 10. Generate delivery window options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.shipmentId
: ID of the specific shipment for which to generate delivery windows.
Response
operationId
: An ID that you can use to check the status of the delivery window options generation.
Note
You must generate delivery windows for all
shipmentId
s within the inbound plan.
Step 11. List Delivery Window Options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.shipmentId
: ID of the specific shipment for which to retrieve delivery window options.
Response
- Includes a list of available
deliveryWindowOptions
, each represented by adeliveryWindowOptionId
. - Each option includes
startDate
andendDate
that indicate the time frame during which the shipment must arrive.
Note
You must schedule your shipment delivery within 45 days for domestic shipments and 75 days for international shipments. These time frames are reflected in the available delivery window options
endDate
. For non-partnered carriers, sellers must specify a delivery window of 7 days for domestic shipments or 14 days for international shipments.
Response example
{
"deliveryWindowOptions": [
{
"availabilityType": "AVAILABLE",
"endDate": "yyyy-mm-ddT00:00Z",
"validUntil": "yyyy-mm-ddT00:00Z",
"deliveryWindowOptionId": "dwxxxxxxxxxxxxxxxxxxxx",
"startDate": "yyyy-mm-ddT00:00Z"
}
]
}
The following code sample shows how to choose the delivery window option with the latest endDate
. You can modify the code to have your own selection criteria.
Step 12. Get shipment
Operation
Parameters
inboundPlanId
: ID of the inbound plan.shipmentId
: ID of the specific shipment for which to retrieve details.
Response
- Includes the details related to the contents of the specified shipment, including:
- Source address: The address from which the shipment originates.
- Destination warehouse address: The address of the chosen destination warehouse.
- Status: The current status of the shipment.
Note
Before you confirm the placement and transportation options, call
getShipment
for eachshipmentId
to ensure all details are satisfactory. If you are not satisfied with your chosen options, you have the option to re-generate and select another placement option or transportation option.
Step 13. Confirm placement option
Operation
Parameters
inboundPlanId
: ID of the inbound plan.placementOptionId
: The chosen placement option ID to confirm.
Response
operationId
: An ID that you can use to check the status of the placement confirmation.
Note
You can only confirm one placement option per inbound plan.
Step 14. Confirm delivery window options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.shipmentId
: ID of the specific shipment for which the delivery window option is being confirmed.deliveryWindowOptionId
: ID of the chosen delivery window option.
Response
operationId
: An ID that you can use to check the status of the delivery window confirmation.
Note
You must confirm delivery windows for every
shipmentId
in the inbound plan. You can only confirm one delivery window option per shipment for the inbound plan.
Step 15. Confirm transportation options
Operation
Parameters
inboundPlanId
: ID of the inbound plan.transportationSelections
: A list of selected transportation options for each shipment, including:shipmentId
: The ID of the shipment.transportationOptionId
: The chosen transportation option ID for that shipment.
Response
operationId
: An ID that you can use to check the status of the transportation confirmation.
Request example
{
"transportationSelections": [
{
"shipmentId": "shxxxxxxxxxxxxxxxxxxxx",
"transportationOptionId": "toxxxxxxxxxxxxxxxxxxxx"
}
]
}
Step 16. Get shipment
Operation
Parameters
inboundPlanId
: ID of the inbound plan.shipmentId
: The ID of the shipment.
Response
- Includes the details of shipment, including:
sourceAddress
: The origin address of the shipment.destinationWarehouseAddress
: The address of the destination warehouse.amazonReferenceId
: Amazon's reference ID for the shipment.selectedTransportationOptionId
: The chosen transportation option ID.placementOptionId
: The ID of the chosen placement option.shipmentConfirmationId
: The ID that confirms the shipment.trackingDetails
: Information regarding the shipment tracking.status
: The current status of the shipment.
Note
If your inbound plan includes multiple shipment IDs, call getShipment for each shipment ID.
Step 17. Get labels
Operation
Parameters
shipmentConfirmationId
: The ID confirming the shipment, retrieved from thegetShipment
response.PageType
: Specifies the type of page for the labels.LabelType
: Specifies the type of label to retrieve.
For Pallet Shipments:
NumberOfPallets
: The total number of pallets included in the shipment.PageSize
: Specifies the size of the label pages to retrieve.
Response
- Includes a URL that you can use to download the labels associated with each shipment ID within your inbound plan.
Note
Call
getLabels
for each shipment ID and provide the necessary parameters based on whether the shipment is a small parcel delivery or involves pallets.
Step 18. List inbound plan boxes
Operation
Parameters
inboundPlanId
: ID of the inbound plan.
Response
- Includes a list of box package-level information for the specified inbound plan, including box-level information including box IDs, package IDs, box weights, quantities, dimensions, items etc.
Step 19. [Only for pallet shipments] List inbound plan pallets
Call listInboundPlanPallets
to retrieve the list of pallet packages per inbound plan. Input should include the inboundPlanId
and the response includes all the pallet level information including packageId, dimensions, stackability, etc.
Operation
Parameters
inboundPlanId
: ID of the inbound plan.
Response
- Includes a list of pallet package information for the specified inbound plan, including the package ID, dimensions, stackability, etc.
Step 20. Update shipment tracking details
Operation
Parameters
inboundPlanId
: ID of the inbound plan.shipmentId
: ID of the shipment.trackingDetails
: Details for updating tracking information based on shipment type.- For Small Parcel Delivery (SPD):
spdTrackingItems
: A list that includes:boxId
: The unique identifier for each box obtained from thelistInboundPlanBoxes
API.trackingId
: The tracking ID provided by your carrier for each box.- You must update the tracking IDs for all of the boxes within your inbound plan.
- For pallet (LTL/FTL) delivery:
ltlTrackingDetail
: Details that include thefreightBillNumber
that your carrier provides for the pallet shipment.
- For Small Parcel Delivery (SPD):
Response
operationId
: An ID that you can use to check the status of the tracking details update.
Request example for small parcel delivery
{
"trackingDetails": {
"spdTrackingDetail": {
"spdTrackingItems": [
{
"boxId": "FBAxxxxxxxxxxxxxxx",
"trackingId": "{{trackingId}}"
}
]
}
}
}
Request example for pallet delivery
{
"trackingDetails": {
"ltlTrackingDetail": {
"freightBillNumber": [
"{{freightBillNumber}}"
]
}
}
}
This tutorial creates an inbound plan and sends your SKUs as individual boxes (small parcel delivery) or pallets (LTL/FTL) using your own transportation carrier. You can verify this inbound plan on Seller Central with Send to Amazon.
Updated 3 days ago