Duplicate dispute contest

Use the Dispute submission API to open or re-open a dispute for items you believe were incorrectly marked as duplicates. Submit one or more product identifiers, and the service acknowledges receipt so your dispute can proceed through review. You can submit dispute for up to 100 items at a time.

How it works

  1. You send an array of issues, each with a productId and productIdType.
  2. The service validates the payload and enqueues each dispute for review.
  3. A successful request returns status: "ACKNOWLEDGED" to confirm intake.
  4. You can later check progress using the duplicate Dispute status API.

Endpoint

POST https://sandbox.walmartapis.com/v3/items/dispute/duplicates/contest

Sample request

curl -X 'POST' '<https://sandbox.walmartapis.com/v3/items/dispute/duplicates/contest'> -H 'accept: application/json' -H 'WM_SEC.ACCESS_TOKEN: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....' -H 'WM_QOS.CORRELATION_ID: b3261d2d-028a-4ef7-8602-633c23200af6' -H 'WM_SVC.NAME: Walmart Service Name' -H 'Content-Type: application/json' -d '{ "issues": [ { "productId": "string", "productIdType": "string" } ] }'
import requests url = "https://sandbox.walmartapis.com/v3/items/dispute/duplicates/contest"
headers = { "accept": "application/json", "WM_SEC.ACCESS_TOKEN": "eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....", # Replace with your actual token "WM_QOS.CORRELATION_ID": "b3261d2d-028a-4ef7-8602-633c23200af6", "WM_SVC.NAME": "Walmart Service Name", "Content-Type": "application/json"
}
data = { "issues": [ { "productId": "string", "productIdType": "string" } ]
} response = requests.post(url, headers=headers, json=data)
print(response.status_code)
print(response.json())

Modify the code

Follow these steps to customize the request and get a successful response:

  1. Replace the access token and other placeholder header values with your actual data.
  2. Populate the body with real identifiers
  • productId: A valid ID for the disputed item.
  • productIdType: The correct type for the ID you send (for example, WPID). Keep types consistent.
  1. Add additional objects under issues to contest several items in one call.
  2. Verify success criteria
  • HTTP status: 200 OK
  • Body: { "status": "ACKNOWLEDGED" } indicates the dispute was received. Use the Dispute status API to track progress after intake.
  1. Resilience and safe logging: On 429 or 5xx, retry with exponential backoff and random jitter. Log only non-sensitive metadata (timestamp, method, path, status, attempt); never log tokens or PII.

Sample response

{ "status": "ACKNOWLEDGED" }

Next steps

  • Poll the Dispute status API endpoint to track each item’s progress.
  • Move completed items into your downstream catalog workflows once review finishes.