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.

The new Fulfillment Outbound API v2026-07-04 gives you item-level control over packaging, carrier preferences, and fulfillment policies built on a flexible schema to support new shipping speeds. You benefit from granular sandbox controls to simulate split-shipment scenarios and a dedicated tracking API that delivers real-time milestone updates. If you have already built integrations using the previous version of the Fulfillment Outbound API, you can continue to use the same features by taking note of the similarities and differences between the two versions.

What's New

  1. 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.
  2. Dedicated API and notification for shipment tracking: Introduced a new getShipmentTracking operation that supports grantless authorization, batch tracking requests, and multiple tracking number formats, as well as a new SHIPMENT_TRACKING_MILESTONE_CHANGED  notification to receive real-time in-transit updates.
  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. 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. A new Amazon Shipment Tracking API is available with enhanced capabilities that include grantless authorization, batch tracking requests, and real-time milestone notifications. The getPackageTrackingDetails operation is superseded by  getShipmentTracking. Note that the tracking event codes have changed.
  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.

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" },
    {"featureName": "CHANNEL.TIKTOK", "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
BodyfeatureConstraints.featureNamechannel (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" },
    {"featureName": "CHANNEL.TIKTOK", "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}None
Body ParamsFull order object with fulfillmentActionfulfillmentConfiguration.actionOnly fulfillmentConfiguration.action is needed in v2026-07-04
Response200 OK (empty body)202 Accepted (empty body)None

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"
  }
}

Sample response:

HTTP/1.1 202 Accepted

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"
}

Sample response:

HTTP/1.1 200 OK

v2026-07-04 sample request:

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

Sample response:

HTTP/1.1 200 OK

cancelFulfillmentOrder to cancelOrder

Parameters and structure:

Locationv2020-07-01v2026-07-04
Path/fulfillmentOrders/{sellerFulfillmentOrderId}/cancel/orders/{orderId}/cancel
Response200 OK (empty body)202 Accepted (empty body)

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

Sample response:

HTTP/1.1 202 Accepted

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"
}

Error Handling Changes

Both v2020-07-01 and v2026-07-04 return errors in an errors array with code and message fields. However, there are important structural and behavioral differences that require updates to integrate.

Key differences

Aspectv2020-07-01v2026-07-04
400 message sourceNested object ($inputRoot.Error.Message)Flat JSON ($inputRoot.message)
details field on 400 errorsNot includedIncluded. Provides field-level validation feedback
HTTP 500 error codeReturns NotFoundReturns InternalFailure
New HTTP status codes-413 (Payload Too Large), 415 (Unsupported Media Type)

400 error structure

In v2020-07-01, error messages embed backend-specific codes directly in the message string:

{
  "errors": [{
    "code": "InvalidInput",
    "message": "Value for parameter SellerFulfillmentOrderId is invalid: QuantityUnavailable"
  }]
}

In v2026-07-04, the message is generic and the details field provides structured, field-level validation information that your integration can parse programmatically:

{
  "errors": [{
    "code": "InvalidInput",
    "message": "Validation failed for the request.",
    "details": "lineItems[0].amount.value must be greater than 0; destination.deliveryAddress.countryCode is required"
  }]
}

Required updates

  • Stop parsing error messages for backend-specific codes: Codes like QuantityUnavailable no longer appear in message text
  • Start consuming the details field on 400 errors: v2026-07-04 provides structured field-level validation info
  • Retry on HTTP 500 by status code, not error code: v2020-07-01 returned NotFound on 500; v2026-07-04 correctly returns InternalFailure
  • Handle 413 and 415 gracefully: New HTTP status codes added in v2026-07-04

Did this page help you?