Create or update Virtual Packs

Use this endpoint to submit a Virtual Pack feed for processing. The same feed schema is used for both create and maintenance actions. Existing packs submitted with updated price or content are treated as maintenance updates.

For example:

  • If a seller already has a 2-pack for a GTIN at one price and submits the same 2-pack at a different price, the request is treated as price maintenance.
  • If the seller updates the site description for an existing pack, the request is treated as content maintenance.

Each Virtual Pack must include the component GTIN, bundle quantity, and price.

This endpoint is available only to sellers who are enabled for Virtual Packs and onboarded to MLMQ. Contact Support for access.

Reference guide

This guide explains how to submit a Virtual Pack feed to create new Virtual Packs or update existing Virtual Pack offers. Use this guide to understand the required feed structure, request headers, payload fields, response details, and feed tracking steps.

For implementation details, refer to the Virtual Packs API reference guide.

Endpoint

POST https://marketplace.walmartapis.com/v3/feeds?feedType=MP_VIRTUAL_PACK_BUNDLE

Request sample

curl -X POST "https://marketplace.walmartapis.com/v3/feeds?feedType=MP_VIRTUAL_PACK_BUNDLE" \ -H "WM_QOS.CORRELATION_ID: b3261d2d-028a-4ef7-8602-633c23200af6" \ -H "WM_MARKET: US" \ -H "WM_SVC.NAME: Walmart Marketplace" \ -H "WM_SEC.ACCESS_TOKEN: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM....." \ -H "WM_GLOBAL_VERSION: 3.1" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "MPItemFeedHeader": { "businessUnit": "WALMART_US", "locale": "en", "feedType": "MP_VIRTUAL_PACK_BUNDLE", "version": "5.0.20260508-19_30_00-api" }, "MPItem": [ { "Visible": { "mainImageUrl": "https://example.com/images/virtual-pack-lemon-drops.jpg", "keyFeatures": [ "Classic citrus hard candy", "Individually wrapped pieces", "Great for sharing" ] }, "Orderable": { "bundle_component_gtin": "00011112223334", "bundleComponentItemQuantity": 2, "price": 3.99, "startDate": "2026-01-01T00:00:00Z", "endDate": "2027-12-31T00:00:00Z" } } ] }'

Request body

{ "MPItemFeedHeader": { "businessUnit": "WALMART_US", "locale": "en", "feedType": "MP_VIRTUAL_PACK_BUNDLE", "version": "5.0.20260508-19_30_00-api" }, "MPItem": [ { "Visible": { "mainImageUrl": "https://example.com/images/virtual-pack-lemon-drops.jpg", "keyFeatures": [ "Classic citrus hard candy", "Individually wrapped pieces", "Great for sharing" ] }, "Orderable": { "bundle_component_gtin": "00011112223334", "bundleComponentItemQuantity": 2, "price": 3.99, "startDate": "2026-01-01T00:00:00Z", "endDate": "2027-12-31T00:00:00Z" } } ]
}

Request fields

FieldRequiredDescription
MPItemFeedHeader.businessUnitYesBusiness unit for the feed. Example: WALMART_US.
MPItemFeedHeader.localeYesLocale for the feed. Example: en.
MPItemFeedHeader.feedTypeYesFeed type for Virtual Packs. Allowed value: MP_VIRTUAL_PACK_BUNDLE.
MPItemFeedHeader.versionYesVirtual Pack feed spec version. Example: 5.0.20260508-19_30_00-api.
MPItem[].Visible.mainImageUrlRecommendedMain image URL for the Virtual Pack offer.
MPItem[].Visible.keyFeaturesRecommendedKey selling points for the Virtual Pack offer.
MPItem[].Orderable.bundle_component_gtinYesGTIN of the component item used to create the Virtual Pack.
MPItem[].Orderable.bundleComponentItemQuantityYesNumber of component units in the Virtual Pack. Allowed values: 2 to 6.
MPItem[].Orderable.priceYesPrice of the Virtual Pack offer.
MPItem[].Orderable.startDateNoDate and time when the Virtual Pack offer becomes active.
MPItem[].Orderable.endDateNoDate and time when the Virtual Pack offer expires.

Modify your code

Use the sample request as a starting point, then update the values below to submit your own Virtual Pack feed.

  1. Replace WM_SEC.ACCESS_TOKEN with your valid access token.

  2. Use a unique WM_QOS.CORRELATION_ID for each request.

  3. Keep the query parameter as feedType=MP_VIRTUAL_PACK_BUNDLE.

  4. Update MPItemFeedHeader.version to the schema version you are building against.

  5. Replace the sample feed content with your own Virtual Pack data:

    • bundle_component_gtin
    • bundleComponentItemQuantity
    • price
    • optional startDate and endDate
  6. Replace the sample feed file with your own multipart upload file.

Response sample

{ "feedId": "F129C19240844B97A3C6AD8F1A2C4997@AU8BAQA"
}

Result

The feed is accepted and queued for processing. Use the returned feedId to track feed processing.

Errors and remediation

Status codeScenarioDescriptionRecommended action
400The request is invalid.The request is invalid.Confirm the endpoint uses /v3/feeds?feedType=MP_VIRTUAL_PACK_BUNDLE. Validate the feed against the Virtual Pack spec. Confirm required fields are present, including bundle_component_gtin, bundleComponentItemQuantity, and price.
403Seller is not eligible for Virtual PacksVirtual Packs are not enabled for seller {partnerId}.Confirm that the seller is eligible for Virtual Packs.
500Internal server error occurred while processing the requestThe system encountered an unexpected error while processing the request.Retry with a new WM_QOS.CORRELATION_ID. If the issue continues, capture the full error payload and correlation ID for support.

Next steps

After submitting the feed:

  1. Track feed processing using the returned feedId.
  2. Use Get items with Virtual Packs to confirm the pack appears with the expected SKU, price, and publish status.
  3. Use Retire a Virtual Pack when the pack is no longer needed.



Did this page help you?