Walmart Fulfillment API
The Fulfillment API from Walmart — 21 operation(s) for fulfillment.
The Fulfillment API from Walmart — 21 operation(s) for fulfillment.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/walmart-fulfillment-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Walmart Management Fulfillment API
description: With Walmart Fulfillment Services, you can focus on sales while we expertly take care of fast shipping, seamless returns, and customer service. Simply send your inventory to Walmart fulfillment centers, where we will store your products securely and prepare them swiftly for shipping when an order is placed.
servers:
- url: https://marketplace.walmartapis.com
description: Production URL
- url: https://sandbox.walmartapis.com
description: Sandbox URL
security:
- basicScheme: []
tags:
- name: Fulfillment
paths:
/v3/fulfillment/shipment-quantities:
put:
tags:
- Fulfillment
summary: Walmart Update Shipment Quantities
description: "Seller can modify the shipment quantity before the Shipment arrives at the WFS FCs. Seller cannot modify the shipment quantity when Shipment Status = Receiving in Progress, Closed, and Cancelled. \n Seller will need to provide new quantities for each SKU to update. Seller will only be able to add up to 6 units per SKU but can reduce to 0 units to remove any SKU from a shipment. Seller cannot change all SKUs’ quantity to 0 – they must cancel the entire Inbound Order. "
externalDocs:
description: View Guide
url: /doc/us/mp/us-mp-fulfillment/#2885
operationId: updateShipmentQuantity
parameters:
- in: header
name: WM_SEC.ACCESS_TOKEN
description: The access token retrieved in the Token API call
required: true
schema:
type: string
example: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....
- in: header
name: WM_CONSUMER.CHANNEL.TYPE
description: A unique ID to track the consumer request by channel. Use the Consumer Channel Type received during onboarding
required: false
schema:
type: string
- in: header
name: WM_QOS.CORRELATION_ID
description: A unique ID which identifies each API call and used to track and debug issues; use a random generated GUID for this ID
required: true
schema:
type: string
example: b3261d2d-028a-4ef7-8602-633c23200af6
- in: header
name: WM_SVC.NAME
description: Walmart Service Name
required: true
schema:
type: string
example: Walmart Service Name
requestBody:
description: Request fields
content:
application/json:
schema:
required:
- inboundOrderId
- shipmentId
type: object
properties:
inboundOrderId:
type: string
description: Unique ID identifying inbound shipment request
shipmentId:
type: string
description: Unique ID identifying inbound shipment
orderItems:
maxItems: 5000
minItems: 1
type: array
description: update shipment qty line items
xml:
wrapped: true
items:
required:
- sku
- updatedShipmentQty
type: object
properties:
sku:
type: string
description: Seller Item ID
updatedShipmentQty:
minimum: 0
type: integer
description: updated quantity
format: int32
description: update shipment qty line items
example:
inboundOrderId: '123543'
shipmentId: '1234'
orderItems:
- sku: WILL-SL969
updatedShipmentQty: 11
required: true
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
required:
- status
type: object
properties:
status:
type: string
enum:
- OK
- CREATED
- ACCEPTED
- NO_CONTENT
- PARTIAL
- MOVED_PERMANENT
- FOUND
- SEE_OTHER
- NOT_MODIFIED
- TEMPORARY_REDIRECT
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- METHOD_NOT_ALLOWED
- NOT_ACCEPTABLE
- REQUEST_TIMEOUT
- CONFLICT
- REQUEST_ENTITY_TOO_LARGE
- UNSUPPORTED_MEDIA_TYPE
- UNPROCESSABLE_ENTITY
- TOO_MANY_REQUESTS
- FAIL
- BAD_GATEWAY
- SERVICE_UNAVAILABLE
- GATEWAY_TIMEOUT
header:
type: object
properties:
headerAttributes:
type: object
additionalProperties:
type: object
xml:
name: ServiceHeader
errors:
type: array
xml:
wrapped: true
items:
required:
- code
type: object
properties:
code:
type: string
field:
type: string
description:
type: string
info:
type: string
severity:
type: string
enum:
- INFO
- WARN
- ERROR
category:
type: string
enum:
- APPLICATION
- SYSTEM
- REQUEST
- DATA
causes:
type: array
xml:
wrapped: true
items:
type: object
properties:
code:
type: string
field:
type: string
type:
type: string
description:
type: string
xml:
name: Cause
xml:
name: Error
payload:
type: object
xml:
name: ServiceResponse
example:
status: OK
/v3/items/onhold/search:
post:
tags:
- Fulfillment
summary: Walmart Hazmat Items on Hold
description: Use this API to see a list of items that are on hold for hazmat compliance review, including items with an In Review, Action Needed, and Prohibited status. Also use this API to review your Action Needed error descriptions and understand how to correct them for further assessment.
operationId: wercsFeedback
parameters:
- in: header
name: WM_SEC.ACCESS_TOKEN
description: The access token retrieved in the Token API call
required: true
schema:
type: string
example: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....
- in: header
name: WM_CONSUMER.CHANNEL.TYPE
description: A unique ID to track the consumer request by channel. Use the Consumer Channel Type received during onboarding
required: false
schema:
type: string
- in: header
name: WM_QOS.CORRELATION_ID
description: A unique ID which identifies each API call and used to track and debug issues; use a random generated GUID for this ID
required: true
schema:
type: string
example: b3261d2d-028a-4ef7-8602-633c23200af6
- in: header
name: WM_SVC.NAME
description: Walmart Service Name
required: true
schema:
type: string
example: Walmart Service Name
- in: header
name: Accept
description: 'Only supported Media Type : application/json'
required: true
schema:
type: string
example: application/json
requestBody:
description: Request fields
content:
application/json:
schema:
type: object
properties:
query:
type: object
properties:
field:
type: string
description: '| Attribute | Description | Data Type
| --- | ----------- | -------
| sku | An arbitrary alphanumeric unique ID, seller-specified, identifying each item | string
| gtin | Specifies a Global Trade Item Number (GTIN) search. GTIN must be 14 digits. | string'
enum:
- sku
- gtin
value:
type: string
filters:
type: array
items:
type: object
properties:
field:
type: string
description: '| Attribute | Description | Data Type
| --- | ----------- | -------
| status | Item status | string'
enum:
- status
op:
type: string
enum:
- equals
values:
type: array
items:
type: string
enum:
- PROHIBITED
- IN_REVIEW
- ACTION_NEEDED
sort:
type: object
properties:
field:
type: string
description: '| Attribute | Description | Data Type
| --- | ----------- | -------
| createdAt | when the item is last submitted/updated by Seller | string
| updatedAt | when the item is last updated by Seller/Walmart | string |'
enum:
- createdAt
- updatedAt
order:
type: string
enum:
- ASC
- DESC
example:
query:
field: gtin
value: 06154035330299
filters:
- field: status
op: equals
values:
- PROHIBITED
- IN_REVIEW
- ACTION_NEEDED
sort:
field: updatedAt
order: DESC
required: true
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
required:
- status
type: object
properties:
status:
type: string
enum:
- OK
- CREATED
- ACCEPTED
- NO_CONTENT
- PARTIAL
- MOVED_PERMANENT
- FOUND
- SEE_OTHER
- NOT_MODIFIED
- TEMPORARY_REDIRECT
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- METHOD_NOT_ALLOWED
- NOT_ACCEPTABLE
- REQUEST_TIMEOUT
- CONFLICT
- REQUEST_ENTITY_TOO_LARGE
- UNSUPPORTED_MEDIA_TYPE
- UNPROCESSABLE_ENTITY
- TOO_MANY_REQUESTS
- FAIL
- BAD_GATEWAY
- SERVICE_UNAVAILABLE
- GATEWAY_TIMEOUT
header:
type: object
properties:
headerAttributes:
type: object
additionalProperties:
type: object
xml:
name: ServiceHeader
errors:
type: array
xml:
wrapped: true
items:
required:
- code
type: object
properties:
code:
type: string
field:
type: string
description:
type: string
info:
type: string
severity:
type: string
enum:
- INFO
- WARN
- ERROR
category:
type: string
enum:
- APPLICATION
- SYSTEM
- REQUEST
- DATA
causes:
type: array
xml:
wrapped: true
items:
type: object
properties:
code:
type: string
field:
type: string
type:
type: string
description:
type: string
xml:
name: Cause
xml:
name: Error
payload:
type: object
xml:
name: ServiceResponse
example:
status: OK
header: {}
payload:
nextCursor: ?limit=1&offset=1
totalItems: 207
actionNeeded: 4
inReview: 203
prohibited: 0
items:
- gtin: 00051494401255
productName: INNATE Response Formulas, Men Over 40 One Daily Iron Free, Multivitamin, Vegetarian, Non-GMO, 60 tablets (60 Servings
category: Medicine & Supplements
subCategory: medicine_and_supplements
status: ACTION_NEEDED
sku: SD-IR-40125
createdAt: 1611140177328
updatedAt: 1629992924901
primaryImage: http://images.salsify.com/image/upload/s--7e1VLU2_--/otf4q0dplsg9yjzkxkfe.jpg
errors:
- code: ERR_EXT_DATA_4001029
field: batteryTechnologyType
description: This item may contain a lithium or lead acid battery that requires additional compliance information, please check the 'Battery Type' field.
severity: ERROR
category: REQUEST
/v3/fulfillment/shipment-tracking:
post:
tags:
- Fulfillment
summary: Walmart Update Shipment Tracking
description: "The purpose of this service is to capture tracking information from sellers.\nFor small parcel shipments, sellers must provide the tracking info including carrier name and tracking numbers. WFS will use the data to capture updated expected delivery date to adjust the fulfillment inbound capacity to avoid any receiving delays. \nSeller will also be able to view the updated expected delivery date through the Seller Center UI or calling the Get Inbound Shipment Items API."
externalDocs:
description: View Guide
url: /doc/us/mp/us-mp-fulfillment/#2934
operationId: updateShipmentTrackingDetails
parameters:
- in: header
name: WM_SEC.ACCESS_TOKEN
description: The access token retrieved in the Token API call
required: true
schema:
type: string
example: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....
- in: header
name: WM_CONSUMER.CHANNEL.TYPE
description: A unique ID to track the consumer request by channel. Use the Consumer Channel Type received during onboarding
required: false
schema:
type: string
- in: header
name: WM_QOS.CORRELATION_ID
description: A unique ID which identifies each API call and used to track and debug issues; use a random generated GUID for this ID
required: true
schema:
type: string
example: b3261d2d-028a-4ef7-8602-633c23200af6
- in: header
name: WM_SVC.NAME
description: Walmart Service Name
required: true
schema:
type: string
example: Walmart Service Name
requestBody:
description: Request fields
content:
application/json:
schema:
required:
- carrierName
- shipmentId
type: object
properties:
shipmentId:
type: string
carrierName:
type: string
trackingInfo:
maxItems: 100
minItems: 1
type: array
xml:
wrapped: true
items:
type: string
example:
shipmentId: '12345'
carrierName: UPS
trackingInfo:
- '123'
- 456-1
- 789-2
required: true
responses:
'200':
description: Successful Operation
content:
application/json:
schema:
required:
- status
type: object
properties:
status:
type: string
enum:
- OK
- CREATED
- ACCEPTED
- NO_CONTENT
- PARTIAL
- MOVED_PERMANENT
- FOUND
- SEE_OTHER
- NOT_MODIFIED
- TEMPORARY_REDIRECT
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- METHOD_NOT_ALLOWED
- NOT_ACCEPTABLE
- REQUEST_TIMEOUT
- CONFLICT
- REQUEST_ENTITY_TOO_LARGE
- UNSUPPORTED_MEDIA_TYPE
- UNPROCESSABLE_ENTITY
- TOO_MANY_REQUESTS
- FAIL
- BAD_GATEWAY
- SERVICE_UNAVAILABLE
- GATEWAY_TIMEOUT
header:
type: object
properties:
headerAttributes:
type: object
additionalProperties:
type: object
xml:
name: ServiceHeader
errors:
type: array
xml:
wrapped: true
items:
required:
- code
type: object
properties:
code:
type: string
field:
type: string
description:
type: string
info:
type: string
severity:
type: string
enum:
- INFO
- WARN
- ERROR
category:
type: string
enum:
- APPLICATION
- SYSTEM
- REQUEST
- DATA
causes:
type: array
xml:
wrapped: true
items:
type: object
properties:
code:
type: string
field:
type: string
type:
type: string
description:
type: string
xml:
name: Cause
xml:
name: Error
payload:
type: object
xml:
name: ServiceResponse
example:
status: OK
/v3/fulfillment/shipment-label:
post:
tags:
- Fulfillment
summary: Walmart Create Inbound Shipment Label
description: "The purpose of this service is to generate WFS Receiving Labels in various formats for receiving purposes. Please note this is not a carrier label; these labels are required for the FC to identify the Inbound Order and Shipment ID they are receiving against.Receiving labels are customizable: \n1. 3 size and format options are available to choose from through the LabelSize and LabelFormat fields:\n\t - 4 in. x 6 in. (PDF).\n\t - 4 in. x 3 1/3 in. (PDF).\n\t - 4 in. x 6 in. (ZPL).\n2. Provide the type of the label (box or pallet) in the LoadType field and the number of the labels needed in the Count field.\n3. Print the WFS receiving label.\n4. Affix the WFS receiving labels to the boxes/ pallets.\n\nIf none of the above optional inputs are provided, a blank 4 in. x 6 in. PDF format label will be generated. Sellers must work with the warehouse/supplier to provide the required details before sending any Shipments to WFS FCs:\n1. Print the WFS receiving label.\n2. Fill out the FILL OUT section based on the seller’s packing situation. For example, if a seller plans to ship 3 boxes to the WFS fulfillment center, print out 3 labels and fill out BOX 1 of 3, 2 of 3, and 3 of 3 in the FILL OUT section.\n3. Circle one shipment type in the CIRCLE ONE section. For example, if there are different SKUs in the box, circle MIXED SKUS in the CIRCLE ONE section.\n4. Affix the WFS receiving labels to the boxes/ pallets.\n"
operationId: createInboundShipmentLabelV2
parameters:
- in: header
name: WM_SEC.ACCESS_TOKEN
description: The access token retrieved in the Token API call
required: true
schema:
type: string
example: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....
- in: header
name: WM_CONSUMER.CHANNEL.TYPE
description: A unique ID to track the consumer request by channel. Use the Consumer Channel Type received during onboarding
required: false
schema:
type: string
- in: header
name: WM_QOS.CORRELATION_ID
description: A unique ID which identifies each API call and used to track and debug issues; use a random generated GUID for this ID
required: true
schema:
type: string
example: b3261d2d-028a-4ef7-8602-633c23200af6
- in: header
name: WM_SVC.NAME
description: Walmart Service Name
required: true
schema:
type: string
example: Walmart Service Name
requestBody:
description: Request fields
content:
application/json:
schema:
required:
- shipmentId
type: object
properties:
shipmentId:
type: string
labelSize:
type: string
labelFormat:
type: string
loadTypes:
type: array
xml:
wrapped: true
items:
type: object
properties:
count:
type: integer
format: int32
loadType:
type: string
required: true
responses:
'200':
description: Successful Operation
content:
application/pdf:
schema:
type: string
/v3/fulfillment/orders-fulfillments:
post:
tags:
- Fulfillment
summary: Walmart Create Customer Order
description: The API is used to create customer fulfilment orders by the seller for Walmart Multichannel Solutions flow.
externalDocs:
description: View Guide
url: /doc/us/mp/us-mp-fulfillment/#10520
operationId: createFulfillment
parameters:
- in: header
name: WM_SEC.ACCESS_TOKEN
description: The access token retrieved in the Token API call
required: true
schema:
type: string
example: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....
- in: header
name: WM_CONSUMER.CHANNEL.TYPE
description: A unique ID to track the consumer request by channel. Use the Consumer Channel Type received during onboarding
required: false
schema:
type: string
- in: header
name: WM_QOS.CORRELATION_ID
description: A unique ID which identifies each API call and used to track and debug issues; use a random generated GUID for this ID
required: true
schema:
type: string
example: b3261d2d-028a-4ef7-8602-633c23200af6
- in: header
name: WM_SVC.NAME
description: Walmart Service Name
required: true
schema:
type: string
example: Walmart Service Name
requestBody:
description: Request fields
content:
application/json:
schema:
required:
- header
- payload
type: object
properties:
header:
type: object
properties:
headerAttributes:
type: object
properties:
martId:
type: string
description: 'martId of the seller. Currently supported: ''202'''
buId:
type: string
description: 'buId of the seller. Currently supported: ''0'''
description: Header attributes
description: header to support build and martId
payload:
required:
- customer
- orderChannelId
- orderItems
- orderPlacedTime
- sellerOrderId
type: object
properties:
orderChannelId:
type: string
description: Unique ID identifying channels from where the orders have been generated. This ID is generated by Walmart at the time of on-boarding onto multichannel program and this cannot be a random number
sellerOrderId:
maxLength: 18
minLength: 0
pattern: ^[A-Za-z0-9\s]+$
type: string
description: 'Unique ID identifying customer order request. Only alphanumeric values are accepted. Preferred to attach seller short name as prefix. For example: ''seller001'''
orderPlacedTime:
type: string
description: 'Order placed time at respective channels. Format: ''2022-03-25T21:58:30.143Z'''
format: date-time
needsConfirmation:
type: boolean
description: 'Flag to identify if confirmation is needed. Currently supported: ''false'''
partialFulfillments:
type: boolean
description: 'Flag to identify if partial fulfilment is allowed. Currently supported: ''false'''
customer:
required:
- contact
type: object
properties:
contact:
required:
- email
- name
- phone
type: object
properties:
name:
required:
- firstName
- lastName
type: object
properties:
firstName:
maxLength: 64
minLength: 1
type: string
description: Customer first name
lastName:
maxLength: 64
minLength: 1
type: string
description: Customer last name
description: Name of the Customer
phone:
maxLength: 15
minLength: 1
type: string
description: Customer phone number
email:
maxLength: 64
minLength: 1
type: string
description: Customer email address
description: Customer contact details
description: Customer details
orderItems:
type: array
description: Order items details
items:
required:
- chargeDetails
- itemDetail
- qty
- sellerLineId
- shippingTo
type: object
properties:
fulfillmentType:
type: string
description: 'Fulfillment Type of an order. Currently supported type: ''DELIVERY'''
sellerLineId:
maxLength: 6
minLength: 1
type: strin
# --- truncated at 32 KB (243 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/walmart/refs/heads/main/openapi/walmart-fulfillment-api-openapi.yml