Fulfillment Outbound API v2020-07-01 Use Case Guide
How to use the Fulfillment Outbound API.
API Version: v2020-07-01
What is the Fulfillment Outbound API?
The Selling Partner API for Fulfillment Outbound (Fulfillment Outbound API) lets you create applications that help a seller fulfill Multi-Channel Fulfillment orders using their inventory in Amazon's fulfillment network. You can also get information on both potential and existing fulfillment orders.
Prerequisites
To complete the tutorials, you need:
-
Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
-
The Amazon Fulfillment role assigned to your developer profile.
-
The Amazon Fulfillment role selected in the App registration page for your application.
Tutorial: Retrieve proof of delivery for a delivered package
Learn how to get the photo or signature for a delivered Multi-Channel Fulfillment Outbound shipment.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
- The Amazon Fulfillment role assigned to your developer profile.
- The Amazon Fulfillment role selected in the App registration page for your application.
Get proof of delivery
Call the getFulfillmentOrder
operation by passing the following parameters:
Path parameters
Name | Description | Required |
---|---|---|
sellerFulfillmentOrderId | The identifier assigned to the item by the seller when the fulfillment order was created. maxLength: 40 Type: string | Yes |
Request example
GET "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders/CONSUMER-2022921-145045"
Response
Name | Description | Required |
---|---|---|
fulfillmentOrder | General information about a fulfillment order, including its status. Type: FulfillmentOrder | Yes |
fulfillmentOrderItems | An array of fulfillment order item information. Type: FulfillmentOrderItemList | Yes |
fulfillmentShipments | An array of fulfillment shipment information. Type: FulfillmentShipmentList | No |
returnItems | An array of items that Amazon accepted for return. Returns empty if no items were accepted for return. Type: ReturnItemList | Yes |
returnAuthorizations | An array of return authorization information. Type: ReturnAuthorizationList | Yes |
Response example
{
"payload": {
"fulfillmentOrder": {
"sellerFulfillmentOrderId": "CONSUMER-2022921-145045",
"marketplaceId": "ATVPDKIKX0DER",
"displayableOrderId": "CONSUMER-2022921-145045",
"displayableOrderDate": "2024-05-21T14:48:15Z",
"displayableOrderComment": "Thank you for your order",
"shippingSpeedCategory": "Standard",
"destinationAddress": {
"name": "Jane Smith",
"addressLine1": "123 Any Street",
"city": "Any Town",
"stateOrRegion": "NC"
"countryCode": "US",
"postalCode": "28277"
},
"fulfillmentAction": "Ship",
"fulfillmentPolicy": "FillAllAvailable",
"receivedDate": "2024-05-21T14:50:45Z",
"fulfillmentOrderStatus": "CompletePartialled",
"statusUpdatedDate": "2024-05-22T03:44:35Z",
"notificationEmails": [
"email@email.com"
],
"featureConstraints": [
{
"featureName": "BLANK_BOX",
"featureFulfillmentPolicy": "NotRequired"
}
]
},
"fulfillmentOrderItems": [
{
"sellerSku": "LT110WHTAM",
"sellerFulfillmentOrderItemId": "CONSUMER-2022921-145045-0",
"quantity": "1",
"fulfillmentNetworkSku": "X002ZKH36D",
"orderItemDisposition": "Sellable",
"cancelledQuantity": "0",
"unfulfillableQuantity": "0",
"estimatedShipDate": "2024-05-22T06:59:59Z",
"estimatedArrivalDate": "2024-05-26T06:59:59Z",
"perUnitDeclaredValue": {
"currencyCode": "USD",
"value": "35.00"
}
},
],
"fulfillmentShipments": [
{
"amazonShipmentId": "T7mfkbDX5",
"fulfillmentCenterId": "TUL2",
"fulfillmentShipmentStatus": "SHIPPED",
"shippingDate": "2024-05-22T03:39:19Z",
"estimatedArrivalDate": "2024-05-26T06:59:59Z",
"fulfillmentShipmentItem": [
{
"sellerSku": "LT205BLKAM",
"sellerFulfillmentOrderItemId": "CONSUMER-2022921-145045-1",
"quantity": "1",
"packageNumber": "1681854637"
}
],
"fulfillmentShipmentPackage": [
{
"packageNumber": "1681854637",
"carrierCode": "AMZL",
"trackingNumber": "TBA123456789012",
"estimatedArrivalDate": "2024-05-26T06:59:59Z",
"deliveryInformation": {
"deliveryDocumentList": [
{
"documentType" : "DELIVERY_IMAGE",
"url" : "https://some-image-url.com"
}
],
"dropOffLocation": {
"type" : "FRONT_DOOR"
}
}
}
],
"returnItems": [],
"returnAuthorizations": []
}
}
Tutorial: Retrieve a list of fulfillment orders
This tutorial shows you how to get a list of fulfillment orders after (or at) a specific date-time, or indicated by the next token parameter.
Prerequisites
To complete this tutorial, you need:
-
Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
-
The Amazon Fulfillment role assigned to your developer profile.
-
The Amazon Fulfillment role selected in the App registration page for your application.
Step 1. Get a list of all fulfillment orders
Call the listAllFulfillmentOrders
operation by passing the following parameters:
Parameter | Description | Required |
---|---|---|
queryStartDate | A date that you can use to select fulfillment orders that were last updated after (or at) a specified time. An update is defined as any change in fulfillment order status, including the creation of a new fulfillment order. Type: string (date-time) | No |
nextToken | A string token returned in the response to your previous request. It is required for retrieving the next set of results [pagination]. Type: string | No |
Request example
GET "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders?queryStartDate=2020-01-01T19:46:45Z"
Response
A successful response has a 200 code.
Response example
{
"payload": {
"fulfillmentOrders": [
{
"sellerFulfillmentOrderId": "902-6018020-0202003",
"displayableOrderId": "mws-test-query-20100713023203751",
"displayableOrderDate": "2020-01-09T19:46:45Z",
"displayableOrderComment": "TestOrder",
"shippingSpeedCategory": "Standard",
"destinationAddress": {
"name": "AnyCompany",
"addressLine1": "123 Any Street",
"addressLine2": "Suite 123",
"city": "Any Town",
"stateOrRegion": "MI",
"countryCode": "US",
"postalCode": "48084"
},
"fulfillmentPolicy": "FillOrKill",
"receivedDate": "2020-01-21T21:07:13Z",
"fulfillmentOrderStatus": "RECEIVED",
"statusUpdatedDate": "2020-01-21T21:07:30Z",
"featureConstraints": [
{
"featureName": "BLANK_BOX",
"featureFulfillmentPolicy": "NotRequired"
},
{
"featureName": "BLOCK_AMZL",
"featureFulfillmentPolicy": "NotRequired"
}
]
},
{
"sellerFulfillmentOrderId": "601-2020200-12345678",
"displayableOrderId": "TestOrder-FBAOutbound",
"displayableOrderDate": "2020-01-09T19:46:45Z",
"displayableOrderComment": "TestOrder",
"shippingSpeedCategory": "Standard",
"destinationAddress": {
"name": "AnyCompany",
"addressLine1": "123 Any Street",
"addressLine2": "Suite 123",
"addressLine3": "Lane1",
"city": "Any Town",
"stateOrRegion": "MI",
"countryCode": "US",
"postalCode": "48084"
},
"fulfillmentPolicy": "FillOrKill",
"receivedDate": "2020-01-23T19:56:41Z",
"fulfillmentOrderStatus": "COMPLETE",
"statusUpdatedDate": "2020-01-24T15:28:27Z",
"featureConstraints": [
{
"featureName": "BLANK_BOX",
"featureFulfillmentPolicy": "NotRequired"
},
{
"featureName": "BLOCK_AMZL",
"featureFulfillmentPolicy": "Required"
}
]
}
]
}
}
Name | Description | Required |
---|---|---|
sellerFulfillmentOrderId | The fulfillment order identifier submitted with the Type: string | Yes |
marketplaceId | The identifier for the marketplace the fulfillment order is placed against. Type: string | Yes |
displayableOrderId | A fulfillment order identifier submitted with the Type: string | Yes |
displayableOrderDate | A date and time submitted with the Type: | Yes |
displayableOrderComment | A text block submitted with the Type: string | Yes |
shippingSpeedCategory | The shipping method used for the fulfillment order. Type: | Yes |
deliveryWindow | The time range within which a Scheduled Delivery fulfillment order should be delivered. Type: | No |
destinationAddress | The destination address submitted with the Type: | Yes |
fulfillmentAction | Specifies whether the fulfillment order should ship now or have an order hold put on it. Type: | No |
fulfillmentPolicy | The Type: | No |
codSettings | The cash on delivery (COD) charges that you associate with a COD fulfillment order. Type: | No |
receivedDate | The date and time that the fulfillment order was received by an Amazon fulfillment center. Type: | Yes |
fulfillmentOrderStatus | The current status of the fulfillment order. Type: | Yes |
statusUpdatedDate | The date and time that the status of the fulfillment order last changed, in ISO 8601 date-time format. Type: | Yes |
notificationEmails | A list of email addresses that the seller provides that are used by Amazon to send ship-complete notifications to recipients on behalf of the seller. Type: | No |
featureConstraints | A list of features and their fulfillment policies to apply to the order. Type: < | No |
An unsuccessful response has a non-2xx code and includes the following objects.
Name | Description |
---|---|
errors | One or more unexpected errors occurred during the operation. Type: |
Tutorial: Retrieve delivery tracking information
This tutorial shows you how to get delivery tracking information for a package in an outbound shipment for a Multi-Channel Fulfillment order.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
- The Amazon Fulfillment role assigned to your developer profile.
- The Amazon Fulfillment role selected in the App registration page for your application.
Step 1. Get the package tracking details
Call the getPackageTrackingDetails
operation by passing the following parameters:
Parameter | Description | Required |
---|---|---|
packageNumber | The package identifier returned by the Type: integer (int32) | Yes |
Request example
GET "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/tracking?packageNumber=1987644423"
Response example
{
"payload": {
"packageNumber": 1987644423,
"trackingNumber": "TBA123456789012",
"carrierCode": "AMZN_US",
"carrierPhoneNumber": "1111111111",
"carrierURL": "https://www.swiship.com/track?id=TBA123456789012",
"shipDate": "2022-11-13T03:18:38Z",
"estimatedArrivalDate": "2022-11-15T03:18:38Z",
"shipToAddress": {
"city": "Troy",
"state": "MI",
"country": "US"
},
"currentStatus": "DELIVERED",
"signedForBy": "Richard Roe",
"additionalLocationInfo": "FRONT_DOOR",
"trackingEvents": [
{
"eventDate": "2022-11-13T03:18:37Z",
"eventAddress": {
"city": "Buffalo",
"state": "NY",
"country": "US"
},
"eventCode": "EVENT_101",
"eventDescription": "Carrier notified to pick up package."
},
{
"eventDate": "2022-11-13T03:18:38Z",
"eventAddress": {
"city": "Buffalo",
"state": "NY",
"country": "US"
},
"eventCode": "EVENT_102",
"eventDescription": "Shipment picked up from seller's facility."
},
{
"eventDate": "2022-11-13T17:27:49Z",
"eventAddress": {
"city": "Boise",
"state": "ID",
"country": "US"
},
"eventCode": "EVENT_302",
"eventDescription": "Out for delivery."
},
{
"eventDate": "2022-11-15T03:18:38Z",
"eventAddress": {
"city": "Troy",
"state": "MI",
"country": "US"
},
"eventCode": "EVENT_301",
"eventDescription": "Delivered."
}
]
}
}
An unsuccessful response has a non-2xx code and includes the following objects. If the PackageNumber
does not exist, a 404 response provides the ineligibility errors.
Name | Description |
---|---|
errors | One or more unexpected errors occurred during the Type: |
Tutorial: Cancel a fulfillment order
This tutorial shows you how to send a request to Amazon to stop attempts to fulfill a fulfillment order indicated by the specified order identifier for a given marketplace. The cancelFulfillmentOrder
operation should only be called when the order is in 'Received' or 'Planning' status.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
- The Amazon Fulfillment role assigned to your developer profile.
- The Amazon Fulfillment role selected in the App registration page for your application.
Step 1. Cancel a fulfillment order
Call the cancelFulfillmentOrder
operation by passing the following parameters:
Parameter | Description | Required |
---|---|---|
sellerFulfillmentOrderId | The identifier assigned to the item by the seller when the fulfillment order was created. maxLength: 40 Type: string | Yes |
Request example
PUT "https://sellingpartnerapi-na.amazon.com /fba/outbound/2020-07-01/fulfillmentOrders/TestOrder-7/cancel"
Response example
{}
An unsuccessful response has a non-2xx code and includes the following objects. If the sellerFulfillmentOrderId
does not exist, a 404 response provides the ineligibility errors.
Name | Description |
---|---|
errors | One or more unexpected errors occurred during the Type: |
Tutorial: Retrieve a list of features
This tutorial shows you how to get a list of features available for Multi-Channel Fulfillment orders in the marketplace you specify, and whether the seller for which you made the call is enrolled for each feature.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
- The Amazon Fulfillment role assigned to your developer profile.
- The Amazon Fulfillment role selected in the App registration page for your application.
Step 1. Get a list of features
Call the getFeatures
operation by passing the following parameters:
Parameter | Description | Required |
---|---|---|
marketplaceId | The marketplace for which to return the list of features. Type: string | Yes |
Request example
GET "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/features?MarketplaceId=ATVPDKIKX0DER"
Response
A successful response has a 200 code.
Response example
{
"features": [
{
"featureName": "BLANK_BOX",
"featureDescription": "Enables Shipment in non-Amazon branded boxes",
"sellerEligible": true
},
{
"featureName": "BLOCK_AMAZON ",
"featureDescription": "Blocks using Amazon Logistics as carrier",
"sellerEligible": true
}
]
}
Parameter | Description | Required |
---|---|---|
featureName | The feature name Type: string | Yes |
featureDescription | The feature description. Type: string | Yes |
|