Walmart
List Integration Instances
List all Walmart integration instances (list view endpoint).
Create Integration Instance
Create a new Walmart integration instance. After creation, automatically fetches an access token, dispatches jobs to download locations, and refresh products and orders.
Get Integration Instance
Get a single Walmart integration instance with salesChannel and integration relationships loaded.
Update Integration Instance
Update a Walmart integration instance. Supports both PUT (full update) and PATCH (partial update — merges connection_settings and integration_settings with existing values).
Partial Update Integration Instance
Partially update a Walmart integration instance. Settings are deep-merged with existing values — only send the fields you want to change.
Delete Integration Instance
Delete a Walmart integration instance. Dispatches a background job to clean up associated data asynchronously.
Store Mapped Warehouse Locations
Map Walmart ship nodes (locations) to internal warehouses. Updates the warehouse_id for each Walmart location.
Download Locations
Sync Walmart ship nodes synchronously (runs a background job inline) and return the current list of Walmart locations along with configured inventory locations from the integration settings.
Get Authorization URL
Get the Walmart OAuth authorization URL for connecting the integration. Note: OAuth support is planned but not yet implemented. Walmart currently uses client ID + client secret authentication.
List Products
List Walmart products for a specific integration instance (list view endpoint).
Get Product
Get a single Walmart product.
Create SKU Products from Walmart
Create SKU.io products from selected Walmart products. Products are created asynchronously via queue.
Refresh Products
Queue a job to refresh all products from Walmart for this integration instance.
Map Products
Map Walmart products to SKU.io products. Creates product listings linking Walmart listings to internal products.
Smart Match Product
Find suggested SKU product matches for a single Walmart listing.
Map Single Product
Map a single Walmart listing to a SKU product (or subscription offering). Creates a ProductListing record, or updates the existing one if already mapped (remap). After mapping, dispatches a job to map any previously unmapped sales order lines for the new listing.
Unmap Single Product
Remove the mapping between a Walmart listing and its SKU product by deleting the ProductListing record. The Walmart product itself is preserved.
Create SKU Product from Walmart Product
Create a new SKU product from a Walmart listing's data and map it. If a SKU product with the same SKU already exists, the existing one is linked instead of creating a duplicate (response includes linked_existing=true).
Get Raw Product from Walmart
Fetch the raw Walmart Marketplace API response for a single item, live from /v3/items/{sku}. Powers the 'Load Raw Data from Walmart' button on the listing detail page.
Export Products
Export Walmart products as a CSV or Excel file. Supports the same list view filter parameters as the list endpoint.
Sync Inventory
Push current inventory levels to Walmart for the specified products (or all products if ids is omitted). Submits inventory quantities to the Walmart Marketplace API.
Archive Products
Archive Walmart products (soft-delete). Products are marked as archived and hidden from default listings.
Unarchive Products
Unarchive previously archived Walmart products.
Check Archiveable Products
Check which of the given Walmart products can be archived.
Delete Products
Permanently delete Walmart products from SKU.io (does not delete from Walmart). Use archiveable endpoint first to check if deletion is safe.
Import Product Mappings
Import product mapping data from a file (CSV/Excel). Queues a background job to process the mappings asynchronously.
List Orders
List Walmart orders for a specific integration instance (list view endpoint).
Get Order
Get a single Walmart order with order items loaded.
Create SKU Orders from Walmart
Create SKU.io sales orders from selected Walmart orders.
Update SKU Orders from Walmart
Update existing SKU.io sales orders from the latest Walmart order data. Useful for syncing status changes (e.g. cancellations, acknowledgements).
Refresh Orders
Queue a job to refresh all orders from Walmart for this integration instance.
Refresh Single Order
Refresh a single Walmart order by its unique identifier (customerOrderId). Fetches the latest data from Walmart API and returns the updated order resource.
Export Orders
Export Walmart orders as a CSV or Excel file.
Acknowledge Order
Acknowledge a released order to Walmart. Idempotent — orders already past the Created status are left unchanged. No request body.
Cancel Order Lines
Cancel order lines on Walmart (seller-initiated cancellation).
Fulfill Order
Submit a fulfillment to Walmart for a given SKU.io sales order fulfillment. Sends shipment/tracking information back to the Walmart Marketplace API.
List Inbound Shipments
Paginated list of WFS inbound shipments for an integration instance (Spatie QueryBuilder).
Create WFS Inbound Shipment
Create a WFS inbound shipment from SKU.io — send the chosen SKUs/quantities into Walmart Fulfillment Services from a **warehouse OR a supplier** (exactly one). SKU.io enriches each SKU with the GTIN/UPC + description Walmart requires, generates a unique inboundOrderId, builds Walmart's Create-Inbound-Shipment-Order payload (returnAddress from the chosen warehouse's or supplier's address + orderItems), POSTs it to Walmart (POST /v3/fulfillment/inbound-shipments), and persists the shipment(s) Walmart returns — Walmart may split one inbound order across fulfillment centers, so `data` is an array. Typically driven from the inbound builder or the WFS Replenishment grid's cart ('Send to WFS').
Get Inbound Shipment
Fetch a single WFS inbound shipment by its SKU.io row id. Eager-loads the source warehouse (with address) and source supplier, so ship_from_address carries the warehouse name and source_name is populated.
Cancel Inbound Shipment
Cancel a WFS inbound shipment. This cancels the WHOLE inbound order on Walmart and marks every local shipment sharing that inbound order as CANCELLED (Walmart splits one inbound order across FCs, and cancel is order-level). Any materialized source document (Warehouse Transfer / Purchase Order) is unwound first, and source-stock reservations are released so the stock is sellable again. Walmart rejects the cancel once the shipment is receiving, closed, or already cancelled.
Preview WFS Inbound Shipment
Preview an inbound order before creating it — returns Walmart's destination fulfillment-center placement plus estimated transfer charges, without persisting anything. Takes the SAME request body as Create WFS Inbound Shipment.
Refresh Shipments (Tracked Job)
Queue a tracked background job that pulls WFS inbound shipments from Walmart (all pages) and upserts them. Progress is surfaced via the tracked job log endpoints; the response returns the tracked job log id to watch. Takes no request body.
Set Source
Set (or confirm) the definitive source of an inbound shipment — a warehouse OR a supplier (exactly one). Used to resolve an imported inbound, confirm an auto-matched one, or re-point an existing one. Unwinds any document already materialized against the old source (throws/blocks if it has already shipped), drops the prior source reservation, marks the link confirmed, and re-reserves against the new warehouse (a no-op when supplier-sourced or when there are no SKU intent lines).
Get Shipment Items
The per-SKU items Walmart holds for a shipment (sent vs. received), pulled live from Walmart and enriched with source-warehouse stock context.
List Source Allocations
Paginated source-stock reservations (inventory allocations) for this inbound — the source-warehouse reservations created when the inbound was made so the earmarked stock can't be oversold. Scoped to all shipments sharing the inbound order (split inbounds), plus any reservations handed off to a materialized Warehouse Transfer.
Get Reconciliation
Sent-vs-received reconciliation for this inbound — per-SKU variance + status + the local investigated flag, plus a roll-up summary.
Resolve Discrepancy
Mark a SKU's receive discrepancy on this shipment as investigated/resolved (or reopen it).
Get WFS Inbound Shipment Errors
The errors Walmart recorded against an inbound shipment (why an item or order was rejected), pulled live from Walmart. Scoped to the integration instance (404 if the shipment belongs to another instance). A Walmart-side failure returns a 422. Requires a Bearer token.
Get Activity Log
Paginated activity log for this inbound shipment (newest first).
Get Placement Preview
Estimate the destination-FC placement + transfer charges for an existing shipment by re-running Walmart's inbound preview from its current items + source. This is an estimate — Walmart exposes no billed charges per existing order; actual charges live in Walmart Seller Center.
Get 3PL Turnaround Metrics
3PL/supplier turnaround SLA metrics: per-partner turnaround gaps between sending a WFS-inbound fulfilment request and each milestone (sent → box contents submitted, sent → ready to ship), plus an overall summary. Derived from packet timestamps + portal events across all of this integration instance's WFS inbound shipments.
Get Warehouse WFS Turnaround Metrics
3PL/supplier turnaround SLA metrics scoped to a single source warehouse (3PL partner): per-partner turnaround gaps between sending a WFS-inbound fulfilment request and each milestone (sent -> box contents submitted, sent -> ready to ship), plus an overall summary. Unlike the instance-scoped metrics endpoint, this spans every Walmart integration instance -- a warehouse's turnaround is instance-agnostic.
Get Supplier WFS Turnaround Metrics
3PL/supplier turnaround SLA metrics scoped to a single source supplier: per-partner turnaround gaps between sending a WFS-inbound fulfilment request and each milestone (sent -> box contents submitted, sent -> ready to ship), plus an overall summary. Spans every Walmart integration instance -- a supplier's turnaround is instance-agnostic.
Get WFS Inbound Suggested Package
Best-guess a single shipping package (weight + dimensions) for an inbound shipment, derived from the shipment items' product records. Used to pre-fill the carrier-rate-quote form so the dimensions don't have to be typed by hand.
Get Carrier Rate Quotes
Request WFS Preferred-Carrier rate quotes for a shipment. Walmart's payload is built from the shipment's source warehouse (origin/return address) + assigned FC (destination) + the supplied package dimensions. The inbound must have a resolved SOURCE WAREHOUSE (supplier-sourced or unresolved inbounds are rejected). Returns a normalized quote list.
Confirm WFS Inbound Carrier Rate Quote
Confirm (book) the previously requested WFS Preferred-Carrier rate quote for an inbound shipment. No request body. Scoped to the integration instance (404 if the shipment belongs to another instance). A Walmart-side failure returns a 422. Requires a Bearer token.
Get Existing WFS Inbound Carrier Rate Quote
Fetch the carrier rate quote that already exists on Walmart for this inbound shipment. The detail page calls this on mount so a previously generated quote is shown (with Confirm / Void / Print) instead of a blank panel — Walmart's create endpoint is one-shot per shipment, so re-creating would 400. No request body. Scoped to the integration instance (404 if the shipment belongs to another instance). When no quote exists yet (the normal starting state — Walmart returns 404), this endpoint stays silent and returns an empty `data` list with a 200. Requires a Bearer token.
Void WFS Inbound Carrier Rate Quote
Void the carrier rate quote / booking for an inbound shipment. No request body. Scoped to the integration instance (404 if the shipment belongs to another instance). A Walmart-side failure returns a 422. Requires a Bearer token.
Print WFS Inbound Carrier Label
Print the carrier label for a booked WFS inbound shipment. The response is the raw label document itself — binary PDF bytes streamed as a file download (Content-Type: application/pdf, Content-Disposition: attachment), NOT a JSON envelope. Scoped to the integration instance (404 if the shipment belongs to another instance).
Submit WFS Inbound Shipment Tracking
Submit the carrier and tracking numbers for an inbound shipment to Walmart and persist them locally. Scoped to the integration instance (404 if the shipment belongs to another instance).
Update WFS Inbound Shipment Quantities
Update the per-SKU quantities on a not-yet-received inbound shipment. Scoped to the integration instance (404 if the shipment belongs to another instance).
Get Inbound Shipment Label
Download the Walmart inbound receiving label (PDF) for a shipment. The response is streamed as raw PDF bytes (Content-Type: application/pdf, Content-Disposition: attachment), NOT JSON.
Search Inbound Products
Search seller-fulfilled (non-WFS) Walmart listings eligible to send into Walmart Fulfillment Services for the inbound builder's search/add-items step. Only listings with a GTIN/UPC (Walmart rejects items without one) and a matching, non-archived SKU.io product are returned; SKUs already in WFS are excluded. Results are capped at 50, ordered by product name.
Resolve Inbound Identifiers (Bulk)
Resolve a list of bulk-import identifiers (SKU / UPC / GTIN) to WFS-eligible products for the inbound builder's Bulk Add modal. Mirrors FBA bulk-add resolve: each identifier is classified as matched (exactly one product), multiple (several — the user picks), or not_found. Eligibility is identical to Search Inbound Products (non-WFS, GTIN/UPC-bearing, matching non-archived product, excluding already-WFS SKUs).
List Source Warehouses
List the warehouses eligible as a WFS inbound source for the Source step of the inbound builder — the seller's own Direct + 3PL warehouses (non-archived), each with its type and a formatted address. Integration-destination warehouses (Amazon FBA/AWD, the WFS warehouse itself, virtual) are excluded. Ordered by name.
Get Fulfillment Packet
Get the operator-side view of a shipment's 3PL/supplier fulfilment packet. Returns whether a packet even applies to this shipment's source (availability), the built packet if one exists (else null), the public portal URL, the auto-generated default prep instructions (used to pre-fill the editable field), the kitting-instruction snippet, and whether the shipment has any component-sourced kits (drives the 'Kits will be assembled' toggle).
Build/Update Fulfillment Packet
Build (or refresh) the fulfilment packet for a 3PL/supplier-sourced inbound — resolves the source type, scaffolds the staged document set, and mints a portal token. Re-calling updates the existing packet (channels, build flag, instruction override) and re-scaffolds documents. Returns 422 if the shipment is direct-warehouse sourced (no packet applies) or its source is unresolved.
Rotate Portal Token
Revoke the current portal token and issue a fresh one — the old public link stops working immediately. Returns 404 if no fulfilment packet has been built for this shipment.
Preview Fulfillment Email
Render the operator's edited subject/body with the live tokens substituted, without sending anything — powers the compose dialog's preview pane. Tokens {{reference}} (the WFS shipment id), {{portal_link}} (a clickable anchor to the secure fulfilment portal), and {{instructions}} (the rendered prep instructions) are resolved server-side; the subject is treated as plain text, the body as HTML. Returns 422 if no fulfilment packet has been built for this shipment yet.
Send Fulfillment Email
Send the operator-composed portal invite to the resolved 3PL/supplier recipient (a 3PL warehouse's address email, or the supplier's PO email), substituting the {{reference}}/{{portal_link}}/{{instructions}} tokens server-side, then flip the packet status to Sent (sets sent_at). The recipient is resolved server-side — it is not accepted from the request. Returns 422 if no packet has been built, or if no recipient email is configured for the source (add one to the 3PL warehouse address / supplier before emailing).
Download Prep & Pack Sheet (CSV)
Stream the prep-&-pack sheet as a CSV (unit mix, packing, prep, and any kitting work order) so an operator can hand it to a 3PL/supplier that won't use the secure portal. The file is named wfs-prep-pack-sheet-<packetId>.csv. A fulfilment packet must have been built first — returns 422 JSON { message } when none exists yet.
Portal: View Packet
Load the public fulfilment portal for a WFS inbound packet, resolved by its portal token. Records a 'viewed' portal event and returns the full order summary the 3PL/supplier needs: reference + destination FC, rendered prep instructions, downloadable documents, the kit build manifest (when a build is required), the expected line items, and whether it has been acknowledged as ready.
Portal: Download Document
Download one of the packet's staged documents by id. Records a 'downloaded' portal event, then streams the document as a file attachment (not JSON):
Portal: Confirm Kits Built
Explicitly confirm the component-sourced kits have been assembled. Realizes the kit builds (releases the reserved components, assembles the kit, and reserves it against the shipment — idempotent and safe when there is nothing to build), records a 'kits_built' portal event, and returns the refreshed portal payload with kits_pending_build cleared.
Portal: Acknowledge
Acknowledge the shipment as ready to ship. Requires box contents to have been submitted first — otherwise returns 422. On success it backstops any unconfirmed component-sourced kit builds (idempotent), marks the packet 'acknowledged' with acknowledged_at set, records an 'acknowledged' portal event, and returns the refreshed portal payload.
Get Authorization URL
Get the Walmart seller-consent authorization URL for this integration instance. Redirect the seller's browser to the returned URL so they can grant delegated access to their Walmart Marketplace account; on approval Walmart redirects back with an authorization code that completes the connection.
Disconnect OAuth Connection
Disconnect the delegated Walmart authorization for this integration instance. Destroys both the delegated access token and the refresh token and deactivates syncing until the seller re-authorizes. No request body.
List Feeds
List bulk feeds submitted to Walmart for this integration instance (inventory, price, and promotion feeds) with their processing status, paginated.
Get Feed
Get a single feed with its per-SKU ingestion errors. Each item in the items array is a SKU that Walmart reported on, including any error codes and descriptions for failed items.
Re-poll Feed Status
Re-queue status polling for a stalled or lagging feed. Use this when a feed has stopped receiving status updates from Walmart. No request body.
Push Prices
Submit current prices to Walmart as a bulk price feed for listings where SKU.io is the master of price.
Create or Update Promotion
Submit a promotional price for a listing to Walmart via the promotion feed. Submitting again for the same listing updates the promotion.
Delete Promotion
Remove the promotional price for a listing on Walmart via the promotion feed, restoring the regular price. No request body.
List Settlement Report Dates
List the available reconciliation (settlement) report cycle dates for this integration instance. Use one of the returned dates as the report_date parameter when downloading a settlement report.
Download Settlement Report
Download the reconciliation (settlement) report for a given cycle date. The response is a ZIP file download (Content-Type: application/octet-stream), not JSON. The report_date query parameter is required and must be a cycle date in MMDDYYYY format as returned by List Settlement Report Dates.
Get Payment Statement
Get the payment statement for the current settlement cycle, including the currency, the total payable amount, and the statement line groups.
Get Partner Performance Report
Get the partner performance report for this integration instance, summarizing marketplace performance metrics as measured by Walmart.
List Report Requests
List the on-request report requests submitted for this integration instance, with their report type and processing status.
Create Report Request
Create an on-request report request. Walmart generates the report asynchronously; poll its status with Get Report Request Status and fetch the file with Get Report Download URL once it is READY.
Get Report Request Status
Get the current status of an on-request report request.
Get Report Download URL
Get a time-limited signed download URL for a completed report request. Download the report file from the returned URL before it expires.
Get Seller Health Summary
Get an aggregated seller health summary — valid tracking rate, on-time delivery, on-time shipment, cancellation rate, refund rate, and seller response rate — over the requested reporting window. Each metric is fetched independently; if a single metric cannot be retrieved it is returned with an error key while the remaining metrics still succeed.
Get API Platform Status
Get the current status of the Walmart marketplace API platform and its components.
List Supported Carriers
List the carriers supported by Ship With Walmart for purchasing shipping labels.
List Shipping Templates
List the shipping templates configured on Walmart for this integration instance. Templates are read-only here and are managed in Walmart Seller Center.
List Fulfillment Centers
List the fulfillment centers (ship nodes) configured on Walmart for this integration instance.
Get Shipping Estimates
Get carrier rate estimates for shipping an order. Send the package details (dimensions and weight, passed through to Walmart) and optionally a carrier; the order's purchase order ID is attached automatically.
Purchase Shipping Label
Purchase a Ship With Walmart shipping label for an order shipment. Send the package details and the chosen carrier service; the order's purchase order ID is attached automatically.
List Order Shipping Labels
List the shipping labels purchased for an order.
Download Shipping Label
Download a purchased shipping label as a PDF file. The response is the label document (Content-Type: application/pdf), not JSON.
Discard Shipping Label
Discard (void) a purchased shipping label so it is no longer used or billed. No request body.
List Webhook Subscriptions
List the Walmart event subscriptions for this integration instance. Each record is the local mirror of a subscription registered with Walmart, including its event type, status, destination URL, and reconciliation state.
Create Webhook Subscription
Create a webhook subscription so Walmart delivers event notifications for this integration instance. The subscription is registered with Walmart and mirrored locally.
List Available Event Types
List the event types available for webhook subscription, fetched directly from Walmart.
Auto-Subscribe Default Events
Subscribe this integration instance to every default event type Walmart offers. Event types that are already subscribed are skipped. No request body.
Reconcile Webhook Subscriptions
Reconcile the local subscription records against Walmart's subscription registry and repair any drift. Subscriptions found on Walmart but missing locally are adopted, local records no longer present on Walmart are flagged as missing, and matching records are confirmed. No request body.
Delete Webhook Subscription
Delete a webhook subscription on Walmart and remove the local record.
Send Test Notification
Ask Walmart to deliver a test event notification for this subscription to its destination URL. Use this to verify the subscription is wired up end to end. No request body.
List Walmart Integration Activity Log
Get a paginated activity history for a Walmart integration instance. Covers every Walmart entity tied to the instance — orders, catalog items, fulfillment locations, returns, and the integration settings themselves — newest first.
List Walmart Supported Carriers
Get the shipping carriers Walmart accepts on shipment confirmations (UPS, USPS, FedEx, DHL, OnTrac, and many more), together with the current mapping of each Walmart carrier to a shipping method in SKU.io.
Start Tracked Walmart Location Refresh
Refresh the list of Walmart fulfillment locations (ship nodes) for this integration instance from the Walmart Marketplace API. This queues an asynchronous background job and returns immediately. Poll progress using the returned tracked_job_log_id.
Start Tracked Walmart Order Refresh
Pull orders from the Walmart Marketplace API into SKU.io. This queues an asynchronous background job and returns immediately. Poll progress using the returned tracked_job_log_id.
Get Walmart Orders Latest Sync Info
Get a snapshot of the order sync state for this integration instance: the most recent Walmart order on record (id, order date, status), the total number of synced Walmart orders, and how many are (or are not yet) linked to a SKU.io sales order. Useful for deciding which refresh mode to run.
Bulk Archive Walmart Orders
Archive multiple Walmart orders in one call. Archived orders are hidden from active listings but remain available with their history. Only currently-active orders belonging to the integration instance are affected; already-archived orders are skipped.
Bulk Unarchive Walmart Orders
Restore multiple archived Walmart orders in one call. Only currently-archived orders belonging to the integration instance are affected.
List Walmart Order Activity Log
Get the paginated activity history for a single Walmart order, newest first. Each entry includes the event type, changed attributes with old values, the acting user's name (null for system/background changes), and a timestamp.
Get Raw Walmart Order
Fetch the order directly from the Walmart Marketplace API and return Walmart's raw purchase-order payload without any transformation. Useful for troubleshooting sync discrepancies — this is the live payload as Walmart returns it today, not the locally stored copy.
Archive Walmart Order
Archive a single Walmart order. Archived orders are hidden from active listings but remain available with their history. Returns whether the order was actually archived (`archived` is false when it was already archived). Returns 403 if the order does not belong to the integration instance.
Unarchive Walmart Order
Restore a single archived Walmart order. Returns whether the order was actually restored (`unarchived` is false when it was already active). Returns 403 if the order does not belong to the integration instance.
List Pre-Start-Date Walmart Orders
Query the Walmart Marketplace API live for orders created before the account's inventory start date, within a chosen creation-date window. Returns lightweight order summaries with an eligibility assessment for import: cancelled orders are marked ineligible, and orders that already exist in SKU.io are flagged `already_imported`.
Search Pre-Start-Date Walmart Orders
Search the Walmart Marketplace API live for specific orders created before the inventory start date. `purchase_order_id` performs a direct order lookup; `customer_order_id` and `order_number` scan up to two years of pre-start-date orders and match on the given value.
Import Pre-Start-Date Walmart Orders
Import selected pre-start-date orders from Walmart. For each purchase order id, the full order is downloaded from the Walmart Marketplace API, saved through the standard order pipeline, and flagged as a pre-start-date import (so it does not affect inventory).
Start Tracked Walmart Product Refresh
Pull the Walmart item catalog for this integration instance from the Walmart Marketplace API into SKU.io. This queues an asynchronous background job and returns immediately. Poll progress using the returned tracked_job_log_id.
Get Walmart Products Latest Sync Info
Get a snapshot of the catalog sync state for this integration instance: the most recently updated Walmart item (title and update time), total synced items, and how many are mapped (or not yet mapped) to SKU.io products.
List Orders for Walmart Product
Get a paginated list of Walmart orders that contain this Walmart item, matched by the item's SKU across the instance's order lines. Orders are returned newest first as stored order records, including Walmart identifiers, status, totals, and the stored raw payload (`json_object`).
Sync Walmart Product
Re-fetch a single item from the Walmart Marketplace API and update the local record with the latest data (title, price, identifiers, publish status). Runs synchronously and returns the refreshed item, including any mapped SKU.io product. If the item can no longer be found on Walmart, a message is returned and the local record is left unchanged.
Check Walmart Products Deleteable
Check whether the given Walmart items can be deleted from SKU.io, before running a bulk delete. Returns one entry per item with a `deleteable` flag and a `reason` when deletion is blocked.
Get Walmart Field Mappings
Get the field-mapping configuration for a Walmart integration instance: which Walmart item fields (title, price, identifiers, and so on) populate which SKU.io product fields during catalog sync.
Update Walmart Field Mappings
Replace the custom field-mapping overrides for a Walmart integration instance. The submitted mappings are stored as instance-specific overrides on top of the built-in defaults; the response returns the resulting effective mappings.
List Walmart Fulfillments
Get a paginated list of completed fulfillments for sales orders that originated from this Walmart integration instance — both those already submitted to Walmart and those still pending. Each entry includes tracking details, carrier and shipping method, the linked sales order and Walmart order identifiers, the fulfilling warehouse, and a `sync_status` of submitted or pending.
List Pending Walmart Fulfillments
Get a paginated list of completed fulfillments that have not yet been submitted to Walmart. Pickup fulfillments and fulfillments on cancelled orders are excluded. Results are ordered newest first. These are the fulfillments that the automatic sync (every 10 minutes) or a manual submit call will send to Walmart.
Get Walmart Fulfillment Stats
Get summary figures for fulfillment syncing on this integration instance: how many completed fulfillments are still waiting to be submitted to Walmart, and the automatic sync schedule.
Submit Walmart Fulfillment
Submit a single completed fulfillment's shipment confirmation (carrier, tracking number, shipped lines) to Walmart. Only fulfillments that are completed, not yet submitted, not pickup-type, and linked to a non-cancelled Walmart order of this instance are accepted. On success the fulfillment is marked as submitted; on failure a 422 is returned with the reason.
Bulk Submit Walmart Fulfillments
Submit multiple fulfillments' shipment confirmations to Walmart in one call. Each fulfillment is processed independently; the response reports how many were submitted and how many failed, with per-fulfillment error messages. Fulfillments that are already submitted, pickup-type, or on cancelled orders are ignored.
Submit All Pending Walmart Fulfillments
Submit every pending fulfillment for this integration instance to Walmart in one call — the same set returned by the pending listing. Each fulfillment is processed independently; the response reports totals plus per-fulfillment errors. Returns zeros when nothing is pending.
List Walmart Inventory Comparison
Get a paginated inventory comparison for this Walmart integration instance — one row per SKU per Walmart fulfillment location — showing the SKU.io quantity next to the quantity Walmart currently has, the variance, and a per-row sync status (synced, variance, or needs_recalc).
Get Walmart Inventory Summary
Get aggregate inventory-comparison statistics for this integration instance, counting SKU/location combinations: totals in sync, with variance, and needing recalculation, plus when Walmart quantities were last fetched and when SKU.io last pushed quantities to Walmart.
List Walmart Inventory Locations
Get every Walmart fulfillment location (ship node) known for this integration instance, with its display name and whether it is currently active on Walmart. Use the returned ids as `filter[location_id]` values on the inventory comparison listing.
Start Walmart Inventory Recache
Recalculate SKU.io's sellable quantities for every Walmart listing/location on this integration instance and refresh the comparison cache. Run this when SKU.io quantities look stale or rows show needs_recalc. This queues an asynchronous background job and returns immediately. Poll progress using the returned tracked_job_log_id.
Get Walmart Inventory Recache Progress
Poll the progress of a previously started inventory recache. Returns the job's status (queued, processing, completed, failed), item counts, and a progress percentage. Returns 404 for an unknown job id.
Start Walmart Inventory Sync
Push SKU.io quantities to Walmart for every listing/location with a variance on this integration instance, updating Walmart's available-to-sell figures. This queues an asynchronous background job and returns immediately. Poll progress using the returned tracked_job_log_id.
Get Walmart Inventory Sync Progress
Poll the progress of a previously started inventory sync to Walmart. Returns the job's status (queued, processing, completed, failed), item counts, and a progress percentage. Returns 404 for an unknown job id.
Start Walmart Live Inventory Fetch
Fetch current on-hand quantities from the Walmart Marketplace API for every listing/location on this integration instance and store them on the comparison rows (`sales_channel_quantity`). This queues an asynchronous background job and returns immediately. Poll progress using the returned tracked_job_log_id.
Get Walmart Live Inventory Fetch Progress
Poll the progress of a previously started live inventory fetch from Walmart. Returns the job's status (queued, processing, completed, failed), item counts, and a progress percentage. Returns 404 for an unknown job id.
List Walmart Returns
Get a paginated list of Walmart customer returns for a specific integration instance.
Refresh Walmart Returns
Queue a tracked job that pulls the latest returns from the Walmart Marketplace Returns API (seller- and WFS-fulfilled). Read-only against Walmart. Track progress via the returned tracked_job_log_id via the tracked job log endpoints.
Refund Walmart Return
Issue a refund against a Walmart Marketplace return order. Without a request body, every returned line is refunded at its full quantity. To refund only specific line(s) or quantities, send an optional `lines` array — each item has `returnOrderLineNumber` (integer, required) and `quantity` (integer ≥ 1, required). Reflects the refund status locally.
Get WFS Settings
Get the WFS settings (enabled flag, sync cadence, default source warehouse, MCF flag, MCF order channel id) for an integration instance, plus the per-instance `webhook_url` the seller registers with Walmart so WFS inbound/inventory/return status changes are pushed in real time. Returns defaults when WFS is not yet configured. Requires a Bearer token.
Update WFS Settings
Update WFS settings. Toggling `enabled` creates (true) or archives (false) the dedicated WFS warehouse. Disabling while the WFS warehouse holds stock or inbound shipments are in flight returns 409 requires_confirmation; resend with `force: true` to proceed. Requires a Bearer token.
List WFS Inventory
Paginated WFS inventory snapshot for a Walmart integration instance. Quantities are pulled from Walmart per SKU + ship node and are read-only (Walmart owns the stock). Requires a Bearer token.
Refresh WFS Inventory
Queue a tracked job that re-syncs WFS inventory from Walmart for every WFS SKU (listings flagged WFS plus SKUs with existing WFS snapshots). Returns the tracked job log id. Requires a Bearer token.
Get WFS Replenishment Settings
Instance-default WFS replenishment tunables (target days of supply, buffer, lead time, case pack, velocity window). Returns defaults when not configured. Requires a Bearer token.
Update WFS Replenishment Settings
Update instance-default replenishment tunables. All fields required; target_days_of_supply 1-365, buffer 0-180, lead_time 0-365, case_pack >=1, velocity_window 7-365. Requires a Bearer token.
List WFS Replenishment Suggestions
Replenishment grid as a full-featured, server-side list view: one row per WFS SKU with its WFS position (available/inbound summed across ship nodes), demand velocity (units/day from matched-product sales over the velocity window), and the suggested quantity to send (velocity x coverage horizon - net WFS position, case-pack rounded). Supports search, advanced filter_groups, sorting, and pagination — all applied server-side over the computed columns. Returns a Laravel LengthAwarePaginator. Requires a Bearer token.
List WFS Replenishment Candidates
WFS candidate intelligence as a full-featured, server-side list view: seller-fulfilled Walmart listings NOT yet in WFS that sell enough on the Walmart channel (>= candidate_min_units in the velocity window) to warrant sending into WFS. Ranked by Walmart-channel volume by default, with a suggested initial ship quantity (velocity x coverage, nothing on hand yet). Supports search, advanced filter_groups, sorting, and pagination — all applied server-side over the computed columns. Returns a Laravel LengthAwarePaginator. Empty when the instance has no linked sales channel. Requires a Bearer token.
WFS Recommended Items
Walmart's WFS restock recommendations for the inbound builder's 'Recommended items' modal — items running low at WFS with days of supply, stock status, and Walmart's suggested send quantities, joined to the local product (product_id) so a recommendation can be added straight to the cart.
Portal — Download WFS Unit-Mix Spreadsheet (CSV, public)
PUBLIC. Downloads the unit-mix spreadsheet (CSV) for the WFS inbound shipment so the 3PL / supplier can reconcile what to pack. Columns: SKU, Product, GTIN/UPC, Qty, Packing, Units per case, Unit weight, Unit dimensions, Prep services — plus a Kitting Work Order section when the shipment contains kits. Streamed as text/csv with filename wfs-unit-mix-<shipmentId>.csv. Returns 404 if the portal token is invalid or has been revoked.
Portal — Submit WFS Box Contents (public)
PUBLIC. The 3PL/supplier reports what they packed in each box. Body: boxes[] each { box_number (int), lines[] of { sku, quantity } }. Moves the packet to In Progress and unlocks the ready-to-ship acknowledgement.
Print WFS GTIN Item Labels (shipment)
Render printable GTIN item labels (PDF) for a WFS inbound shipment's lines — the detail page's 'Item labels' print-all. Defaults to ONE LABEL PER UNIT of every intent line when the body is empty; pass items to override per-SKU label counts (per-row printing).
Print WFS GTIN Item Labels (ad-hoc)
Render printable GTIN item labels (PDF) for arbitrary WFS-bound SKUs — the inbound builder's per-row 'Print GTIN label'. Walmart exposes NO item-label API (Seller Center only), but WFS item labels are plain GTIN-14 / UPC-12 barcodes (no FNSKU-style Walmart identifier), so SKU.io renders the PDF locally from the listing's GTIN/UPC (fallback UPC → product barcode), mirroring the Amazon FBA item-label UX.
Portal — Print WFS GTIN Item Labels (public)
Self-service GTIN item labels from the PUBLIC fulfillment portal — the 3PL/supplier prints the barcode label sheet (PDF) straight from the portal, no login. Mirrors the authenticated 'Print WFS GTIN Item Labels (shipment)' download. Defaults to ONE LABEL PER UNIT of every shipment line when the body is empty; pass items to override per-SKU label counts (per-row printing).
List WFS Inventory Log Entries
The WFS inventory transaction log for a single SKU (resolved to its GTIN), pulled live from Walmart and capped at 50 rows. `sku` is required; `transaction_type` optionally narrows to one transaction type. A missing/unresolvable SKU or Walmart-side failure returns a 422. Requires a Bearer token.
Get WFS Inventory Health Report
Download the WFS Inventory Health report (aged / long-term-storage exposure) Walmart generates. Returns the raw file as a download (Content-Disposition attachment) — CSV when Walmart returns CSV, or ZIP when Walmart returns a zipped report (filename wfs-inventory-health.csv or .zip accordingly). Not a JSON envelope. Requires a Bearer token.
List WFS Compliance Holds
Search items on a WFS compliance hold (WERCS / hazmat) so they can be excluded from replenishment, pulled live from Walmart. `search` is optional and matched against `field` (sku or gtin, default sku). A Walmart-side failure returns a 422. Requires a Bearer token.
List MCF Orders
Paginated WFS MCF orders for an integration instance. Supports free-text search (filter[search] spans customer_order_no + customer_order_id), advanced filters via filter_groups (columns: customer_order_no, customer_order_id, status, created_at), and sorting (allowed: id, customer_order_no, customer_order_id, status, created_at, updated_at; default -created_at). `can_cancel` is true while the order still has items and is not yet CANCELLED/SHIPPED/DELIVERED. Returns a Laravel LengthAwarePaginator. Requires a Bearer token.
Get MCF Order
Fetch a single WFS MCF order by id, scoped to the integration instance (404 if it belongs to another instance). Requires a Bearer token.
Cancel MCF Order
Cancel an MCF order on Walmart and reflect the cancellation locally. No request body. Scoped to the integration instance (404 if it belongs to another instance). Walmart rejects the cancel once the order has shipped/delivered/already-cancelled — that returns a 422. Returns the updated order resource. Requires a Bearer token.
Sync MCF Order Status
Pull the latest status for an MCF order from Walmart and update the local record. No request body. Scoped to the integration instance (404 if it belongs to another instance). A Walmart-side failure returns a 422. Returns the updated order resource. Requires a Bearer token.
Fetch MCF Order Promise Options
Re-check Walmart's delivery-promise / fulfillability options for an MCF order (which shipping speeds Walmart can still honour from WFS stock). No request body. Scoped to the integration instance (404 if it belongs to another instance). A Walmart-side failure returns a 422. Requires a Bearer token.
Receive Walmart Webhook
Receive a Walmart WFS webhook delivery. No Bearer auth — the secret path token is the credential. The body shape is whatever Walmart sends; the receiver classifies the delivery into a coarse bucket (inbound / inventory / return / order / unknown) by keyword-matching the `eventType` (or `topic`/`type`) field, persists it, and dispatches a resync. An unrecognised event type triggers a full WFS resync so nothing is missed. Always acks 2xx on success so Walmart does not retry; unknown tokens return 404.
Get Walmart Dashboard Metrics
Get aggregated dashboard metrics across all Walmart integration instances.