Walmart Marketplace Fulfillment API

The Walmarts Multichannel Solution is an extension of Walmart Fulfillment Services (WFS), uniquely placed to ensure quality, scale, and efficiency for a seller to grow a successful business. The entire assortment of inventory, supply chain management and fulfillment capabilities are centralized and managed by Walmart while seller's items can be listed and sold at multiple online platforms and storefronts.

OpenAPI Specification

walmart-marketplace-fulfillment-openapi-original.yml Raw ↑
openapi: 3.0.1
info:
  title: Walmart Fulfillment Management
  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: []
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
                      d

# --- truncated at 32 KB (554 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/walmart/refs/heads/main/openapi/walmart-marketplace-fulfillment-openapi-original.yml