---
updatedAt: 2026-04-12T09:21:17.000Z
---

# 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](/suppliers/docs/request-approval-to-use-cost-api)  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.

| 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. |

<br />

## 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)

```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)

```bash
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

```json
{
  "feedId": "2D4DB32BC1174C7491720C9EBEB56163@AQMBAAA",
  "additionalAttributes": "",
  "error": ""
}
```

#### Validation error example

```json
{
  "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 `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.