Fulfillment Outbound Dynamic Sandbox Guide
Use the SP-API dynamic sandbox to test Fulfillment Outbound operations.
The Selling Partner API dynamic sandbox environment allows you to test your applications without affecting production data or initiating real-world events. The dynamic sandbox routes requests to a sandbox backend that can return realistic responses based on the request parameters. By sending requests to the sandbox endpoints instead of the SP-API endpoints, you can test standard workflows without impacting production data.
This guide introduces the available dynamic sandbox operations for the Multi-Channel Fulfillment Outbound sandbox environment. For more information about the Selling Partner API sandbox environments, refer to Selling Partner API sandbox.
Dynamic sandbox support for Fulfillment Outbound APIs
The dynamic sandbox is supported for the Fulfillment Outbound API v2020-07-01 and Fulfillment Outbound API v2026-07-04. Making calls to the dynamic sandbox is identical to making production API calls, except that you must direct your requests to a dynamic sandbox endpoint for your region instead of the production endpoint. Refer to Selling Partner API sandbox endpoints for the supported sandbox endpoints.
The following Fulfillment Outbound operations return dynamic responses:
Fulfillment Outbound v2020-07-01
cancelFulfillmentOrdercreateFulfillmentOrdergetFulfillmentOrdergetFulfillmentPreviewgetPackageTrackingDetailslistAllFulfillmentOrdersupdateFulfillmentOrderdeliveryOffers
Fulfillment Outbound v2026-07-04
getOffersgetOrderPreviewcreateOrderlistOrdersgetOrderupdateOrdercancelOrderupdateOrderStatus(sandbox only)updatePackage(sandbox only)
Static responses
The dynamic sandbox backend service doesn't return dynamic responses for all Fulfillment Outbound operations. The service returns static responses for
createFulfillmentReturn,getFeatureInventory,getFeatures,getFeatureSKU, andlistReturnReasonCodes. Any successful call to one of these operations always returns the same static response for that operation.
To use the dynamic sandbox, direct your calls to the appropriate sandbox endpoint instead of the production endpoint. You can test all the tutorials that are listed in the production Fulfillment Outbound Use Case Guide in the dynamic sandbox.
Test the Fulfillment Outbound sandbox with the FBA Inventory dynamic sandbox
You can use the FBA Inventory dynamic sandbox and the Fulfillment Outbound dynamic sandbox together to test with your own SKUs and observe inventory movements as orders are virtually completed.
To enable both:
- Create inventory items in the FBA Inventory dynamic sandbox using
createInventoryItem. - Add stock using
addInventory. - Create Fulfillment Outbound orders referencing those SKUs.
Note
When you use the FBA Inventory and Fulfillment Outbound sandbox APIs together,
HOLDorders are initially created in theReceivedstate, andSHIPorders are created in thePlanningstate (except whenINVALID).
Testing Mechanism
Use updateOrderStatus and updatePackage to manually drive orders and packages through their status life cycles.
To simulate split shipments, set item quantity greater than ten. Each ten-unit increment creates a separate package. For example, a quantity of 25 would create three packages: two of quantity ten, and one of quantity one.
Order test scenarios
| Scenario | Status transitions |
|---|---|
| Fully or partially completed | PROCESSING to COMPLETE or COMPLETE_PARTIAL |
| Unfulfillable | PROCESSING to UNFULFILLABLE |
| Cancelled | PROCESSING to CANCELLED |
Package status transitions
| Scenario | Status transitions |
|---|---|
| Fully or partially completed | PROCESSING to SHIPPED to IN_TRANSIT to OUT_FOR_DELIVERY to DELIVERED |
| Undeliverable | IN_TRANSIT to DELAYED / OUT_FOR_DELIVERY to UNDELIVERABLE |
Once an order or package reaches a terminal status, no further updates can be applied.
Tutorial: Create and complete a sandbox Fulfillment Outbound order
This tutorial explains how to create a sandbox order and move it through the fulfillment process.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you're making calls. For more information, refer to Authorizing Selling Partner API Applications.
- The Amazon Fulfillment role assigned to your developer profile.
- The Amazon Fulfillment role selected in the App registration page for your application.
Step 1: Choose a test scenario
Each scenario lists a sequence of changes to the order status that occur as your fulfillment outbound order is processed.
Step 2: Create a test fulfillment order
Call the createOrder operation.
Step 3: Validate order status
Call the getOrder operation and verify that the status is PROCESSING.
Step 4: Update order status
Call the updateOrderStatus operation, providing the status value as COMPLETE.
Step 5: Validate the order status
Call the getOrder operation and verify that the status is COMPLETE.
Step 6. Update individual packages once shipped
Call updatePackage with the packageId from the getOrder response to advance each package independently
Tutorial: Test a specific Fulfillment Policy
This tutorial explains how to create a sandbox order for a given Fulfillment Policy and move it through the fulfillment process. This tutorial outlines the steps for when FulfillmentPolicy is FILL_ALL_AVAILABLE, but also applies to FILL_OR_KILL and FILL_ALL policies.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. For more information, refer to Authorizing Selling Partner API Applications.
- The Amazon Fulfillment role assigned to your developer profile.
- The Amazon Fulfillment role selected in the App registration page for your application.
Step 1: Create an inventory item
Call the createInventoryItem operation from the FBA Inventory API with your test SKU.
Step 2: Add inventory
Call the addInventory API operation. Add the required inventory to the item or product from step 1.
Step 3: Create a test fulfillment order
Call the createOrder operation. Set fulfillmentConfiguration.policy to FILL_ALL_AVAILABLE. This policy creates the order in the Planning state in the sandbox when used together with the FBA Inventory sandbox.
Step 4: Validate order status
Call the getOrder operation and verify that the status is PROCESSING.
Step 5: Validate inventory values
Call getInventorySummaries. Confirm the following:
fulfillableQuantityis reduced by the order quantity.pendingCustomerOrderQuantityis increased by the order quantity.
Step 6: Update the order status
Call the updateOrderStatus operation. Verify that the status is COMPLETE.
Step 7: Complete the Order
Call getInventorySummaries. Confirm the following:
fulfillableQuantityis reduced.pendingCustomerOrderQuantityis zero.
Business scenarios
Use the following business scenarios to test your Fulfillment Outbound orders. These scenarios represent the main use cases for order creation and fulfillment for seller listings.
Tip
The API scenarios listed in the following table refer to the North American (NA) dynamic sandbox endpoints. To use these examples in other regions, you must replace the endpoints with your region's SP-API sandbox endpoint.
| Use case | Endpoint | Key response | Notes |
|---|---|---|---|
| Preview an order | POST https://sandbox.sellingpartnerapi-na.amazon.com/fulfillment/outbound/2026-07-04/previews | Fees, ship speeds, delivery dates | Optional pre-checkout step |
Create an order in HOLD or SHIP status for different ship speeds | POST https://sandbox.sellingpartnerapi-na.amazon.com/fulfillment/outbound/2026-07-04/orders | 200 / 202 (accepted) or 400 (rejected) | HOLD to reserve and hold up to 14 days; SHIP to release the order for shipment processing |
| List order details for up to 50 orders | GET https://sandbox.sellingpartnerapi-na.amazon.com/fulfillment/outbound/2026-07-04/orders | Orders with item details | Returns the seller order ID, which you can use to call getOrder |
Get order details for OrderId | GET https://sandbox.sellingpartnerapi-na.amazon.com/fulfillment/outbound/2026-07-04/orders/{orderId} | Full fulfillment details, packageId, shipment info | — |
Update order with the specified OrderId | PUT https://sandbox.sellingpartnerapi-na.amazon.com/fulfillment/outbound/2026-07-04/orders/{orderId} | 200 or 400 | Use when orders are in HOLD status but can be updated to SHIP status. You can update these OrderId properties in the sandbox environment: serviceTiers, action, deliveryAddress, items-quantity (quantity can only be reduced; cannot be set to 0) |
Cancel an order with the specified OrderId | PUT https://sandbox.sellingpartnerapi-na.amazon.com/fulfillment/outbound/2026-07-04/orders/{orderId}/cancel | 200 or 400 | Only succeeds when status is PROCESSING |
| Update the fulfillment order status for the specified order (sandbox only) | PUT https://sandbox.sellingpartnerapi-na.amazon.com/fulfillment/outbound/2026-07-04/orders/{orderId}/status | 200 or 400 | To simulate the real-time status update of an order, use this sandbox-only API to move status through state changes, such as those listed in Order test scenarios. |
| Update the status for a specific fulfillment order package (sandbox only) | PUT https://sandbox.sellingpartnerapi-na.amazon.com/fulfillment/outbound/2026-07-04/orders/{orderId}/packages/{packageId} | 200 or 400 | To simulate the real-time status update of a specific shipment package, use this sandbox-only API to move status through state changes (SHIPPED, IN_TRANSIT, OUT_FOR_DELIVERY, DELIVERED, DELAYED) |
Frequently asked questions
Do I need a new set of credentials to access the sandbox?
No. You can use your existing set of production app credentials to access the dynamic sandbox APIs.
Can I use the sandbox for load or performance testing?
No. The service is intended for developer code integration and validation testing. It's not designed for load testing.
Do I need a different catalog and inventory setup for sandbox testing?
The Fulfillment Outbound Sandbox supports developer testing with any SKU and with unlimited inventory. We highly recommend that developers use the FBA Inventory dynamic sandbox to create inventory items, so developers can test with their own SKUs while they observe inventory movements as their merchant fulfillment (MCF) test orders are virtually completed.
Why isn't my sandbox order automatically fulfilled?
In the sandbox, you must call updateOrderStatus to manually advance orders through status changes.
Can I view sandbox orders on the Seller Central portal?
No. Sandbox orders are test orders and cannot be viewed on Seller Central. Retrieve sandbox orders by calling listOrders or getOrder with the sandbox endpoint.
Can I create sandbox orders for any Amazon store?
Yes. The sandbox does not validate origin.countryCode. You can test any valid country/state/postal combination in the delivery address.
Does the sandbox support Export or Fees?
No. The sandbox doesn't support Exports or Fees.
Are all currencies and weights supported?
No. The sandbox only returns the currency in USD and the weight in pounds.
What services are available in the sandbox?
Unbranded packaging and Block AMZL services are available for all Amazon stores in the sandbox.
Does the sandbox support notifications for orders and shipments?
No. Notifications are not sent for sandbox fulfillment orders. use updateOrderStatus and updatePackage instead of relying on notifications.
Updated 9 days ago

