Skip to main content

Update Walmart Integration Settings

PATCH 

/api/walmart/:integrationInstance

Update the settings of a connected Walmart seller account. Accepts PUT (full replace) or PATCH (deep merge into the stored settings — send only the keys you want to change).

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

Request fields — all optional; omit any key to leave it unchanged.

  • name (string) — display name of the connection.
  • is_automatic_sync_enabled (boolean) — turns scheduled syncing on or off.
  • connection_settings.clientId (string) — Walmart API client ID.
  • connection_settings.clientSecret (string) — Walmart API client secret.
  • integration_settings.start_date (date YYYY-MM-DD) — orders placed before this date are ignored.
  • integration_settings.store_id (integer) — store this connection sells into. Must exist.
  • integration_settings.auto_link_products (boolean) — match incoming Walmart items to existing products by identifier.
  • integration_settings.auto_create_products (boolean) — create a product when no match is found.
  • integration_settings.emailCustomers (boolean) — send order emails to the buyer.
  • integration_settings.sales_nominal_code_id, cogs_nominal_code_id, shipping_revenue_nominal_code_id, shipping_refund_nominal_code_id, sales_returns_allowances_nominal_code_id (integer, nullable) — accounting codes. Each must exist.
  • integration_settings.proforma_marketplace_cost_percentage, proforma_payment_cost_percentage (number, nullable) — estimated marketplace and payment costs, as percentages.
  • integration_settings.sync_sales_order_invoices_to_accounting, sync_sales_credit_to_accounting (boolean) — push invoices and credits to the accounting connection.
  • integration_settings.batch_period_sales_order_fulfillments, batch_period_customer_returns (string, nullable) — batching period used when posting to accounting.
  • integration_settings.refunds.allow_refunds_from_sku (boolean) — allow refunds to be issued against Walmart orders.
  • integration_settings.orders.push_cancellations (boolean) — when a Walmart sales order is cancelled in SKU.io, also cancel its unshipped lines on Walmart (sent with the reason "Out of stock"). Lines that have shipped, and orders already cancelled on Walmart, are never sent.
  • integration_settings.orders.auto_acknowledge (boolean) — acknowledge newly imported orders to Walmart automatically.

The orders keys you omit keep their stored values, with PUT as well as PATCH.

Pricing — integration_settings.pricing:

  • masterOfPrice (object) — which system owns price. id is one of sku, channel, neither; name is its display label. Changing it re-caches every listing price for this connection.
  • pricingTier (object, nullable) — the pricing tier listings inherit their price from. Send { "id": <tier id>, "name": "<tier name>" }, or { "id": null, "name": null } to clear it. id must be an existing pricing tier. This is the canonical field; a legacy flat pricing_tier_id is still accepted but is deprecated and is not read back.

Inventory — integration_settings.inventory:

  • masterOfStock (string) — which system owns stock levels.
  • selectedWarehouses (array of integers) — warehouses whose stock is published to Walmart. Sent as a whole list; it replaces the stored value rather than merging into it, on PATCH too.
  • fulfillmentLatency (integer, nullable) — handling days reported to Walmart.

Behaviour to be aware of

  • Changed credentials are validated against Walmart before anything is stored. Invalid credentials fail the whole request with 422 and nothing is saved.
  • Saving valid credentials on a connection that is disconnected or awaiting authorization switches it to credential-based authentication and reactivates it.
  • Changing masterOfPrice, pricingTier, or any inventory setting triggers a background re-cache of prices and stock, so listing values may take a few moments to settle.

Requires the integrations.update permission.

Store and sales channel: new orders are created in the store of this connection's sales channel. Whenever the request includes integration_settings.store_id, the sales channel is put in that store if it is in a different one — including when the value equals the saved setting, so re-saving the same store realigns a sales channel that had drifted from it. Nothing is written when the sales channel already uses that store, and orders already imported keep their store. When the sales channel moves, the response adds two top-level keys:

  • message (string): e.g. "Settings saved. New orders will now be created in store 'Curvy AU' — the sales channel was moved from 'Placeholder'."
  • sales_channel_store_updated (object): from and to, each {id, name}; from.id and from.name are null when the sales channel had no store. Both keys are absent when the sales channel did not move.

Request​

Responses​

OK

Response Headers
    Content-Type