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 feedId to 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

  1. Build a cost feed payload with a header.version and a Cost array of items.
  2. Call POST /v3/feeds?feedType=Cost with Content-Type set to application/json or application/xml.
  3. 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.

HeaderTypeRequiredDescription
WM_SEC.ACCESS_TOKENstringYesAccess token from the Token API.
WM_QOS.CORRELATION_IDstringYesUnique ID per request. Use a UUID.
WM_SVC.NAMEstringYesYour Walmart service name.
AcceptstringYesapplication/json or application/xml.
WM_CONSUMER.CHANNEL.TYPEstringNoChannel identifier from onboarding.
Content-TypestringYesapplication/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.

StatusMeaning
200Feed accepted. Returns a feedId.
400Bad request. Validation failed.
401Unauthorized. Check or refresh token.
403Forbidden. Insufficient permissions.
409Conflict.
429Too many requests. Back off and retry.
500Server error. Retry.
503Service 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

NameTypeRequiredDescription
feedTypestringYesMust 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

  • sku string. DSV’s SKU identifier. Encode reserved characters. Encode spaces as %20 if used in paths.
  • shipNode string. Distribution facility identifier for the DSV.
  • unitCost.amount number. Unit cost value.
  • unitCost.currency string. ISO 4217 currency code, such as USD or GBP.

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

FieldTypeRequiredDescription
header.versionstringNoFeed message version. Example "1".
CostarrayYesList of cost items to update.

Cost item

FieldTypeRequiredDescription
skustringYesDSV SKU identifier.
shipNodestringYesDSV ship node identifier.
unitCost.amountnumberYesUnit cost value.
unitCost.currencystringYesISO 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 feedId and WM_QOS.CORRELATION_ID for support.

Security and privacy

  • Do not include PII in URLs or logs.
  • Use HTTPS for all requests.
  • Rotate and protect tokens and secrets.