Fulfillment Outbound API Migration Guide

Learn how to migrate from Fulfillment Outbound v2020-07-01 to Fulfillment Outbound v2026-07-04.

The Fulfillment Outbound v2026-07-04 introduces new capabilities, including new authorization paradigms with partner account credentials and channel-based feature configuration. If you have built integrations with the previous version of the API, you can migrate to the new version by taking note of the similarities and differences between the two versions.

What's New

  1. Channel-based feature configuration: These are distinct channels that a merchant can create to fulfill their orders. This works with fulfillment services. For example, you can create a fulfillment service for your D2C e-commerce channel and another fulfillment service for your social commerce channels such as TikTok, Walmart, and other marketplaces. You can scope fulfillment API actions and configure defaults for each channel separately. For eligible channels, MCF will apply the optimal configurations to help merchants stay compliant with fulfillment policies in those marketplaces. Use the channel field to track orders by sales channel.
  2. Granular dynamic sandbox controls: The new updatePackage operation allows you to simulate granular package delivery states in the Sandbox (Delivered, Delayed, In Transit etc) for orders with multiple shipments.
  3. Multi-SKU support delivery offers: Use the getOffers operation with multiple products to fetch delivery options that include an estimated delivery date in a single call.
  4. Asynchronous processing support: the createOrder operation may process orders asynchronously (202 Accepted) for maximum reliability. This includes the new INVALID order status.
  5. Multi-tenant authorization: Interoperable use of merchant and partner account (multi-tenant) credentials for authorization enables the use of merchant credentials from your existing registration or with partner account details. ISVs building integrations for merchants with multiple accounts pass the new x-amzn-fulfillment-service-id request header to scope each API call to a specific tenant. Alternatively, pass the desired account ID to the x-amzn-entity-id request header to scope each API call to a specific account. Single-merchant account applications do not need to change their authorization model.
  6. API schema updates: URIs, parameters, and structure have been updated to make it easier for you to work with the API. These changes make it easier to understand how features work and improve backward compatibility.

Key Changes

  1. Base path changed: /fba/outbound/2020-07-01 to /fulfillment/outbound/2026-07-04
  2. Use request header x‐amzn‐fulfillment‐service‐id to scope operations to a specific fulfillment service.
  3. Deprecated operations that are still supported in previous API version:
    • The getFeatures and getFeatureSKU operations are deprecated. Refer to the documentation for supported feature constraints and services.
    • The getFeatureInventory operation is deprecated. Use the getOrderPreview operation to check if products are fulfillable before placing a fulfillment order.
    • The createFulfillmentReturn and listReturnReasonCodes operations are deprecated.

This guide will detail the changes for each operation and the new tenancy operations.

Authorization

If your application uses a single authorization token for multi-site APIs, you must include the x-amzn-fulfillment-service-id request header in all non-tenancy API requests with a valid Fulfillment Service ID. This request header is optional if your application uses a regular authorization token scoped to a single merchant account. For details on how to obtain a Fulfillment Service ID, refer to New Tenancy Operations.

The following are sample getOrder requests with the auth API headers for both scenarios:

App with multi-site support:

GET /fulfillment/outbound/2026-07-04/orders/{orderId}
x-amzn-fulfillment-service-id: FS01-o8vlfw8b1tiu1
x-amz-access-token: Atza|IwEBIPmyMZBjeTaNLQtwRGwQRSBXNQG5Sl
accept: application/json

App for a single merchant account:

GET /fulfillment/outbound/2026-07-04/orders/{orderId}
x-amz-access-token: Atza|IwEBIPmyMZBjeTaNLQtwRGwQRSBXNQG5Sl
accept: application/json

Updated operations

v2020-07-01v2026-07-04
deliveryOffers
POST /fba/outbound/2020-07-01/deliveryOffers
getOffers
POST /fulfillment/outbound/2026-07-04/offers
getFulfillmentPreview
POST /fba/outbound/2020-07-01/fulfillmentOrders/preview
getOrderPreview
POST /fulfillment/outbound/2026-07-04/previews
createFulfillmentOrder
POST /fba/outbound/2020-07-01/fulfillmentOrders
createOrder
POST /fulfillment/outbound/2026-07-04/orders
listAllFulfillmentOrders
POST /fba/outbound/2020-07-01/fulfillmentOrders
listOrders
GET /fulfillment/outbound/2026-07-04/orders
getFulfillmentOrder
GET /fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}
getOrder
GET /fulfillment/outbound/2026-07-04/orders/{orderId}
updateFulfillmentOrder
PUT /fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}
updateOrder
PUT /fulfillment/outbound/2026-07-04/orders/{orderId}
submitFulfillmentOrderStatusUpdate
PUT /fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}/status
updateOrderStatus
PUT /fulfillment/outbound/2026-07-04/orders/{orderId}/status
cancelFulfillmentOrder
PUT /fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}/cancel
cancelOrder
PUT /fulfillment/outbound/2026-07-04/orders/{orderId}/cancel

deliveryOffers to getOffers

Parameters and structure:

Locationv2020-07-01v2026-07-04
Path/deliveryOffers/offers
Body--fulfillmentConfiguration.serviceLevel.serviceTiers
BodySingle product + amountitems array (multiple SKUs; no amount needed)
Responsepayload wrapperno wrapper: object returned directly
ResponseFlat offers arrayofferResults array, one entry per item
ResponseexpiresAtexpiryTime
ResponsedateRange.earliestdeliveryInterval.startTime
ResponsedateRange.latestdeliveryInterval.endTime
Responsepolicy.messagedeprecated

v2020-07-01 sample request:

POST /fba/outbound/2020-07-01/deliveryOffers
Content-Type: application/json

{
    "product": {
        "productIdentifier": { "merchantSku": "SKU1" },
        "amount": { "unitOfMeasure": "Eaches", "value": "1.0" }
    },
    "terms": {
        "origin": { "countryCode": "US" },
        "destination": { "ipAddress": "192.168.0.1" }
    }
}

v2026-07-04 sample request:

POST /fulfillment/outbound/2026-07-04/offers
Content-Type: application/json

{
  "fulfillmentConfiguration": {
    "serviceLevel": { "serviceTiers": ["STANDARD"] }
  },
  "origin": { "countryCode": "US" },
  "destination": { "ipAddress": "192.168.0.1" },
  "items": [
    { "productIdentifier": { "amazonSku": "SKU1" } },
    { "productIdentifier": { "amazonSku": "SKU2" } }
  ]
}

v2020-07-01 sample response:

{
    "payload": {
        "deliveryOffers": [{
            "expiresAt": "2025-08-08T00:29:07.351Z",
            "dateRange": {
                "earliest": "2025-08-08T00:29:07.351Z",
                "latest": "2025-08-08T00:29:07.351Z"
            },
            "policy": {
                "message": {
                    "text": "Standard Delivery Sunday, Sep 14",
                    "locale": "en-US"
                }
            }
        }]
    }
}

v2026-07-04 sample response:

{
  "offerResults": [
    {
      "item": { "productIdentifier": { "amazonSku": "SKU1" } },
      "offers": [{
        "fulfillmentConfiguration": {
          "serviceLevel": {
            "serviceTier": "STANDARD",
            "deliveryInterval": { "startTime": "2026-07-11T12:00:00Z", "endTime": "2026-07-12T23:59:00Z" }
          }
        },
        "expiryTime": "2026-07-09T20:00:00Z"
      }]
    },
    {
      "item": { "productIdentifier": { "amazonSku": "SKU2" } },
      "offers": [],
      "constraints": [{ "code": "ItemQuantityNotAvailable", "type": "ValidationError", "message": "SKU2 is out of stock." }]
    }
  ]
}

getFulfillmentPreview to getOrderPreview

Parameters and structure:

Locationv2020-07-01v2026-07-04
Path/fulfillmentOrders/preview/previews
BodyshippingSpeedCategoriesfulfillmentConfiguration.serviceLevel.serviceTiers
Bodyaddressdestination.deliveryAddress
BodyfeatureConstraintsfulfillmentConfiguration.services
BodymarketplaceIdorigin.countryCode
BodyitemslineItems
BodyincludeDeliveryWindowsdeprecated
Body--excludeEstimatedFees (true/false exclude fee estimates)
Responsepayload wrapperno wrapper; object returned directly
ResponsefulfillmentPreviewsplannedShipments
ResponsefulfillmentPreviewShipmentsoffers
ResponseearliestArrivalDate / latestArrivalDateoffers[].fulfillmentConfiguration.serviceLevel.deliveryInterval
ResponseearliestShipDate / latestShipDateoffers[].fulfillmentConfiguration.serviceLevel.shipInterval
ResponseestimatedFees[] with nameestimatedPrice.rollupPrices[] with type

v2020-07-01 sample request:

POST /fba/outbound/2020-07-01/fulfillmentOrders/preview
Content-Type: application/json

{
    "marketplaceId": "ATVPDKIKX0DER",
    "address": {
        "name": "Shopper Name",
        "addressLine1": "1000 Winthrop Ave N",
        "addressLine2": "Floor 19",
        "city": "Seattle",
        "districtOrCounty": "None",
        "countryCode": "US",
        "phone": "123-456-7890",
        "postalCode": "98103",
        "stateOrRegion": "WA"
    },
    "items": [{
        "sellerSku": "SKU1",
        "quantity": 1,
        "perUnitDeclaredValue": {
            "currencyCode": "USD",
            "value": "10.98"
        },
        "sellerFulfillmentOrderItemId": "item1"
    }],
    "shippingSpeedCategories": ["Expedited"],
    "featureConstraints": [{ "featureName": "BLANK_BOX", "featureFulfillmentPolicy": "Required" }]
}

v2026-07-04 sample request:

POST /fulfillment/outbound/2026-07-04/previews
Content-Type: application/json

{
    "channel": "SHOPIFY",
    "fulfillmentConfiguration": {
        "serviceLevel": {
            "serviceTiers": ["EXPEDITED"]
        },
        "services": {
            "packaging": {
                "packagingOption": "UNBRANDED"
            }
        }
    },
    "destination": {
        "deliveryAddress": {
            "name": "Shopper Name",
            "addressLine1": "1000 Winthrop Ave N",
            "addressLine2": "Floor 19",
            "city": "Seattle",
            "districtOrCounty": "None",
            "countryCode": "US",
            "phone": "123-456-7890",
            "postalCode": "98103",
            "stateOrRegion": "WA"
        }
    },
    "origin": {
        "countryCode": "US"
    },
    "excludeEstimatedFees": true,
    "lineItems": [{
        "product": {
            "productIdentifier": {
                "amazonSku": "SKU1"
            },
            "perUnitDeclaredValue": {
                "currencyCode": "USD",
                "amount": "10.00"
            }
        },
        "amount": {
            "unit": "EACHES",
            "value": "1"
        }
    }]
}

v2020-07-01 sample response:

{
    "payload": {
        "fulfillmentPreviews": [{
            "estimatedFees": [
                { "amount": { "currencyCode": "USD", "value": "0.0" }, "name": "FBAPerOrderFulfillmentFee" },
                { "amount": { "currencyCode": "USD", "value": "0.0" }, "name": "FBATransportationFee" },
                { "amount": { "currencyCode": "USD", "value": "12.5" }, "name": "FBAPerUnitFulfillmentFee" }
            ],
            "estimatedShippingWeight": { "unit": "POUNDS", "value": "0.789" },
            "featureConstraints": [{ "featureFulfillmentPolicy": "Required", "featureName": "BLANK_BOX" }],
            "fulfillmentPreviewShipments": [{
                "earliestArrivalDate": "2025-09-15T07:00:00Z",
                "earliestShipDate": "2025-09-13T07:00:00Z",
                "fulfillmentPreviewItems": [{
                    "estimatedShippingWeight": { "unit": "POUNDS", "value": "0.789" },
                    "quantity": 1,
                    "sellerFulfillmentOrderItemId": "Item1",
                    "sellerSku": "SKU1",
                    "shippingWeightCalculationMethod": "Package"
                }],
                "latestArrivalDate": "2025-09-16T06:59:59Z",
                "latestShipDate": "2025-09-14T06:59:59Z"
            }],
            "isFulfillable": true,
            "marketplaceId": "ATVPDKIKX0DER",
            "shippingSpeedCategory": "Expedited",
            "unfulfillablePreviewItems": []
        }]
    }
}

v2026-07-04 sample response:

{
    "plannedShipments": [{
        "estimatedShippingWeight": {
            "unit": "POUNDS",
            "value": "0.789"
        },
        "items": [{ "productIdentifier": { "amazonSku": "SKU1" }, "amount": { "unit": "EACHES", "value": "1" } }],
        "offers": [{
            "fulfillmentConfiguration": {
                "serviceLevel": {
                    "serviceTier": "EXPEDITED",
                    "deliveryInterval": {
                        "startTime": "2025-09-15T07:00:00Z",
                        "endTime": "2025-09-16T06:59:59Z"
                    },
                    "shipInterval": {
                        "startTime": "2025-09-13T07:00:00Z",
                        "endTime": "2025-09-14T06:59:59Z"
                    }
                },
                "services": {
                    "packaging": { "packagingOption": "UNBRANDED" }
                }
            },
            "estimatedPrice": {
                "rollupPrices": [
                    { "type": "FBAPerOrderFulfillmentFee", "value": { "currencyCode": "USD", "amount": "0.0" } },
                    { "type": "FBATransportationFee", "value": { "currencyCode": "USD", "amount": "0.0" } },
                    { "type": "FBAPerUnitFulfillmentFee", "value": { "currencyCode": "USD", "amount": "12.5" } }
                ],
                "totalPrice": { "currencyCode": "USD", "amount": "12.5" }
            }
        }]
    }]
}

createFulfillmentOrder to createOrder

Parameters and structure:

Locationv2020-07-01v2026-07-04
Path/fulfillmentOrders/orders
BodysellerFulfillmentOrderIdorderId
BodyshippingSpeedCategory: "STANDARD"fulfillmentConfiguration.serviceLevel.serviceTiers: ["STANDARD"]
BodyfulfillmentAction: "SHIP"fulfillmentConfiguration.action: "SHIP"
BodyfulfillmentPolicy: "FillAllAvailable"fulfillmentConfiguration.policy: "FILL_ALL_AVAILABLE"
BodydestinationAddressdestination.deliveryAddress
BodymarketplaceIdorigin.countryCode
BodyitemslineItems
BodyfeatureConstraintsfulfillmentConfiguration.services
BodydeliveryPreferencesdestination.deliveryNotes / destination.dropOffLocation
BodycodSettingsfulfillmentConfiguration.services.delivery.paymentOnDelivery
Body--channel (new)
Body.itemssellerSKUproduct.productIdentifier.amazonSku
Body.itemssellerFulfillmentOrderItemIdlineItemId
Body.itemsquantityamount.value (with amount.unit: "EACHES")

v2020-07-01 sample request:

POST /fba/outbound/2020-07-01/fulfillmentOrders
Content-Type: application/json

{
    "sellerFulfillmentOrderId": "ABC123",
    "shippingSpeedCategory": "Standard",
    "fulfillmentAction": "Ship",
    "fulfillmentPolicy": "FillAllAvailable",
    "destinationAddress": {
        "name": "Recipient Name", "addressLine1": "1000 Winthrop Ave N",
        "city": "Seattle", "countryCode": "US",
        "postalCode": "98103", "stateOrRegion": "WA", "email": "[email protected]"
    },
    "marketplaceId": "ATVPDKIKX0DER",
    "items": [{ "sellerFulfillmentOrderItemId": "item1", "sellerSKU": "SKU1", "quantity": 2 }],
    "featureConstraints": [{ "featureName": "BLANK_BOX", "featureFulfillmentPolicy": "Required" }]
}

v2026-07-04 sample request:

POST /fulfillment/outbound/2026-07-04/orders
Content-Type: application/json

{
    "orderId": "ABC123",
    "channel": "SHOPIFY",
    "fulfillmentConfiguration": {
      "serviceLevel": { "serviceTiers": ["STANDARD"] },
      "action": "SHIP",
      "policy": "FILL_ALL_AVAILABLE",
      "services": {
        "packaging": { "packagingOption": "UNBRANDED" }
      }
    },
    "destination": {
        "deliveryAddress": {
            "name": "Recipient Name", "addressLine1": "1000 Winthrop Ave N",
            "city": "Seattle", "countryCode": "US",
            "postalCode": "98103", "stateOrRegion": "WA", "email": "[email protected]"
        }
    },
    "origin": { "countryCode": "US" },
    "lineItems": [{
        "lineItemId": "item1",
        "product": { "productIdentifier": { "amazonSku": "SKU1" } },
        "amount": { "unit": "EACHES", "value": "2.0" }
    }]
}

listAllFulfillmentOrders to listOrders

Parameters and structure:

Locationv2020-07-01v2026-07-04
Path/fulfillmentOrders/orders
Query ParamsqueryStartDateupdatedAfter
Query ParamsnextTokenpageToken
Query Params--shipments=EXCLUDE/INCLUDE
Responsepayload wrapperno wrapper; object returned directly
ResponsenextTokenpagination.nextToken

v2020-07-01 sample response:

{
    "payload": {
        "fulfillmentOrders": [{
            "sellerFulfillmentOrderId": "ORDER1",
            "marketplaceId": "31060",
            "shippingSpeedCategory": "Expedited",
            "destinationAddress": {
                "name": "Recipient Name",
                "addressLine1": "1000 Winthrop Ave N",
                "addressLine2": "Floor 19",
                "city": "Seattle",
                "countryCode": "US",
                "phone": "123-456-7890",
                "postalCode": "98103",
                "stateOrRegion": "WA"
            },
            "fulfillmentPolicy": "FillAllAvailable",
            "receivedDate": "2025-09-02T17:34:18Z",
            "fulfillmentOrderStatus": "Unfulfillable",
            "statusUpdatedDate": "2025-09-03T18:13:44Z",
            "featureConstraints": [{
                "featureName": "BLANK_BOX",
                "featureFulfillmentPolicy": "Required"
            }]
        }],
        "nextToken": "nextPageToken"
    }
}

v2026-07-04 sample response:

{
    "orders": [{
        "fulfillmentConfiguration": {
            "serviceLevel": { "serviceTiers": ["EXPEDITED"] },
            "action": "SHIP",
            "policy": "FILL_ALL_AVAILABLE"
        },
        "destination": {
            "deliveryAddress": {
                "name": "Recipient Name",
                "addressLine1": "1000 Winthrop Ave N",
                "addressLine2": "Floor 19",
                "city": "Seattle",
                "countryCode": "US",
                "phone": "123-456-7890",
                "postalCode": "98103",
                "stateOrRegion": "WA"
            }
        },
        "orderId": "ORDER1",
        "origin": { "countryCode": "US" },
        "receiveTime": "2025-09-02T17:34:18Z",
        "status": "UNFULFILLABLE",
        "statusUpdateTime": "2025-09-03T18:13:44Z"
    }],
    "pagination": {
        "nextToken": "nextPageToken"
    }
}

getFulfillmentOrder to getOrder

Parameters and structure:

Locationv2020-07-01v2026-07-04
Path/fulfillmentOrders/{sellerFulfillmentOrderId}/orders/{orderId}
Query Params--shipments=EXCLUDE/INCLUDE
Responsepayload wrapperno wrapper; object returned directly
ResponsefulfillmentOrderStatusstatus
ResponsestatusUpdatedDatestatusUpdateTime
ResponsereceivedDatereceiveTime
ResponsefulfillmentShipmentsshipments
ResponsefulfillmentShipmentPackagepackages
ResponsepackageNumber: "1"packageId: "PKG-abc123def456"
Response--packages[].status (new)
ResponseserialNumberunitIdentifiers
ResponsefulfillmentCenterId (e.g., "PAE2")amazonFacility.facilityId + amazonFacility.address (name, addressLine1, city, stateOrRegion, postalCode, countryCode)
ResponsecarrierCode + trackingNumbertracking.carrier (carrierCode, trackingNumber, trackingUrl) + tracking.amazon (trackingNumber, trackingUrl)
ResponsedeliveryPhotoUrltracking.proofOfDelivery.deliveryPhotoUrl
ResponsedeliveryInformation.dropOffLocationtracking.dropOffLocation

v2020-07-01 sample response:

{
    "payload": {
        "fulfillmentOrder": {
            "sellerFulfillmentOrderId": "ABC123",
            "marketplaceId": "ATVPDKIKX0DER",
            "shippingSpeedCategory": "Expedited",
            "destinationAddress": {
                "name": "Recipient Name", "addressLine1": "1000 Winthrop Ave N",
                "city": "Seattle", "countryCode": "US",
                "postalCode": "98103", "stateOrRegion": "WA"
            },
            "fulfillmentAction": "Ship",
            "fulfillmentPolicy": "FillAllAvailable",
            "receivedDate": "2025-08-28T23:39:38Z",
            "fulfillmentOrderStatus": "Complete",
            "statusUpdatedDate": "2025-08-29T08:29:05Z"
        },
        "fulfillmentOrderItems": [{
            "sellerFulfillmentOrderItemId": "item1", "sellerSku": "SKU1",
            "quantity": "2", "cancelledQuantity": "0", "unfulfillableQuantity": "0",
            "estimatedShipDate": "2025-08-30T06:59:59Z",
            "estimatedArrivalDate": "2025-08-31T06:59:59Z"
        }],
        "fulfillmentShipments": [{
            "amazonShipmentId": "shipmentID",
            "fulfillmentCenterId": "PSP1",
            "fulfillmentShipmentStatus": "SHIPPED",
            "shippingDate": "2025-08-29T08:23:44Z",
            "estimatedArrivalDate": "2025-08-31T06:59:59Z",
            "fulfillmentShipmentItem": [{
                "sellerSku": "SKU1", "sellerFulfillmentOrderItemId": "item1",
                "quantity": "2", "packageNumber": "1341598491"
            }],
            "fulfillmentShipmentPackage": [{
                "packageNumber": "1341598491",
                "carrierCode": "Amazon Logistics",
                "trackingNumber": "TBA32397232322",
                "estimatedArrivalDate": "2025-08-30T03:00:00Z"
            }]
        }]
    }
}

v2026-07-04 sample response:

{
    "order": {
        "orderId": "ABC123",
        "receiveTime": "2025-08-28T23:39:38Z",
        "fulfillmentConfiguration": {
          "serviceLevel": { "serviceTiers": ["EXPEDITED"] },
          "action": "SHIP",
          "policy": "FILL_ALL_AVAILABLE"
        },
        "status": "COMPLETE",
        "statusUpdateTime": "2025-08-29T08:29:05Z",
        "destination": {
            "deliveryAddress": {
                "name": "Recipient Name", "addressLine1": "1000 Winthrop Ave N",
                "city": "Seattle", "countryCode": "US",
                "postalCode": "98103", "stateOrRegion": "WA"
            }
        },
        "lineItems": [{
            "lineItemId": "item1",
            "product": { "productIdentifier": { "amazonSku": "SKU1" } },
            "amount": { "unit": "EACHES", "value": "1" },
            "cancelledAmount": { "unit": "EACHES", "value": "0" },
            "unfulfillableAmount": { "unit": "EACHES", "value": "0" }
        }],
        "shipments": [{
            "amazonShipmentId": "shipmentID",
            "amazonFacility": {
                "facilityId": "PSP1",
                "address": {
                    "name": "PSP1", "addressLine1": "1010 W 4th Street",
                    "postalCode": "92223-2684", "countryCode": "US",
                    "stateOrRegion": "CA", "city": "BEAUMONT"
                }
            },
            "status": "SHIPPED",
            "shipTime": "2025-08-29T08:23:44Z",
            "deliveryTime": "2025-08-31T06:59:59Z",
            "items": [{
                "productIdentifier": { "amazonSku": "SKU1" },
                "lineItemId": "item1",
                "amount": { "value": "2", "unit": "EACHES" }
            }],
            "packages": [{
                "packageId": "PKG-abc123def456",
                "status": "IN_TRANSIT",
                "tracking": {
                  "carrier": {
                    "carrierCode": "Amazon Logistics",
                    "trackingNumber": "TBA32397232322",
                    "trackingUrl": "https://www.swiship.com/track?id=TBA32397232322"
                  }
                },
                "deliveryTime": "2025-08-29T20:00:00Z"
            }]
        }]
    }
}

updateFulfillmentOrder to updateOrder

Parameters and structure:

Locationv2020-07-01v2026-07-04Notes
Path/fulfillmentOrders/{sellerFulfillmentOrderId}/orders/{orderId}-
Body ParamsFull order object with fulfillmentActionfulfillmentConfiguration.actionOnly fulfillmentConfiguration.action is needed in v2026-07-04

v2020-07-01 sample request:

PUT /fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}
Content-Type: application/json

{
    "sellerFulfillmentOrderId": "ABC123",
    "shippingSpeedCategory": "Standard",
    "fulfillmentAction": "Ship",
    "fulfillmentPolicy": "FillAllAvailable",
    "destinationAddress": {
        "name": "Recipient Name",
        "addressLine1": "1000 Winthrop Ave N",
        "addressLine2": "Floor 19",
        "city": "Seattle",
        "stateOrRegion": "WA",
        "postalCode": "98103",
        "countryCode": "US",
        "phone": "123-456-7890"
    },
    "items": [{ "sellerFulfillmentOrderItemId": "item1", "sellerSKU": "SKU1", "quantity": 2 }],
    "featureConstraints": [{ "featureName": "BLANK_BOX", "featureFulfillmentPolicy": "Required" }]
}

v2026-07-04 sample request:

PUT /fulfillment/outbound/2026-07-04/orders/{orderId}
Content-Type: application/json

{
  "fulfillmentConfiguration": {
    "action": "SHIP"
  }
}

submitFulfillmentOrderStatusUpdate to updateOrderStatus (sandbox only)

Parameters and structure:

Locationv2020-07-01v2026-07-04
Path/fulfillmentOrders/{sellerFulfillmentOrderId}/status/orders/{orderId}/status
Body ParamsfulfillmentOrderStatusstatus

v2020-07-01 sample request:

PUT /fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}/status
Content-Type: application/json
{
    "fulfillmentOrderStatus": "New"
}

v2026-07-04 sample request:

PUT /fulfillment/outbound/2026-07-04/orders/{orderId}/status
Content-Type: application/json
{
    "status": "PROCESSING"
}

cancelFulfillmentOrder to cancelOrder

Parameters and structure:

Locationv2020-07-01v2026-07-04
Path/fulfillmentOrders/{sellerFulfillmentOrderId}/cancel/orders/{orderId}/cancel

v2020-07-01 sample request:

PUT /fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}/cancel
Content-Type: application/json

v2026-07-04 sample request:

PUT /fulfillment/outbound/2026-07-04/orders/{orderId}/cancel
Content-Type: application/json

New sandbox-only operation updatePackage

updatePackage is new in v2026-07-04 and has no equivalent in v2020-07-01. Use it to simulate granular package delivery states in the dynamic sandbox environment. Unlike updateOrderStatus, which sets order-level status, updatePackage lets you advance individual packages through their delivery lifecycle independently, which is useful for testing multi-shipment order scenarios. Supported statuses: IN_TRANSIT, OUT_FOR_DELIVERY, DELIVERED, DELAYED, UNDELIVERABLE. This operation must be directed to a sandbox endpoint.

Endpoint: PUT /fulfillment/outbound/2026-07-04/orders/{orderId}/packages/{packageId}/status

Sample request:

PUT /fulfillment/outbound/2026-07-04/orders/{orderId}/packages/{packageId}/status
Content-Type: application/json

{
    "status": "IN_TRANSIT"
}

New Tenancy Operations

Fulfillment Service ID (FSID)

Each merchant account has one Fulfillment Service identified by a unique FSID that is formatted like this:

FS01-9rxx11t193fb1

This ID can be passed in the header of non-tenancy API operations to list orders for a specific tenant. The request should have the following header:

x-amzn-fulfillment-service-id: FS01-9rxx11t193fb1

This header is required if your application uses a single authorization token for multi-site APIs, otherwise it's optional.

Create a fulfillment service

The createFulfillmentService operation sets up a fulfillment service. The ID it returns is your FSID. Default fulfillment settings are applied by default to createOrder and preview.

Endpoint: POST /fulfillment/outbound/2026-07-04/services

Sample request:

{
    "fulfillmentService": {
        "merchantAccountId": "amzn1.merchant.o.A17KH38GVBK888",
        "description": "Fulfillment Service 1",
        "fulfillmentConfiguration": {
            "serviceLevel": {
                "serviceTiers": ["STANDARD", "EXPEDITED"]
            },
            "policy": "FILL_ALL_AVAILABLE",
            "services": {
                "packaging": { "packagingOption": "UNBRANDED" }
            }
        }
    }
}

Sample response:

{
    "id": "FS01-o8vlfw8b1tiu1",
    "status": "ACTIVE"
}

List fulfillment services

The listFulfillmentServices operation lists all fulfillment services associated with your merchant account or partner account.

Endpoint: GET /fulfillment/outbound/2026-07-04/services

Sample response:

{
  "fulfillmentServices": [
    {
      "id": "FS01-a9bk3m7np2qrs",
      "description": "Fulfillment service for TikTok Shop US orders with unbranded packaging.",
      "merchantAccountId": "amzn1.merchant.o.A17KH38GVBK888",
      "status": "ACTIVE",
      "fulfillmentConfiguration": {
        "serviceLevel": { "serviceTiers": ["STANDARD", "EXPEDITED"] },
        "action": "SHIP",
        "policy": "FILL_ALL_AVAILABLE",
        "services": { "packaging": { "packagingOption": "UNBRANDED" }, "additional": {} }
      }
    },
    {
      "id": "FS01-o8vlfw8b1tiu1",
      "description": "Primary Shopify fulfillment channel with branded packaging.",
      "merchantAccountId": "amzn1.merchant.o.A17KH38GVBK888",
      "status": "ACTIVE",
      "fulfillmentConfiguration": {
        "serviceLevel": { "serviceTiers": ["STANDARD", "EXPEDITED", "PRIORITY"] },
        "action": "SHIP",
        "policy": "FILL_ALL_AVAILABLE",
        "services": { "packaging": { "packagingOption": "UNBRANDED" }, "additional": {} }
      }
    }
  ],
  "pagination": {
    "nextToken": "eyJwYWdlIjoyfQ=="
  }
}

Retrieve a fulfillment service

The getFulfillmentService operation returns metadata for a specific fulfillment service.

Endpoint: GET /fulfillment/outbound/2026-07-04/services/{id}

Sample response:

{
  "fulfillmentService": {
    "id": "FS01-a9bk3m7np2qrs",
    "description": "Fulfillment service for TikTok Shop US orders with unbranded packaging.",
    "merchantAccountId": "amzn1.merchant.o.A3TK7X1B2CD9EF",
    "status": "ACTIVE",
    "fulfillmentConfiguration": {
      "serviceLevel": { "serviceTiers": ["STANDARD", "EXPEDITED"] },
      "action": "SHIP",
      "policy": "FILL_ALL_AVAILABLE",
      "services": { "packaging": { "packagingOption": "UNBRANDED" } }
    }
  }
}

Update a fulfillment service

The updateFulfillmentService operation updates a service. It can update metadata such as description or display name, or de-activate an existing service.

Endpoint: PUT /fulfillment/outbound/2026-07-04/services/{fulfillmentServiceId}

Sample request:

{
  "fulfillmentService": {
    "description": "Updated fulfillment service with overbox packaging.",
    "status": "ACTIVE",
    "fulfillmentConfiguration": {
      "serviceLevel": { "serviceTiers": ["STANDARD"] },
      "action": "SHIP",
      "policy": "FILL_OR_KILL",
      "services": {
        "packaging": {
          "packagingOption": "ANY",
          "overbox": "REQUIRED"
        }
      }
    }
  }
}

Did this page help you?