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 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 |
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.
Name | Description |
---|---|
errors | One or more unexpected errors occurred during the Type: |
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:
- 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 feature inventory items
Call the getFeatureInventory
operation by passing the following parameters:
Parameter | Description | Required |
---|---|---|
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 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": []
}
]
}
}
Parameter | Description | Required |
---|---|---|
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: < | 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 Type: |
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 emptyskuInfo
object.
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 count of feature Seller SKUs
Call the getFeatureSKU
operation by passing the following parameters:
Parameter | Description | Required |
---|---|---|
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. 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"
}
}
Parameter | Description | Required |
---|---|---|
marketplaceId | The requested marketplace. Type: string | Yes |
| The name of the feature. Type: string | Yes |
isEligible | When true, the seller Type: Boolean | Yes |
ineligibleReasons | A list of one or more reasons that the seller SKU is ineligible for the feature. Possible values:
Type: < string > array | No |
skuInfo | Information about the 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 Type: |
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:
- 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 fulfillment preview for scheduled delivery dates
Call the getFulfillmentPreview
operation with values ShippingSpeedCategories
= ScheduledDelivery
and IncludeDeliveryWindows
= true
.
Body Parameter | Description | Required |
---|---|---|
marketplaceId | The marketplace the fulfillment order is placed against. Type: string | No |
address | The destination address for the fulfillment order preview. Type: | Yes |
items | Identifying information and quantity information for the items in the fulfillment order preview. | Yes |
shippingSpeedCategories | A list of shipping methods used for creating fulfillment order previews. Possible values:
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:
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 Type: Boolean | No |
featureConstraints | A list of features and their fulfillment policies to apply to the order. Type: < | 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"
}
]
}
}
Name | Description |
---|---|
FulfillmentPreviews | An array of fulfillment preview information. Type: |
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: |
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 Parameter | Description | Required |
---|---|---|
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 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 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: | 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. ShippingSpeedCategory | Yes |
deliveryWindow | The time range within which a Scheduled Delivery fulfillment order should be delivered. Type: | No |
destinationAddress | The destination address for the fulfillment order. Type: | 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: | No |
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 COD charges that you associate with a COD fulfillment order. Type: | 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: | No |
featureConstraints | A list of features and their fulfillment policies to apply to the order. Type: < | No |
Items | A list of items to include in the fulfillment order preview, including quantity. | 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.
Name | Description |
---|---|
errors | One or more unexpected errors occurred during the Type: |
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
.
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
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 Parameter | Description | Required |
---|---|---|
fulfillmentOrder | General information about a fulfillment order, including its status. Type: | Yes |
| An array of fulfillment order item information. Type: | Yes |
fulfillmentShipments | An array of fulfillment shipment information. Type: | No |
returnItems | An array of items that Amazon accepted for return. Returns empty if no items were accepted for return. Type: | Yes |
returnAuthorizations | An array of return authorization information. Type: | Yes |
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: Create an MCF order for India
This tutorial outlines the MCF order creation process for India.
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 fulfillment preview
Body Parameter | Description | Required |
---|---|---|
marketplaceId | The marketplace the fulfillment order is placed against. Type: string | No |
address | The destination address for the fulfillment order preview. Type: | Yes |
items | Identifying information and quantity information for the items in the fulfillment order preview. | Yes |
shippingSpeedCategories | A list of shipping methods used for creating fulfillment order previews. Possible values:
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:
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 Type: Boolean | No |
featureConstraints | A list of features and their fulfillment policies to apply to the order. Type: < | 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"
}
]
}
]
}
}
Name | Description |
---|---|
FulfillmentPreviews | An array of fulfillment preview information. Type: |
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: |
Step 2. Create a fulfillment order
Call the createFulfillmentOrder
operation to create an MCF order specifying the feature constraints required for the order.
Body Parameter | Description | Required |
---|---|---|
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 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 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: | 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. ShippingSpeedCategory | Yes |
deliveryWindow | The time range within which a Scheduled Delivery fulfillment order should be delivered. Type: | No |
destinationAddress | The destination address for the fulfillment order. Type: | 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: | No |
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 COD charges that you associate with a COD fulfillment order. Type: | 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: | No |
featureConstraints | A list of features and their fulfillment policies to apply to the order. Type: < | No |
items | A list of items to include in the fulfillment order preview, including quantity. | Yes |
paymentInformation | The payment information for the fulfillment order. Type: | 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.
Name | Description |
---|---|
errors | One or more unexpected errors occurred during the Type: |
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
.
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
GET "https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders/CONSUMER-2022921-145045"