DSV Cost Management API overview (BETA)
Overview
Use the DSV Cost Management API to update item costs in bulk. Drop ship vendors (DSVs) submit a cost feed that sets the unit cost for one or more SKUs at a specific ship node.
This API is a beta release. You must request approval to use this API.
Use this API to:
- Submit bulk cost updates as a feed
- Receive a
feedIdto track processing
Base URLs
- Production:
https://api-gateway.walmart.com - Sandbox:
https://sandbox.walmartapis.com
Audience
- First‑party DSV suppliers and their solution providers
How it works
- Build a cost feed payload with a
header.versionand aCostarray of items. - Call POST
/v3/feeds?feedType=CostwithContent-Typeset toapplication/jsonorapplication/xml. - The service returns a
feedId. Use it to monitor processing in your feed tracking tools.
Before you begin
- Obtain API credentials and generate an access token.
- Include Walmart headers on every request.
- Use a unique correlation ID per call.
Authentication & headers
Use the Authentication Management API to obtain WM_SEC.ACCESS_TOKEN. Send the token in the header for each call. Refresh when tokens expire.
| Header | Type | Required | Description |
|---|---|---|---|
WM_SEC.ACCESS_TOKEN | string | Yes | Access token from the Token API. |
WM_QOS.CORRELATION_ID | string | Yes | Unique ID per request. Use a UUID. |
WM_SVC.NAME | string | Yes | Your Walmart service name. |
Accept | string | Yes | application/json or application/xml. |
WM_CONSUMER.CHANNEL.TYPE | string | No | Channel identifier from onboarding. |
Content-Type | string | Yes | application/json or application/xml for the feed body. |
Environments
- Sandbox is for development and validation. It uses the same path and headers.
- Production processes live cost updates.
Rate limits and retries
Rate limits are not specified. Handle throttling responses such as 429 Too Many Requests and retry with exponential backoff.
Errors
Handle HTTP status codes and structured error bodies.
| Status | Meaning |
|---|---|
| 200 | Feed accepted. Returns a feedId. |
| 400 | Bad request. Validation failed. |
| 401 | Unauthorized. Check or refresh token. |
| 403 | Forbidden. Insufficient permissions. |
| 409 | Conflict. |
| 429 | Too many requests. Back off and retry. |
| 500 | Server error. Retry. |
| 503 | Service unavailable. Retry. |
Endpoint
Update cost for items in bulk
POST /v3/feeds?feedType=Cost
Submits a cost feed. The request body contains a Cost array with one or more cost records.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
feedType | string | Yes | Must be Cost. Case sensitivity depends on backend configuration. |
Request body schema (JSON)
{ "header": { "version": "1" }, "Cost": [ { "sku": "<SKU>", "shipNode": "<SHIP_NODE>", "unitCost": { "amount": 0, "currency": "USD" } } ]
}
Fields
skustring. DSV’s SKU identifier. Encode reserved characters. Encode spaces as%20if used in paths.shipNodestring. Distribution facility identifier for the DSV.unitCost.amountnumber. Unit cost value.unitCost.currencystring. ISO 4217 currency code, such asUSDorGBP.
cURL example (JSON)
curl -X POST 'https://api-gateway.walmart.com/v3/feeds?feedType=Cost' -H 'WM_SEC.ACCESS_TOKEN: <ACCESS_TOKEN>' -H 'WM_QOS.CORRELATION_ID: b2793d3d-9e5f-4704-8045-e5baf6caede8' -H 'WM_SVC.NAME: <YOUR_SERVICE_NAME>' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{ "header": {"version": "1"}, "Cost": [ { "sku": "RG-IRAE-79VD", "shipNode": "DSV_Deliver", "unitCost": {"amount": 9.99, "currency": "USD"} } ] }'
Success response
{ "feedId": "2D4DB32BC1174C7491720C9EBEB56163@AQMBAAA", "additionalAttributes": "", "error": ""
}
Validation error example
{ "feedId": "", "additionalAttributes": "", "error": "Invalid request: missing Cost array or required fields."
}
Data model reference
Cost feed object
| Field | Type | Required | Description |
|---|---|---|---|
header.version | string | No | Feed message version. Example "1". |
Cost | array | Yes | List of cost items to update. |
Cost item
| Field | Type | Required | Description |
|---|---|---|---|
sku | string | Yes | DSV SKU identifier. |
shipNode | string | Yes | DSV ship node identifier. |
unitCost.amount | number | Yes | Unit cost value. |
unitCost.currency | string | Yes | ISO 4217 code, for example USD. |
Best practices
- Validate currency codes and numeric formats before submission.
- Keep one ship node per cost record. Use separate records for different nodes.
- Avoid duplicate entries for the same
(sku, shipNode)pair in a single feed. - Use small batches during onboarding to simplify troubleshooting.
- Log
feedIdandWM_QOS.CORRELATION_IDfor support.
Security and privacy
- Do not include PII in URLs or logs.
- Use HTTPS for all requests.
- Rotate and protect tokens and secrets.
Updated 15 days ago
