Order management APIs
You can use the order management APIs listed in this section to check fulfillment eligibility for requested SKU(s), create customer order, and cancel customer order.
Fetch delivery promise
Checks fulfillment eligibility for requested SKU(s) and evaluates the delivery SLA or shipping promise based on fulfillment details. This API creates a promise request and validates the destination postal or state information.
Endpoint
POST https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments/fetchOrderPromiseOptions
Sample request
curl -X POST "https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments/fetchOrderPromiseOptions" \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ -H "Content-Type: application/json" \ -H "martId: 202" \ -H "buId: 0" \
{ "header": { "headerAttributes": { "martId": "202", "buId": "0" } }, "payload": { "offerSelections": [ { "offers": [ { "sku": "SKU-1", "lineId": "1", "salesUnit": "EACH", "requestedQuantity": { "measurementValue": 1, "unitOfMeasure": "EACH" }, "shippingMethod": "STANDARD" } ] } ], "destinations": [ { "fulfillmentType": "S2H", "address": { "line1": "100 Main St", "city": "San Francisco", "state": "CA", "country": "US", "zip": "94103" } } ] }
}
import requests url = "https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments/fetchOrderPromiseOptions"
headers = { "Authorization": "Bearer <ACCESS_TOKEN>", "Content-Type": "application/json", "martId": "202", "buId": "0", "Accept": "application/json",
} body = { "header": { "headerAttributes": { "martId": "202", "buId": "0" } }, "payload": { "offerSelections": [ { "offers": [ { "sku": "SKU-1", "lineId": "1", "salesUnit": "EACH", "requestedQuantity": { "measurementValue": 1, "unitOfMeasure": "EACH" }, "shippingMethod": "STANDARD" } ] } ], "destinations": [ { "fulfillmentType": "S2H", "address": { "line1": "100 Main St", "city": "San Francisco", "state": "CA", "country": "US", "zip": "94103" } } ] }
} response = requests.post(url, headers=headers, json=body, timeout=30)
response.raise_for_status()
print(response.json())
Sample response (202 Accepted)
On success this API returns a HTTPS 202 Accepted indicating that all the specified SKUs are available.
{ "header": { "headerAttributes": { "martId": "202", "buId": "0" } }, "payload": { "destinations": [ { "fulfillmentType": "DELIVERY", "address": { "city": "jordan", "addressType": "RESIDENTIAL", "line1": "helloijdiwhjcijhi", "zip": "94102", "country": "US", "state": "CA", "postalCode": "94102" } } ], "offers": [ { "availableQuantity": { "measurementValue": 10, "unitOfMeasure": "EA" }, "requestedQuantity": { "measurementValue": 2, "unitOfMeasure": "EA" }, "lineId": "1", "salesUnit": "Each", "sku": "SKU-3" } ], "fulfillmentPlans": [ { "fulfillmentModules": [ { "name": "UNSCHEDULED_DELIVERY", "fulfillmentGroups": [ { "fulfillmentOptions": [ { "fulfillmentMode": "UNSCHEDULED", "accessType": "DELIVERY_ADDRESS", "fulfillmentType": "DELIVERY", "fulfillments": [ { "fulfillmentId": "989b726d-...", "nodeType": "FC", "sla": { "tier": "SLA_TIER_FIVE_TO_SEVEN_DAY", "speed": "VALUE" }, "fulfillmentTime": { "date": { "minPromiseDate": "2025-10-15", "maxPromiseDate": "2025-10-17" } }, "lineItemAttributesList": [ { "availableQuantity": { "measurementValue": 10, "unitOfMeasure": "EA" }, "lineId": "1", "fulfillmentChannel": ["WFS_FULFILLED"] } ] } ] } ] } ] } ] } ] }, "status": "SUCCESS"
} Sample response (206 Partial Content)
This API returns a HTTPS 206 Partial Content response when some SKUs are unavailable indicated by PARTIAL_SUCCESS in the response message.
Error response
This API returns a HTTPS 400 status when there are validation errors and 500 status when there are internal errors.
Create customer order
Creates a mock MCS Order to simulate fulfillment through Walmart’s network. This API performs the following operations:
- Validates the request using
CREATE-FULFILLMENT-MOCKER-REQUEST-VALIDATIONand enforces rules forsellerOrderId/customerOrderNo. For instance, if both are present, they must match. - Derives the account context and internal identifiers from the environment or tenant. This API maps the
martIdorbuIdfrom request header. Do not sendorgIdas a query parameter. - Adjusts mock inventory, for instance decreases the
availableToSellUnitsfor each SKU its ordered quantity. - If email or shipping method is missing or unsupported, default values are applied.
Endpoint
POST https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments
Sample request
curl -X POST "https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments" \ -H "Authorization: Bearer <ACCESS_TOKEN>" \ -H "Content-Type: application/json" \ -H "martId: 202" \ -H "buId: 0" \
{ "header": { "headerAttributes": { "martId": "202", "buId": "0" } }, "payload": { "orderChannelId": "ORDER_CHANNEL_ID", "sellerOrderId": "SO123", "customerOrderNo": "SO123", "orderPlacedTime": "2017-07-21T17:32:28Z", "customer": { "contact": { "name": { "firstName": "A", "lastName": "B" }, "phone": "555-111-2222", "email": "[email protected]" } }, "orderItems": [ { "sellerLineId": "1", "fulfillmentType": "S2H", "shippingMethod": "STANDARD", "itemDetail": { "sku": "SKU-1", "description": "Example product description" }, "qty": { "unitOfMeasure": "EACH", "measurementValue": 1 }, "shippingTo": { "contact": { "name": { "firstName": "A", "lastName": "B" }, "phone": "555-111-2222", "email": "[email protected]" }, "address": { "line1": "100 Main St", "city": "San Francisco", "state": "CA", "country": "US", "zip": "94103" } }, "chargeDetails": [ { "chargeCategory": "ITEM", "chargePerUnit": { "currencyAmount": 100, "currencyUnit": "USD" } } ] } ] }
} import requests url = "https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments"
headers = { "Authorization": "Bearer <ACCESS_TOKEN>", "Content-Type": "application/json", "martId": "202", "buId": "0", "Accept": "application/json",
} body = { "header": {"headerAttributes": {"martId": "202", "buId": "0"}}, "payload": { "orderChannelId": "ORDER_CHANNEL_ID", "sellerOrderId": "SO123", "customerOrderNo": "SO123", "orderPlacedTime": "2017-07-21T17:32:28Z", "customer": { "contact": { "name": {"firstName": "A", "lastName": "B"}, "phone": "555-111-2222", "email": "[email protected]", } }, "orderItems": [ { "sellerLineId": "1", "fulfillmentType": "S2H", "shippingMethod": "STANDARD", "itemDetail": {"sku": "SKU-1", "description": "Example product description"}, "qty": {"unitOfMeasure": "EACH", "measurementValue": 1}, "shippingTo": { "contact": { "name": {"firstName": "A", "lastName": "B"}, "phone": "555-111-2222", "email": "[email protected]", }, "address": { "line1": "100 Main St", "city": "San Francisco", "state": "CA", "country": "US", "zip": "94103", }, }, "chargeDetails": [ { "chargeCategory": "ITEM", "chargePerUnit": {"currencyAmount": 100, "currencyUnit": "USD"}, } ], } ], },
} response = requests.post(url, headers=headers, json=body, timeout=30)
response.raise_for_status()
print(response.json())
Success response (202 Accepted)
On success, the endpoint performs create business logic and returns 202 Accepted with a requestId.
{ "status": "ACCEPTED", "header": { /* echoed header */ }, "payload": { "requestId": "SO123" }
}
Error response
On validation failures, returns 400 Bad Request with error code INVALID_MCS_REQUEST. Unexpected server errors return 500 Internal Server Error.
Cancel customer order
Cancels test MCS order before shipment to stop fulfillment and return reserved inventory to the account. The allowed cancellation window is 60 minutes. This API performs the following operations:
- Validates the request using
CREATE-FULFILLMENT-MOCKER-REQUEST-VALIDATIONand enforces rules forsellerOrderId/customerOrderNo. For instance, if both are present, they must match. - Derives the account context and internal identifiers from the environment or tenant. This API maps the
martIdorbuIdfrom request header. Do not sendorgIdas a query parameter. - Adjusts mock inventory, for instance decreases the
availableToSellUnitsfor each SKU its ordered quantity. - If email or shipping method is missing or unsupported, default values are applied.
Endpoint
POST https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments/cancel
Sample request
{ "header": { "headerAttributes": { "martId": "202", "buId": "0" } }, "payload": { "sellerId": "ACCOUNT_ID", "sellerOrderId": "SO123", "customerOrderNo": "SO123", "orderItems": [ { "sellerLineId": "1", "qty": { "unitOfMeasure": "EACH", "measurementValue": 1 } } ] }
}
import requests url = "POST https://sandbox.walmartapis.com/v3/fulfillment/orders-fulfillments/cancel"
headers = { "Authorization": "Bearer <ACCESS_TOKEN>", "Content-Type": "application/json", "martId": "202", "buId": "0", "Accept": "application/json",
} body = { "header": { "headerAttributes": { "martId": "202", "buId": "0" } }, "payload": { "sellerId": "ACCOUNT_ID", "sellerOrderId": "SO123", "customerOrderNo": "SO123", "orderItems": [ { "sellerLineId": "1", "qty": {"unitOfMeasure": "EACH", "measurementValue": 1} } ] }
} response = requests.post(url, headers=headers, json=body, timeout=30)
response.raise_for_status()
print(response.json())
Success response (202 Accepted)
{ "status": "ACCEPTED", "header": { /* echoed header */ }, "payload": { "requestId": "SO123" }
}
Error response
On validation failures, returns 400 Bad Request with error code INVALID_MCS_REQUEST. Unexpected server errors return 500 Internal Server Error.
Updated 2 days ago
