Order tracking APIs
You can use the order tracking APIs listed in this section to track mock order status progression.
Get fulfillment order status
Retrieves fulfillment status updates for an order from submission through delivery. This API validates that the account has the requested sales channel via GET-STATUS-V1-MOCKER-REQUEST-VALIDATION. It builds an internal status request using the account context, orderNumber, and orderChannelId. Do not send orgId.
Endpoint
GET https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments/status
Sample request
curl -X GET "https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments/status" \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ -H "Content-Type: application/json" \ -H "martId: 202" \ -H "buId: 0"
import requests url = "https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments/status"
params = {"orderNumber": "SO123", "orderChannelId": "ORDER_CHANNEL_ID"}
headers = { "Authorization": "Bearer <ACCESS_TOKEN>", "martId": "202", "buId": "0", "Accept": "application/json",
} response = requests.get(url, headers=headers, params=params, timeout=30)
response.raise_for_status()
print(response.json())
Success response (200 OK)
{ "status": "OK", "header": null, "payload": { "orderNumber": "SO123", "orderChannelId": "ORDER_CHANNEL_ID", "orderPlacedTime": "2025-10-15T12:34:56Z", "orderStatus": "SHIPPED", "orderItems": [ { "sellerLineId": "1", "sku": "SKU-1", "qty": { "unitOfMeasure": "EACH", "measurementValue": 1 }, "lineStatus": "SHIPPED" } ], "shipments": [ { "shipmentId": "SHIP123", "carrier": "CarrierName", "trackNumber": "1Z9999999999999999", "events": [ { "eventTime": "2025-10-16T08:00:00Z", "status": "OUT_FOR_DELIVERY" }, { "eventTime": "2025-10-16T15:30:00Z", "status": "DELIVERED" } ] } ] }, "errors": []
} Error response
If the order cannot be found, returns 400 Bad Request with error code OS_NOT_FOUND_ERROR.
Mock order status progression
In the sandbox environment, mock orders progress through fulfillment status automatically based on the strategy selected per request in the order number prefix. This affects the values returned by the Get Fulfillment Order Status API.
The service determines which progression strategy to use for each request by examining the order number prefix.
- Time-based strategy - If the
customerOrderNois null, blank, or does not begin with a recognized status keyword time-based strategy is used. - Prefix-based strategy - If
customerOrderNostarts with one of the following keywords:SUBMITTED,ACKNOWLEDGED,SHIPPED, or DELIVERED prefix-bases strategy is used.
Time-based strategy
When the customerOrderNo has no status or keyword, the order status is advanced based on elapsed minutes since order creation.
Rules:
- After approximately 60 minutes: status advances to at least
AcknowledgedorProcessing. - After approximately 300 minutes: status advances to
Shipped. - After approximately 600 minutes: status advances to
Delivered. - Statuses only move forward — once
Cancelled, the order remains in that state.
This approach simulates a realistic timeline of order progression during sandbox testing.
Prefix-based strategy
When the customerOrderNo begins with a status keyword, the prefix is used to determine how far the order should progress.
Rules:
- The service finds the last matching status keyword in the order number using the sequence
SUBMITTED → ACKNOWLEDGED → SHIPPED → DELIVERED. - It compares the current internal
statusDescriptionagainst this ordered list:
Fulfillment Request Submitted → PO Created → Shipped → Delivered. - If the current status is behind the prefix-implied target, the order is advanced one step forward.
- If the current status is equal to or ahead of the prefix, no change occurs.
- Cancelled lines are never advanced.
These strategies transform the in-memory OS response just before building the outward FulfillmentServiceResponse, ensuring deterministic testable behavior for status reads.
Updated 1 day ago
