HomeDocumentationCode SamplesAnnouncementsModelsRelease NotesFAQVideos
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 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
sellerEligible

When true, indicates that the seller is eligible to use the feature.

Type: Boolean

No

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

NameDescription
errors

One or more unexpected errors occurred during the getFeatures operation.

Type: ErrorList

Tutorial: Retrieve inventory eligible for Blank Box

This tutorial shows you how to get a list of inventory items that are eligible for Blank Box.

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 feature inventory items

Call the getFeatureInventory operation by passing the following parameters:

ParameterDescriptionRequired
marketplaceId

The marketplace for which to return a list of the inventory that is eligible for the specified feature.

Type: string

Yes
featureName

The name of the feature for which to return a list of eligible inventory.

Type: string

Yes
nextToken

A string token returned in the response to your previous request that is used to return the next response page. A value of null returns the first page.

Type: string

No
queryStartDate

A date used to select inventory that has been last updated after (or at), up to 90 days ago. An update is defined as any change in feature enabled inventory availability. This must be in yyyy-MM-ddTHH:mm:ss.sssZ format, for example: 2020-04-04T16:20:23.000Z.

Type: string (date-time)

No

Request example

GET "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/features/inventory/BLANK_BOX?marketplaceId=ATVPDKIKX0DER"

Response

A successful response has a 200 code.

Response example

{
  "payload": {
    "marketplaceId": "ATVPDKIKX0DER",
    "featureName": "BLANK_BOX",
    "featureSkus": [
      {
        "sellerSku": "TEST_SKU_BLKAM",
        "fnSku": "X00TEST9UZ",
        "asin": "B08DTESTNM",
        "skuCount": "4",
        "overlappingSkus": []
      },
      {
        "sellerSku": "TEST_SKU_BLKAM2",
        "fnSku": "X00TESTTS5",
        "asin": "B0TESTXXQM",
        "skuCount": "2",
        "overlappingSkus": []
      }
    ]
  }
}

ParameterDescriptionRequired
marketplaceId

The requested marketplace.

Type: string

Yes
featureName

The name of the feature.

Type: string

Yes
nextToken

When present and not empty, pass this string token in the next request to return the next response page.

Type: string

No
featureSkus

An array of SKUs eligible for this feature and the quantity available.

Type: < FeatureSku > 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 getFeatureInventory operation.

Type: ErrorList

Tutorial: Retrieve Blank Box inventory for a specific SKU

This tutorial shows you how to get the total number of feature seller SKUs with the sellerSKU you specify.

📘

Ineligible sellerSKU

If the sellerSKU isn't eligible, the response contains an empty skuInfo object.

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 count of feature Seller SKUs

Call the getFeatureSKU operation by passing the following parameters:

ParameterDescriptionRequired
marketplaceId

The marketplace for which to return the count.

Type: string

Yes
featureName

The name of the feature.

Type: string

Yes
sellerSku

Used to identify an item in the given marketplace. SellerSKU is qualified by the seller's SellerId, which is included with every operation that you submit.

Type: string

Yes

Request example

GET "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/features/inventory/BLANK_BOX/TEST_SKU_BLKAM?marketplaceId=ATVPDKIKX0DER"

Response example

{
  "payload": {
    "marketplaceId": "ATVPDKIKX0DER",
    "featureName": "BLANK_BOX",
    "isEligible": true,
    "ineligibleReasons": [],
    "sellerSku": "TEST_SKU_BLKAM",
    "fnSku": "X0TEST9UZ",
    "asin": "B0TESTQ6NM",
    "skuCount": "4"
  }
}
ParameterDescriptionRequired
marketplaceId

The requested marketplace.

Type: string

Yes

featureName

The name of the feature.

Type: string

Yes
isEligible

When true, the seller SKU is eligible for the requested feature.

Type: Boolean

Yes
ineligibleReasons

A list of one or more reasons that the seller SKU is ineligible for the feature.

Possible values:

  • MERCHANT_NOT_ENROLLED - The merchant isn't enrolled for the feature.

  • SKU_NOT_ELIGIBLE - The SKU doesn't reside in a warehouse that supports the feature.
  • INVALID_SKU - There is an issue with the SKU provided.

Type: < string > array

No
skuInfo

Information about the SKU, including the count available, identifiers, and a list of overlapping SKUs that share the same inventory pool.

Type: FeatureSku

No

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

NameDescription
errors

One or more unexpected errors occurred during the getFeatureInventory operation.

Type: ErrorList

Tutorial: Create a Japan order with scheduled delivery and delivery time windows

This tutorial outlines the order creation process for Japan with the scheduled delivery shipping option. This ship option is only available for Japan marketplace orders.

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 fulfillment preview for scheduled delivery dates

Call the getFulfillmentPreview operation with values ShippingSpeedCategories = ScheduledDelivery and IncludeDeliveryWindows = true.

Body ParameterDescriptionRequired
marketplaceId

The marketplace the fulfillment order is placed against.

Type: string

No
address

The destination address for the fulfillment order preview.

Type: Address

Yes
items

Identifying information and quantity information for the items in the fulfillment order preview.

Type: GetFulfillmentPreviewItemList

Yes
shippingSpeedCategories

A list of shipping methods used for creating fulfillment order previews.

Possible values:

  • Standard - Standard shipping method.
  • Expedited - Expedited shipping method.
  • Priority - Priority shipping method.
  • ScheduledDelivery - Scheduled Delivery shipping method only for Japan.

Note: Shipping method service level agreements vary by marketplace. Sellers should refer to the Seller Central website in their marketplace for shipping method service level agreements and fulfillment fees.

No
includeCODFulfillmentPreview

Specifies whether to return fulfillment order previews that are for cash on delivery (COD).

Possible values:

true - Returns all fulfillment order previews (both for COD and not for COD).

false - Returns only fulfillment order previews that are not for COD. Only applicable for orders in India.

Type: Boolean

No
includeDeliveryWindows

Specifies whether to return the ScheduledDeliveryInfo response object, which contains the available delivery windows for a Scheduled Delivery. The ScheduledDeliveryInfo response object can only be returned for fulfillment order previews with ShippingSpeedCategories = ScheduledDelivery. Only applicable for orders in Japan.

Type: Boolean

No
featureConstraints

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

Type: < FeatureSettings > array

No

Request example

POST "https://sellingpartnerapi-fe.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders/preview"

{
  "marketplaceId": "A1VC38T7YXB528",
  "address": {
    "name": "Mary Major",
    "addressLine1": "1-8-1 Shimomeguro",
    "addressLine2": "Meguro-ku",
    "city": "Tokyo",
    "countryCode": "JP",
    "postalCode": "153-0064"
  },
  "items": [
    {
      "sellerSku": "SellerSKU12",
      "sellerFulfillmentOrderItemId": "CONSUMER-2022921-145045-1",
      "quantity": 2
    }
  ],
  "shippingSpeedCategories": [
    "ScheduledDelivery"
  ],
  "IncludeDeliveryWindows": "true"
}

Response

A successful response has a 200 code and the response schema for the getFulfillmentPreview operation.

{
  "payload": {
    "fulfillmentPreviews": [
      {
        "shippingSpeedCategory": "ScheduledDelivery",
        "isFulfillable": true,
        "isCODCapable": false,
        "estimatedShippingWeight": {
          "unit": "POUNDS",
          "value": "0.441"
        },
        "estimatedFees": [
          {
            "name": "FBAPerOrderFulfillmentFee",
            "amount": {
              "currencyCode": "YEN",
              "value": "0.0"
            }
          },
          {
            "name": "FBATransportationFee",
            "amount": {
              "currencyCode": "YEN",
              "value": "0.0"
            }
          },
          {
            "name": "FBAPerUnitFulfillmentFee",
            "amount": {
              "currencyCode": "YEN",
              "value": "9.82"
            }
          }
        ],
        "fulfillmentPreviewShipments": [
          {
            "earliestShipDate": "2022-12-11T08:00:00Z",
            "latestShipDate": "2022-12-12T07:59:59Z",
            "earliestArrivalDate": "2022-12-13T08:00:00Z",
            "latestArrivalDate": "2022-12-14T07:59:59Z",
            "fulfillmentPreviewItems": [
              {
                "sellerSku": "SellerSKU12",
                "quantity": 2,
                "sellerFulfillmentOrderItemId": "CONSUMER-2022921-145045-1",
                "estimatedShippingWeight": {
                  "unit": "POUNDS",
                  "value": "0.441"
                },
                "shippingWeightCalculationMethod": "Dimensional"
              }
            ]
          }
        ],
        "scheduledDeliveryinfo": {
          "deliveryTimeZone": "UTC",
          "deliveryWindows": [
            {
              "endDate": "2022-12-15T10:48:11Z",
              "startDate": "2022-12-15T06:48:11Z"
            },
            {
              "endDate": "2022-12-16T14:48:11Z",
              "startDate": "2022-12-16T10:48:11Z"
            }
          ]
        },
        "unfulfillablePreviewItems": [],
        "marketplaceId": "A1VC38T7YXB528"
      }
    ]
  }
}
NameDescription
FulfillmentPreviews

An array of fulfillment preview information.

Type: FulfillmentPreviewList

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

Step 2. Create a fulfillment order

Call the createFulfillmentOrder operation with the Delivery Window obtained from the getFulfillmentPreview response and with ShippingSpeedCategory = ScheduledDelivery. If you use any other window with the createFulfillmentOrder operation, the service returns an error and you must rerun the getFulfillmentPreview operation.

Body ParameterDescriptionRequired
marketplaceId

The marketplace the fulfillment order is placed against.

Type: string

No
sellerFulfillmentOrderId

A fulfillment order identifier that the seller creates to track their fulfillment order. The sellerFulfillmentOrderId must be unique for each fulfillment order that a seller creates. If the seller's system already creates unique order identifiers, then these might be good values for them to use.

maxLength: 40

Type: string

Yes
displayableOrderId

A fulfillment order identifier that the seller creates. This value displays as the order identifier in recipient-facing materials such as the outbound shipment packing slip. The value of DisplayableOrderId should match the order identifier that the seller provides to the recipient. The seller can use the SellerFulfillmentOrderId for this value or they can specify an alternate value if they want the recipient to reference an alternate order identifier.

The value must be an alpha-numeric or ISO 8859-1 compliant string from one to 40 characters in length. Cannot contain two spaces in a row. Leading and trailing white space is removed.

maxLength: 40

Type: string

Yes
displayableOrderDate

The date and time of the fulfillment order. Displays as the order date in recipient-facing materials such as the outbound shipment packing slip.

Type: Timestamp

Yes
displayableOrderComment

Order-specific text that appears in recipient-facing materials such as the outbound shipment packing slip.

maxLength: 250

Type: string

Yes
shippingSpeedCategory

The shipping method 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 for the fulfillment order.

Type: Address

Yes
deliveryPreferences

The delivery preferences applied to the destination address. These preferences are applied when possible and are best effort. This feature is currently supported only in the JP marketplace and not applicable for other marketplaces.

Type: DeliveryPreferences

No
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 COD charges that you associate with a COD fulfillment order.

Type: CODSettings

No
shipFromCountryCode

The two-character country code for the country from which the fulfillment order ships. Must be in ISO 3166-1 alpha-2 format. It is Required if doing a cross border shipment.

Type: string

No
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
Items

A list of items to include in the fulfillment order preview, including quantity.

Type: CreateFulfillmentOrderItemList

Yes

Request example

POST "https://sellingpartnerapi-fe.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders"

{
  "sellerFulfillmentOrderId": "CONSUMER-2022921-145045",
  "displayableOrderId": "CONSUMER-2022921-145045",
  "displayableOrderDate": "2022-01-09T19:46:45.809Z",
  "displayableOrderComment": "TestOrder",
  "shippingSpeedCategory": "ScheduledDelivery",
  "deliveryWindow": {
    "endDate": "2022-12-15T10:48:11Z",
    "startDate": "2022-12-15T06:48:11Z"
  },
  "fulfillmentAction": "Ship",
  "destinationAddress": {
    "name": "Mary Major",
    "addressLine1": "1-8-1 Shimomeguro",
    "addressLine2": "Meguro-ku",
    "city": "Tokyo",
    "countryCode": "JP",
    "postalCode": "153-0064"
  },
  "items": [
    {
      "sellerSku": "SellerSKU12",
      "sellerFulfillmentOrderItemId": "CONSUMER-2022921-145045-0",
      "quantity": 1
    }
  ]
}

Response

A successful response has a 200 code and includes the following objects.

Response example

{}

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

NameDescription
errors

One or more unexpected errors occurred during the createFulfillmentOrder operation.

Type: ErrorList

Step 3. Get the fulfillment order to validate order details

After successfully calling the createFulfillmentOrder operation, call the getFulfillmentOrder operation to validate fulfillmentAction= Ship and fulfillmentOrderStatus= Received.

ParameterDescriptionRequired
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-fe.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders/CONSUMER-2022921-145045"

Response

A successful response has a 200 code with a payload.

Response example

{
  "payload": {
    "fulfillmentOrder": {
      "sellerFulfillmentOrderId": "CONSUMER-2022921-145045",
      "marketplaceId": "A1VC38T7YXB528",
      "displayableOrderId": "CONSUMER-2022921-145045",
      "displayableOrderDate": "2022-01-09T19:46:45.809Z",
      "displayableOrderComment": "TestOrder",
      "shippingSpeedCategory": "ScheduledDelivery",
      "destinationAddress": {
        "name": "Mary Major",
        "addressLine1": "1-8-1 Shimomeguro",
        "addressLine2": "Meguro-ku",
        "city": "Tokyo",
        "countryCode": "JP",
        "postalCode": "153-0064"
      },
      "deliveryWindow": {
        "endDate": "2022-12-15T10:48:11Z",
        "startDate": "2022-12-15T06:48:11Z"
      }
      "fulfillmentAction": "Ship",
      "fulfillmentPolicy": "FillAllAvailable",
      "receivedDate": "2022-09-21T14:50:45Z",
      "fulfillmentOrderStatus": "Received",
      "statusUpdatedDate": "2022-09-22T03:44:35Z"
    },
    "fulfillmentOrderItems": [
      {
        "sellerSku": "SellerSKU12",
        "sellerFulfillmentOrderItemId": "CONSUMER-2022921-145045-0",
        "quantity": "1"
      }
    ],
    "fulfillmentShipments": [],
    "returnItems": [],
    "returnAuthorizations": []
  }
}
Body ParameterDescriptionRequired
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

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: Create an MCF order for India

This tutorial outlines the MCF order creation process for India.

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 fulfillment preview

Body ParameterDescriptionRequired
marketplaceId

The marketplace the fulfillment order is placed against.

Type: string

No
address

The destination address for the fulfillment order preview.

Type: Address

Yes
items

Identifying information and quantity information for the items in the fulfillment order preview.

Type: GetFulfillmentPreviewItemList

Yes
shippingSpeedCategories

A list of shipping methods used for creating fulfillment order previews.

Possible values:

  • Standard - Standard shipping method.

Note: Shipping method service level agreements vary by marketplace. Standard shipping method is the only shipping method supported for India. Sellers should refer to the Seller Central website in their marketplace for shipping method service level agreements and fulfillment fees.

No
includeCODFulfillmentPreview

Specifies whether to return fulfillment order previews that are for cash on delivery (COD).

Possible values:

true - Returns all fulfillment order previews (both for COD and not for COD).

false - Returns only fulfillment order previews that are not for COD. Only applicable for orders in India.

Type: Boolean

No
includeDeliveryWindows

Specifies whether to return the ScheduledDeliveryInfo response object, which contains the available delivery windows for a Scheduled Delivery. The ScheduledDeliveryInfo response object can only be returned for fulfillment order previews with ShippingSpeedCategories = ScheduledDelivery. Only applicable for orders in Japan.

Type: Boolean

No
featureConstraints

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

Type: < FeatureSettings > array

No

Request example

POST "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders/preview"

{
  "marketplaceId": "A21TJRUUN4KGV",
  "address":
  {
    "name": "Saanvi Sarkar",
    "addressLine1": "FLAT#20012, Tower#20, Prestige Ferns Residency, Haralur Road",
    "city": "Bengaluru",
    "stateOrRegion": "KA",
    "countryCode": "IN",
    "postalCode": "560021",
    "phone": "9986365404"
  },
  "items": [
    {
      "sellerSku": "mohamf devogst8 B06XSK3XL6",
      "sellerFulfillmentOrderItemId": "OrderItemID1",
      "quantity": 1 
    }
  ],
  "shippingSpeedCategories": [
    "Standard"
  ],
  "featureConstraints": [
    {
      "featureName": "BLANK_BOX",
      "featureFulfillmentPolicy": "NOTREQUIRED"
    }
  ]
}

Response

A successful response has a 200 code and the response schema for the getFulfillmentPreview operation.

{
  "payload": {
    "fulfillmentPreviews": [
      {
        "shippingSpeedCategory": "Standard",
        "isFulfillable": false,
        "isCODCapable": false,
        "fulfillmentPreviewShipments": [
          {
            "earliestShipDate": "2023-12-09T10:42:10Z",
            "latestShipDate": "2023-12-09T10:42:10Z",
            "earliestArrivalDate": "2023-12-11T10:42:10Z",
            "latestArrivalDate": "2023-12-13T10:42:10Z",
            "fulfillmentPreviewItems": [
              {
                "sellerSku": "mohamf devogst8 B06XSK3XL6",
                "quantity": 1,
                "sellerFulfillmentOrderItemId": "OrderItemID1",
                "estimatedShippingWeight": {
                  "unit": "KILOGRAMS",
                  "value": "0.350"
                },
                "shippingWeightCalculationMethod": "Package"
              }
            ]
          }
        ],
        "marketplaceId": "A21TJRUUN4KGV",
        "featureConstraints": [
          {
            "featureName": "BLANK_BOX",
            "featureFulfillmentPolicy": "NotRequired"
          }
        ]
      }
    ]
  }
}
NameDescription
FulfillmentPreviews

An array of fulfillment preview information.

Type: FulfillmentPreviewList

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

Step 2. Create a fulfillment order

Call the createFulfillmentOrder operation to create an MCF order specifying the feature constraints required for the order.

Body ParameterDescriptionRequired
marketplaceId

The marketplace the fulfillment order is placed against.

Type: string

No
sellerFulfillmentOrderId

A fulfillment order identifier that the seller creates to track their fulfillment order. The sellerFulfillmentOrderId must be unique for each fulfillment order that a seller creates. If the seller's system already creates unique order identifiers, then these might be good values for them to use.

maxLength: 40

Type: string

Yes
displayableOrderId

A fulfillment order identifier that the seller creates. This value displays as the order identifier in recipient-facing materials such as the outbound shipment packing slip. The value of DisplayableOrderId should match the order identifier that the seller provides to the recipient. The seller can use the SellerFulfillmentOrderId for this value or they can specify an alternate value if they want the recipient to reference an alternate order identifier.

The value must be an alpha-numeric or ISO 8859-1 compliant string from one to 40 characters in length. Cannot contain two spaces in a row. Leading and trailing white space is removed.

maxLength: 40

Type: string

Yes
displayableOrderDate

The date and time of the fulfillment order. Displays as the order date in recipient-facing materials such as the outbound shipment packing slip.

Type: Timestamp

Yes
displayableOrderComment

Order-specific text that appears in recipient-facing materials such as the outbound shipment packing slip.

maxLength: 250

Type: string

Yes
shippingSpeedCategory

The shipping method 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 for the fulfillment order.

Type: Address

Yes
deliveryPreferences

The delivery preferences applied to the destination address. These preferences are applied when possible and are best effort. This feature is currently supported only in the JP marketplace and not applicable for other marketplaces.

Type: DeliveryPreferences

No
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 COD charges that you associate with a COD fulfillment order.

Type: CODSettings

No
shipFromCountryCode

The two-character country code for the country from which the fulfillment order ships. Must be in ISO 3166-1 alpha-2 format. It is Required if doing a cross border shipment.

Type: string

No
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
items

A list of items to include in the fulfillment order preview, including quantity.

Type: CreateFulfillmentOrderItemList

Yes
paymentInformation

The payment information for the fulfillment order.

Type: PaymentInformation

Yes

Request example

POST "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders"

{
  "sellerFulfillmentOrderId": "createOrder1703154732",
  "displayableOrderId": "TestOrder-FBAOutbound20",
  "displayableOrderDate": "2023-11-09T19:46:45.809Z",
  "displayableOrderComment": "TestOrder",
  "shippingSpeedCategory": "Standard",
  "fulfillmentAction": "Ship",
  "destinationAddress": {
    "name": "Anshul R",
    "addressLine1": "FLAT#1234, Tower#201, Prestige Residency, Haralur Road",
    "city": "Bengaluru",
    "stateOrRegion": "KA",
    "countryCode": "IN",
    "postalCode": "560102",
    "phone": "9168071234"
  },
  "notificationEmails": [
    "[email protected]"
  ],
  "items": [
    {
      "sellerSku": "mohamf devogst8 B06XSK3XL6",
      "sellerFulfillmentOrderItemId": "OrderItemID1",
      "quantity": 1,
      "perUnitDeclaredValue": {
        "currencyCode": "INR",
        "value": "2.00"
      }
    }
  ],
  "paymentInformation": [
    {
      "paymentTransactionId": "TestPaymenttransaction",
      "paymentMode": "Other",
      "paymentDate": "2023-11-14T16:25:56Z"
    }
  ]
}

Response

A successful response has a 200 code and includes the following objects.

Response example

{}

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

NameDescription
errors

One or more unexpected errors occurred during the createFulfillmentOrder operation.

Type: ErrorList

Step 3. Get the fulfillment order to validate order details

After successfully calling the createFulfillmentOrder operation, call the getFulfillmentOrder operation to validate fulfillmentAction= Ship and fulfillmentOrderStatus= Received.

ParameterDescriptionRequired
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"
</