HomeDocumentationCode SamplesAPI ReferenceAnnouncementsModelsRelease NotesFAQGitHubVideos
Developer HubAPI StatusSupport
Documentation
Developer HubAPI StatusSupport

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:

  1. Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.

  2. The Amazon Fulfillment role assigned to your developer profile.

  3. 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:

  1. Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
  2. The Amazon Fulfillment role assigned to your developer profile.
  3. 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

NameDescriptionRequired
sellerFulfillmentOrderIdThe 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

NameDescriptionRequired
fulfillmentOrderGeneral information about a fulfillment order, including its status. Type: FulfillmentOrderYes
fulfillmentOrderItemsAn array of fulfillment order item information. Type: FulfillmentOrderItemListYes
fulfillmentShipmentsAn array of fulfillment shipment information. Type: FulfillmentShipmentListNo
returnItemsAn array of items that Amazon accepted for return. Returns empty if no items were accepted for return. Type: ReturnItemListYes
returnAuthorizationsAn array of return authorization information. Type: ReturnAuthorizationListYes

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:

  1. Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.

  2. The Amazon Fulfillment role assigned to your developer profile.

  3. 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:

ParameterDescriptionRequired
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"
          }
        ]
      }
    ]
  }
}
NameDescriptionRequired
sellerFulfillmentOrderId

The fulfillment order identifier submitted with the createFulfillmentOrder operation.

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 createFulfillmentOrder operation. Displays as the order identifier in recipient-facing materials such as the packing slip.

Type: string

Yes
displayableOrderDate

A date and time submitted with the createFulfillmentOrder operation. Displays as the order date in recipient-facing materials such as the packing slip.

Type: Timestamp

Yes
displayableOrderComment

A text block submitted with the createFulfillmentOrder operation. Displays in recipient-facing materials such as the packing slip.

Type: string

Yes
shippingSpeedCategory

The shipping method used for the fulfillment order.

Type: ShippingSpeedCategory

Yes
deliveryWindow

The time range within which a Scheduled Delivery fulfillment order should be delivered.

Type: DeliveryWindow

No
destinationAddress

The destination address submitted with the createFulfillmentOrder operation.

Type: Address

Yes
fulfillmentAction

Specifies whether the fulfillment order should ship now or have an order hold put on it.

Type: FulfillmentAction

No
fulfillmentPolicy

The FulfillmentPolicy value specified when you submitted the createFulfillmentOrder operation.

Type: FulfillmentPolicy

No
codSettings

The cash on delivery (COD) charges that you associate with a COD fulfillment order.

Type: CODSettings

No
receivedDate

The date and time that the fulfillment order was received by an Amazon fulfillment center.

Type: Timestamp

Yes
fulfillmentOrderStatus

The current status of the fulfillment order.

Type: FulfillmentOrderStatus

Yes
statusUpdatedDate

The date and time that the status of the fulfillment order last changed, in ISO 8601 date-time format.

Type: Timestamp

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: NotificationEmailList

No
featureConstraints

A list of features and their fulfillment policies to apply to the order.

Type: < FeatureSettings > array

No

An unsuccessful response has a non-2xx code and includes the following objects.

NameDescription
errors

One or more unexpected errors occurred during the operation.

Type: ErrorList

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:

  1. Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
  2. The Amazon Fulfillment role assigned to your developer profile.
  3. 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:

ParameterDescriptionRequired
packageNumber

The package identifier returned by the getFulfillmentOrder operation.

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.

NameDescription
errors

One or more unexpected errors occurred during the getPackageTrackingDetails operation.

Type: ErrorList

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:

  1. Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
  2. The Amazon Fulfillment role assigned to your developer profile.
  3. 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:

ParameterDescriptionRequired
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.

NameDescription
errors

One or more unexpected errors occurred during the cancelFulfillmentOrder operation.

Type: ErrorList

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:

  1. Authorization from the selling partner for whom you are making calls. Refer to Authorizing Selling Partner API Applications for more information.
  2. The Amazon Fulfillment role assigned to your developer profile.
  3. 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:

ParameterDescriptionRequired
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
    }
  ]
}
ParameterDescriptionRequired
featureName

The feature name

Type: string

Yes
featureDescription

The feature description.

Type: string

Yes