Tutorial: Create a shipment with an Amazon-partnered carrier (PCP)
Inbound small parcel deliveries or pallets with Amazon-partnered carriers
Learn how to inbound Small Parcel Deliveries (SPD) or pallets (LTL/FTL) with an Amazon-partnered 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
).
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.
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.
Updated 8 days ago