FULFILLMENT_ORDER_STATUS Notification Migration Guide
Learn how to migrate the FULFILLMENT_ORDER_STATUS notification from payload version 1.0 to 2026-07-04.
A new payload version of the FULFILLMENT_ORDER_STATUS notification is now available: 2026-07-04. This version introduces a redesigned schema aligned with the Fulfillment Outbound API v2026-07-04 model, to simplify correlating notification data with API responses without field mapping. Existing developers who subscribed using the legacy PayloadVersion 1.0 can continue to receive updates by noting the schema differences in this guide and updating their field references.
Both 1.0 and 2026-07-04 are supported. A subscription uses one payload version at a time, so you do not need to maintain subscriptions on both versions simultaneously.
What's new
- New package-level event type: The v2026-07-04 notification adds a new
SHIPMENT_PACKAGE_STATUS_CHANGEDevent that reports package delivery progress (IN_TRANSIT,OUT_FOR_DELIVERY,DELAYED,DELIVERED,UNDELIVERABLE,EXPIRED). The legacy notification had no package-level delivery events. - Estimated delivery time on packages: The notification includes
packages[].deliveryTime— the estimated delivery date and time of the package. This estimate is available before the package is delivered, so you no longer need to callgetOrderto obtain a delivery estimate. - Schema aligned with Outbound API v2026-07-04: Field names, object structure, and status values across the notification payload now match the
getOrderandlistOrdersresponse model. Developers who have already migrated to the Outbound API v2026-07-04 will recognize the field names without additional mapping.
Key changes
EventTypestring replaced byeventTypeenumeration. The legacyEventTypevalues"Order"and"Shipment"map toORDER_STATUS_CHANGEDandSHIPMENT_STATUS_CHANGED. These two events are not new — only the field name and values changed.SHIPMENT_PACKAGE_STATUS_CHANGEDis the only new event type in v2026-07-04. Returns are no longer delivered via this notification.- Order status values changed:
Complete,CompletePartialled,Unfulfillable,Processing→COMPLETE,COMPLETE_PARTIAL,UNFULFILLABLE,PROCESSING. The v2026-07-04 order status set also includesCANCELLEDandINVALID. - Payload wrapper renamed to
order. The legacyPayload.FulfillmentOrderStatusNotificationwrapper is removed; order fields are now underPayload.order. FulfillmentShipmentsingle object replaced byorder.shipments[]array. The array shape gives flexibility for future multi-shipment scenarios. Multiple shipments per order are not currently supported, so expect a single entry inshipments[].FulfillmentShipmentPackages[]renamed topackages[].PackageNumber(integer) is replaced bypackageId(string). Carrier and tracking info are now nested under atrackingobject.StatusUpdatedDateTimereplaced byEventTime. The event timestamp has moved to the notification envelope (top-level field), consistent with all other SP-API notification types.
This guide details the changes to the notification payload structure and the steps to update your subscription and parser.
Notification payload structure
The notification payload structure has been updated.
Parameters and structure:
| v1.0 | v2026-07-04 |
|---|---|
PayloadVersion: "1.0" | PayloadVersion: "2026-07-04" |
Payload.FulfillmentOrderStatusNotification (wrapper object) | Payload.order (wrapper renamed) |
SellerId | merchantId |
SellerFulfillmentOrderId | order.orderId |
StatusUpdatedDateTime | EventTime (notification envelope field) |
EventType: "Order" / "Shipment" | eventType: ORDER_STATUS_CHANGED / SHIPMENT_STATUS_CHANGED (values renamed) |
| — (no package-level event) | eventType: SHIPMENT_PACKAGE_STATUS_CHANGED (new event type) |
FulfillmentOrderStatus PascalCase (for example, "Complete", "CompletePartialled") | order.status SCREAMING_SNAKE_CASE (for example, "COMPLETE", "COMPLETE_PARTIAL"; adds CANCELLED, INVALID) |
FulfillmentShipment (single object) | order.shipments[] (array; single shipment supported today) |
FulfillmentShipment.FulfillmentShipmentStatus | shipments[].status |
FulfillmentShipment.AmazonShipmentId | shipments[].amazonShipmentId |
FulfillmentShipment.EstimatedArrivalDateTime | packages[].deliveryTime (estimated delivery time, per package) |
FulfillmentShipmentPackages[] | shipments[].packages[] |
FulfillmentShipmentPackages[].PackageNumber (integer) | packages[].packageId (string) |
FulfillmentShipmentPackages[].CarrierCode | packages[].tracking.carrier.carrierCode |
FulfillmentShipmentPackages[].TrackingNumber | packages[].tracking.carrier.trackingNumber |
| — | packages[].tracking.amazon.trackingNumber (new) |
| — | packages[].deliveryTime (new — estimated delivery time) |
FulfillmentReturnItem | Removed — returns are no longer included in this notification |
Sample notification — shipment shipped:
v1.0 sample notification
{
"NotificationVersion": "1.0",
"NotificationType": "FULFILLMENT_ORDER_STATUS",
"PayloadVersion": "1.0",
"EventTime": "2020-01-11T00:09:53.109Z",
"Payload": {
"FulfillmentOrderStatusNotification": {
"SellerId": "merchantId",
"EventType": "Shipment",
"StatusUpdatedDateTime": "2020-01-11T00:09:53.109Z",
"SellerFulfillmentOrderId": "ABC123XYZ",
"FulfillmentOrderStatus": "Complete",
"FulfillmentShipment": {
"FulfillmentShipmentStatus": "Shipped",
"AmazonShipmentId": "SHIP901234",
"EstimatedArrivalDateTime": "2020-01-14T22:59:59Z",
"FulfillmentShipmentPackages": [{
"PackageNumber": 123,
"CarrierCode": "FEDEX",
"TrackingNumber": "123456789"
}]
}
}
},
"NotificationMetadata": {
"ApplicationId": "amzn1.sellerapps.app.f1234566-aaec-55a6-b123-bcb752069ec5",
"SubscriptionId": "7d78cc50-95c8-4641-add7-10af4b1fedc9",
"PublishTime": "2020-01-11T00:02:50.501Z",
"NotificationId": "2012e8e5-b365-4cb1-9fd8-be9dfc6d5eaf"
}
}v2026-07-04 sample notification
{
"NotificationVersion": "1.0",
"NotificationType": "FULFILLMENT_ORDER_STATUS",
"PayloadVersion": "2026-07-04",
"EventTime": "2026-07-04T00:02:48.501Z",
"Payload": {
"merchantId": "merchantId",
"eventType": "SHIPMENT_STATUS_CHANGED",
"order": {
"orderId": "ABC123XYZ",
"status": "PROCESSING",
"shipments": [{
"amazonShipmentId": "SHIP901234",
"amazonFacility": { "facilityId": "FC456" },
"status": "SHIPPED",
"items": [{
"lineItemId": "LI789012",
"productIdentifier": { "amazonSku": "SKU123" },
"amount": { "value": "2.0", "unit": "EACHES" },
"packageId": "123",
"shipmentItemId": "SI001"
}],
"packages": [{
"packageId": "123",
"status": "PROCESSING",
"tracking": {
"carrier": { "carrierCode": "FEDEX", "trackingNumber": "123456789" },
"amazon": { "trackingNumber": "234567890" }
},
"shipmentItemIds": ["SI001"]
}]
}]
}
},
"NotificationMetadata": {
"ApplicationId": "app-id-d0e9e693-c3ad-4373-979f-ed4ec98dd746",
"SubscriptionId": "subscription-id-d0e9e693-c3ad-4373-979f-ed4ec98dd746",
"PublishTime": "2026-07-04T00:02:50.501Z",
"NotificationId": "2012e8e5-b365-4cb1-9fd8-be9dfc6d5eaf"
}
}Updating your subscription
Update the payloadVersion in your createSubscription call from "1.0" to "2026-07-04". No other changes are needed to the subscription request.
v1.0 sample notification
POST /notifications/v1/subscriptions/FULFILLMENT_ORDER_STATUS
{
"payloadVersion": "1.0",
"destinationId": "your-sqs-destination-id"
}v2026-07-04 sample notification
POST /notifications/v1/subscriptions/FULFILLMENT_ORDER_STATUS
{
"payloadVersion": "2026-07-04",
"destinationId": "your-sqs-destination-id"
}
NoteIf you have an existing active subscription with
payloadVersion: "1.0", create a new subscription withpayloadVersion: "2026-07-04"and delete the old one after validating your updated handler.
New event type
SHIPMENT_PACKAGE_STATUS_CHANGED
SHIPMENT_PACKAGE_STATUS_CHANGEDSHIPMENT_PACKAGE_STATUS_CHANGED is the only new event type in v2026-07-04. It fires when a package status changes to IN_TRANSIT, OUT_FOR_DELIVERY, DELAYED, DELIVERED, UNDELIVERABLE, or EXPIRED.
packages[].deliveryTime carries the estimated delivery date and time of the package, which is available before the package is delivered.
Note
ORDER_STATUS_CHANGEDandSHIPMENT_STATUS_CHANGEDare not new — they correspond to the legacyEventTypevalues"Order"and"Shipment". Only the field name (eventType) and the values changed.
Related topics
- FULFILLMENT_ORDER_STATUS notification reference — Field reference tables and payload schema.
- View order notifications with the Notifications API — Subscribe to and handle
FULFILLMENT_ORDER_STATUSnotifications. - Fulfillment Outbound API Migration Guide — Migrate from Fulfillment Outbound v2020-07-01 to v2026-07-04.
Updated about 2 hours ago

